Run it
Copy the script and paste it into your executor.
lp = :().LocalPlayer
pgui = lp:()
pgui:()
pgui.DraconicHubGui:()
:():(, {
Title = ,
Text = ,
Duration =
})
Fluent = (:())()
SaveManager = Fluent.SaveManager
InterfaceManager = Fluent.InterfaceManager
Window = Fluent:({
Title = ,
SubTitle = ,
TabWidth = ,
Size = .(, ),
Theme = ,
MinimizeKey = .KeyCode.LeftControl,
Search =
})
FloatingButton = (:(,))()
FloatingButton.(Window)
Tabs = {
Main = Window:({ Title = , Icon = })
}
Options = Fluent.Options
Fluent:({
Title = ,
Content = ,
Duration =
})
Players = :()
RunService = :()
ReplicatedStorage = :()
VirtualUser = :()
LocalPlayer = Players.LocalPlayer
NextbotBillboards = {}
nextbotLoop =
TicketBillboards = {}
ExternalESP =
ExternalESPLoaded =
ExternalNextbotESP =
ExternalNextbotESPLoaded =
()
_, obj (:())
obj:() obj:()
obj.Name:() obj.Name:() obj.Name:()
obj:()
playerGui = :().LocalPlayer:()
playerGui
_, gui (playerGui:())
gui:() gui:() gui:()
gui.Name:() gui.Name:()
gui:()
coreGui = :()
_, gui (coreGui:())
gui:() gui:()
gui.Name:() gui.Name:()
gui:()
(()
drawings = {}
_, v (() {})
(v) ==
v.Visible ~= v.Color ~= v.Thickness ~=
.(drawings, v)
_, drawing (drawings)
drawing.Remove
(() drawing:() )
)
playerTracerElements = {}
botTracerElements = {}
playerTracerConnection =
botTracerConnection =
lastSavedPosition =
respawnConnection =
AutoSelfReviveConnection =
hasRevived =
SelfReviveMethod =
AntiAFKConnection =
autoWhistleHandle =
stableCameraInstance =
()
cleaned =
_, player (Players:())
player ~= LocalPlayer
player.Character
_, obj (player.Character:())
obj:()
objName = obj.Name:()
objName:()
objName:()
objName:()
objName:()
objName:()
obj:()
cleaned = cleaned +
guiContainers = {
:(),
LocalPlayer.PlayerGui
}
_, container (guiContainers)
_, gui (container:())
gui:() gui:()
guiName = gui.Name:()
(guiName:() guiName:())
guiName:()
guiName:()
gui:()
cleaned = cleaned +
cleaned
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)
()
ExternalTicketESPLoaded .UpdateTicketESP
(.UpdateTicketESP)
ticketsFound = {}
gameFolder = :()
gameFolder
effects = gameFolder:()
effects
tickets = effects:()
tickets
_, ticket (tickets:())
ticket:() ticket:()
part = ticket:()
(ticket:()
ticket:()
ticket.PrimaryPart
ticket:())
ticket:() ticket
part
ticketsFound[ticket] = part
ticket, data (TicketBillboards)
ticketsFound[ticket] ticket.Parent
data.esp
data.esp:()
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
AutoSelfReviveConnection = character:():(()
isDowned = character:()
isDowned
SelfReviveMethod ==
hasRevived
hasRevived =
(()
ReplicatedStorage.Events.Player.ChangePlayerMode:()
)
.(, ()
hasRevived =
)
SelfReviveMethod ==
hasRevived
hasRevived =
lastPos =
character character:()
lastPos = character.HumanoidRootPart.Position
(()
ReplicatedStorage:():():():()
)
.(()
i = ,
newChar = LocalPlayer.Character
newChar newChar ~= character
newHRP = newChar:()
newHRP lastPos
newHRP.CFrame = .(lastPos)
.()
)
.(, ()
hasRevived =
)
)
respawnConnection = LocalPlayer.CharacterAdded:((newChar)
.()
newHumanoid = newChar:()
newHRP = newChar:()
AutoSelfReviveConnection = newChar:():(()
isDowned = newChar:()
isDowned
SelfReviveMethod ==
hasRevived
hasRevived =
(()
ReplicatedStorage.Events.Player.ChangePlayerMode:()
)
.(, ()
hasRevived =
)
SelfReviveMethod ==
hasRevived
hasRevived =
lastPos =
newHRP
lastPos = newHRP.Position
(()
ReplicatedStorage:():():():()
)
.(()
i = ,
freshChar = LocalPlayer.Character
freshChar freshChar ~= newChar
freshHRP = freshChar:()
freshHRP lastPos
freshHRP.CFrame = .(lastPos)
.()
)
.(, ()
hasRevived =
)
)
)
()
AutoSelfReviveConnection
AutoSelfReviveConnection:()
AutoSelfReviveConnection =
respawnConnection
respawnConnection:()
respawnConnection =
hasRevived =
lastSavedPosition =
()
AntiAFKConnection
AntiAFKConnection = LocalPlayer.Idled:(()
VirtualUser:(.(,), .CurrentCamera.CFrame)
.()
VirtualUser:(.(,), .CurrentCamera.CFrame)
)
()
AntiAFKConnection
AntiAFKConnection:()
AntiAFKConnection =
()
autoWhistleHandle
()
autoWhistleHandle = .(()
AutoWhistleToggle.Value
(()
success, result = (()
ReplicatedStorage.Events.Character.Whistle:()
)
success
(, result)
)
.()
autoWhistleHandle =
)
()
autoWhistleHandle
handle = autoWhistleHandle
autoWhistleHandle =
(()
(handle) == handle.cancel
handle:()
)
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 =
})
highlightSection = Tabs.Main:()
HighlightDownedPlayers = (:())()
HighlightDownedPlayers:(Fluent, Options)
HighlightDownedToggle = Tabs.Main:(, {
Title = ,
Default = ,
Callback = (value)
value
HighlightDownedPlayers:()
HighlightDownedPlayers:()
})
HighlightBots = (:())()
HighlightBots:(Fluent, Options)
HighlightBotsToggle = Tabs.Main:(, {
Title = ,
Default = ,
Callback = (value)
value
HighlightBots:()
HighlightBots:()
})
LocalPlayer.CharacterAdded:(()
.()
HighlightBotsToggle HighlightBotsToggle.Value
HighlightBots:()
)
.ChildAdded:((child)
.()
child.Name == HighlightBotsToggle HighlightBotsToggle.Value
HighlightBots:()
)
LocalPlayer.CharacterAdded:(()
.()
HighlightDownedToggle HighlightDownedToggle.Value
HighlightDownedPlayers:()
)
tracerSection = Tabs.Main:()
TracerPlayerToggle = Tabs.Main:(, {
Title = ,
Default =
})
TracerBotToggle = Tabs.Main:(, {
Title = ,
Default =
})
modificationSection = Tabs.Main:()
AutoRespawnTypeDropdown = Tabs.Main:(, {
Title = ,
Values = {, },
Multi = ,
Default = ,
})
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, onClickCallback)
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.(, .(, , )),
ColorSequenceKeypoint.(, .(, , ))
}
gradient.Rotation =
gradient.Parent = button
gradientAnimation
gradientAnimation = RunService.RenderStepped:((delta)
gradient.Rotation = (gradient.Rotation + * delta) %
)
stroke = .()
stroke.Color = .(, , )
stroke.Thickness =
stroke.Parent = button
label = .()
label.Text = text
label.Size = .(, , , )
label.BackgroundTransparency =
label.TextColor3 = .(, , )
label.TextSize =
label.Font = .Font.GothamBold
label.Parent = button
clicker = .()
clicker.Size = .(, , , )
clicker.BackgroundTransparency =
clicker.Text =
clicker.ZIndex =
clicker.Parent = button
button.Destroying:(()
gradientAnimation
gradientAnimation:()
)
UserInputService = :()
activeTouchId =
startPos =
startButtonPos =
(touchPos)
startPos startButtonPos
delta = touchPos - startPos
button.Position = .(startButtonPos.X.Scale, startButtonPos.X.Offset + delta.X,
startButtonPos.Y.Scale, startButtonPos.Y.Offset + delta.Y)
()
activeTouchId =
startPos =
startButtonPos =
stroke.Color = .(, , )
clicker.InputBegan:((input)
input.UserInputType == .UserInputType.Touch
touchId = input.UserInputState
activeTouchId ~=
activeTouchId = touchId
startPos = input.Position
startButtonPos = button.Position
stroke.Color = .(, , )
connection
connection = input.Changed:(()
input.UserInputState == .UserInputState.End
()
connection:()
)
input.UserInputType == .UserInputType.MouseButton1
activeTouchId ~=
activeTouchId =
startPos = input.Position
startButtonPos = button.Position
stroke.Color = .(, , )
connection
connection = input.Changed:(()
input.UserInputState == .UserInputState.End
()
connection:()
)
)
clicker.InputChanged:((input)
input.UserInputType == .UserInputType.Touch
activeTouchId ~=
(input.Position)
input.UserInputType == .UserInputType.MouseMovement
activeTouchId ~=
(input.Position)
)
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),
)
clicker.MouseButton1Click:(()
()
)
})
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)
})
modificationSection = Tabs.Main:()
AntiAFKToggle = Tabs.Main:(, {
Title = ,
Default =
})
AutoWhistleToggle = Tabs.Main:(, {
Title = ,
Default =
})
NoCameraShakeToggle = Tabs.Main:(, {
Title = ,
Default =
})
NextbotToggle:((value)
value
ExternalNextbotESPLoaded
success, errorMsg = (()
ExternalNextbotESP = (:())()
ExternalNextbotESPLoaded =
.NextbotESPRunning =
ExternalNextbotESP ExternalNextbotESP.Start
ExternalNextbotESP.()
Fluent:({
Title = ,
Content = ,
Duration =
})
)
success
Fluent:({
Title = ,
Content = .. (errorMsg),
Duration =
})
Options.NextbotToggle:()
ExternalNextbotESP ExternalNextbotESP.Start
ExternalNextbotESP.()
.NextbotESPRunning =
nextbotLoop
nextbotLoop = RunService.Heartbeat:(()
Options.NextbotToggle.Value
.NextbotESPRunning ==
.NextbotESPRunning =
ExternalNextbotESP ExternalNextbotESP.Start
(ExternalNextbotESP.Start)
)
nextbotLoop
nextbotLoop:()
nextbotLoop =
ExternalNextbotESP ExternalNextbotESPLoaded
ExternalNextbotESP.Stop
(()
ExternalNextbotESP.()
)
.(()
.()
model, data (NextbotBillboards)
data.esp data.esp:()
espName = data.esp.Name:()
espName:() espName:() espName:()
data.esp:()
NextbotBillboards = {}
model, tracer (botTracerElements)
tracer tracer.Remove
(()
tracer:()
)
botTracerElements = {}
(()
_, drawing (:().LocalPlayer.PlayerGui:())
drawing:() drawing.Name:()
drawing:()
_, obj (())
(obj) ==
obj.__type obj.__type == obj.Color
obj.Color.r == obj.Color.g == obj.Color.b ==
obj.Remove
(obj.Remove, obj)
)
)
ExternalNextbotESPLoaded =
.NextbotESPRunning =
Fluent:({
Title = ,
Content = ,
Duration =
})
)
PlayerToggle:((value)
value
()
nextbotESPActive = Options.NextbotToggle Options.NextbotToggle.Value
ExternalESPLoaded
success, errorMsg = (()
espScript = :(, )
espScript = .. espScript
ExternalESP = (espScript)()
ExternalESPLoaded =
.ExternalESPRunning =
.PlayerESP_Loaded =
Fluent:({
Title = ,
Content = ,
Duration =
})
)
success
Fluent:({
Title = ,
Content = .. (errorMsg),
Duration =
})
Options.PlayerToggle:()
.ExternalESPRunning =
.PlayerESP_Loaded =
nextbotESPActive
.()
ExternalNextbotESP ExternalNextbotESPLoaded ExternalNextbotESP.Start
(ExternalNextbotESP.Start)
playerLoop
playerLoop = RunService.Heartbeat:(()
Options.PlayerToggle.Value
playerEspCount =
_, player (Players:())
player ~= LocalPlayer player.Character
_, obj (player.Character:())
obj:()
textLabels = obj:()
labelCount =
_, label (textLabels)
label:()
labelCount = labelCount +
labelCount >
obj:()
playerEspCount = playerEspCount +
)
playerLoop
playerLoop:()
playerLoop =
()
ExternalESP ExternalESPLoaded
(ExternalESP) == ExternalESP.Stop
(ExternalESP.Stop)
.ExternalESPRunning =
.PlayerESP_Loaded =
ExternalESPLoaded =
Fluent:({
Title = ,
Content = ,
Duration =
})
)
TicketToggle:((value)
value
ExternalTicketESPLoaded
success, errorMsg = (()
ExternalTicketESP = (:())()
ExternalTicketESPLoaded =
.TicketESPRunning =
Fluent:({
Title = ,
Content = ,
Duration =
})
)
success
Fluent:({
Title = ,
Content = .. (errorMsg),
Duration =
})
.TicketESPRunning =
ticketLoop
ticketLoop = RunService.RenderStepped:(()
Options.TicketToggle.Value
()
)
ExternalTicketESPLoaded
.StopTicketESP
(.StopTicketESP)
ticketLoop
ticketLoop:()
ticketLoop =
ticket, data (TicketBillboards)
data.esp
data.esp:()
TicketBillboards = {}
ExternalTicketESPLoaded =
.TicketESPRunning =
Fluent:({
Title = ,
Content = ,
Duration =
})
)
TracerPlayerToggle:((value)
value
()
()
)
TracerBotToggle:((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 =
)
modificationSection = Tabs.Main:()
()
player = :().LocalPlayer
gamePlayers = :() .Game:()
gamePlayers
character = gamePlayers:(player.Name)
character
hrp = character:()
isDowned = character:()
isDowned
SelfReviveMethod = Options.AutoRespawnTypeDropdown Options.AutoRespawnTypeDropdown.Value
SelfReviveMethod ==
(()
ReplicatedStorage.Events.Player.ChangePlayerMode:()
)
SelfReviveMethod ==
lastSavedPosition =
hrp
lastSavedPosition = hrp.Position
(()
ReplicatedStorage.Events.Player.ChangePlayerMode:()
)
.(()
i = ,
.()
newGamePlayers = :() .Game:()
newGamePlayers
newCharacter = newGamePlayers:(player.Name)
newCharacter newCharacter ~= character
newHRP = newCharacter:()
newHRP lastSavedPosition
newHRP.CFrame = .(lastSavedPosition)
newHRP.Velocity = .(, , )
)
NoclipToggle = Tabs.Main:(, {
Title = ,
Default =
})
noclipEnabled =
noclipConnection =
(state)
noclipEnabled = state
noclipEnabled
noclipConnection
noclipConnection:()
noclipConnection = RunService.Stepped:(()
character = LocalPlayer.Character
character
_, part (character:())
part:() part.CanCollide
part.CanCollide =
)
Fluent:({
Title = ,
Content = ,
Duration =
})
noclipConnection
noclipConnection:()
noclipConnection =
character = LocalPlayer.Character
character
_, part (character:())
part:()
part.CanCollide =
Fluent:({
Title = ,
Content = ,
Duration =
})
NoclipToggle:((value)
(value)
)
LocalPlayer.CharacterAdded:((character)
noclipEnabled
.()
()
.()
()
)
:().LocalPlayer.CharacterRemoving:(()
noclipConnection
noclipConnection:()
noclipConnection =
)
()
SitToggle = Tabs.Main:(, {
Title = ,
Default =
})
sitLoopConnection =
player = :().LocalPlayer
()
SitToggle.Value
character = player.Character
character
humanoid = character:()
humanoid
gamePlayers = :() .Game:()
gamePlayers
playerModel = gamePlayers:(player.Name)
playerModel
humanoid = playerModel:()
humanoid
humanoid.Sit =
SitToggle:((state)
state
sitLoopConnection
sitLoopConnection:()
sitLoopConnection = :().Heartbeat:(updateSit)
()
Fluent:({
Title = ,
Content = ,
Duration =
})
sitLoopConnection
sitLoopConnection:()
sitLoopConnection =
character = player.Character
character
humanoid = character:()
humanoid
gamePlayers = :() .Game:()
gamePlayers
playerModel = gamePlayers:(player.Name)
playerModel
humanoid = playerModel:()
humanoid
humanoid.Sit =
Fluent:({
Title = ,
Content = ,
Duration =
})
)
player.CharacterAdded:(()
.()
SitToggle SitToggle.Value
()
)
player.CharacterRemoving:(()
sitLoopConnection
sitLoopConnection:()
sitLoopConnection =
)
NoCollisionToggle = Tabs.Main:(, {
Title = ,
Default =
})
(state)
invisParts = :()
.Game:()
.Game.Map:()
invisParts
Fluent:({
Title = ,
Content = ,
Duration =
})
objectsChanged =
_, obj (invisParts:())
obj:()
obj.CanCollide = state
obj.CanQuery = state
objectsChanged = objectsChanged +
Fluent:({
Title = ,
Content = .(,
state ,
objectsChanged),
Duration =
})
NoCollisionToggle:((state)
(state)
state
)
LocalPlayer.CharacterAdded:(()
Options.NoCollisionToggle Options.NoCollisionToggle.Value
.()
()
)
InvisPartsTransparencyToggle = Tabs.Main:(, {
Title = ,
Default =
})
(transparent)
invisParts = :()
.Game:()
.Game.Map:()
invisParts
Fluent:({
Title = ,
Content = ,
Duration =
})
changed =
transparent
_, obj (invisParts:())
obj:() obj:()
obj.Transparency =
changed = changed +
Fluent:({
Title = ,
Content = .(, changed),
Duration =
})
_, obj (invisParts:())
obj:() obj:()
obj.Transparency =
changed = changed +
Fluent:({
Title = ,
Content = .(, changed),
Duration =
})
InvisPartsTransparencyToggle:((state)
(state)
state
invisParts = :()
.Game:()
workspace.Game.Map:FindFirstChild("InvisParts")
if invisParts then
invisParts.DescendantAdded:Connect(function(obj)
if state then
if obj:IsA("BasePart") or obj:IsA("Decal") then
task.wait(0.05)
obj.Transparency = 0
end
end
end)
end
end
end)
LocalPlayer.CharacterAdded:Connect(function()
if Options.InvisPartsTransparencyToggle and Options.InvisPartsTransparencyToggle.Value then
task.wait(1)
setInvisPartsTransparency(true)
end
end)
game:GetService("Players").PlayerRemoving:Connect(function(player)
if player == LocalPlayer and Options.InvisPartsTransparencyToggle and Options.InvisPartsTransparencyToggle.Value then
setInvisPartsTransparency(false)
end
end)
LeaderboardToggle = Tabs.Main:AddButton({
Title = "Unlock Leaderboard; Zoom; Front View",
Callback = function()
local player = game.Players.LocalPlayer
local guiService = game:GetService("GuiService")
local starterGui = game:GetService("StarterGui")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local playerGui = player:WaitForChild("PlayerGui")
if playerGui:FindFirstChild("CustomTopGui") then
playerGui.CustomTopGui:Destroy()
end
starterGui:SetCore("TopbarEnabled", false)
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "CustomTopGui"
screenGui.IgnoreGuiInset = false
screenGui.ScreenInsets = Enum.ScreenInsets.TopbarSafeInsets
screenGui.DisplayOrder = 100
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui
local frame = Instance.new("Frame")
frame.Parent = screenGui
frame.BackgroundTransparency = 1
frame.BorderSizePixel = 0
frame.Position = UDim2.new(0, 0, 0, 0)
frame.Size = UDim2.new(1, 0, 1, -2)
local scrollingFrame = Instance.new("ScrollingFrame")
scrollingFrame.Name = "Right"
scrollingFrame.Parent = frame
scrollingFrame.BackgroundTransparency = 1
scrollingFrame.BorderSizePixel = 0
scrollingFrame.Position = UDim2.new(0, 12, 0, 0)
scrollingFrame.Size = UDim2.new(1, -24, 1, 0)
scrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
scrollingFrame.AutomaticCanvasSize = Enum.AutomaticSize.X
scrollingFrame.ScrollBarThickness = 0
scrollingFrame.ScrollingDirection = Enum.ScrollingDirection.X
scrollingFrame.ScrollingEnabled = false
local uiListLayout = Instance.new("UIListLayout")
uiListLayout.Parent = scrollingFrame
uiListLayout.Padding = UDim.new(0, 12)
uiListLayout.SortOrder = Enum.SortOrder.LayoutOrder
uiListLayout.FillDirection = Enum.FillDirection.Horizontal
uiListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Left
uiListLayout.VerticalAlignment = Enum.VerticalAlignment.Bottom
local buttonsConfig = {
{
name = "SecondaryButton",
layoutOrder = 999,
icon = "rbxassetid://126943351764139",
label = "Zoom",
width = 100,
labelWidth = 45,
key = "Secondary"
},
{
name = "ReloadButton",
layoutOrder = 997,
icon = "rbxassetid://78648212535999",
label = "Front View / View",
width = 173,
labelWidth = 118,
key = "Reload"
},
{
name = "LeaderboardButton",
layoutOrder = 998,
icon = "rbxassetid://5107166345",
label = "Leaderboard",
width = 143,
labelWidth = 88,
key = "Leaderboard"
}
}
for _, config in ipairs(buttonsConfig) do
local tweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local Button = Instance.new("Frame")
Button.Name = config.name
Button.Parent = scrollingFrame
Button.BackgroundTransparency = 1
Button.ClipsDescendants = true
Button.LayoutOrder = config.layoutOrder
Button.Size = UDim2.new(0, 44, 0, 44)
Button.ZIndex = 20
local IconButton = Instance.new("Frame")
IconButton.Name = "IconButton"
IconButton.Parent = Button
IconButton.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
IconButton.BackgroundTransparency = 0.3
IconButton.BorderSizePixel = 0
IconButton.ClipsDescendants = true
IconButton.Size = UDim2.new(1, 0, 1, 0)
IconButton.ZIndex = 2
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(1, 0)
UICorner.Parent = IconButton
local Menu = Instance.new("ScrollingFrame")
Menu.Name = "Menu"
Menu.Parent = IconButton
Menu.BackgroundTransparency = 1
Menu.BorderSizePixel = 0
Menu.Position = UDim2.new(0, 4, 0, 0)
Menu.Selectable = false
Menu.Size = UDim2.new(1, 0, 1, 0)
Menu.ZIndex = 20
Menu.BottomImage = ""
Menu.CanvasSize = UDim2.new(0, 0, 1, -1)
Menu.HorizontalScrollBarInset = Enum.ScrollBarInset.Always
Menu.ScrollBarThickness = 3
Menu.TopImage = ""
local MenuUIListLayout = Instance.new("UIListLayout")
MenuUIListLayout.Name = "MenuUIListLayout"
MenuUIListLayout.Parent = Menu
MenuUIListLayout.FillDirection = Enum.FillDirection.Horizontal
MenuUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
MenuUIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
local MenuGap = Instance.new("Frame")
MenuGap.Name = "MenuGap"
MenuGap.Parent = Menu
MenuGap.AnchorPoint = Vector2.new(0, 0.5)
MenuGap.BackgroundTransparency = 1
MenuGap.Size = UDim2.new(0, 4, 0, 0)
MenuGap.Visible = false
MenuGap.ZIndex = 5
local IconSpot = Instance.new("Frame")
IconSpot.Name = "IconSpot"
IconSpot.Parent = Menu
IconSpot.AnchorPoint = Vector2.new(0, 0.5)
IconSpot.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
IconSpot.BackgroundTransparency = 1
IconSpot.Position = UDim2.new(0, 4, 0.5, 0)
IconSpot.Size = UDim2.new(0, 36, 1, -8)
IconSpot.ZIndex = 5
local UICorner_2 = Instance.new("UICorner")
UICorner_2.CornerRadius = UDim.new(1, 0)
UICorner_2.Parent = IconSpot
local IconOverlay = Instance.new("Frame")
IconOverlay.Name = "IconOverlay"
IconOverlay.Parent = IconSpot
IconOverlay.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
IconOverlay.BackgroundTransparency = 0.925
IconOverlay.Size = UDim2.new(1, 0, 1, 0)
IconOverlay.Visible = false
IconOverlay.ZIndex = 6
local UICorner_3 = Instance.new("UICorner")
UICorner_3.CornerRadius = UDim.new(1, 0)
UICorner_3.Parent = IconOverlay
local ClickRegion = Instance.new("TextButton")
ClickRegion.Name = "ClickRegion"
ClickRegion.Parent = IconSpot
ClickRegion.BackgroundTransparency = 1
ClickRegion.Size = UDim2.new(1, 0, 1, 0)
ClickRegion.ZIndex = 20
ClickRegion.Text = ""
local UICorner_4 = Instance.new("UICorner")
UICorner_4.CornerRadius = UDim.new(1, 0)
UICorner_4.Parent = ClickRegion
local Contents = Instance.new("Frame")
Contents.Name = "Contents"
Contents.Parent = IconSpot
Contents.BackgroundTransparency = 1
Contents.Size = UDim2.new(1, 0, 1, 0)
local ContentsList = Instance.new("UIListLayout")
ContentsList.Name = "ContentsList"
ContentsList.Parent = Contents
ContentsList.FillDirection = Enum.FillDirection.Horizontal
ContentsList.HorizontalAlignment = Enum.HorizontalAlignment.Center
ContentsList.SortOrder = Enum.SortOrder.LayoutOrder
ContentsList.VerticalAlignment = Enum.VerticalAlignment.Center
ContentsList.Padding = UDim.new(0, 3)
local PaddingLeft = Instance.new("Frame")
PaddingLeft.Name = "PaddingLeft"
PaddingLeft.Parent = Contents
PaddingLeft.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
PaddingLeft.BackgroundTransparency = 1
PaddingLeft.BorderColor3 = Color3.fromRGB(0, 0, 0)
PaddingLeft.BorderSizePixel = 0
PaddingLeft.LayoutOrder = 1
PaddingLeft.Size = UDim2.new(0, 9, 1, 0)
PaddingLeft.ZIndex = 5
local PaddingCenter = Instance.new("Frame")
PaddingCenter.Name = "PaddingCenter"
PaddingCenter.Parent = Contents
PaddingCenter.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
PaddingCenter.BackgroundTransparency = 1
PaddingCenter.BorderColor3 = Color3.fromRGB(0, 0, 0)
PaddingCenter.BorderSizePixel = 0
PaddingCenter.LayoutOrder = 3
PaddingCenter.Size = UDim2.new(0, 0, 1, 0)
PaddingCenter.ZIndex = 5
local PaddingRight = Instance.new("Frame")
PaddingRight.Name = "PaddingRight"
PaddingRight.Parent = Contents
PaddingRight.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
PaddingRight.BackgroundTransparency = 1
PaddingRight.BorderColor3 = Color3.fromRGB(0, 0, 0)
PaddingRight.BorderSizePixel = 0
PaddingRight.LayoutOrder = 5
PaddingRight.Size = UDim2.new(0, 11, 1, 0)
PaddingRight.ZIndex = 5
local IconLabelContainer = Instance.new("Frame")
IconLabelContainer.Name = "IconLabelContainer"
IconLabelContainer.Parent = Contents
IconLabelContainer.AnchorPoint = Vector2.new(0, 0.5)
IconLabelContainer.BackgroundTransparency = 1
IconLabelContainer.LayoutOrder = 4
IconLabelContainer.Position = UDim2.new(0.5, 0, 0.5, 0)
IconLabelContainer.Size = UDim2.new(0, 0, 1, 0)
IconLabelContainer.Visible = false
IconLabelContainer.ZIndex = 3
local IconLabel = Instance.new("TextLabel")
IconLabel.Name = "IconLabel"
IconLabel.Parent = IconLabelContainer
IconLabel.BackgroundTransparency = 1
IconLabel.LayoutOrder = 4
IconLabel.Size = UDim2.new(0, 1306, 1, 0)
IconLabel.ZIndex = 15
IconLabel.Font = Enum.Font.GothamMedium
IconLabel.Text = config.label
IconLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
IconLabel.TextSize = 16
IconLabel.TextWrapped = true
IconLabel.TextXAlignment = Enum.TextXAlignment.Left
IconLabel.Visible = false
local IconImage = Instance.new("ImageLabel")
IconImage.Name = "IconImage"
IconImage.Parent = Contents
IconImage.AnchorPoint = Vector2.new(0, 0.5)
IconImage.BackgroundTransparency = 1
IconImage.LayoutOrder = 2
IconImage.Position = UDim2.new(0, 11, 0.5, 0)
IconImage.Size = UDim2.new(0.7, 0, 0.7, 0)
IconImage.ZIndex = 15
IconImage.Image = config.icon
local IconImageCorner = Instance.new("UICorner")
IconImageCorner.CornerRadius = UDim.new(0, 0)
IconImageCorner.Name = "IconImageCorner"
IconImageCorner.Parent = IconImage
local IconImageRatio = Instance.new("UIAspectRatioConstraint")
IconImageRatio.Name = "IconImageRatio"
IconImageRatio.Parent = IconImage
IconImageRatio.DominantAxis = Enum.DominantAxis.Height
local IconSpotGradient = Instance.new("UIGradient")
IconSpotGradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0.00, Color3.fromRGB(96, 98, 100)),
ColorSequenceKeypoint.new(1.00, Color3.fromRGB(77, 78, 80))
}
IconSpotGradient.Rotation = 45
IconSpotGradient.Name = "IconSpotGradient"
IconSpotGradient.Parent = IconSpot
local IconGradient = Instance.new("UIGradient")
IconGradient.Name = "IconGradient"
IconGradient.Parent = IconButton
local isHovering = false
local currentTween = nil
local hideDelay = 0.3
local isMouseDown = false
local smallButtonSize = UDim2.new(0, 44, 0, 44)
local largeButtonSize = UDim2.new(0, config.width, 0, 44)
local smallIconSpotSize = UDim2.new(0, 36, 1, -8)
local largeIconSpotSize = UDim2.new(0, config.width - 8, 1, -8)
local smallLabelSize = UDim2.new(0, 0, 1, 0)
local largeLabelSize = UDim2.new(0, config.labelWidth, 1, 0)
local function hideTextWithDelay()
task.wait(hideDelay)
if not isHovering then
IconLabel.Visible = false
IconLabelContainer.Visible = false
IconOverlay.Visible = false
end
end
local function expand()
isHovering = true
if currentTween then
currentTween:Cancel()
end
IconLabel.Visible = true
IconLabelContainer.Visible = true
IconOverlay.Visible = true
currentTween = TweenService:Create(Button, tweenInfo, {Size = largeButtonSize})
currentTween:Play()
TweenService:Create(IconSpot, tweenInfo, {Size = largeIconSpotSize}):Play()
TweenService:Create(IconLabelContainer, tweenInfo, {Size = largeLabelSize}):Play()
end
local function contract()
isHovering = false
if currentTween then
currentTween:Cancel()
end
currentTween = TweenService:Create(Button, tweenInfo, {Size = smallButtonSize})
currentTween:Play()
TweenService:Create(IconSpot, tweenInfo, {Size = smallIconSpotSize}):Play()
TweenService:Create(IconLabelContainer, tweenInfo, {Size = smallLabelSize}):Play()
hideTextWithDelay()
end
ClickRegion.MouseEnter:Connect(function()
expand()
end)
ClickRegion.MouseLeave:Connect(function()
contract()
if isMouseDown then
isMouseDown = false
game:GetService("Players").LocalPlayer.PlayerScripts.Events.temporary_events.UseKeybind:Fire({
Key = config.key,
Down = false
})
end
end)
ClickRegion.MouseButton1Down:Connect(function()
isMouseDown = true
game:GetService("Players").LocalPlayer.PlayerScripts.Events.temporary_events.UseKeybind:Fire({
Key = config.key,
Down = true
})
end)
ClickRegion.MouseButton1Up:Connect(function()
isMouseDown = false
game:GetService("Players").LocalPlayer.PlayerScripts.Events.temporary_events.UseKeybind:Fire({
Key = config.key,
Down = false
})
end)
player.CharacterAdded:Connect(function()
task.wait(0.1)
isHovering = false
isMouseDown = false
if currentTween then
currentTween:Cancel()
currentTween = nil
end
Button.Size = smallButtonSize
IconSpot.Size = smallIconSpotSize
IconLabelContainer.Size = smallLabelSize
IconLabel.Visible = false
IconLabelContainer.Visible = false
IconOverlay.Visible = false
end)
end
Fluent:Notify({
Title = "Custom Leaderboard",
Content = "Custom leaderboard UI has been created!",
Duration = 3
})
end
})
if not workspace:FindFirstChild("SecurityPart") then
local SecurityPart = Instance.new("Part")
SecurityPart.Name = "SecurityPart"
SecurityPart.Size = Vector3.new(10, 1, 10)
SecurityPart.Position = Vector3.new(5000, 5000, 5000)
SecurityPart.Anchored = true
SecurityPart.CanCollide = true
SecurityPart.Parent = workspace
end
local AutoTab = Window:AddTab({ Title = "Auto Farm", Icon = "solar/clock-circle-bold" })
AutoTab:AddSection("Farmings")
AutoMoneyFarmToggle = AutoTab:AddToggle("AutoMoneyFarmToggle", {
Title = "Auto Farm Money",
Default = false
})
AutoTicketFarmToggle = AutoTab:AddToggle("AutoTicketFarmToggle", {
Title = "Auto Farm Tickets",
Default = false
})
AFKFarmToggle = AutoTab:AddToggle("AFKFarmToggle", {
Title = "AFK Farm",
Default = false
})
AutoTab:AddSection("Teleports")
AutoTab:AddButton({
Title = "Custom Server",
Description = "Create Custom Server",
Callback = function()
Fluent:Notify({
Title = "Create",
Content = "Create Custom Server",
Duration = 3
})
task.wait(1)
local success, errorMsg = pcall(function()
game:GetService("TeleportService"):Teleport(99214917572799)
end)
if not success then
Fluent:Notify({
Title = "Failed Custom Server",
Content = "Failed Custom Server: " .. tostring(errorMsg),
Duration = 5
})
end
end
})
TeleportObjectiveButton = AutoTab:AddButton({
Title = "Teleport to Objective",
Callback = function()
local objectives = {}
local gameFolder = workspace:FindFirstChild("Game")
if not gameFolder then return end
local mapFolder = gameFolder:FindFirstChild("Map")
if not mapFolder then return end
local objectivesFolder = nil
local partsFolder = mapFolder:FindFirstChild("Parts")
if partsFolder then
objectivesFolder = partsFolder:FindFirstChild("Objectives")
end
if not objectivesFolder then
objectivesFolder = mapFolder:FindFirstChild("Objectives")
end
if not objectivesFolder then
for _, obj in ipairs(mapFolder:GetDescendants()) do
if obj.Name == "Objectives" and (obj:IsA("Folder") or obj:IsA("Model")) then
objectivesFolder = obj
break
end
end
end
if not objectivesFolder then return end
for _, obj in pairs(objectivesFolder:GetChildren()) do
if obj:IsA("Model") or obj:IsA("Part") or obj:IsA("MeshPart") then
local teleportPart = nil
if obj:IsA("BasePart") then
teleportPart = obj
elseif obj:IsA("Model") then
teleportPart = obj.PrimaryPart or obj:FindFirstChild("HumanoidRootPart") or
obj:FindFirstChild("Head") or obj:FindFirstChild("Torso") or
obj:FindFirstChildWhichIsA("BasePart")
end
if teleportPart then
table.insert(objectives, {
Name = obj.Name,
Part = teleportPart,
Position = teleportPart.Position
})
end
end
end
if #objectives == 0 then return end
local selectedObjective = objectives[math.random(1, #objectives)]
local character = LocalPlayer.Character
if not character then return end
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then return end
local teleportPosition = selectedObjective.Position + Vector3.new(0, 5, 0)
humanoidRootPart.CFrame = CFrame.new(teleportPosition)
end
})
TeleportSpawnButton = AutoTab:AddButton({
Title = "Teleport to Spawn",
Callback = function()
local gameFolder = workspace:FindFirstChild("Game")
if not gameFolder then return end
local mapFolder = gameFolder:FindFirstChild("Map")
if not mapFolder then return end
local partsFolder = mapFolder:FindFirstChild("Parts")
if not partsFolder then return end
local spawnsFolder = partsFolder:FindFirstChild("Spawns")
if not spawnsFolder then return end
local spawns = {}
for _, obj in pairs(spawnsFolder:GetChildren()) do
if obj:IsA("Part") or obj:IsA("MeshPart") then
table.insert(spawns, obj)
elseif obj:IsA("Model") then
local part = obj.PrimaryPart or obj:FindFirstChild("HumanoidRootPart") or
obj:FindFirstChild("Head") or obj:FindFirstChild("Torso") or
obj:FindFirstChildWhichIsA("BasePart")
if part then
table.insert(spawns, part)
end
end
end
if #spawns == 0 then return end
local selectedSpawn = spawns[math.random(1, #spawns)]
local character = LocalPlayer.Character
if not character then return end
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then return end
local teleportPosition = selectedSpawn.Position + Vector3.new(0, 3, 0)
humanoidRootPart.CFrame = CFrame.new(teleportPosition)
end
})
AutoMoneyFarmConnection = nil
AutoWinConnection = nil
AutoTicketFarmConnection = nil
AutoReviveModule = nil
character = LocalPlayer.Character
humanoid = character and character:FindFirstChild("Humanoid")
rootPart = character and character:FindFirstChild("HumanoidRootPart")
function startAutoWin()
if AutoWinConnection then return end
AutoWinConnection = RunService.Heartbeat:Connect(function()
local securityPart = workspace:FindFirstChild("SecurityPart")
if not securityPart then return end
local currentCharacter = LocalPlayer.Character
if not currentCharacter then return end
local currentRootPart = currentCharacter:FindFirstChild("HumanoidRootPart")
if not currentRootPart then return end
if not currentCharacter:GetAttribute("Downed") then
currentRootPart.CFrame = securityPart.CFrame + Vector3.new(0, 3, 0)
end
end)
end
function stopAutoWin()
if AutoWinConnection then
AutoWinConnection:Disconnect()
AutoWinConnection = nil
end
end
function initAutoReviveModule()
local reviveRange = 15
local loopDelay = 0.25
local autoReviveEnabled = false
local reviveLoopHandle = nil
local interactEvent = ReplicatedStorage:FindFirstChild("Events") and
ReplicatedStorage.Events:FindFirstChild("Character") and
ReplicatedStorage.Events.Character:FindFirstChild("Interact")
if not interactEvent then
warn("Auto Revive Module: Interact event not found!")
return nil
end
local function isPlayerDowned(pl)
if not pl or not pl.Character then return false end
local char = pl.Character
if char:GetAttribute("Downed") == true then
return true
end
local ragdollsFolder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Ragdolls")
if ragdollsFolder and ragdollsFolder:FindFirstChild(pl.Name) then
return true
end
return false
end
local function getDownedRootPart(pl)
if pl.Character and pl.Character:FindFirstChild("HumanoidRootPart") then
return pl.Character.HumanoidRootPart
end
local ragdollsFolder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Ragdolls")
if ragdollsFolder then
local ragdoll = ragdollsFolder:FindFirstChild(pl.Name)
if ragdoll then
return ragdoll:FindFirstChild("HumanoidRootPart") or
ragdoll:FindFirstChild("Torso") or
ragdoll:FindFirstChild("Head") or
ragdoll:FindFirstChildWhichIsA("BasePart")
end
end
return nil
end
function startAutoRevive()
if reviveLoopHandle then return end
reviveLoopHandle = task.spawn(function()
while autoReviveEnabled do
local currentPlayer = Players.LocalPlayer
if currentPlayer then
local character = currentPlayer.Character
local securityPart = workspace:FindFirstChild("SecurityPart")
if character and character:GetAttribute("Downed") then
pcall(function()
ReplicatedStorage.Events.Player.ChangePlayerMode:FireServer(true)
end)
if securityPart then
task.wait(1)
local newChar = currentPlayer.Character
if newChar and newChar:FindFirstChild("HumanoidRootPart") then
newChar.HumanoidRootPart.CFrame = securityPart.CFrame + Vector3.new(0, 3, 0)
end
end
task.wait(1)
elseif character and character:FindFirstChild("HumanoidRootPart") then
local myHRP = character.HumanoidRootPart
local downedFound = false
for _, pl in ipairs(Players:GetPlayers()) do
if pl ~= currentPlayer and isPlayerDowned(pl) then
local targetRoot = getDownedRootPart(pl)
if targetRoot then
downedFound = true
local dist = (myHRP.Position - targetRoot.Position).Magnitude
if dist > reviveRange then
local targetPos = targetRoot.Position
myHRP.CFrame = CFrame.new(targetPos.X, targetPos.Y - 5, targetPos.Z)
task.wait(0.1)
end
pcall(function()
interactEvent:FireServer("Revive", true, pl.Name)
end)
task.wait(0.2)
end
end
end
if not downedFound and not character:GetAttribute("Downed") and securityPart then
myHRP.CFrame = securityPart.CFrame + Vector3.new(0, 3, 0)
end
end
end
task.wait(loopDelay)
end
reviveLoopHandle = nil
end)
end
function stopAutoRevive()
autoReviveEnabled = false
if reviveLoopHandle then
task.cancel(reviveLoopHandle)
reviveLoopHandle = nil
end
end
function ToggleAutoRevive(state)
autoReviveEnabled = state
if autoReviveEnabled then
startAutoRevive()
else
stopAutoRevive()
end
end
return {
Toggle = ToggleAutoRevive,
Start = function() ToggleAutoRevive(true) end,
Stop = function() ToggleAutoRevive(false) end,
IsEnabled = function() return autoReviveEnabled end,
}
end
function startAutoMoneyFarm()
if AutoMoneyFarmConnection then
stopAutoMoneyFarm()
end
if not AutoReviveModule then
AutoReviveModule = initAutoReviveModule()
if not AutoReviveModule then
Fluent:Notify({
Title = "Auto Farm Money",
Content = "Failed to initialize revive module!",
Duration = 5
})
return
end
end
AutoReviveModule.Start()
AutoMoneyFarmConnection = RunService.Heartbeat:Connect(function()
if not AutoReviveModule or not AutoReviveModule.IsEnabled() then
if Options.AutoMoneyFarmToggle and Options.AutoMoneyFarmToggle.Value then
AutoReviveModule.Start()
end
end
end)
end
function stopAutoMoneyFarm()
if AutoMoneyFarmConnection then
AutoMoneyFarmConnection:Disconnect()
AutoMoneyFarmConnection = nil
end
if AutoReviveModule then
AutoReviveModule.Stop()
end
end
AutoMoneyFarmToggle:OnChanged(function(state)
if state then
startAutoMoneyFarm()
else
stopAutoMoneyFarm()
end
end)
AFKFarmToggle:OnChanged(function(state)
if state then
startAutoWin()
else
stopAutoWin()
end
end)
AutoTicketFarmToggle:OnChanged(function(state)
local yOffset = 15
local currentTicket = nil
local ticketProcessedTime = 0
if state then
local securityPart = workspace:FindFirstChild("SecurityPart")
if not securityPart then
return
end
if AutoTicketFarmConnection then
AutoTicketFarmConnection:Disconnect()
end
AutoTicketFarmConnection = RunService.Heartbeat:Connect(function()
local character = LocalPlayer.Character
if not character then return end
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then return end
local tickets = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Effects") and workspace.Game.Effects:FindFirstChild("Tickets")
if character:GetAttribute("Downed") then
pcall(function()
ReplicatedStorage.Events.Player.ChangePlayerMode:FireServer(true)
end)
humanoidRootPart.CFrame = securityPart.CFrame + Vector3.new(0, 3, 0)
return
end
if tickets then
local activeTickets = tickets:GetChildren()
if #activeTickets > 0 then
if not currentTicket or not currentTicket.Parent then
currentTicket = activeTickets[1]
ticketProcessedTime = tick()
end
if currentTicket and currentTicket.Parent then
local ticketPart = currentTicket:FindFirstChild("HumanoidRootPart") or currentTicket:IsA("BasePart") and currentTicket
if ticketPart then
local targetPosition = ticketPart.Position + Vector3.new(0, yOffset, 0)
humanoidRootPart.CFrame = CFrame.new(targetPosition)
if tick() - ticketProcessedTime > 0.1 then
humanoidRootPart.CFrame = ticketPart.CFrame
end
else
currentTicket = nil
end
else
humanoidRootPart.CFrame = securityPart.CFrame + Vector3.new(0, 3, 0)
currentTicket = nil
end
else
humanoidRootPart.CFrame = securityPart.CFrame + Vector3.new(0, 3, 0)
currentTicket = nil
end
else
humanoidRootPart.CFrame = securityPart.CFrame + Vector3.new(0, 3, 0)
currentTicket = nil
end
end)
else
if AutoTicketFarmConnection then
AutoTicketFarmConnection:Disconnect()
AutoTicketFarmConnection = nil
end
currentTicket = nil
local character = LocalPlayer.Character
if character then
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
local securityPart = workspace:FindFirstChild("SecurityPart")
if humanoidRootPart and securityPart then
humanoidRootPart.CFrame = securityPart.CFrame + Vector3.new(0, 3, 0)
end
end
end
end)
VIPTab = Window:AddTab({ Title = "VIP Server", Icon = "solar/crown-bold" })
VIPTab:AddSection("Special Round")
VIPRoundInput = VIPTab:AddInput("VIPRoundInput", {
Title = "Special Round Name",
Default = "",
Placeholder = "Enter round name",
Finished = false,
Callback = function(Value)
getgenv().VIPRoundName = Value
end
})
VIPRoundToggle = VIPTab:AddToggle("VIPRoundToggle", {
Title = "Auto Special Round",
Default = false,
Callback = function(Value)
getgenv().VIPRoundEnabled = Value
end
})
VIPTab:AddSection("Vote System")
local VoteValues = {"1", "2", "3", "4"}
VoteInput1 = VIPTab:AddDropdown("VoteInput1", {
Title = "Vote Option 1",
Values = VoteValues,
Multi = false,
Default = "1",
Callback = function(Value)
getgenv().VoteValue1 = tonumber(Value)
end
})
VoteInput2 = VIPTab:AddDropdown("VoteInput2", {
Title = "Vote Option 2",
Values = VoteValues,
Multi = false,
Default = "1",
Callback = function(Value)
getgenv().VoteValue2 = tonumber(Value)
end
})
VoteToggle = VIPTab:AddToggle("VoteToggle", {
Title = "Auto Vote",
Default = false,
Callback = function(Value)
getgenv().VoteEnabled = Value
end
})
VIPTab:AddSection("Skip Time")
TimerCommandToggle = VIPTab:AddToggle("TimerCommandToggle", {
Title = "Auto Skip Time",
Default = false,
Callback = function(Value)
getgenv().TimerCommandEnabled = Value
end
})
getgenv().VIPRoundName = getgenv().VIPRoundName or ""
getgenv().VIPRoundEnabled = false
getgenv().VIPRoundActivated = false
getgenv().VoteValue1 = 1
getgenv().VoteValue2 = 1
getgenv().VoteEnabled = false
getgenv().VoteActivated = false
getgenv().TimerCommandEnabled = false
getgenv().TimerCommandActivated = false
local timerConnection = nil
timerConnection = game:GetService("RunService").Heartbeat:Connect(function()
local stats = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Stats")
if stats then
local timerValue = stats:GetAttribute("Timer")
local roundStarted = stats:GetAttribute("RoundStarted")
if timerValue == 30 then
if getgenv().VIPRoundEnabled and not getgenv().VIPRoundActivated then
local roundName = getgenv().VIPRoundName or ""
if roundName ~= "" then
local args = {
[1] = "!specialround " .. roundName
}
pcall(function()
game:GetService("ReplicatedStorage").Events.Admin.VIPCommand:InvokeServer(unpack(args))
getgenv().VIPRoundActivated = true
task.delay(10, function()
getgenv().VIPRoundActivated = false
end)
end)
end
end
if getgenv().VoteEnabled and not getgenv().VoteActivated then
local value1 = getgenv().VoteValue1 or 1
local value2 = getgenv().VoteValue2 or 1
local args1 = {
[1] = value1
}
local args2 = {
[1] = value2,
[2] = true
}
pcall(function()
game:GetService("ReplicatedStorage").Events.Player.Vote:FireServer(unpack(args1))
game:GetService("ReplicatedStorage").Events.Player.Vote:FireServer(unpack(args2))
getgenv().VoteActivated = true
task.delay(10, function()
getgenv().VoteActivated = false
end)
end)
end
if getgenv().TimerCommandEnabled and not getgenv().TimerCommandActivated then
if roundStarted == false then
local args = {
[1] = "!timer 1"
}
pcall(function()
game:GetService("ReplicatedStorage").Events.Admin.VIPCommand:InvokeServer(unpack(args))
getgenv().TimerCommandActivated = true
task.delay(10, function()
getgenv().TimerCommandActivated = false
end)
end)
end
end
else
if timerValue ~= 30 then
getgenv().VIPRoundActivated = false
getgenv().VoteActivated = false
getgenv().TimerCommandActivated = false
end
end
end
end)
MiscTab = Window:AddTab({ Title = "Misc", Icon = "solar/list-bold" })
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.5",
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.5
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)
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:AddSection("Player Modification")
JumpPowerToggle = MiscTab:AddToggle("JumpPowerToggle", {
Title = "Jump Power Toggle",
Default = false
})
JumpPowerToggle:OnChanged(function()
end)
PlayerJumpPowerInput = MiscTab:AddInput("PlayerJumpPowerInput", {
Title = "Player Jump Power",
Default = "Failed To Decode",
Placeholder = "Failed To Decode",
Numeric = true,
Finished = false,
Callback = function(Value)
end
})
WalkspeedToggle = MiscTab:AddToggle("WalkspeedToggle", {
Title = "Walkspeed Toggle",
Default = false
})
WalkspeedToggle:OnChanged(function()
end)
PlayerWalkspeedInput = MiscTab:AddInput("PlayerWalkspeedInput", {
Title = "Player Walkspeed",
Default = "Failed To Decode",
Placeholder = "Failed To Decode",
Numeric = true,
Finished = false,
Callback = function(Value)
end
})
BounceToggle = MiscTab:AddToggle("WalkspeedToggle", {
Title = "Walkspeed Toggle",
Default = false
})
BounceToggle:OnChanged(function()
end)
BounceInput = MiscTab:AddInput("BounceInput", {
Title = "Player Walkspeed",
Default = "Failed To Decode",
Placeholder = "Failed To Decode",
Numeric = true,
Finished = false,
Callback = function(Value)
end
})
MiscTab:AddSection("Bounce")
BounceToggle = MiscTab:AddToggle("BounceToggle", {
Title = "Modify Bounce",
Default = false
})
BounceInput = MiscTab:AddInput("BounceInput", {
Title = "Player Bounce",
Default = "110",
Placeholder = "Enter bounce speed",
Numeric = true,
Finished = false
})
local bounceConnection = nil
local player = game:GetService("Players").LocalPlayer
local function updateBounce()
if not BounceToggle.Value then return end
local gamePlayers = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
if not gamePlayers then return end
local playerModel = gamePlayers:FindFirstChild(player.Name)
if not playerModel then return end
local humanoid = playerModel:FindFirstChild("Humanoid")
if not humanoid then return end
local speedValue = tonumber(BounceInput.Value) or 110
humanoid.WalkSpeed = speedValue
end
BounceToggle:OnChanged(function(state)
if state then
if bounceConnection then
bounceConnection:Disconnect()
end
bounceConnection = game:GetService("RunService").Heartbeat:Connect(updateBounce)
else
if bounceConnection then
bounceConnection:Disconnect()
bounceConnection = nil
end
local gamePlayers = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
if gamePlayers then
local playerModel = gamePlayers:FindFirstChild(player.Name)
if playerModel then
local humanoid = playerModel:FindFirstChild("Humanoid")
if humanoid then
humanoid.WalkSpeed = 0
end
end
end
end
end)
BounceInput:OnChanged(function(Value)
if BounceToggle.Value then
local gamePlayers = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
if gamePlayers then
local playerModel = gamePlayers:FindFirstChild(player.Name)
if playerModel then
local humanoid = playerModel:FindFirstChild("Humanoid")
if humanoid then
local speedValue = tonumber(Value) or 110
humanoid.WalkSpeed = speedValue
end
end
end
end
end)
player.CharacterAdded:Connect(function()
task.wait(1)
if BounceToggle.Value then
task.wait(1)
updateBounce()
end
end)
MiscTab:AddSection("Revive Players")
local function createGradientButton(parent, position, size, text, onClickCallback)
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(0.5, Color3.fromRGB(0, 0, 0)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 0))
}
gradient.Rotation = 0
gradient.Parent = button
local gradientAnimation
gradientAnimation = RunService.RenderStepped:Connect(function(delta)
gradient.Rotation = (gradient.Rotation + 90 * delta) % 360
end)
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(139, 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.GothamBold
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.Parent = button
button.Destroying:Connect(function()
if gradientAnimation then
gradientAnimation:Disconnect()
end
end)
local UserInputService = game:GetService("UserInputService")
local activeTouchId = nil
local startPos = nil
local startButtonPos = nil
local function updateButtonPosition(touchPos)
if not startPos or not startButtonPos then return end
local delta = touchPos - startPos
button.Position = UDim2.new(startButtonPos.X.Scale, startButtonPos.X.Offset + delta.X,
startButtonPos.Y.Scale, startButtonPos.Y.Offset + delta.Y)
end
local function resetDrag()
activeTouchId = nil
startPos = nil
startButtonPos = nil
stroke.Color = Color3.fromRGB(139, 0, 0)
end
clicker.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
local touchId = input.UserInputState
if activeTouchId ~= nil then
return
end
activeTouchId = touchId
startPos = input.Position
startButtonPos = button.Position
stroke.Color = Color3.fromRGB(255, 0, 0)
local connection
connection = input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
resetDrag()
connection:Disconnect()
end
end)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
if activeTouchId ~= nil then return end
activeTouchId = "mouse"
startPos = input.Position
startButtonPos = button.Position
stroke.Color = Color3.fromRGB(255, 0, 0)
local connection
connection = input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
resetDrag()
connection:Disconnect()
end
end)
end
end)
clicker.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
if activeTouchId ~= nil then
updateButtonPosition(input.Position)
end
elseif input.UserInputType == Enum.UserInputType.MouseMovement then
if activeTouchId ~= nil then
updateButtonPosition(input.Position)
end
end
end)
return button, clicker, stroke
end
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)
local instantReviveButtonScreenGui = nil
local instantReviveButton = nil
local instantReviveKeybindValue = "R"
local instantReviveButtonState = false
local function createInstantReviveButton()
local CoreGui = game:GetService("CoreGui")
if instantReviveButtonScreenGui then
instantReviveButtonScreenGui:Destroy()
instantReviveButtonScreenGui = nil
end
instantReviveButtonScreenGui = Instance.new("ScreenGui")
instantReviveButtonScreenGui.Name = "InstantReviveButtonGUI"
instantReviveButtonScreenGui.ResetOnSpawn = false
instantReviveButtonScreenGui.Parent = CoreGui
local buttonSize = 190
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(
instantReviveButtonScreenGui,
UDim2.new(0.5, -btnWidth/2, 0.5, 0),
UDim2.new(0, btnWidth, 0, btnHeight),
instantReviveButtonState and "Instant Revive:On" or "Instant Revive:Off"
)
clicker.MouseButton1Click:Connect(function()
instantReviveButtonState = not instantReviveButtonState
if btn:FindFirstChild("TextLabel") then
btn.TextLabel.Text = instantReviveButtonState and "Instant Revive:On" or "Instant Revive:Off"
end
if instantReviveButtonState then
InstantReviveModule.SetDelay(getgenv().InstantReviveDelay)
InstantReviveModule.Start()
else
InstantReviveModule.Stop()
end
if Options.InstantReviveToggle then
Options.InstantReviveToggle:SetValue(instantReviveButtonState)
end
end)
instantReviveButton = btn
return instantReviveButtonScreenGui
end
InstantReviveButtonToggle = MiscTab:AddToggle("InstantReviveButtonToggle", {
Title = "Instant Revive Button GUI",
Default = false,
Callback = function(Value)
if Value then
createInstantReviveButton()
else
if instantReviveButtonScreenGui then
instantReviveButtonScreenGui:Destroy()
instantReviveButtonScreenGui = nil
end
end
end
})
InstantReviveKeybind = MiscTab:AddKeybind("InstantReviveKeybind", {
Title = "Instant Revive Keybind",
Mode = "Toggle",
Default = "R",
ChangedCallback = function(New)
instantReviveKeybindValue = New
end,
Callback = function()
instantReviveButtonState = not instantReviveButtonState
if instantReviveButtonState then
InstantReviveModule.SetDelay(getgenv().InstantReviveDelay)
InstantReviveModule.Start()
else
InstantReviveModule.Stop()
end
if instantReviveButtonScreenGui and instantReviveButtonScreenGui:FindFirstChild("GradientBtn") then
local button = instantReviveButtonScreenGui:FindFirstChild("GradientBtn")
if button and button:FindFirstChild("TextLabel") then
button.TextLabel.Text = instantReviveButtonState and "Instant Revive:On" or "Instant Revive:Off"
end
end
if Options.InstantReviveToggle then
Options.InstantReviveToggle:SetValue(instantReviveButtonState)
end
end
})
InstantReviveButtonSizeInput = MiscTab:AddInput("InstantReviveButtonSizeInput", {
Title = "Instant Revive 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("InstantReviveButtonGUI")
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
})
InstantReviveToggle:OnChanged(function(Value)
instantReviveButtonState = Value
if instantReviveButtonScreenGui and instantReviveButtonScreenGui:FindFirstChild("GradientBtn") then
local button = instantReviveButtonScreenGui:FindFirstChild("GradientBtn")
if button and button:FindFirstChild("TextLabel") then
button.TextLabel.Text = instantReviveButtonState and "Instant Revive: On" or "Instant Revive: Off"
end
end
end)
InstantReviveButtonToggle:OnChanged(function(Value)
if Value then
createInstantReviveButton()
else
if instantReviveButtonScreenGui then
instantReviveButtonScreenGui:Destroy()
instantReviveButtonScreenGui = nil
end
end
end)
MiscTab:AddSection("Carry Players")
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 = "190",
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 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 = 190
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:AddSection("Emote Speed")
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
})
MiscTab:AddSection("Gun Functions")
GrappleHookToggle = MiscTab:AddButton({
Title = "Grapplehook",
Callback = function()
local success, result = pcall(function()
local GrappleHook = require(game:GetService("ReplicatedStorage").Tools["GrappleHook"])
local grappleTask = GrappleHook.Tasks[2]
local shootMethod = grappleTask.Functions[1].Activations[1].Methods[1]
shootMethod.Info.Speed = 10000
shootMethod.Info.Lifetime = 10.0
shootMethod.Info.Gravity = Vector3.new(0, 0, 0)
shootMethod.Info.SpreadIncrease = 0
shootMethod.Info.Cooldown = 0.1
grappleTask.MethodReferences.Projectile.Info.SpreadInfo.MaxSpread = 0
grappleTask.MethodReferences.Projectile.Info.SpreadInfo.MinSpread = 0
grappleTask.MethodReferences.Projectile.Info.SpreadInfo.ReductionRate = 100
local checkMethod = grappleTask.AutomaticFunctions[1].Methods[1]
checkMethod.Info.Cooldown = 0.1
checkMethod.CooldownInfo.TestCooldown = 0.1
grappleTask.ResourceInfo.Cap = 999999
GrappleHook.Adjustments.ToolViewbob = false
GrappleHook.Actions.LookBack.Enabled = true
GrappleHook.Actions.ADS.Enabled = true
GrappleHook.Actions.ADS.Zoom = 0.5
shootMethod.GlobalPriority = 500
return true
end)
if success then
Fluent:Notify({
Title = "GrappleHook",
Content = "GrappleHook успешно улучшен!",
Duration = 5
})
else
Fluent:Notify({
Title = "GrappleHook Error",
Content = "Ошибка: " .. tostring(result),
Duration = 5
})
end
end
})
BreacherToggle = MiscTab:AddButton({
Title = "Breacher (Portal Gun)",
Callback = function()
local success, result = pcall(function()
local Breacher = require(game:GetService("ReplicatedStorage").Tools.Breacher)
local portalTask
for i, task in ipairs(Breacher.Tasks) do
if task.ResourceInfo and task.ResourceInfo.Type == "Clip" then
portalTask = task
break
end
end
if not portalTask then
portalTask = Breacher.Tasks[2]
end
portalTask.ResourceInfo.Cap = 999999
local blueShoot = portalTask.Functions[1].Activations[1].Methods[1]
local yellowShoot = portalTask.Functions[2].Activations[1].Methods[1]
blueShoot.Info.Range = 999999
yellowShoot.Info.Range = 999999
blueShoot.Info.SpreadIncrease = 0
yellowShoot.Info.SpreadIncrease = 0
portalTask.MethodReferences.Portal.Info.SpreadInfo.MaxSpread = 0
portalTask.MethodReferences.Portal.Info.SpreadInfo.MinSpread = 0
portalTask.MethodReferences.Portal.Info.SpreadInfo.ReductionRate = 100
blueShoot.Info.Cooldown = 0.1
yellowShoot.Info.Cooldown = 0.1
blueShoot.CooldownInfo = {}
yellowShoot.CooldownInfo = {}
blueShoot.Requirements = {}
yellowShoot.Requirements = {}
Breacher.Actions.ADS.Enabled = false
local unequipMethod = Breacher.Tasks[1].AutomaticFunctions[2].Methods[1]
unequipMethod.CooldownInfo = {}
if blueShoot.CooldownInfo and blueShoot.CooldownInfo.DisabledActions then
local newDisabled = {}
for _, action in ipairs(blueShoot.CooldownInfo.DisabledActions) do
if action ~= "ADS" then
table.insert(newDisabled, action)
end
end
blueShoot.CooldownInfo.DisabledActions = newDisabled
end
if yellowShoot.CooldownInfo and yellowShoot.CooldownInfo.DisabledActions then
local newDisabled = {}
for _, action in ipairs(yellowShoot.CooldownInfo.DisabledActions) do
if action ~= "ADS" then
table.insert(newDisabled, action)
end
end
yellowShoot.CooldownInfo.DisabledActions = newDisabled
end
blueShoot.GlobalPriority = 500
yellowShoot.GlobalPriority = 500
blueShoot.Priority = 1
yellowShoot.Priority = 1
blueShoot.ResourceAboveZero = false
yellowShoot.ResourceAboveZero = false
portalTask.Functions[1].Activations[1].CanHoldDown = true
portalTask.Functions[2].Activations[1].CanHoldDown = true
if not blueShoot.Info.Speed then
blueShoot.Info.Speed = 5000
yellowShoot.Info.Speed = 5000
end
local baseTask = Breacher.Tasks[1]
baseTask.AutomaticFunctions[1].Methods[1].Info.Cooldown = 0.1
baseTask.AutomaticFunctions[2].Methods[1].Info.Cooldown = 0.1
Breacher.Actions.LookBack.Enabled = true
Breacher.Adjustments.ToolViewbob = true
Breacher.Adjustments.AnimationRootStraight = true
Breacher.Adjustments.TurnWaist = true
Breacher.HUD.CrosshairType = "Accurate"
Breacher.HUD.Colored = true
if Breacher.Actions.ADS.Zoom then
Breacher.Actions.ADS.Zoom = nil
end
return true
end)
if success then
Fluent:Notify({
Title = "Breacher (Portal Gun)",
Content = "Portal Gun Successfully upgraded! \n✓ Infinite charges \n✓ Maximum range \n✓ Instant reload",
Duration = 6
})
else
Fluent:Notify({
Title = "Breacher Error",
Content = "Error: " .. tostring(result),
Duration = 5
})
end
end
})
SmokeGrenadeToggle = MiscTab:AddButton({
Title = "Smoke Grenade",
Callback = function()
local success, result = pcall(function()
local SmokeGrenade = require(game:GetService("ReplicatedStorage").Tools["SmokeGrenade"])
SmokeGrenade.RequiresOwnedItem = false
local throwMethod = SmokeGrenade.Tasks[1].Functions[1].Activations[1].Methods[1]
throwMethod.ItemUseIncrement = {"SmokeGrenade", 0}
throwMethod.Info.Cooldown = 0.1
throwMethod.Info.ThrowVelocity = 200
SmokeGrenade.Tasks[1].Functions[1].Activations[1].CanHoldDown = true
throwMethod.Info.SmokeDuration = 999
throwMethod.Info.SmokeRadius = 100
throwMethod.Info.FadeTime = 60
local equipMethod = SmokeGrenade.Tasks[1].AutomaticFunctions[1].Methods[1]
local unequipMethod = SmokeGrenade.Tasks[1].AutomaticFunctions[2].Methods[1]
equipMethod.Info.Cooldown = 0.1
unequipMethod.Info.Cooldown = 0.1
throwMethod.GlobalPriority = 500
throwMethod.CooldownInfo = {}
SmokeGrenade.HUD.ShowAmount = false
throwMethod.Info.Density = 0.9
throwMethod.Info.Color = Color3.new(0.7, 0.7, 0.7)
throwMethod.Info.ExplosionRadius = 20
throwMethod.CooldownInfo.ActivatePhrase = nil
throwMethod.Info.Cooldown = 0.05
SmokeGrenade.KeybindInfo.UnequipKeybind = "Backspace"
local args = {
[1] = 0,
[2] = 20
}
game:GetService("ReplicatedStorage").Events.Character.ToolAction:FireServer(unpack(args))
return true
end)
if success then
Fluent:Notify({
Title = "Smoke Grenade",
Content = "Smoke Grenade Improved! \n✓ Infinite Grenades \n✓ Instant Reload",
Duration = 6
})
else
Fluent:Notify({
Title = "Smoke Grenade Error",
Content = "Error: " .. tostring(result),
Duration = 5
})
end
end
})
StunBatonToggle = MiscTab:AddButton({
Title = "Stun Baton",
Callback = function()
local success, result = pcall(function()
local StunBaton = require(game:GetService("ReplicatedStorage").Tools.StunBaton)
local task = StunBaton.Tasks[1]
local meleeStart = task.Functions[1].Activations[2].Methods[1]
meleeStart.Info.Cooldown = 0.05
meleeStart.Info.LungeRange = 0
meleeStart.Info.ImmortalLength = 5
meleeStart.Info.SuccessStunLength = 5
meleeStart.CooldownInfo = {}
meleeStart.Requirements = {}
local meleeStartFail = task.Functions[1].Activations[1].Methods[1]
meleeStartFail.Info.Cooldown = 0.05
meleeStartFail.Info.LungeRange = 0
meleeStartFail.Info.ImmortalLength = 5
meleeStartFail.CooldownInfo = {}
local meleeEnd = task.AutomaticFunctions[2].Methods[1]
meleeEnd.Info.Cooldown = 0.1
meleeEnd.Info.Damage = 999
meleeEnd.Info.Range = 0
meleeEnd.CooldownInfo = {}
local meleeEndFail = task.AutomaticFunctions[1].Methods[1]
meleeEndFail.Info.Cooldown = 0.1
meleeEndFail.Info.SelfDamage = 0
meleeEndFail.Info.Range = 0
meleeEndFail.CooldownInfo = {}
local equip = task.AutomaticFunctions[3].Methods[1]
local unequip = task.AutomaticFunctions[4].Methods[1]
equip.Info.Cooldown = 0.1
unequip.Info.Cooldown = 0.1
unequip.CooldownInfo = {}
StunBaton.Actions.ADS.Enabled = false
StunBaton.Actions.LookBack.Enabled = true
return true
end)
if success then
Fluent:Notify({
Title = "Stun Baton",
Content = "Stun Baton Successfully upgraded!\n✓ Instant attacks\n✓ 999 damage\n✓ No self damage\n✓ Long stun",
Duration = 6
})
else
Fluent:Notify({
Title = "Stun Baton Error",
Content = "Error: " .. tostring(result),
Duration = 5
})
end
end
})
MiscTab:AddSection("Infinity Slide")
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
})
local function createSlideGradientButton()
local CoreGui = game:GetService("CoreGui")
if slideButtonScreenGui then
slideButtonScreenGui:Destroy()
slideButtonScreenGui = nil
end
slideButtonScreenGui = Instance.new("ScreenGui")
slideButtonScreenGui.Name = "SlideButtonGUI"
slideButtonScreenGui.ResetOnSpawn = false
slideButtonScreenGui.Parent = CoreGui
local buttonSize = 190
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(
slideButtonScreenGui,
UDim2.new(0.5, -btnWidth/2, 0.5, 0),
UDim2.new(0, btnWidth, 0, btnHeight),
infiniteSlideEnabled and "Sprint Slide: On" or "Sprint Slide: Off"
)
if Options.SlideButtonScaleInput and Options.SlideButtonScaleInput.Value then
local scaleValue = tonumber(Options.SlideButtonScaleInput.Value) or 1.0
local uiScale = Instance.new("UIScale")
uiScale.Scale = math.max(0.5, math.min(scaleValue, 3.0))
uiScale.Parent = btn
end
clicker.MouseButton1Click:Connect(function()
infiniteSlideEnabled = not infiniteSlideEnabled
setInfiniteSlide(infiniteSlideEnabled)
if btn:FindFirstChild("TextLabel") then
btn.TextLabel.Text = infiniteSlideEnabled and "Sprint Slide: On" or "Sprint Slide: Off"
end
if Options.InfiniteSlideToggle then
Options.InfiniteSlideToggle:SetValue(infiniteSlideEnabled)
end
end)
return slideButtonScreenGui
end
local function updateSlideButtonText()
if slideButtonScreenGui and slideButtonScreenGui:FindFirstChild("GradientBtn") then
local button = slideButtonScreenGui:FindFirstChild("GradientBtn")
if button and button:FindFirstChild("TextLabel") then
button.TextLabel.Text = infiniteSlideEnabled and "Sprint Slide: On" or "Sprint Slide: Off"
end
end
end
SlideButtonToggle = MiscTab:AddToggle("SlideButtonToggle", {
Title = "Sprint Slide Button GUI",
Default = false,
Callback = function(Value)
if Value then
createSlideGradientButton()
else
if slideButtonScreenGui then
slideButtonScreenGui:Destroy()
slideButtonScreenGui = nil
end
end
end
})
SlideButtonScaleInput = MiscTab:AddInput("SlideButtonScaleInput", {
Title = "Sprint Slide 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("SlideButtonGUI")
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
Fluent:Notify({
Title = "Sprint Slide Button",
Content = string.format("Button scale set to %.1f", scale),
Duration = 3
})
end
end
end
end
})
SlideKeybind = MiscTab:AddKeybind("SlideKeybind", {
Title = "Sprint Slide Keybind",
Mode = "Toggle",
Default = "X",
ChangedCallback = function(New)
end,
Callback = function()
infiniteSlideEnabled = not infiniteSlideEnabled
setInfiniteSlide(infiniteSlideEnabled)
if Options.InfiniteSlideToggle then
Options.InfiniteSlideToggle:SetValue(infiniteSlideEnabled)
end
updateSlideButtonText()
end
})
MiscTab:AddSection("Gravity")
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 = 190
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
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:AddSection("Auto Jump")
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
getgenv().rotationEnabled = false
featureStates = featureStates or {}
featureStates.Bhop = false
featureStates.BhopHold = false
local bhopConnection = nil
local bhopLoaded = false
local characterConnection = nil
local frictionTables = {}
local Character = nil
local Humanoid = nil
local HumanoidRootPart = nil
local LastJump = 0
local GROUND_CHECK_OFFSET = 3.5
local GROUND_CHECK_RAY_LENGTH = 4
local MAX_SLOPE_ANGLE = 45
local bhopButtonScreenGui = nil
local rotationConnection = nil
local rotationSpeed = 100000
local function startRotation()
if rotationConnection then
rotationConnection:Disconnect()
rotationConnection = nil
end
if not getgenv().rotationEnabled or not HumanoidRootPart then return end
rotationConnection = RunService.Heartbeat:Connect(function(deltaTime)
if HumanoidRootPart and HumanoidRootPart.Parent then
local currentRotation = HumanoidRootPart.Orientation
local newRotation = Vector3.new(
currentRotation.X,
currentRotation.Y + (rotationSpeed * deltaTime),
currentRotation.Z
)
HumanoidRootPart.Orientation = newRotation
else
if rotationConnection then
rotationConnection:Disconnect()
rotationConnection = nil
end
end
end)
end
local function stopRotation()
if rotationConnection then
rotationConnection:Disconnect()
rotationConnection = nil
end
end
local function updateRotationState()
if getgenv().rotationEnabled and getgenv().autoJumpEnabled then
startRotation()
else
stopRotation()
end
end
local function createGradientButton(parent, position, size, text, onClickCallback)
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(0.5, Color3.fromRGB(0, 0, 0)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 0))
}
gradient.Rotation = 0
gradient.Parent = button
local gradientAnimation
gradientAnimation = RunService.RenderStepped:Connect(function(delta)
gradient.Rotation = (gradient.Rotation + 90 * delta) % 360
end)
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(139, 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.GothamBold
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.Parent = button
button.Destroying:Connect(function()
if gradientAnimation then
gradientAnimation:Disconnect()
end
end)
local UserInputService = game:GetService("UserInputService")
local activeTouchId = nil
local startPos = nil
local startButtonPos = nil
local function updateButtonPosition(touchPos)
if not startPos or not startButtonPos then return end
local delta = touchPos - startPos
button.Position = UDim2.new(startButtonPos.X.Scale, startButtonPos.X.Offset + delta.X,
startButtonPos.Y.Scale, startButtonPos.Y.Offset + delta.Y)
end
local function resetDrag()
activeTouchId = nil
startPos = nil
startButtonPos = nil
stroke.Color = Color3.fromRGB(139, 0, 0)
end
clicker.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
local touchId = input.UserInputState
if activeTouchId ~= nil then
return
end
activeTouchId = touchId
startPos = input.Position
startButtonPos = button.Position
stroke.Color = Color3.fromRGB(255, 0, 0)
local connection
connection = input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
resetDrag()
connection:Disconnect()
end
end)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
if activeTouchId ~= nil then return end
activeTouchId = "mouse"
startPos = input.Position
startButtonPos = button.Position
stroke.Color = Color3.fromRGB(255, 0, 0)
local connection
connection = input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
resetDrag()
connection:Disconnect()
end
end)
end
end)
clicker.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
if activeTouchId ~= nil then
updateButtonPosition(input.Position)
end
elseif input.UserInputType == Enum.UserInputType.MouseMovement then
if activeTouchId ~= nil then
updateButtonPosition(input.Position)
end
end
end)
return button, clicker, stroke
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 = 190
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 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
if Humanoid:GetState() == Enum.HumanoidStateType.Running then
return true
end
local rayOrigin = HumanoidRootPart.Position
local rayDirection = Vector3.new(0, -GROUND_CHECK_RAY_LENGTH, 0)
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
raycastParams.FilterDescendantsInstances = {Character}
raycastParams.IgnoreWater = true
local raycastResult = workspace:Raycast(rayOrigin, rayDirection, raycastParams)
if raycastResult then
local surfaceNormal = raycastResult.Normal
local angle = math.deg(math.acos(surfaceNormal:Dot(Vector3.new(0, 1, 0))))
if angle <= MAX_SLOPE_ANGLE then
local heightDiff = math.abs(rayOrigin.Y - raycastResult.Position.Y)
return heightDiff <= GROUND_CHECK_OFFSET
end
end
if HumanoidRootPart.Velocity.Y > -1 and HumanoidRootPart.Velocity.Y < 1 then
return true
end
return false
end
local function findFrictionTables()
frictionTables = {}
for _, obj in pairs(getgc(true)) do
if type(obj) == "table" and rawget(obj, "Friction") then
table.insert(frictionTables, {
obj = obj,
original = obj.Friction
})
end
end
end
local function applyBhopFriction()
local isActive = getgenv().autoJumpEnabled or getgenv().bhopHoldActive
if isActive and getgenv().bhopMode == "Acceleration" then
if #frictionTables == 0 then
findFrictionTables()
end
for _, tableData in ipairs(frictionTables) do
if tableData.obj and type(tableData.obj) == "table" then
pcall(function()
tableData.obj.Friction = getgenv().bhopAccelValue or -0.5
end)
end
end
else
for _, tableData in ipairs(frictionTables) do
if tableData.obj and type(tableData.obj) == "table" and tableData.original then
pcall(function()
tableData.obj.Friction = tableData.original
end)
end
end
end
end
local function updateBhop()
if not bhopLoaded then return end
local isActive = getgenv().autoJumpEnabled or getgenv().bhopHoldActive
if isActive then
if not Character or not Humanoid or not HumanoidRootPart then
Character = player.Character
if Character then
Humanoid = Character:FindFirstChildOfClass("Humanoid")
HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
end
if not Humanoid or not HumanoidRootPart then return end
end
if Humanoid:GetState() == Enum.HumanoidStateType.Dead then
return
end
local now = tick()
if getgenv().autoJumpType == "Realistic" then
pcall(function()
player.PlayerScripts.Events.temporary_events.JumpReact:Fire()
player.PlayerScripts.Events.temporary_events.EndJump:Fire()
end)
else
if IsOnGround() and (now - LastJump) > 0.25 then
Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
LastJump = now
end
end
end
end
local function loadBhop()
if bhopLoaded then return end
bhopLoaded = true
findFrictionTables()
applyBhopFriction()
if bhopConnection then
bhopConnection:Disconnect()
end
bhopConnection = RunService.Heartbeat:Connect(function(deltaTime)
updateBhop()
end)
end
local function unloadBhop()
if not bhopLoaded then return end
bhopLoaded = false
if bhopConnection then
bhopConnection:Disconnect()
bhopConnection = nil
end
getgenv().bhopHoldActive = false
applyBhopFriction()
end
local function checkBhopState()
local shouldLoad = getgenv().autoJumpEnabled or getgenv().bhopHoldActive
if shouldLoad then
loadBhop()
updateRotationState()
else
unloadBhop()
stopRotation()
end
end
local function reapplyBhopOnRespawn()
if getgenv().autoJumpEnabled or getgenv().bhopHoldActive then
task.wait(1)
Character = player.Character
if Character then
Humanoid = Character:FindFirstChildOfClass("Humanoid")
HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
end
checkBhopState()
end
end
local function setupJumpButton()
local isMobile = UserInputService.TouchEnabled
if isMobile then
task.spawn(function()
task.wait(2)
local success, err = pcall(function()
local touchGui = player:WaitForChild("PlayerGui"):WaitForChild("TouchGui")
if not touchGui then return end
local touchControlFrame = touchGui:WaitForChild("TouchControlFrame")
if not touchControlFrame then return end
local jumpButton = touchControlFrame:WaitForChild("JumpButton")
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)
if not success then
end
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
})
RotationToggle = MiscTab:AddToggle("RotationToggle", {
Title = "Rotation 360",
Description = "Do not use with emotions!",
Default = false,
Callback = function(Value)
getgenv().rotationEnabled = Value
updateRotationState()
end
})
BhopToggle = MiscTab:AddToggle("BhopToggle", {
Title = "Bunny Hop",
Default = false,
Callback = function(Value)
featureStates.Bhop = Value
getgenv().autoJumpEnabled = Value
updateBhopButtonText()
updateRotationState()
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
if Character then
Humanoid = Character:FindFirstChildOfClass("Humanoid")
HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
updateRotationState()
else
Humanoid = nil
HumanoidRootPart = nil
stopRotation()
end
end
end)
if characterConnection then
characterConnection:Disconnect()
end
characterConnection = player.CharacterAdded:Connect(function(character)
Character = character
task.wait(0.5)
Humanoid = character:WaitForChild("Humanoid")
HumanoidRootPart = character:WaitForChild("HumanoidRootPart")
setupJumpButton()
reapplyBhopOnRespawn()
updateRotationState()
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
checkBhopState()
end
end)
task.spawn(function()
task.wait(2)
if player.Character then
Character = player.Character
Humanoid = Character:FindFirstChildOfClass("Humanoid")
HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
end
setupJumpButton()
if featureStates.Bhop then
checkBhopState()
end
task.wait(1)
if Options.BhopButtonToggle and Options.BhopButtonToggle.Value then
createBhopGradientButton()
end
end)
Players.PlayerRemoving:Connect(function(leavingPlayer)
if leavingPlayer == player then
unloadBhop()
stopRotation()
if characterConnection then
characterConnection:Disconnect()
characterConnection = nil
end
end
end)
MiscTab:AddSection("Lag Switch")
local lagSwitchEnabled = false
local lagSwitchKeybindValue = "F12"
local lagDelayValue = 0.1
local lagIntensity = 1000000
local lagSwitchMode = "Normal"
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 performDemonLag()
local startTime = tick()
local duration = lagDelayValue
local currentHeightInput = Options.DemonRiseHeightInput and Options.DemonRiseHeightInput.Value or "100"
local currentSpeedInput = Options.DemonRiseSpeedInput and Options.DemonRiseSpeedInput.Value or "80"
local RISE_HEIGHT = tonumber(currentHeightInput) or 10
local BOOST_SPEED = tonumber(currentSpeedInput) or 80
task.spawn(function()
local startLagTime = tick()
while tick() - startLagTime < duration do
for i = 1, math.floor(lagIntensity / 2) 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)
end
end
end)
local player = game:GetService("Players").LocalPlayer
local character = player.Character
if character then
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
local humanoid = character:FindFirstChild("Humanoid")
if humanoidRootPart and humanoid then
local startHeight = humanoidRootPart.Position.Y
local bodyThrust = Instance.new("BodyThrust")
bodyThrust.Name = "DemonRiseThrust"
bodyThrust.Force = Vector3.new(0, BOOST_SPEED * 500, 0)
bodyThrust.Location = Vector3.new(0, 0, 0)
bodyThrust.Parent = humanoidRootPart
local bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.Name = "DemonRiseVelocity"
bodyVelocity.MaxForce = Vector3.new(0, 500000, 0)
bodyVelocity.Velocity = Vector3.new(0, BOOST_SPEED, 0)
bodyVelocity.Parent = humanoidRootPart
local waitTime = 0
local maxWaitTime = 5
while waitTime < maxWaitTime do
local currentHeight = humanoidRootPart.Position.Y
local heightGained = currentHeight - startHeight
if heightGained >= RISE_HEIGHT then
break
end
task.wait(0.1)
waitTime = waitTime + 0.1
end
if bodyThrust then
bodyThrust:Destroy()
end
if bodyVelocity then
bodyVelocity:Destroy()
end
local finalHeight = humanoidRootPart.Position.Y
local heightGained = finalHeight - startHeight
Fluent:Notify({
Title = "Demon Mode",
Content = string.format("Lifted %.1f meters", heightGained),
Duration = 3
})
end
end
isLagActive = false
end
local function toggleLagSwitch()
if not isLagActive then
isLagActive = true
if lagSwitchMode == "Normal" then
task.spawn(function()
performMathLag()
isLagActive = false
end)
elseif lagSwitchMode == "Demon" then
task.spawn(function()
performDemonLag()
isLagActive = false
end)
end
end
end
getgenv().DemonRiseHeight = 10
getgenv().DemonRiseSpeed = 80
getgenv().DemonSoftLanding = true
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 = 190
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()
if lagSwitchEnabled then
toggleLagSwitch()
end
end)
end
end
LagSwitchToggle = MiscTab:AddToggle("LagSwitchToggle", {
Title = "Lag Switch",
Default = false,
Callback = function(Value)
lagSwitchEnabled = Value
end
})
LagSwitchModeDropdown = MiscTab:AddDropdown("LagSwitchModeDropdown", {
Title = "Lag Switch Mode",
Values = {"Normal", "Demon"},
Multi = false,
Default = "Normal",
Callback = function(Value)
lagSwitchMode = Value
end
})
LagDelayInput = MiscTab:AddInput("LagDelayInput", {
Title = "Lag Delay (Seconds)",
Default = "0.1",
Placeholder = "Enter delay in seconds (0.1-5)",
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
})
DemonRiseHeightInput = MiscTab:AddInput("DemonRiseHeightInput", {
Title = "Demon Rise Height (meters)",
Default = "10",
Placeholder = "Enter rise height in meters (10-500)",
Numeric = true,
Finished = false,
Callback = function(Value)
local num = tonumber(Value)
if num and num >= 10 and num <= 500 then
getgenv().DemonRiseHeight = num
Fluent:Notify({
Title = "Demon Mode",
Content = string.format("Rise height set to %d meters", num),
Duration = 3
})
else
Fluent:Notify({
Title = "Demon Mode",
Content = "Height must be between 10 and 500 meters",
Duration = 3
})
end
end
})
DemonRiseSpeedInput = MiscTab:AddInput("DemonRiseSpeedInput", {
Title = "Demon Rise Speed",
Default = "80",
Placeholder = "Enter rise speed (20-200)",
Numeric = true,
Finished = false,
Callback = function(Value)
local num = tonumber(Value)
if num and num >= 20 and num <= 200 then
getgenv().DemonRiseSpeed = num
Fluent:Notify({
Title = "Demon Mode",
Content = string.format("Rise speed set to %d", num),
Duration = 3
})
else
Fluent:Notify({
Title = "Demon Mode",
Content = "Speed must be between 20 and 200",
Duration = 3
})
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()
if lagSwitchEnabled then
toggleLagSwitch()
end
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
})
task.spawn(function()
task.wait(1)
if DemonRiseHeightInput then
DemonRiseHeightInput:SetValue("100")
end
if DemonRiseSpeedInput then
DemonRiseSpeedInput:SetValue("80")
end
if DemonSoftLandingToggle then
DemonSoftLandingToggle:SetValue(true)
end
end)
MiscTab:AddParagraph({
Title = "Demon Mode Features",
Content = "Demon mode combines lag switch with character elevation. Default height: 100 meters. You can adjust height and speed settings."
})
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
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.
IDK Draconic Hub Remake X Keyless

Universal