Run it
Copy the script and paste it into your executor.
Fluent = (:())()
SaveManager = (:())()
InterfaceManager = (:())()
Window = Fluent:({
Title = ,
SubTitle = ,
TabWidth = ,
Size = .(, ),
Acrylic = ,
Theme = ,
MinimizeKey = .KeyCode.X
})
FloatingButton = (:(,))()
FloatingButton.(Window)
Tabs = {
Main = Window:({ Title = , Icon = })
}
Options = Fluent.Options
Fluent:({
Title = ,
Content = ,
Duration =
})
Players = :()
RunService = :()
ReplicatedStorage = :()
VirtualUser = :()
LocalPlayer = Players.LocalPlayer
NextbotBillboards = {}
PlayerBillboards = {}
TicketBillboards = {}
playerTracerElements = {}
botTracerElements = {}
playerTracerConnection =
botTracerConnection =
lastSavedPosition =
respawnConnection =
AutoSelfReviveConnection =
hasRevived =
SelfReviveMethod =
AntiAFKConnection =
autoWhistleHandle =
stableCameraInstance =
nextBotNames = {}
ReplicatedStorage:()
_, npc (ReplicatedStorage.NPCs:())
.(nextBotNames, npc.Name)
(model)
model model.Name
_, name (nextBotNames)
model.Name == name
model.Name:():()
model.Name:():()
model.Name:():()
model.Name:():()
model.Name:():()
model.Name:():()
model.Name:():()
model.Name:():()
(targetPosition)
LocalPlayer.Character LocalPlayer.Character:()
distance = (targetPosition - LocalPlayer.Character.HumanoidRootPart.Position).Magnitude
.(distance)
(Name, Part, Color, TextSize)
Part Part:(Name)
BillboardGui = .()
TextLabel = .()
TextStroke = .()
BillboardGui.Parent = Part
BillboardGui.ZIndexBehavior = .ZIndexBehavior.Sibling
BillboardGui.Name = Name
BillboardGui.AlwaysOnTop =
BillboardGui.LightInfluence =
BillboardGui.Size = .(, , , )
BillboardGui.StudsOffset = .(, , )
BillboardGui.MaxDistance =
TextLabel.Parent = BillboardGui
TextLabel.BackgroundTransparency =
TextLabel.Size = .(, , , )
TextLabel.TextScaled =
TextLabel.Font = .Font.SourceSansBold
TextLabel.TextSize = TextSize
TextLabel.TextColor3 = Color .(, , )
TextStroke.Parent = TextLabel
TextStroke.Thickness =
TextStroke.Color = .(, , )
BillboardGui
(Name, Part, NameText, Color, TextSize)
Part
esp = Part:(Name)
esp esp:()
label = esp:()
Color
label.TextColor3 = Color
TextSize
label.TextSize = TextSize
distance = (Part.Position)
name = NameText Part.Parent Part.Parent.Name Part.Name
label.Text = .(, name, distance)
(Name, Part)
Part
esp = Part:(Name)
esp
esp:()
()
nextbots = {}
playersFolder = :() .Game:()
playersFolder
_, model (playersFolder:())
model:() (model)
hrp = model:() model:()
hrp
nextbots[model] = hrp
npcsFolder = :()
npcsFolder
_, model (npcsFolder:())
model:() (model)
hrp = model:() model:()
hrp
nextbots[model] = hrp
model, hrp (nextbots)
NextbotBillboards[model]
esp = (, hrp, .(, , ), )
esp
(, hrp, model.Name, .(, , ), )
NextbotBillboards[model] = {esp = esp, hrp = hrp}
(, hrp, model.Name, .(, , ), )
model, data (NextbotBillboards)
nextbots[model] model.Parent
data.hrp
(, data.hrp)
NextbotBillboards[model] =
()
_, player (Players:())
player ~= LocalPlayer player.Character
head = player.Character:() player.Character:()
head
PlayerBillboards[player]
esp = (, head, .(, , ), )
esp
(, head, player.Name, .(, , ), )
PlayerBillboards[player] = esp
(, head, player.Name, .(, , ), )
PlayerBillboards[player]
player.Character
(, player.Character:() player.Character:())
PlayerBillboards[player] =
()
gameFolder = :()
gameFolder
effects = gameFolder:()
effects
tickets = effects:()
tickets
_, ticket (tickets:())
ticket:() ticket:()
part = ticket:() ticket:() ticket:() ticket
part
TicketBillboards[ticket]
esp = (, part, .(, , ), )
esp
(, part, , .(, , ), )
TicketBillboards[ticket] = esp
(, part, , .(, , ), )
ticket, esp (TicketBillboards)
ticket ticket.Parent
part = ticket:() ticket:() ticket
part
(, part)
TicketBillboards[ticket] =
()
tracer = .()
tracer.Visible =
tracer.Thickness =
tracer.ZIndex =
tracer
()
camera = .CurrentCamera
camera
screenBottomCenter = .(camera.ViewportSize.X / , camera.ViewportSize.Y)
currentTargets = {}
_, player (Players:())
player ~= LocalPlayer player.Character
hrp = player.Character:()
hrp
currentTargets[player] =
playerTracerElements[player]
playerTracerElements[player] = ()
tracer = playerTracerElements[player]
vector, onScreen = camera:(hrp.Position)
onScreen
tracer.Visible =
tracer.From = screenBottomCenter
tracer.To = .(vector.X, vector.Y)
tracer.Color = .(, , )
tracer.Visible =
player, tracer (playerTracerElements)
currentTargets[player]
tracer tracer.Remove
tracer:()
playerTracerElements[player] =
()
camera = .CurrentCamera
camera
screenBottomCenter = .(camera.ViewportSize.X / , camera.ViewportSize.Y)
currentTargets = {}
playersFolder = :() .Game:()
playersFolder
_, model (playersFolder:())
model:() (model)
hrp = model:()
hrp
currentTargets[model] =
botTracerElements[model]
botTracerElements[model] = ()
tracer = botTracerElements[model]
vector, onScreen = camera:(hrp.Position)
onScreen
tracer.Visible =
tracer.From = screenBottomCenter
tracer.To = .(vector.X, vector.Y)
tracer.Color = .(, , )
tracer.Visible =
npcsFolder = :()
npcsFolder
_, model (npcsFolder:())
model:() (model)
hrp = model:()
hrp
currentTargets[model] =
botTracerElements[model]
botTracerElements[model] = ()
tracer = botTracerElements[model]
vector, onScreen = camera:(hrp.Position)
onScreen
tracer.Visible =
tracer.From = screenBottomCenter
tracer.To = .(vector.X, vector.Y)
tracer.Color = .(, , )
tracer.Visible =
model, tracer (botTracerElements)
currentTargets[model]
tracer tracer.Remove
tracer:()
botTracerElements[model] =
()
playerTracerConnection
playerTracerConnection = RunService.RenderStepped:(updatePlayerTracers)
()
playerTracerConnection
playerTracerConnection:()
playerTracerConnection =
player, tracer (playerTracerElements)
tracer tracer.Remove
tracer:()
playerTracerElements = {}
()
botTracerConnection
botTracerConnection = RunService.RenderStepped:(updateBotTracers)
()
botTracerConnection
botTracerConnection:()
botTracerConnection =
model, tracer (botTracerElements)
tracer tracer.Remove
tracer:()
botTracerElements = {}
()
AutoSelfReviveConnection
AutoSelfReviveConnection:()
respawnConnection
respawnConnection:()
character = LocalPlayer.Character
character
humanoid = character:()
hrp = character:()
AutoSelfReviveConnection = character:():(()
isDowned = character:()
isDowned
SelfReviveMethod ==
hasRevived
hasRevived =
(()
ReplicatedStorage.Events.Player.ChangePlayerMode:()
)
.(, ()
hasRevived =
)
SelfReviveMethod ==
hrp
lastSavedPosition = hrp.Position
.()
startTime = ()
(()
ReplicatedStorage:():():():()
)
character:() (() - startTime > )
newCharacter
newCharacter = LocalPlayer.Character
.()
newCharacter newCharacter:()
newHRP = newCharacter:()
lastSavedPosition newHRP
newHRP.CFrame = .(lastSavedPosition)
.()
movedDistance = (newHRP.Position - lastSavedPosition).Magnitude
movedDistance >
lastSavedPosition =
)
respawnConnection = LocalPlayer.CharacterAdded:((newChar)
.()
newHumanoid = newChar:()
newHRP = newChar:()
AutoSelfReviveConnection = newChar:():(()
isDowned = newChar:()
isDowned
SelfReviveMethod ==
hasRevived
hasRevived =
.()
(()
ReplicatedStorage.Events.Player.ChangePlayerMode:()
)
.(, ()
hasRevived =
)
SelfReviveMethod ==
newHRP
lastSavedPosition = newHRP.Position
.()
startTime = ()
(()
ReplicatedStorage:():():():()
)
.()
newChar:() (() - startTime > )
freshCharacter
freshCharacter = LocalPlayer.Character
.()
freshCharacter freshCharacter:()
freshHRP = freshCharacter:()
lastSavedPosition freshHRP
freshHRP.CFrame = .(lastSavedPosition)
.()
movedDistance = (freshHRP.Position - lastSavedPosition).Magnitude
movedDistance >
lastSavedPosition =
)
)
()
AutoSelfReviveConnection
AutoSelfReviveConnection:()
AutoSelfReviveConnection =
respawnConnection
respawnConnection:()
respawnConnection =
hasRevived =
lastSavedPosition =
()
AntiAFKConnection
AntiAFKConnection = LocalPlayer.Idled:(()
VirtualUser:(.(,), .CurrentCamera.CFrame)
.()
VirtualUser:(.(,), .CurrentCamera.CFrame)
)
()
AntiAFKConnection
AntiAFKConnection:()
AntiAFKConnection =
()
autoWhistleHandle
autoWhistleHandle = .(()
autoWhistleHandle
(()
ReplicatedStorage.Events.Character.Whistle:()
)
.()
)
()
autoWhistleHandle
.(autoWhistleHandle)
autoWhistleHandle =
StableCamera = {}
StableCamera.__index = StableCamera
StableCamera.(maxDistance)
self = ({}, StableCamera)
self.Player = Players.LocalPlayer
self.MaxDistance = maxDistance
self._conn = RunService.RenderStepped:((dt) self:(dt) )
self
(player)
player
ok, playerScripts = (() player:() )
ok playerScripts
cameraSet = playerScripts:() playerScripts.Camera:()
cameraSet (cameraSet.Invoke) ==
(()
cameraSet:(, , .())
)
StableCamera:(dt)
Players Players.LocalPlayer
(Players.LocalPlayer)
StableCamera:()
self._conn
self._conn:()
self._conn =
()
stableCameraInstance
stableCameraInstance = StableCamera.()
()
stableCameraInstance
stableCameraInstance:()
stableCameraInstance =
billboardSection = Tabs.Main:()
NextbotToggle = Tabs.Main:(, {
Title = ,
Default =
})
PlayerToggle = Tabs.Main:(, {
Title = ,
Default =
})
TicketToggle = Tabs.Main:(, {
Title = ,
Default =
})
tracerSection = Tabs.Main:()
TracerPlayerToggle = Tabs.Main:(, {
Title = ,
Default =
})
TracerBotToggle = Tabs.Main:(, {
Title = ,
Default =
})
modificationSection = Tabs.Main:()
AutoRespawnToggle = Tabs.Main:(, {
Title = ,
Default =
})
AutoRespawnTypeDropdown = Tabs.Main:(, {
Title = ,
Values = {, },
Multi = ,
Default = ,
})
Tabs.Main:({
Title = ,
Content =
})
AntiAFKToggle = Tabs.Main:(, {
Title = ,
Default =
})
AutoWhistleToggle = Tabs.Main:(, {
Title = ,
Default =
})
NoCameraShakeToggle = Tabs.Main:(, {
Title = ,
Default =
})
nextbotLoop
playerLoop
ticketLoop
NextbotToggle:((value)
value
nextbotLoop
nextbotLoop = RunService.RenderStepped:(()
Options.NextbotToggle.Value
()
)
nextbotLoop
nextbotLoop:()
nextbotLoop =
model, data (NextbotBillboards)
data.hrp
(, data.hrp)
NextbotBillboards = {}
)
PlayerToggle:((value)
value
playerLoop
playerLoop = RunService.RenderStepped:(()
Options.PlayerToggle.Value
()
)
playerLoop
playerLoop:()
playerLoop =
player, esp (PlayerBillboards)
player.Character
(, player.Character:() player.Character:())
PlayerBillboards = {}
)
TicketToggle:((value)
value
ticketLoop
ticketLoop = RunService.RenderStepped:(()
Options.TicketToggle.Value
()
)
ticketLoop
ticketLoop:()
ticketLoop =
ticket, esp (TicketBillboards)
part = ticket:() ticket:() ticket
part
(, part)
TicketBillboards = {}
)
TracerPlayerToggle:((value)
value
()
()
)
TracerBotToggle:((value)
value
()
()
)
AutoRespawnToggle:((value)
value
()
()
)
AutoRespawnTypeDropdown:((value)
SelfReviveMethod = value
)
AntiAFKToggle:((value)
value
()
()
)
AutoWhistleToggle:((value)
value
()
()
)
NoCameraShakeToggle:((value)
value
()
()
)
TimerDisplayToggle = Tabs.Main:(, {
Title = ,
Default =
})
timerDisplayLoop =
TimerDisplayToggle:((state)
state
timerDisplayLoop
timerDisplayLoop = RunService.RenderStepped:(()
player = :().LocalPlayer
pg = player.PlayerGui
= pg:()
hud = :()
overlay = hud hud:()
default = overlay overlay:()
ro = default default:()
round = ro ro:()
timer = round round:()
timer
timer.Visible =
main = pg:()
main
container = main:()
container
container.Visible =
)
timerDisplayLoop
timerDisplayLoop:()
timerDisplayLoop =
player = :().LocalPlayer
pg = player.PlayerGui
= pg:()
hud = :()
overlay = hud hud:()
default = overlay overlay:()
ro = default default:()
round = ro ro:()
timer = round round:()
timer
timer.Visible =
main = pg:()
main
container = main:()
container
container.Visible =
)
billboardSection = Tabs.Main:()
FlyToggle = Tabs.Main:(, {
Title = ,
Default =
})
FlySpeedInput = Tabs.Main:(, {
Title = ,
Default = ,
Placeholder = ,
Numeric = ,
Finished = ,
Callback = (Value)
Value (Value)
featureStates.FlySpeed = (Value)
})
flying =
bodyVelocity =
bodyGyro =
character = LocalPlayer.Character
humanoid = character character:()
rootPart = character character:()
UserInputService = :()
featureStates = featureStates {}
featureStates.FlySpeed =
()
character humanoid rootPart
character = LocalPlayer.Character
character
humanoid = character:()
rootPart = character:()
humanoid rootPart
flying =
bodyVelocity = .()
bodyVelocity.MaxForce = .(.huge, .huge, .huge)
bodyVelocity.Velocity = .(, , )
bodyVelocity.Parent = rootPart
bodyGyro = .()
bodyGyro.MaxTorque = .(.huge, .huge, .huge)
bodyGyro.CFrame = rootPart.CFrame
bodyGyro.Parent = rootPart
humanoid.PlatformStand =
()
flying =
bodyVelocity
bodyVelocity:()
bodyVelocity =
bodyGyro
bodyGyro:()
bodyGyro =
humanoid
humanoid.PlatformStand =
()
flying bodyVelocity bodyGyro
camera = .CurrentCamera
cameraCFrame = camera.CFrame
direction = .(, , )
moveDirection = humanoid.MoveDirection
moveDirection.Magnitude >
forwardVector = cameraCFrame.LookVector
rightVector = cameraCFrame.RightVector
forwardComponent = moveDirection:(forwardVector) * forwardVector
rightComponent = moveDirection:(rightVector) * rightVector
direction = direction + (forwardComponent + rightComponent).Unit * moveDirection.Magnitude
UserInputService:(.KeyCode.Space) humanoid.Jump
direction = direction + .(, , )
UserInputService:(.KeyCode.LeftShift)
direction = direction - .(, , )
speed = featureStates.FlySpeed
bodyVelocity.Velocity = direction.Magnitude > direction.Unit * (speed * ) .(, , )
bodyGyro.CFrame = cameraCFrame
flyLoop =
characterAddedConnection =
FlyToggle:((state)
state
characterAddedConnection
characterAddedConnection:()
characterAddedConnection = LocalPlayer.CharacterAdded:((newChar)
character = newChar
.()
humanoid = character:()
rootPart = character:()
Options.FlyToggle.Value flying ==
()
)
character = LocalPlayer.Character
character
humanoid = character:()
rootPart = character:()
()
flyLoop
flyLoop = RunService.RenderStepped:(()
Options.FlyToggle.Value
()
)
()
flyLoop
flyLoop:()
flyLoop =
characterAddedConnection
characterAddedConnection:()
characterAddedConnection =
)
:().LocalPlayer.CharacterRemoving:(()
Options.FlyToggle.Value
()
flyLoop
flyLoop:()
flyLoop =
)
Tabs.Main:({
Title = ,
Content =
})
()
player = :().LocalPlayer
character = player.Character
character
hrp = character:()
isDowned = character:()
isDowned
SelfReviveMethod = Options.AutoRespawnTypeDropdown Options.AutoRespawnTypeDropdown.Value
SelfReviveMethod ==
(()
ReplicatedStorage.Events.Player.ChangePlayerMode:()
)
SelfReviveMethod ==
lastSavedPosition = hrp hrp.Position
hrp
lastSavedPosition = hrp.Position
.(()
.()
startTime = ()
(()
ReplicatedStorage:():():():()
)
.()
character:() (() - startTime > )
newCharacter
newCharacter = player.Character
.()
newCharacter newCharacter:()
newHRP = newCharacter:()
lastSavedPosition newHRP
newHRP.CFrame = .(lastSavedPosition)
.()
movedDistance = (newHRP.Position - lastSavedPosition).Magnitude
movedDistance >
lastSavedPosition =
)
RespawnButton = Tabs.Main:({
Title = ,
Callback = ()
CoreGui = :()
Players = :()
LocalPlayer = Players.LocalPlayer
existingScreenGui = CoreGui:()
existingScreenGui
existingScreenGui:()
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.Parent = CoreGui
(parent, position, size, text)
button = .()
button.Name =
button.BackgroundTransparency =
button.Size = size
button.Position = position
button.Draggable =
button.Active =
button.Selectable =
button.Parent = parent
corner = .()
corner.CornerRadius = .(, )
corner.Parent = button
gradient = .()
gradient.Color = ColorSequence.{
ColorSequenceKeypoint.(, .(, , )),
ColorSequenceKeypoint.(, .(, , ))
}
gradient.Rotation =
gradient.Parent = button
stroke = .()
stroke.Color = .(, , )
stroke.Thickness =
stroke.Parent = button
label = .()
label.Text = text
label.Size = .(, , , )
label.BackgroundTransparency =
label.TextColor3 = .(, , )
label.TextSize =
label.Font = .Font.GothamMedium
label.Parent = button
clicker = .()
clicker.Size = .(, , , )
clicker.BackgroundTransparency =
clicker.Text =
clicker.ZIndex =
clicker.Active =
clicker.Selectable =
clicker.Parent = button
clicker.MouseButton1Click:(()
()
)
clicker.MouseEnter:(()
stroke.Color = .(, , )
)
clicker.MouseLeave:(()
stroke.Color = .(, , )
)
button, clicker, stroke
buttonSize =
Options.RespawnButtonSizeInput Options.RespawnButtonSizeInput.Value (Options.RespawnButtonSizeInput.Value)
buttonSize = (Options.RespawnButtonSizeInput.Value)
btnWidth = .(, .(buttonSize, ))
btnHeight = .(, .(buttonSize * , ))
btn, clicker, stroke = (
screenGui,
.(, -btnWidth/, , -btnHeight/),
.(, btnWidth, , btnHeight),
)
})
RespawnButtonSizeInput = Tabs.Main:(, {
Title = ,
Default = ,
Placeholder = ,
Numeric = ,
Finished = ,
Callback = (Value)
Value (Value)
size = (Value)
CoreGui = :()
existingScreenGui = CoreGui:()
existingScreenGui
button = existingScreenGui:()
button
newWidth = .(, .(size, ))
newHeight = .(, .(size * , ))
button.Size = .(, newWidth, , newHeight)
})
LeaderboardToggle = Tabs.Main:({
Title = ,
Callback = ()
playerScripts = :().LocalPlayer.PlayerScripts
ohTable1 = {
[] = ,
[] =
}
playerScripts.Events.temporary_events.UseKeybind:(ohTable1)
.()
ohTable2 = {
[] = ,
[] =
}
playerScripts.Events.temporary_events.UseKeybind:(ohTable2)
})
:()
SecurityPart = .()
SecurityPart.Name =
SecurityPart.Size = .(, , )
SecurityPart.Position = .(, , )
SecurityPart.Anchored =
SecurityPart.CanCollide =
SecurityPart.Parent =
AutoTab = Window:({ Title = , Icon = })
AutoTab:()
AutoMoneyFarmToggle = AutoTab:(, {
Title = ,
Default =
})
AutoTicketFarmToggle = AutoTab:(, {
Title = ,
Default =
})
AFKFarmToggle = AutoTab:(, {
Title = ,
Default =
})
AutoTab:({
Title = ,
})
TeleportObjectiveButton = AutoTab:({
Title = ,
Callback = ()
objectives = {}
gameFolder = :()
gameFolder
mapFolder = gameFolder:()
mapFolder
partsFolder = mapFolder:()
partsFolder
objectivesFolder = partsFolder:()
objectivesFolder
_, obj (objectivesFolder:())
obj:()
primaryPart = obj.PrimaryPart
primaryPart
_, part (obj:())
part:()
primaryPart = part
primaryPart
.(objectives, {
Name = obj.Name,
Part = primaryPart,
Position = primaryPart.Position,
Size = primaryPart.Size
})
#objectives ==
selectedObjective = objectives[.(, #objectives)]
character = LocalPlayer.Character
character
humanoidRootPart = character:()
humanoidRootPart
teleportPosition = selectedObjective.Position + .(, , )
raycastParams = RaycastParams.()
raycastParams.FilterDescendantsInstances = {character}
raycastParams.FilterType = .RaycastFilterType.Blacklist
ray = :(teleportPosition, .(, -, ), raycastParams)
ray
teleportPosition = ray.Position + .(, , )
humanoidRootPart.CFrame = .(teleportPosition)
})
AutoMoneyFarmConnection =
AutoWinConnection =
AutoTicketFarmConnection =
AutoReviveModule =
character = LocalPlayer.Character
humanoid = character character:()
rootPart = character character:()
()
AutoWinConnection
AutoWinConnection = RunService.Heartbeat:(()
securityPart = :()
securityPart
currentCharacter = LocalPlayer.Character
currentCharacter
currentRootPart = currentCharacter:()
currentRootPart
currentCharacter:()
currentRootPart.CFrame = securityPart.CFrame + .(, , )
)
()
AutoWinConnection
AutoWinConnection:()
AutoWinConnection =
()
reviveRange =
loopDelay =
autoReviveEnabled =
reviveLoopHandle =
interactEvent = ReplicatedStorage:():():()
(pl)
pl pl.Character
char = pl.Character
humanoid = char:()
humanoid humanoid.Health <=
char.GetAttribute char:() ==
()
reviveLoopHandle
reviveLoopHandle = .(()
autoReviveEnabled
currentPlayer = Players.LocalPlayer
currentPlayer currentPlayer.Character currentPlayer.Character:()
myHRP = currentPlayer.Character.HumanoidRootPart
_, pl (Players:())
pl ~= currentPlayer
char = pl.Character
char char:()
(pl)
hrp = char.HumanoidRootPart
success, dist = (()
(myHRP.Position - hrp.Position).Magnitude
)
success dist dist <= reviveRange
(()
interactEvent:(, , pl.Name)
)
.(loopDelay)
reviveLoopHandle =
)
()
autoReviveEnabled =
(state)
state ==
autoReviveEnabled = autoReviveEnabled
autoReviveEnabled = (state == )
autoReviveEnabled
()
()
(range)
(range) == range >
reviveRange = range
{
Toggle = ToggleAutoRevive,
Start = () () ,
Stop = () () ,
SetRange = SetReviveRange,
IsEnabled = () autoReviveEnabled ,
}
()
AutoMoneyFarmConnection
AutoReviveModule
AutoReviveModule = ()
AutoReviveModule.()
AutoMoneyFarmConnection = RunService.Heartbeat:(()
securityPart = :()
securityPart
currentCharacter = LocalPlayer.Character
currentCharacter
currentRootPart = currentCharacter:()
currentRootPart
downedPlayerFound =
playersInGame = :() .Game:()
playersInGame
_, v (playersInGame:())
v:() v:()
v:()
vHrp = v:()
vHrp
currentRootPart.CFrame = vHrp.CFrame + .(, , )
(()
ReplicatedStorage.Events.Character.Interact:(, , v)
)
.()
downedPlayerFound =
downedPlayerFound
currentRootPart.CFrame = securityPart.CFrame + .(, , )
)
()
AutoMoneyFarmConnection
AutoMoneyFarmConnection:()
AutoMoneyFarmConnection =
AutoReviveModule
AutoReviveModule.()
AutoMoneyFarmToggle:((state)
state
()
()
)
AFKFarmToggle:((state)
state
()
()
)
AutoTicketFarmToggle:((state)
yOffset =
currentTicket =
ticketProcessedTime =
state
securityPart = :()
securityPart
AutoTicketFarmConnection
AutoTicketFarmConnection:()
AutoTicketFarmConnection = RunService.Heartbeat:(()
character = LocalPlayer.Character
character
humanoidRootPart = character:()
humanoidRootPart
tickets = :() .Game:() .Game.Effects:()
character:()
(()
ReplicatedStorage.Events.Player.ChangePlayerMode:()
)
humanoidRootPart.CFrame = securityPart.CFrame + .(, , )
tickets
activeTickets = tickets:()
#activeTickets >
currentTicket currentTicket.Parent
currentTicket = activeTickets[]
ticketProcessedTime = ()
currentTicket currentTicket.Parent
ticketPart = currentTicket:() currentTicket:() currentTicket
ticketPart
targetPosition = ticketPart.Position + .(, yOffset, )
humanoidRootPart.CFrame = .(targetPosition)
() - ticketProcessedTime >
humanoidRootPart.CFrame = ticketPart.CFrame
currentTicket =
humanoidRootPart.CFrame = securityPart.CFrame + .(, , )
currentTicket =
humanoidRootPart.CFrame = securityPart.CFrame + .(, , )
currentTicket =
humanoidRootPart.CFrame = securityPart.CFrame + .(, , )
currentTicket =
)
AutoTicketFarmConnection
AutoTicketFarmConnection:()
AutoTicketFarmConnection =
currentTicket =
character = LocalPlayer.Character
character
humanoidRootPart = character:()
securityPart = :()
humanoidRootPart securityPart
humanoidRootPart.CFrame = securityPart.CFrame + .(, , )
)
CombatTab = Window:({ Title = , Icon = })
CombatTab:()
featureStates.AntiNextbot =
featureStates.AntiNextbotTeleportType =
featureStates.AntiNextbotDistance =
featureStates.DistanceTeleport =
PathfindingService = :()
antiNextbotConnection =
farmsSuppressedByAntiNextbot =
previousMoneyFarm =
previousTicketFarm =
previousAutoWin =
()
featureStates.AntiNextbot
character = Players.LocalPlayer.Character
humanoidRootPart = character character:()
humanoidRootPart
nextbots = {}
npcsFolder = :()
npcsFolder
_, model (npcsFolder:())
model:() (model)
hrp = model:()
hrp
.(nextbots, model)
playersFolder = :() .Game:()
playersFolder
_, model (playersFolder:())
model:() (model)
hrp = model:()
hrp
.(nextbots, model)
_, nextbot (nextbots)
nextbotHrp = nextbot:()
nextbotHrp
distance = (humanoidRootPart.Position - nextbotHrp.Position).Magnitude
distance <= featureStates.AntiNextbotDistance
featureStates.AntiNextbotTeleportType ==
validPlayers = {}
_, plr (Players:())
plr ~= player plr.Character plr.Character:()
.(validPlayers, plr)
#validPlayers >
randomPlayer = validPlayers[.(, #validPlayers)]
humanoidRootPart.CFrame = randomPlayer.Character.HumanoidRootPart.CFrame + .(, , )
featureStates.AntiNextbotTeleportType ==
spawnsFolder = :() .Game:() .Game.Map:() .Game.Map.Parts:()
spawnsFolder
spawnLocations = spawnsFolder:()
#spawnLocations >
randomSpawn = spawnLocations[.(, #spawnLocations)]
humanoidRootPart.CFrame = randomSpawn.CFrame + .(, , )
featureStates.AntiNextbotTeleportType ==
direction = (humanoidRootPart.Position - nextbotHrp.Position).Unit
targetPos = humanoidRootPart.Position + direction * featureStates.DistanceTeleport
path = PathfindingService:({
AgentRadius = ,
AgentHeight = ,
AgentCanJump =
})
success, errorMessage = (()
path:(humanoidRootPart.Position, targetPos)
)
success path.Status == .PathStatus.Success
waypoints = path:()
#waypoints >
lastValidPos = waypoints[#waypoints].Position
distanceToTarget = (lastValidPos - humanoidRootPart.Position).Magnitude
distanceToTarget <= featureStates.DistanceTeleport
humanoidRootPart.CFrame = .(lastValidPos + .(, , ))
for i = #waypoints, 1, -1 do
waypointPos = waypoints[i].Position
if (waypointPos - humanoidRootPart.Position).Magnitude <= featureStates.DistanceTeleport then
humanoidRootPart.CFrame = CFrame.new(waypointPos + Vector3.new(0, 3, 0))
break
end
end
end
end
else
fallbackPos = humanoidRootPart.Position + direction * featureStates.DistanceTeleport
ray = Ray.new(humanoidRootPart.Position, direction * featureStates.DistanceTeleport)
hit, hitPos = workspace:FindPartOnRayWithIgnoreList(ray, {character, nextbot})
if not hit then
humanoidRootPart.CFrame = CFrame.new(fallbackPos + Vector3.new(0, 3, 0))
else
humanoidRootPart.CFrame = CFrame.new(hitPos + Vector3.new(0, 3, 0))
end
end
end
break
end
end
end
end
task.spawn(function()
while true do
if featureStates.AntiNextbot then
pcall(handleAntiNextbot)
end
task.wait(0.1)
end
end)
AntiNextbotToggle = CombatTab:AddToggle("AntiNextbotToggle", {
Title = "Anti-Nextbot",
Default = false
})
AntiNextbotTeleportTypeDropdown = CombatTab:AddDropdown("AntiNextbotTeleportTypeDropdown", {
Title = "Teleport Type",
Values = {"Players", "Spawn", "Distance"},
Multi = false,
Default = "Distance"
})
AntiNextbotDistanceInput = CombatTab:AddInput("AntiNextbotDistanceInput", {
Title = "Detection Distance",
Default = "50",
Placeholder = "Enter distance",
Numeric = true,
Finished = false
})
DistanceTeleportInput = CombatTab:AddInput("DistanceTeleportInput", {
Title = "Teleport Distance",
Default = "20",
Placeholder = "Enter distance",
Numeric = true,
Finished = false
})
AntiNextbotToggle:OnChanged(function(state)
featureStates.AntiNextbot = state
if state then
antiNextbotConnection = RunService.Heartbeat:Connect(function()
if not featureStates.AntiNextbot then return end
character = player.Character
humanoidRootPart = character and character:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then return end
nearestDistance = math.huge
nearestNextbot = nil
playersFolder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
npcsFolder = workspace:FindFirstChild("NPCs")
if playersFolder then
for _, model in pairs(playersFolder:GetChildren()) do
if model:IsA("Model") and model:FindFirstChild("HumanoidRootPart") and isNextbotModel(model) then
dist = (model.HumanoidRootPart.Position - humanoidRootPart.Position).Magnitude
if dist < nearestDistance then
nearestDistance = dist
nearestNextbot = model
end
end
end
end
if npcsFolder then
for _, model in pairs(npcsFolder:GetChildren()) do
if model:IsA("Model") and model:FindFirstChild("HumanoidRootPart") and isNextbotModel(model) then
dist = (model.HumanoidRootPart.Position - humanoidRootPart.Position).Magnitude
if dist < nearestDistance then
nearestDistance = dist
nearestNextbot = model
end
end
end
end
threshold = featureStates.AntiNextbotDistance
isTooClose = (nearestDistance < threshold)
if isTooClose and not farmsSuppressedByAntiNextbot then
previousMoneyFarm = Options.AutoMoneyFarmToggle.Value
previousTicketFarm = Options.AutoTicketFarmToggle.Value
previousAutoWin = Options.AFKFarmToggle.Value
if Options.AutoMoneyFarmToggle.Value then
Options.AutoMoneyFarmToggle:Set(false)
end
if Options.AutoTicketFarmToggle.Value then
Options.AutoTicketFarmToggle:Set(false)
end
if Options.AFKFarmToggle.Value then
Options.AFKFarmToggle:Set(false)
end
farmsSuppressedByAntiNextbot = true
elseif not isTooClose and farmsSuppressedByAntiNextbot then
if previousMoneyFarm then
Options.AutoMoneyFarmToggle:Set(true)
end
if previousTicketFarm then
Options.AutoTicketFarmToggle:Set(true)
end
if previousAutoWin then
Options.AFKFarmToggle:Set(true)
end
farmsSuppressedByAntiNextbot = false
end
if isTooClose then
safePart = workspace:FindFirstChild("SecurityPart")
if safePart then
humanoidRootPart.CFrame = safePart.CFrame + Vector3.new(math.random(-5, 5), 3, math.random(-5, 5))
end
end
end)
else
if antiNextbotConnection then
antiNextbotConnection:Disconnect()
antiNextbotConnection = nil
end
if farmsSuppressedByAntiNextbot then
if previousMoneyFarm then
Options.AutoMoneyFarmToggle:Set(true)
end
if previousTicketFarm then
Options.AutoTicketFarmToggle:Set(true)
end
if previousAutoWin then
Options.AFKFarmToggle:Set(true)
end
farmsSuppressedByAntiNextbot = false
end
end
end)
AntiNextbotTeleportTypeDropdown:OnChanged(function(value)
featureStates.AntiNextbotTeleportType = value
end)
AntiNextbotDistanceInput:OnChanged(function(value)
num = tonumber(value)
if num and num > 0 then
featureStates.AntiNextbotDistance = num
end
end)
DistanceTeleportInput:OnChanged(function(value)
num = tonumber(value)
if num and num > 0 then
featureStates.DistanceTeleport = num
end
end)
MiscTab = Window:AddTab({ Title = "Misc", Icon = "star" })
MiscTab:AddSection("Player Adjustments")
local currentSettings = {
Speed = "1500",
JumpCap = "1",
AirStrafeAcceleration = "187"
}
local appliedOnce = false
local playerModelPresent = false
local gameStatsPath = workspace:WaitForChild("Game"):WaitForChild("Stats")
getgenv().ApplyMode = "Not Optimized"
local requiredFields = {
Friction = true,
AirStrafeAcceleration = true,
JumpHeight = true,
RunDeaccel = true,
JumpSpeedMultiplier = true,
JumpCap = true,
SprintCap = true,
WalkSpeedMultiplier = true,
BhopEnabled = true,
Speed = true,
AirAcceleration = true,
RunAccel = true,
SprintAcceleration = true
}
local function hasAllFields(tbl)
if type(tbl) ~= "table" then return false end
for field, _ in pairs(requiredFields) do
if rawget(tbl, field) == nil then return false end
end
return true
end
local function getConfigTables()
local tables = {}
for _, obj in ipairs(getgc(true)) do
local success, result = pcall(function()
if hasAllFields(obj) then return obj end
end)
if success and result then
table.insert(tables, result)
end
end
return tables
end
local function applyToTables(callback)
local targets = getConfigTables()
if #targets == 0 then return end
if getgenv().ApplyMode == "Optimized" then
task.spawn(function()
for i, tableObj in ipairs(targets) do
if tableObj and typeof(tableObj) == "table" then
pcall(callback, tableObj)
end
if i % 3 == 0 then
task.wait()
end
end
end)
else
for i, tableObj in ipairs(targets) do
if tableObj and typeof(tableObj) == "table" then
pcall(callback, tableObj)
end
end
end
end
local function applyStoredSettings()
local settings = {
{field = "Speed", value = tonumber(currentSettings.Speed)},
{field = "JumpCap", value = tonumber(currentSettings.JumpCap)},
{field = "AirStrafeAcceleration", value = tonumber(currentSettings.AirStrafeAcceleration)}
}
for _, setting in ipairs(settings) do
if setting.value and tostring(setting.value) ~= "1500" and tostring(setting.value) ~= "1" and tostring(setting.value) ~= "187" then
applyToTables(function(obj)
obj[setting.field] = setting.value
end)
end
end
end
local function applySettingsWithDelay()
if not playerModelPresent or appliedOnce then
return
end
appliedOnce = true
local settings = {
{field = "Speed", value = tonumber(currentSettings.Speed), delay = math.random(1, 14)},
{field = "JumpCap", value = tonumber(currentSettings.JumpCap), delay = math.random(1, 14)},
{field = "AirStrafeAcceleration", value = tonumber(currentSettings.AirStrafeAcceleration), delay = math.random(1, 14)}
}
for _, setting in ipairs(settings) do
if setting.value and tostring(setting.value) ~= "1500" and tostring(setting.value) ~= "1" and tostring(setting.value) ~= "187" then
task.spawn(function()
task.wait(setting.delay)
applyToTables(function(obj)
obj[setting.field] = setting.value
end)
end)
end
end
end
local function isPlayerModelPresent()
local GameFolder = workspace:FindFirstChild("Game")
local PlayersFolder = GameFolder and GameFolder:FindFirstChild("Players")
return PlayersFolder and PlayersFolder:FindFirstChild(player.Name) ~= nil
end
SpeedInput = MiscTab:AddInput("SpeedInput", {
Title = "Player Speed",
Default = currentSettings.Speed,
Placeholder = "Default 1500",
Numeric = true,
Finished = false,
Callback = function(Value)
local val = tonumber(Value)
if val and val >= 1450 and val <= 100008888 then
currentSettings.Speed = tostring(val)
applyToTables(function(obj)
obj.Speed = val
end)
end
end
})
JumpPowerInput = MiscTab:AddInput("JumpPowerInput", {
Title = "Player Jump",
Default = "3",
Placeholder = "",
Numeric = true,
Finished = true,
Callback = function(Value)
if Value and tonumber(Value) then
JumpPowerValue = tonumber(Value)
end
end
})
JumpCapInput = MiscTab:AddInput("JumpCapInput", {
Title = "Player Jump Cap",
Default = currentSettings.JumpCap,
Placeholder = "Default 1",
Numeric = true,
Finished = false,
Callback = function(Value)
local val = tonumber(Value)
if val and val >= 0.1 and val <= 5088888 then
currentSettings.JumpCap = tostring(val)
applyToTables(function(obj)
obj.JumpCap = val
end)
end
end
})
StrafeInput = MiscTab:AddInput("StrafeInput", {
Title = "Player Strafe Acceleration",
Default = currentSettings.AirStrafeAcceleration,
Placeholder = "Default 187",
Numeric = true,
Finished = false,
Callback = function(Value)
local val = tonumber(Value)
if val and val >= 1 and val <= 1000888888 then
currentSettings.AirStrafeAcceleration = tostring(val)
applyToTables(function(obj)
obj.AirStrafeAcceleration = val
end)
end
end
})
ApplyMethodDropdown = MiscTab:AddDropdown("ApplyMethodDropdown", {
Title = "Select Apply Method",
Values = {"Not Optimized", "Optimized"},
Multi = false,
Default = getgenv().ApplyMode,
Callback = function(Value)
getgenv().ApplyMode = Value
end
})
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ChangeSettingRemote = ReplicatedStorage:WaitForChild("Events"):WaitForChild("Data"):WaitForChild("ChangeSetting")
local UpdatedEvent = ReplicatedStorage:WaitForChild("Modules"):WaitForChild("Client"):WaitForChild("Settings"):WaitForChild("Updated")
FovInput = MiscTab:AddInput("FovInput", {
Title = "Player FOV",
Default = "",
Numeric = true,
Finished = false,
Callback = function(Value)
local num = tonumber(Value)
if num then
ChangeSettingRemote:InvokeServer(2, num)
UpdatedEvent:Fire(2, num)
end
end
})
JumpPowerValue = 3
MaxJumpsValue = math.huge
CurrentJumpCount = 0
JumpHumanoid = nil
JumpRootPart = nil
Players.LocalPlayer.CharacterAdded:Connect(function(newChar)
task.wait(0.5)
JumpHumanoid = newChar:FindFirstChild("Humanoid")
JumpRootPart = newChar:FindFirstChild("HumanoidRootPart")
if JumpHumanoid and JumpRootPart then
CurrentJumpCount = 0
JumpHumanoid.StateChanged:Connect(function(oldState, newState)
if newState == Enum.HumanoidStateType.Landed then
CurrentJumpCount = 0
end
end)
JumpHumanoid.Jumping:Connect(function(isJumping)
if isJumping and CurrentJumpCount < MaxJumpsValue then
CurrentJumpCount = CurrentJumpCount + 1
JumpHumanoid.JumpHeight = JumpPowerValue
if CurrentJumpCount > 1 and JumpRootPart then
JumpRootPart:ApplyImpulse(Vector3.new(0, JumpPowerValue * JumpRootPart.Mass, 0))
end
end
end)
end
end)
-- Handle initial character
if Players.LocalPlayer.Character then
task.spawn(function()
task.wait(0.5)
JumpHumanoid = Players.LocalPlayer.Character:FindFirstChild("Humanoid")
JumpRootPart = Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if JumpHumanoid and JumpRootPart then
CurrentJumpCount = 0
JumpHumanoid.StateChanged:Connect(function(oldState, newState)
if newState == Enum.HumanoidStateType.Landed then
CurrentJumpCount = 0
end
end)
JumpHumanoid.Jumping:Connect(function(isJumping)
if isJumping and CurrentJumpCount < MaxJumpsValue then
CurrentJumpCount = CurrentJumpCount + 1
JumpHumanoid.JumpHeight = JumpPowerValue
if CurrentJumpCount > 1 and JumpRootPart then
JumpRootPart:ApplyImpulse(Vector3.new(0, JumpPowerValue * JumpRootPart.Mass, 0))
end
end
end)
end
end)
end
LocalPlayer.CharacterAdded:Connect(function(newChar)
character = newChar
task.wait(0.5)
humanoid = character:WaitForChild("Humanoid")
rootPart = character:WaitForChild("HumanoidRootPart")
end)
MiscTab:AddParagraph({
Title = "",
Content = ""
})
--====FAILED TO DECOMPILED CODE====--
JumpPowerToggle = MiscTab:AddToggle("JumpPowerToggle", {
Title = "Jump Power Toggle",
Default = false
})
JumpPowerToggle:OnChanged(function()
--====FAILED TO EXECUTE FUNCTION====--
end)
--====FAILED TO DECOMPILED CODE====--
PlayerJumpPowerInput = MiscTab:AddInput("PlayerJumpPowerInput", {
Title = "Player Jump Power",
Default = "Failed To Decode",
Placeholder = "Failed To Decode",
Numeric = true,
Finished = false,
Callback = function(Value)
--====FAILED TO EXECUTE CALLBACK====--
end
})
--====FAILED TO DECOMPILED CODE====--
WalkspeedToggle = MiscTab:AddToggle("WalkspeedToggle", {
Title = "Walkspeed Toggle",
Default = false
})
WalkspeedToggle:OnChanged(function()
--====FAILED TO EXECUTE FUNCTION====--
end)
--====FAILED TO DECOMPILED CODE====--
PlayerWalkspeedInput = MiscTab:AddInput("PlayerWalkspeedInput", {
Title = "Player Walkspeed",
Default = "Failed To Decode",
Placeholder = "Failed To Decode",
Numeric = true,
Finished = false,
Callback = function(Value)
--====FAILED TO EXECUTE CALLBACK====--
end
})
--====FAILED TO DECOMPILED CODE====--
BounceToggle = MiscTab:AddToggle("WalkspeedToggle", {
Title = "Walkspeed Toggle",
Default = false
})
BounceToggle:OnChanged(function()
--====FAILED TO EXECUTE FUNCTION====--
end)
--====FAILED TO DECOMPILED CODE====--
BounceInput = MiscTab:AddInput("BounceInput", {
Title = "Player Walkspeed",
Default = "Failed To Decode",
Placeholder = "Failed To Decode",
Numeric = true,
Finished = false,
Callback = function(Value)
--====FAILED TO EXECUTE CALLBACK====--
end
})
MiscTab:AddParagraph({
Title = "",
Content = ""
})
BounceToggle = MiscTab:AddToggle("BounceToggle", {
Title = "Modify Bounce",
Default = false
--[[ FAILED TO DECOMPILE FUNCTION]]
})
BounceInput = MiscTab:AddInput("BounceInput", {
Title = "Player Bounce",
Default = "80",
Placeholder = "Failed to Decode",
Numeric = true,
Finished = false
})
MiscTab:AddSection("Game Automations")
local InstantReviveToggle = MiscTab:AddToggle("InstantReviveToggle", {
Title = "Instant Revive",
Default = false
})
local ReviveWhileEmoteToggle = MiscTab:AddToggle("ReviveWhileEmoteToggle", {
Title = "Instant Revive While Emoting",
Default = false
})
local ReviveDelaySlider = MiscTab:AddSlider("ReviveDelaySlider", {
Title = "Revive Delay",
Min = 0,
Max = 1,
Default = 0.15,
Rounding = 2,
Callback = function(value)
getgenv().InstantReviveDelay = value
end
})
getgenv().InstantReviveDelay = 0.15
local InstantReviveModule = (function()
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer
local reviveRange = 10
local loopDelay = getgenv().InstantReviveDelay or 0.15
local enabled = false
local handle = nil
local stateConnection = nil
local isCurrentlyEmoting = false
local interactEvent = ReplicatedStorage:WaitForChild("Events"):WaitForChild("Character"):WaitForChild("Interact")
local function updateEmoteStatus()
if not LocalPlayer.Character then
isCurrentlyEmoting = false
return
end
local state = LocalPlayer.Character:GetAttribute("State")
isCurrentlyEmoting = state and string.find(state, "Emoting")
end
local function isPlayerDowned(pl)
if not pl or not pl.Character then return false end
local char = pl.Character
if char:GetAttribute("Downed") then return true end
local hum = char:FindFirstChild("Humanoid")
if hum and hum.Health <= 0 then return true end
return false
end
local function reviveLoop()
while enabled do
if isCurrentlyEmoting and not Options.ReviveWhileEmoteToggle.Value then
task.wait(0.3)
continue
end
local myChar = LocalPlayer.Character
if myChar and myChar:FindFirstChild("HumanoidRootPart") then
local myHRP = myChar.HumanoidRootPart
for _, pl in Players:GetPlayers() do
if pl ~= LocalPlayer and pl.Character and pl.Character:FindFirstChild("HumanoidRootPart") then
if isPlayerDowned(pl) then
local dist = (myHRP.Position - pl.Character.HumanoidRootPart.Position).Magnitude
if dist <= reviveRange then
pcall(function()
interactEvent:FireServer("Revive", true, pl.Name)
end)
end
end
end
end
end
task.wait(loopDelay)
end
end
local function start()
if handle then return end
enabled = true
updateEmoteStatus()
if LocalPlayer.Character then
stateConnection = LocalPlayer.Character:GetAttributeChangedSignal("State"):Connect(updateEmoteStatus)
end
LocalPlayer.CharacterAdded:Connect(function(char)
if stateConnection then stateConnection:Disconnect() end
stateConnection = char:GetAttributeChangedSignal("State"):Connect(updateEmoteStatus)
updateEmoteStatus()
end)
handle = task.spawn(reviveLoop)
end
local function stop()
enabled = false
if handle then task.cancel(handle) handle = nil end
if stateConnection then stateConnection:Disconnect() stateConnection = nil end
isCurrentlyEmoting = false
end
return {
Start = start,
Stop = stop,
SetDelay = function(d) loopDelay = d end,
}
end)()
InstantReviveToggle:OnChanged(function(state)
if state then
InstantReviveModule.SetDelay(getgenv().InstantReviveDelay)
InstantReviveModule.Start()
else
InstantReviveModule.Stop()
end
end)
ReviveDelaySlider:OnChanged(function(value)
getgenv().InstantReviveDelay = value
InstantReviveModule.SetDelay(value)
end)
MiscTab:AddParagraph({
Title = "",
Content = ""
})
AutoCarryToggle = MiscTab:AddToggle("AutoCarryToggle", {
Title = "Auto Carry",
Default = false
})
CarryGUIToggle = MiscTab:AddToggle("CarryGUIToggle", {
Title = "Carry GUI Button",
Default = false
})
CarryButtonSizeInput = MiscTab:AddInput("CarryButtonSizeInput", {
Title = "Carry Button Size",
Default = "200",
Placeholder = "Enter size (150-400)",
Numeric = true,
Finished = false,
Callback = function(Value)
if Value and tonumber(Value) then
local size = tonumber(Value)
local CoreGui = game:GetService("CoreGui")
local existingScreenGui = CoreGui:FindFirstChild("AutoCarryButtonGUI")
if existingScreenGui then
local button = existingScreenGui:FindFirstChild("GradientBtn")
if button then
local newWidth = math.max(150, math.min(size, 400))
local newHeight = math.max(60, math.min(size * 0.4, 160))
button.Size = UDim2.new(0, newWidth, 0, newHeight)
end
end
end
end
})
CarryKeybind = MiscTab:AddKeybind("CarryKeybind", {
Title = "Auto Carry Keybind",
Mode = "Toggle",
Default = "F3",
ChangedCallback = function(New)
Options.AutoCarryToggle:SetValue(not Options.AutoCarryToggle.Value)
end
})
local AutoCarryConnection = nil
local featureStates = featureStates or {}
local player = game:GetService("Players").LocalPlayer
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local function createGradientButton(parent, position, size, text)
local button = Instance.new("Frame")
button.Name = "GradientBtn"
button.BackgroundTransparency = 0.7
button.Size = size
button.Position = position
button.Draggable = true
button.Active = true
button.Selectable = true
button.Parent = parent
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(1, 0)
corner.Parent = button
local gradient = Instance.new("UIGradient")
gradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0))
}
gradient.Rotation = 45
gradient.Parent = button
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(120, 0, 0)
stroke.Thickness = 2
stroke.Parent = button
local label = Instance.new("TextLabel")
label.Text = text
label.Size = UDim2.new(1, 0, 1, 0)
label.BackgroundTransparency = 1
label.TextColor3 = Color3.fromRGB(255, 255, 255)
label.TextSize = 30
label.Font = Enum.Font.GothamMedium
label.Parent = button
local clicker = Instance.new("TextButton")
clicker.Size = UDim2.new(1, 0, 1, 0)
clicker.BackgroundTransparency = 1
clicker.Text = ""
clicker.ZIndex = 5
clicker.Active = false
clicker.Selectable = false
clicker.Parent = button
return button, clicker, stroke
end
local function startAutoCarry()
if AutoCarryConnection then return end
AutoCarryConnection = RunService.Heartbeat:Connect(function()
if not featureStates.AutoCarry then
return
end
local char = player.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if hrp then
for _, other in ipairs(Players:GetPlayers()) do
if other ~= player and other.Character and other.Character:FindFirstChild("HumanoidRootPart") then
local dist = (hrp.Position - other.Character.HumanoidRootPart.Position).Magnitude
if dist <= 20 then
local args = { "Carry", [3] = other.Name }
pcall(function()
game:GetService("ReplicatedStorage"):WaitForChild("Events"):WaitForChild("Character"):WaitForChild("Interact"):FireServer(unpack(args))
end)
task.wait(0.01)
end
end
end
end
end)
end
local function stopAutoCarry()
if AutoCarryConnection then
AutoCarryConnection:Disconnect()
AutoCarryConnection = nil
end
end
local function toggleAutoCarryGUI()
local CoreGui = game:GetService("CoreGui")
local existingScreenGui = CoreGui:FindFirstChild("AutoCarryButtonGUI")
if existingScreenGui then
existingScreenGui:Destroy()
else
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "AutoCarryButtonGUI"
screenGui.ResetOnSpawn = false
screenGui.Parent = CoreGui
local buttonSize = 200
if Options.CarryButtonSizeInput and Options.CarryButtonSizeInput.Value and tonumber(Options.CarryButtonSizeInput.Value) then
buttonSize = tonumber(Options.CarryButtonSizeInput.Value)
end
local btnWidth = math.max(150, math.min(buttonSize, 400))
local btnHeight = math.max(60, math.min(buttonSize * 0.4, 160))
local btn, clicker, stroke = createGradientButton(
screenGui,
UDim2.new(0.5, -btnWidth/2, 0.5, -btnHeight/2),
UDim2.new(0, btnWidth, 0, btnHeight),
"Auto Carry:Off"
)
local function updateButtonText()
if btn and btn:FindFirstChild("TextLabel") then
btn.TextLabel.Text = featureStates.AutoCarry and "Auto Carry:On" or "Auto Carry:Off"
end
end
updateButtonText()
clicker.MouseButton1Click:Connect(function()
featureStates.AutoCarry = not featureStates.AutoCarry
updateButtonText()
if featureStates.AutoCarry then
startAutoCarry()
else
stopAutoCarry()
end
end)
AutoCarryToggle:OnChanged(function(state)
featureStates.AutoCarry = state
updateButtonText()
if state then
startAutoCarry()
else
stopAutoCarry()
end
end)
end
end
AutoCarryToggle:OnChanged(function(state)
featureStates.AutoCarry = state
if state then
startAutoCarry()
else
stopAutoCarry()
end
end)
CarryGUIToggle:OnChanged(function(state)
if state then
toggleAutoCarryGUI()
else
local CoreGui = game:GetService("CoreGui")
local existingScreenGui = CoreGui:FindFirstChild("AutoCarryButtonGUI")
if existingScreenGui then
existingScreenGui:Destroy()
end
end
end)
MiscTab:AddParagraph({
Title = "",
Content = ""
})
AutoDrinkToggle = MiscTab:AddToggle("AutoDrinkToggle", {
Title = "Auto Drink Cola",
Default = false
})
DrinkDelayInput = MiscTab:AddInput("DrinkDelayInput", {
Title = "Drink Delay (seconds)",
Default = "0.5",
Placeholder = "Delay between drinks",
Numeric = true,
Finished = false,
Callback = function(Value)
if Value and tonumber(Value) then
local delay = tonumber(Value)
if delay > 0 then
featureStates.DrinkDelay = delay
end
end
end
})
local AutoDrinkConnection = nil
local featureStates = featureStates or {}
local player = game:GetService("Players").LocalPlayer
local RunService = game:GetService("RunService")
featureStates.DrinkDelay = 0.5
local function startAutoDrink()
if AutoDrinkConnection then return end
AutoDrinkConnection = task.spawn(function()
while featureStates.AutoDrink do
local ohTable1 = {
["Forced"] = true,
["Key"] = "Cola",
["Down"] = true
}
pcall(function()
player.PlayerScripts.Events.temporary_events.UseKeybind:Fire(ohTable1)
end)
task.wait(featureStates.DrinkDelay)
end
AutoDrinkConnection = nil
end)
end
local function stopAutoDrink()
if AutoDrinkConnection then
task.cancel(AutoDrinkConnection)
AutoDrinkConnection = nil
end
end
player.CharacterRemoving:Connect(function()
if featureStates.AutoDrink then
stopAutoDrink()
end
end)
player.CharacterAdded:Connect(function()
if featureStates.AutoDrink then
task.wait(1)
startAutoDrink()
end
end)
AutoDrinkToggle:OnChanged(function(state)
featureStates.AutoDrink = state
if state then
startAutoDrink()
else
stopAutoDrink()
end
end)
featureStates.AutoDrink = false
featureStates.AutoCarry = false
MiscTab:AddParagraph({
Title = "",
Content = ""
})
math.randomseed(tick())
local emoteInputs = {}
for i = 1, 12 do
emoteInputs[i] = MiscTab:AddInput("EmoteInput" .. i, {
Title = "Emote " .. i,
Default = "",
Placeholder = "Emote Name Here",
Finished = false,
Callback = function(Value)
featureStates["Emote" .. i] = Value
end
})
end
local emoteGui = nil
local emoteGuiButton = nil
local emoteGuiVisible = false
local player = game:GetService("Players").LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local featureStates = featureStates or {}
local isMobile = UserInputService.TouchEnabled
local emoteKeybindValue = ""
local function makeDraggable(frame)
frame.Active = true
frame.Draggable = true
local dragging = false
local dragStart, startPos
local function update(input)
local delta = input.Position - dragStart
frame.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
frame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = frame.Position
frame.BackgroundTransparency = 0.6
end
end)
frame.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
frame.BackgroundTransparency = 0.7
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
update(input)
end
end)
end
local function triggerRandomEmote()
local validEmotes = {}
for i = 1, 12 do
local emoteName = featureStates["Emote" .. i]
if emoteName and emoteName ~= "" then
table.insert(validEmotes, emoteName)
end
end
if #validEmotes > 0 then
math.randomseed(tick() + #validEmotes)
local ohTable1 = { ["Key"] = "Crouch", ["Down"] = true }
pcall(function()
player.PlayerScripts.Events.temporary_events.UseKeybind:Fire(ohTable1)
end)
local randomIndex = math.random(1, #validEmotes)
local randomEmote = validEmotes[randomIndex]
pcall(function()
ReplicatedStorage.Events.Character.Emote:FireServer(randomEmote)
end)
end
end
local function createGradientButton(parent, position, size, text)
local button = Instance.new("Frame")
button.Name = "GradientBtn"
button.BackgroundTransparency = 0.7
button.Size = size
button.Position = position
button.Draggable = true
button.Active = true
button.Selectable = true
button.Parent = parent
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(1, 0)
corner.Parent = button
local gradient = Instance.new("UIGradient")
gradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0))
}
gradient.Rotation = 45
gradient.Parent = button
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(120, 0, 0)
stroke.Thickness = 2
stroke.Parent = button
local label = Instance.new("TextLabel")
label.Text = text
label.Size = UDim2.new(1, 0, 1, 0)
label.BackgroundTransparency = 1
label.TextColor3 = Color3.fromRGB(255, 255, 255)
label.TextSize = 16
label.Font = Enum.Font.GothamMedium
label.TextWrapped = true
label.Parent = button
local clicker = Instance.new("TextButton")
clicker.Size = UDim2.new(1, 0, 1, 0)
clicker.BackgroundTransparency = 1
clicker.Text = ""
clicker.ZIndex = 5
clicker.Active = false
clicker.Selectable = false
clicker.Parent = button
clicker.MouseEnter:Connect(function()
stroke.Color = Color3.fromRGB(160, 0, 0)
end)
clicker.MouseLeave:Connect(function()
stroke.Color = Color3.fromRGB(120, 0, 0)
end)
return button, clicker, stroke
end
local function createEmoteGui(yOffset)
local emoteGuiOld = playerGui:FindFirstChild("EmoteGui")
if emoteGuiOld then emoteGuiOld:Destroy() end
emoteGui = Instance.new("ScreenGui")
emoteGui.Name = "EmoteGui"
emoteGui.IgnoreGuiInset = true
emoteGui.ResetOnSpawn = false
emoteGui.Enabled = emoteGuiVisible and isMobile
emoteGui.Parent = playerGui
local buttonText = "Emote Crouch " .. emoteKeybindValue
local btn, clicker, stroke = createGradientButton(
emoteGui,
UDim2.new(0.5, -100, 0.12 + (yOffset or 0), -40),
UDim2.new(0, 200, 0, 80),
buttonText
)
makeDraggable(btn)
clicker.MouseButton1Click:Connect(function()
triggerRandomEmote()
end)
emoteGuiButton = btn
end
EmoteKeybind = MiscTab:AddKeybind("EmoteKeybind", {
Title = "Emote Keybind",
Mode = "Toggle",
Default = "",
ChangedCallback = function(New)
emoteKeybindValue = New
if emoteGuiButton and emoteGuiButton:FindFirstChild("TextLabel") then
emoteGuiButton.TextLabel.Text = "Emote Crouch\nClick or Press " .. New
end
end,
Callback = function()
triggerRandomEmote()
end
})
EmoteGUIToggle = MiscTab:AddToggle("EmoteGUIToggle", {
Title = "Emote Crouch",
Description = "Click button or use keybind to trigger random emote. Only type emote name without space and inside your emote slot will work",
Default = false,
Callback = function(state)
emoteGuiVisible = state
if state then
if isMobile and not emoteGui then
createEmoteGui(0)
elseif emoteGui then
emoteGui.Enabled = isMobile
end
else
if emoteGui then
emoteGui:Destroy()
emoteGui = nil
emoteGuiButton = nil
end
end
end
})
player.CharacterAdded:Connect(function()
if emoteGuiVisible and isMobile and not emoteGui then
createEmoteGui(0)
end
end)
MiscTab:AddSection("Movement Modification")
local originalEmoteSpeeds = {}
local itemsFolder = game:GetService("ReplicatedStorage"):FindFirstChild("Items")
if itemsFolder then
local emotesFolder = itemsFolder:FindFirstChild("Emotes")
if emotesFolder then
for _, emoteModule in ipairs(emotesFolder:GetChildren()) do
if emoteModule:IsA("ModuleScript") then
local success, emoteData = pcall(require, emoteModule)
if success and emoteData and emoteData.EmoteInfo then
originalEmoteSpeeds[emoteModule.Name] = emoteData.EmoteInfo.SpeedMult
end
end
end
end
end
local function applyEmoteSpeed(speedValue)
if not itemsFolder then return end
local emotesFolder = itemsFolder:FindFirstChild("Emotes")
if not emotesFolder then return end
for _, emoteModule in ipairs(emotesFolder:GetChildren()) do
if emoteModule:IsA("ModuleScript") then
local success, emoteData = pcall(require, emoteModule)
if success and emoteData and emoteData.EmoteInfo and emoteData.EmoteInfo.SpeedMult ~= 0 then
emoteData.EmoteInfo.SpeedMult = speedValue
end
end
end
end
local function restoreOriginalEmoteSpeeds()
if not itemsFolder then return end
local emotesFolder = itemsFolder:FindFirstChild("Emotes")
if not emotesFolder then return end
for _, emoteModule in ipairs(emotesFolder:GetChildren()) do
if emoteModule:IsA("ModuleScript") then
local originalSpeed = originalEmoteSpeeds[emoteModule.Name]
if originalSpeed then
local success, emoteData = pcall(require, emoteModule)
if success and emoteData and emoteData.EmoteInfo then
emoteData.EmoteInfo.SpeedMult = originalSpeed
end
end
end
end
end
local requiredFields = {
Friction = true,
AirStrafeAcceleration = true,
JumpHeight = true,
RunDeaccel = true,
JumpSpeedMultiplier = true,
JumpCap = true,
SprintCap = true,
WalkSpeedMultiplier = true,
BhopEnabled = true,
Speed = true,
AirAcceleration = true,
RunAccel = true,
SprintAcceleration = true
}
local function getMatchingTables()
local matched = {}
for _, obj in pairs(getgc(true)) do
if typeof(obj) == "table" then
local ok = true
for field in pairs(requiredFields) do
if rawget(obj, field) == nil then
ok = false
break
end
end
if ok then
table.insert(matched, obj)
end
end
end
return matched
end
local function applySpeedMultiplier(speedMultiplier)
local targets = getMatchingTables()
for _, tableObj in ipairs(targets) do
if tableObj and typeof(tableObj) == "table" then
pcall(function()
tableObj.WalkSpeedMultiplier = speedMultiplier
end)
end
end
end
local player = game:GetService("Players").LocalPlayer
local function getPlayerObj()
local gamePlayers = workspace.Game and workspace.Game.Players
if not gamePlayers then return nil end
return gamePlayers:FindFirstChild(player.Name)
end
local playerObj = nil
local connection = nil
local emotingSpeed = 1.5
local function setupConnection(obj)
if connection then
connection:Disconnect()
connection = nil
end
playerObj = obj
if not obj then return end
local function onStateChanged()
local state = obj:GetAttribute("State")
local targetSpeed = (state == "Emoting") and emotingSpeed or 1.5
applySpeedMultiplier(targetSpeed)
end
onStateChanged()
connection = obj:GetAttributeChangedSignal("State"):Connect(onStateChanged)
end
local function resetMultiplierSpeed()
emotingSpeed = 1.5
applySpeedMultiplier(1.5)
end
EmoteSpeedModeDropdown = MiscTab:AddDropdown("EmoteSpeedModeDropdown", {
Title = "Emote speed mode",
Values = {"Nah", "Legit", "Multiplier speed"},
Multi = false,
Default = "Nah",
Callback = function(Value)
if Value == "Nah" then
resetMultiplierSpeed()
restoreOriginalEmoteSpeeds()
if connection then
connection:Disconnect()
connection = nil
end
elseif Value == "Multiplier speed" then
restoreOriginalEmoteSpeeds()
setupConnection(getPlayerObj())
task.spawn(function()
while Options.EmoteSpeedModeDropdown and Options.EmoteSpeedModeDropdown.Value == "Multiplier speed" do
task.wait(2)
local current = getPlayerObj()
if current ~= playerObj then
setupConnection(current)
elseif playerObj then
local state = playerObj:GetAttribute("State")
local targetSpeed = (state == "Emoting") and emotingSpeed or 1.5
applySpeedMultiplier(targetSpeed)
end
end
end)
elseif Value == "Legit" then
resetMultiplierSpeed()
if connection then
connection:Disconnect()
connection = nil
end
local speedValue = featureStates.EmoteSpeedValue or 2
applyEmoteSpeed(speedValue)
end
end
})
EmoteSpeedInput = MiscTab:AddInput("EmoteSpeedInput", {
Title = "Emote Speed Value",
Default = "1500",
Placeholder = "Enter speed value",
Numeric = true,
Finished = false,
Callback = function(Value)
local num = tonumber(Value)
if num and num > 0 then
featureStates.EmoteSpeedValue = num
local appliedValue = num / 1000
if Options.EmoteSpeedModeDropdown and Options.EmoteSpeedModeDropdown.Value == "Legit" then
applyEmoteSpeed(appliedValue)
elseif Options.EmoteSpeedModeDropdown and Options.EmoteSpeedModeDropdown.Value == "Multiplier speed" then
emotingSpeed = appliedValue
end
end
end
})
ApplyUnwalkableButton = MiscTab:AddButton({
Title = "Apply Speed to Unwalkable Emotes",
Callback = function()
if not itemsFolder then return end
local emotesFolder = itemsFolder:FindFirstChild("Emotes")
if not emotesFolder then return end
local speedValue = featureStates.EmoteSpeedValue or 2
for _, emoteModule in ipairs(emotesFolder:GetChildren()) do
if emoteModule:IsA("ModuleScript") then
local success, emoteData = pcall(require, emoteModule)
if success and emoteData and emoteData.EmoteInfo and emoteData.EmoteInfo.SpeedMult == 0 then
emoteData.EmoteInfo.SpeedMult = speedValue
end
end
end
end
})
ResetEmoteSpeedButton = MiscTab:AddButton({
Title = "Reset Emote Speed",
Callback = function()
Fluent:Notify({
Title = "Emote Speed",
Content = "Resetting emote speeds...",
Duration = 3
})
restoreOriginalEmoteSpeeds()
resetMultiplierSpeed()
end
})
local infiniteSlideEnabled = false
local slideFrictionValue = -8
local movementTables = {}
local infiniteSlideHeartbeat = nil
local infiniteSlideCharacterConn = nil
local RunService = game:GetService("RunService")
local player = game:GetService("Players").LocalPlayer
local requiredKeys = {
"Friction","AirStrafeAcceleration","JumpHeight","RunDeaccel",
"JumpSpeedMultiplier","JumpCap","SprintCap","WalkSpeedMultiplier",
"BhopEnabled","Speed","AirAcceleration","RunAccel","SprintAcceleration"
}
local function hasRequiredFields(tbl)
if typeof(tbl) ~= "table" then return false end
for _, key in ipairs(requiredKeys) do
if rawget(tbl, key) == nil then return false end
end
return true
end
local function findMovementTables()
movementTables = {}
for _, obj in ipairs(getgc(true)) do
if hasRequiredFields(obj) then
table.insert(movementTables, obj)
end
end
return #movementTables > 0
end
local function setSlideFriction(value)
local appliedCount = 0
for _, tbl in ipairs(movementTables) do
pcall(function()
tbl.Friction = value
appliedCount = appliedCount + 1
end)
end
if appliedCount == 0 then
for _, obj in ipairs(getgc(true)) do
if hasRequiredFields(obj) then
pcall(function()
obj.Friction = value
end)
end
end
end
end
local function updatePlayerModel()
local gameFolder = workspace:FindFirstChild("Game")
if not gameFolder then return false end
local playersFolder = gameFolder:FindFirstChild("Players")
if not playersFolder then return false end
local playerModel = playersFolder:FindFirstChild(player.Name)
return playerModel
end
local function infiniteSlideHeartbeatFunc()
if not infiniteSlideEnabled then return end
local playerModel = updatePlayerModel()
if not playerModel then return end
local state = playerModel:GetAttribute("State")
if state == "Slide" then
pcall(function()
playerModel:SetAttribute("State", "EmotingSlide")
end)
elseif state == "EmotingSlide" then
setSlideFriction(slideFrictionValue)
else
setSlideFriction(5)
end
end
local function onCharacterAddedSlide(character)
if not infiniteSlideEnabled then return end
for i = 1, 5 do
task.wait(0.5)
if updatePlayerModel() then
break
end
end
task.wait(0.5)
findMovementTables()
end
local function setInfiniteSlide(enabled)
infiniteSlideEnabled = enabled
if enabled then
findMovementTables()
updatePlayerModel()
if not infiniteSlideCharacterConn then
infiniteSlideCharacterConn = player.CharacterAdded:Connect(onCharacterAddedSlide)
end
if player.Character then
task.spawn(function()
onCharacterAddedSlide(player.Character)
end)
end
if infiniteSlideHeartbeat then infiniteSlideHeartbeat:Disconnect() end
infiniteSlideHeartbeat = RunService.Heartbeat:Connect(infiniteSlideHeartbeatFunc)
else
if infiniteSlideHeartbeat then
infiniteSlideHeartbeat:Disconnect()
infiniteSlideHeartbeat = nil
end
if infiniteSlideCharacterConn then
infiniteSlideCharacterConn:Disconnect()
infiniteSlideCharacterConn = nil
end
setSlideFriction(5)
movementTables = {}
end
end
InfiniteSlideToggle = MiscTab:AddToggle("InfiniteSlideToggle", {
Title = "Sprint Slide",
Default = false,
Callback = function(Value)
setInfiniteSlide(Value)
end
})
SlideFrictionInput = MiscTab:AddInput("SlideFrictionInput", {
Title = "Slide Speed (Negative only)",
Default = "-8",
Numeric = true,
Finished = false,
Callback = function(Value)
local num = tonumber(Value)
if num then
slideFrictionValue = num
if infiniteSlideEnabled then
setSlideFriction(slideFrictionValue)
end
end
end
})
MiscTab:AddParagraph({
Title = "",
Content = ""
})
local gravityEnabled = false
local originalGravity = workspace.Gravity
local gravityValue = 10
local gravityHeartbeat = nil
local gravityKeybindValue = "G"
local function createGravityButton()
local CoreGui = game:GetService("CoreGui")
local existingScreenGui = CoreGui:FindFirstChild("GravityButtonGUI")
if existingScreenGui then
existingScreenGui:Destroy()
else
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "GravityButtonGUI"
screenGui.ResetOnSpawn = false
screenGui.Parent = CoreGui
local buttonSize = 200
local btnWidth = math.max(150, math.min(buttonSize, 400))
local btnHeight = math.max(60, math.min(buttonSize * 0.4, 160))
local btn, clicker, stroke = createGradientButton(
screenGui,
UDim2.new(0.5, -btnWidth/2, 0.5, 60),
UDim2.new(0, btnWidth, 0, btnHeight),
gravityEnabled and "Gravity:On" or "Gravity:Off"
)
clicker.MouseButton1Click:Connect(function()
gravityEnabled = not gravityEnabled
if btn:FindFirstChild("TextLabel") then
btn.TextLabel.Text = gravityEnabled and "Gravity:On" or "Gravity:Off"
end
if gravityEnabled then
workspace.Gravity = gravityValue
else
workspace.Gravity = originalGravity
end
end)
end
end
local function toggleGravity()
gravityEnabled = not gravityEnabled
if gravityEnabled then
workspace.Gravity = gravityValue
else
workspace.Gravity = originalGravity
end
if Options.GravityButtonToggle and Options.GravityButtonToggle.Value then
createGravityButton()
end
end
GravityToggle = MiscTab:AddToggle("GravityToggle", {
Title = "Gravity",
Default = false,
Callback = function(Value)
gravityEnabled = Value
if Value then
workspace.Gravity = gravityValue
else
workspace.Gravity = originalGravity
end
end
})
GravityButtonToggle = MiscTab:AddToggle("GravityButtonToggle", {
Title = "Gravity Button GUI",
Default = false,
Callback = function(Value)
if Value then
createGravityButton()
else
local CoreGui = game:GetService("CoreGui")
local existingScreenGui = CoreGui:FindFirstChild("GravityButtonGUI")
if existingScreenGui then
existingScreenGui:Destroy()
end
end
end
})
GravityKeybind = MiscTab:AddKeybind("GravityKeybind", {
Title = "Gravity Keybind",
Mode = "Toggle",
Default = "G",
ChangedCallback = function(New)
gravityKeybindValue = New
end,
Callback = function()
toggleGravity()
end
})
GravityAdjustmentInput = MiscTab:AddInput("GravityAdjustmentInput", {
Title = "Gravity Adjustment",
Default = "10",
Placeholder = "Enter gravity value",
Numeric = true,
Finished = false,
Callback = function(Value)
local num = tonumber(Value)
if num and num > 0 then
gravityValue = num
if gravityEnabled then
workspace.Gravity = gravityValue
end
end
end
})
originalGravity = workspace.Gravity
GravityToggle:OnChanged(function(state)
if Options.GravityButtonToggle and Options.GravityButtonToggle.Value then
local CoreGui = game:GetService("CoreGui")
local screenGui = CoreGui:FindFirstChild("GravityButtonGUI")
if screenGui then
local button = screenGui:FindFirstChild("GradientBtn")
if button and button:FindFirstChild("TextLabel") then
button.TextLabel.Text = state and "Gravity:On" or "Gravity:Off"
end
end
end
end)
GravityButtonSizeInput = MiscTab:AddInput("GravityButtonSizeInput", {
Title = "Gravity Button Size",
Default = "1",
Numeric = true,
Finished = false,
Callback = function(Value)
if Value and tonumber(Value) then
local scale = tonumber(Value)
scale = math.max(0.5, math.min(scale, 3.0))
local CoreGui = game:GetService("CoreGui")
local existingScreenGui = CoreGui:FindFirstChild("GravityButtonGUI")
if existingScreenGui then
local button = existingScreenGui:FindFirstChild("GradientBtn")
if button then
local uiScale = button:FindFirstChild("UIScale") or Instance.new("UIScale")
uiScale.Scale = scale
uiScale.Parent = button
end
end
end
end
})
MiscTab:AddParagraph({
Title = "Heads up: Turn off infinite slide when bhopping to get better trims blah blah blah",
Content = ""
})
local player = game:GetService("Players").LocalPlayer
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
getgenv().autoJumpType = "Bounce"
getgenv().bhopMode = "Acceleration"
getgenv().bhopAccelValue = -0.5
getgenv().bhopHoldActive = false
getgenv().autoJumpEnabled = false
getgenv().jumpCooldown = 0.7
featureStates = featureStates or {}
featureStates.Bhop = false
featureStates.BhopHold = false
local isMobile = UserInputService.TouchEnabled
local bhopConnection = nil
local bhopLoaded = false
local bhopKeyConnection = nil
local characterConnection = nil
local frictionTables = {}
local Character = nil
local Humanoid = nil
local HumanoidRootPart = nil
local LastJump = 0
local GROUND_CHECK_DISTANCE = 3.5
local MAX_SLOPE_ANGLE = 45
local bhopButtonScreenGui = nil
local function findFrictionTables()
frictionTables = {}
for _, t in pairs(getgc(true)) do
if type(t) == "table" and rawget(t, "Friction") then
table.insert(frictionTables, {obj = t, original = t.Friction})
end
end
end
local function setFriction(value)
for _, e in ipairs(frictionTables) do
if e.obj and type(e.obj) == "table" and rawget(e.obj, "Friction") then
e.obj.Friction = value
end
end
end
local function resetBhopFriction()
for _, e in ipairs(frictionTables) do
if e.obj and type(e.obj) == "table" and rawget(e.obj, "Friction") then
e.obj.Friction = e.original
end
end
frictionTables = {}
end
local function applyBhopFriction()
if not (getgenv().autoJumpEnabled or getgenv().bhopHoldActive) then
resetBhopFriction()
return
end
if getgenv().bhopMode == "Acceleration" then
findFrictionTables()
if #frictionTables > 0 then
setFriction(getgenv().bhopAccelValue or -0.5)
end
else
resetBhopFriction()
end
end
local function IsOnGround()
if not Character or not HumanoidRootPart or not Humanoid then return false end
local state = Humanoid:GetState()
if state == Enum.HumanoidStateType.Jumping or
state == Enum.HumanoidStateType.Freefall or
state == Enum.HumanoidStateType.Swimming then
return false
end
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
raycastParams.FilterDescendantsInstances = {Character}
raycastParams.IgnoreWater = true
local rayOrigin = HumanoidRootPart.Position
local rayDirection = Vector3.new(0, -GROUND_CHECK_DISTANCE, 0)
local raycastResult = workspace:Raycast(rayOrigin, rayDirection, raycastParams)
if not raycastResult then return false end
local surfaceNormal = raycastResult.Normal
local angle = math.deg(math.acos(surfaceNormal:Dot(Vector3.new(0, 1, 0))))
return angle <= MAX_SLOPE_ANGLE
end
local function updateBhop()
if not bhopLoaded then return end
local character = player.Character
local humanoid = character and character:FindFirstChild("Humanoid")
if not character or not humanoid then
return
end
local isBhopActive = getgenv().autoJumpEnabled or getgenv().bhopHoldActive
if isBhopActive then
local now = tick()
if IsOnGround() and (now - LastJump) > getgenv().jumpCooldown then
if getgenv().autoJumpType == "Realistic" then
player.PlayerScripts.Events.temporary_events.JumpReact:Fire()
task.wait(0.1)
player.PlayerScripts.Events.temporary_events.EndJump:Fire()
else
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
LastJump = now
end
end
end
local function loadBhop()
if bhopLoaded then return end
bhopLoaded = true
if bhopConnection then
bhopConnection:Disconnect()
end
bhopConnection = RunService.Heartbeat:Connect(updateBhop)
applyBhopFriction()
end
local function unloadBhop()
if not bhopLoaded then return end
bhopLoaded = false
if bhopConnection then
bhopConnection:Disconnect()
bhopConnection = nil
end
getgenv().bhopHoldActive = false
resetBhopFriction()
end
local function checkBhopState()
local shouldLoad = getgenv().autoJumpEnabled or getgenv().bhopHoldActive
if shouldLoad then
loadBhop()
else
unloadBhop()
end
end
local function reapplyBhopOnRespawn()
if getgenv().autoJumpEnabled or getgenv().bhopHoldActive then
task.wait(0.5)
applyBhopFriction()
checkBhopState()
end
end
local function createBhopGradientButton()
local CoreGui = game:GetService("CoreGui")
if bhopButtonScreenGui then
bhopButtonScreenGui:Destroy()
bhopButtonScreenGui = nil
end
bhopButtonScreenGui = Instance.new("ScreenGui")
bhopButtonScreenGui.Name = "BhopButtonGUI"
bhopButtonScreenGui.ResetOnSpawn = false
bhopButtonScreenGui.Parent = CoreGui
local buttonSize = 200
local btnWidth = math.max(150, math.min(buttonSize, 400))
local btnHeight = math.max(60, math.min(buttonSize * 0.4, 160))
local btn, clicker, stroke = createGradientButton(
bhopButtonScreenGui,
UDim2.new(0.5, -btnWidth/2, 0.5, 120),
UDim2.new(0, btnWidth, 0, btnHeight),
getgenv().autoJumpEnabled and "Auto Jump: On" or "Auto Jump: Off"
)
clicker.MouseButton1Click:Connect(function()
getgenv().autoJumpEnabled = not getgenv().autoJumpEnabled
featureStates.Bhop = getgenv().autoJumpEnabled
if btn:FindFirstChild("TextLabel") then
btn.TextLabel.Text = getgenv().autoJumpEnabled and "Auto Jump: On" or "Auto Jump: Off"
end
if Options.BhopToggle then
Options.BhopToggle:SetValue(getgenv().autoJumpEnabled)
end
checkBhopState()
end)
return bhopButtonScreenGui
end
local function updateBhopButtonText()
if bhopButtonScreenGui and bhopButtonScreenGui:FindFirstChild("GradientBtn") then
local button = bhopButtonScreenGui:FindFirstChild("GradientBtn")
if button and button:FindFirstChild("TextLabel") then
button.TextLabel.Text = getgenv().autoJumpEnabled and "Auto Jump: On" or "Auto Jump: Off"
end
end
end
local function setupJumpButton()
local success, err = pcall(function()
local touchGui = player:WaitForChild("PlayerGui", 5):WaitForChild("TouchGui", 5)
if not touchGui then return end
local touchControlFrame = touchGui:WaitForChild("TouchControlFrame", 5)
if not touchControlFrame then return end
local jumpButton = touchControlFrame:WaitForChild("JumpButton", 5)
if not jumpButton then return end
jumpButton.MouseButton1Down:Connect(function()
if featureStates.BhopHold then
getgenv().bhopHoldActive = true
checkBhopState()
end
end)
jumpButton.MouseButton1Up:Connect(function()
getgenv().bhopHoldActive = false
checkBhopState()
end)
end)
end
AutoJumpTypeDropdown = MiscTab:AddDropdown("AutoJumpTypeDropdown", {
Title = "Auto Jump Type",
Values = {"Bounce", "Realistic"},
Multi = false,
Default = "Bounce",
Callback = function(Value)
getgenv().autoJumpType = Value
end
})
BhopToggle = MiscTab:AddToggle("BhopToggle", {
Title = "Bunny Hop",
Default = false,
Callback = function(Value)
featureStates.Bhop = Value
getgenv().autoJumpEnabled = Value
updateBhopButtonText()
checkBhopState()
end
})
BhopHoldToggle = MiscTab:AddToggle("BhopHoldToggle", {
Title = "Bhop Hold (Hold Space/Jump)",
Default = false,
Callback = function(Value)
featureStates.BhopHold = Value
if not Value then
getgenv().bhopHoldActive = false
checkBhopState()
end
end
})
BhopButtonToggle = MiscTab:AddToggle("BhopButtonToggle", {
Title = "Bhop Button GUI",
Default = false,
Callback = function(Value)
if Value then
createBhopGradientButton()
else
if bhopButtonScreenGui then
bhopButtonScreenGui:Destroy()
bhopButtonScreenGui = nil
end
end
end
})
BhopKeybind = MiscTab:AddKeybind("BhopKeybind", {
Title = "Bhop Keybind",
Mode = "Toggle",
Default = "B",
ChangedCallback = function(New)
end,
Callback = function()
getgenv().autoJumpEnabled = not getgenv().autoJumpEnabled
featureStates.Bhop = getgenv().autoJumpEnabled
if Options.BhopToggle then
Options.BhopToggle:SetValue(getgenv().autoJumpEnabled)
end
updateBhopButtonText()
checkBhopState()
end
})
BhopModeDropdown = MiscTab:AddDropdown("BhopModeDropdown", {
Title = "Bhop Mode",
Values = {"Acceleration", "No Acceleration"},
Multi = false,
Default = "Acceleration",
Callback = function(Value)
getgenv().bhopMode = Value
checkBhopState()
end
})
BhopAccelInput = MiscTab:AddInput("BhopAccelInput", {
Title = "Bhop Acceleration",
Default = "-0.5",
Placeholder = "Enter negative value (e.g., -0.5)",
Numeric = true,
Finished = false,
Callback = function(Value)
local num = tonumber(Value)
if num and string.sub(Value, 1, 1) == "-" then
getgenv().bhopAccelValue = num
if getgenv().autoJumpEnabled or getgenv().bhopHoldActive then
applyBhopFriction()
end
end
end
})
JumpCooldownInput = MiscTab:AddInput("JumpCooldownInput", {
Title = "Jump Cooldown (Seconds)",
Default = "0.7",
Placeholder = "Enter cooldown in seconds",
Numeric = true,
Finished = false,
Callback = function(Value)
local num = tonumber(Value)
if num and num > 0 then
getgenv().jumpCooldown = num
end
end
})
RunService.Heartbeat:Connect(function()
if not Character or not Character:IsDescendantOf(workspace) then
Character = player.Character or player.CharacterAdded:Wait()
if Character then
Humanoid = Character:FindFirstChildOfClass("Humanoid")
HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
else
Humanoid = nil
HumanoidRootPart = nil
end
end
end)
if characterConnection then
characterConnection:Disconnect()
end
characterConnection = player.CharacterAdded:Connect(function(character)
Character = character
Humanoid = character:WaitForChild("Humanoid")
HumanoidRootPart = character:WaitForChild("HumanoidRootPart")
setupJumpButton()
reapplyBhopOnRespawn()
end)
UserInputService.InputBegan:Connect(function(input, gameProcessedEvent)
if gameProcessedEvent then return end
if input.KeyCode == Enum.KeyCode.Space and featureStates.BhopHold then
getgenv().bhopHoldActive = true
checkBhopState()
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.KeyCode == Enum.KeyCode.Space then
getgenv().bhopHoldActive = false
end
end)
Players.PlayerRemoving:Connect(function(leavingPlayer)
if leavingPlayer == player then
unloadBhop()
if bhopKeyConnection then
bhopKeyConnection:Disconnect()
end
if characterConnection then
characterConnection:Disconnect()
end
end
end)
task.spawn(function()
task.wait(1)
if Options.BhopButtonToggle and Options.BhopButtonToggle.Value then
createBhopGradientButton()
end
end)
MiscTab:AddSection("Utilities")
local lagSwitchEnabled = false
local lagSwitchKeybindValue = "F12"
local lagDelayValue = 0.1
local lagIntensity = 1000000
local isLagActive = false
local function performMathLag()
local startTime = tick()
local duration = lagDelayValue
while tick() - startTime < duration do
for i = 1, lagIntensity do
local a = math.random(1, 1000000) * math.random(1, 1000000)
a = a / math.random(1, 10000)
local b = math.sqrt(math.random(1, 1000000))
b = b * math.pi * math.exp(1)
local c = math.sin(math.rad(math.random(1, 360))) * math.cos(math.rad(math.random(1, 360)))
end
end
end
local function toggleLagSwitch()
if not isLagActive then
isLagActive = true
task.spawn(function()
performMathLag()
isLagActive = false
end)
end
end
local function createLagSwitchButton()
local CoreGui = game:GetService("CoreGui")
local existingScreenGui = CoreGui:FindFirstChild("LagSwitchButtonGUI")
if existingScreenGui then
existingScreenGui:Destroy()
else
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "LagSwitchButtonGUI"
screenGui.ResetOnSpawn = false
screenGui.Parent = CoreGui
local buttonSize = 200
local btnWidth = math.max(150, math.min(buttonSize, 400))
local btnHeight = math.max(60, math.min(buttonSize * 0.4, 160))
local btn, clicker, stroke = createGradientButton(
screenGui,
UDim2.new(0.5, -btnWidth/2, 0.5, 1),
UDim2.new(0, btnWidth, 0, btnHeight),
"Lag Switch"
)
clicker.MouseButton1Click:Connect(function()
toggleLagSwitch()
end)
end
end
LagSwitchButtonToggle = MiscTab:AddToggle("LagSwitchButtonToggle", {
Title = "Lag Switch Button",
Default = false,
Callback = function(Value)
if Value then
createLagSwitchButton()
else
local CoreGui = game:GetService("CoreGui")
local existingScreenGui = CoreGui:FindFirstChild("LagSwitchButtonGUI")
if existingScreenGui then
existingScreenGui:Destroy()
end
end
end
})
LagSwitchKeybind = MiscTab:AddKeybind("LagSwitchKeybind", {
Title = "Lag Switch Keybind",
Mode = "Toggle",
Default = "F12",
ChangedCallback = function(New)
lagSwitchKeybindValue = New
local CoreGui = game:GetService("CoreGui")
local screenGui = CoreGui:FindFirstChild("LagSwitchButtonGUI")
if screenGui then
local button = screenGui:FindFirstChild("GradientBtn")
if button and button:FindFirstChild("TextLabel") then
button.TextLabel.Text = "Lag Switch"
end
end
end,
Callback = function()
toggleLagSwitch()
end
})
LagDelayInput = MiscTab:AddInput("LagDelayInput", {
Title = "Lag Delay (Seconds)",
Default = "0.1",
Placeholder = "Enter delay in seconds",
Numeric = true,
Finished = false,
Callback = function(Value)
local num = tonumber(Value)
if num and num > 0 and num <= 5 then
lagDelayValue = num
end
end
})
LagIntensityInput = MiscTab:AddInput("LagIntensityInput", {
Title = "Lag Intensity",
Default = "1000000",
Placeholder = "Enter intensity (1000-10000000)",
Numeric = true,
Finished = false,
Callback = function(Value)
local num = tonumber(Value)
if num and num >= 1000 and num <= 10000000 then
lagIntensity = num
end
end
})
TriggerLagSwitchButton = MiscTab:AddButton({
Title = "Trigger Lag Switch",
Callback = function()
toggleLagSwitch()
end
})
LagSwitchKeybind:OnChanged(function()
if Options.LagSwitchButtonToggle and Options.LagSwitchButtonToggle.Value then
local CoreGui = game:GetService("CoreGui")
local screenGui = CoreGui:FindFirstChild("LagSwitchButtonGUI")
if screenGui then
local button = screenGui:FindFirstChild("GradientBtn")
if button and button:FindFirstChild("TextLabel") then
button.TextLabel.Text = "Lag Switch"
end
end
end
end)
LagSwitchScaleInput = MiscTab:AddInput("LagSwitchScaleInput", {
Title = "Lag Switch Button Scale",
Default = "1.0",
Numeric = true,
Finished = false,
Callback = function(Value)
if Value and tonumber(Value) then
local scale = tonumber(Value)
local CoreGui = game:GetService("CoreGui")
local existingScreenGui = CoreGui:FindFirstChild("LagSwitchButtonGUI")
if existingScreenGui then
local button = existingScreenGui:FindFirstChild("GradientBtn")
if button then
local uiScale = button:FindFirstChild("UIScale") or Instance.new("UIScale")
uiScale.Scale = math.max(0.5, math.min(scale, 3.0))
uiScale.Parent = button
end
end
end
end
})
MiscTab:AddSection("Camera Adjustments")
local cameraStretchConnection = nil
local stretchHorizontal = 0.80
local stretchVertical = 0.80
local function setupCameraStretch()
if cameraStretchConnection then
cameraStretchConnection:Disconnect()
cameraStretchConnection = nil
end
cameraStretchConnection = game:GetService("RunService").RenderStepped:Connect(function()
local Camera = workspace.CurrentCamera
if Camera then
Camera.CFrame = Camera.CFrame * CFrame.new(0, 0, 0, stretchHorizontal, 0, 0, 0, stretchVertical, 0, 0, 0, 1)
end
end)
end
CameraStretchToggle = MiscTab:AddToggle("CameraStretchToggle", {
Title = "Camera Stretch",
Default = false,
Callback = function(Value)
if Value then
setupCameraStretch()
else
if cameraStretchConnection then
cameraStretchConnection:Disconnect()
cameraStretchConnection = nil
end
end
end
})
CameraStretchHorizontalInput = MiscTab:AddInput("CameraStretchHorizontalInput", {
Title = "Camera Stretch Horizontal",
Default = "0.80",
Placeholder = "Enter horizontal stretch value",
Numeric = true,
Finished = false,
Callback = function(Value)
local num = tonumber(Value)
if num then
stretchHorizontal = num
if Options.CameraStretchToggle and Options.CameraStretchToggle.Value then
setupCameraStretch()
end
end
end
})
CameraStretchVerticalInput = MiscTab:AddInput("CameraStretchVerticalInput", {
Title = "Camera Stretch Vertical",
Default = "0.80",
Placeholder = "Enter vertical stretch value",
Numeric = true,
Finished = false,
Callback = function(Value)
local num = tonumber(Value)
if num then
stretchVertical = num
if Options.CameraStretchToggle and Options.CameraStretchToggle.Value then
setupCameraStretch()
end
end
end
})
MiscTab:AddSection("Client Modification")
FullBrightToggle = MiscTab:AddToggle("FullBrightToggle", {
Title = "Full Bright",
Default = false,
Callback = function(state)
featureStates.FullBright = state
if state then
local Lighting = game:GetService("Lighting")
featureStates.originalBrightness = Lighting.Brightness
featureStates.originalAmbient = Lighting.Ambient
featureStates.originalOutdoorAmbient = Lighting.OutdoorAmbient
featureStates.originalColorShiftBottom = Lighting.ColorShift_Bottom
featureStates.originalColorShiftTop = Lighting.ColorShift_Top
local function applyFullBright()
if Lighting.Brightness ~= 1 then
Lighting.Brightness = 1
end
if Lighting.Ambient ~= Color3.new(1, 1, 1) then
Lighting.Ambient = Color3.new(1, 1, 1)
end
if Lighting.OutdoorAmbient ~= Color3.new(1, 1, 1) then
Lighting.OutdoorAmbient = Color3.new(1, 1, 1)
end
if Lighting.ColorShift_Bottom ~= Color3.new(1, 1, 1) then
Lighting.ColorShift_Bottom = Color3.new(1, 1, 1)
end
if Lighting.ColorShift_Top ~= Color3.new(1, 1, 1) then
Lighting.ColorShift_Top = Color3.new(1, 1, 1)
end
end
applyFullBright()
if featureStates.fullBrightConnection then
featureStates.fullBrightConnection:Disconnect()
end
featureStates.fullBrightConnection = RunService.Heartbeat:Connect(function()
if featureStates.FullBright then
applyFullBright()
end
end)
featureStates.fullBrightCharConnection = game.Players.LocalPlayer.CharacterAdded:Connect(function()
task.wait(1)
if featureStates.FullBright then
applyFullBright()
end
end)
else
if featureStates.fullBrightConnection then
featureStates.fullBrightConnection:Disconnect()
featureStates.fullBrightConnection = nil
end
if featureStates.fullBrightCharConnection then
featureStates.fullBrightCharConnection:Disconnect()
featureStates.fullBrightCharConnection = nil
end
if featureStates.originalBrightness then
local Lighting = game:GetService("Lighting")
Lighting.Brightness = featureStates.originalBrightness
Lighting.Ambient = featureStates.originalAmbient
Lighting.OutdoorAmbient = featureStates.originalOutdoorAmbient
Lighting.ColorShift_Bottom = featureStates.originalColorShiftBottom
Lighting.ColorShift_Top = featureStates.originalColorShiftTop
end
end
end
})
AntiLag1 = MiscTab:AddButton({
Title = "Anti lag 1",
Callback = function()
local Lighting = game:GetService("Lighting")
local Terrain = workspace:FindFirstChildOfClass("Terrain")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
Lighting.GlobalShadows = false
Lighting.FogEnd = 1e10
Lighting.Brightness = 1
if Terrain then
Terrain.WaterWaveSize = 0
Terrain.WaterWaveSpeed = 0
Terrain.WaterReflectance = 0
Terrain.WaterTransparency = 1
end
for _, obj in ipairs(workspace:GetDescendants()) do
if obj:IsA("BasePart") then
obj.Material = Enum.Material.Plastic
obj.Reflectance = 0
elseif obj:IsA("Decal") or obj:IsA("Texture") then
obj:Destroy()
elseif obj:IsA("ParticleEmitter") or obj:IsA("Trail") then
obj:Destroy()
elseif obj:IsA("PointLight") or obj:IsA("SpotLight") or obj:IsA("SurfaceLight") then
obj:Destroy()
end
end
for _, player in ipairs(Players:GetPlayers()) do
local char = player.Character
if char then
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("Accessory") or part:IsA("Clothing") then
part:Destroy()
end
end
end
end
end
})
AntiLag2 = MiscTab:AddButton({
Title = "Anti lag 2",
Callback = function()
local ToDisable = {
Textures = true,
VisualEffects = true,
Parts = true,
Particles = true,
Sky = true
}
local ToEnable = {
FullBright = false
}
local Stuff = {}
for _, v in next, game:GetDescendants() do
if ToDisable.Parts then
if v:IsA("Part") or v:IsA("UnionOperation") or v:IsA("BasePart") then
v.Material = Enum.Material.SmoothPlastic
table.insert(Stuff, 1, v)
end
end
if ToDisable.Particles then
if v:IsA("ParticleEmitter") or v:IsA("Smoke") or v:IsA("Explosion") or v:IsA("Sparkles") or v:IsA("Fire") then
v.Enabled = false
table.insert(Stuff, 1, v)
end
end
if ToDisable.VisualEffects then
if v:IsA("BloomEffect") or v:IsA("BlurEffect") or v:IsA("DepthOfFieldEffect") or v:IsA("SunRaysEffect") then
v.Enabled = false
table.insert(Stuff, 1, v)
end
end
if ToDisable.Textures then
if v:IsA("Decal") or v:IsA("Texture") then
v.Texture = ""
table.insert(Stuff, 1, v)
end
end
if ToDisable.Sky then
if v:IsA("Sky") then
v.Parent = nil
table.insert(Stuff, 1, v)
end
end
end
if ToEnable.FullBright then
local Lighting = game:GetService("Lighting")
Lighting.FogColor = Color3.fromRGB(255, 255, 255)
Lighting.FogEnd = math.huge
Lighting.FogStart = math.huge
Lighting.Ambient = Color3.fromRGB(255, 255, 255)
Lighting.Brightness = 5
Lighting.ColorShift_Bottom = Color3.fromRGB(255, 255, 255)
Lighting.ColorShift_Top = Color3.fromRGB(255, 255, 255)
Lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255)
Lighting.Outlines = true
end
end
})
AntiLag3 = MiscTab:AddButton({
Title = "Remove Texture",
Callback = function()
for _, part in ipairs(workspace:GetDescendants()) do
if part:IsA("Part") or part:IsA("MeshPart") or part:IsA("UnionOperation") or part:IsA("WedgePart") or part:IsA("CornerWedgePart") then
if part:IsA("Part") then
part.Material = Enum.Material.SmoothPlastic
end
if part:FindFirstChildWhichIsA("Texture") then
local texture = part:FindFirstChildWhichIsA("Texture")
texture.Texture = "rbxassetid://0"
end
if part:FindFirstChildWhichIsA("Decal") then
local decal = part:FindFirstChildWhichIsA("Decal")
decal.Texture = "rbxassetid://0"
end
end
end
end
})
NoFogToggle = MiscTab:AddToggle("NoFogToggle", {
Title = "Remove fog",
Default = false,
Callback = function(state)
local Lighting = game:GetService("Lighting")
if state then
featureStates.originalFogEnd = Lighting.FogEnd
featureStates.originalAtmospheres = {}
for _, atmosphere in ipairs(Lighting:GetChildren()) do
if atmosphere:IsA("Atmosphere") then
table.insert(featureStates.originalAtmospheres, atmosphere:Clone())
end
end
Lighting.FogEnd = 1000000
for _, v in pairs(Lighting:GetDescendants()) do
if v:IsA("Atmosphere") then
v:Destroy()
end
end
else
if featureStates.originalFogEnd then
Lighting.FogEnd = featureStates.originalFogEnd
end
if featureStates.originalAtmospheres then
for _, atmosphere in ipairs(featureStates.originalAtmospheres) do
if not atmosphere.Parent then
local newAtmosphere = Instance.new("Atmosphere")
for _, prop in pairs({"Density", "Offset", "Color", "Decay", "Glare", "Haze"}) do
if atmosphere[prop] then
newAtmosphere[prop] = atmosphere[prop]
end
end
newAtmosphere.Parent = Lighting
end
end
end
end
end
})
VisualsTab = Window:AddTab({ Title = "Visuals", Icon = "star" })
VisualsTab:AddSection("Cosmetics Changer")
cosmetic1 = ""
cosmetic2 = ""
originalCosmetic1 = ""
originalCosmetic2 = ""
isSwapped = false
CurrentCosmeticsInput = VisualsTab:AddInput("CurrentCosmeticsInput", {
Title = "Current Cosmetics",
Default = "",
Placeholder = "Enter current cosmetic name",
Finished = false,
Callback = function(Value)
cosmetic1 = Value
if not isSwapped then
originalCosmetic1 = Value
end
end
})
SelectCosmeticsInput = VisualsTab:AddInput("SelectCosmeticsInput", {
Title = "Select Cosmetics",
Default = "",
Placeholder = "Enter cosmetic to swap with",
Finished = false,
Callback = function(Value)
cosmetic2 = Value
if not isSwapped then
originalCosmetic2 = Value
end
end
})
ApplyCosmeticsButton = VisualsTab:AddButton({
Title = "Apply Cosmetics",
Callback = function()
pcall(function()
if cosmetic1 == "" or cosmetic2 == "" or cosmetic1 == cosmetic2 then return end
ReplicatedStorage = game:GetService("ReplicatedStorage")
Cosmetics = ReplicatedStorage:WaitForChild("Items"):WaitForChild("Cosmetics")
function normalize(str)
return str:gsub("%s+", ""):lower()
end
function levenshtein(s, t)
m = #s
n = #t
d = {}
for i = 0, m do d[i] = {[0] = i} end
for j = 0, n do d[0][j] = j end
for i = 1, m do
for j = 1, n do
cost = (s:sub(i,i) == t:sub(j,j)) and 0 or 1
d[i][j] = math.min(
d[i-1][j] + 1,
d[i][j-1] + 1,
d[i-1][j-1] + cost
)
end
end
return d[m][n]
end
function similarity(s, t)
nS = normalize(s)
nT = normalize(t)
dist = levenshtein(nS, nT)
return 1 - dist / math.max(#nS, #nT)
end
function findSimilar(name)
bestMatch = name
bestScore = 0.5
for _, c in ipairs(Cosmetics:GetChildren()) do
score = similarity(name, c.Name)
if score > bestScore then
bestScore = score
bestMatch = c.Name
end
end
return bestMatch
end
cosmetic1 = findSimilar(cosmetic1)
cosmetic2 = findSimilar(cosmetic2)
a = Cosmetics:FindFirstChild(cosmetic1)
b = Cosmetics:FindFirstChild(cosmetic2)
if not a or not b then return end
if not isSwapped then
originalCosmetic1 = cosmetic1
originalCosmetic2 = cosmetic2
end
tempRoot = Instance.new("Folder", Cosmetics)
tempRoot.Name = "__temp_swap_" .. tostring(tick()):gsub("%.", "_")
tempA = Instance.new("Folder", tempRoot)
tempB = Instance.new("Folder", tempRoot)
for _, c in ipairs(a:GetChildren()) do c.Parent = tempA end
for _, c in ipairs(b:GetChildren()) do c.Parent = tempB end
for _, c in ipairs(tempA:GetChildren()) do c.Parent = b end
for _, c in ipairs(tempB:GetChildren()) do c.Parent = a end
tempRoot:Destroy()
isSwapped = true
Fluent:Notify({
Title = "Cosmetics Changer",
Content = "Successfully swapped " .. cosmetic1 .. " with " .. cosmetic2,
Duration = 3
})
end)
end
})
ResetCosmeticsButton = VisualsTab:AddButton({
Title = "Reset Cosmetics",
Callback = function()
pcall(function()
if not isSwapped then
Fluent:Notify({
Title = "Cosmetics Changer",
Content = "No cosmetics have been swapped yet",
Duration = 3
})
return
end
if originalCosmetic1 == "" or originalCosmetic2 == "" then
Fluent:Notify({
Title = "Cosmetics Changer",
Content = "Original cosmetic names not found",
Duration = 3
})
return
end
ReplicatedStorage = game:GetService("ReplicatedStorage")
Cosmetics = ReplicatedStorage:WaitForChild("Items"):WaitForChild("Cosmetics")
function normalize(str)
return str:gsub("%s+", ""):lower()
end
function findSimilar(name)
bestMatch = name
bestScore = 0.5
for _, c in ipairs(Cosmetics:GetChildren()) do
normalizedInput = normalize(name)
normalizedCosmetic = normalize(c.Name)
if normalizedInput == normalizedCosmetic then
return c.Name
end
end
return name
end
resetCosmetic1 = findSimilar(originalCosmetic1)
resetCosmetic2 = findSimilar(originalCosmetic2)
a = Cosmetics:FindFirstChild(cosmetic1)
b = Cosmetics:FindFirstChild(cosmetic2)
if a and b then
tempRoot = Instance.new("Folder", Cosmetics)
tempRoot.Name = "__temp_reset_" .. tostring(tick()):gsub("%.", "_")
tempA = Instance.new("Folder", tempRoot)
tempB = Instance.new("Folder", tempRoot)
for _, c in ipairs(a:GetChildren()) do c.Parent = tempA end
for _, c in ipairs(b:GetChildren()) do c.Parent = tempB end
for _, c in ipairs(tempA:GetChildren()) do c.Parent = b end
for _, c in ipairs(tempB:GetChildren()) do c.Parent = a end
tempRoot:Destroy()
isSwapped = false
Fluent:Notify({
Title = "Cosmetics Changer",
Content = "Successfully reset cosmetics to original state",
Duration = 3
})
else
Fluent:Notify({
Title = "Cosmetics Changer",
Content = "Could not find swapped cosmetics to reset",
Duration = 3
})
end
end)
end
})
VisualsTab:AddSection("CarryAnimation Replacer")
currentCarryAnim = ""
selectedCarryAnim = ""
lastCurrentCarryAnim = ""
lastSelectedCarryAnim = ""
isSwapped = false
function normalizeString(str)
return str:gsub("%s+", ""):lower()
end
function isValidCarryAnimation(name)
carryAnimations = game:GetService("ReplicatedStorage"):FindFirstChild("Items")
if not carryAnimations then return false end
carryAnimations = carryAnimations:FindFirstChild("CarryAnimations")
if not carryAnimations then return false end
normalizedInput = normalizeString(name)
for _, anim in ipairs(carryAnimations:GetChildren()) do
if normalizeString(anim.Name) == normalizedInput then
return true, anim.Name
end
end
return false
end
function revertPreviousSwap()
if lastCurrentCarryAnim ~= "" and lastSelectedCarryAnim ~= "" and isSwapped then
carryAnimations = game:GetService("ReplicatedStorage"):FindFirstChild("Items")
if carryAnimations then
carryAnimations = carryAnimations:FindFirstChild("CarryAnimations")
if carryAnimations then
lastCurrentValid, lastCurrentActual = isValidCarryAnimation(lastCurrentCarryAnim)
lastSelectedValid, lastSelectedActual = isValidCarryAnimation(lastSelectedCarryAnim)
if lastCurrentValid and lastSelectedValid then
pcall(function()
currentFolder = carryAnimations:FindFirstChild(lastCurrentActual)
selectedFolder = carryAnimations:FindFirstChild(lastSelectedActual)
if currentFolder and selectedFolder then
tempRoot = Instance.new("Folder")
tempRoot.Name = "__temp_revert_swap_" .. tostring(tick()):gsub("%.", "_")
tempRoot.Parent = carryAnimations
tempCurrent = Instance.new("Folder")
tempCurrent.Name = "tempCurrent"
tempCurrent.Parent = tempRoot
tempSelected = Instance.new("Folder")
tempSelected.Name = "tempSelected"
tempSelected.Parent = tempRoot
for _, child in ipairs(currentFolder:GetChildren()) do
child.Parent = tempCurrent
end
for _, child in ipairs(selectedFolder:GetChildren()) do
child.Parent = tempSelected
end
for _, child in ipairs(tempCurrent:GetChildren()) do
child.Parent = selectedFolder
end
for _, child in ipairs(tempSelected:GetChildren()) do
child.Parent = currentFolder
end
tempRoot:Destroy()
end
end)
end
end
end
isSwapped = false
end
end
CurrentCarryAnimInput = VisualsTab:AddInput("CurrentCarryAnimInput", {
Title = "Current CarryAnimation",
Default = "",
Placeholder = "Enter current carry animation name",
Finished = false,
Callback = function(Value)
if Value ~= currentCarryAnim and currentCarryAnim ~= "" then
revertPreviousSwap()
end
currentCarryAnim = Value
end
})
SelectedCarryAnimInput = VisualsTab:AddInput("SelectedCarryAnimInput", {
Title = "Selected CarryAnimation",
Default = "",
Placeholder = "Enter selected carry animation name",
Finished = false,
Callback = function(Value)
if Value ~= selectedCarryAnim and selectedCarryAnim ~= "" then
revertPreviousSwap()
end
selectedCarryAnim = Value
end
})
ApplyCarryAnimButton = VisualsTab:AddButton({
Title = "Apply CarryAnimation Swap",
Callback = function()
currentNorm = normalizeString(currentCarryAnim)
selectedNorm = normalizeString(selectedCarryAnim)
if currentNorm == "" or selectedNorm == "" then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "Both animation names must be filled",
Duration = 3
})
return
end
if currentNorm == selectedNorm then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "Animation names cannot be the same",
Duration = 3
})
return
end
carryAnimations = game:GetService("ReplicatedStorage"):FindFirstChild("Items")
if not carryAnimations then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "CarryAnimations folder not found",
Duration = 3
})
return
end
carryAnimations = carryAnimations:FindFirstChild("CarryAnimations")
if not carryAnimations then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "CarryAnimations folder not found",
Duration = 3
})
return
end
currentAnim, currentActualName = isValidCarryAnimation(currentCarryAnim)
selectedAnim, selectedActualName = isValidCarryAnimation(selectedCarryAnim)
if not currentAnim then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "Current animation not found: " .. currentCarryAnim,
Duration = 3
})
return
end
if not selectedAnim then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "Selected animation not found: " .. selectedCarryAnim,
Duration = 3
})
return
end
pcall(function()
revertPreviousSwap()
currentFolder = carryAnimations:FindFirstChild(currentActualName)
selectedFolder = carryAnimations:FindFirstChild(selectedActualName)
if not currentFolder or not selectedFolder then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "One or both animations not found in folder",
Duration = 3
})
return
end
tempRoot = Instance.new("Folder")
tempRoot.Name = "__temp_carry_swap_" .. tostring(tick()):gsub("%.", "_")
tempRoot.Parent = carryAnimations
tempCurrent = Instance.new("Folder")
tempCurrent.Name = "tempCurrent"
tempCurrent.Parent = tempRoot
tempSelected = Instance.new("Folder")
tempSelected.Name = "tempSelected"
tempSelected.Parent = tempRoot
for _, child in ipairs(currentFolder:GetChildren()) do
child.Parent = tempCurrent
end
for _, child in ipairs(selectedFolder:GetChildren()) do
child.Parent = tempSelected
end
for _, child in ipairs(tempCurrent:GetChildren()) do
child.Parent = selectedFolder
end
for _, child in ipairs(tempSelected:GetChildren()) do
child.Parent = currentFolder
end
tempRoot:Destroy()
lastCurrentCarryAnim = currentCarryAnim
lastSelectedCarryAnim = selectedCarryAnim
isSwapped = true
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "Successfully swapped " .. currentActualName .. " with " .. selectedActualName,
Duration = 3
})
end)
end
})
ResetCarryAnimButton = VisualsTab:AddButton({
Title = "Reset All CarryAnimations",
Callback = function()
revertPreviousSwap()
currentCarryAnim = ""
selectedCarryAnim = ""
lastCurrentCarryAnim = ""
lastSelectedCarryAnim = ""
isSwapped = false
CurrentCarryAnimInput:SetValue("")
SelectedCarryAnimInput:SetValue("")
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "All animations reset to original",
Duration = 3
})
end
})
VisualsTab:AddSection("NameTag Changers")
function updateNametagList()
nametagValues = {"Ignore", "None"}
nametagsFolder = game:GetService("ReplicatedStorage").Items.Nametags
if nametagsFolder then
for _, nametagModule in ipairs(nametagsFolder:GetChildren()) do
if nametagModule:IsA("ModuleScript") then
success, nametagData = pcall(require, nametagModule)
if success and nametagData and nametagData.AppearanceInfo then
table.insert(nametagValues, nametagData.AppearanceInfo.Name)
end
end
end
end
return nametagValues
end
VisualNametagDropdown = VisualsTab:AddDropdown("VisualNametagDropdown", {
Title = "Visual Nametag",
Description = "Select nametag appearance",
Values = updateNametagList(),
Multi = false,
Default = "Ignore",
Callback = function(Value)
playerFolder = workspace.Game.Players:FindFirstChild(game.Players.LocalPlayer.Name)
if playerFolder then
if Value == "None" then
playerFolder:SetAttribute("Nametag", nil)
elseif Value ~= "Ignore" then
cleanValue = Value:gsub("%s+", "")
playerFolder:SetAttribute("Nametag", cleanValue)
end
end
end
})
game.Players.LocalPlayer.CharacterAdded:Connect(function(character)
task.wait(1)
playerFolder = workspace.Game.Players:FindFirstChild(game.Players.LocalPlayer.Name)
if playerFolder and Options.VisualNametagDropdown and Options.VisualNametagDropdown.Value ~= "Ignore" then
if Options.VisualNametagDropdown.Value == "None" then
playerFolder:SetAttribute("Nametag", nil)
else
cleanValue = Options.VisualNametagDropdown.Value:gsub("%s+", "")
playerFolder:SetAttribute("Nametag", cleanValue)
end
end
end)
game:GetService("RunService").Heartbeat:Connect(function()
playerFolder = workspace.Game.Players:FindFirstChild(game.Players.LocalPlayer.Name)
if playerFolder and Options.VisualNametagDropdown and Options.VisualNametagDropdown.Value ~= "Ignore" then
if Options.VisualNametagDropdown.Value == "None" then
playerFolder:SetAttribute("Nametag", nil)
else
cleanValue = Options.VisualNametagDropdown.Value:gsub("%s+", "")
currentTag = playerFolder:GetAttribute("Nametag")
if currentTag ~= cleanValue then
playerFolder:SetAttribute("Nametag", cleanValue)
end
end
end
end)
VisualsTab:AddSection("Fake Streaks")
FakeStreaksInput = VisualsTab:AddInput("FakeStreaksInput", {
Title = "Fake Streaks",
Default = "",
Placeholder = "Enter streak value",
Numeric = true,
Finished = false,
Callback = function(Value)
num = tonumber(Value)
if num then
game:GetService("Players").LocalPlayer:SetAttribute("Streak", num)
end
end
})
task.spawn(function()
task.wait(1)
currentStreak = game:GetService("Players").LocalPlayer:GetAttribute("Streak")
if currentStreak then
FakeStreaksInput:SetValue(tostring(currentStreak))
end
end)
VisualsTab:AddSection("Emote Changer")
player = game:GetService("Players").LocalPlayer
ReplicatedStorage = game:GetService("ReplicatedStorage")
Events = ReplicatedStorage:WaitForChild("Events", 10)
CharacterFolder = Events and Events:WaitForChild("Character", 10)
EmoteRemote = CharacterFolder and CharacterFolder:WaitForChild("Emote", 10)
PassCharacterInfo = CharacterFolder and CharacterFolder:WaitForChild("PassCharacterInfo", 10)
remoteSignal = PassCharacterInfo and PassCharacterInfo.OnClientEvent
currentTag = nil
currentEmotes = {}
selectEmotes = {}
emoteEnabled = {}
currentEmoteInputs = {}
selectEmoteInputs = {}
for i = 1, 12 do
currentEmotes[i] = ""
selectEmotes[i] = ""
emoteEnabled[i] = false
end
function readTagFromFolder(f)
if not f then return nil end
tagAttribute = f:GetAttribute("Tag")
if tagAttribute ~= nil then
return tagAttribute
end
tagChild = f:FindFirstChild("Tag")
if tagChild and tagChild:IsA("ValueBase") then
return tagChild.Value
end
return nil
end
function onRespawn()
currentTag = nil
pendingSlot = nil
task.spawn(function()
startTime = tick()
while tick() - startTime < 10 do
if workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players") then
playerFolder = workspace.Game.Players:FindFirstChild(player.Name)
if playerFolder then
currentTag = readTagFromFolder(playerFolder)
if currentTag then
tagNumber = tonumber(currentTag)
if tagNumber and tagNumber >= 0 and tagNumber <= 255 then
print("Emote Changer: Found tag", tagNumber)
break
else
currentTag = nil
end
end
end
end
task.wait(0.5)
end
if not currentTag then
print("Emote Changer: Could not find tag after 10 seconds")
end
end)
end
pendingSlot = nil
blockOriginalEmote = false
function fireSelect(slot)
if not currentTag then
print("Emote Changer: No current tag")
return
end
tagNumber = tonumber(currentTag)
if not tagNumber or tagNumber < 0 or tagNumber > 255 then
print("Emote Changer: Invalid tag number", tagNumber)
return
end
if not selectEmotes[slot] or selectEmotes[slot] == "" then
print("Emote Changer: No select emote for slot", slot)
return
end
print("Emote Changer: Firing emote", selectEmotes[slot], "for slot", slot, "tag", tagNumber)
if remoteSignal then
pcall(function()
buf = buffer.create(2)
buffer.writeu8(buf, 0, tagNumber)
buffer.writeu8(buf, 1, 17)
firesignal(remoteSignal, buf, {selectEmotes[slot]})
end)
else
print("Emote Changer: remoteSignal is nil")
end
end
if PassCharacterInfo and EmoteRemote then
print("Emote Changer: Setting up emote changer...")
PassCharacterInfo.OnClientEvent:Connect(function(...)
if not pendingSlot then return end
slot = pendingSlot
pendingSlot = nil
task.wait(0.1)
fireSelect(slot)
end)
success, oldNamecall = pcall(function()
oldNamecall = hookmetamethod(game, "__namecall", function(self, ...)
methodName = getnamecallmethod()
args = {...}
if methodName == "FireServer" and self == EmoteRemote and type(args[1]) == "string" then
print("Emote Changer: Detected emote fire:", args[1])
for i = 1, 12 do
if emoteEnabled[i] and currentEmotes[i] ~= "" and args[1] == currentEmotes[i] then
print("Emote Changer: Matched emote slot", i, args[1], "->", selectEmotes[i])
pendingSlot = i
blockOriginalEmote = true
task.spawn(function()
task.wait(0.1)
blockOriginalEmote = false
if pendingSlot == i then
pendingSlot = nil
fireSelect(i)
end
end)
if blockOriginalEmote then
print("Emote Changer: Blocking original emote")
return nil
end
end
end
end
return oldNamecall(self, ...)
end)
return oldNamecall
end)
if success then
print("Emote Changer: Hook installed successfully")
else
warn("Emote Changer: Error hooking __namecall:", oldNamecall)
end
if player.Character then
task.spawn(onRespawn)
end
player.CharacterAdded:Connect(function()
task.wait(1)
onRespawn()
end)
if workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players") then
workspace.Game.Players.ChildAdded:Connect(function(child)
if child.Name == player.Name then
task.wait(0.5)
onRespawn()
end
end)
workspace.Game.Players.ChildRemoved:Connect(function(child)
if child.Name == player.Name then
currentTag = nil
pendingSlot = nil
end
end)
end
else
print("Emote Changer: Required remotes not found")
end
for i = 1, 12 do
currentEmoteInputs[i] = VisualsTab:AddInput("CurrentEmoteInput" .. i, {
Title = "Current Emote " .. i,
Default = "",
Placeholder = "Enter current emote name",
Finished = false,
Callback = function(Value)
currentEmotes[i] = Value:gsub("%s+", "")
print("Emote Changer: Set current emote " .. i .. " to: " .. currentEmotes[i])
end
})
end
VisualsTab:AddParagraph({ Title = "", Content = "" })
for i = 1, 12 do
selectEmoteInputs[i] = VisualsTab:AddInput("SelectEmoteInput" .. i, {
Title = "Select Emote " .. i,
Default = "",
Placeholder = "Enter select emote name",
Finished = false,
Callback = function(Value)
selectEmotes[i] = Value:gsub("%s+", "")
print("Emote Changer: Set select emote " .. i .. " to: " .. selectEmotes[i])
end
})
end
VisualsEmoteApply = VisualsTab:AddButton({
Title = "Apply Emote Mappings",
Callback = function()
hasAnyEmote = false
for i = 1, 12 do
if currentEmotes[i] ~= "" or selectEmotes[i] ~= "" then
hasAnyEmote = true
break
end
end
if not hasAnyEmote then
Fluent:Notify({
Title = "Emote Changer",
Content = "Please enter your emote",
Duration = 3
})
return
end
function normalizeEmoteName(name)
return name:gsub("%s+", ""):lower()
end
function isValidEmote(emoteName)
if emoteName == "" then return false, "" end
normalizedInput = normalizeEmoteName(emoteName)
ItemsFolder = game:GetService("ReplicatedStorage"):FindFirstChild("Items")
if ItemsFolder then
emotesFolder = ItemsFolder:FindFirstChild("Emotes")
if emotesFolder then
for _, emoteModule in ipairs(emotesFolder:GetChildren()) do
if emoteModule:IsA("ModuleScript") then
normalizedEmote = normalizeEmoteName(emoteModule.Name)
if normalizedEmote == normalizedInput then
return true, emoteModule.Name
end
end
end
end
end
return false, ""
end
sameEmoteSlots = {}
missingEmoteSlots = {}
invalidEmoteSlots = {}
successfulSlots = {}
for i = 1, 12 do
if currentEmotes[i] ~= "" and selectEmotes[i] ~= "" then
currentValid, currentActual = isValidEmote(currentEmotes[i])
selectValid, selectActual = isValidEmote(selectEmotes[i])
if not currentValid and not selectValid then
table.insert(invalidEmoteSlots, {slot = i, currentInvalid = true, currentName = currentEmotes[i], selectInvalid = true, selectName = selectEmotes[i]})
elseif not currentValid then
table.insert(invalidEmoteSlots, {slot = i, currentInvalid = true, currentName = currentEmotes[i], selectInvalid = false, selectName = selectEmotes[i]})
elseif not selectValid then
table.insert(invalidEmoteSlots, {slot = i, currentInvalid = false, currentName = currentEmotes[i], selectInvalid = true, selectName = selectEmotes[i]})
elseif currentActual:lower() == selectActual:lower() then
table.insert(sameEmoteSlots, i)
else
table.insert(successfulSlots, {slot = i, current = currentActual, select = selectActual})
end
elseif currentEmotes[i] ~= "" or selectEmotes[i] ~= "" then
table.insert(missingEmoteSlots, i)
end
end
message = ""
if #successfulSlots > 0 then
message = message .. "✓ Successfully applied emote on:\n"
for _, data in ipairs(successfulSlots) do
message = message .. "Slot " .. data.slot .. " Emote: " .. data.current .. " → " .. data.select .. "\n"
emoteEnabled[data.slot] = true
print("Emote Changer: Enabled slot", data.slot, data.current, "->", data.select)
end
message = message .. "\n"
end
if #sameEmoteSlots > 0 then
message = message .. "✗ Failed to apply emote on:\n"
for _, slot in ipairs(sameEmoteSlots) do
message = message .. "Slot " .. slot .. " - Cannot change emote with the same name\n"
emoteEnabled[slot] = false
end
message = message .. "\n"
end
if #invalidEmoteSlots > 0 then
message = message .. "✗ Failed to apply emote on:\n"
for _, data in ipairs(invalidEmoteSlots) do
message = message .. "Slot " .. data.slot .. " - "
if data.currentInvalid and data.selectInvalid then
message = message .. "Invalid current emote: \"" .. data.currentName .. "\", Invalid select emote: \"" .. data.selectName .. "\"\n"
elseif data.currentInvalid then
message = message .. "Invalid current emote: \"" .. data.currentName .. "\", Select emote: \"" .. data.selectName .. "\"\n"
else
message = message .. "Current emote: \"" .. data.currentName .. "\", Invalid select emote: \"" .. data.selectName .. "\"\n"
end
emoteEnabled[data.slot] = false
end
message = message .. "\n"
end
if #missingEmoteSlots > 0 then
message = message .. "✗ Failed to apply emote on:\n"
for _, slot in ipairs(missingEmoteSlots) do
if currentEmotes[slot] == "" then
message = message .. "Slot " .. slot .. " - Current emote slot is missing text\n"
else
message = message .. "Slot " .. slot .. " - Select emote slot is missing text\n"
end
emoteEnabled[slot] = false
end
end
Fluent:Notify({
Title = "Emote Changer",
Content = message,
Duration = 8
})
print("Emote Changer: Applied mappings")
print("Enabled slots:")
for i = 1, 12 do
if emoteEnabled[i] then
print("Slot " .. i .. ": " .. currentEmotes[i] .. " -> " .. selectEmotes[i])
end
end
end
})
VisualsEmoteReset = VisualsTab:AddButton({
Title = "Reset All Emotes",
Callback = function()
for i = 1, 12 do
currentEmotes[i] = ""
selectEmotes[i] = ""
emoteEnabled[i] = false
if currentEmoteInputs[i] then
currentEmoteInputs[i]:SetValue("")
end
if selectEmoteInputs[i] then
selectEmoteInputs[i]:SetValue("")
end
end
Fluent:Notify({
Title = "Emote Changer",
Content = "All emotes have been reset!",
Duration = 3
})
end
})
VisualsTab:AddSection("Emote Replacer (very buggy)")
EmoteReplacer = {
CurrentEmotes = {},
SelectedEmotes = {},
SwappedPairs = {},
InputFields = {}
}
for i = 1, 12 do
EmoteReplacer.CurrentEmotes[i] = ""
EmoteReplacer.SelectedEmotes[i] = ""
end
VisualsTab:AddParagraph({ Title = "This Script is for bad executor", Content = "" })
VisualsTab:AddParagraph({ Title = "Current Emotes", Content = "" })
for i = 1, 12 do
EmoteReplacer.InputFields["CurrentEmote" .. i] = VisualsTab:AddInput("CurrentEmote" .. i, {
Title = "Current Emote " .. i,
Default = "",
Placeholder = "Enter current emote name",
Finished = false,
Callback = function(Value)
EmoteReplacer.CurrentEmotes[i] = Value
end
})
end
VisualsTab:AddParagraph({ Title = "Selected Emotes", Content = "" })
for i = 1, 12 do
EmoteReplacer.InputFields["SelectedEmote" .. i] = VisualsTab:AddInput("SelectedEmote" .. i, {
Title = "Select Emote " .. i,
Default = "",
Placeholder = "Enter replacement emote name",
Finished = false,
Callback = function(Value)
EmoteReplacer.SelectedEmotes[i] = Value
end
})
end
function SwapEmoteNames(currentName, selectedName)
Items = game:GetService("ReplicatedStorage"):FindFirstChild("Items")
if not Items then
print("Emote Replacer: Items folder not found")
return false
end
EmotesFolder = Items:FindFirstChild("Emotes")
if not EmotesFolder then
print("Emote Replacer: Emotes folder not found")
return false
end
currentEmoteObj = EmotesFolder:FindFirstChild(currentName)
selectedEmoteObj = EmotesFolder:FindFirstChild(selectedName)
if currentEmoteObj and selectedEmoteObj then
tempName = selectedName .. "_EmoteSwapTemp"
while EmotesFolder:FindFirstChild(tempName) do
tempName = tempName .. "_"
end
currentEmoteObj.Name = tempName
selectedEmoteObj.Name = currentName
currentEmoteObj.Name = selectedName
print("Emote Replacer: Swapped", currentName, "with", selectedName)
return true
else
print("Emote Replacer: Could not find emotes:", currentName, "or", selectedName)
return false
end
end
function ResetEmoteNames()
Items = game:GetService("ReplicatedStorage"):FindFirstChild("Items")
if not Items then return false end
EmotesFolder = Items:FindFirstChild("Emotes")
if not EmotesFolder then return false end
for currentEmote, selectedEmote in pairs(EmoteReplacer.SwappedPairs) do
currentEmoteObj = EmotesFolder:FindFirstChild(selectedEmote)
selectedEmoteObj = EmotesFolder:FindFirstChild(currentEmote)
if currentEmoteObj and selectedEmoteObj then
tempName = currentEmote .. "_EmoteSwapTemp"
while EmotesFolder:FindFirstChild(tempName) do
tempName = tempName .. "_"
end
currentEmoteObj.Name = tempName
selectedEmoteObj.Name = selectedEmote
currentEmoteObj.Name = currentEmote
print("Emote Replacer: Reset", selectedEmote, "back to", currentEmote)
end
end
return true
end
EmoteSwapApplyButton = VisualsTab:AddButton({
Title = "Apply Emote Swap",
Callback = function()
swappedCount = 0
failedCount = 0
for i = 1, 12 do
currentEmote = EmoteReplacer.CurrentEmotes[i]
selectedEmote = EmoteReplacer.SelectedEmotes[i]
if currentEmote ~= "" and selectedEmote ~= "" then
if SwapEmoteNames(currentEmote, selectedEmote) then
EmoteReplacer.SwappedPairs[currentEmote] = selectedEmote
swappedCount = swappedCount + 1
else
failedCount = failedCount + 1
end
end
end
message = ""
if swappedCount > 0 then
message = "Successfully swapped " .. tostring(swappedCount) .. " emote(s)"
end
if failedCount > 0 then
if message ~= "" then message = message .. " | " end
message = message .. "Failed to swap " .. tostring(failedCount) .. " emote(s)"
end
if message == "" then
message = "No emotes specified to swap"
end
Fluent:Notify({
Title = "Emote Replacer",
Content = message,
Duration = 3
})
end
})
EmoteSwapResetButton = VisualsTab:AddButton({
Title = "Reset Emote Module",
Callback = function()
if ResetEmoteNames() then
EmoteReplacer.SwappedPairs = {}
for i = 1, 12 do
EmoteReplacer.CurrentEmotes[i] = ""
EmoteReplacer.SelectedEmotes[i] = ""
if EmoteReplacer.InputFields["CurrentEmote" .. i] then
EmoteReplacer.InputFields["CurrentEmote" .. i]:SetValue("")
end
if EmoteReplacer.InputFields["SelectedEmote" .. i] then
EmoteReplacer.InputFields["SelectedEmote" .. i]:SetValue("")
end
end
Fluent:Notify({
Title = "Emote Replacer",
Content = "All emotes have been restored to original names!",
Duration = 3
})
else
Fluent:Notify({
Title = "Emote Replacer",
Content = "Failed to reset emotes!",
Duration = 3
})
end
end
})
player.CharacterRemoving:Connect(function()
if next(EmoteReplacer.SwappedPairs) then
ResetEmoteNames()
end
end)
player.CharacterAdded:Connect(function(character)
task.wait(1)
if character:GetAttribute("Downed") then
return
end
if next(EmoteReplacer.SwappedPairs) then
for currentEmote, selectedEmote in pairs(EmoteReplacer.SwappedPairs) do
SwapEmoteNames(currentEmote, selectedEmote)
end
end
end)
local SettingsTab = Window:AddTab({ Title = "Settings", Icon = "settings" })
SettingsTab:AddSection("Configuration")
SettingsTab:AddButton({
Title = "Save Configuration",
Description = "Save current settings to config file",
Callback = function()
SaveManager:Save()
Fluent:Notify({
Title = "Settings",
Content = "Configuration saved successfully!",
Duration = 3
})
end
})
SettingsTab:AddButton({
Title = "Load Configuration",
Description = "Load settings from config file",
Callback = function()
SaveManager:Load()
Fluent:Notify({
Title = "Settings",
Content = "Configuration loaded successfully!",
Duration = 3
})
end
})
SettingsTab:AddButton({
Title = "Reset Configuration",
Description = "Reset all settings to default",
Callback = function()
Window:Dialog({
Title = "Reset Configuration",
Content = "Are you sure you want to reset all settings to default?",
Buttons = {
{
Title = "Confirm",
Callback = function()
SaveManager:Reset()
Fluent:Notify({
Title = "Settings",
Content = "Configuration reset to default!",
Duration = 3
})
end
},
{
Title = "Cancel",
Callback = function()
print("Reset cancelled.")
end
}
}
})
end
})
SettingsTab:AddParagraph({
Title = "Auto Load",
Content = "The configuration will automatically load when the script starts."
})
SettingsTab:AddSection("Interface Manager")
InterfaceManager:SetLibrary(Fluent)
InterfaceManager:SetFolder("DraconicXEvade")
InterfaceManager:BuildInterfaceSection(SettingsTab)
SettingsTab:AddSection("Save Manager")
SaveManager:SetLibrary(Fluent)
SaveManager:IgnoreThemeSettings()
SaveManager:SetIgnoreIndexes({})
SaveManager:SetFolder("DraconicXEvade/Config")
SaveManager:BuildConfigSection(SettingsTab)
task.spawn(function()
task.wait(1)
SaveManager:LoadAutoloadConfig()
end)
Window:SelectTab(1)
SaveManager:LoadAutoloadConfig()
loadstring(game:HttpGet('https://raw.githubusercontent.com/Pnsdgsa/Script-kids/refs/heads/main/Scripthub/Darahub/evade/TimerGUI-NoRepeat'))()Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: github.com, raw.githubusercontent.com.
More Features