
Key RequiredUniversal

-- 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)



fly no work