-- [ Watermark GUI ] local Players = game:GetService("Players") local player = Players.LocalPlayer local PlayerGui = player:WaitForChild("PlayerGui") local screenGui = Instance.new("ScreenGui") screenGui.Name = "WatermarkGui" screenGui.ResetOnSpawn = false screenGui.IgnoreGuiInset = true screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Global screenGui.Parent = PlayerGui local label = Instance.new("TextLabel") label.Size = UDim2.new(0.6, 0, 0.1, 0) label.Position = UDim2.new(0.2, 0, 0.45, 0) label.BackgroundTransparency = 1 label.Text = "Made by whatanwaza" label.Font = Enum.Font.GothamBlack label.TextScaled = true label.TextColor3 = Color3.new(1, 1, 1) label.TextStrokeTransparency = 0.5 label.TextTransparency = 0 label.ZIndex = 999999 label.Parent = screenGui task.wait(3) for i = 0, 1, 0.02 do label.TextTransparency = i label.TextStrokeTransparency = 0.5 + (i * 0.5) task.wait(0.03) end screenGui:Destroy() -- [ Services ] local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local StarterGui = game:GetService("StarterGui") local Lighting = game:GetService("Lighting") -- [ Character Setup ] local character = player.Character or player.CharacterAdded:Wait() local root = character:WaitForChild("HumanoidRootPart") -- [ State ] local orbitMode = false local panels = {} local actionStates = {} -- [ Panel Data ] local panelGroups = { {main = "Fly", sub = "Noclip"}, {main = "TP Tool", sub = "Speed"}, {main = "Dance", sub = "Spin"}, {main = "Jump Boost", sub = "Sit"}, {main = "Reset", sub = "Teleport"}, {main = "God Mode", sub = "Invisibility"}, {main = "Heal", sub = "Shield"}, {main = "Light", sub = "Darkness"}, {main = "Music", sub = "Teleport Home"}, } -- [ Notification ] local function showMessage(text) pcall(function() StarterGui:SetCore("SendNotification", { Title = "Hub", Text = text, Duration = 2, }) end) end -- [ Music ] local musicSound = Instance.new("Sound") musicSound.Name = "HubMusic" musicSound.Looped = true musicSound.SoundId = "rbxassetid://9118823100" musicSound.Volume = 0.5 musicSound.Parent = root -- [ Light ] local light = Instance.new("PointLight") light.Brightness = 2 light.Range = 15 light.Enabled = false light.Parent = root -- [ Action Handlers ] local actionMap = {} -- [ Actions Implementation ] actionMap["Fly"] = function() local active = not root:FindFirstChild("FlyForce") if active then local bv = Instance.new("BodyVelocity") bv.Name = "FlyForce" bv.MaxForce = Vector3.new(1e5, 1e5, 1e5) bv.Velocity = Vector3.new(0, 50, 0) bv.Parent = root showMessage("Fly Enabled") else local f = root:FindFirstChild("FlyForce") if f then f:Destroy() end showMessage("Fly Disabled") end end local noclip = false actionMap["Noclip"] = function() noclip = not noclip showMessage(noclip and "Noclip ON" or "Noclip OFF") end RunService.Stepped:Connect(function() if noclip and character then for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end) actionMap["TP Tool"] = function() showMessage("TP Tool: Not implemented") end actionMap["Speed"] = function() local hum = character:FindFirstChildOfClass("Humanoid") if hum then actionStates.Speed = not actionStates.Speed hum.WalkSpeed = actionStates.Speed and 50 or 16 showMessage(actionStates.Speed and "Speed ON" or "Speed OFF") end end actionMap["Dance"] = function() showMessage("Dance: Not implemented") end local spinning = false actionMap["Spin"] = function() spinning = not spinning showMessage(spinning and "Spinning ON" or "Spinning OFF") end RunService.RenderStepped:Connect(function() if spinning then root.CFrame = root.CFrame * CFrame.Angles(0, math.rad(4), 0) end end) actionMap["Jump Boost"] = function() local hum = character:FindFirstChildOfClass("Humanoid") if hum then actionStates.Jump = not actionStates.Jump hum.JumpPower = actionStates.Jump and 150 or 50 showMessage(actionStates.Jump and "Jump Boost ON" or "Jump Boost OFF") end end actionMap["Sit"] = function() local hum = character:FindFirstChildOfClass("Humanoid") if hum then hum.Sit = true showMessage("Sitting") end end actionMap["Reset"] = function() character:BreakJoints() end actionMap["Teleport"] = function() root.CFrame = CFrame.new(0, 10, 0) showMessage("Teleported to origin") end actionMap["God Mode"] = function() showMessage("God Mode (fake toggle)") end actionMap["Invisibility"] = function() actionStates.Invis = not actionStates.Invis for _, p in ipairs(character:GetDescendants()) do if p:IsA("BasePart") or p:IsA("Decal") then p.Transparency = actionStates.Invis and 1 or 0 end end showMessage(actionStates.Invis and "Invisible" or "Visible") end actionMap["Heal"] = function() local hum = character:FindFirstChildOfClass("Humanoid") if hum then hum.Health = hum.MaxHealth showMessage("Healed") end end actionMap["Shield"] = function() showMessage("Shield: Not implemented") end actionMap["Light"] = function() light.Enabled = not light.Enabled showMessage(light.Enabled and "Light ON" or "Light OFF") end actionMap["Darkness"] = function() actionStates.Dark = not actionStates.Dark Lighting.Ambient = actionStates.Dark and Color3.new(0,0,0) or Color3.new(0.5,0.5,0.5) Lighting.OutdoorAmbient = Lighting.Ambient showMessage(actionStates.Dark and "Darkness ON" or "Darkness OFF") end actionMap["Music"] = function() if musicSound.IsPlaying then musicSound:Stop() showMessage("New Music OFF") else musicSound:Play() showMessage("New Music ON") end end actionMap["Teleport Home"] = function() local spawn = workspace:FindFirstChildWhichIsA("SpawnLocation") if spawn then root.CFrame = spawn.CFrame + Vector3.new(0, 5, 0) showMessage("Teleported Home") else showMessage("No SpawnLocation found") end end -- [ GUI Panels ] local function createPanel(size, color) local part = Instance.new("Part") part.Anchored = true part.CanCollide = false part.Size = size part.Color = color part.Name = "HubPanel" part.Parent = workspace return part end local function createGui(part, text) local gui = Instance.new("SurfaceGui") gui.Face = Enum.NormalId.Front gui.AlwaysOnTop = true gui.Adornee = part gui.CanvasSize = Vector2.new(300, 150) gui.Parent = part local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 0.6, 0) label.BackgroundTransparency = 1 label.Text = text label.TextScaled = true label.Font = Enum.Font.GothamBold label.TextColor3 = Color3.new(1,1,1) label.Parent = gui local button = Instance.new("TextButton") button.Size = UDim2.new(0.6, 0, 0.3, 0) button.Position = UDim2.new(0.2, 0, 0.65, 0) button.Text = "Toggle" button.TextScaled = true button.Font = Enum.Font.Gotham button.BackgroundColor3 = Color3.fromRGB(100, 180, 255) button.Parent = gui return button end -- [ Build All Panels ] for i, group in ipairs(panelGroups) do local main = createPanel(Vector3.new(5, 3, 0.2), Color3.fromRGB(50, 100, 200)) local sub = createPanel(Vector3.new(3, 2, 0.2), Color3.fromRGB(180, 150, 70)) local mainBtn = createGui(main, group.main) local subBtn = createGui(sub, group.sub) mainBtn.MouseButton1Click:Connect(function() if actionMap[group.main] then actionMap[group.main]() end end) subBtn.MouseButton1Click:Connect(function() if actionMap[group.sub] then actionMap[group.sub]() end end) panels[i] = {main = main, sub = sub} end -- [ Position Panels ] local function updatePanelPositions() local center = root.Position + Vector3.new(0, 4, 0) local radius = 12 local forward = root.CFrame.LookVector local right = Vector3.new(forward.Z, 0, -forward.X) local angleStep = math.pi / (#panels - 1) for i, p in ipairs(panels) do local angle = -math.pi / 2 + (i - 1) * angleStep local dir = (forward * math.cos(angle) + right * math.sin(angle)).Unit p.main.Position = center + dir * radius p.sub.Position = p.main.Position + Vector3.new(0, 3.5, 0) for _, part in ipairs({p.main, p.sub}) do local look = (root.Position - part.Position) look = Vector3.new(look.X, 0, look.Z).Unit part.CFrame = CFrame.lookAt(part.Position, part.Position + look) end end end -- [ Orbit & Jiggle ] local function orbitPanels() for _, p in ipairs(panels) do TweenService:Create(p.main, TweenInfo.new(0.5), {Position = root.Position + Vector3.new(math.random(-12,12),3,math.random(-12,12))}):Play() TweenService:Create(p.sub, TweenInfo.new(0.5), {Position = root.Position + Vector3.new(math.random(-10,10),6,math.random(-10,10))}):Play() end end local function jigglePanels() for _, p in ipairs(panels) do TweenService:Create(p.main, TweenInfo.new(0.2), {Position = p.main.Position + Vector3.new(math.random(-2,2),0,math.random(-2,2))}):Play() TweenService:Create(p.sub, TweenInfo.new(0.2), {Position = p.sub.Position + Vector3.new(math.random(-1,1),0,math.random(-1,1))}):Play() end end -- [ Controls ] UserInputService.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == Enum.KeyCode.Q then orbitMode = not orbitMode if orbitMode then orbitPanels() showMessage("Orbit Mode ON") else showMessage("Orbit Mode OFF") end elseif input.KeyCode == Enum.KeyCode.One then jigglePanels() end end) RunService.RenderStepped:Connect(function() if not orbitMode then updatePanelPositions() end end)