--!strict -- "Where is bro going💀" — Float to heaven with Stop/Resume GUI -- Pure LocalScript. Only affects YOUR view. -- Place in StarterPlayer > StarterPlayerScripts local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- ================= CONFIG ================= local SPEED = 4 -- studs per second local TEXT = "Where is bro going💀" local TOGGLE_KEY = Enum.KeyCode.H local AUTO_START = true -- ========================================== -- ================= GUI ================= local gui = Instance.new("ScreenGui") gui.Name = "AscendGui" gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.DisplayOrder = 999 gui.Parent = playerGui local function corner(p: Instance, r: number?): UICorner local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, r or 6) c.Parent = p return c end -- Main panel local frame = Instance.new("Frame") frame.Size = UDim2.fromOffset(240, 150) frame.Position = UDim2.new(0, 20, 0, 20) frame.BackgroundColor3 = Color3.fromRGB(28, 28, 28) frame.BorderSizePixel = 0 frame.Active = true frame.Parent = gui corner(frame, 8) local stroke = Instance.new("UIStroke", frame) stroke.Color = Color3.fromRGB(90, 90, 90) -- Manual drag local dragStart, startPos frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragStart = input.Position startPos = frame.Position end end) UserInputService.InputChanged:Connect(function(input) if dragStart and input.UserInputType == Enum.UserInputType.MouseMovement then local d = input.Position - dragStart frame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y ) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragStart = nil end end) -- Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -60, 0, 24) title.Position = UDim2.fromOffset(12, 8) title.BackgroundTransparency = 1 title.Text = "Heaven Mode 💀" title.TextColor3 = Color3.new(1, 1, 1) title.Font = Enum.Font.GothamBold title.TextSize = 15 title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = frame -- Close (hides panel, keeps you rising) local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.fromOffset(24, 24) closeBtn.Position = UDim2.new(1, -34, 0, 8) closeBtn.BackgroundColor3 = Color3.fromRGB(200, 60, 60) closeBtn.TextColor3 = Color3.new(1, 1, 1) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 14 closeBtn.Text = "X" closeBtn.Parent = frame corner(closeBtn, 6) -- Status label local statusLbl = Instance.new("TextLabel") statusLbl.Size = UDim2.new(1, -24, 0, 20) statusLbl.Position = UDim2.fromOffset(12, 38) statusLbl.BackgroundTransparency = 1 statusLbl.Text = "Stopped" statusLbl.TextColor3 = Color3.fromRGB(180, 180, 180) statusLbl.Font = Enum.Font.Gotham statusLbl.TextSize = 13 statusLbl.TextXAlignment = Enum.TextXAlignment.Left statusLbl.Parent = frame -- Stop button local stopBtn = Instance.new("TextButton") stopBtn.Size = UDim2.new(0.5, -18, 0, 40) stopBtn.Position = UDim2.new(0, 12, 0, 64) stopBtn.BackgroundColor3 = Color3.fromRGB(200, 60, 60) stopBtn.TextColor3 = Color3.new(1, 1, 1) stopBtn.Font = Enum.Font.GothamBold stopBtn.TextSize = 16 stopBtn.Text = "Stop" stopBtn.Parent = frame corner(stopBtn, 6) -- Resume button local resumeBtn = Instance.new("TextButton") resumeBtn.Size = UDim2.new(0.5, -18, 0, 40) resumeBtn.Position = UDim2.new(0.5, 6, 0, 64) resumeBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 80) resumeBtn.TextColor3 = Color3.new(1, 1, 1) resumeBtn.Font = Enum.Font.GothamBold resumeBtn.TextSize = 16 resumeBtn.Text = "Resume" resumeBtn.Parent = frame corner(resumeBtn, 6) -- Reopen button (floating, shown when panel is closed) local reopenBtn = Instance.new("TextButton") reopenBtn.Size = UDim2.fromOffset(130, 34) reopenBtn.Position = UDim2.fromOffset(20, 20) reopenBtn.BackgroundColor3 = Color3.fromRGB(90, 60, 150) reopenBtn.TextColor3 = Color3.new(1, 1, 1) reopenBtn.Font = Enum.Font.GothamBold reopenBtn.TextSize = 13 reopenBtn.Text = "Heaven Mode 💀" reopenBtn.Visible = false reopenBtn.Active = true reopenBtn.Parent = gui corner(reopenBtn, 8) -- ================= STATE ================= local rising = false local billboard: BillboardGui? = nil local savedAnchors: {[BasePart]: boolean} = {} local heartConn: RBXScriptConnection? = nil local function setStatus(txt: string, color: Color3?) statusLbl.Text = txt statusLbl.TextColor3 = color or Color3.fromRGB(180, 180, 180) end -- ================= BILLBOARD ================= local function createBillboard(head: BasePart) if billboard then billboard:Destroy() end local bb = Instance.new("BillboardGui") bb.Name = "HeavenBillboard" bb.Size = UDim2.fromScale(12, 2.5) bb.StudsOffset = Vector3.new(0, 3, 0) bb.AlwaysOnTop = true bb.LightInfluence = 0 bb.Parent = head local lbl = Instance.new("TextLabel") lbl.Size = UDim2.fromScale(1, 1) lbl.BackgroundTransparency = 1 lbl.Text = TEXT lbl.TextColor3 = Color3.new(1, 1, 1) lbl.Font = Enum.Font.GothamBlack lbl.TextSize = 32 lbl.TextStrokeTransparency = 0 lbl.TextStrokeColor3 = Color3.new(0, 0, 0) lbl.Parent = bb billboard = bb end -- ================= CORE ================= local function anchorAll(char: Model) savedAnchors = {} for _, d in ipairs(char:GetDescendants()) do if d:IsA("BasePart") then savedAnchors[d] = d.Anchored d.Anchored = true end end end local function restoreAnchors() for part, was in pairs(savedAnchors) do if part.Parent then part.Anchored = was end end savedAnchors = {} end local function stopHeartbeat() if heartConn then heartConn:Disconnect() heartConn = nil end end local function startHeartbeat() stopHeartbeat() heartConn = RunService.Heartbeat:Connect(function(dt) if not rising then return end for part in pairs(savedAnchors) do if part.Parent then part.CFrame = part.CFrame + Vector3.new(0, SPEED * dt, 0) end end end) end local function resume() if rising then return end local char = player.Character if not char then setStatus("No character.", Color3.fromRGB(255, 120, 120)) return end local hum = char:FindFirstChildOfClass("Humanoid") if hum then hum.PlatformStand = true end if next(savedAnchors) == nil then anchorAll(char) end rising = true startHeartbeat() setStatus("Rising ⬆️", Color3.fromRGB(120, 220, 120)) print("[Heaven] Rising.") end local function stop() if not rising then return end rising = false -- Keep parts anchored so you hover in place instead of falling stopHeartbeat() setStatus("Stopped ⏸️ (hovering in place)", Color3.fromRGB(255, 200, 100)) print("[Heaven] Stopped.") end local function enableHeaven() local char = player.Character if not char then setStatus("No character yet.", Color3.fromRGB(255, 120, 120)) return end local head = char:FindFirstChild("Head") :: BasePart? if not head then setStatus("No Head part.", Color3.fromRGB(255, 120, 120)) return end anchorAll(char) createBillboard(head) resume() end local function disableHeaven() rising = false stopHeartbeat() restoreAnchors() if billboard then billboard:Destroy() billboard = nil end local char = player.Character if char then local hum = char:FindFirstChildOfClass("Humanoid") if hum then hum.PlatformStand = false end end setStatus("Off (grounded)", Color3.fromRGB(180, 180, 180)) print("[Heaven] Disabled.") end -- ================= BUTTON WIRING ================= stopBtn.MouseButton1Click:Connect(stop) resumeBtn.MouseButton1Click:Connect(function() -- If heaven mode was never started (e.g. AUTO_START off), enable it if not billboard then enableHeaven() else resume() end end) closeBtn.MouseButton1Click:Connect(function() frame.Visible = false reopenBtn.Visible = true end) reopenBtn.MouseButton1Click:Connect(function() frame.Visible = true reopenBtn.Visible = false end) UserInputService.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == TOGGLE_KEY then frame.Visible = not frame.Visible reopenBtn.Visible = not frame.Visible end end) -- ================= SPAWN / RESPAWN ================= local function onChar(_char: Model) disableHeaven() if AUTO_START then task.wait(1) enableHeaven() end end if player.Character then task.spawn(onChar, player.Character) end player.CharacterAdded:Connect(onChar) setStatus(AUTO_START and "Starting..." or "Press Resume to begin.") print("[Heaven] GUI loaded. H toggles panel, Stop/Resume controls rise.")