-- REDLINE X | Admin Panel -- For your own Roblox test experience -- Place in StarterPlayerScripts as a LocalScript local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local old = playerGui:FindFirstChild("REDLINE_X") if old then old:Destroy() end local gui = Instance.new("ScreenGui") gui.Name = "REDLINE_X" gui.ResetOnSpawn = false gui.Parent = playerGui local red = Color3.fromRGB(255, 55, 75) local bg = Color3.fromRGB(11, 11, 16) local panel = Color3.fromRGB(23, 23, 31) local muted = Color3.fromRGB(155, 155, 168) local window = Instance.new("Frame") window.Size = UDim2.fromOffset(650, 470) window.Position = UDim2.new(0.5, -325, 0.5, -235) window.BackgroundColor3 = bg window.BorderSizePixel = 0 window.Active = true window.Draggable = true window.Parent = gui Instance.new("UICorner", window).CornerRadius = UDim.new(0, 12) local outline = Instance.new("UIStroke", window) outline.Color = Color3.fromRGB(100, 25, 39) outline.Thickness = 1.5 local function makeLabel(parent, text, size, pos, color, fontSize) local label = Instance.new("TextLabel") label.BackgroundTransparency = 1 label.Text = text label.Size = size label.Position = pos label.TextColor3 = color or Color3.new(1, 1, 1) label.Font = Enum.Font.GothamBold label.TextSize = fontSize or 13 label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = parent return label end local header = Instance.new("Frame") header.Size = UDim2.new(1, 0, 0, 62) header.BackgroundColor3 = Color3.fromRGB(17, 13, 19) header.BorderSizePixel = 0 header.Parent = window Instance.new("UICorner", header).CornerRadius = UDim.new(0, 12) makeLabel(header, "⚡ REDLINE X", UDim2.new(1, -150, 0, 30), UDim2.fromOffset(18, 5), red, 22) makeLabel(header, "ADMIN PANEL / LOCAL CONTROLS", UDim2.new(1, -150, 0, 18), UDim2.fromOffset(20, 35), muted, 10) local close = Instance.new("TextButton") close.Size = UDim2.fromOffset(35, 32) close.Position = UDim2.new(1, -47, 0, 14) close.BackgroundColor3 = Color3.fromRGB(150, 25, 43) close.Text = "×" close.TextColor3 = Color3.new(1, 1, 1) close.TextSize = 24 close.Font = Enum.Font.GothamBold close.Parent = header Instance.new("UICorner", close).CornerRadius = UDim.new(0, 7) close.MouseButton1Click:Connect(function() gui:Destroy() end) local sidebar = Instance.new("Frame") sidebar.Position = UDim2.fromOffset(12, 75) sidebar.Size = UDim2.fromOffset(145, 345) sidebar.BackgroundColor3 = panel sidebar.BorderSizePixel = 0 sidebar.Parent = window Instance.new("UICorner", sidebar).CornerRadius = UDim.new(0, 9) local content = Instance.new("Frame") content.Position = UDim2.fromOffset(169, 75) content.Size = UDim2.new(1, -181, 1, -88) content.BackgroundTransparency = 1 content.Parent = window local search = Instance.new("TextBox") search.Size = UDim2.new(1, 0, 0, 36) search.BackgroundColor3 = panel search.PlaceholderText = " Search features..." search.Text = "" search.TextColor3 = Color3.new(1, 1, 1) search.PlaceholderColor3 = muted search.Font = Enum.Font.Gotham search.TextSize = 13 search.ClearTextOnFocus = false search.Parent = content Instance.new("UICorner", search).CornerRadius = UDim.new(0, 7) local sectionTitle = makeLabel(content, "MOVEMENT", UDim2.new(1, 0, 0, 25), UDim2.fromOffset(2, 43), red, 13) local status = makeLabel(content, "● READY", UDim2.new(1, 0, 0, 22), UDim2.new(0, 0, 1, -22), muted, 11) local list = Instance.new("ScrollingFrame") list.Position = UDim2.fromOffset(0, 73) list.Size = UDim2.new(1, 0, 1, -101) list.BackgroundTransparency = 1 list.BorderSizePixel = 0 list.ScrollBarThickness = 4 list.ScrollBarImageColor3 = red list.AutomaticCanvasSize = Enum.AutomaticSize.Y list.CanvasSize = UDim2.new() list.Parent = content local grid = Instance.new("UIGridLayout") grid.CellSize = UDim2.new(0.5, -5, 0, 43) grid.CellPadding = UDim2.fromOffset(8, 8) grid.SortOrder = Enum.SortOrder.LayoutOrder grid.Parent = list local activeTab = "Movement" local activeToggles = {} local original = {} local savedCollision = {} local flyConnection local clipConnection local flyVelocity local flyAttachment local flyOn = false local clipOn = false local flySpeed = 55 local function characterParts() local char = player.Character if not char then return end return char, char:FindFirstChildOfClass("Humanoid"), char:FindFirstChild("HumanoidRootPart") end local function setStatus(msg) status.Text = "● " .. msg end local function button(text, callback, enabled) local b = Instance.new("TextButton") b.Name = text b.Text = text b.BackgroundColor3 = enabled and Color3.fromRGB(80, 22, 36) or panel b.TextColor3 = Color3.fromRGB(245, 245, 248) b.Font = Enum.Font.GothamSemibold b.TextSize = 12 b.TextWrapped = true b.AutoButtonColor = true b.Parent = list Instance.new("UICorner", b).CornerRadius = UDim.new(0, 7) local stroke = Instance.new("UIStroke", b) stroke.Color = enabled and red or Color3.fromRGB(53, 43, 54) stroke.Thickness = 1 b.MouseButton1Click:Connect(function() local ok, err = pcall(callback) if not ok then setStatus("ERROR: " .. tostring(err):sub(1, 35)) end end) return b end local function clearList() for _, obj in ipairs(list:GetChildren()) do if obj:IsA("TextButton") then obj:Destroy() end end end local function toggleFly() local char, hum, root = characterParts() if not root or not hum then setStatus("CHARACTER NOT READY"); return end flyOn = not flyOn if flyConnection then flyConnection:Disconnect(); flyConnection = nil end if not flyOn then if flyVelocity then flyVelocity:Destroy(); flyVelocity = nil end if flyAttachment then flyAttachment:Destroy(); flyAttachment = nil end setStatus("FLY OFF") return end flyAttachment = Instance.new("Attachment") flyAttachment.Name = "RedlineFlyAttachment" flyAttachment.Parent = root flyVelocity = Instance.new("LinearVelocity") flyVelocity.Name = "RedlineFlyVelocity" flyVelocity.Attachment0 = flyAttachment flyVelocity.RelativeTo = Enum.ActuatorRelativeTo.World flyVelocity.MaxForce = 100000 flyVelocity.VectorVelocity = Vector3.zero flyVelocity.Parent = root flyConnection = RunService.RenderStepped:Connect(function() if not flyOn or not root.Parent then return end local camera = workspace.CurrentCamera local dir = Vector3.zero if UIS:IsKeyDown(Enum.KeyCode.W) then dir += camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then dir -= camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then dir -= camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then dir += camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.Space) then dir += Vector3.yAxis end if UIS:IsKeyDown(Enum.KeyCode.LeftControl) then dir -= Vector3.yAxis end flyVelocity.VectorVelocity = dir.Magnitude > 0 and dir.Unit * flySpeed or Vector3.zero end) setStatus("FLY ON · WASD / SPACE / CTRL") end local function toggleNoclip() local char = player.Character if not char then setStatus("CHARACTER NOT READY"); return end clipOn = not clipOn if clipConnection then clipConnection:Disconnect(); clipConnection = nil end if clipOn then savedCollision = {} clipConnection = RunService.Stepped:Connect(function() if not char.Parent then return end for _, p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") then if savedCollision[p] == nil then savedCollision[p] = p.CanCollide end p.CanCollide = false end end end) setStatus("NOCLIP ON") else for part, wasCollidable in pairs(savedCollision) do if part.Parent then part.CanCollide = wasCollidable end end savedCollision = {} setStatus("NOCLIP OFF") end end local function toggleSpeed() local _, hum = characterParts() if not hum then return end if not original.WalkSpeed then original.WalkSpeed = hum.WalkSpeed end activeToggles.Speed = not activeToggles.Speed hum.WalkSpeed = activeToggles.Speed and 32 or original.WalkSpeed setStatus(activeToggles.Speed and "SPEED BOOST ON" or "SPEED RESTORED") end local function toggleJump() local _, hum = characterParts() if not hum then return end if not original.JumpPower then original.JumpPower = hum.JumpPower end activeToggles.Jump = not activeToggles.Jump hum.UseJumpPower = true hum.JumpPower = activeToggles.Jump and 90 or original.JumpPower setStatus(activeToggles.Jump and "JUMP BOOST ON" or "JUMP RESTORED") end local function toggleFullbright() activeToggles.Bright = not activeToggles.Bright if activeToggles.Bright then original.Lighting = { Brightness = Lighting.Brightness, ClockTime = Lighting.ClockTime, FogEnd = Lighting.FogEnd, GlobalShadows = Lighting.GlobalShadows } Lighting.Brightness = 3 Lighting.ClockTime = 14 Lighting.FogEnd = 100000 Lighting.GlobalShadows = false elseif original.Lighting then for prop, value in pairs(original.Lighting) do Lighting[prop] = value end end setStatus(activeToggles.Bright and "FULLBRIGHT ON" or "LIGHTING RESTORED") end local function resetAll() if flyOn then toggleFly() end if clipOn then toggleNoclip() end local _, hum, root = characterParts() if hum then if original.WalkSpeed then hum.WalkSpeed = original.WalkSpeed end if original.JumpPower then hum.JumpPower = original.JumpPower end end if root then root.Anchored = false end workspace.Gravity = original.Gravity or 196.2 if original.Lighting then for prop, value in pairs(original.Lighting) do Lighting[prop] = value end activeToggles.Bright = false end setStatus("RESET COMPLETE") end local tabs = { "Movement", "Character", "Visuals", "Interface", "Utilities" } local features = { Movement = { {"Fly", toggleFly}, {"Noclip", toggleNoclip}, {"Speed Boost", toggleSpeed}, {"Jump Boost", toggleJump}, {"Low Gravity", function() original.Gravity = original.Gravity or workspace.Gravity workspace.Gravity = 80 setStatus("LOW GRAVITY") end}, {"High Gravity", function() original.Gravity = original.Gravity or workspace.Gravity workspace.Gravity = 300 setStatus("HIGH GRAVITY") end}, {"Restore Gravity", function() workspace.Gravity = original.Gravity or 196.2 setStatus("GRAVITY RESTORED") end}, {"Teleport to Spawn", function() local _, _, root = characterParts() local spawn = workspace:FindFirstChildWhichIsA("SpawnLocation", true) if root and spawn then root.CFrame = spawn.CFrame + Vector3.new(0, 4, 0) setStatus("TELEPORTED") else setStatus("NO SPAWN FOUND") end end}, {"Freeze Self", function() local _, _, root = characterParts() if root then root.Anchored = not root.Anchored; setStatus("ANCHOR TOGGLED") end end}, {"Stop Fly", function() if flyOn then toggleFly() else setStatus("FLY ALREADY OFF") end end} }, Character = { {"Heal", function() local _, hum = characterParts() if hum then hum.Health = hum.MaxHealth; setStatus("HEALED") end end}, {"Respawn", function() player:LoadCharacter(); setStatus("RESPAWN REQUESTED") end}, {"Sit", function() local _, h = characterParts(); if h then h.Sit = true end end}, {"Stand", function() local _, h = characterParts(); if h then h.Sit = false end end}, {"Reset Character", function() local _, h = characterParts(); if h then h.Health = 0 end end}, {"Character Info", function() local _, h, root = characterParts() if h and root then setStatus("HP "..math.floor(h.Health).." · Y "..math.floor(root.Position.Y)) end end}, {"Movement Status", function() setStatus("FLY "..tostring(flyOn).." · CLIP "..tostring(clipOn)) end}, {"Restore Defaults", resetAll}, {"Toggle Shift Lock", function() setStatus("USE ROBLOX SHIFT-LOCK SETTINGS") end}, {"Stop Noclip", function() if clipOn then toggleNoclip() else setStatus("NOCLIP ALREADY OFF") end end} }, Visuals = { {"Fullbright", toggleFullbright}, {"Daytime", function() Lighting.ClockTime = 14; setStatus("DAYTIME") end}, {"Nighttime", function() Lighting.ClockTime = 0; setStatus("NIGHTTIME") end}, {"Remove Fog", function() original.FogEnd = original.FogEnd or Lighting.FogEnd; Lighting.FogEnd = 100000; setStatus("FOG REMOVED") end}, {"Restore Fog", function() if original.FogEnd then Lighting.FogEnd = original.FogEnd end; setStatus("FOG RESTORED") end}, {"FOV 90", function() workspace.CurrentCamera.FieldOfView = 90; setStatus("FOV 90") end}, {"Default FOV", function() workspace.CurrentCamera.FieldOfView = 70; setStatus("FOV 70") end}, {"Low Graphics", function() Lighting.GlobalShadows = false for _, p in ipairs(workspace:GetDescendants()) do if p:IsA("BasePart") then p.Material = Enum.Material.SmoothPlastic end end setStatus("LOW GRAPHICS APPLIED") end}, {"Clear Camera Effects", function() local cam = workspace.CurrentCamera for _, v in ipairs(cam:GetChildren()) do if v:IsA("BlurEffect") or v:IsA("BloomEffect") or v:IsA("ColorCorrectionEffect") then v:Destroy() end end setStatus("CAMERA EFFECTS CLEARED") end}, {"Restore Lighting", function() if original.Lighting then for prop, value in pairs(original.Lighting) do Lighting[prop] = value end end setStatus("LIGHTING RESTORED") end} }, Interface = { {"Hide Panel", function() window.Visible = false end}, {"Reopen Panel", function() window.Visible = true end}, {"Close Panel", function() gui:Destroy() end}, {"Show Status", function() setStatus("REDLINE X READY") end}, {"Red Theme", function() outline.Color = red; setStatus("RED THEME") end}, {"Reset Theme", function() outline.Color = Color3.fromRGB(100,25,39); setStatus("THEME RESET") end}, {"Fly Speed +", function() flySpeed = math.min(flySpeed + 10, 150); setStatus("FLY SPEED "..flySpeed) end}, {"Fly Speed -", function() flySpeed = math.max(flySpeed - 10, 10); setStatus("FLY SPEED "..flySpeed) end}, {"Recenter Window", function() window.Position = UDim2.new(0.5,-325,0.5,-235) end}, {"Refresh Character", function() setStatus(player.Character and "CHARACTER FOUND" or "NO CHARACTER") end} }, Utilities = { {"Emergency Reset", resetAll}, {"Refresh Character", function() player.CharacterAdded:Wait(); setStatus("CHARACTER SPAWNED") end}, {"Show Coordinates", function() local _, _, root = characterParts() if root then local p = root.Position setStatus(string.format("XYZ %.0f / %.0f / %.0f", p.X,p.Y,p.Z)) end end}, {"Copy Coordinates", function() setStatus("USE SHOW COORDINATES TO VIEW POSITION") end}, {"Reset Camera", function() local _, hum = characterParts() workspace.CurrentCamera.CameraType = Enum.CameraType.Custom if hum then workspace.CurrentCamera.CameraSubject = hum end setStatus("CAMERA RESET") end}, {"Sound Status", function() setStatus("SOUND IS CONTROLLED BY GAME SETTINGS") end}, {"Restore Gravity", function() workspace.Gravity = original.Gravity or 196.2; setStatus("GRAVITY RESTORED") end}, {"Restore Movement", function() local _, hum = characterParts() if hum then hum.WalkSpeed = original.WalkSpeed or 16 hum.JumpPower = original.JumpPower or 50 end setStatus("MOVEMENT RESTORED") end}, {"Help", function() setStatus("FLY: WASD, SPACE, CTRL · RIGHT SHIFT: HIDE") end}, {"Feature Information", function() setStatus("LOCAL CONTROLS · OWN TEST PLACE") end} } } local function renderTab(tab) activeTab = tab sectionTitle.Text = string.upper(tab) clearList() for _, feature in ipairs(features[tab]) do button(feature[1], feature[2]) end end local y = 12 for _, tab in ipairs(tabs) do local b = Instance.new("TextButton") b.Size = UDim2.new(1, -16, 0, 39) b.Position = UDim2.fromOffset(8, y) b.BackgroundColor3 = tab == activeTab and Color3.fromRGB(100, 24, 40) or panel b.Text = " " .. tab b.TextColor3 = tab == activeTab and red or Color3.fromRGB(220,220,230) b.Font = Enum.Font.GothamSemibold b.TextSize = 13 b.TextXAlignment = Enum.TextXAlignment.Left b.Parent = sidebar Instance.new("UICorner", b).CornerRadius = UDim.new(0, 7) b.MouseButton1Click:Connect(function() for _, child in ipairs(sidebar:GetChildren()) do if child:IsA("TextButton") then child.BackgroundColor3 = panel child.TextColor3 = Color3.fromRGB(220,220,230) end end b.BackgroundColor3 = Color3.fromRGB(100,24,40) b.TextColor3 = red renderTab(tab) end) y += 46 end search:GetPropertyChangedSignal("Text"):Connect(function() local term = string.lower(search.Text) for _, child in ipairs(list:GetChildren()) do if child:IsA("TextButton") then child.Visible = term == "" or string.find(string.lower(child.Text), term, 1, true) ~= nil end end end) UIS.InputBegan:Connect(function(input, processed) if not processed and input.KeyCode == Enum.KeyCode.RightShift and gui.Parent then window.Visible = not window.Visible end end) original.Gravity = workspace.Gravity renderTab("Movement") setStatus("READY · RIGHT SHIFT HIDES PANEL")