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