JohnGui V3 Best Admin GUI
Key RequiredUniversal

JohnGui V3 Best Admin GUI

Universal ScriptDeltaExecutorARGDeltaExecutorARG 2K views 4.8K executesUpdated Apr 5, 2026
3.3/ 5(3 votes)
2167% Positive
Lua Script•280 lines (7445 chars)
-- GUI BASE
local gui = Instance.new("ScreenGui")
gui.Parent = game.CoreGui
gui.ResetOnSpawn = false

-- PLAYER
local plr = game.Players.LocalPlayer
local char = plr.Character or plr.CharacterAdded:Wait()

plr.CharacterAdded:Connect(function(c)
    char = c
end)

-- FUNCIONES
local function getHum()
    return char and char:FindFirstChildOfClass("Humanoid")
end

local function getRoot()
    return char and char:FindFirstChild("HumanoidRootPart")
end

-- BOTÓN JOHN
local OpenButton = Instance.new("TextButton", gui)
OpenButton.Size = UDim2.new(0, 110, 0, 45)
OpenButton.Position = UDim2.new(0.02, 0, 0.4, 0)
OpenButton.Text = "John"
OpenButton.BackgroundColor3 = Color3.fromRGB(255, 200, 0)
OpenButton.TextScaled = true
Instance.new("UICorner", OpenButton).CornerRadius = UDim.new(0, 12)

-- MAIN
local Main = Instance.new("Frame", gui)
Main.Size = UDim2.new(0, 260, 0, 360)
Main.Position = UDim2.new(0.35, 0, 0.3, 0)
Main.BackgroundColor3 = Color3.fromRGB(255, 230, 120)
Main.Visible = false
Main.Active = true
Main.Draggable = true
Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 15)

-- TITLE
local Title = Instance.new("TextLabel", Main)
Title.Size = UDim2.new(1, 0, 0, 35)
Title.Text = "JohnGui"
Title.BackgroundTransparency = 1
Title.TextScaled = true

-- MIN
local Min = Instance.new("TextButton", Main)
Min.Size = UDim2.new(0, 25, 0, 25)
Min.Position = UDim2.new(1, -30, 0, 5)
Min.Text = "-"
Min.BackgroundColor3 = Color3.fromRGB(255, 200, 0)
Instance.new("UICorner", Min).CornerRadius = UDim.new(0, 8)

-- CONTAINER
local Container = Instance.new("Frame", Main)
Container.Size = UDim2.new(1, 0, 1, -40)
Container.Position = UDim2.new(0, 0, 0, 40)
Container.BackgroundTransparency = 1

local Layout = Instance.new("UIListLayout", Container)
Layout.Padding = UDim.new(0, 5)
Layout.HorizontalAlignment = Enum.HorizontalAlignment.Center

-- BOTONES
local function btn(txt)
    local b = Instance.new("TextButton", Container)
    b.Size = UDim2.new(0, 220, 0, 35)
    b.Text = txt
    b.BackgroundColor3 = Color3.fromRGB(255, 215, 0)
    b.TextScaled = true
    Instance.new("UICorner", b).CornerRadius = UDim.new(0, 10)
    return b
end

local Run = btn("Correr OFF")
local Fly = btn("Fly OFF")
local Jump = btn("AutoJump OFF")
local Spin = btn("Spin OFF")
local Leg = btn("Pierna Invisible OFF")
local Noclip = btn("Noclip OFF")
local Tp = btn("TP Random OFF")

-- ABRIR
OpenButton.MouseButton1Click:Connect(function()
    Main.Visible = true
    OpenButton:Destroy()
end)

-- MINIMIZAR
local mini = false
Min.MouseButton1Click:Connect(function()
    mini = not mini
    if mini then
        Container.Visible = false
        Main:TweenSize(UDim2.new(0, 150, 0, 40), "Out", "Quad", 0.3, true)
    else
        Container.Visible = true
        Main:TweenSize(UDim2.new(0, 260, 0, 360), "Out", "Quad", 0.3, true)
    end
end)

-- CORRER
local running = false
Run.MouseButton1Click:Connect(function()
    running = not running
    local hum = getHum()
    if hum then
        hum.WalkSpeed = running and 50 or 16
        Run.Text = running and "Correr ON" or "Correr OFF"
    end
end)

-- 🕊️ FLY REAL FINAL
local flying = false
local att, alignPos, alignOri

Fly.MouseButton1Click:Connect(function()
    flying = not flying
    Fly.Text = flying and "Fly ON" or "Fly OFF"

    local hum = getHum()
    local root = getRoot()
    if not root or not hum then return end

    if flying then
        hum.PlatformStand = true

        att = Instance.new("Attachment", root)

        alignPos = Instance.new("AlignPosition", root)
        alignPos.Attachment0 = att
        alignPos.MaxForce = 9e9
        alignPos.Responsiveness = 50

        alignOri = Instance.new("AlignOrientation", root)
        alignOri.Attachment0 = att
        alignOri.MaxTorque = 9e9
        alignOri.Responsiveness = 50

        local speed = 60

        game:GetService("RunService").RenderStepped:Connect(function()
            if not flying then return end

            local cam = workspace.CurrentCamera
            local move = getHum().MoveDirection

            local dir = (cam.CFrame.LookVector * move.Z) + (cam.CFrame.RightVector * move.X)

            local y = 0
            if getHum().Jump then y = 1 end

            local newPos = root.Position + (dir * speed * 0.1) + Vector3.new(0, y * speed * 0.1, 0)
            alignPos.Position = newPos
            alignOri.CFrame = cam.CFrame
        end)

    else
        hum.PlatformStand = false
        if att then att:Destroy() end
        if alignPos then alignPos:Destroy() end
        if alignOri then alignOri:Destroy() end
    end
end)

-- AUTOJUMP
local auto = false
Jump.MouseButton1Click:Connect(function()
    auto = not auto
    Jump.Text = auto and "AutoJump ON" or "AutoJump OFF"

    local hum = getHum()
    if auto and hum then
        spawn(function()
            while auto do
                if hum.FloorMaterial ~= Enum.Material.Air then
                    hum:ChangeState(Enum.HumanoidStateType.Jumping)
                end
                task.wait(0.25)
            end
        end)
    end
end)

-- SPIN
local spinning = false
Spin.MouseButton1Click:Connect(function()
    spinning = not spinning
    Spin.Text = spinning and "Spin ON" or "Spin OFF"

    if spinning then
        spawn(function()
            while spinning do
                local root = getRoot()
                if root then
                    root.CFrame *= CFrame.Angles(0, math.rad(20), 0)
                end
                task.wait()
            end
        end)
    end
end)

-- PIERNAS
local legsInvisible = false
Leg.MouseButton1Click:Connect(function()
    legsInvisible = not legsInvisible
    Leg.Text = legsInvisible and "Pierna Invisible ON" or "OFF"

    for _,v in pairs(char:GetChildren()) do
        if v:IsA("BasePart") and v.Name:lower():find("leg") then
            v.Transparency = legsInvisible and 1 or 0
        end
    end
end)

-- 👻 NOCLIP FIX
local noclip = false
local noclipConn

Noclip.MouseButton1Click:Connect(function()
    noclip = not noclip
    Noclip.Text = noclip and "Noclip ON" or "Noclip OFF"

    if noclip then
        noclipConn = game:GetService("RunService").Stepped:Connect(function()
            if char then
                for _,v in pairs(char:GetDescendants()) do
                    if v:IsA("BasePart") then
                        v.CanCollide = false
                    end
                end
            end
        end)
    else
        if noclipConn then noclipConn:Disconnect() end
        for _,v in pairs(char:GetDescendants()) do
            if v:IsA("BasePart") then
                v.CanCollide = true
            end
        end
    end
end)

-- 📍 TP RANDOM
local tpActive = false
local oldPos

Tp.MouseButton1Click:Connect(function()
    tpActive = not tpActive
    Tp.Text = tpActive and "TP Random ON" or "TP Random OFF"

    local root = getRoot()
    if not root then return end

    if tpActive then
        oldPos = root.CFrame

        local players = game.Players:GetPlayers()
        local target

        repeat
            target = players[math.random(1,#players)]
        until target ~= plr

        if target.Character then
            local tRoot = target.Character:FindFirstChild("HumanoidRootPart")
            if tRoot then
                root.CFrame = tRoot.CFrame * CFrame.new(0,0,3)
            end
        end
    else
        if oldPos then
            root.CFrame = oldPos
        end
    end
end)

Features & Information

🔥 John GUI Admin Script 🔥 ✔ Fly (Admin Style - Mobile Supported) ✔ Noclip ON/OFF ✔ TP Random (returns to original position) ✔ AutoJump ✔ Spin ON/OFF ✔ Invisible Legs ✔ Speed Toggle Smooth GUI + Clean Design
#admin

Community Comments (1)

grreeenrreeddgrreeenrreeddJul 11, 2026

fly no work

More Scripts for Universal Scripts