Universal Script Admin Chat Open Source KeyLess
Key RequiredUniversal

Universal Script Admin Chat Open Source KeyLess

Universal Scriptteamun523teamun523 1.8K views 2.7K executesUpdated Apr 4, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•1093 lines (42713 chars)
--[[
    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")

Features & Information

/Fly (number) /unfly /noclip /speed (number) /jump (number) /gravity (number) /Serverhop or /sh /rejoin or /rj /aimbot /espall /View someone /tp someone /tploop someone /tp random /tploop random /untploop and more? And open source N made by my friend Grok

Community Comments (3)

teamun523teamun523Apr 4, 2026

this is Made By Grok Because i suck at Scripting

Replying to @teamun523
voltexvoltexApr 4, 2026

@teamun523 use claude

Replying to @voltex
teamun523teamun523Apr 4, 2026

@voltex oh oka

More Scripts for Universal Scripts