
KeylessUniversal

-- script updated every week V1.2
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local TextChatService = game:GetService("TextChatService")
local Workspace = game:GetService("Workspace")
local StarterGui = game:GetService("StarterGui")
local TweenService = game:GetService("TweenService")
local TeleportService = game:GetService("TeleportService")
local HttpService = game:GetService("HttpService")
local Lighting = game:GetService("Lighting")
local LocalPlayer = Players.LocalPlayer
local playerGui = LocalPlayer:WaitForChild("PlayerGui")
local Camera = Workspace.CurrentCamera
local prefix = "!"
local ScreenGui = _G.SmoothNotificationUI
if not ScreenGui then
ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "SmoothNotificationUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = playerGui
_G.SmoothNotificationUI = ScreenGui
end
local NOTIFICATION_SPACING = 10
local NOTIFICATION_WIDTH = 340
local NOTIFICATION_HEIGHT = 100
_G.SmoothNotifications = _G.SmoothNotifications or {}
local notifications = _G.SmoothNotifications
local function smoothTween(obj, time, props, style)
local tween = TweenService:Create(
obj,
TweenInfo.new(time, style or Enum.EasingStyle.Quint, Enum.EasingDirection.Out),
props
)
tween:Play()
return tween
end
local function updateStack()
for i, frame in ipairs(notifications) do
local targetY = -120 - ((NOTIFICATION_HEIGHT + NOTIFICATION_SPACING) * (i - 1))
smoothTween(frame, 0.4, {Position = UDim2.new(1, -30, 1, targetY)})
end
end
local function createNotification(titleText, subtitleText, duration)
duration = duration or 3
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(0, NOTIFICATION_WIDTH, 0, NOTIFICATION_HEIGHT)
Frame.Position = UDim2.new(1, 400, 1, -120)
Frame.AnchorPoint = Vector2.new(1, 1)
Frame.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
Frame.BackgroundTransparency = 0.15
Frame.BorderSizePixel = 0
Frame.Visible = true
Frame.ClipsDescendants = true
Frame.ZIndex = 10
Frame.Parent = ScreenGui
local Corner = Instance.new("UICorner")
Corner.CornerRadius = UDim.new(0, 14)
Corner.Parent = Frame
local Shadow = Instance.new("ImageLabel")
Shadow.Size = UDim2.new(1, 40, 1, 40)
Shadow.Position = UDim2.new(0.5, 0, 0.5, 0)
Shadow.AnchorPoint = Vector2.new(0.5, 0.5)
Shadow.BackgroundTransparency = 1
Shadow.Image = "rbxassetid://1316045217"
Shadow.ImageColor3 = Color3.fromRGB(0, 0, 0)
Shadow.ImageTransparency = 1
Shadow.ZIndex = 9
Shadow.ScaleType = Enum.ScaleType.Slice
Shadow.SliceCenter = Rect.new(10, 10, 118, 118)
Shadow.Parent = Frame
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -30, 0.5, -15)
Title.Position = UDim2.new(0, 15, 0, 10)
Title.BackgroundTransparency = 1
Title.Text = titleText or ""
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextScaled = true
Title.Font = Enum.Font.GothamBold
Title.TextTransparency = 1
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.ZIndex = 11
Title.Parent = Frame
local Subtitle = Instance.new("TextLabel")
Subtitle.Size = UDim2.new(1, -30, 0.5, -15)
Subtitle.Position = UDim2.new(0, 15, 0.5, 0)
Subtitle.BackgroundTransparency = 1
Subtitle.Text = subtitleText or ""
Subtitle.TextColor3 = Color3.fromRGB(200, 200, 200)
Subtitle.TextScaled = true
Subtitle.Font = Enum.Font.Gotham
Subtitle.TextTransparency = 1
Subtitle.TextXAlignment = Enum.TextXAlignment.Left
Subtitle.ZIndex = 11
Subtitle.Parent = Frame
table.insert(notifications, 1, Frame)
updateStack()
task.spawn(function()
smoothTween(Frame, 0.7, {Position = UDim2.new(1, -30, 1, -120)})
smoothTween(Title, 0.6, {TextTransparency = 0})
smoothTween(Subtitle, 0.6, {TextTransparency = 0.15})
smoothTween(Shadow, 0.6, {ImageTransparency = 0.85})
task.wait(duration)
local slideOut = TweenService:Create(Frame, TweenInfo.new(0.7, Enum.EasingStyle.Quint, Enum.EasingDirection.In), {
Position = UDim2.new(1, 400, Frame.Position.Y.Scale, Frame.Position.Y.Offset),
BackgroundTransparency = 1
})
local fadeTitle = TweenService:Create(Title, TweenInfo.new(0.5, Enum.EasingStyle.Sine), {TextTransparency = 1})
local fadeSub = TweenService:Create(Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Sine), {TextTransparency = 1})
slideOut:Play() fadeTitle:Play() fadeSub:Play()
slideOut.Completed:Wait()
for i, v in ipairs(notifications) do
if v == Frame then table.remove(notifications, i) break end
end
Frame:Destroy()
updateStack()
end)
end
_G.ShowNotification = function(title, subtitle, duration)
createNotification(title, subtitle, duration)
end
local function notify(msg)
pcall(function()
if _G.ShowNotification then
_G.ShowNotification("Client Admin", tostring(msg), 3)
end
end)
pcall(function()
StarterGui:SetCore("ChatMakeSystemMessage", {
Text = "[Client Admin] " .. tostring(msg),
Color = Color3.fromRGB(255, 230, 128),
Font = Enum.Font.SourceSansBold,
FontSize = Enum.FontSize.Size24,
})
end)
print("[ClientAdmin] " .. tostring(msg))
end
local flying = false
local noclip = false
local infiniteJump = false
local spinning = false
local godMode = false
local espEnabled = false
local fullbright = false
local flySpeed = 50
local spinSpeed = 90
local flyConn = nil
local noclipConn = nil
local spinConn = nil
local godConn = nil
local espPlayerConn = nil
local fullbrightConn = nil
local espObjects = {}
local blockedPlayers = {}
local deathPosition = nil
local savedLighting = {}
local FlingActive = false
local SelectedTargets = {}
local PlayerCheckboxes = {}
getgenv().OldPos = nil
getgenv().FPDH = workspace.FallenPartsDestroyHeight
local function findPlayer(query)
if not query then return nil end
local q = string.lower(query)
for _, p in pairs(Players:GetPlayers()) do
if string.lower(p.Name) == q or string.lower(p.DisplayName) == q then return p end
end
for _, p in pairs(Players:GetPlayers()) do
if string.find(string.lower(p.Name), q, 1, true)
or string.find(string.lower(p.DisplayName), q, 1, true) then return p end
end
return nil
end
local function SkidFling(TargetPlayer)
local Character = LocalPlayer.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
local RootPart = Humanoid and Humanoid.RootPart
local TCharacter = TargetPlayer.Character
if not TCharacter then return end
local THumanoid = TCharacter:FindFirstChildOfClass("Humanoid")
local TRootPart = THumanoid and THumanoid.RootPart
local THead = TCharacter:FindFirstChild("Head")
local Accessory = TCharacter:FindFirstChildOfClass("Accessory")
local Handle = Accessory and Accessory:FindFirstChild("Handle")
if not (Character and Humanoid and RootPart) then
return notify("Your character is not ready")
end
if RootPart.Velocity.Magnitude < 50 then
getgenv().OldPos = RootPart.CFrame
end
if THumanoid and THumanoid.Sit then
return notify(TargetPlayer.Name .. " is sitting")
end
if THead then workspace.CurrentCamera.CameraSubject = THead
elseif Handle then workspace.CurrentCamera.CameraSubject = Handle
elseif THumanoid and TRootPart then workspace.CurrentCamera.CameraSubject = THumanoid
end
if not TCharacter:FindFirstChildWhichIsA("BasePart") then return end
local function FPos(BasePart, Pos, Ang)
RootPart.CFrame = CFrame.new(BasePart.Position) * Pos * Ang
Character:SetPrimaryPartCFrame(CFrame.new(BasePart.Position) * Pos * Ang)
RootPart.Velocity = Vector3.new(9e7, 9e7 * 10, 9e7)
RootPart.RotVelocity = Vector3.new(9e8, 9e8, 9e8)
end
local function SFBasePart(BasePart)
local TimeToWait = 2
local Time = tick()
local Angle = 0
repeat
if RootPart and THumanoid then
if BasePart.Velocity.Magnitude < 50 then
Angle += 100
FPos(BasePart, CFrame.new(0, 1.5, 0) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle), 0, 0)) task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle), 0, 0)) task.wait()
FPos(BasePart, CFrame.new(0, 1.5, 0) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle), 0, 0)) task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0) + THumanoid.MoveDirection * BasePart.Velocity.Magnitude / 1.25, CFrame.Angles(math.rad(Angle), 0, 0)) task.wait()
FPos(BasePart, CFrame.new(0, 1.5, 0) + THumanoid.MoveDirection, CFrame.Angles(math.rad(Angle), 0, 0)) task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0) + THumanoid.MoveDirection, CFrame.Angles(math.rad(Angle), 0, 0)) task.wait()
else
FPos(BasePart, CFrame.new(0, 1.5, THumanoid.WalkSpeed), CFrame.Angles(math.rad(90), 0, 0)) task.wait()
FPos(BasePart, CFrame.new(0, -1.5, -THumanoid.WalkSpeed), CFrame.Angles(0, 0, 0)) task.wait()
FPos(BasePart, CFrame.new(0, 1.5, THumanoid.WalkSpeed), CFrame.Angles(math.rad(90), 0, 0)) task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(math.rad(90), 0, 0)) task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(0, 0, 0)) task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(math.rad(90), 0, 0)) task.wait()
FPos(BasePart, CFrame.new(0, -1.5, 0), CFrame.Angles(0, 0, 0)) task.wait()
end
end
until Time + TimeToWait < tick() or not FlingActive
end
workspace.FallenPartsDestroyHeight = 0/0
local BV = Instance.new("BodyVelocity")
BV.Parent = RootPart
BV.Velocity = Vector3.new(0, 0, 0)
BV.MaxForce = Vector3.new(9e9, 9e9, 9e9)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated, false)
if TRootPart then SFBasePart(TRootPart)
elseif THead then SFBasePart(THead)
elseif Handle then SFBasePart(Handle)
else notify(TargetPlayer.Name .. " has no valid parts") end
BV:Destroy()
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Seated, true)
workspace.CurrentCamera.CameraSubject = Humanoid
if getgenv().OldPos then
repeat
RootPart.CFrame = getgenv().OldPos * CFrame.new(0, .5, 0)
Character:SetPrimaryPartCFrame(getgenv().OldPos * CFrame.new(0, .5, 0))
Humanoid:ChangeState("GettingUp")
for _, part in pairs(Character:GetChildren()) do
if part:IsA("BasePart") then
part.Velocity, part.RotVelocity = Vector3.new(), Vector3.new()
end
end
task.wait()
until (RootPart.Position - getgenv().OldPos.p).Magnitude < 25
workspace.FallenPartsDestroyHeight = getgenv().FPDH
end
end
local function CountSelectedTargets()
local count = 0
for _ in pairs(SelectedTargets) do count += 1 end
return count
end
local function showFlingGUI()
local existing = playerGui:FindFirstChild("KilasikFlingGUI")
if existing then existing:Destroy() end
FlingActive = false
SelectedTargets = {}
PlayerCheckboxes = {}
local FlingGui = Instance.new("ScreenGui")
FlingGui.Name = "KilasikFlingGUI"
FlingGui.ResetOnSpawn = false
FlingGui.Parent = playerGui
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 310, 0, 390)
MainFrame.Position = UDim2.new(0.5, -155, 0.5, -195)
MainFrame.BackgroundColor3 = Color3.fromRGB(52, 52, 62)
MainFrame.BackgroundTransparency = 0.15
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Parent = FlingGui
Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 12)
local mainStroke = Instance.new("UIStroke", MainFrame)
mainStroke.Color = Color3.fromRGB(85, 85, 105)
mainStroke.Thickness = 1.5
local TitleBar = Instance.new("Frame")
TitleBar.Size = UDim2.new(1, 0, 0, 42)
TitleBar.BackgroundColor3 = Color3.fromRGB(62, 62, 75)
TitleBar.BackgroundTransparency = 0.15
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainFrame
Instance.new("UICorner", TitleBar).CornerRadius = UDim.new(0, 12)
local tbFix = Instance.new("Frame", TitleBar)
tbFix.Size = UDim2.new(1, 0, 0.5, 0)
tbFix.Position = UDim2.new(0, 0, 0.5, 0)
tbFix.BackgroundColor3 = Color3.fromRGB(62, 62, 75)
tbFix.BackgroundTransparency = 0.15
tbFix.BorderSizePixel = 0
local TitleLabel = Instance.new("TextLabel", TitleBar)
TitleLabel.Size = UDim2.new(1, -50, 1, 0)
TitleLabel.Position = UDim2.new(0, 12, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "☠ FLING MANAGER"
TitleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextSize = 16
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
local CloseBtn = Instance.new("TextButton", TitleBar)
CloseBtn.Position = UDim2.new(1, -36, 0, 6)
CloseBtn.Size = UDim2.new(0, 30, 0, 30)
CloseBtn.BackgroundColor3 = Color3.fromRGB(85, 85, 105)
CloseBtn.BackgroundTransparency = 0.3
CloseBtn.BorderSizePixel = 0
CloseBtn.Text = "✖"
CloseBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseBtn.Font = Enum.Font.GothamBold
CloseBtn.TextSize = 14
Instance.new("UICorner", CloseBtn).CornerRadius = UDim.new(0, 8)
local StatusLabel = Instance.new("TextLabel", MainFrame)
StatusLabel.Position = UDim2.new(0, 12, 0, 48)
StatusLabel.Size = UDim2.new(1, -24, 0, 22)
StatusLabel.BackgroundTransparency = 1
StatusLabel.Text = "Select targets below"
StatusLabel.TextColor3 = Color3.fromRGB(215, 215, 230)
StatusLabel.Font = Enum.Font.Gotham
StatusLabel.TextSize = 13
StatusLabel.TextXAlignment = Enum.TextXAlignment.Left
local ListFrame = Instance.new("Frame", MainFrame)
ListFrame.Position = UDim2.new(0, 10, 0, 74)
ListFrame.Size = UDim2.new(1, -20, 0, 220)
ListFrame.BackgroundColor3 = Color3.fromRGB(42, 42, 52)
ListFrame.BackgroundTransparency = 0.15
ListFrame.BorderSizePixel = 0
Instance.new("UICorner", ListFrame).CornerRadius = UDim.new(0, 8)
local ScrollFrame = Instance.new("ScrollingFrame", ListFrame)
ScrollFrame.Position = UDim2.new(0, 4, 0, 4)
ScrollFrame.Size = UDim2.new(1, -8, 1, -8)
ScrollFrame.BackgroundTransparency = 1
ScrollFrame.BorderSizePixel = 0
ScrollFrame.ScrollBarThickness = 5
ScrollFrame.ScrollBarImageColor3 = Color3.fromRGB(105, 105, 128)
ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
local function UpdateStatus()
local count = CountSelectedTargets()
if FlingActive then
StatusLabel.Text = "☠ Flinging " .. count .. " target(s)..."
StatusLabel.TextColor3 = Color3.fromRGB(255, 200, 80)
else
StatusLabel.Text = count > 0 and (count .. " target(s) selected") or "Select targets below"
StatusLabel.TextColor3 = Color3.fromRGB(215, 215, 230)
end
end
local function RefreshPlayerList()
for _, c in pairs(ScrollFrame:GetChildren()) do c:Destroy() end
PlayerCheckboxes = {}
local list = Players:GetPlayers()
table.sort(list, function(a, b) return a.Name:lower() < b.Name:lower() end)
local y = 4
for _, player in ipairs(list) do
if player == LocalPlayer then continue end
local row = Instance.new("Frame", ScrollFrame)
row.Size = UDim2.new(1, -8, 0, 34)
row.Position = UDim2.new(0, 4, 0, y)
row.BackgroundColor3 = Color3.fromRGB(58, 58, 72)
row.BorderSizePixel = 0
Instance.new("UICorner", row).CornerRadius = UDim.new(0, 6)
local Box = Instance.new("Frame", row)
Box.Size = UDim2.new(0, 22, 0, 22)
Box.Position = UDim2.new(0, 6, 0.5, -11)
Box.BackgroundColor3 = Color3.fromRGB(75, 75, 92)
Box.BorderSizePixel = 0
Instance.new("UICorner", Box).CornerRadius = UDim.new(0, 5)
local Check = Instance.new("TextLabel", Box)
Check.Size = UDim2.new(1, 0, 1, 0)
Check.BackgroundTransparency = 1
Check.Text = "✓"
Check.TextColor3 = Color3.fromRGB(255, 180, 50)
Check.TextSize = 16
Check.Font = Enum.Font.GothamBold
Check.Visible = SelectedTargets[player.Name] ~= nil
local NameLbl = Instance.new("TextLabel", row)
NameLbl.Size = UDim2.new(1, -40, 1, 0)
NameLbl.Position = UDim2.new(0, 34, 0, 0)
NameLbl.BackgroundTransparency = 1
NameLbl.Text = player.Name
NameLbl.TextColor3 = Color3.fromRGB(232, 232, 242)
NameLbl.TextSize = 14
NameLbl.Font = Enum.Font.Gotham
NameLbl.TextXAlignment = Enum.TextXAlignment.Left
local ClickBtn = Instance.new("TextButton", row)
ClickBtn.Size = UDim2.new(1, 0, 1, 0)
ClickBtn.BackgroundTransparency = 1
ClickBtn.Text = ""
ClickBtn.ZIndex = 3
ClickBtn.MouseButton1Click:Connect(function()
if SelectedTargets[player.Name] then
SelectedTargets[player.Name] = nil
Check.Visible = false
smoothTween(row, 0.1, {BackgroundColor3 = Color3.fromRGB(58, 58, 72)})
else
SelectedTargets[player.Name] = player
Check.Visible = true
smoothTween(row, 0.1, {BackgroundColor3 = Color3.fromRGB(65, 65, 90)})
end
UpdateStatus()
end)
ClickBtn.MouseEnter:Connect(function()
if not SelectedTargets[player.Name] then
smoothTween(row, 0.1, {BackgroundColor3 = Color3.fromRGB(68, 68, 82)})
end
end)
ClickBtn.MouseLeave:Connect(function()
if not SelectedTargets[player.Name] then
smoothTween(row, 0.1, {BackgroundColor3 = Color3.fromRGB(58, 58, 72)})
end
end)
if SelectedTargets[player.Name] then
row.BackgroundColor3 = Color3.fromRGB(65, 65, 90)
end
PlayerCheckboxes[player.Name] = {Row = row, Check = Check}
y += 38
end
ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, y + 4)
end
local function makeBtn(xScale, xOff, text, bgColor)
local btn = Instance.new("TextButton", MainFrame)
btn.Position = UDim2.new(xScale, xOff, 0, 302)
btn.Size = UDim2.new(0.5, -15, 0, 38)
btn.BackgroundColor3 = bgColor
btn.BorderSizePixel = 0
btn.Text = text
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.Font = Enum.Font.GothamBold
btn.TextSize = 15
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8)
return btn
end
local StartBtn = makeBtn(0, 10, "▶ START FLING", Color3.fromRGB(0, 150, 60))
local StopBtn = makeBtn(0.5, 5, "■ STOP FLING", Color3.fromRGB(72, 72, 90))
local SelAllBtn = makeBtn(0, 10, "SELECT ALL", Color3.fromRGB(68, 68, 85))
local DeselBtn = makeBtn(0.5, 5, "DESELECT ALL", Color3.fromRGB(68, 68, 85))
SelAllBtn.Position = UDim2.new(0, 10, 0, 348)
DeselBtn.Position = UDim2.new(0.5, 5, 0, 348)
SelAllBtn.TextSize = 13
DeselBtn.TextSize = 13
CloseBtn.MouseButton1Click:Connect(function()
FlingActive = false
FlingGui:Destroy()
end)
local function StartFling()
if FlingActive then return end
if CountSelectedTargets() == 0 then
StatusLabel.Text = "⚠ No targets selected!"
StatusLabel.TextColor3 = Color3.fromRGB(255, 200, 0)
task.delay(1.5, UpdateStatus)
return
end
FlingActive = true
smoothTween(StopBtn, 0.2, {BackgroundColor3 = Color3.fromRGB(160, 50, 50)})
UpdateStatus()
notify("Flinging " .. CountSelectedTargets() .. " target(s)")
task.spawn(function()
while FlingActive do
for name, player in pairs(SelectedTargets) do
if not (player and player.Parent) then
SelectedTargets[name] = nil
local cb = PlayerCheckboxes[name]
if cb then cb.Check.Visible = false end
elseif FlingActive then
SkidFling(player)
task.wait(0.1)
end
end
UpdateStatus()
task.wait(0.5)
end
end)
end
local function StopFling()
if not FlingActive then return end
FlingActive = false
smoothTween(StopBtn, 0.2, {BackgroundColor3 = Color3.fromRGB(72, 72, 90)})
UpdateStatus()
notify("Fling stopped")
end
StartBtn.MouseButton1Click:Connect(StartFling)
StopBtn.MouseButton1Click:Connect(StopFling)
SelAllBtn.MouseButton1Click:Connect(function()
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
SelectedTargets[player.Name] = player
local cb = PlayerCheckboxes[player.Name]
if cb then
cb.Check.Visible = true
smoothTween(cb.Row, 0.1, {BackgroundColor3 = Color3.fromRGB(65, 65, 90)})
end
end
end
UpdateStatus()
end)
DeselBtn.MouseButton1Click:Connect(function()
for name in pairs(SelectedTargets) do
SelectedTargets[name] = nil
local cb = PlayerCheckboxes[name]
if cb then
cb.Check.Visible = false
smoothTween(cb.Row, 0.1, {BackgroundColor3 = Color3.fromRGB(58, 58, 72)})
end
end
UpdateStatus()
end)
Players.PlayerAdded:Connect(function()
task.wait(0.5)
RefreshPlayerList()
end)
Players.PlayerRemoving:Connect(function(p)
SelectedTargets[p.Name] = nil
task.wait(0.1)
RefreshPlayerList()
UpdateStatus()
end)
RefreshPlayerList()
UpdateStatus()
end
local function startFly()
if flying then notify("Already flying") return end
local char = LocalPlayer.Character
if not char then notify("No character") return end
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then notify("No HumanoidRootPart") return end
if flyConn then flyConn:Disconnect() flyConn = nil end
flying = true
local bv = Instance.new("BodyVelocity")
bv.Name = "FlyBodyVelocity"
bv.MaxForce = Vector3.new(1e5, 1e5, 1e5)
bv.Velocity = Vector3.zero
bv.Parent = hrp
local ba = Instance.new("BodyAngularVelocity")
ba.Name = "FlyBodyAngularVelocity"
ba.MaxTorque = Vector3.new(1e5, 1e5, 1e5)
ba.AngularVelocity = Vector3.zero
ba.Parent = hrp
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then pcall(function() hum.PlatformStand = true end) end
local currentVelocity = Vector3.zero
local ACCELERATION = 12
local DECELERATION = 10
flyConn = RunService.RenderStepped:Connect(function(dt)
if not flying then return end
local rootPart = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
local flyBV = rootPart and rootPart:FindFirstChild("FlyBodyVelocity")
if not rootPart or not flyBV then return end
local cam = Workspace.CurrentCamera
local move = Vector3.zero
local rightV = Vector3.new(cam.CFrame.RightVector.X, 0, cam.CFrame.RightVector.Z).Unit
if UIS:IsKeyDown(Enum.KeyCode.W) then move += cam.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.S) then move -= cam.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.A) then move -= rightV end
if UIS:IsKeyDown(Enum.KeyCode.D) then move += rightV end
if UIS:IsKeyDown(Enum.KeyCode.Space) then move += Vector3.new(0, 1, 0) end
if UIS:IsKeyDown(Enum.KeyCode.LeftControl) then move -= Vector3.new(0, 1, 0) end
local targetVelocity = move.Magnitude > 0 and move.Unit * flySpeed or Vector3.zero
local lerpFactor = move.Magnitude > 0 and math.min(1, ACCELERATION * dt) or math.min(1, DECELERATION * dt)
currentVelocity = currentVelocity:Lerp(targetVelocity, lerpFactor)
if currentVelocity.Magnitude < 0.01 then currentVelocity = Vector3.zero end
flyBV.Velocity = currentVelocity
end)
notify("Fly enabled | Speed: " .. tostring(flySpeed))
end
local function stopFly()
if not flying then notify("Not flying") return end
flying = false
if flyConn then flyConn:Disconnect() flyConn = nil end
local char = LocalPlayer.Character
if char then
local hrp = char:FindFirstChild("HumanoidRootPart")
if hrp then
local bv = hrp:FindFirstChild("FlyBodyVelocity")
if bv then bv:Destroy() end
local ba = hrp:FindFirstChild("FlyBodyAngularVelocity")
if ba then ba:Destroy() end
end
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then pcall(function() hum.PlatformStand = false end) end
end
notify("Fly disabled")
end
local function startNoclip()
if noclip then notify("Noclip already on") return end
if noclipConn then noclipConn:Disconnect() noclipConn = nil end
noclip = true
noclipConn = RunService.Stepped:Connect(function()
if not noclip then return end
local char = LocalPlayer.Character
if not char then return end
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") then part.CanCollide = false end
end
end)
notify("Noclip enabled")
end
local function stopNoclip()
if not noclip then notify("Noclip already off") return end
noclip = false
if noclipConn then noclipConn:Disconnect() noclipConn = nil end
local char = LocalPlayer.Character
if char then
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") then part.CanCollide = true end
end
end
notify("Noclip disabled")
end
local function startSpin(speed)
if spinning then notify("Already spinning") return end
speed = tonumber(speed) or spinSpeed
if spinConn then spinConn:Disconnect() spinConn = nil end
spinning = true
spinConn = RunService.Heartbeat:Connect(function(dt)
if not spinning then return end
local char = LocalPlayer.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if hrp then hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(speed * dt), 0) end
end)
notify("Spin enabled at " .. tostring(speed) .. "°/s")
end
local function stopSpin()
if not spinning then notify("Not spinning") return end
spinning = false
if spinConn then spinConn:Disconnect() spinConn = nil end
notify("Spin disabled")
end
local function startGodMode()
if godMode then notify("Godmode already on") return end
local char = LocalPlayer.Character
if not char then notify("No character") return end
local hum = char:FindFirstChildOfClass("Humanoid")
if not hum then notify("No Humanoid") return end
if godConn then godConn:Disconnect() godConn = nil end
godMode = true
godConn = RunService.Heartbeat:Connect(function()
if not godMode then return end
local c = LocalPlayer.Character
local h = c and c:FindFirstChildOfClass("Humanoid")
if h and h.Health < h.MaxHealth then h.Health = h.MaxHealth end
end)
notify("Godmode enabled")
end
local function stopGodMode()
if not godMode then notify("Godmode already off") return end
godMode = false
if godConn then godConn:Disconnect() godConn = nil end
notify("Godmode disabled")
end
local function applyFullbright()
Lighting.Ambient = Color3.fromRGB(255, 255, 255)
Lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255)
Lighting.Brightness = 2
Lighting.FogEnd = 1e9
Lighting.GlobalShadows = false
Lighting.ClockTime = 14
for _, effect in ipairs(Lighting:GetChildren()) do
if effect:IsA("Atmosphere") or effect:IsA("ColorCorrectionEffect")
or effect:IsA("BloomEffect") or effect:IsA("BlurEffect") then
pcall(function() effect.Enabled = false end)
end
end
end
local function enableFullbright()
if fullbright then notify("Fullbright already on") return end
savedLighting = {
Ambient = Lighting.Ambient,
OutdoorAmbient = Lighting.OutdoorAmbient,
Brightness = Lighting.Brightness,
FogEnd = Lighting.FogEnd,
GlobalShadows = Lighting.GlobalShadows,
ClockTime = Lighting.ClockTime,
}
fullbright = true
applyFullbright()
if fullbrightConn then fullbrightConn:Disconnect() fullbrightConn = nil end
fullbrightConn = RunService.Heartbeat:Connect(function()
if not fullbright then return end
applyFullbright()
end)
notify("Fullbright enabled")
end
local function disableFullbright()
if not fullbright then notify("Fullbright already off") return end
fullbright = false
if fullbrightConn then fullbrightConn:Disconnect() fullbrightConn = nil end
Lighting.Ambient = savedLighting.Ambient
Lighting.OutdoorAmbient = savedLighting.OutdoorAmbient
Lighting.Brightness = savedLighting.Brightness
Lighting.FogEnd = savedLighting.FogEnd
Lighting.GlobalShadows = savedLighting.GlobalShadows
Lighting.ClockTime = savedLighting.ClockTime
for _, effect in ipairs(Lighting:GetChildren()) do
if effect:IsA("Atmosphere") or effect:IsA("ColorCorrectionEffect")
or effect:IsA("BloomEffect") or effect:IsA("BlurEffect") then
pcall(function() effect.Enabled = true end)
end
end
notify("Fullbright disabled")
end
local function createESPForPlayer(p)
if p == LocalPlayer then return end
if not p.Character then return end
if espObjects[p] then
if espObjects[p].highlight and espObjects[p].highlight.Parent then espObjects[p].highlight:Destroy() end
if espObjects[p].charConn then espObjects[p].charConn:Disconnect() end
espObjects[p] = nil
end
local highlight
pcall(function()
highlight = Instance.new("Highlight")
highlight.Name = "ESP_Highlight"
highlight.FillTransparency = 1
highlight.OutlineTransparency = 0
highlight.OutlineColor = Color3.fromRGB(0, 255, 255)
highlight.Parent = p.Character
end)
if highlight then
local charConn
charConn = p.CharacterAdded:Connect(function()
task.wait(0.2)
if espEnabled then createESPForPlayer(p)
else if charConn then charConn:Disconnect() end end
end)
espObjects[p] = {highlight = highlight, charConn = charConn}
end
end
local function removeESPForPlayer(p)
if not p then return end
local obj = espObjects[p]
if obj then
if obj.highlight and obj.highlight.Parent then obj.highlight:Destroy() end
if obj.charConn then obj.charConn:Disconnect() end
espObjects[p] = nil
elseif p.Character then
local hl = p.Character:FindFirstChild("ESP_Highlight", true)
if hl then hl:Destroy() end
end
end
local function enableESP()
if espEnabled then notify("ESP already on") return end
espEnabled = true
for _, p in pairs(Players:GetPlayers()) do
if p ~= LocalPlayer then createESPForPlayer(p) end
end
if espPlayerConn then espPlayerConn:Disconnect() espPlayerConn = nil end
espPlayerConn = Players.PlayerAdded:Connect(function(p)
if espEnabled then createESPForPlayer(p) end
end)
notify("ESP enabled")
end
local function disableESP()
if not espEnabled then notify("ESP already off") return end
espEnabled = false
if espPlayerConn then espPlayerConn:Disconnect() espPlayerConn = nil end
for p in pairs(espObjects) do removeESPForPlayer(p) end
espObjects = {}
for _, p in pairs(Players:GetPlayers()) do
if p.Character then
local hl = p.Character:FindFirstChild("ESP_Highlight", true)
if hl then hl:Destroy() end
end
end
notify("ESP disabled")
end
local function thru()
local char = LocalPlayer.Character
if not char then notify("No character") return end
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then notify("No HumanoidRootPart") return end
local direction = Camera.CFrame.LookVector
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
raycastParams.FilterDescendantsInstances = {char}
raycastParams.IgnoreWater = true
local ray = Workspace:Raycast(hrp.Position, direction * 20, raycastParams)
if ray and ray.Instance then
hrp.CFrame = CFrame.new(hrp.Position + direction * (ray.Distance + 3))
notify("Teleported through wall")
else
notify("No wall detected in front")
end
end
local function tpToPlayer(name)
local target = findPlayer(name)
if target and target.Character and LocalPlayer.Character then
local myhrp = LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
local theirhrp = target.Character:FindFirstChild("HumanoidRootPart")
if myhrp and theirhrp then
myhrp.CFrame = theirhrp.CFrame + Vector3.new(2, 0, 0)
notify("Teleported to " .. target.Name)
return
end
end
notify("Player not found: " .. tostring(name))
end
local function hideCharacter(char)
if not char then return end
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") then part.Transparency = 1 part.CanCollide = false
elseif (part:IsA("Accessory") or part:IsA("Hat")) then
local h = part:FindFirstChild("Handle")
if h then h.Transparency = 1 end
elseif part:IsA("ParticleEmitter") or part:IsA("Trail") or part:IsA("Beam") then
part.Enabled = false
end
end
end
local function restoreCharacter(char)
if not char then return end
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") then part.Transparency = 0 part.CanCollide = true
elseif (part:IsA("Accessory") or part:IsA("Hat")) then
local h = part:FindFirstChild("Handle")
if h then h.Transparency = 0 end
elseif part:IsA("ParticleEmitter") or part:IsA("Trail") or part:IsA("Beam") then
part.Enabled = true
end
end
end
local function blockPlayer(name)
local target = findPlayer(name)
if not target then notify("Player not found: " .. tostring(name)) return end
if blockedPlayers[target] then notify("Already blocked: " .. target.Name) return end
local connections = {}
if target.Character then
hideCharacter(target.Character)
local dc = target.Character.DescendantAdded:Connect(function(desc)
task.wait()
if desc:IsA("BasePart") then desc.Transparency = 1 desc.CanCollide = false end
end)
table.insert(connections, dc)
end
local cc = target.CharacterAdded:Connect(function(char)
task.wait(0.1)
hideCharacter(char)
local dc = char.DescendantAdded:Connect(function(desc)
task.wait()
if desc:IsA("BasePart") then desc.Transparency = 1 desc.CanCollide = false end
end)
table.insert(connections, dc)
end)
table.insert(connections, cc)
blockedPlayers[target] = {connections = connections}
notify("Blocked: " .. target.Name)
end
local function unblockPlayer(name)
local target = findPlayer(name)
if not target or not blockedPlayers[target] then notify("Not blocked: " .. tostring(name)) return end
for _, conn in ipairs(blockedPlayers[target].connections) do
pcall(function() conn:Disconnect() end)
end
blockedPlayers[target] = nil
if target.Character then restoreCharacter(target.Character) end
notify("Unblocked: " .. target.Name)
end
local function setJumpPower(n)
if not n then notify("Invalid jump power") return end
local function apply(hum)
if not hum then return end
pcall(function()
hum.UseJumpPower = true
hum.JumpPower = n
if hum.JumpHeight ~= nil then hum.JumpHeight = math.max(0, n / 2) end
end)
end
local char = LocalPlayer.Character
if char then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then apply(hum) notify("JumpPower set to " .. tostring(n)) return end
end
local conn
conn = LocalPlayer.CharacterAdded:Connect(function(ch)
local hum = ch:WaitForChild("Humanoid", 5)
if hum then apply(hum) notify("JumpPower set to " .. tostring(n)) end
if conn then conn:Disconnect() conn = nil end
end)
end
local function back()
if not deathPosition then notify("No death position saved") return end
local char = LocalPlayer.Character
if not char then notify("No character") return end
local hrp = char:FindFirstChild("HumanoidRootPart")
if hrp then
hrp.CFrame = CFrame.new(deathPosition)
notify("Teleported to death location")
else notify("No HumanoidRootPart") end
end
local function die()
local char = LocalPlayer.Character
if not char then notify("No character") return end
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then hum.Health = 0 notify("You died.")
else notify("No Humanoid") end
end
local function fetchServers()
local placeId = game.PlaceId
local allServers = {}
local cursor = ""
local maxPages = 5
for page = 1, maxPages do
local url = "https://games.roblox.com/v1/games/" .. placeId .. "/servers/Public?sortOrder=Asc&limit=100"
if cursor and cursor ~= "" then url = url .. "&cursor=" .. cursor end
local success, result = pcall(function()
return HttpService:JSONDecode(game:HttpGet(url))
end)
if not success or not result or not result.data then break end
for _, server in ipairs(result.data) do table.insert(allServers, server) end
if result.nextPageCursor and result.nextPageCursor ~= "" then
cursor = result.nextPageCursor
else break end
end
return allServers
end
local function showServerHopGUI()
local existing = playerGui:FindFirstChild("ServerHopUI")
if existing then existing:Destroy() end
local gui = Instance.new("ScreenGui")
gui.Name = "ServerHopUI"
gui.ResetOnSpawn = false
gui.Parent = playerGui
local main = Instance.new("Frame")
main.Size = UDim2.new(0, 480, 0, 560)
main.Position = UDim2.new(0.5, -240, 0.5, -280)
main.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
main.BackgroundTransparency = 0.05
main.Active = true
main.Draggable = true
main.Parent = gui
Instance.new("UICorner", main).CornerRadius = UDim.new(0, 14)
local mainStroke = Instance.new("UIStroke", main)
mainStroke.Color = Color3.fromRGB(60, 60, 60)
mainStroke.Thickness = 1.5
local titleBar = Instance.new("Frame", main)
titleBar.Size = UDim2.new(1, 0, 0, 50)
titleBar.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
titleBar.BackgroundTransparency = 0.1
titleBar.BorderSizePixel = 0
Instance.new("UICorner", titleBar).CornerRadius = UDim.new(0, 14)
local titleFix = Instance.new("Frame", titleBar)
titleFix.Size = UDim2.new(1, 0, 0, 14)
titleFix.Position = UDim2.new(0, 0, 1, -14)
titleFix.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
titleFix.BackgroundTransparency = 0.1
titleFix.BorderSizePixel = 0
local titleLabel = Instance.new("TextLabel", titleBar)
titleLabel.Size = UDim2.new(1, -50, 1, 0)
titleLabel.Position = UDim2.new(0, 15, 0, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Server Browser"
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextSize = 20
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
local closeBtn = Instance.new("TextButton", titleBar)
closeBtn.Size = UDim2.new(0, 36, 0, 36)
closeBtn.Position = UDim2.new(1, -43, 0, 7)
closeBtn.BackgroundColor3 = Color3.fromRGB(180, 40, 40)
closeBtn.BackgroundTransparency = 0.3
closeBtn.Text = "x"
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 16
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 8)
closeBtn.MouseButton1Click:Connect(function() gui:Destroy() end)
local statusLabel = Instance.new("TextLabel", main)
statusLabel.Size = UDim2.new(1, -20, 0, 24)
statusLabel.Position = UDim2.new(0, 10, 0, 58)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = "Loading servers..."
statusLabel.Font = Enum.Font.GothamBold
statusLabel.TextSize = 14
statusLabel.TextColor3 = Color3.fromRGB(150, 150, 150)
statusLabel.TextXAlignment = Enum.TextXAlignment.Left
local scroll = Instance.new("ScrollingFrame", main)
scroll.Size = UDim2.new(1, -20, 1, -90)
scroll.Position = UDim2.new(0, 10, 0, 86)
scroll.BackgroundTransparency = 1
scroll.ScrollBarThickness = 5
scroll.ScrollBarImageColor3 = Color3.fromRGB(80, 80, 80)
scroll.CanvasSize = UDim2.new(0, 0, 0, 0)
local listLayout = Instance.new("UIListLayout", scroll)
listLayout.Padding = UDim.new(0, 6)
local serverCards = {}
local function createServerCard(server, index)
local currentId = game.JobId
local isCurrent = (server.id == currentId)
local playerCount = server.playing or 0
local maxPlayers = server.maxPlayers or 0
local isFull = (playerCount >= maxPlayers)
local fillPercent = maxPlayers > 0 and (playerCount / maxPlayers) or 0
local card = Instance.new("Frame", scroll)
card.Size = UDim2.new(1, -6, 0, 56)
card.BackgroundColor3 = isCurrent and Color3.fromRGB(35, 45, 35) or Color3.fromRGB(30, 30, 30)
card.BackgroundTransparency = 0.15
Instance.new("UICorner", card).CornerRadius = UDim.new(0, 10)
local cardStroke = Instance.new("UIStroke", card)
cardStroke.Color = isCurrent and Color3.fromRGB(0, 180, 80) or Color3.fromRGB(50, 50, 50)
cardStroke.Thickness = isCurrent and 1.5 or 1
local indexLabel = Instance.new("TextLabel", card)
indexLabel.Size = UDim2.new(0, 30, 1, 0)
indexLabel.Position = UDim2.new(0, 8, 0, 0)
indexLabel.BackgroundTransparency = 1
indexLabel.Text = "#" .. tostring(index)
indexLabel.Font = Enum.Font.GothamBold
indexLabel.TextSize = 13
indexLabel.TextColor3 = Color3.fromRGB(100, 100, 100)
local playerLabel = Instance.new("TextLabel", card)
playerLabel.Size = UDim2.new(0, 120, 0, 20)
playerLabel.Position = UDim2.new(0, 44, 0, 8)
playerLabel.BackgroundTransparency = 1
playerLabel.Text = tostring(playerCount) .. " / " .. tostring(maxPlayers) .. " players"
playerLabel.Font = Enum.Font.GothamBold
playerLabel.TextSize = 14
playerLabel.TextColor3 = Color3.fromRGB(230, 230, 230)
playerLabel.TextXAlignment = Enum.TextXAlignment.Left
local barBG = Instance.new("Frame", card)
barBG.Size = UDim2.new(0, 140, 0, 6)
barBG.Position = UDim2.new(0, 44, 0, 32)
barBG.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
Instance.new("UICorner", barBG).CornerRadius = UDim.new(0, 3)
local barColor = fillPercent < 0.5 and Color3.fromRGB(0, 200, 100)
or fillPercent < 0.8 and Color3.fromRGB(255, 180, 0)
or Color3.fromRGB(220, 50, 50)
local barFill = Instance.new("Frame", barBG)
barFill.Size = UDim2.new(math.min(fillPercent, 1), 0, 1, 0)
barFill.BackgroundColor3 = barColor
Instance.new("UICorner", barFill).CornerRadius = UDim.new(0, 3)
local joinBtn = Instance.new("TextButton", card)
joinBtn.Size = UDim2.new(0, 80, 0, 32)
joinBtn.Position = UDim2.new(1, -90, 0.5, -16)
joinBtn.Font = Enum.Font.GothamBold
joinBtn.TextSize = 14
Instance.new("UICorner", joinBtn).CornerRadius = UDim.new(0, 8)
if isCurrent then
joinBtn.Text = "Current"
joinBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
joinBtn.TextColor3 = Color3.fromRGB(120, 120, 120)
joinBtn.Active = false
elseif isFull then
joinBtn.Text = "Full"
joinBtn.BackgroundColor3 = Color3.fromRGB(80, 30, 30)
joinBtn.TextColor3 = Color3.fromRGB(180, 80, 80)
joinBtn.Active = false
else
joinBtn.Text = "Join"
joinBtn.BackgroundColor3 = Color3.fromRGB(0, 140, 255)
joinBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
joinBtn.MouseEnter:Connect(function() smoothTween(joinBtn, 0.2, {BackgroundColor3 = Color3.fromRGB(0, 170, 255)}) end)
joinBtn.MouseLeave:Connect(function() smoothTween(joinBtn, 0.2, {BackgroundColor3 = Color3.fromRGB(0, 140, 255)}) end)
joinBtn.MouseButton1Click:Connect(function()
joinBtn.Text = "Joining..."
joinBtn.BackgroundColor3 = Color3.fromRGB(0, 100, 180)
notify("Joining server...")
pcall(function()
TeleportService:TeleportToPlaceInstance(game.PlaceId, server.id, LocalPlayer)
end)
end)
end
return card
end
task.spawn(function()
local allServers = fetchServers()
if #allServers == 0 then
statusLabel.Text = "Failed to fetch servers."
statusLabel.TextColor3 = Color3.fromRGB(255, 80, 80)
return
end
statusLabel.Text = tostring(#allServers) .. " servers found"
statusLabel.TextColor3 = Color3.fromRGB(0, 220, 150)
for i, server in ipairs(allServers) do
local card = createServerCard(server, i)
table.insert(serverCards, card)
end
task.wait(0.05)
scroll.CanvasSize = UDim2.new(0, 0, 0, listLayout.AbsoluteContentSize.Y + 10)
end)
end
local function showCommandsGUI()
local existing = playerGui:FindFirstChild("CmdsUI")
if existing then existing:Destroy() end
local gui = Instance.new("ScreenGui")
gui.Name = "CmdsUI"
gui.ResetOnSpawn = false
gui.Parent = playerGui
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 380, 0, 520)
frame.Position = UDim2.new(0.5, -190, 0.5, -260)
frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
frame.BackgroundTransparency = 0.15
frame.Active = true
frame.Draggable = true
frame.Parent = gui
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 12)
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 40)
title.BackgroundTransparency = 1
title.Text = "🛠 Client Admin Commands 🛠"
title.Font = Enum.Font.GothamBold
title.TextSize = 18
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Parent = frame
local closeBtn = Instance.new("TextButton")
closeBtn.Text = "✖"
closeBtn.Size = UDim2.new(0, 30, 0, 30)
closeBtn.Position = UDim2.new(1, -35, 0, 5)
closeBtn.BackgroundTransparency = 1
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 16
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.Parent = frame
closeBtn.MouseButton1Click:Connect(function() gui:Destroy() end)
local scroll = Instance.new("ScrollingFrame")
scroll.Size = UDim2.new(1, -20, 1, -60)
scroll.Position = UDim2.new(0, 10, 0, 50)
scroll.BackgroundTransparency = 1
scroll.ScrollBarThickness = 6
scroll.Parent = frame
local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 6)
layout.Parent = scroll
local commands = {
{"!fly [speed] / !unfly", "Toggle flying (hover for info)"},
{"!noclip / !unnoclip", "Toggle noclip"},
{"!infinitejump / !uninfinitejump", "Toggle infinite jump"},
{"!spin {speed} / !unspin", "Spin character (degrees/sec)"},
{"!esp / !unesp", "Toggle ESP (outline only)"},
{"!godmode / !ungodmode", "Toggle invincibility"},
{"!fullbright / !unfullbright", "Toggle fullbright"},
{"!speed {speed}", "Set WalkSpeed"},
{"!jump {power}", "Set JumpPower"},
{"!thru", "Teleport through a wall in front of you"},
{"!tp {player}", "Teleport to a player"},
{"!block {player} / !unblock {player}", "Block / Unblock a player"},
{"!fling", "Open Fling Manager GUI"},
{"!serverhop", "Open server browser GUI"},
{"!back", "Teleport to where you last died"},
{"!die", "Kill yourself instantly"},
{"!cmd / !help / !menu", "Open this GUI"},
}
for _, cmdInfo in ipairs(commands) do
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(1, -10, 0, 26)
lbl.BackgroundTransparency = 1
lbl.Font = Enum.Font.Gotham
lbl.TextSize = 15
lbl.TextColor3 = Color3.fromRGB(200, 200, 200)
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Text = cmdInfo[1]
lbl.Parent = scroll
lbl.MouseEnter:Connect(function()
lbl.TextColor3 = Color3.fromRGB(255, 255, 255)
lbl.Text = cmdInfo[1] .. " — " .. cmdInfo[2]
end)
lbl.MouseLeave:Connect(function()
lbl.TextColor3 = Color3.fromRGB(200, 200, 200)
lbl.Text = cmdInfo[1]
end)
end
task.wait(0.05)
scroll.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y + 10)
end
local function hookDeathTracking(char)
local hum = char:WaitForChild("Humanoid", 5)
if not hum then return end
hum.Died:Connect(function()
local hrp = char:FindFirstChild("HumanoidRootPart")
if hrp then
deathPosition = hrp.Position
notify("Death position saved. Use !back to return.")
end
end)
end
if LocalPlayer.Character then task.spawn(hookDeathTracking, LocalPlayer.Character) end
LocalPlayer.CharacterAdded:Connect(hookDeathTracking)
UIS.JumpRequest:Connect(function()
if infiniteJump then
local char = LocalPlayer.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
if hum then pcall(function() hum:ChangeState(Enum.HumanoidStateType.Jumping) end) end
end
end)
local function handleCommand(msg)
if type(msg) ~= "string" then return end
if msg:sub(1, #prefix) ~= prefix then return end
local body = msg:sub(#prefix + 1)
local args = {}
for w in body:gmatch("%S+") do table.insert(args, w) end
local cmd = args[1] and string.lower(args[1]) or ""
if cmd == "" then return end
if cmd == "fly" then
local newSpeed = tonumber(args[2])
if newSpeed then
flySpeed = newSpeed
if flying then
notify("Fly speed updated to " .. tostring(flySpeed))
else
startFly()
end
else
startFly()
end
elseif cmd == "unfly" then
stopFly()
elseif cmd == "noclip" then startNoclip()
elseif cmd == "unnoclip" then stopNoclip()
elseif cmd == "infinitejump" then infiniteJump = true notify("Infinite Jump enabled")
elseif cmd == "uninfinitejump" then infiniteJump = false notify("Infinite Jump disabled")
elseif cmd == "spin" then startSpin(tonumber(args[2]) or spinSpeed)
elseif cmd == "unspin" then stopSpin()
elseif cmd == "esp" then enableESP()
elseif cmd == "unesp" then disableESP()
elseif cmd == "godmode" then startGodMode()
elseif cmd == "ungodmode" then stopGodMode()
elseif cmd == "fullbright" then enableFullbright()
elseif cmd == "unfullbright" then disableFullbright()
elseif cmd == "walk" or cmd == "speed" then
local n = tonumber(args[2])
if n then
local char = LocalPlayer.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
if hum then hum.WalkSpeed = n notify("WalkSpeed set to " .. n)
else notify("No Humanoid found") end
else notify("Usage: !" .. cmd .. " <number>") end
elseif cmd == "jump" then
local n = tonumber(args[2])
if n then setJumpPower(n) else notify("Usage: !jump <number>") end
elseif cmd == "thru" then thru()
elseif cmd == "tp" then
if args[2] then tpToPlayer(args[2]) else notify("Usage: !tp <player>") end
elseif cmd == "block" then
if args[2] then blockPlayer(args[2]) else notify("Usage: !block <player>") end
elseif cmd == "unblock" then
if args[2] then unblockPlayer(args[2]) else notify("Usage: !unblock <player>") end
elseif cmd == "fling" then showFlingGUI()
elseif cmd == "serverhop" then showServerHopGUI()
elseif cmd == "back" then back()
elseif cmd == "die" then die()
elseif cmd == "cmd" or cmd == "help" or cmd == "menu" then showCommandsGUI()
else notify("Unknown command: " .. cmd) end
end
local usingNewChat = false
if TextChatService and TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then
pcall(function()
TextChatService.OnIncomingMessage = function(message)
if message.TextSource and message.TextSource.UserId == LocalPlayer.UserId then
handleCommand(message.Text)
end
end
usingNewChat = true
end)
end
if not usingNewChat then
LocalPlayer.Chatted:Connect(handleCommand)
end
notify("Client Admin V1.2 Loaded. Type !cmd for commands.")



Check back every week to stay tuned for any updates!
New update fixed stability issues and revamped some of the things such as serverhop
@Pack_Script_Guy yes it should