![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)
Keyless VerifiedUniversal

local lp = game:GetService("Players").LocalPlayer
local pgui = lp:WaitForChild("PlayerGui")
if pgui:FindFirstChild("DraconicHubGui") then
pgui.DraconicHubGui:Destroy()
end
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "Draconic Hub X Evade",
Text = "Welcome Draconic Hub Remake",
Duration = 7
})
local Fluent = loadstring(game:HttpGet("https://github.com/Ksndfkssc/87643/releases/download/Fluent/Fluent.lua"))()
local SaveManager = Fluent.SaveManager
local InterfaceManager = Fluent.InterfaceManager
local Window = Fluent:CreateWindow({
Title = "🌟 | Draconic-X-Remake",
SubTitle = "Overhaul (Ai Generated Ass code) Fucked by Pnsdg Got stolen by Unknownproooolucky",
TabWidth = 160,
Size = UDim2.fromOffset(580, 460),
Theme = "Blood Red",
MinimizeKey = Enum.KeyCode.LeftControl,
Search = true
})
local FloatingButton = loadstring(game:HttpGet("https://raw.githubusercontent.com/Ksndfkssc/87643/refs/heads/main/Online%20Script/FlyBytton.lua",true))()
FloatingButton.init(Window)
local Tabs = {
Main = Window:AddTab({ Title = "Main", Icon = "solar/home-bold" })
}
local Options = Fluent.Options
Fluent:Notify({
Title = "Draconic X Evade",
Content = "System Loaded...",
Duration = 3
})
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local VirtualUser = game:GetService("VirtualUser")
local LocalPlayer = Players.LocalPlayer
local NextbotBillboards = {}
local nextbotLoop = nil
local TicketBillboards = {}
local ExternalESP = nil
local ExternalESPLoaded = false
local ExternalNextbotESP = nil
local ExternalNextbotESPLoaded = false
local function forceCleanAllESP()
for _, obj in ipairs(workspace:GetDescendants()) do
if obj:IsA("BillboardGui") or obj:IsA("SurfaceGui") then
if obj.Name:find("ESP") or obj.Name:find("Nextbot") or obj.Name:find("Billboard") then
obj:Destroy()
end
end
end
local playerGui = game:GetService("Players").LocalPlayer:FindFirstChild("PlayerGui")
if playerGui then
for _, gui in ipairs(playerGui:GetDescendants()) do
if gui:IsA("BillboardGui") or gui:IsA("SurfaceGui") or gui:IsA("TextLabel") then
if gui.Name:find("ESP") or gui.Name:find("Nextbot") then
gui:Destroy()
end
end
end
end
local coreGui = game:GetService("CoreGui")
for _, gui in ipairs(coreGui:GetDescendants()) do
if gui:IsA("BillboardGui") or gui:IsA("SurfaceGui") then
if gui.Name:find("ESP") or gui.Name:find("Nextbot") then
gui:Destroy()
end
end
end
pcall(function()
local drawings = {}
for _, v in pairs(getgenv() or {}) do
if type(v) == "table" then
if v.Visible ~= nil and v.Color ~= nil and v.Thickness ~= nil then
table.insert(drawings, v)
end
end
end
for _, drawing in ipairs(drawings) do
if drawing.Remove then
pcall(function() drawing:Remove() end)
end
end
end)
end
local playerTracerElements = {}
local botTracerElements = {}
local playerTracerConnection = nil
local botTracerConnection = nil
local lastSavedPosition = nil
local respawnConnection = nil
local AutoSelfReviveConnection = nil
local hasRevived = false
local SelfReviveMethod = "Spawnpoint"
local AntiAFKConnection = nil
local autoWhistleHandle = nil
local stableCameraInstance = nil
function cleanUpOnlyPlayerESPObjects()
local cleaned = 0
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
if player.Character then
for _, obj in pairs(player.Character:GetDescendants()) do
if obj:IsA("BillboardGui") then
local objName = obj.Name:lower()
if objName:find("esp") and
not objName:find("nextbot") and
not objName:find("npc") and
not objName:find("bot") and
not objName:find("enemy") then
obj:Destroy()
cleaned = cleaned + 1
end
end
end
end
end
end
local guiContainers = {
game:GetService("CoreGui"),
LocalPlayer.PlayerGui
}
for _, container in pairs(guiContainers) do
for _, gui in pairs(container:GetDescendants()) do
if gui:IsA("BillboardGui") or gui:IsA("ScreenGui") then
local guiName = gui.Name:lower()
if (guiName:find("player") or guiName:find("esp")) and
not guiName:find("nextbot") and
not guiName:find("bot") then
gui:Destroy()
cleaned = cleaned + 1
end
end
end
end
return cleaned
end
local nextBotNames = {}
if ReplicatedStorage:FindFirstChild("NPCs") then
for _, npc in ipairs(ReplicatedStorage.NPCs:GetChildren()) do
table.insert(nextBotNames, npc.Name)
end
end
function isNextbotModel(model)
if not model or not model.Name then return false end
for _, name in ipairs(nextBotNames) do
if model.Name == name then return true end
end
return model.Name:lower():find("nextbot") or
model.Name:lower():find("scp") or
model.Name:lower():find("monster") or
model.Name:lower():find("creep") or
model.Name:lower():find("enemy") or
model.Name:lower():find("zombie") or
model.Name:lower():find("ghost") or
model.Name:lower():find("demon")
end
function getDistanceFromPlayer(targetPosition)
if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
return 0
end
local distance = (targetPosition - LocalPlayer.Character.HumanoidRootPart.Position).Magnitude
return math.floor(distance)
end
local function scanForTickets()
if ExternalTicketESPLoaded and _G.UpdateTicketESP then
pcall(_G.UpdateTicketESP)
else
local ticketsFound = {}
local gameFolder = workspace:FindFirstChild("Game")
if gameFolder then
local effects = gameFolder:FindFirstChild("Effects")
if effects then
local tickets = effects:FindFirstChild("Tickets")
if tickets then
for _, ticket in pairs(tickets:GetChildren()) do
if ticket:IsA("BasePart") or ticket:IsA("Model") then
local part = ticket:IsA("Model") and
(ticket:FindFirstChild("HumanoidRootPart") or
ticket:FindFirstChild("Head") or
ticket.PrimaryPart or
ticket:FindFirstChildWhichIsA("BasePart")) or
ticket:IsA("BasePart") and ticket
if part then
ticketsFound[ticket] = part
end
end
end
end
end
end
for ticket, data in pairs(TicketBillboards) do
if not ticketsFound[ticket] or not ticket.Parent then
if data.esp then
data.esp:Destroy()
end
TicketBillboards[ticket] = nil
end
end
end
end
function createTracerObject()
local tracer = Drawing.new("Line")
tracer.Visible = false
tracer.Thickness = 1
tracer.ZIndex = 1
return tracer
end
function updatePlayerTracers()
local camera = workspace.CurrentCamera
if not camera then return end
local screenBottomCenter = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y)
local currentTargets = {}
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
local hrp = player.Character:FindFirstChild("HumanoidRootPart")
if hrp then
currentTargets[player] = true
if not playerTracerElements[player] then
playerTracerElements[player] = createTracerObject()
end
local tracer = playerTracerElements[player]
local vector, onScreen = camera:WorldToViewportPoint(hrp.Position)
if onScreen then
tracer.Visible = true
tracer.From = screenBottomCenter
tracer.To = Vector2.new(vector.X, vector.Y)
tracer.Color = Color3.fromRGB(255, 255, 255)
else
tracer.Visible = false
end
end
end
end
for player, tracer in pairs(playerTracerElements) do
if not currentTargets[player] then
if tracer and tracer.Remove then
tracer:Remove()
end
playerTracerElements[player] = nil
end
end
end
function updateBotTracers()
local camera = workspace.CurrentCamera
if not camera then return end
local screenBottomCenter = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y)
local currentTargets = {}
local playersFolder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
if playersFolder then
for _, model in pairs(playersFolder:GetChildren()) do
if model:IsA("Model") and isNextbotModel(model) then
local hrp = model:FindFirstChild("HumanoidRootPart")
if hrp then
currentTargets[model] = true
if not botTracerElements[model] then
botTracerElements[model] = createTracerObject()
end
local tracer = botTracerElements[model]
local vector, onScreen = camera:WorldToViewportPoint(hrp.Position)
if onScreen then
tracer.Visible = true
tracer.From = screenBottomCenter
tracer.To = Vector2.new(vector.X, vector.Y)
tracer.Color = Color3.fromRGB(255, 0, 0)
else
tracer.Visible = false
end
end
end
end
end
local npcsFolder = workspace:FindFirstChild("NPCs")
if npcsFolder then
for _, model in pairs(npcsFolder:GetChildren()) do
if model:IsA("Model") and isNextbotModel(model) then
local hrp = model:FindFirstChild("HumanoidRootPart")
if hrp then
currentTargets[model] = true
if not botTracerElements[model] then
botTracerElements[model] = createTracerObject()
end
local tracer = botTracerElements[model]
local vector, onScreen = camera:WorldToViewportPoint(hrp.Position)
if onScreen then
tracer.Visible = true
tracer.From = screenBottomCenter
tracer.To = Vector2.new(vector.X, vector.Y)
tracer.Color = Color3.fromRGB(255, 0, 0)
else
tracer.Visible = false
end
end
end
end
end
for model, tracer in pairs(botTracerElements) do
if not currentTargets[model] then
if tracer and tracer.Remove then
tracer:Remove()
end
botTracerElements[model] = nil
end
end
end
function startPlayerTracers()
if playerTracerConnection then return end
playerTracerConnection = RunService.RenderStepped:Connect(updatePlayerTracers)
end
function stopPlayerTracers()
if playerTracerConnection then
playerTracerConnection:Disconnect()
playerTracerConnection = nil
end
for player, tracer in pairs(playerTracerElements) do
if tracer and tracer.Remove then
tracer:Remove()
end
end
playerTracerElements = {}
end
function startBotTracers()
if botTracerConnection then return end
botTracerConnection = RunService.RenderStepped:Connect(updateBotTracers)
end
function stopBotTracers()
if botTracerConnection then
botTracerConnection:Disconnect()
botTracerConnection = nil
end
for model, tracer in pairs(botTracerElements) do
if tracer and tracer.Remove then
tracer:Remove()
end
end
botTracerElements = {}
end
local function startAutoRespawn()
if AutoSelfReviveConnection then
AutoSelfReviveConnection:Disconnect()
end
if respawnConnection then
respawnConnection:Disconnect()
end
local character = LocalPlayer.Character
if character then
AutoSelfReviveConnection = character:GetAttributeChangedSignal("Downed"):Connect(function()
local isDowned = character:GetAttribute("Downed")
if isDowned then
if SelfReviveMethod == "Spawnpoint" then
if not hasRevived then
hasRevived = true
pcall(function()
ReplicatedStorage.Events.Player.ChangePlayerMode:FireServer(true)
end)
task.delay(0.5, function()
hasRevived = false
end)
end
elseif SelfReviveMethod == "Fake Revive" then
if not hasRevived then
hasRevived = true
local lastPos = nil
if character and character:FindFirstChild("HumanoidRootPart") then
lastPos = character.HumanoidRootPart.Position
end
pcall(function()
ReplicatedStorage:WaitForChild("Events"):WaitForChild("Player"):WaitForChild("ChangePlayerMode"):FireServer(true)
end)
task.spawn(function()
for i = 1, 10 do
local newChar = LocalPlayer.Character
if newChar and newChar ~= character then
local newHRP = newChar:FindFirstChild("HumanoidRootPart")
if newHRP and lastPos then
newHRP.CFrame = CFrame.new(lastPos)
break
end
end
task.wait(0.05)
end
end)
task.delay(0.5, function()
hasRevived = false
end)
end
end
end
end)
end
respawnConnection = LocalPlayer.CharacterAdded:Connect(function(newChar)
task.wait(0.5)
local newHumanoid = newChar:WaitForChild("Humanoid")
local newHRP = newChar:WaitForChild("HumanoidRootPart")
AutoSelfReviveConnection = newChar:GetAttributeChangedSignal("Downed"):Connect(function()
local isDowned = newChar:GetAttribute("Downed")
if isDowned then
if SelfReviveMethod == "Spawnpoint" then
if not hasRevived then
hasRevived = true
pcall(function()
ReplicatedStorage.Events.Player.ChangePlayerMode:FireServer(true)
end)
task.delay(0.5, function()
hasRevived = false
end)
end
elseif SelfReviveMethod == "Fake Revive" then
if not hasRevived then
hasRevived = true
local lastPos = nil
if newHRP then
lastPos = newHRP.Position
end
pcall(function()
ReplicatedStorage:WaitForChild("Events"):WaitForChild("Player"):WaitForChild("ChangePlayerMode"):FireServer(true)
end)
task.spawn(function()
for i = 1, 10 do
local freshChar = LocalPlayer.Character
if freshChar and freshChar ~= newChar then
local freshHRP = freshChar:FindFirstChild("HumanoidRootPart")
if freshHRP and lastPos then
freshHRP.CFrame = CFrame.new(lastPos)
break
end
end
task.wait(0.05)
end
end)
task.delay(0.5, function()
hasRevived = false
end)
end
end
end
end)
end)
end
local function stopAutoRespawn()
if AutoSelfReviveConnection then
AutoSelfReviveConnection:Disconnect()
AutoSelfReviveConnection = nil
end
if respawnConnection then
respawnConnection:Disconnect()
respawnConnection = nil
end
hasRevived = false
lastSavedPosition = nil
end
local function startAntiAFK()
if AntiAFKConnection then return end
AntiAFKConnection = LocalPlayer.Idled:Connect(function()
VirtualUser:Button2Down(Vector2.new(0,0), workspace.CurrentCamera.CFrame)
task.wait(1)
VirtualUser:Button2Up(Vector2.new(0,0), workspace.CurrentCamera.CFrame)
end)
end
local function stopAntiAFK()
if AntiAFKConnection then
AntiAFKConnection:Disconnect()
AntiAFKConnection = nil
end
end
local function startAutoWhistle()
if autoWhistleHandle then
stopAutoWhistle()
end
autoWhistleHandle = task.spawn(function()
while true do
if not AutoWhistleToggle.Value then break end
pcall(function()
local success, result = pcall(function()
return ReplicatedStorage.Events.Character.Whistle:FireServer()
end)
if not success then
warn("Auto Whistle Error:", result)
end
end)
task.wait(1)
end
autoWhistleHandle = nil
end)
end
local function stopAutoWhistle()
if autoWhistleHandle then
local handle = autoWhistleHandle
autoWhistleHandle = nil
pcall(function()
if type(handle) == "table" and handle.cancel then
handle:cancel()
end
end)
end
end
local StableCamera = {}
StableCamera.__index = StableCamera
function StableCamera.new(maxDistance)
local self = setmetatable({}, StableCamera)
self.Player = Players.LocalPlayer
self.MaxDistance = maxDistance or 50
self._conn = RunService.RenderStepped:Connect(function(dt) self:Update(dt) end)
return self
end
local function tryResetShake(player)
if not player then return end
local ok, playerScripts = pcall(function() return player:FindFirstChild("PlayerScripts") end)
if not ok or not playerScripts then return end
local cameraSet = playerScripts:FindFirstChild("Camera") and playerScripts.Camera:FindFirstChild("Set")
if cameraSet and type(cameraSet.Invoke) == "function" then
pcall(function()
cameraSet:Invoke("CFrameOffset", "Shake", CFrame.new())
end)
end
end
function StableCamera:Update(dt)
if Players and Players.LocalPlayer then
tryResetShake(Players.LocalPlayer)
end
end
function StableCamera:Destroy()
if self._conn then
self._conn:Disconnect()
self._conn = nil
end
end
local function startNoCameraShake()
if stableCameraInstance then return end
stableCameraInstance = StableCamera.new()
end
local function stopNoCameraShake()
if stableCameraInstance then
stableCameraInstance:Destroy()
stableCameraInstance = nil
end
end
billboardSection = Tabs.Main:AddSection("Billboard ESP")
NextbotToggle = Tabs.Main:AddToggle("NextbotToggle", {
Title = "ESP Nextbots",
Default = false
})
PlayerToggle = Tabs.Main:AddToggle("PlayerToggle", {
Title = "ESP Players",
Default = false
})
TicketToggle = Tabs.Main:AddToggle("TicketToggle", {
Title = "ESP Tickets",
Default = false
})
local highlightSection = Tabs.Main:AddSection("Highlight")
local HighlightDownedPlayers = loadstring(game:HttpGet("https://raw.githubusercontent.com/Ksndfkssc/87643/refs/heads/main/Online%20Script/HighlightPlayers.lua"))()
HighlightDownedPlayers:Init(Fluent, Options)
HighlightDownedToggle = Tabs.Main:AddToggle("HighlightDownedToggle", {
Title = "Highlight Players",
Default = false,
Callback = function(value)
if value then
HighlightDownedPlayers:Start()
else
HighlightDownedPlayers:Stop()
end
end
})
local HighlightBots = loadstring(game:HttpGet("https://raw.githubusercontent.com/Ksndfkssc/87643/refs/heads/main/Online%20Script/HighlightBots.lua"))()
HighlightBots:Init(Fluent, Options)
HighlightBotsToggle = Tabs.Main:AddToggle("HighlightBotsToggle", {
Title = "Highlight Bots",
Default = false,
Callback = function(value)
if value then
HighlightBots:Start()
else
HighlightBots:Stop()
end
end
})
LocalPlayer.CharacterAdded:Connect(function()
task.wait(2)
if HighlightBotsToggle and HighlightBotsToggle.Value then
HighlightBots:Refresh()
end
end)
workspace.ChildAdded:Connect(function(child)
task.wait(1)
if child.Name == "Game" and HighlightBotsToggle and HighlightBotsToggle.Value then
HighlightBots:Refresh()
end
end)
LocalPlayer.CharacterAdded:Connect(function()
task.wait(1)
if HighlightDownedToggle and HighlightDownedToggle.Value then
HighlightDownedPlayers:Refresh()
end
end)
tracerSection = Tabs.Main:AddSection("Tracer ESP")
TracerPlayerToggle = Tabs.Main:AddToggle("TracerPlayerToggle", {
Title = "Tracer Players",
Default = false
})
TracerBotToggle = Tabs.Main:AddToggle("TracerBotToggle", {
Title = "Tracer Bots",
Default = false
})
modificationSection = Tabs.Main:AddSection("Respawn")
AutoRespawnTypeDropdown = Tabs.Main:AddDropdown("AutoRespawnTypeDropdown", {
Title = "Auto Respawn Type",
Values = {"Spawnpoint", "Fake Revive"},
Multi = false,
Default = "Spawnpoint",
})
RespawnButton = Tabs.Main:AddButton({
Title = "Respawn Button",
Callback = function()
local CoreGui = game:GetService("CoreGui")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local existingScreenGui = CoreGui:FindFirstChild("DraconicRespawnButtonGUI")
if existingScreenGui then
existingScreenGui:Destroy()
else
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "DraconicRespawnButtonGUI"
screenGui.ResetOnSpawn = false
screenGui.Parent = CoreGui
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 buttonSize = 190
if Options.RespawnButtonSizeInput and Options.RespawnButtonSizeInput.Value and tonumber(Options.RespawnButtonSizeInput.Value) then
buttonSize = tonumber(Options.RespawnButtonSizeInput.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),
"RESPAWN"
)
clicker.MouseButton1Click:Connect(function()
manualRevive()
end)
end
end
})
RespawnButtonSizeInput = Tabs.Main:AddInput("RespawnButtonSizeInput", {
Title = "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("DraconicRespawnButtonGUI")
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
})
modificationSection = Tabs.Main:AddSection("Things")
AntiAFKToggle = Tabs.Main:AddToggle("AntiAFKToggle", {
Title = "Anti AFK",
Default = false
})
AutoWhistleToggle = Tabs.Main:AddToggle("AutoWhistleToggle", {
Title = "Auto Whistle",
Default = false
})
NoCameraShakeToggle = Tabs.Main:AddToggle("NoCameraShakeToggle", {
Title = "No Camera Shake",
Default = false
})
NextbotToggle:OnChanged(function(value)
if value then
if not ExternalNextbotESPLoaded then
local success, errorMsg = pcall(function()
ExternalNextbotESP = loadstring(game:HttpGet("https://raw.githubusercontent.com/Ksndfkssc/87643/refs/heads/main/Test%20Script/NextbotESP.lua"))()
ExternalNextbotESPLoaded = true
_G.NextbotESPRunning = true
if ExternalNextbotESP and ExternalNextbotESP.Start then
ExternalNextbotESP.Start()
end
Fluent:Notify({
Title = "ESP Nextbots",
Content = "External Nextbot ESP loaded and running!",
Duration = 3
})
end)
if not success then
Fluent:Notify({
Title = "ESP Nextbots Error",
Content = "Failed to load external Nextbot ESP: " .. tostring(errorMsg),
Duration = 5
})
Options.NextbotToggle:Set(false)
return
end
else
if ExternalNextbotESP and ExternalNextbotESP.Start then
ExternalNextbotESP.Start()
end
_G.NextbotESPRunning = true
end
if not nextbotLoop then
nextbotLoop = RunService.Heartbeat:Connect(function()
if Options.NextbotToggle.Value then
if _G.NextbotESPRunning == false then
_G.NextbotESPRunning = true
if ExternalNextbotESP and ExternalNextbotESP.Start then
pcall(ExternalNextbotESP.Start)
end
end
end
end)
end
else
if nextbotLoop then
nextbotLoop:Disconnect()
nextbotLoop = nil
end
if ExternalNextbotESP and ExternalNextbotESPLoaded then
if ExternalNextbotESP.Stop then
pcall(function()
ExternalNextbotESP.Stop()
end)
end
end
task.spawn(function()
task.wait(0.2)
for model, data in pairs(NextbotBillboards) do
if data.esp and data.esp:IsDescendantOf(game) then
local espName = data.esp.Name:lower()
if espName:find("nextbot") or espName:find("bot") or espName:find("npc") then
data.esp:Destroy()
end
end
end
NextbotBillboards = {}
for model, tracer in pairs(botTracerElements) do
if tracer and tracer.Remove then
pcall(function()
tracer:Remove()
end)
end
end
botTracerElements = {}
pcall(function()
for _, drawing in pairs(game:GetService("Players").LocalPlayer.PlayerGui:GetDescendants()) do
if drawing:IsA("BillboardGui") and drawing.Name:find("Nextbot") then
drawing:Destroy()
end
end
for _, obj in pairs(getgc(true)) do
if type(obj) == "table" then
if obj.__type and obj.__type == "Drawing" and obj.Color then
if obj.Color.r == 1 and obj.Color.g == 0 and obj.Color.b == 0 then
if obj.Remove then
pcall(obj.Remove, obj)
end
end
end
end
end
end)
end)
ExternalNextbotESPLoaded = false
_G.NextbotESPRunning = false
Fluent:Notify({
Title = "ESP Nextbots",
Content = "Nextbot ESP disabled!",
Duration = 3
})
end
end)
PlayerToggle:OnChanged(function(value)
if value then
cleanUpOnlyPlayerESPObjects()
local nextbotESPActive = Options.NextbotToggle and Options.NextbotToggle.Value
if not ExternalESPLoaded then
local success, errorMsg = pcall(function()
local espScript = game:HttpGet("https://raw.githubusercontent.com/Ksndfkssc/87643/refs/heads/main/Test%20Script/Esp.lua", true)
espScript = [[
if _G.PlayerESP_Loaded == true then
return
end
_G.PlayerESP_Loaded = true
local function cleanOldPlayerESP()
for _, player in pairs(game:GetService("Players"):GetPlayers()) do
if player ~= game:GetService("Players").LocalPlayer then
if player.Character then
local esp = player.Character:FindFirstChild("PlayerESP")
if esp then
esp:Destroy()
end
end
end
end
end
cleanOldPlayerESP()
]] .. espScript
ExternalESP = loadstring(espScript)()
ExternalESPLoaded = true
_G.ExternalESPRunning = true
_G.PlayerESP_Loaded = true
Fluent:Notify({
Title = "ESP Players",
Content = "Player ESP loaded!",
Duration = 3
})
end)
if not success then
Fluent:Notify({
Title = "ESP Players Error",
Content = "Failed to load ESP: " .. tostring(errorMsg),
Duration = 5
})
Options.PlayerToggle:Set(false)
return
end
else
_G.ExternalESPRunning = true
_G.PlayerESP_Loaded = true
end
if nextbotESPActive then
task.wait(0.5)
if ExternalNextbotESP and ExternalNextbotESPLoaded and ExternalNextbotESP.Start then
pcall(ExternalNextbotESP.Start)
end
end
if not playerLoop then
playerLoop = RunService.Heartbeat:Connect(function()
if Options.PlayerToggle.Value then
local playerEspCount = 0
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
for _, obj in pairs(player.Character:GetDescendants()) do
if obj:IsA("BillboardGui") then
local textLabels = obj:GetDescendants()
local labelCount = 0
for _, label in pairs(textLabels) do
if label:IsA("TextLabel") then
labelCount = labelCount + 1
end
end
if labelCount > 3 then
obj:Destroy()
playerEspCount = playerEspCount + 1
end
end
end
end
end
end
end)
end
else
if playerLoop then
playerLoop:Disconnect()
playerLoop = nil
end
cleanUpOnlyPlayerESPObjects()
if ExternalESP and ExternalESPLoaded then
if type(ExternalESP) == "table" and ExternalESP.Stop then
pcall(ExternalESP.Stop)
end
end
_G.ExternalESPRunning = false
_G.PlayerESP_Loaded = false
ExternalESPLoaded = false
Fluent:Notify({
Title = "ESP Players",
Content = "Player ESP disabled!",
Duration = 3
})
end
end)
TicketToggle:OnChanged(function(value)
if value then
if not ExternalTicketESPLoaded then
local success, errorMsg = pcall(function()
ExternalTicketESP = loadstring(game:HttpGet("https://raw.githubusercontent.com/Ksndfkssc/87643/refs/heads/main/Online%20Script/TicketESP.lua"))()
ExternalTicketESPLoaded = true
_G.TicketESPRunning = true
Fluent:Notify({
Title = "ESP Tickets",
Content = "External Ticket ESP loaded!",
Duration = 3
})
end)
if not success then
Fluent:Notify({
Title = "ESP Tickets Error",
Content = "Failed to load external Ticket ESP: " .. tostring(errorMsg),
Duration = 5
})
end
else
_G.TicketESPRunning = true
end
if not ticketLoop then
ticketLoop = RunService.RenderStepped:Connect(function()
if Options.TicketToggle.Value then
scanForTickets()
end
end)
end
else
if ExternalTicketESPLoaded then
if _G.StopTicketESP then
pcall(_G.StopTicketESP)
end
end
if ticketLoop then
ticketLoop:Disconnect()
ticketLoop = nil
end
for ticket, data in pairs(TicketBillboards) do
if data.esp then
data.esp:Destroy()
end
end
TicketBillboards = {}
ExternalTicketESPLoaded = false
_G.TicketESPRunning = false
Fluent:Notify({
Title = "ESP Tickets",
Content = "Ticket ESP disabled!",
Duration = 3
})
end
end)
TracerPlayerToggle:OnChanged(function(value)
if value then
startPlayerTracers()
else
stopPlayerTracers()
end
end)
TracerBotToggle:OnChanged(function(value)
if value then
startBotTracers()
else
stopBotTracers()
end
end)
AutoRespawnTypeDropdown:OnChanged(function(value)
SelfReviveMethod = value
end)
AntiAFKToggle:OnChanged(function(value)
if value then
startAntiAFK()
else
stopAntiAFK()
end
end)
AutoWhistleToggle:OnChanged(function(value)
if value then
startAutoWhistle()
else
stopAutoWhistle()
end
end)
NoCameraShakeToggle:OnChanged(function(value)
if value then
startNoCameraShake()
else
stopNoCameraShake()
end
end)
local TimerDisplayToggle = Tabs.Main:AddToggle("TimerDisplayToggle", {
Title = "Show Timer",
Default = false
})
local timerDisplayLoop = nil
TimerDisplayToggle:OnChanged(function(state)
if state then
if timerDisplayLoop then return end
timerDisplayLoop = RunService.RenderStepped:Connect(function()
local player = game:GetService("Players").LocalPlayer
local pg = player.PlayerGui
local shared = pg:FindFirstChild("Shared")
local hud = shared and shared:FindFirstChild("HUD")
local overlay = hud and hud:FindFirstChild("Overlay")
local default = overlay and overlay:FindFirstChild("Default")
local ro = default and default:FindFirstChild("RoundOverlay")
local round = ro and ro:FindFirstChild("Round")
local timer = round and round:FindFirstChild("RoundTimer")
if timer then
timer.Visible = true
end
local main = pg:FindFirstChild("MainInterface")
if main then
local container = main:FindFirstChild("TimerContainer")
if container then
container.Visible = true
end
end
end)
else
if timerDisplayLoop then
timerDisplayLoop:Disconnect()
timerDisplayLoop = nil
end
local player = game:GetService("Players").LocalPlayer
local pg = player.PlayerGui
local shared = pg:FindFirstChild("Shared")
local hud = shared and shared:FindFirstChild("HUD")
local overlay = hud and hud:FindFirstChild("Overlay")
local default = overlay and overlay:FindFirstChild("Default")
local ro = default and default:FindFirstChild("RoundOverlay")
local round = ro and ro:FindFirstChild("Round")
local timer = round and round:FindFirstChild("RoundTimer")
if timer then
timer.Visible = false
end
local main = pg:FindFirstChild("MainInterface")
if main then
local container = main:FindFirstChild("TimerContainer")
if container then
container.Visible = false
end
end
end
end)
local billboardSection = Tabs.Main:AddSection("Player Modification")
FlyToggle = Tabs.Main:AddToggle("FlyToggle", {
Title = "Fly",
Default = false
})
FlySpeedInput = Tabs.Main:AddInput("FlySpeedInput", {
Title = "Fly Speed",
Default = "50",
Placeholder = "Enter speed value",
Numeric = true,
Finished = false,
Callback = function(Value)
if Value and tonumber(Value) then
featureStates.FlySpeed = tonumber(Value)
end
end
})
local flying = false
local bodyVelocity = nil
local bodyGyro = nil
local character = LocalPlayer.Character
local humanoid = character and character:FindFirstChild("Humanoid")
local rootPart = character and character:FindFirstChild("HumanoidRootPart")
local UserInputService = game:GetService("UserInputService")
featureStates = featureStates or {}
featureStates.FlySpeed = 50
local function startFlying()
if not character or not humanoid or not rootPart then
character = LocalPlayer.Character
if not character then return end
humanoid = character:WaitForChild("Humanoid")
rootPart = character:WaitForChild("HumanoidRootPart")
if not humanoid or not rootPart then return end
end
flying = true
bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bodyVelocity.Velocity = Vector3.new(0, 0, 0)
bodyVelocity.Parent = rootPart
bodyGyro = Instance.new("BodyGyro")
bodyGyro.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
bodyGyro.CFrame = rootPart.CFrame
bodyGyro.Parent = rootPart
humanoid.PlatformStand = true
end
local function stopFlying()
flying = false
if bodyVelocity then
bodyVelocity:Destroy()
bodyVelocity = nil
end
if bodyGyro then
bodyGyro:Destroy()
bodyGyro = nil
end
if humanoid then
humanoid.PlatformStand = false
end
end
local function updateFly()
if not flying or not bodyVelocity or not bodyGyro then return end
local camera = workspace.CurrentCamera
local cameraCFrame = camera.CFrame
local direction = Vector3.new(0, 0, 0)
local moveDirection = humanoid.MoveDirection
if moveDirection.Magnitude > 0 then
local forwardVector = cameraCFrame.LookVector
local rightVector = cameraCFrame.RightVector
local forwardComponent = moveDirection:Dot(forwardVector) * forwardVector
local rightComponent = moveDirection:Dot(rightVector) * rightVector
direction = direction + (forwardComponent + rightComponent).Unit * moveDirection.Magnitude
end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) or humanoid.Jump then
direction = direction + Vector3.new(0, 1, 0)
end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then
direction = direction - Vector3.new(0, 1, 0)
end
local speed = featureStates.FlySpeed or 50
bodyVelocity.Velocity = direction.Magnitude > 0 and direction.Unit * (speed * 2) or Vector3.new(0, 0, 0)
bodyGyro.CFrame = cameraCFrame
end
local flyLoop = nil
local characterAddedConnection = nil
FlyToggle:OnChanged(function(state)
if state then
if characterAddedConnection then
characterAddedConnection:Disconnect()
end
characterAddedConnection = LocalPlayer.CharacterAdded:Connect(function(newChar)
character = newChar
task.wait(0.5)
humanoid = character:WaitForChild("Humanoid")
rootPart = character:WaitForChild("HumanoidRootPart")
if Options.FlyToggle.Value and flying == false then
startFlying()
end
end)
character = LocalPlayer.Character
if character then
humanoid = character:FindFirstChild("Humanoid")
rootPart = character:FindFirstChild("HumanoidRootPart")
end
startFlying()
if not flyLoop then
flyLoop = RunService.RenderStepped:Connect(function()
if Options.FlyToggle.Value then
updateFly()
end
end)
end
else
stopFlying()
if flyLoop then
flyLoop:Disconnect()
flyLoop = nil
end
if characterAddedConnection then
characterAddedConnection:Disconnect()
characterAddedConnection = nil
end
end
end)
game:GetService("Players").LocalPlayer.CharacterRemoving:Connect(function()
if Options.FlyToggle.Value then
stopFlying()
if flyLoop then
flyLoop:Disconnect()
flyLoop = nil
end
end
end)
modificationSection = Tabs.Main:AddSection("Manual")
function manualRevive()
local player = game:GetService("Players").LocalPlayer
local gamePlayers = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
if not gamePlayers then return end
local character = gamePlayers:FindFirstChild(player.Name)
if not character then return end
local hrp = character:FindFirstChild("HumanoidRootPart")
local isDowned = character:GetAttribute("Downed")
if not isDowned then
return
end
local SelfReviveMethod = Options.AutoRespawnTypeDropdown and Options.AutoRespawnTypeDropdown.Value or "Spawnpoint"
if SelfReviveMethod == "Spawnpoint" then
pcall(function()
ReplicatedStorage.Events.Player.ChangePlayerMode:FireServer(true)
end)
elseif SelfReviveMethod == "Fake Revive" then
local lastSavedPosition = nil
if hrp then
lastSavedPosition = hrp.Position
end
pcall(function()
ReplicatedStorage.Events.Player.ChangePlayerMode:FireServer(true)
end)
task.spawn(function()
for i = 1, 30 do
task.wait(0.05)
local newGamePlayers = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
if newGamePlayers then
local newCharacter = newGamePlayers:FindFirstChild(player.Name)
if newCharacter and newCharacter ~= character then
local newHRP = newCharacter:FindFirstChild("HumanoidRootPart")
if newHRP and lastSavedPosition then
newHRP.CFrame = CFrame.new(lastSavedPosition)
newHRP.Velocity = Vector3.new(0, 0, 0)
break
end
end
end
end
end)
end
end
NoclipToggle = Tabs.Main:AddToggle("NoclipToggle", {
Title = "Noclip",
Default = false
})
local noclipEnabled = false
local noclipConnection = nil
local function toggleNoclip(state)
noclipEnabled = state
if noclipEnabled then
if noclipConnection then
noclipConnection:Disconnect()
end
noclipConnection = RunService.Stepped:Connect(function()
local character = LocalPlayer.Character
if character then
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") and part.CanCollide then
part.CanCollide = false
end
end
end
end)
Fluent:Notify({
Title = "Noclip",
Content = "Noclip enabled",
Duration = 2
})
else
if noclipConnection then
noclipConnection:Disconnect()
noclipConnection = nil
end
local character = LocalPlayer.Character
if character then
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
end
Fluent:Notify({
Title = "Noclip",
Content = "Noclip disabled",
Duration = 2
})
end
end
NoclipToggle:OnChanged(function(value)
toggleNoclip(value)
end)
LocalPlayer.CharacterAdded:Connect(function(character)
if noclipEnabled then
task.wait(0.5)
toggleNoclip(false)
task.wait(0.1)
toggleNoclip(true)
end
end)
game:GetService("Players").LocalPlayer.CharacterRemoving:Connect(function()
if noclipConnection then
noclipConnection:Disconnect()
noclipConnection = nil
end
end)
toggleNoclip(false)
SitToggle = Tabs.Main:AddToggle("SitToggle", {
Title = "Bug Emote",
Default = false
})
local sitLoopConnection = nil
local player = game:GetService("Players").LocalPlayer
local function updateSit()
if not SitToggle.Value then return end
local character = player.Character
if not character then return end
local humanoid = character:FindFirstChild("Humanoid")
if not humanoid then
local gamePlayers = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
if gamePlayers then
local playerModel = gamePlayers:FindFirstChild(player.Name)
if playerModel then
humanoid = playerModel:FindFirstChild("Humanoid")
end
end
end
if humanoid then
humanoid.Sit = true
end
end
SitToggle:OnChanged(function(state)
if state then
if sitLoopConnection then
sitLoopConnection:Disconnect()
end
sitLoopConnection = game:GetService("RunService").Heartbeat:Connect(updateSit)
updateSit()
Fluent:Notify({
Title = "Force Sit",
Content = "Character will now sit continuously",
Duration = 2
})
else
if sitLoopConnection then
sitLoopConnection:Disconnect()
sitLoopConnection = nil
end
local character = player.Character
if character then
local humanoid = character:FindFirstChild("Humanoid")
if not humanoid then
local gamePlayers = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players")
if gamePlayers then
local playerModel = gamePlayers:FindFirstChild(player.Name)
if playerModel then
humanoid = playerModel:FindFirstChild("Humanoid")
end
end
end
if humanoid then
humanoid.Sit = false
end
end
Fluent:Notify({
Title = "Force Sit",
Content = "Sit mode disabled",
Duration = 2
})
end
end)
player.CharacterAdded:Connect(function()
task.wait(1)
if SitToggle and SitToggle.Value then
updateSit()
end
end)
player.CharacterRemoving:Connect(function()
if sitLoopConnection then
sitLoopConnection:Disconnect()
sitLoopConnection = nil
end
end)
NoCollisionToggle = Tabs.Main:AddToggle("NoCollisionToggle", {
Title = "Remove Barriers",
Default = false
})
local function toggleInvisPartsCollision(state)
local invisParts = workspace:FindFirstChild("Game") and
workspace.Game:FindFirstChild("Map") and
workspace.Game.Map:FindFirstChild("InvisParts")
if not invisParts then
Fluent:Notify({
Title = "Remove Barriers",
Content = "InvisParts folder not found!",
Duration = 3
})
return
end
local objectsChanged = 0
for _, obj in ipairs(invisParts:GetDescendants()) do
if obj:IsA("BasePart") then
obj.CanCollide = not state
obj.CanQuery = not state
objectsChanged = objectsChanged + 1
end
end
Fluent:Notify({
Title = "Remove Barriers",
Content = string.format("%s collision and query for %d objects",
state and "Disabled" or "Enabled",
objectsChanged),
Duration = 3
})
end
NoCollisionToggle:OnChanged(function(state)
toggleInvisPartsCollision(state)
if state then
else
end
end)
LocalPlayer.CharacterAdded:Connect(function()
if Options.NoCollisionToggle and Options.NoCollisionToggle.Value then
task.wait(1)
toggleInvisPartsCollision(true)
end
end)
InvisPartsTransparencyToggle = Tabs.Main:AddToggle("InvisPartsTransparencyToggle", {
Title = "Barriers Visible",
Default = false
})
local function setInvisPartsTransparency(transparent)
local invisParts = workspace:FindFirstChild("Game") and
workspace.Game:FindFirstChild("Map") and
workspace.Game.Map:FindFirstChild("InvisParts")
if not invisParts then
Fluent:Notify({
Title = "Barriers Visible",
Content = "InvisParts folder not found!",
Duration = 3
})
return
end
local changed = 0
if transparent then
for _, obj in ipairs(invisParts:GetDescendants()) do
if obj:IsA("BasePart") or obj:IsA("Decal") then
obj.Transparency = 0
changed = changed + 1
end
end
Fluent:Notify({
Title = "Barriers Visible",
Content = string.format("Set Transparency = 0 for %d objects", changed),
Duration = 3
})
else
for _, obj in ipairs(invisParts:GetDescendants()) do
if obj:IsA("BasePart") or obj:IsA("Decal") then
obj.Transparency = 1
changed = changed + 1
end
end
Fluent:Notify({
Title = "Barriers Disable",
Content = string.format("Set Transparency = 1 for %d objects", changed),
Duration = 3
})
end
end
InvisPartsTransparencyToggle:OnChanged(function(state)
setInvisPartsTransparency(state)
if state then
local invisParts = workspace:FindFirstChild("Game") and
workspace.Game:FindFirstChild("Map") and
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
obj:Destroy()
elseif obj:IsA("PointLight") or obj:IsA("SpotLight") or obj:IsA("SurfaceLight") then
obj:Destroy()
end
end
for _, player in ipairs(Players:GetPlayers()) do
local char = player.Character
if char then
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("Accessory") or part:IsA("Clothing") then
part:Destroy()
end
end
end
end
end
})
AntiLag2 = MiscTab:AddButton({
Title = "Anti lag 2",
Callback = function()
local ToDisable = {
Textures = true,
VisualEffects = true,
Parts = true,
Particles = true,
Sky = true
}
local ToEnable = {
FullBright = false
}
local Stuff = {}
for _, v in next, game:GetDescendants() do
if ToDisable.Parts then
if v:IsA("Part") or v:IsA("UnionOperation") or v:IsA("BasePart") then
v.Material = Enum.Material.SmoothPlastic
table.insert(Stuff, 1, v)
end
end
if ToDisable.Particles then
if v:IsA("ParticleEmitter") or v:IsA("Smoke") or v:IsA("Explosion") or v:IsA("Sparkles") or v:IsA("Fire") then
v.Enabled = false
table.insert(Stuff, 1, v)
end
end
if ToDisable.VisualEffects then
if v:IsA("BloomEffect") or v:IsA("BlurEffect") or v:IsA("DepthOfFieldEffect") or v:IsA("SunRaysEffect") then
v.Enabled = false
table.insert(Stuff, 1, v)
end
end
if ToDisable.Textures then
if v:IsA("Decal") or v:IsA("Texture") then
v.Texture = ""
table.insert(Stuff, 1, v)
end
end
if ToDisable.Sky then
if v:IsA("Sky") then
v.Parent = nil
table.insert(Stuff, 1, v)
end
end
end
if ToEnable.FullBright then
local Lighting = game:GetService("Lighting")
Lighting.FogColor = Color3.fromRGB(255, 255, 255)
Lighting.FogEnd = math.huge
Lighting.FogStart = math.huge
Lighting.Ambient = Color3.fromRGB(255, 255, 255)
Lighting.Brightness = 5
Lighting.ColorShift_Bottom = Color3.fromRGB(255, 255, 255)
Lighting.ColorShift_Top = Color3.fromRGB(255, 255, 255)
Lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255)
Lighting.Outlines = true
end
end
})
AntiLag3 = MiscTab:AddButton({
Title = "Remove Texture",
Callback = function()
for _, part in ipairs(workspace:GetDescendants()) do
if part:IsA("Part") or part:IsA("MeshPart") or part:IsA("UnionOperation") or part:IsA("WedgePart") or part:IsA("CornerWedgePart") then
if part:IsA("Part") then
part.Material = Enum.Material.SmoothPlastic
end
if part:FindFirstChildWhichIsA("Texture") then
local texture = part:FindFirstChildWhichIsA("Texture")
texture.Texture = "rbxassetid://0"
end
if part:FindFirstChildWhichIsA("Decal") then
local decal = part:FindFirstChildWhichIsA("Decal")
decal.Texture = "rbxassetid://0"
end
end
end
end
})
NoFogToggle = MiscTab:AddToggle("NoFogToggle", {
Title = "Remove fog",
Default = false,
Callback = function(state)
local Lighting = game:GetService("Lighting")
if state then
featureStates.originalFogEnd = Lighting.FogEnd
featureStates.originalAtmospheres = {}
for _, atmosphere in ipairs(Lighting:GetChildren()) do
if atmosphere:IsA("Atmosphere") then
table.insert(featureStates.originalAtmospheres, atmosphere:Clone())
end
end
Lighting.FogEnd = 1000000
for _, v in pairs(Lighting:GetDescendants()) do
if v:IsA("Atmosphere") then
v:Destroy()
end
end
else
if featureStates.originalFogEnd then
Lighting.FogEnd = featureStates.originalFogEnd
end
if featureStates.originalAtmospheres then
for _, atmosphere in ipairs(featureStates.originalAtmospheres) do
if not atmosphere.Parent then
local newAtmosphere = Instance.new("Atmosphere")
for _, prop in pairs({"Density", "Offset", "Color", "Decay", "Glare", "Haze"}) do
if atmosphere[prop] then
newAtmosphere[prop] = atmosphere[prop]
end
end
newAtmosphere.Parent = Lighting
end
end
end
end
end
})
VisualsTab = Window:AddTab({ Title = "Visuals", Icon = "solar/folder-bold" })
VisualsTab:AddSection("Cosmetics Changer")
cosmetic1 = ""
cosmetic2 = ""
originalCosmetic1 = ""
originalCosmetic2 = ""
isSwapped = false
CurrentCosmeticsInput = VisualsTab:AddInput("CurrentCosmeticsInput", {
Title = "Current Cosmetics",
Default = "",
Placeholder = "Enter current cosmetic name",
Finished = false,
Callback = function(Value)
cosmetic1 = Value
if not isSwapped then
originalCosmetic1 = Value
end
end
})
SelectCosmeticsInput = VisualsTab:AddInput("SelectCosmeticsInput", {
Title = "Select Cosmetics",
Default = "",
Placeholder = "Enter cosmetic to swap with",
Finished = false,
Callback = function(Value)
cosmetic2 = Value
if not isSwapped then
originalCosmetic2 = Value
end
end
})
ApplyCosmeticsButton = VisualsTab:AddButton({
Title = "Apply Cosmetics",
Callback = function()
pcall(function()
if cosmetic1 == "" or cosmetic2 == "" or cosmetic1 == cosmetic2 then return end
ReplicatedStorage = game:GetService("ReplicatedStorage")
Cosmetics = ReplicatedStorage:WaitForChild("Items"):WaitForChild("Cosmetics")
function normalize(str)
return str:gsub("%s+", ""):lower()
end
function levenshtein(s, t)
m = #s
n = #t
d = {}
for i = 0, m do d[i] = {[0] = i} end
for j = 0, n do d[0][j] = j end
for i = 1, m do
for j = 1, n do
cost = (s:sub(i,i) == t:sub(j,j)) and 0 or 1
d[i][j] = math.min(
d[i-1][j] + 1,
d[i][j-1] + 1,
d[i-1][j-1] + cost
)
end
end
return d[m][n]
end
function similarity(s, t)
nS = normalize(s)
nT = normalize(t)
dist = levenshtein(nS, nT)
return 1 - dist / math.max(#nS, #nT)
end
function findSimilar(name)
bestMatch = name
bestScore = 0.5
for _, c in ipairs(Cosmetics:GetChildren()) do
score = similarity(name, c.Name)
if score > bestScore then
bestScore = score
bestMatch = c.Name
end
end
return bestMatch
end
cosmetic1 = findSimilar(cosmetic1)
cosmetic2 = findSimilar(cosmetic2)
a = Cosmetics:FindFirstChild(cosmetic1)
b = Cosmetics:FindFirstChild(cosmetic2)
if not a or not b then return end
if not isSwapped then
originalCosmetic1 = cosmetic1
originalCosmetic2 = cosmetic2
end
tempRoot = Instance.new("Folder", Cosmetics)
tempRoot.Name = "__temp_swap_" .. tostring(tick()):gsub("%.", "_")
tempA = Instance.new("Folder", tempRoot)
tempB = Instance.new("Folder", tempRoot)
for _, c in ipairs(a:GetChildren()) do c.Parent = tempA end
for _, c in ipairs(b:GetChildren()) do c.Parent = tempB end
for _, c in ipairs(tempA:GetChildren()) do c.Parent = b end
for _, c in ipairs(tempB:GetChildren()) do c.Parent = a end
tempRoot:Destroy()
isSwapped = true
Fluent:Notify({
Title = "Cosmetics Changer",
Content = "Successfully swapped " .. cosmetic1 .. " with " .. cosmetic2,
Duration = 3
})
end)
end
})
ResetCosmeticsButton = VisualsTab:AddButton({
Title = "Reset Cosmetics",
Callback = function()
pcall(function()
if not isSwapped then
Fluent:Notify({
Title = "Cosmetics Changer",
Content = "No cosmetics have been swapped yet",
Duration = 3
})
return
end
if originalCosmetic1 == "" or originalCosmetic2 == "" then
Fluent:Notify({
Title = "Cosmetics Changer",
Content = "Original cosmetic names not found",
Duration = 3
})
return
end
ReplicatedStorage = game:GetService("ReplicatedStorage")
Cosmetics = ReplicatedStorage:WaitForChild("Items"):WaitForChild("Cosmetics")
function normalize(str)
return str:gsub("%s+", ""):lower()
end
function findSimilar(name)
bestMatch = name
bestScore = 0.5
for _, c in ipairs(Cosmetics:GetChildren()) do
normalizedInput = normalize(name)
normalizedCosmetic = normalize(c.Name)
if normalizedInput == normalizedCosmetic then
return c.Name
end
end
return name
end
resetCosmetic1 = findSimilar(originalCosmetic1)
resetCosmetic2 = findSimilar(originalCosmetic2)
a = Cosmetics:FindFirstChild(cosmetic1)
b = Cosmetics:FindFirstChild(cosmetic2)
if a and b then
tempRoot = Instance.new("Folder", Cosmetics)
tempRoot.Name = "__temp_reset_" .. tostring(tick()):gsub("%.", "_")
tempA = Instance.new("Folder", tempRoot)
tempB = Instance.new("Folder", tempRoot)
for _, c in ipairs(a:GetChildren()) do c.Parent = tempA end
for _, c in ipairs(b:GetChildren()) do c.Parent = tempB end
for _, c in ipairs(tempA:GetChildren()) do c.Parent = b end
for _, c in ipairs(tempB:GetChildren()) do c.Parent = a end
tempRoot:Destroy()
isSwapped = false
Fluent:Notify({
Title = "Cosmetics Changer",
Content = "Successfully reset cosmetics to original state",
Duration = 3
})
else
Fluent:Notify({
Title = "Cosmetics Changer",
Content = "Could not find swapped cosmetics to reset",
Duration = 3
})
end
end)
end
})
VisualsTab:AddSection("CarryAnimation Replacer")
currentCarryAnim = ""
selectedCarryAnim = ""
lastCurrentCarryAnim = ""
lastSelectedCarryAnim = ""
isSwapped = false
function normalizeString(str)
return str:gsub("%s+", ""):lower()
end
function isValidCarryAnimation(name)
carryAnimations = game:GetService("ReplicatedStorage"):FindFirstChild("Items")
if not carryAnimations then return false end
carryAnimations = carryAnimations:FindFirstChild("CarryAnimations")
if not carryAnimations then return false end
normalizedInput = normalizeString(name)
for _, anim in ipairs(carryAnimations:GetChildren()) do
if normalizeString(anim.Name) == normalizedInput then
return true, anim.Name
end
end
return false
end
function revertPreviousSwap()
if lastCurrentCarryAnim ~= "" and lastSelectedCarryAnim ~= "" and isSwapped then
carryAnimations = game:GetService("ReplicatedStorage"):FindFirstChild("Items")
if carryAnimations then
carryAnimations = carryAnimations:FindFirstChild("CarryAnimations")
if carryAnimations then
lastCurrentValid, lastCurrentActual = isValidCarryAnimation(lastCurrentCarryAnim)
lastSelectedValid, lastSelectedActual = isValidCarryAnimation(lastSelectedCarryAnim)
if lastCurrentValid and lastSelectedValid then
pcall(function()
currentFolder = carryAnimations:FindFirstChild(lastCurrentActual)
selectedFolder = carryAnimations:FindFirstChild(lastSelectedActual)
if currentFolder and selectedFolder then
tempRoot = Instance.new("Folder")
tempRoot.Name = "__temp_revert_swap_" .. tostring(tick()):gsub("%.", "_")
tempRoot.Parent = carryAnimations
tempCurrent = Instance.new("Folder")
tempCurrent.Name = "tempCurrent"
tempCurrent.Parent = tempRoot
tempSelected = Instance.new("Folder")
tempSelected.Name = "tempSelected"
tempSelected.Parent = tempRoot
for _, child in ipairs(currentFolder:GetChildren()) do
child.Parent = tempCurrent
end
for _, child in ipairs(selectedFolder:GetChildren()) do
child.Parent = tempSelected
end
for _, child in ipairs(tempCurrent:GetChildren()) do
child.Parent = selectedFolder
end
for _, child in ipairs(tempSelected:GetChildren()) do
child.Parent = currentFolder
end
tempRoot:Destroy()
end
end)
end
end
end
isSwapped = false
end
end
CurrentCarryAnimInput = VisualsTab:AddInput("CurrentCarryAnimInput", {
Title = "Current CarryAnimation",
Default = "",
Placeholder = "Enter current carry animation name",
Finished = false,
Callback = function(Value)
if Value ~= currentCarryAnim and currentCarryAnim ~= "" then
revertPreviousSwap()
end
currentCarryAnim = Value
end
})
SelectedCarryAnimInput = VisualsTab:AddInput("SelectedCarryAnimInput", {
Title = "Selected CarryAnimation",
Default = "",
Placeholder = "Enter selected carry animation name",
Finished = false,
Callback = function(Value)
if Value ~= selectedCarryAnim and selectedCarryAnim ~= "" then
revertPreviousSwap()
end
selectedCarryAnim = Value
end
})
ApplyCarryAnimButton = VisualsTab:AddButton({
Title = "Apply CarryAnimation Swap",
Callback = function()
currentNorm = normalizeString(currentCarryAnim)
selectedNorm = normalizeString(selectedCarryAnim)
if currentNorm == "" or selectedNorm == "" then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "Both animation names must be filled",
Duration = 3
})
return
end
if currentNorm == selectedNorm then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "Animation names cannot be the same",
Duration = 3
})
return
end
carryAnimations = game:GetService("ReplicatedStorage"):FindFirstChild("Items")
if not carryAnimations then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "CarryAnimations folder not found",
Duration = 3
})
return
end
carryAnimations = carryAnimations:FindFirstChild("CarryAnimations")
if not carryAnimations then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "CarryAnimations folder not found",
Duration = 3
})
return
end
currentAnim, currentActualName = isValidCarryAnimation(currentCarryAnim)
selectedAnim, selectedActualName = isValidCarryAnimation(selectedCarryAnim)
if not currentAnim then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "Current animation not found: " .. currentCarryAnim,
Duration = 3
})
return
end
if not selectedAnim then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "Selected animation not found: " .. selectedCarryAnim,
Duration = 3
})
return
end
pcall(function()
revertPreviousSwap()
currentFolder = carryAnimations:FindFirstChild(currentActualName)
selectedFolder = carryAnimations:FindFirstChild(selectedActualName)
if not currentFolder or not selectedFolder then
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "One or both animations not found in folder",
Duration = 3
})
return
end
tempRoot = Instance.new("Folder")
tempRoot.Name = "__temp_carry_swap_" .. tostring(tick()):gsub("%.", "_")
tempRoot.Parent = carryAnimations
tempCurrent = Instance.new("Folder")
tempCurrent.Name = "tempCurrent"
tempCurrent.Parent = tempRoot
tempSelected = Instance.new("Folder")
tempSelected.Name = "tempSelected"
tempSelected.Parent = tempRoot
for _, child in ipairs(currentFolder:GetChildren()) do
child.Parent = tempCurrent
end
for _, child in ipairs(selectedFolder:GetChildren()) do
child.Parent = tempSelected
end
for _, child in ipairs(tempCurrent:GetChildren()) do
child.Parent = selectedFolder
end
for _, child in ipairs(tempSelected:GetChildren()) do
child.Parent = currentFolder
end
tempRoot:Destroy()
lastCurrentCarryAnim = currentCarryAnim
lastSelectedCarryAnim = selectedCarryAnim
isSwapped = true
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "Successfully swapped " .. currentActualName .. " with " .. selectedActualName,
Duration = 3
})
end)
end
})
ResetCarryAnimButton = VisualsTab:AddButton({
Title = "Reset All CarryAnimations",
Callback = function()
revertPreviousSwap()
currentCarryAnim = ""
selectedCarryAnim = ""
lastCurrentCarryAnim = ""
lastSelectedCarryAnim = ""
isSwapped = false
CurrentCarryAnimInput:SetValue("")
SelectedCarryAnimInput:SetValue("")
Fluent:Notify({
Title = "CarryAnimation Replacer",
Content = "All animations reset to original",
Duration = 3
})
end
})
VisualsTab:AddSection("NameTag Changers")
function updateNametagList()
nametagValues = {"Ignore", "None"}
nametagsFolder = game:GetService("ReplicatedStorage").Items.Nametags
if nametagsFolder then
for _, nametagModule in ipairs(nametagsFolder:GetChildren()) do
if nametagModule:IsA("ModuleScript") then
success, nametagData = pcall(require, nametagModule)
if success and nametagData and nametagData.AppearanceInfo then
table.insert(nametagValues, nametagData.AppearanceInfo.Name)
end
end
end
end
return nametagValues
end
VisualNametagDropdown = VisualsTab:AddDropdown("VisualNametagDropdown", {
Title = "Visual Nametag",
Description = "Select nametag appearance",
Values = updateNametagList(),
Multi = false,
Default = "Ignore",
Callback = function(Value)
playerFolder = workspace.Game.Players:FindFirstChild(game.Players.LocalPlayer.Name)
if playerFolder then
if Value == "None" then
playerFolder:SetAttribute("Nametag", nil)
elseif Value ~= "Ignore" then
cleanValue = Value:gsub("%s+", "")
playerFolder:SetAttribute("Nametag", cleanValue)
end
end
end
})
game.Players.LocalPlayer.CharacterAdded:Connect(function(character)
task.wait(1)
playerFolder = workspace.Game.Players:FindFirstChild(game.Players.LocalPlayer.Name)
if playerFolder and Options.VisualNametagDropdown and Options.VisualNametagDropdown.Value ~= "Ignore" then
if Options.VisualNametagDropdown.Value == "None" then
playerFolder:SetAttribute("Nametag", nil)
else
cleanValue = Options.VisualNametagDropdown.Value:gsub("%s+", "")
playerFolder:SetAttribute("Nametag", cleanValue)
end
end
end)
game:GetService("RunService").Heartbeat:Connect(function()
playerFolder = workspace.Game.Players:FindFirstChild(game.Players.LocalPlayer.Name)
if playerFolder and Options.VisualNametagDropdown and Options.VisualNametagDropdown.Value ~= "Ignore" then
if Options.VisualNametagDropdown.Value == "None" then
playerFolder:SetAttribute("Nametag", nil)
else
cleanValue = Options.VisualNametagDropdown.Value:gsub("%s+", "")
currentTag = playerFolder:GetAttribute("Nametag")
if currentTag ~= cleanValue then
playerFolder:SetAttribute("Nametag", cleanValue)
end
end
end
end)
VisualsTab:AddSection("Fake Streaks")
FakeStreaksInput = VisualsTab:AddInput("FakeStreaksInput", {
Title = "Fake Streaks",
Default = "",
Placeholder = "Enter streak value",
Numeric = true,
Finished = false,
Callback = function(Value)
num = tonumber(Value)
if num then
game:GetService("Players").LocalPlayer:SetAttribute("Streak", num)
end
end
})
task.spawn(function()
task.wait(1)
currentStreak = game:GetService("Players").LocalPlayer:GetAttribute("Streak")
if currentStreak then
FakeStreaksInput:SetValue(tostring(currentStreak))
end
end)
VisualsTab:AddSection("Emote Changer")
player = game:GetService("Players").LocalPlayer
ReplicatedStorage = game:GetService("ReplicatedStorage")
Events = ReplicatedStorage:WaitForChild("Events", 10)
CharacterFolder = Events and Events:WaitForChild("Character", 10)
EmoteRemote = CharacterFolder and CharacterFolder:WaitForChild("Emote", 10)
PassCharacterInfo = CharacterFolder and CharacterFolder:WaitForChild("PassCharacterInfo", 10)
remoteSignal = PassCharacterInfo and PassCharacterInfo.OnClientEvent
currentTag = nil
currentEmotes = {}
selectEmotes = {}
emoteEnabled = {}
currentEmoteInputs = {}
selectEmoteInputs = {}
for i = 1, 12 do
currentEmotes[i] = ""
selectEmotes[i] = ""
emoteEnabled[i] = false
end
function readTagFromFolder(f)
if not f then return nil end
tagAttribute = f:GetAttribute("Tag")
if tagAttribute ~= nil then
return tagAttribute
end
tagChild = f:FindFirstChild("Tag")
if tagChild and tagChild:IsA("ValueBase") then
return tagChild.Value
end
return nil
end
function onRespawn()
currentTag = nil
pendingSlot = nil
task.spawn(function()
startTime = tick()
while tick() - startTime < 10 do
if workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players") then
playerFolder = workspace.Game.Players:FindFirstChild(player.Name)
if playerFolder then
currentTag = readTagFromFolder(playerFolder)
if currentTag then
tagNumber = tonumber(currentTag)
if tagNumber and tagNumber >= 0 and tagNumber <= 255 then
break
else
currentTag = nil
end
end
end
end
task.wait(0.5)
end
if not currentTag then
end
end)
end
pendingSlot = nil
blockOriginalEmote = false
function fireSelect(slot)
if not currentTag then
return
end
tagNumber = tonumber(currentTag)
if not tagNumber or tagNumber < 0 or tagNumber > 255 then
return
end
if not selectEmotes[slot] or selectEmotes[slot] == "" then
return
end
if remoteSignal then
pcall(function()
buf = buffer.create(2)
buffer.writeu8(buf, 0, tagNumber)
buffer.writeu8(buf, 1, 17)
firesignal(remoteSignal, buf, {selectEmotes[slot]})
end)
else
end
end
if PassCharacterInfo and EmoteRemote then
PassCharacterInfo.OnClientEvent:Connect(function(...)
if not pendingSlot then return end
slot = pendingSlot
pendingSlot = nil
task.wait(0.1)
fireSelect(slot)
end)
success, oldNamecall = pcall(function()
oldNamecall = hookmetamethod(game, "__namecall", function(self, ...)
methodName = getnamecallmethod()
args = {...}
if methodName == "FireServer" and self == EmoteRemote and type(args[1]) == "string" then
for i = 1, 12 do
if emoteEnabled[i] and currentEmotes[i] ~= "" and args[1] == currentEmotes[i] then
pendingSlot = i
blockOriginalEmote = true
task.spawn(function()
task.wait(0.1)
blockOriginalEmote = false
if pendingSlot == i then
pendingSlot = nil
fireSelect(i)
end
end)
if blockOriginalEmote then
return nil
end
end
end
end
return oldNamecall(self, ...)
end)
return oldNamecall
end)
if success then
else
warn("Emote Changer: Error hooking __namecall:", oldNamecall)
end
if player.Character then
task.spawn(onRespawn)
end
player.CharacterAdded:Connect(function()
task.wait(1)
onRespawn()
end)
if workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Players") then
workspace.Game.Players.ChildAdded:Connect(function(child)
if child.Name == player.Name then
task.wait(0.5)
onRespawn()
end
end)
workspace.Game.Players.ChildRemoved:Connect(function(child)
if child.Name == player.Name then
currentTag = nil
pendingSlot = nil
end
end)
end
else
end
for i = 1, 12 do
currentEmoteInputs[i] = VisualsTab:AddInput("CurrentEmoteInput" .. i, {
Title = "Current Emote " .. i,
Default = "",
Placeholder = "Enter current emote name",
Finished = false,
Callback = function(Value)
currentEmotes[i] = Value:gsub("%s+", "")
end
})
end
VisualsTab:AddParagraph({ Title = "", Content = "" })
for i = 1, 12 do
selectEmoteInputs[i] = VisualsTab:AddInput("SelectEmoteInput" .. i, {
Title = "Select Emote " .. i,
Default = "",
Placeholder = "Enter select emote name",
Finished = false,
Callback = function(Value)
selectEmotes[i] = Value:gsub("%s+", "")
end
})
end
VisualsEmoteApply = VisualsTab:AddButton({
Title = "Apply Emote Mappings",
Callback = function()
hasAnyEmote = false
for i = 1, 12 do
if currentEmotes[i] ~= "" or selectEmotes[i] ~= "" then
hasAnyEmote = true
break
end
end
if not hasAnyEmote then
Fluent:Notify({
Title = "Emote Changer",
Content = "Please enter your emote",
Duration = 3
})
return
end
function normalizeEmoteName(name)
return name:gsub("%s+", ""):lower()
end
function isValidEmote(emoteName)
if emoteName == "" then return false, "" end
normalizedInput = normalizeEmoteName(emoteName)
ItemsFolder = game:GetService("ReplicatedStorage"):FindFirstChild("Items")
if ItemsFolder then
emotesFolder = ItemsFolder:FindFirstChild("Emotes")
if emotesFolder then
for _, emoteModule in ipairs(emotesFolder:GetChildren()) do
if emoteModule:IsA("ModuleScript") then
normalizedEmote = normalizeEmoteName(emoteModule.Name)
if normalizedEmote == normalizedInput then
return true, emoteModule.Name
end
end
end
end
end
return false, ""
end
sameEmoteSlots = {}
missingEmoteSlots = {}
invalidEmoteSlots = {}
successfulSlots = {}
for i = 1, 12 do
if currentEmotes[i] ~= "" and selectEmotes[i] ~= "" then
currentValid, currentActual = isValidEmote(currentEmotes[i])
selectValid, selectActual = isValidEmote(selectEmotes[i])
if not currentValid and not selectValid then
table.insert(invalidEmoteSlots, {slot = i, currentInvalid = true, currentName = currentEmotes[i], selectInvalid = true, selectName = selectEmotes[i]})
elseif not currentValid then
table.insert(invalidEmoteSlots, {slot = i, currentInvalid = true, currentName = currentEmotes[i], selectInvalid = false, selectName = selectEmotes[i]})
elseif not selectValid then
table.insert(invalidEmoteSlots, {slot = i, currentInvalid = false, currentName = currentEmotes[i], selectInvalid = true, selectName = selectEmotes[i]})
elseif currentActual:lower() == selectActual:lower() then
table.insert(sameEmoteSlots, i)
else
table.insert(successfulSlots, {slot = i, current = currentActual, select = selectActual})
end
elseif currentEmotes[i] ~= "" or selectEmotes[i] ~= "" then
table.insert(missingEmoteSlots, i)
end
end
message = ""
if #successfulSlots > 0 then
message = message .. "✓ Successfully applied emote on:\n"
for _, data in ipairs(successfulSlots) do
message = message .. "Slot " .. data.slot .. " Emote: " .. data.current .. " → " .. data.select .. "\n"
emoteEnabled[data.slot] = true
end
message = message .. "\n"
end
if #sameEmoteSlots > 0 then
message = message .. "✗ Failed to apply emote on:\n"
for _, slot in ipairs(sameEmoteSlots) do
message = message .. "Slot " .. slot .. " - Cannot change emote with the same name\n"
emoteEnabled[slot] = false
end
message = message .. "\n"
end
if #invalidEmoteSlots > 0 then
message = message .. "✗ Failed to apply emote on:\n"
for _, data in ipairs(invalidEmoteSlots) do
message = message .. "Slot " .. data.slot .. " - "
if data.currentInvalid and data.selectInvalid then
message = message .. "Invalid current emote: \"" .. data.currentName .. "\", Invalid select emote: \"" .. data.selectName .. "\"\n"
elseif data.currentInvalid then
message = message .. "Invalid current emote: \"" .. data.currentName .. "\", Select emote: \"" .. data.selectName .. "\"\n"
else
message = message .. "Current emote: \"" .. data.currentName .. "\", Invalid select emote: \"" .. data.selectName .. "\"\n"
end
emoteEnabled[data.slot] = false
end
message = message .. "\n"
end
if #missingEmoteSlots > 0 then
message = message .. "✗ Failed to apply emote on:\n"
for _, slot in ipairs(missingEmoteSlots) do
if currentEmotes[slot] == "" then
message = message .. "Slot " .. slot .. " - Current emote slot is missing text\n"
else
message = message .. "Slot " .. slot .. " - Select emote slot is missing text\n"
end
emoteEnabled[slot] = false
end
end
Fluent:Notify({
Title = "Emote Changer",
Content = message,
Duration = 8
})
for i = 1, 12 do
if emoteEnabled[i] then
end
end
end
})
VisualsEmoteReset = VisualsTab:AddButton({
Title = "Reset All Emotes",
Callback = function()
for i = 1, 12 do
currentEmotes[i] = ""
selectEmotes[i] = ""
emoteEnabled[i] = false
if currentEmoteInputs[i] then
currentEmoteInputs[i]:SetValue("")
end
if selectEmoteInputs[i] then
selectEmoteInputs[i]:SetValue("")
end
end
Fluent:Notify({
Title = "Emote Changer",
Content = "All emotes have been reset!",
Duration = 3
})
end
})
VisualsTab:AddSection("Emote Replacer (very buggy)")
EmoteReplacer = {
CurrentEmotes = {},
SelectedEmotes = {},
SwappedPairs = {},
InputFields = {}
}
for i = 1, 12 do
EmoteReplacer.CurrentEmotes[i] = ""
EmoteReplacer.SelectedEmotes[i] = ""
end
VisualsTab:AddParagraph({ Title = "This Script is for bad executor", Content = "" })
VisualsTab:AddParagraph({ Title = "Current Emotes", Content = "" })
for i = 1, 12 do
EmoteReplacer.InputFields["CurrentEmote" .. i] = VisualsTab:AddInput("CurrentEmote" .. i, {
Title = "Current Emote " .. i,
Default = "",
Placeholder = "Enter current emote name",
Finished = false,
Callback = function(Value)
EmoteReplacer.CurrentEmotes[i] = Value
end
})
end
VisualsTab:AddParagraph({ Title = "Selected Emotes", Content = "" })
for i = 1, 12 do
EmoteReplacer.InputFields["SelectedEmote" .. i] = VisualsTab:AddInput("SelectedEmote" .. i, {
Title = "Select Emote " .. i,
Default = "",
Placeholder = "Enter replacement emote name",
Finished = false,
Callback = function(Value)
EmoteReplacer.SelectedEmotes[i] = Value
end
})
end
function SwapEmoteNames(currentName, selectedName)
Items = game:GetService("ReplicatedStorage"):FindFirstChild("Items")
if not Items then
return false
end
EmotesFolder = Items:FindFirstChild("Emotes")
if not EmotesFolder then
return false
end
currentEmoteObj = EmotesFolder:FindFirstChild(currentName)
selectedEmoteObj = EmotesFolder:FindFirstChild(selectedName)
if currentEmoteObj and selectedEmoteObj then
tempName = selectedName .. "_EmoteSwapTemp"
while EmotesFolder:FindFirstChild(tempName) do
tempName = tempName .. "_"
end
currentEmoteObj.Name = tempName
selectedEmoteObj.Name = currentName
currentEmoteObj.Name = selectedName
return true
else
return false
end
end
function ResetEmoteNames()
Items = game:GetService("ReplicatedStorage"):FindFirstChild("Items")
if not Items then return false end
EmotesFolder = Items:FindFirstChild("Emotes")
if not EmotesFolder then return false end
for currentEmote, selectedEmote in pairs(EmoteReplacer.SwappedPairs) do
currentEmoteObj = EmotesFolder:FindFirstChild(selectedEmote)
selectedEmoteObj = EmotesFolder:FindFirstChild(currentEmote)
if currentEmoteObj and selectedEmoteObj then
tempName = currentEmote .. "_EmoteSwapTemp"
while EmotesFolder:FindFirstChild(tempName) do
tempName = tempName .. "_"
end
currentEmoteObj.Name = tempName
selectedEmoteObj.Name = selectedEmote
currentEmoteObj.Name = currentEmote
end
end
return true
end
EmoteSwapApplyButton = VisualsTab:AddButton({
Title = "Apply Emote Swap",
Callback = function()
swappedCount = 0
failedCount = 0
for i = 1, 12 do
currentEmote = EmoteReplacer.CurrentEmotes[i]
selectedEmote = EmoteReplacer.SelectedEmotes[i]
if currentEmote ~= "" and selectedEmote ~= "" then
if SwapEmoteNames(currentEmote, selectedEmote) then
EmoteReplacer.SwappedPairs[currentEmote] = selectedEmote
swappedCount = swappedCount + 1
else
failedCount = failedCount + 1
end
end
end
message = ""
if swappedCount > 0 then
message = "Successfully swapped " .. tostring(swappedCount) .. " emote(s)"
end
if failedCount > 0 then
if message ~= "" then message = message .. " | " end
message = message .. "Failed to swap " .. tostring(failedCount) .. " emote(s)"
end
if message == "" then
message = "No emotes specified to swap"
end
Fluent:Notify({
Title = "Emote Replacer",
Content = message,
Duration = 3
})
end
})
EmoteSwapResetButton = VisualsTab:AddButton({
Title = "Reset Emote Module",
Callback = function()
if ResetEmoteNames() then
EmoteReplacer.SwappedPairs = {}
for i = 1, 12 do
EmoteReplacer.CurrentEmotes[i] = ""
EmoteReplacer.SelectedEmotes[i] = ""
if EmoteReplacer.InputFields["CurrentEmote" .. i] then
EmoteReplacer.InputFields["CurrentEmote" .. i]:SetValue("")
end
if EmoteReplacer.InputFields["SelectedEmote" .. i] then
EmoteReplacer.InputFields["SelectedEmote" .. i]:SetValue("")
end
end
Fluent:Notify({
Title = "Emote Replacer",
Content = "All emotes have been restored to original names!",
Duration = 3
})
else
Fluent:Notify({
Title = "Emote Replacer",
Content = "Failed to reset emotes!",
Duration = 3
})
end
end
})
player.CharacterRemoving:Connect(function()
if next(EmoteReplacer.SwappedPairs) then
ResetEmoteNames()
end
end)
player.CharacterAdded:Connect(function(character)
task.wait(1)
if character:GetAttribute("Downed") then
return
end
if next(EmoteReplacer.SwappedPairs) then
for currentEmote, selectedEmote in pairs(EmoteReplacer.SwappedPairs) do
SwapEmoteNames(currentEmote, selectedEmote)
end
end
end)
local SettingsTab = Window:AddTab({ Title = "Settings", Icon = "solar/settings-bold" })
SettingsTab:AddSection("Configuration")
SettingsTab:AddSection("FPS Timer Settings")
local FPSTimerToggle = SettingsTab:AddToggle("FPSTimerToggle", {
Title = "Show FPS Timer",
Description = "Display FPS and session timer",
Default = true,
Callback = function(state)
local PlayerGui = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
local timerGUI = PlayerGui:FindFirstChild("DraconicFPS")
if state then
if not timerGUI then
createSimpleTimer()
else
timerGUI.Enabled = true
end
else
if timerGUI then
timerGUI.Enabled = false
end
end
end
})
SettingsTab:AddButton({
Title = "Save Configuration",
Description = "Save current settings to config file",
Callback = function()
SaveManager:Save()
Fluent:Notify({
Title = "Settings",
Content = "Configuration saved successfully!",
Duration = 3
})
end
})
SettingsTab:AddButton({
Title = "Load Configuration",
Description = "Load settings from config file",
Callback = function()
SaveManager:Load()
Fluent:Notify({
Title = "Settings",
Content = "Configuration loaded successfully!",
Duration = 3
})
end
})
SettingsTab:AddButton({
Title = "Reset Configuration",
Description = "Reset all settings to default",
Callback = function()
Window:Dialog({
Title = "Reset Configuration",
Content = "Are you sure you want to reset all settings to default?",
Buttons = {
{
Title = "Confirm",
Callback = function()
SaveManager:Reset()
Fluent:Notify({
Title = "Settings",
Content = "Configuration reset to default!",
Duration = 3
})
end
},
{
Title = "Cancel",
Callback = function()
end
}
}
})
end
})
SettingsTab:AddParagraph({
Title = "Auto Load",
Content = "The configuration will automatically load when the script starts."
})
SettingsTab:AddSection("Interface Manager")
InterfaceManager:SetLibrary(Fluent)
InterfaceManager:SetFolder("DraconicXEvade")
InterfaceManager:BuildInterfaceSection(SettingsTab)
SettingsTab:AddSection("Save Manager")
SaveManager:SetLibrary(Fluent)
SaveManager:IgnoreThemeSettings()
SaveManager:SetFolder("DraconicXEvade/Config")
SaveManager:BuildConfigSection(SettingsTab)
task.spawn(function()
task.wait(1)
SaveManager:LoadAutoloadConfig()
end)
SettingsTab:AddSection("Button Positions")
local ButtonPositions = loadstring(game:HttpGet("https://raw.githubusercontent.com/Ksndfkssc/87643/refs/heads/main/Online%20Script/ButtonPositions.lua"))()
SettingsTab:AddButton({
Title = "Save Button Positions",
Description = "Save current positions of all GUI buttons",
Callback = function()
local success, msg = ButtonPositions:Save()
Fluent:Notify({
Title = "Button Positions",
Content = msg,
Duration = 3
})
end
})
SettingsTab:AddButton({
Title = "Load Button Positions",
Description = "Load saved button positions from file",
Callback = function()
local success, msg = ButtonPositions:Load()
Fluent:Notify({
Title = "Button Positions",
Content = msg,
Duration = 3
})
end
})
SettingsTab:AddButton({
Title = "Reset Button Positions",
Description = "Reset all buttons to default positions",
Callback = function()
Window:Dialog({
Title = "Reset Button Positions",
Content = "Are you sure you want to reset all button positions to default?",
Buttons = {
{
Title = "Confirm",
Callback = function()
ButtonPositions:Reset()
Fluent:Notify({
Title = "Button Positions",
Content = "All buttons reset to default positions!",
Duration = 3
})
end
},
{
Title = "Cancel",
Callback = function()
end
}
}
})
end
})
local InfoTab = Window:AddTab({ Title = "Info", Icon = "solar/info-circle-bold" })
InfoTab:AddSection("Information")
InfoTab:AddParagraph({
Title = "Telegram Support",
Content = "Join our Telegram channel for updates and support"
})
InfoTab:AddButton({
Title = "Copy Telegram Link",
Description = "Click to copy Telegram link to clipboard",
Callback = function()
local telegramLink = "https://t.me/DraconicHub"
setclipboard(telegramLink)
Fluent:Notify({
Title = "Telegram",
Content = "Link copied to clipboard!",
Duration = 3
})
end
})
InfoTab:AddParagraph({
Title = "Discord Server Support",
Content = "Join our Discord Server for updates and support"
})
InfoTab:AddButton({
Title = "Copy Discord Link",
Description = "Click to copy Discord link to clipboard",
Callback = function()
local telegramLink = "https://discord.gg/F74VB7u"
setclipboard(telegramLink)
Fluent:Notify({
Title = "Discord",
Content = "Link copied to clipboard!",
Duration = 3
})
end
})
Window:SelectTab(1)
SaveManager:LoadAutoloadConfig()
loadstring(game:HttpGet('https://raw.githubusercontent.com/Ksndfkssc/87643/refs/heads/main/Online%20Script/TimerGUI.lua'))()
local function createSimpleTimer()
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local UserInputService = game:GetService("UserInputService")
local StatsService = game:GetService("Stats")
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "DraconicFPS"
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
local container = Instance.new("Frame")
container.Size = UDim2.new(0, 165, 0, 48)
container.Position = UDim2.new(0, 10, 0, 10)
container.BackgroundTransparency = 1
container.Parent = screenGui
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(1, 0, 1, 0)
mainFrame.BackgroundTransparency = 0.7
mainFrame.Parent = container
local backgroundGradient = Instance.new("UIGradient")
backgroundGradient.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))
}
backgroundGradient.Rotation = 0
backgroundGradient.Parent = mainFrame
local gradientAnimation
gradientAnimation = RunService.RenderStepped:Connect(function(delta)
backgroundGradient.Rotation = (backgroundGradient.Rotation + 90 * delta) % 360
end)
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(139, 0, 0)
stroke.Thickness = 2
stroke.Parent = mainFrame
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = mainFrame
local textFrame = Instance.new("Frame")
textFrame.Size = UDim2.new(1, -8, 1, -8)
textFrame.Position = UDim2.new(0, 4, 0, 4)
textFrame.BackgroundTransparency = 1
textFrame.Parent = mainFrame
local dragging = false
local dragInput
local dragStart
local startPos
local function update(input)
local delta = input.Position - dragStart
container.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
mainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = container.Position
local connection
connection = input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
connection:Disconnect()
end
end)
end
end)
mainFrame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input == dragInput or input.UserInputType == Enum.UserInputType.Touch) then
update(input)
end
end)
local statsText = Instance.new("TextLabel")
statsText.Size = UDim2.new(1, -10, 0.5, 0)
statsText.Position = UDim2.new(0, 5, 0, 0)
statsText.BackgroundTransparency = 1
statsText.TextColor3 = Color3.fromRGB(255, 255, 255)
statsText.Font = Enum.Font.GothamBold
statsText.TextSize = 13
statsText.TextXAlignment = Enum.TextXAlignment.Center
statsText.Text = "FPS: 60 | Ping: 0ms"
statsText.Parent = textFrame
local timerText = Instance.new("TextLabel")
timerText.Size = UDim2.new(1, -10, 0.5, 0)
timerText.Position = UDim2.new(0, 5, 0.5, 0)
timerText.BackgroundTransparency = 1
timerText.TextColor3 = Color3.fromRGB(255, 255, 255)
timerText.Font = Enum.Font.GothamBold
timerText.TextSize = 13
timerText.TextXAlignment = Enum.TextXAlignment.Center
timerText.Text = "Time: 0h 0m 0s"
timerText.Parent = textFrame
mainFrame.MouseEnter:Connect(function()
stroke.Color = Color3.fromRGB(255, 50, 50)
backgroundGradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 50, 50)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(20, 20, 20)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 50, 50))
}
end)
mainFrame.MouseLeave:Connect(function()
stroke.Color = Color3.fromRGB(139, 0, 0)
backgroundGradient.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))
}
end)
local startTime = tick()
local frameCount = 0
local lastUpdate = tick()
local currentFPS = 0
local function getPing()
local ping = 0
pcall(function()
local stats = StatsService
local networkStats = stats:FindFirstChild("Network")
if networkStats then
local serverStats = networkStats:FindFirstChild("ServerStatsItem")
if serverStats then
ping = math.floor(serverStats:GetValue())
end
end
end)
if ping == 0 then
pcall(function()
local performanceStats = StatsService:FindFirstChild("PerformanceStats")
if performanceStats then
local pingStat = performanceStats:FindFirstChild("Ping")
if pingStat then
ping = math.floor(pingStat:GetValue())
end
end
end)
end
if ping == 0 then
ping = 50
end
return ping
end
RunService.RenderStepped:Connect(function()
frameCount = frameCount + 1
local currentTime = tick()
if currentTime - lastUpdate >= 0.5 then
currentFPS = math.floor(frameCount / (currentTime - lastUpdate))
frameCount = 0
lastUpdate = currentTime
local ping = getPing()
statsText.Text = string.format("FPS: %d | Ping: %dms", currentFPS, ping)
end
local elapsed = currentTime - startTime
local hours = math.floor(elapsed / 3600)
local minutes = math.floor((elapsed % 3600) / 60)
local seconds = math.floor(elapsed % 60)
timerText.Text = string.format("Time: %dh %dm %ds", hours, minutes, seconds)
end)
container.Destroying:Connect(function()
if gradientAnimation then
gradientAnimation:Disconnect()
end
end)
function screenGui:SetPosition(x, y)
container.Position = UDim2.new(0, x, 0, y)
end
function screenGui:SetVisible(visible)
screenGui.Enabled = visible
end
LocalPlayer.CharacterAdded:Connect(function()
task.wait(0.5)
if not screenGui or not screenGui.Parent then
screenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
end
end)
return screenGui
end
createSimpleTimer()
LocalPlayer.CharacterAdded:Connect(function()
task.wait(2)
if Options.PlayerToggle and Options.PlayerToggle.Value then
if not ExternalESPLoaded or not _G.ExternalESPRunning then
Fluent:Notify({
Title = "ESP Players",
Content = "Restoring Player ESP after respawn...",
Duration = 3
})
cleanupPlayerESPObjects()
ExternalESPLoaded = false
ExternalESP = nil
_G.ExternalESPRunning = false
local success = pcall(function()
ExternalESP = loadstring(game:HttpGet("https://raw.githubusercontent.com/Ksndfkssc/87643/refs/heads/main/Test%20Script/Esp.lua"))()
ExternalESPLoaded = true
_G.ExternalESPRunning = true
end)
if success then
Fluent:Notify({
Title = "ESP Players",
Content = "Player ESP restored successfully!",
Duration = 3
})
else
Fluent:Notify({
Title = "ESP Players Error",
Content = "Failed to restore Player ESP",
Duration = 3
})
Options.PlayerToggle:Set(false)
end
end
end
end)
LocalPlayer.CharacterRemoving:Connect(function()
if Options.NextbotToggle and Options.NextbotToggle.Value then
if ExternalNextbotESPLoaded and ExternalNextbotESP then
if ExternalNextbotESP.Stop then
pcall(ExternalNextbotESP.Stop)
end
end
for model, data in pairs(NextbotBillboards) do
if data.esp then
data.esp:Destroy()
end
end
NextbotBillboards = {}
for model, tracer in pairs(botTracerElements) do
if tracer and tracer.Remove then
tracer:Remove()
end
end
botTracerElements = {}
end
end)
LocalPlayer.CharacterAdded:Connect(function()
task.wait(2)
if Options.NextbotToggle and Options.NextbotToggle.Value then
if ExternalNextbotESPLoaded and ExternalNextbotESP then
if ExternalNextbotESP.Start then
pcall(function()
ExternalNextbotESP.Start()
_G.NextbotESPRunning = true
Fluent:Notify({
Title = "ESP Nextbots",
Content = "Nextbot ESP restored after respawn!",
Duration = 3
})
end)
end
end
end
end)![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)



@StyearX no once it's made,i wont be update it
good source