
KeylessUniversal

-- Advanced Hack GUI - Working Version
local player = game.Players.LocalPlayer
local runService = game:GetService("RunService")
local userInputService = game:GetService("UserInputService")
local tweenService = game:GetService("TweenService")
-- Get character and humanoid with proper error handling
local function getCharacter()
return player.Character or player.CharacterAdded:Wait()
end
local function getHumanoid()
local char = getCharacter()
return char:WaitForChild("Humanoid")
end
-- UI Setup
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "HackGUI"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 400, 0, 500)
mainFrame.Position = UDim2.new(0.5, -200, 0.5, -250)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
mainFrame.BorderSizePixel = 0
mainFrame.Parent = screenGui
local frameCorner = Instance.new("UICorner")
frameCorner.CornerRadius = UDim.new(0, 10)
frameCorner.Parent = mainFrame
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 40)
title.Position = UDim2.new(0, 0, 0, 0)
title.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
title.BorderSizePixel = 0
title.Text = "🚀 Advanced Hack GUI"
title.TextColor3 = Color3.new(1, 1, 1)
title.TextScaled = true
title.Font = Enum.Font.GothamBold
title.Parent = mainFrame
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 10)
titleCorner.Parent = title
local closeButton = Instance.new("TextButton")
closeButton.Size = UDim2.new(0, 30, 0, 30)
closeButton.Position = UDim2.new(1, -35, 0, 5)
closeButton.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
closeButton.BorderSizePixel = 0
closeButton.Text = "X"
closeButton.TextColor3 = Color3.new(1, 1, 1)
closeButton.TextScaled = true
closeButton.Font = Enum.Font.GothamBold
closeButton.Parent = mainFrame
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 5)
closeCorner.Parent = closeButton
local hideButton = Instance.new("TextButton")
hideButton.Size = UDim2.new(0, 30, 0, 30)
hideButton.Position = UDim2.new(1, -70, 0, 5)
hideButton.BackgroundColor3 = Color3.fromRGB(255, 165, 0)
hideButton.BorderSizePixel = 0
hideButton.Text = "-"
hideButton.TextColor3 = Color3.new(1, 1, 1)
hideButton.TextScaled = true
hideButton.Font = Enum.Font.GothamBold
hideButton.Parent = mainFrame
local hideCorner = Instance.new("UICorner")
hideCorner.CornerRadius = UDim.new(0, 5)
hideCorner.Parent = hideButton
-- Notification system
local function notify(msg)
local label = Instance.new("TextLabel")
label.Text = tostring(msg)
label.Size = UDim2.new(0, 300, 0, 50)
label.Position = UDim2.new(0.5, -150, 0.1, 0)
label.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
label.BackgroundTransparency = 0.3
label.BorderSizePixel = 0
label.TextColor3 = Color3.new(1, 1, 1)
label.Font = Enum.Font.GothamBold
label.TextScaled = true
label.Parent = screenGui
local notifyCorner = Instance.new("UICorner")
notifyCorner.CornerRadius = UDim.new(0, 10)
notifyCorner.Parent = label
game:GetService("Debris"):AddItem(label, 2)
end
-- State variables
local states = {
godMode = false,
noclip = false,
speedHack = false,
fly = false,
infiniteJump = false,
wallhack = false,
esp = false,
autoClick = false,
spinBot = false,
antiAFK = false,
fullbright = false,
clickTeleport = false
}
-- Additional settings
local originalLighting = {}
local spinConnection = nil
local afkConnection = nil
local clickTeleportConnection = nil
-- Scrolling Frame
local scrollFrame = Instance.new("ScrollingFrame")
scrollFrame.Size = UDim2.new(1, -20, 1, -100)
scrollFrame.Position = UDim2.new(0, 10, 0, 50)
scrollFrame.BackgroundTransparency = 1
scrollFrame.BorderSizePixel = 0
scrollFrame.ScrollBarThickness = 6
scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
scrollFrame.Parent = mainFrame
local layout = Instance.new("UIListLayout")
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Padding = UDim.new(0, 5)
layout.Parent = scrollFrame
layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
scrollFrame.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y + 10)
end)
-- Connection storage
local connections = {}
-- Toggle Template
local function createToggle(name, callback)
local toggle = Instance.new("TextButton")
toggle.Size = UDim2.new(1, -10, 0, 30)
toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
toggle.BorderSizePixel = 0
toggle.Text = name .. ": OFF"
toggle.TextColor3 = Color3.new(1, 1, 1)
toggle.TextScaled = true
toggle.Font = Enum.Font.Gotham
toggle.Parent = scrollFrame
local toggleCorner = Instance.new("UICorner")
toggleCorner.CornerRadius = UDim.new(0, 5)
toggleCorner.Parent = toggle
local isOn = false
toggle.MouseButton1Click:Connect(function()
isOn = not isOn
toggle.Text = name .. ": " .. (isOn and "ON" or "OFF")
toggle.BackgroundColor3 = isOn and Color3.fromRGB(50, 200, 50) or Color3.fromRGB(60, 60, 60)
pcall(callback, isOn)
end)
return toggle
end
-- God Mode
createToggle("God Mode", function(enabled)
states.godMode = enabled
if enabled then
connections.godMode = runService.Heartbeat:Connect(function()
pcall(function()
local humanoid = getHumanoid()
if humanoid then
humanoid.Health = humanoid.MaxHealth
end
end)
end)
notify("God Mode: ON")
else
if connections.godMode then
connections.godMode:Disconnect()
connections.godMode = nil
end
notify("God Mode: OFF")
end
end)
-- Noclip
createToggle("Noclip", function(enabled)
states.noclip = enabled
if enabled then
connections.noclip = runService.Stepped:Connect(function()
pcall(function()
local character = getCharacter()
if character then
for _, part in pairs(character:GetChildren()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
end)
end)
notify("Noclip: ON")
else
if connections.noclip then
connections.noclip:Disconnect()
connections.noclip = nil
end
pcall(function()
local character = getCharacter()
if character then
for _, part in pairs(character:GetChildren()) do
if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then
part.CanCollide = true
end
end
end
end)
notify("Noclip: OFF")
end
end)
-- Speed Hack
createToggle("Speed Hack", function(enabled)
states.speedHack = enabled
pcall(function()
local humanoid = getHumanoid()
if humanoid then
if enabled then
humanoid.WalkSpeed = 100
notify("Speed Hack: ON")
else
humanoid.WalkSpeed = 16
notify("Speed Hack: OFF")
end
end
end)
end)
-- Jump Power
createToggle("Super Jump", function(enabled)
pcall(function()
local humanoid = getHumanoid()
if humanoid then
if enabled then
humanoid.JumpPower = 150
notify("Super Jump: ON")
else
humanoid.JumpPower = 50
notify("Super Jump: OFF")
end
end
end)
end)
-- Fly
createToggle("Fly", function(enabled)
states.fly = enabled
if enabled then
pcall(function()
local character = getCharacter()
local rootPart = character:FindFirstChild("HumanoidRootPart")
if rootPart then
local bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.MaxForce = Vector3.new(4000, 4000, 4000)
bodyVelocity.Velocity = Vector3.new(0, 0, 0)
bodyVelocity.Parent = rootPart
connections.flyBodyVelocity = bodyVelocity
connections.fly = runService.Heartbeat:Connect(function()
pcall(function()
local camera = workspace.CurrentCamera
local velocity = Vector3.new(0, 0, 0)
if userInputService:IsKeyDown(Enum.KeyCode.W) then
velocity = velocity + (camera.CFrame.LookVector * 50)
end
if userInputService:IsKeyDown(Enum.KeyCode.S) then
velocity = velocity - (camera.CFrame.LookVector * 50)
end
if userInputService:IsKeyDown(Enum.KeyCode.A) then
velocity = velocity - (camera.CFrame.RightVector * 50)
end
if userInputService:IsKeyDown(Enum.KeyCode.D) then
velocity = velocity + (camera.CFrame.RightVector * 50)
end
if userInputService:IsKeyDown(Enum.KeyCode.Space) then
velocity = velocity + Vector3.new(0, 50, 0)
end
if userInputService:IsKeyDown(Enum.KeyCode.LeftShift) then
velocity = velocity - Vector3.new(0, 50, 0)
end
bodyVelocity.Velocity = velocity
end)
end)
notify("Fly: ON (Use WASD + Space/Shift)")
end
end)
else
if connections.fly then
connections.fly:Disconnect()
connections.fly = nil
end
if connections.flyBodyVelocity then
connections.flyBodyVelocity:Destroy()
connections.flyBodyVelocity = nil
end
notify("Fly: OFF")
end
end)
-- Infinite Jump
createToggle("Infinite Jump", function(enabled)
states.infiniteJump = enabled
if enabled then
connections.infiniteJump = userInputService.JumpRequest:Connect(function()
pcall(function()
local humanoid = getHumanoid()
if humanoid then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end)
end)
notify("Infinite Jump: ON")
else
if connections.infiniteJump then
connections.infiniteJump:Disconnect()
connections.infiniteJump = nil
end
notify("Infinite Jump: OFF")
end
end)
-- Wallhack
createToggle("Wallhack", function(enabled)
states.wallhack = enabled
if enabled then
pcall(function()
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA("BasePart") and not obj:IsDescendantOf(getCharacter()) then
obj.Transparency = 0.7
end
end
end)
notify("Wallhack: ON")
else
pcall(function()
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA("BasePart") and not obj:IsDescendantOf(getCharacter()) then
obj.Transparency = 0
end
end
end)
notify("Wallhack: OFF")
end
end)
-- ESP
createToggle("ESP", function(enabled)
states.esp = enabled
if enabled then
for _, otherPlayer in pairs(game.Players:GetPlayers()) do
if otherPlayer ~= player and otherPlayer.Character then
pcall(function()
local highlight = Instance.new("Highlight")
highlight.Name = "ESPHighlight"
highlight.FillColor = Color3.fromRGB(255, 0, 0)
highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
highlight.FillTransparency = 0.5
highlight.OutlineTransparency = 0
highlight.Parent = otherPlayer.Character
end)
end
end
notify("ESP: ON")
else
for _, otherPlayer in pairs(game.Players:GetPlayers()) do
if otherPlayer.Character then
pcall(function()
local highlight = otherPlayer.Character:FindFirstChild("ESPHighlight")
if highlight then
highlight:Destroy()
end
end)
end
end
notify("ESP: OFF")
end
end)
-- Teleport to Random Place
local function createButton(name, callback)
local button = Instance.new("TextButton")
button.Size = UDim2.new(1, -10, 0, 30)
button.BackgroundColor3 = Color3.fromRGB(70, 130, 180)
button.BorderSizePixel = 0
button.Text = name
button.TextColor3 = Color3.new(1, 1, 1)
button.TextScaled = true
button.Font = Enum.Font.Gotham
button.Parent = scrollFrame
local buttonCorner = Instance.new("UICorner")
buttonCorner.CornerRadius = UDim.new(0, 5)
buttonCorner.Parent = button
button.MouseButton1Click:Connect(function()
button.BackgroundColor3 = Color3.fromRGB(50, 100, 150)
wait(0.1)
button.BackgroundColor3 = Color3.fromRGB(70, 130, 180)
pcall(callback)
end)
return button
end
createButton("🎲 Teleport Random", function()
local character = getCharacter()
local rootPart = character:FindFirstChild("HumanoidRootPart")
if rootPart then
local randomX = math.random(-500, 500)
local randomZ = math.random(-500, 500)
local randomY = math.random(50, 200)
rootPart.CFrame = CFrame.new(randomX, randomY, randomZ)
notify("Teleported to random location!")
end
end)
createButton("📍 Teleport to Spawn", function()
local character = getCharacter()
local rootPart = character:FindFirstChild("HumanoidRootPart")
if rootPart then
rootPart.CFrame = CFrame.new(0, 50, 0)
notify("Teleported to spawn!")
end
end)
createButton("🌟 Teleport to Random Player", function()
local players = game.Players:GetPlayers()
local otherPlayers = {}
for _, p in pairs(players) do
if p ~= player and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
table.insert(otherPlayers, p)
end
end
if #otherPlayers > 0 then
local randomPlayer = otherPlayers[math.random(1, #otherPlayers)]
local character = getCharacter()
local rootPart = character:FindFirstChild("HumanoidRootPart")
if rootPart then
rootPart.CFrame = randomPlayer.Character.HumanoidRootPart.CFrame + Vector3.new(5, 0, 0)
notify("Teleported to " .. randomPlayer.Name)
end
else
notify("No players available to teleport to!")
end
end)
-- Auto Click
createToggle("Auto Click", function(enabled)
states.autoClick = enabled
if enabled then
connections.autoClick = runService.Heartbeat:Connect(function()
pcall(function()
if mouse1click then
mouse1click()
end
end)
wait(0.1)
end)
notify("Auto Click: ON")
else
if connections.autoClick then
connections.autoClick:Disconnect()
connections.autoClick = nil
end
notify("Auto Click: OFF")
end
end)
-- Spin Bot
createToggle("Spin Bot", function(enabled)
states.spinBot = enabled
if enabled then
connections.spinBot = runService.Heartbeat:Connect(function()
pcall(function()
local character = getCharacter()
local rootPart = character:FindFirstChild("HumanoidRootPart")
if rootPart then
rootPart.CFrame = rootPart.CFrame * CFrame.Angles(0, math.rad(20), 0)
end
end)
end)
notify("Spin Bot: ON")
else
if connections.spinBot then
connections.spinBot:Disconnect()
connections.spinBot = nil
end
notify("Spin Bot: OFF")
end
end)
-- Anti AFK
createToggle("Anti AFK", function(enabled)
states.antiAFK = enabled
if enabled then
connections.antiAFK = runService.Heartbeat:Connect(function()
pcall(function()
local character = getCharacter()
local humanoid = getHumanoid()
if humanoid then
humanoid:Move(Vector3.new(0, 0, 0))
end
end)
wait(10)
end)
notify("Anti AFK: ON")
else
if connections.antiAFK then
connections.antiAFK:Disconnect()
connections.antiAFK = nil
end
notify("Anti AFK: OFF")
end
end)
-- Fullbright
createToggle("Fullbright", function(enabled)
states.fullbright = enabled
if enabled then
-- Store original lighting
local lighting = game:GetService("Lighting")
originalLighting.Brightness = lighting.Brightness
originalLighting.Ambient = lighting.Ambient
originalLighting.ColorShift_Bottom = lighting.ColorShift_Bottom
originalLighting.ColorShift_Top = lighting.ColorShift_Top
originalLighting.FogEnd = lighting.FogEnd
originalLighting.FogStart = lighting.FogStart
-- Apply fullbright
lighting.Brightness = 5
lighting.Ambient = Color3.new(1, 1, 1)
lighting.ColorShift_Bottom = Color3.new(1, 1, 1)
lighting.ColorShift_Top = Color3.new(1, 1, 1)
lighting.FogEnd = 100000
lighting.FogStart = 100000
notify("Fullbright: ON")
else
-- Restore original lighting
local lighting = game:GetService("Lighting")
lighting.Brightness = originalLighting.Brightness or 1
lighting.Ambient = originalLighting.Ambient or Color3.new(0, 0, 0)
lighting.ColorShift_Bottom = originalLighting.ColorShift_Bottom or Color3.new(0, 0, 0)
lighting.ColorShift_Top = originalLighting.ColorShift_Top or Color3.new(0, 0, 0)
lighting.FogEnd = originalLighting.FogEnd or 100000
lighting.FogStart = originalLighting.FogStart or 0
notify("Fullbright: OFF")
end
end)
-- Click Teleport
createToggle("Click Teleport", function(enabled)
states.clickTeleport = enabled
if enabled then
connections.clickTeleport = game.Players.LocalPlayer:GetMouse().Button1Down:Connect(function()
pcall(function()
local character = getCharacter()
local rootPart = character:FindFirstChild("HumanoidRootPart")
local mouse = game.Players.LocalPlayer:GetMouse()
if rootPart and mouse.Hit then
rootPart.CFrame = CFrame.new(mouse.Hit.Position + Vector3.new(0, 5, 0))
notify("Teleported to click location!")
end
end)
end)
notify("Click Teleport: ON (Click anywhere to teleport)")
else
if connections.clickTeleport then
connections.clickTeleport:Disconnect()
connections.clickTeleport = nil
end
notify("Click Teleport: OFF")
end
end)
-- Btools (Build Tools)
createButton("🔧 Give Btools", function()
local backpack = player:FindFirstChild("Backpack")
if backpack then
-- Clone Tool
local clone = Instance.new("HopperBin")
clone.BinType = Enum.BinType.Clone
clone.Name = "Clone"
clone.Parent = backpack
-- Hammer Tool
local hammer = Instance.new("HopperBin")
hammer.BinType = Enum.BinType.Hammer
hammer.Name = "Hammer"
hammer.Parent = backpack
-- Grab Tool
local grab = Instance.new("HopperBin")
grab.BinType = Enum.BinType.Grab
grab.Name = "Grab"
grab.Parent = backpack
notify("Btools given!")
end
end)
-- Reset Character
createButton("🔄 Reset Character", function()
local character = getCharacter()
local humanoid = getHumanoid()
if humanoid then
humanoid.Health = 0
notify("Character reset!")
end
end)
-- Rejoin Server
createButton("🔄 Rejoin Server", function()
notify("Rejoining server...")
wait(1)
game:GetService("TeleportService"):Teleport(game.PlaceId, player)
end)
-- Hide/Show functionality
local isHidden = false
local hiddenFrame = Instance.new("Frame")
hiddenFrame.Size = UDim2.new(0, 120, 0, 30)
hiddenFrame.Position = UDim2.new(0, 10, 0, 10)
hiddenFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
hiddenFrame.BorderSizePixel = 0
hiddenFrame.Visible = false
hiddenFrame.Parent = screenGui
local hiddenCorner = Instance.new("UICorner")
hiddenCorner.CornerRadius = UDim.new(0, 5)
hiddenCorner.Parent = hiddenFrame
local showButton = Instance.new("TextButton")
showButton.Size = UDim2.new(1, 0, 1, 0)
showButton.Position = UDim2.new(0, 0, 0, 0)
showButton.BackgroundTransparency = 1
showButton.Text = "Show GUI"
showButton.TextColor3 = Color3.new(1, 1, 1)
showButton.TextScaled = true
showButton.Font = Enum.Font.GothamBold
showButton.Parent = hiddenFrame
-- Hide button functionality
hideButton.MouseButton1Click:Connect(function()
isHidden = not isHidden
if isHidden then
mainFrame.Visible = false
hiddenFrame.Visible = true
notify("GUI Hidden (Click 'Show GUI' to show again)")
else
mainFrame.Visible = true
hiddenFrame.Visible = false
notify("GUI Shown")
end
end)
-- Show button functionality
showButton.MouseButton1Click:Connect(function()
isHidden = false
mainFrame.Visible = true
hiddenFrame.Visible = false
notify("GUI Shown")
end)
-- Keybind to toggle GUI (Right Ctrl)
userInputService.InputBegan:Connect(function(input, gameProcessed)
if not gameProcessed and input.KeyCode == Enum.KeyCode.RightControl then
isHidden = not isHidden
if isHidden then
mainFrame.Visible = false
hiddenFrame.Visible = true
notify("GUI Hidden (Press Right Ctrl to show again)")
else
mainFrame.Visible = true
hiddenFrame.Visible = false
notify("GUI Shown")
end
end
end)
-- Close button functionality
closeButton.MouseButton1Click:Connect(function()
-- Clean up all connections
for _, connection in pairs(connections) do
if connection then
pcall(function()
connection:Disconnect()
end)
end
end
-- Reset character properties
pcall(function()
local humanoid = getHumanoid()
if humanoid then
humanoid.WalkSpeed = 16
humanoid.JumpPower = 50
end
end)
-- Clean up ESP
for _, otherPlayer in pairs(game.Players:GetPlayers()) do
if otherPlayer.Character then
pcall(function()
local highlight = otherPlayer.Character:FindFirstChild("ESPHighlight")
if highlight then
highlight:Destroy()
end
end)
end
end
-- Reset wallhack
pcall(function()
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA("BasePart") and not obj:IsDescendantOf(getCharacter()) then
obj.Transparency = 0
end
end
end)
-- Reset fullbright
if states.fullbright then
local lighting = game:GetService("Lighting")
lighting.Brightness = originalLighting.Brightness or 1
lighting.Ambient = originalLighting.Ambient or Color3.new(0, 0, 0)
lighting.ColorShift_Bottom = originalLighting.ColorShift_Bottom or Color3.new(0, 0, 0)
lighting.ColorShift_Top = originalLighting.ColorShift_Top or Color3.new(0, 0, 0)
lighting.FogEnd = originalLighting.FogEnd or 100000
lighting.FogStart = originalLighting.FogStart or 0
end
screenGui:Destroy()
end)
-- Make GUI draggable (Mobile and PC compatible)
local dragging = false
local dragStart = nil
local startPos = nil
-- Function to handle drag start
local function startDrag(input)
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
end
-- Function to handle drag movement
local function updateDrag(input)
if dragging then
local delta = input.Position - dragStart
mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end
-- Function to handle drag end
local function endDrag()
dragging = false
end
-- PC dragging (mouse)
title.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
startDrag(input)
end
end)
title.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
updateDrag(input)
end
end)
title.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
endDrag()
end
end)
-- Mobile dragging (touch)
title.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
startDrag(input)
end
end)
title.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
updateDrag(input)
end
end)
title.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
endDrag()
end
end)
-- Make hidden GUI draggable too
local hiddenDragging = false
local hiddenDragStart = nil
local hiddenStartPos = nil
-- Hidden GUI drag functions
local function startHiddenDrag(input)
hiddenDragging = true
hiddenDragStart = input.Position
hiddenStartPos = hiddenFrame.Position
end
local function updateHiddenDrag(input)
if hiddenDragging then
local delta = input.Position - hiddenDragStart
hiddenFrame.Position = UDim2.new(hiddenStartPos.X.Scale, hiddenStartPos.X.Offset + delta.X, hiddenStartPos.Y.Scale, hiddenStartPos.Y.Offset + delta.Y)
end
end
local function endHiddenDrag()
hiddenDragging = false
end
-- PC dragging for hidden GUI
hiddenFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
startHiddenDrag(input)
end
end)
hiddenFrame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
updateHiddenDrag(input)
end
end)
hiddenFrame.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
endHiddenDrag()
end
end)
-- Mobile dragging for hidden GUI
hiddenFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
startHiddenDrag(input)
end
end)
hiddenFrame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
updateHiddenDrag(input)
end
end)
hiddenFrame.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
endHiddenDrag()
end
end)
-- Character respawn handling
player.CharacterAdded:Connect(function(newChar)
wait(1) -- Wait for character to fully load
-- Reset all states
for state, _ in pairs(states) do
states[state] = false
end
-- Clean up old connections
for _, connection in pairs(connections) do
if connection then
pcall(function()
connection:Disconnect()
end)
end
end
connections = {}
-- Update all toggle buttons to OFF
for _, child in pairs(scrollFrame:GetChildren()) do
if child:IsA("TextButton") then
child.Text = string.gsub(child.Text, ": ON", ": OFF")
child.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
end
end
end)
notify("Advanced Hack GUI Loaded! 🚀\nPress Right Ctrl to hide/show GUI\nDrag the title bar to move GUI\nMany new features added!")



Parenting screenGui to PlayerGui is probably not a good idea.
Littrally inf yield