local Players = game:GetService("Players") local Lighting = game:GetService("Lighting") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local rootPart = character:WaitForChild("HumanoidRootPart") -- === CREATE GUI === local function createRoundedFrame(size, position, bgColor, parent) local frame = Instance.new("Frame") frame.Size = size frame.Position = position frame.BackgroundColor3 = bgColor frame.BorderSizePixel = 0 frame.Parent = parent local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 10) corner.Parent = frame return frame end local function createButton(text, parent) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -40, 0, 45) btn.BackgroundColor3 = Color3.fromRGB(80, 255, 100) btn.TextColor3 = Color3.fromRGB(15, 15, 15) btn.Font = Enum.Font.GothamSemibold btn.TextSize = 22 btn.Text = text btn.AutoButtonColor = false btn.Parent = parent local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = btn -- Hover effect btn.MouseEnter:Connect(function() btn.BackgroundColor3 = Color3.fromRGB(120, 255, 140) end) btn.MouseLeave:Connect(function() btn.BackgroundColor3 = Color3.fromRGB(80, 255, 100) end) return btn end local screenGui = Instance.new("ScreenGui") screenGui.Name = "n00b_gui" screenGui.Parent = player:WaitForChild("PlayerGui") local mainFrame = createRoundedFrame( UDim2.new(0, 350, 0, 300), UDim2.new(0.5, -175, 0.5, -150), Color3.fromRGB(25, 25, 25), -- dark gray background screenGui ) mainFrame.Active = true mainFrame.Draggable = true local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1, 0, 0, 40) titleLabel.Position = UDim2.new(0, 0, 0, 0) titleLabel.BackgroundColor3 = Color3.fromRGB(40, 40, 40) titleLabel.BorderSizePixel = 0 titleLabel.Text = "n00b_gui" titleLabel.TextColor3 = Color3.fromRGB(80, 255, 100) -- lime green text titleLabel.Font = Enum.Font.GothamBold titleLabel.TextSize = 28 titleLabel.Parent = mainFrame local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 10) titleCorner.Parent = titleLabel -- SCROLLING FRAME local scrollingFrame = Instance.new("ScrollingFrame") scrollingFrame.Name = "ButtonsScroll" scrollingFrame.Size = UDim2.new(1, 0, 1, -40) scrollingFrame.Position = UDim2.new(0, 0, 0, 40) scrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0) -- we will update dynamically scrollingFrame.ScrollBarThickness = 8 scrollingFrame.BackgroundTransparency = 1 scrollingFrame.Parent = mainFrame local uiListLayout = Instance.new("UIListLayout") uiListLayout.Padding = UDim.new(0, 12) uiListLayout.SortOrder = Enum.SortOrder.LayoutOrder uiListLayout.Parent = scrollingFrame local uiPadding = Instance.new("UIPadding") uiPadding.PaddingLeft = UDim.new(0, 20) uiPadding.PaddingRight = UDim.new(0, 20) uiPadding.PaddingTop = UDim.new(0, 12) uiPadding.PaddingBottom = UDim.new(0, 12) uiPadding.Parent = scrollingFrame -- === CREATE BUTTONS inside scrollingFrame === local flyButton = createButton("Enable Fly", scrollingFrame) local skyboxButton = createButton("Enable Skybox", scrollingFrame) local decalButton = createButton("Enable Decals", scrollingFrame) local themeButton = createButton("Play Theme", scrollingFrame) -- Update CanvasSize to fit all buttons local function updateCanvasSize() scrollingFrame.CanvasSize = UDim2.new(0, 0, 0, uiListLayout.AbsoluteContentSize.Y + 24) end uiListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(updateCanvasSize) updateCanvasSize() -- === FUNCTIONALITY VARIABLES === local flying = false local flyingSpeed = 70 local moveVec = Vector3.new(0,0,0) local bodyVelocity = nil local sky = nil local decalsActive = false local themeSound = nil -- Utility: get player headshot thumbnail URL local function getHeadshot() local thumbType = Enum.ThumbnailType.HeadShot local thumbSize = Enum.ThumbnailSize.Size420x420 local success, url = pcall(function() return Players:GetUserThumbnailAsync(player.UserId, thumbType, thumbSize) end) if success then return url else return nil end end -- === FLY FUNCTIONS === local function startFly() if flying then return end flying = true if bodyVelocity then bodyVelocity:Destroy() end bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(1e5,1e5,1e5) bodyVelocity.Velocity = Vector3.new(0,0,0) bodyVelocity.Parent = rootPart flyButton.Text = "Disable Fly" end local function stopFly() if not flying then return end flying = false if bodyVelocity then bodyVelocity:Destroy() bodyVelocity = nil end flyButton.Text = "Enable Fly" end flyButton.MouseButton1Click:Connect(function() if flying then stopFly() else startFly() end end) UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed or not flying then return end if input.KeyCode == Enum.KeyCode.W then moveVec = moveVec + Vector3.new(0,0,-1) elseif input.KeyCode == Enum.KeyCode.S then moveVec = moveVec + Vector3.new(0,0,1) elseif input.KeyCode == Enum.KeyCode.A then moveVec = moveVec + Vector3.new(-1,0,0) elseif input.KeyCode == Enum.KeyCode.D then moveVec = moveVec + Vector3.new(1,0,0) elseif input.KeyCode == Enum.KeyCode.Space then moveVec = moveVec + Vector3.new(0,1,0) elseif input.KeyCode == Enum.KeyCode.LeftControl then moveVec = moveVec + Vector3.new(0,-1,0) end end) UserInputService.InputEnded:Connect(function(input, gameProcessed) if gameProcessed or not flying then return end if input.KeyCode == Enum.KeyCode.W then moveVec = moveVec - Vector3.new(0,0,-1) elseif input.KeyCode == Enum.KeyCode.S then moveVec = moveVec - Vector3.new(0,0,1) elseif input.KeyCode == Enum.KeyCode.A then moveVec = moveVec - Vector3.new(-1,0,0) elseif input.KeyCode == Enum.KeyCode.D then moveVec = moveVec - Vector3.new(1,0,0) elseif input.KeyCode == Enum.KeyCode.Space then moveVec = moveVec - Vector3.new(0,1,0) elseif input.KeyCode == Enum.KeyCode.LeftControl then moveVec = moveVec - Vector3.new(0,-1,0) end end) RunService.RenderStepped:Connect(function() if flying and bodyVelocity and rootPart then local cam = workspace.CurrentCamera local dir = (cam.CFrame:VectorToWorldSpace(moveVec)) if moveVec.Magnitude > 0 then bodyVelocity.Velocity = dir.Unit * flyingSpeed else bodyVelocity.Velocity = Vector3.new(0,0,0) end end end) -- === SKYBOX FUNCTIONS === local function enableSkybox() if sky then return end local url = getHeadshot() if not url then return end sky = Instance.new("Sky") sky.SkyboxBk = url sky.SkyboxDn = url sky.SkyboxFt = url sky.SkyboxLf = url sky.SkyboxRt = url sky.SkyboxUp = url local oldSky = Lighting:FindFirstChildOfClass("Sky") if oldSky then oldSky:Destroy() end sky.Parent = Lighting skyboxButton.Text = "Disable Skybox" end local function disableSkybox() if not sky then return end sky:Destroy() sky = nil skyboxButton.Text = "Enable Skybox" end skyboxButton.MouseButton1Click:Connect(function() if sky then disableSkybox() else enableSkybox() end end) -- === DECALS FUNCTIONS === local function spamDecals() if decalsActive then return end local url = getHeadshot() if not url then return end decalsActive = true decalButton.Text = "Disable Decals" for _, obj in pairs(workspace:GetDescendants()) do if obj:IsA("BasePart") and not obj:FindFirstChild("n00bDecal") then local decal = Instance.new("Decal") decal.Name = "n00bDecal" decal.Texture = url decal.Face = Enum.NormalId.Front decal.Parent = obj end end end local function removeDecals() if not decalsActive then return end decalsActive = false decalButton.Text = "Enable Decals" for _, obj in pairs(workspace:GetDescendants()) do local decal = obj:FindFirstChild("n00bDecal") if decal then decal:Destroy() end end end decalButton.MouseButton1Click:Connect(function() if decalsActive then removeDecals() else spamDecals() end end) -- === THEME FUNCTIONS === local function playTheme() if themeSound then return end themeSound = Instance.new("Sound") themeSound.SoundId = "rbxassetid://142376088" themeSound.Looped = true themeSound.Volume = 0.7 themeSound.Parent = workspace themeSound:Play() themeButton.Text = "Stop Theme" end local function stopTheme() if not themeSound then return end themeSound:Stop() themeSound:Destroy() themeSound = nil themeButton.Text = "Play Theme" end themeButton.MouseButton1Click:Connect(function() if themeSound then stopTheme() else playTheme() end end)