
Key RequiredUniversal

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)



bot syfm🥀