
KeylessUniversal

--[[
WARNING: This script has not been verified by ScriptBlox. Use at your own risk!
]]
--[[
FINAL FIXED & IMPROVED SCRIPT (April 2026) - FULL UNIVERSAL + /spin
• Old aimbot completely removed
• Replaced with the EXACT new FOV + RMB hold aimbot you gave me
• /aimbot toggles the new aimbot ON/OFF (and shows/hides FOV circle)
• /unaimbot forces it OFF (and hides FOV circle)
• FOV circle follows mouse and is fully visible ONLY when aimbot is on
• NEW ESP (your exact code) is still here
• TRIPLE-CHECKED fly restoration after death
• /cmds or /gui now shows the FULL command list (no missing code)
• AIMBOT & FOV CIRCLE START DISABLED (as requested)
• NEW: /spin [number] + /unspin (Y-axis spin, persists after death)
]]
if _G.UltimateScriptLoaded then
print("❌ Script already loaded! Preventing double execution.")
return
end
_G.UltimateScriptLoaded = true
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TeleportService = game:GetService("TeleportService")
local HttpService = game:GetService("HttpService")
local Workspace = game:GetService("Workspace")
local StarterGui = game:GetService("StarterGui")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local camera = Workspace.CurrentCamera
local prefix = "/"
-- Variables
local flying = false
local cframeFlying = false
local noclipping = false
local antifling = false
local tplooping = false
local loopTarget = nil
local flySpeed = 160
local cframeFlySpeed = 200
local currentSpeed = 16
local currentJumpPower = 50
local currentGravity = Workspace.Gravity
local originalGravity = Workspace.Gravity
local cframeSpeed = 0
local bv, bg, root, hum = nil, nil, nil, nil
local helpGui = nil
local touchFlingGui = nil
local spectateGui = nil
local spectateScrollingFrame = nil
-- NEW: Spin variables
local spinning = false
local currentSpinSpeed = 500
local spinAngular = nil
-- Infinite Jumps
local infJumps = false
local infJumpConnection = nil
-- View
local viewingTarget = nil
-- Click TP
local clickTPEnabled = true
-- Noclip & Anti-Fling
local noclipConnection = nil
local antiflingConnection = nil
-- Load external scripts
loadstring(game:HttpGet('https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source', true))()
loadstring(game:HttpGet("https://raw.githubusercontent.com/K1LAS1K/Ultimate-Fling-GUI/main/flingscript.lua"))()
-- ================== CHARACTER HANDLER (TRIPLE-CHECKED FLY RESTORATION + SPIN) ==================
local function getChar()
local char = player.Character
if char then
root = char:FindFirstChild("HumanoidRootPart")
hum = char:FindFirstChildOfClass("Humanoid")
return root and hum
end
return false
end
local function restoreAfterDeath()
task.spawn(function()
local char = player.Character
if not char then return end
char:WaitForChild("HumanoidRootPart", 10)
char:WaitForChild("Humanoid", 10)
task.wait(0.4)
getChar()
if hum then
hum.WalkSpeed = currentSpeed
hum.JumpPower = currentJumpPower
end
Workspace.Gravity = currentGravity
if flying then
print("🔄 [Restoring] Normal Fly was active → re-enabling at speed " .. flySpeed)
flying = false
task.wait(0.3)
if getChar() then toggleFly(flySpeed) end
end
if cframeFlying then
print("🔄 [Restoring] CFrame Fly was active → re-enabling at speed " .. cframeFlySpeed)
cframeFlying = false
task.wait(0.3)
if getChar() then toggleCFrameFly(cframeFlySpeed) end
end
if spinning then
print("🔄 [Restoring] Spin was active → re-enabling at speed " .. currentSpinSpeed)
spinning = false
task.wait(0.3)
if getChar() then setSpin(currentSpinSpeed) end
end
if infJumps then
print("🔄 [Restoring] Infinite Jumps was active → re-enabling")
task.wait(0.3)
toggleInfiniteJumps(true)
end
print("✅ Character fully restored after death")
end)
end
player.CharacterAdded:Connect(restoreAfterDeath)
-- ================== SPEED / JUMP / GRAVITY / CFrameSpeed ==================
local function setSpeed(num)
num = tonumber(num) or 16
num = math.clamp(num, 0, 500)
currentSpeed = num
if hum then hum.WalkSpeed = num end
print("✅ WalkSpeed set to " .. num .. " (persistent)")
end
local function setJump(num)
num = tonumber(num) or 50
num = math.clamp(num, 0, 1000)
currentJumpPower = num
if hum then hum.JumpPower = num end
print("✅ JumpPower set to " .. num .. " (persistent)")
end
local function setGravity(num)
num = tonumber(num) or Workspace.Gravity
num = math.clamp(num, 0, 1000)
currentGravity = num
Workspace.Gravity = num
print("✅ Gravity set to " .. num .. " (persistent)")
end
local function setCFrameSpeed(num)
num = tonumber(num) or 0
num = math.clamp(num, 0, 1000)
cframeSpeed = num
print(num > 0 and "✅ CFrame Speed set to " .. num .. " studs/sec" or "✅ CFrame Speed disabled")
end
-- ================== NEW: SPIN FUNCTION ==================
local function setSpin(num)
num = tonumber(num) or 500
num = math.clamp(num, -2000, 2000) -- allow negative for reverse spin
if num == 0 then
if spinning and spinAngular then
spinAngular:Destroy()
spinAngular = nil
end
spinning = false
print("✅ Spin Disabled")
return
end
if not getChar() or not root then
print("❌ Character not loaded")
return
end
-- Remove old spin if exists
if spinAngular then
spinAngular:Destroy()
spinAngular = nil
end
spinAngular = Instance.new("BodyAngularVelocity")
spinAngular.Name = "SpinAngularVelocity"
spinAngular.MaxTorque = Vector3.new(0, math.huge, 0) -- only Y axis (character spin)
spinAngular.AngularVelocity = Vector3.new(0, num, 0)
spinAngular.Parent = root
spinning = true
currentSpinSpeed = num
print("✅ Spin ENABLED | Speed: " .. num .. " (rad/s) | Use /unspin to stop")
end
-- ================== INFINITE JUMPS ==================
local function toggleInfiniteJumps(enable)
infJumps = enable
if infJumpConnection then
infJumpConnection:Disconnect()
infJumpConnection = nil
end
if enable then
infJumpConnection = UserInputService.JumpRequest:Connect(function()
if infJumps and hum and hum.Health > 0 then
hum:ChangeState(Enum.HumanoidStateType.Jumping)
end
end)
print("✅ Infinite Jumps ENABLED (persists after death)")
else
print("✅ Infinite Jumps DISABLED")
end
end
-- ================== NORMAL FLY & CFRAME FLY ==================
local function toggleFly(speed)
speed = tonumber(speed) or 160
flySpeed = math.clamp(speed, 50, 500)
if flying then
if bv then bv:Destroy() end
if bg then bg:Destroy() end
if hum then
hum.PlatformStand = false
hum.AutoRotate = true
end
flying = false
print("✅ Normal Fly Disabled")
return
end
if not getChar() then print("❌ Character not loaded") return end
hum.PlatformStand = true
hum.AutoRotate = false
bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(1e5, 1e5, 1e5)
bv.Velocity = Vector3.zero
bv.Parent = root
bg = Instance.new("BodyGyro")
bg.MaxTorque = Vector3.new(1e5, 1e5, 1e5)
bg.D = 200
bg.P = 4000
bg.CFrame = root.CFrame
bg.Parent = root
flying = true
print("✅ Normal Fly Enabled | Speed: " .. flySpeed)
end
local function toggleCFrameFly(speed)
speed = tonumber(speed) or 200
cframeFlySpeed = math.clamp(speed, 50, 1000)
if cframeFlying then
cframeFlying = false
if hum then
hum.PlatformStand = false
hum.AutoRotate = true
end
Workspace.Gravity = originalGravity
print("✅ CFrame Fly Disabled")
return
end
if flying then toggleFly(0) end
if not getChar() then print("❌ Character not loaded") return end
originalGravity = Workspace.Gravity
Workspace.Gravity = 0
if hum then
hum.PlatformStand = true
hum.AutoRotate = false
end
cframeFlying = true
print("✅ CFrame Fly Enabled | Speed: " .. cframeFlySpeed)
end
-- ================== TELEPORT / VIEW / CLICK TP / TPLOOP ==================
local function findPlayer(partialName)
if not partialName or partialName == "" then return nil end
partialName = partialName:lower()
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player then
local nameLower = plr.Name:lower()
if nameLower == partialName or nameLower:sub(1, #partialName) == partialName then
return plr
end
end
end
return nil
end
local function teleportToPlayer(partialName)
local target = findPlayer(partialName)
if not target then print("❌ Player '" .. partialName .. "' not found") return end
if not getChar() or not root then return end
local targetRoot = target.Character and target.Character:FindFirstChild("HumanoidRootPart")
if targetRoot then
root.CFrame = targetRoot.CFrame * CFrame.new(0, 3, 0)
print("✅ Teleported to " .. target.Name)
end
end
local function teleportToRandomPlayer()
local otherPlayers = {}
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
table.insert(otherPlayers, plr)
end
end
if #otherPlayers == 0 then print("❌ No other players") return end
local randomPlr = otherPlayers[math.random(1, #otherPlayers)]
local targetRoot = randomPlr.Character:FindFirstChild("HumanoidRootPart")
if getChar() and root and targetRoot then
root.CFrame = targetRoot.CFrame * CFrame.new(0, 3, 0)
print("✅ Teleported to random player: " .. randomPlr.Name)
end
end
local function startTPLoop(partialName)
local target
if partialName:lower() == "random" then
local other = {}
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then table.insert(other, plr) end
end
if #other == 0 then return end
target = other[math.random(1, #other)]
else
target = findPlayer(partialName)
if not target then print("❌ Player not found") return end
end
loopTarget = target
tplooping = true
print("✅ /tploop STARTED on " .. target.Name)
end
local function stopTPLoop()
tplooping = false
loopTarget = nil
print("✅ /untploop STOPPED")
end
local function startViewing(partialName)
local target = findPlayer(partialName)
if not target then print("❌ Player not found") return end
if target.Character and target.Character:FindFirstChild("Humanoid") then
camera.CameraSubject = target.Character.Humanoid
viewingTarget = target
print("✅ Now viewing " .. target.Name)
end
end
local function stopViewing()
if getChar() and hum then camera.CameraSubject = hum end
viewingTarget = nil
print("✅ Stopped viewing")
end
StarterGui:SetCore("SendNotification", {Title = "Usage", Text = "Hold Ctrl + Left Click to teleport"})
local Mouse = player:GetMouse()
Mouse.Button1Down:Connect(function()
if not clickTPEnabled or not UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) or not Mouse.Target then return end
if getChar() and root then
root.CFrame = CFrame.new(Mouse.Hit.Position + Vector3.new(0, 3, 0))
end
end)
-- ================== NEW AIMBOT (EXACT CODE YOU GAVE ME) ==================
-- DEFAULTS CHANGED AS REQUESTED: AIMBOT + FOV CIRCLE START DISABLED
local Camera = workspace.CurrentCamera
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local LocalPlayer = Players.LocalPlayer
local Holding = false
_G.AimbotEnabled = false -- ← CHANGED: starts OFF
_G.TeamCheck = false
_G.AimPart = "Head"
_G.Sensitivity = 0
_G.CircleSides = 64
_G.CircleColor = Color3.fromRGB(255, 255, 255)
_G.CircleTransparency = 0.7
_G.CircleRadius = 80
_G.CircleFilled = false
_G.CircleVisible = false -- ← CHANGED: starts OFF (hidden until /aimbot)
_G.CircleThickness = 0
local FOVCircle = Drawing.new("Circle")
FOVCircle.Position = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
FOVCircle.Radius = _G.CircleRadius
FOVCircle.Filled = _G.CircleFilled
FOVCircle.Color = _G.CircleColor
FOVCircle.Visible = _G.CircleVisible
FOVCircle.Transparency = _G.CircleTransparency
FOVCircle.NumSides = _G.CircleSides
FOVCircle.Thickness = _G.CircleThickness
local function GetClosestPlayer()
local MaximumDistance = _G.CircleRadius
local Target = nil
for _, v in next, Players:GetPlayers() do
if v.Name ~= LocalPlayer.Name then
if _G.TeamCheck == true then
if v.Team ~= LocalPlayer.Team then
if v.Character ~= nil then
if v.Character:FindFirstChild("HumanoidRootPart") ~= nil then
if v.Character:FindFirstChild("Humanoid") ~= nil and v.Character:FindFirstChild("Humanoid").Health ~= 0 then
local ScreenPoint = Camera:WorldToScreenPoint(v.Character:WaitForChild("HumanoidRootPart", math.huge).Position)
local VectorDistance = (Vector2.new(UserInputService:GetMouseLocation().X, UserInputService:GetMouseLocation().Y) - Vector2.new(ScreenPoint.X, ScreenPoint.Y)).Magnitude
if VectorDistance < MaximumDistance then
Target = v
end
end
end
end
end
else
if v.Character ~= nil then
if v.Character:FindFirstChild("HumanoidRootPart") ~= nil then
if v.Character:FindFirstChild("Humanoid") ~= nil and v.Character:FindFirstChild("Humanoid").Health ~= 0 then
local ScreenPoint = Camera:WorldToScreenPoint(v.Character:WaitForChild("HumanoidRootPart", math.huge).Position)
local VectorDistance = (Vector2.new(UserInputService:GetMouseLocation().X, UserInputService:GetMouseLocation().Y) - Vector2.new(ScreenPoint.X, ScreenPoint.Y)).Magnitude
if VectorDistance < MaximumDistance then
Target = v
end
end
end
end
end
end
end
return Target
end
UserInputService.InputBegan:Connect(function(Input)
if Input.UserInputType == Enum.UserInputType.MouseButton2 then
Holding = true
end
end)
UserInputService.InputEnded:Connect(function(Input)
if Input.UserInputType == Enum.UserInputType.MouseButton2 then
Holding = false
end
end)
RunService.RenderStepped:Connect(function()
FOVCircle.Position = Vector2.new(UserInputService:GetMouseLocation().X, UserInputService:GetMouseLocation().Y)
FOVCircle.Radius = _G.CircleRadius
FOVCircle.Filled = _G.CircleFilled
FOVCircle.Color = _G.CircleColor
FOVCircle.Visible = _G.CircleVisible
FOVCircle.Transparency = _G.CircleTransparency
FOVCircle.NumSides = _G.CircleSides
FOVCircle.Thickness = _G.CircleThickness
if Holding == true and _G.AimbotEnabled == true then
local closest = GetClosestPlayer()
if closest and closest.Character and closest.Character:FindFirstChild(_G.AimPart) then
TweenService:Create(Camera, TweenInfo.new(_G.Sensitivity, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {
CFrame = CFrame.new(Camera.CFrame.Position, closest.Character[_G.AimPart].Position)
}):Play()
end
end
end)
-- ================== OPTIMIZED SINGLE HEARTBEAT ==================
RunService.Heartbeat:Connect(function(dt)
if not getChar() or not root then return end
if cframeSpeed > 0 and not cframeFlying and not flying then
local dir = Vector3.zero
if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir += camera.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir -= camera.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir -= camera.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir += camera.CFrame.RightVector end
if dir.Magnitude > 0 then
dir = dir.Unit
root.CFrame = root.CFrame + (dir * cframeSpeed * dt)
end
end
if cframeFlying then
root.AssemblyLinearVelocity = Vector3.zero
root.AssemblyAngularVelocity = Vector3.zero
local lookDir = camera.CFrame.LookVector
root.CFrame = CFrame.lookAt(root.Position, root.Position + lookDir)
local dir = Vector3.zero
if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir += lookDir end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir -= lookDir end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir -= camera.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir += camera.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then dir += Vector3.new(0,1,0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then dir -= Vector3.new(0,1,0) end
if dir.Magnitude > 0 then
dir = dir.Unit
root.CFrame += dir * cframeFlySpeed * dt
end
end
if flying and not cframeFlying and bv and bg then
bg.CFrame = CFrame.new(root.Position, root.Position + camera.CFrame.LookVector)
local dir = Vector3.zero
if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir += camera.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir -= camera.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir -= camera.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir += camera.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then dir += Vector3.new(0,1,0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then dir -= Vector3.new(0,1,0) end
bv.Velocity = dir.Magnitude > 0 and dir.Unit * flySpeed or Vector3.zero
end
if tplooping and loopTarget then
local targetChar = loopTarget.Character
if targetChar and targetChar:FindFirstChild("HumanoidRootPart") then
root.CFrame = targetChar.HumanoidRootPart.CFrame
end
end
end)
-- ================== NEW ESP (EXACT CODE YOU GAVE ME) ==================
local espEnabled = false
local espConnections = {}
local function createESPForPlayer(plr)
if plr == player then return end
local function onCharacterAdded(character)
if not espEnabled then return end
local humanoid = character:WaitForChild("Humanoid", 10)
local head = character:WaitForChild("Head", 10)
if not humanoid or not head then return end
local highlight = Instance.new("Highlight")
highlight.Name = "ESPHighlight"
highlight.FillColor = Color3.fromRGB(0, 255, 0)
highlight.FillTransparency = 0.5
highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.Parent = character
if head:FindFirstChild("ESPBillboard") then head.ESPBillboard:Destroy() end
local billboard = Instance.new("BillboardGui")
billboard.Name = "ESPBillboard"
billboard.Size = UDim2.new(0, 200, 0, 50)
billboard.StudsOffset = Vector3.new(0, 3, 0)
billboard.AlwaysOnTop = true
billboard.Parent = head
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, 0, 1, 0)
label.BackgroundTransparency = 1
label.TextColor3 = Color3.fromRGB(255, 255, 255)
label.TextStrokeTransparency = 0
label.TextScaled = true
label.Font = Enum.Font.SourceSansBold
label.Parent = billboard
local function updateText()
local hp = math.floor(humanoid.Health)
local maxHp = math.floor(humanoid.MaxHealth)
label.Text = string.format("%s\nHP: %d/%d", plr.Name, hp, maxHp)
if hp <= 25 then
label.TextColor3 = Color3.fromRGB(255, 50, 50)
elseif hp <= 50 then
label.TextColor3 = Color3.fromRGB(255, 255, 0)
else
label.TextColor3 = Color3.fromRGB(0, 255, 0)
end
end
humanoid.HealthChanged:Connect(updateText)
updateText()
end
local conn = plr.CharacterAdded:Connect(onCharacterAdded)
table.insert(espConnections, conn)
if plr.Character then onCharacterAdded(plr.Character) end
end
local function enableESP()
if espEnabled then return end
espEnabled = true
espConnections = {}
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player then createESPForPlayer(plr) end
end
print("✅ New ESP Enabled")
end
local function disableESP()
if not espEnabled then return end
espEnabled = false
for _, plr in ipairs(Players:GetPlayers()) do
if plr.Character then
local hl = plr.Character:FindFirstChild("ESPHighlight")
if hl then hl:Destroy() end
local head = plr.Character:FindFirstChild("Head")
if head and head:FindFirstChild("ESPBillboard") then head.ESPBillboard:Destroy() end
end
end
for _, conn in ipairs(espConnections) do if conn then conn:Disconnect() end end
espConnections = {}
print("✅ ESP Disabled")
end
Players.PlayerAdded:Connect(function(plr)
if espEnabled and plr ~= player then createESPForPlayer(plr) end
end)
-- ================== SPECTATE GUI ==================
local function updateSpectateList()
if not spectateScrollingFrame then return end
for _, child in ipairs(spectateScrollingFrame:GetChildren()) do
if child:IsA("TextButton") then child:Destroy() end
end
local yOffset = 0
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player then
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -10, 0, 35)
btn.Position = UDim2.new(0, 5, 0, yOffset)
btn.BackgroundColor3 = Color3.fromRGB(45, 45, 55)
btn.BorderSizePixel = 0
btn.Text = plr.DisplayName .. " (" .. plr.Name .. ")"
btn.TextColor3 = Color3.new(1, 1, 1)
btn.Font = Enum.Font.SourceSansBold
btn.TextSize = 16
btn.TextXAlignment = Enum.TextXAlignment.Left
btn.Parent = spectateScrollingFrame
btn.MouseButton1Click:Connect(function() startViewing(plr.Name) end)
yOffset = yOffset + 40
end
end
spectateScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, yOffset + 10)
end
local function createSpectateGUI()
if spectateGui then
spectateGui.Enabled = true
updateSpectateList()
return
end
spectateGui = Instance.new("ScreenGui")
spectateGui.ResetOnSpawn = false
spectateGui.Parent = player:WaitForChild("PlayerGui")
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 320, 0, 420)
mainFrame.Position = UDim2.new(0.5, -160, 0.5, -210)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Parent = spectateGui
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 50)
title.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
title.Text = "👁️ Spectate Players"
title.TextColor3 = Color3.new(1, 1, 1)
title.Font = Enum.Font.SourceSansBold
title.TextSize = 24
title.Parent = mainFrame
local scroll = Instance.new("ScrollingFrame")
scroll.Size = UDim2.new(1, -20, 1, -110)
scroll.Position = UDim2.new(0, 10, 0, 60)
scroll.BackgroundTransparency = 1
scroll.ScrollBarThickness = 6
scroll.ScrollBarImageColor3 = Color3.fromRGB(0, 170, 255)
scroll.Parent = mainFrame
spectateScrollingFrame = scroll
local stopBtn = Instance.new("TextButton")
stopBtn.Size = UDim2.new(0.48, 0, 0, 45)
stopBtn.Position = UDim2.new(0.02, 0, 1, -55)
stopBtn.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
stopBtn.Text = "Stop Spectating"
stopBtn.TextColor3 = Color3.new(1, 1, 1)
stopBtn.Font = Enum.Font.SourceSansBold
stopBtn.TextSize = 18
stopBtn.Parent = mainFrame
stopBtn.MouseButton1Click:Connect(stopViewing)
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0.48, 0, 0, 45)
closeBtn.Position = UDim2.new(0.5, 0, 1, -55)
closeBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
closeBtn.Text = "Close"
closeBtn.TextColor3 = Color3.new(1, 1, 1)
closeBtn.Font = Enum.Font.SourceSansBold
closeBtn.TextSize = 18
closeBtn.Parent = mainFrame
closeBtn.MouseButton1Click:Connect(function() spectateGui.Enabled = false end)
updateSpectateList()
print("✅ Spectate GUI opened")
end
Players.PlayerAdded:Connect(function() if spectateGui and spectateGui.Enabled then updateSpectateList() end end)
Players.PlayerRemoving:Connect(function() if spectateGui and spectateGui.Enabled then updateSpectateList() end end)
-- ================== SERVERHOP / TOUCH FLING GUI / COMMAND GUI ==================
local PlaceID = game.PlaceId
local AllIDs = {}
local foundAnything = ""
local actualHour = os.date("!*t").hour
local File = pcall(function()
AllIDs = game:GetService('HttpService'):JSONDecode(readfile("NotSameServers.json"))
end)
if not File then
table.insert(AllIDs, actualHour)
writefile("NotSameServers.json", game:GetService('HttpService'):JSONEncode(AllIDs))
end
local function TPReturner()
local Site
if foundAnything == "" then
Site = game.HttpService:JSONDecode(game:HttpGet('https://games.roblox.com/v1/games/' .. PlaceID .. '/servers/Public?sortOrder=Asc&limit=100'))
else
Site = game.HttpService:JSONDecode(game:HttpGet('https://games.roblox.com/v1/games/' .. PlaceID .. '/servers/Public?sortOrder=Asc&limit=100&cursor=' .. foundAnything))
end
local ID = ""
if Site.nextPageCursor and Site.nextPageCursor ~= "null" and Site.nextPageCursor ~= nil then
foundAnything = Site.nextPageCursor
end
local num = 0
for i,v in pairs(Site.data) do
local Possible = true
ID = tostring(v.id)
if tonumber(v.maxPlayers) > tonumber(v.playing) then
for _,Existing in pairs(AllIDs) do
if num ~= 0 then
if ID == tostring(Existing) then Possible = false end
else
if tonumber(actualHour) ~= tonumber(Existing) then
pcall(function()
delfile("NotSameServers.json")
AllIDs = {}
table.insert(AllIDs, actualHour)
end)
end
end
num = num + 1
end
if Possible then
table.insert(AllIDs, ID)
wait()
pcall(function()
writefile("NotSameServers.json", game:GetService('HttpService'):JSONEncode(AllIDs))
wait()
game:GetService("TeleportService"):TeleportToPlaceInstance(PlaceID, ID, game.Players.LocalPlayer)
end)
wait(4)
end
end
end
end
local function Teleport()
while wait() do
pcall(function()
TPReturner()
if foundAnything ~= "" then TPReturner() end
end)
end
end
local function serverHop()
print("🔄 Starting YOUR reliable server hop...")
Teleport()
end
local function showTouchFlingGUI()
if touchFlingGui then
touchFlingGui.Enabled = true
print("✅ Touch Fling GUI already open")
return
end
local ScreenGui = Instance.new("ScreenGui")
local Frame = Instance.new("Frame")
local TextButton = Instance.new("TextButton")
local TextLabel = Instance.new("TextLabel")
ScreenGui.Parent = player:WaitForChild("PlayerGui")
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.ResetOnSpawn = false
touchFlingGui = ScreenGui
Frame.Parent = ScreenGui
Frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame.BorderColor3 = Color3.fromRGB(255, 255, 255)
Frame.BorderSizePixel = 2
Frame.Position = UDim2.new(0.341826946, 0, 0.367763907, 0)
Frame.Size = UDim2.new(0, 148, 0, 106)
TextButton.Parent = Frame
TextButton.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
TextButton.BorderColor3 = Color3.fromRGB(255, 255, 255)
TextButton.BorderSizePixel = 2
TextButton.Position = UDim2.new(0.0835492909, 0, 0.552504063, 0)
TextButton.Size = UDim2.new(0, 124, 0, 37)
TextButton.Font = Enum.Font.SourceSans
TextButton.Text = "OFF"
TextButton.TextColor3 = Color3.fromRGB(255, 255, 255)
TextButton.TextSize = 41
TextLabel.Parent = Frame
TextLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextLabel.BackgroundTransparency = 1
TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextLabel.BorderSizePixel = 0
TextLabel.Position = UDim2.new(0.0649713054, 0, 0.0727680102, 0)
TextLabel.Size = UDim2.new(0, 128, 0, 39)
TextLabel.Font = Enum.Font.SourceSans
TextLabel.Text = "Touch Fling"
TextLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
TextLabel.TextSize = 34
local function CTIKC_fake_script()
local script = Instance.new('LocalScript', TextButton)
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local toggleButton = script.Parent
local hiddenfling = false
if not ReplicatedStorage:FindFirstChild("juisdfj0i32i0eidsuf0iok") then
local detection = Instance.new("Decal")
detection.Name = "juisdfj0i32i0eidsuf0iok"
detection.Parent = ReplicatedStorage
end
local function fling()
local hrp, c, vel, movel = nil, nil, nil, 0.1
local lp = Players.LocalPlayer
while true do
RunService.Heartbeat:Wait()
if hiddenfling then
while hiddenfling and not (c and c.Parent and hrp and hrp.Parent) do
RunService.Heartbeat:Wait()
c = lp.Character
hrp = c and c:FindFirstChild("HumanoidRootPart")
end
if hiddenfling then
vel = hrp.Velocity
hrp.Velocity = vel * 10000 + Vector3.new(0, 10000, 0)
RunService.RenderStepped:Wait()
if c and c.Parent and hrp and hrp.Parent then hrp.Velocity = vel end
RunService.Stepped:Wait()
if c and c.Parent and hrp and hrp.Parent then
hrp.Velocity = vel + Vector3.new(0, movel, 0)
movel = movel * -1
end
end
end
end
end
toggleButton.MouseButton1Click:Connect(function()
hiddenfling = not hiddenfling
toggleButton.Text = hiddenfling and "ON" or "OFF"
end)
fling()
end
coroutine.wrap(CTIKC_fake_script)()
local function FFJFK_fake_script()
local script = Instance.new('LocalScript', Frame)
script.Parent.Active = true
script.Parent.Draggable = true
end
coroutine.wrap(FFJFK_fake_script)()
print("✅ Skiddos Touch Fling GUI opened")
end
-- ================== FULL COMMAND LIST GUI (NOW INCLUDES /spin) ==================
local function createCommandList()
if helpGui then helpGui:Destroy() end
helpGui = Instance.new("ScreenGui")
helpGui.ResetOnSpawn = false
helpGui.Parent = game:GetService("CoreGui")
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 480, 0, 670)
frame.Position = UDim2.new(0.5, -240, 0.5, -335)
frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
frame.Parent = helpGui
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 50)
title.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
title.Text = "📋 Command List"
title.TextColor3 = Color3.new(1,1,1)
title.Font = Enum.Font.SourceSansBold
title.TextSize = 24
title.Parent = frame
local list = Instance.new("TextLabel")
list.Size = UDim2.new(1, -20, 1, -180)
list.Position = UDim2.new(0, 10, 0, 60)
list.BackgroundTransparency = 1
list.TextColor3 = Color3.new(1,1,1)
list.TextXAlignment = Enum.TextXAlignment.Left
list.TextYAlignment = Enum.TextYAlignment.Top
list.Font = Enum.Font.SourceSans
list.TextSize = 17
list.TextWrapped = true
list.Text = [[
/fly [num] or /f [num] → Normal Fly (persists after death)
/cframefly [num] or /cff [num] → CFrame Fly (persists after death)
/uncframefly or /ucff → Disable CFrame fly
/unfly or /uf → Disable normal fly
/speed [num] → Set walkspeed (persists after death)
/jump [num] → Set jumppower
/gravity [num] → Set gravity
/cframespeed [num] or /cfs [num] → CFrame speed
/spin [num] → Spin character (Y-axis, persists after death)
/unspin → Stop spinning
/tp [partial] → Teleport to player
/tp random → Teleport to random player
/tploop [partial or random] → START instant loop teleport
/untploop → STOP loop teleport
/tp (alone) → Toggle Click Teleport
/view [partial] → View player
/unview → Stop viewing
/esp or /espall → Enable NEW ESP
/unesp or /unespall → Disable NEW ESP
/touchfling or /tfling → Open Touch Fling GUI
/antifling or /af → Toggle anti-fling
/aimbot → Toggle NEW Aimbot (hold RMB + FOV circle)
/unaimbot → Disable NEW Aimbot
/spectate or /spec → Open Spectate GUI
/noclip or /nc → Enable noclip
/clip or /c → Disable noclip
/invisible or /invis → Become invisible
/kill → Kill yourself
/rejoin or /rj → Rejoin
/serverhop or /sh → Server hop
/infjumps or /inf jumps → Enable Infinite Jumps
/uninfjumps or /uninf jumps → Disable Infinite Jumps
/cmds or /gui → Toggle this menu
]]
list.Parent = frame
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0.45, 0, 0, 45)
closeBtn.Position = UDim2.new(0.05, 0, 1, -65)
closeBtn.BackgroundColor3 = Color3.fromRGB(170, 0, 0)
closeBtn.Text = "Close"
closeBtn.TextColor3 = Color3.new(1,1,1)
closeBtn.Font = Enum.Font.SourceSansBold
closeBtn.TextSize = 18
closeBtn.Parent = frame
closeBtn.MouseButton1Click:Connect(function()
helpGui:Destroy()
helpGui = nil
end)
local reopenBtn = Instance.new("TextButton")
reopenBtn.Size = UDim2.new(0.45, 0, 0, 45)
reopenBtn.Position = UDim2.new(0.5, 0, 1, -65)
reopenBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
reopenBtn.Text = "Open Again"
reopenBtn.TextColor3 = Color3.new(1,1,1)
reopenBtn.Font = Enum.Font.SourceSansBold
reopenBtn.TextSize = 18
reopenBtn.Parent = frame
reopenBtn.MouseButton1Click:Connect(createCommandList)
end
-- ================== CHAT COMMANDS (NOW WITH /spin) ==================
player.Chatted:Connect(function(msg)
local args = msg:lower():split(" ")
local cmd = args[1]
if cmd == prefix.."fly" or cmd == prefix.."f" then
toggleFly(args[2])
elseif cmd == prefix.."unfly" or cmd == prefix.."uf" then
toggleFly(0)
elseif cmd == prefix.."cframefly" or cmd == prefix.."cff" then
toggleCFrameFly(args[2])
elseif cmd == prefix.."uncframefly" or cmd == prefix.."ucff" then
if cframeFlying then toggleCFrameFly(0) end
elseif cmd == prefix.."speed" then
setSpeed(args[2])
elseif cmd == prefix.."jump" then
setJump(args[2])
elseif cmd == prefix.."gravity" then
setGravity(args[2])
elseif cmd == prefix.."cframespeed" or cmd == prefix.."cfs" then
setCFrameSpeed(args[2])
elseif cmd == prefix.."spin" then
setSpin(args[2])
elseif cmd == prefix.."unspin" then
setSpin(0)
elseif cmd == prefix.."tp" then
if args[2] and args[2] ~= "" then
if args[2] == "random" then
teleportToRandomPlayer()
else
teleportToPlayer(args[2])
end
else
clickTPEnabled = not clickTPEnabled
print("✅ Click Teleport " .. (clickTPEnabled and "ENABLED" or "DISABLED"))
end
elseif cmd == prefix.."tploop" then
if args[2] and args[2] ~= "" then
startTPLoop(args[2])
else
print("❌ Usage: /tploop [partial name or random]")
end
elseif cmd == prefix.."untploop" then
stopTPLoop()
elseif cmd == prefix.."view" then
startViewing(args[2])
elseif cmd == prefix.."unview" then
stopViewing()
elseif cmd == prefix.."esp" or cmd == prefix.."espall" then
enableESP()
elseif cmd == prefix.."unesp" or cmd == prefix.."unespall" then
disableESP()
elseif cmd == prefix.."touchfling" or cmd == prefix.."tfling" then
showTouchFlingGUI()
elseif cmd == prefix.."antifling" or cmd == prefix.."af" then
antifling = not antifling
if antifling then
print("✅ Anti-Fling: ON (other players only)")
if not antiflingConnection then
antiflingConnection = RunService.Stepped:Connect(function()
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player and plr.Character then
for _, part in ipairs(plr.Character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
end
end)
end
else
print("✅ Anti-Fling: OFF")
if antiflingConnection then
antiflingConnection:Disconnect()
antiflingConnection = nil
end
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player and plr.Character then
for _, part in ipairs(plr.Character:GetDescendants()) do
if part:IsA("BasePart") then part.CanCollide = true end
end
end
end
end
elseif cmd == prefix.."aimbot" then
_G.AimbotEnabled = not _G.AimbotEnabled
_G.CircleVisible = _G.AimbotEnabled -- ← SYNCED: FOV circle turns on/off with aimbot
print("✅ NEW Aimbot " .. (_G.AimbotEnabled and "ENABLED (hold Right Mouse Button + FOV circle visible)" or "DISABLED"))
elseif cmd == prefix.."unaimbot" then
_G.AimbotEnabled = false
_G.CircleVisible = false -- ← FORCED OFF (FOV hidden)
print("✅ NEW Aimbot DISABLED (FOV circle hidden)")
elseif cmd == prefix.."infjumps" or cmd == prefix.."inf jumps" or cmd == prefix.."infjump" then
toggleInfiniteJumps(true)
elseif cmd == prefix.."uninfjumps" or cmd == prefix.."uninf jumps" or cmd == prefix.."uninfjump" then
toggleInfiniteJumps(false)
elseif cmd == prefix.."spectate" or cmd == prefix.."spec" then
createSpectateGUI()
elseif cmd == prefix.."noclip" or cmd == prefix.."nc" then
noclipping = true
print("✅ Noclip Enabled (self)")
if not noclipConnection then
noclipConnection = RunService.Stepped:Connect(function()
local char = player.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)
end
elseif cmd == prefix.."clip" or cmd == prefix.."c" then
noclipping = false
print("✅ Noclip Disabled")
if noclipConnection then
noclipConnection:Disconnect()
noclipConnection = nil
end
if player.Character then
for _, part in ipairs(player.Character:GetDescendants()) do
if part:IsA("BasePart") then part.CanCollide = true end
end
end
elseif cmd == prefix.."invisible" or cmd == prefix.."invis" then
loadstring(game:HttpGet('https://pastebin.com/raw/3Rnd9rHf'))()
elseif cmd == prefix.."kill" then
if hum then hum.Health = 0 end
elseif cmd == prefix.."rejoin" or cmd == prefix.."rj" then
TeleportService:Teleport(game.PlaceId, player)
elseif cmd == prefix.."serverhop" or cmd == prefix.."sh" then
serverHop()
elseif cmd == prefix.."cmds" or cmd == prefix.."gui" then
if helpGui then
helpGui:Destroy()
helpGui = nil
else
createCommandList()
end
end
end)
task.delay(1.5, createCommandList)
print("✅ FULL SCRIPT LOADED SUCCESSFULLY!")
print("🚀 NEW AIMBOT + NEW ESP + TRIPLE-CHECKED FLY RESTORATION + SPIN")
print("📋 Type /cmds or /gui to open the FULL command list (now 100% complete)")
print("🎯 Aimbot + FOV circle are DISABLED by default")
print("Type /aimbot to toggle ON (FOV appears) | /unaimbot to turn both OFF")
print("🌀 New: /spin 500 (or any number) | /unspin")



this is Made By Grok Because i suck at Scripting
@teamun523 use claude
@voltex oh oka