local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local StarterGui = game:GetService("StarterGui") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- 1. Create Main ScreenGui local screenGui = Instance.new("ScreenGui") screenGui.Name = "LevelChangerGui" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui -- 2. Create Main Frame local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 260, 0, 160) mainFrame.Position = UDim2.new(0.5, -130, 0.4, -80) mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui local frameCorner = Instance.new("UICorner") frameCorner.CornerRadius = UDim.new(0, 10) frameCorner.Parent = mainFrame local frameStroke = Instance.new("UIStroke") frameStroke.Color = Color3.fromRGB(60, 60, 75) frameStroke.Thickness = 1.5 frameStroke.Parent = mainFrame -- 3. Title Label ("Level Changer") local titleLabel = Instance.new("TextLabel") titleLabel.Name = "Title" titleLabel.Size = UDim2.new(1, -40, 0, 35) titleLabel.Position = UDim2.new(0, 12, 0, 5) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "Level Changer" titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.TextSize = 16 titleLabel.Font = Enum.Font.GothamBold titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.Parent = mainFrame -- 4. Close Button (X) local closeButton = Instance.new("TextButton") closeButton.Name = "CloseButton" closeButton.Size = UDim2.new(0, 26, 0, 26) closeButton.Position = UDim2.new(1, -32, 0, 8) closeButton.BackgroundColor3 = Color3.fromRGB(40, 40, 50) closeButton.Text = "X" closeButton.TextColor3 = Color3.fromRGB(200, 200, 200) closeButton.TextSize = 12 closeButton.Font = Enum.Font.GothamBold closeButton.Parent = mainFrame local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 6) closeCorner.Parent = closeButton -- 5. Input Box (Supports Letters & Numbers) local levelInput = Instance.new("TextBox") levelInput.Name = "LevelInput" levelInput.Size = UDim2.new(1, -24, 0, 40) levelInput.Position = UDim2.new(0, 12, 0, 50) levelInput.BackgroundColor3 = Color3.fromRGB(35, 35, 45) levelInput.Text = "313" levelInput.PlaceholderText = "Type anything here..." levelInput.TextColor3 = Color3.fromRGB(0, 255, 170) levelInput.PlaceholderColor3 = Color3.fromRGB(120, 120, 140) levelInput.TextSize = 18 levelInput.Font = Enum.Font.GothamSemibold levelInput.Parent = mainFrame local inputCorner = Instance.new("UICorner") inputCorner.CornerRadius = UDim.new(0, 8) inputCorner.Parent = levelInput -- 6. Helper Label local hintLabel = Instance.new("TextLabel") hintLabel.Name = "HintLabel" hintLabel.Size = UDim2.new(1, -24, 0, 25) hintLabel.Position = UDim2.new(0, 12, 0, 100) hintLabel.BackgroundTransparency = 1 hintLabel.Text = "Press 'P' to Toggle GUI" hintLabel.TextColor3 = Color3.fromRGB(140, 140, 160) hintLabel.TextSize = 12 hintLabel.Font = Enum.Font.Gotham hintLabel.Parent = mainFrame -- System Notification Function local function sendNotification(text) pcall(function() StarterGui:SetCore("SendNotification", { Title = "Level Changer", Text = text, Duration = 3 }) end) end closeButton.MouseButton1Click:Connect(function() mainFrame.Visible = false sendNotification("GUI Hidden. Press 'P' to open again.") end) UserInputService.InputBegan:Connect(function(input, gameProcessed) if not gameProcessed and input.KeyCode == Enum.KeyCode.P then mainFrame.Visible = not mainFrame.Visible if mainFrame.Visible then sendNotification("Level Changer Opened.") else sendNotification("GUI Hidden. Press 'P' to open again.") end end end) -- Per-Frame Loop - Allows ANY text (letters, numbers, custom words) RunService.RenderStepped:Connect(function() local targetLevel = levelInput.Text if targetLevel == "" then return end -- 1. Screen UI Elements for _, obj in pairs(playerGui:GetDescendants()) do if obj:IsA("TextLabel") and not obj:IsDescendantOf(mainFrame) then local path = obj:GetFullName() if path:find("Level") and not path:find("Notification") then -- Safely ignore header/subtext labels that only say "Level" or "LVL" local cleanText = obj.Text:gsub("%s+", ""):lower() if cleanText ~= "level" and cleanText ~= "lvl" then if obj.Text ~= targetLevel then obj.Text = targetLevel end end end end end -- 2. Workspace Character Overhead Name Tag local character = player.Character if character then for _, obj in pairs(character:GetDescendants()) do if obj:IsA("TextLabel") then local cleanText = obj.Text:gsub("%s+", ""):lower() if cleanText ~= "level" and cleanText ~= "lvl" then if obj.Name:lower():find("level") or obj:GetFullName():find("Level") then if obj.Text ~= targetLevel then obj.Text = targetLevel end end end end end end end) sendNotification("Level Changer Loaded! Press 'P' to toggle.")