local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Lighting = game:GetService("Lighting")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local camera = workspace.CurrentCamera
-- Master Containers
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "WurstClientGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui
local hudGui = Instance.new("ScreenGui")
hudGui.Name = "WurstHUD"
hudGui.ResetOnSpawn = false
hudGui.Parent = playerGui
-- Fonts & Palette
local PIXEL_FONT = Enum.Font.Arcade
local CLEAN_FONT = Enum.Font.Code
-- =================================================================
-- Global State Store
-- =================================================================
local Settings = {
FlightSpeed = 50,
WalkSpeedVal = 32,
JumpPowerVal = 100,
TimerSpeed = 1.0,
FastBreakSpeed = 2.0,
FOVVal = 90
}
local Modules = {}
local activeLabels = {}
local function getChar()
local char = player.Character
if not char then return nil, nil end
local hum = char:FindFirstChildOfClass("Humanoid")
local root = char:FindFirstChild("HumanoidRootPart")
return hum, root
end
-- =================================================================
-- 1. HUD: TOP-LEFT BADGE & ACTIVE ARRAY-LIST
-- =================================================================
local logoFrame = Instance.new("Frame")
logoFrame.Size = UDim2.new(0, 110, 0, 28)
logoFrame.Position = UDim2.new(0, 10, 0, 10)
logoFrame.BackgroundColor3 = Color3.fromRGB(225, 105, 0)
logoFrame.BorderSizePixel = 1
logoFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
logoFrame.Parent = hudGui
local logoText = Instance.new("TextLabel")
logoText.Size = UDim2.new(1, 0, 1, 0)
logoText.BackgroundTransparency = 1
logoText.Text = "WURST"
logoText.TextColor3 = Color3.fromRGB(0, 0, 0)
logoText.Font = PIXEL_FONT
logoText.TextSize = 22
logoText.Parent = logoFrame
local arrayList = Instance.new("Frame")
arrayList.Size = UDim2.new(0, 180, 0.85, 0)
arrayList.Position = UDim2.new(0, 10, 0, 44)
arrayList.BackgroundTransparency = 1
arrayList.Parent = hudGui
local arrayLayout = Instance.new("UIListLayout")
arrayLayout.SortOrder = Enum.SortOrder.LayoutOrder
arrayLayout.Padding = UDim.new(0, 1)
arrayLayout.Parent = arrayList
local function setHUDItem(name, state)
if state then
if not activeLabels[name] then
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(1, 0, 0, 16)
lbl.BackgroundTransparency = 1
lbl.Text = name
lbl.TextColor3 = Color3.fromRGB(240, 240, 240)
lbl.Font = CLEAN_FONT
lbl.TextSize = 13
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.TextStrokeTransparency = 0.3
lbl.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
lbl.Parent = arrayList
activeLabels[name] = lbl
end
else
if activeLabels[name] then
activeLabels[name]:Destroy()
activeLabels[name] = nil
end
end
end
-- =================================================================
-- 2. DRAGGING ENGINE
-- =================================================================
local function makeDraggable(frame, handle)
local dragging, dragStart, startPos
handle.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = frame.Position
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
frame.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
end
-- =================================================================
-- 3. CONTEXT SLIDERS (RIGHT-CLICK TO EDIT)
-- =================================================================
local contextWindow = Instance.new("Frame")
contextWindow.Size = UDim2.new(0, 160, 0, 120)
contextWindow.Position = UDim2.new(0, 500, 0, 200)
contextWindow.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
contextWindow.BorderSizePixel = 1
contextWindow.BorderColor3 = Color3.fromRGB(0, 0, 0)
contextWindow.Visible = false
contextWindow.Parent = screenGui
local contextHeader = Instance.new("TextLabel")
contextHeader.Size = UDim2.new(1, 0, 0, 20)
contextHeader.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
contextHeader.BorderSizePixel = 0
contextHeader.Text = " Module Settings"
contextHeader.TextColor3 = Color3.fromRGB(240, 240, 240)
contextHeader.Font = PIXEL_FONT
contextHeader.TextSize = 13
contextHeader.TextXAlignment = Enum.TextXAlignment.Left
contextHeader.Parent = contextWindow
makeDraggable(contextWindow, contextHeader)
local contextList = Instance.new("Frame")
contextList.Size = UDim2.new(1, 0, 1, -20)
contextList.Position = UDim2.new(0, 0, 0, 20)
contextList.BackgroundTransparency = 1
contextList.Parent = contextWindow
local contextLayout = Instance.new("UIListLayout")
contextLayout.SortOrder = Enum.SortOrder.LayoutOrder
contextLayout.Padding = UDim.new(0, 4)
contextLayout.Parent = contextList
local function openSettingsFor(modName, sliders)
for _, child in ipairs(contextList:GetChildren()) do
if child:IsA("Frame") then child:Destroy() end
end
contextHeader.Text = " " .. modName .. " Options"
local count = 0
for _, sData in ipairs(sliders or {}) do
count = count + 1
local frame = Instance.new("Frame")
frame.Size = UDim2.new(1, -8, 0, 26)
frame.Position = UDim2.new(0, 4, 0, 0)
frame.BackgroundTransparency = 1
frame.Parent = contextList
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(0.6, 0, 0, 12)
lbl.BackgroundTransparency = 1
lbl.Text = sData.Name
lbl.TextColor3 = Color3.fromRGB(180, 180, 180)
lbl.Font = CLEAN_FONT
lbl.TextSize = 11
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Parent = frame
local valLbl = Instance.new("TextLabel")
valLbl.Size = UDim2.new(0.4, 0, 0, 12)
valLbl.Position = UDim2.new(0.6, 0, 0, 0)
valLbl.BackgroundTransparency = 1
valLbl.Text = string.format("%.1f", sData.Get())
valLbl.TextColor3 = Color3.fromRGB(0, 200, 0)
valLbl.Font = CLEAN_FONT
valLbl.TextSize = 11
valLbl.TextXAlignment = Enum.TextXAlignment.Right
valLbl.Parent = frame
local bar = Instance.new("TextButton")
bar.Size = UDim2.new(1, 0, 0, 8)
bar.Position = UDim2.new(0, 0, 0, 14)
bar.BackgroundColor3 = Color3.fromRGB(10, 10, 10)
bar.BorderSizePixel = 0
bar.Text = ""
bar.AutoButtonColor = false
bar.Parent = frame
local fill = Instance.new("Frame")
local pct = math.clamp((sData.Get() - sData.Min) / (sData.Max - sData.Min), 0, 1)
fill.Size = UDim2.new(pct, 0, 1, 0)
fill.BackgroundColor3 = Color3.fromRGB(0, 200, 0)
fill.BorderSizePixel = 0
fill.Parent = bar
local function updateVal(inputX)
local rel = math.clamp((inputX - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1)
fill.Size = UDim2.new(rel, 0, 1, 0)
local calculated = sData.Min + (rel * (sData.Max - sData.Min))
sData.Set(calculated)
valLbl.Text = string.format("%.1f", calculated)
end
local sliding = false
bar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
sliding = true
updateVal(input.Position.X)
end
end)
UserInputService.InputChanged:Connect(function(input)
if sliding and input.UserInputType == Enum.UserInputType.MouseMovement then
updateVal(input.Position.X)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
sliding = false
end
end)
end
if count > 0 then
contextWindow.Size = UDim2.new(0, 160, 0, 26 + (count * 30))
local mousePos = UserInputService:GetMouseLocation()
contextWindow.Position = UDim2.new(0, mousePos.X, 0, mousePos.Y - 36)
contextWindow.Visible = true
end
end
-- =================================================================
-- 4. FUNCTIONAL MECHANICS & UTILITIES
-- =================================================================
-- Flight
local flightAttachment, flightVelocity, flightOrientation
local function toggleFlight(enabled)
local _, root = getChar()
if not root then return end
if enabled then
flightAttachment = Instance.new("Attachment")
flightAttachment.Parent = root
flightVelocity = Instance.new("LinearVelocity")
flightVelocity.Attachment0 = flightAttachment
flightVelocity.MaxForce = math.huge
flightVelocity.VectorVelocity = Vector3.zero
flightVelocity.Parent = root
flightOrientation = Instance.new("AlignOrientation")
flightOrientation.Attachment0 = flightAttachment
flightOrientation.Mode = Enum.OrientationAlignmentMode.OneAttachment
flightOrientation.MaxTorque = math.huge
flightOrientation.Responsiveness = 200
flightOrientation.Parent = root
else
if flightVelocity then flightVelocity:Destroy() flightVelocity = nil end
if flightOrientation then flightOrientation:Destroy() flightOrientation = nil end
if flightAttachment then flightAttachment:Destroy() flightAttachment = nil end
end
end
-- Fullbright
local origBrightness = Lighting.Brightness
local origClock = Lighting.ClockTime
local origShadows = Lighting.GlobalShadows
local function toggleFullbright(enabled)
if enabled then
Lighting.Brightness = 2
Lighting.ClockTime = 14
Lighting.GlobalShadows = false
else
Lighting.Brightness = origBrightness
Lighting.ClockTime = origClock
Lighting.GlobalShadows = origShadows
end
end
-- LSD Visual Effect
local colorCorrection = nil
local function toggleLSD(enabled)
if enabled then
colorCorrection = Instance.new("ColorCorrectionEffect")
colorCorrection.Saturation = 3
colorCorrection.Contrast = 0.5
colorCorrection.Parent = Lighting
else
if colorCorrection then colorCorrection:Destroy() colorCorrection = nil end
end
end
-- Highlight ESP
local espHighlights = {}
local function toggleESP(enabled)
if enabled then
for _, p in ipairs(Players:GetPlayers()) do
if p ~= player and p.Character then
local hl = Instance.new("Highlight")
hl.FillColor = Color3.fromRGB(0, 255, 0)
hl.OutlineColor = Color3.fromRGB(255, 255, 255)
hl.Parent = p.Character
espHighlights[p] = hl
end
end
else
for _, hl in pairs(espHighlights) do
if hl then hl:Destroy() end
end
espHighlights = {}
end
end
-- Tracers
local tracerLines = {}
local tracerFolder = Instance.new("Folder")
tracerFolder.Name = "TracersContainer"
tracerFolder.Parent = workspace
local function updateTracers(enabled)
if not enabled then
for _, adorn in pairs(tracerLines) do adorn:Destroy() end
tracerLines = {}
return
end
local _, root = getChar()
if not root then return end
for _, p in ipairs(Players:GetPlayers()) do
if p ~= player and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
local targetRoot = p.Character.HumanoidRootPart
local line = tracerLines[p]
if not line then
line = Instance.new("LineHandleAdornment")
line.Color3 = Color3.fromRGB(0, 255, 0)
line.Thickness = 2
line.AlwaysOnTop = true
line.ZIndex = 5
line.Adornee = root
line.Parent = tracerFolder
tracerLines[p] = line
end
line.Length = (targetRoot.Position - root.Position).Magnitude
line.CFrame = CFrame.lookAt(Vector3.zero, root.CFrame:PointToObjectSpace(targetRoot.Position))
else
if tracerLines[p] then
tracerLines[p]:Destroy()
tracerLines[p] = nil
end
end
end
end
-- =================================================================
-- 5. RUNTIME PHYSICS / RENDER LOOP
-- =================================================================
RunService.RenderStepped:Connect(function()
local hum, root = getChar()
if not hum or not root then return end
-- Flight Controls
if Modules["Flight"] and flightVelocity and flightOrientation then
local camCF = camera.CFrame
local dir = Vector3.zero
if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir = dir + camCF.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir = dir - camCF.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir = dir - camCF.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir = dir + camCF.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then dir = dir + Vector3.new(0, 1, 0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then dir = dir - Vector3.new(0, 1, 0) end
flightVelocity.VectorVelocity = (dir.Magnitude > 0) and (dir.Unit * Settings.FlightSpeed) or Vector3.zero
flightOrientation.CFrame = camCF
end
-- Movement Modifications
if Modules["AutoSprint"] then hum.WalkSpeed = Settings.WalkSpeedVal end
if Modules["HighJump"] then hum.UseJumpPower = true hum.JumpPower = Settings.JumpPowerVal end
if Modules["BunnyHop"] and hum.FloorMaterial ~= Enum.Material.Air and hum.MoveDirection.Magnitude > 0 then
hum:ChangeState(Enum.HumanoidStateType.Jumping)
end
if Modules["Spider"] then
local ray = workspace:Raycast(root.Position, root.CFrame.LookVector * 2)
if ray and ray.Instance then
root.AssemblyLinearVelocity = Vector3.new(root.AssemblyLinearVelocity.X, 35, root.AssemblyLinearVelocity.Z)
end
end
if Modules["Step"] then hum.MaxSlopeAngle = 89 end
if Modules["FastLadder"] and hum:GetState() == Enum.HumanoidStateType.Climbing then
root.AssemblyLinearVelocity = Vector3.new(root.AssemblyLinearVelocity.X, 35, root.AssemblyLinearVelocity.Z)
end
if Modules["Jesus"] then
local ray = workspace:Raycast(root.Position, Vector3.new(0, -3.5, 0))
if ray and ray.Material == Enum.Material.Water then
root.AssemblyLinearVelocity = Vector3.new(root.AssemblyLinearVelocity.X, 0, root.AssemblyLinearVelocity.Z)
root.Position = Vector3.new(root.Position.X, ray.Position.Y + 3, root.Position.Z)
end
end
if Modules["NoFall"] and root.AssemblyLinearVelocity.Y < -40 then
local ray = workspace:Raycast(root.Position, Vector3.new(0, -6, 0))
if ray and ray.Instance then
root.AssemblyLinearVelocity = Vector3.new(root.AssemblyLinearVelocity.X, -2, root.AssemblyLinearVelocity.Z)
end
end
-- Derp Random Animation Mod
if Modules["Derp"] then
root.CFrame = root.CFrame * CFrame.Angles(0, math.rad(math.random(1, 360)), 0)
end
-- LSD Hue Cycle
if Modules["LSD"] and colorCorrection then
local hue = (tick() % 5) / 5
colorCorrection.TintColor = Color3.fromHSV(hue, 0.8, 1)
end
-- Camera Zoom Mod
if Modules["Overlay"] or Modules["Search"] then
camera.FieldOfView = Settings.FOVVal
end
-- Tracers Sync
if Modules["Tracers"] then updateTracers(true) else updateTracers(false) end
end)
-- =================================================================
-- 6. COMPLETE MODULE DEFINITION (ALL SCREENSHOT WINDOWS)
-- =================================================================
local GUI_DATA = {
{
Name = "Render", X = 130, Y = 20, W = 135, H = 400,
Modules = {
{"AntiBlind", false},
{"ChestESP", true},
{"Freecam", false},
{"Fullbright", true, toggleFullbright},
{"HealthTags", true},
{"ItemESP", true},
{"LSD", false, toggleLSD},
{"MobESP", false},
{"NameProtect", false},
{"NameTags", true},
{"NoHurtcam", false},
{"Overlay", true},
{"PlayerESP", false, toggleESP},
{"RemoteView", false},
{"Search", false},
{"Tracers", false},
{"TrueSight", true},
{"X-Ray", false}
}
},
{
Name = "Movement", X = 275, Y = 20, W = 135, H = 400,
Modules = {
{"AutoSprint", false, nil, {{Name = "Speed", Min = 16, Max = 150, Get = function() return Settings.WalkSpeedVal end, Set = function(v) Settings.WalkSpeedVal = v end}}},
{"AutoWalk", false},
{"BunnyHop", false},
{"Dolphin", false},
{"FastLadder", true},
{"Flight", false, toggleFlight, {{Name = "Speed", Min = 10, Max = 250, Get = function() return Settings.FlightSpeed end, Set = function(v) Settings.FlightSpeed = v end}}},
{"Glide", false},
{"HighJump", false, nil, {{Name = "Power", Min = 50, Max = 300, Get = function() return Settings.JumpPowerVal end, Set = function(v) Settings.JumpPowerVal = v end}}},
{"Jesus", false},
{"Jetpack", false},
{"NoFall", true},
{"NoSlow", true},
{"Phase", false},
{"Sneak", false},
{"Spider", true},
{"Step", true},
{"Timer", false}
}
},
{
Name = "Blocks", X = 420, Y = 20, W = 135, H = 250,
Modules = {
{"AutoSign", false},
{"AutoTool", true},
{"FastBreak", true},
{"FastPlace", false},
{"Kaboom", false},
{"Liquids", false},
{"Nuker", false},
{"NukerLegit", false},
{"AutoBuild", false}
}
},
{
Name = "Misc", X = 565, Y = 20, W = 135, H = 210,
Modules = {
{"AutoSwitch", false},
{"Derp", false},
{"FastEat", true},
{"Headless", false, function(active)
local char = player.Character
local head = char and char:FindFirstChild("Head")
if head then head.Transparency = active and 1 or 0 end
end},
{"Miley Cyrus", false},
{"YesCheat+", false},
{"Panic", false, function(active)
if active then
for k, _ in pairs(Modules) do
Modules[k] = false
setHUDItem(k, false)
end
toggleFlight(false)
toggleFullbright(false)
toggleESP(false)
toggleLSD(false)
updateTracers(false)
screenGui.Enabled = false
contextWindow.Visible = false
end
end},
{"Throw", false}
}
},
{
Name = "Chat", X = 565, Y = 240, W = 135, H = 120,
Modules = {
{"AntiSpam", true},
{"ForceOP", false},
{"Joomla", false},
{"MassTPA", false}
}
},
{
Name = "Combat", X = 710, Y = 20, W = 135, H = 360,
Modules = {
{"AntiKnockback", true},
{"AutoRespawn", true, function(active)
if active then
local hum = getChar()
if hum then
hum.Died:Connect(function()
task.wait(0.5)
player:LoadCharacter()
end)
end
end
end},
{"BowAimbot", false},
{"Criticals", true},
{"FightBot", false},
{"Follow", false},
{"Invisibility", false},
{"Killaura", false},
{"KillauraLegit", false},
{"MultiAura", false},
{"Only mobs", false},
{"Only players", false},
{"Protect", false},
{"Regen", true}
}
}
}
local SLIDERS_DATA = {
{"FastBreak speed", 0, 5, 2.0},
{"Flight speed", 10, 250, 50.0},
{"Killaura fov/ww", 0, 360, 128.0},
{"Killaura hitrate", 0, 50, 20.0},
{"Killaura range", 0, 10, 4.25},
{"Nuker range", 0, 10, 4.5},
{"Timer speed", 0, 5, 2.0}
}
-- =================================================================
-- 7. UI BUILDER
-- =================================================================
local function buildWindow(config)
local win = Instance.new("Frame")
win.Size = UDim2.new(0, config.W, 0, config.H)
win.Position = UDim2.new(0, config.X, 0, config.Y)
win.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
win.BackgroundTransparency = 0.55
win.BorderSizePixel = 1
win.BorderColor3 = Color3.fromRGB(15, 15, 15)
win.Parent = screenGui
local header = Instance.new("Frame")
header.Size = UDim2.new(1, 0, 0, 22)
header.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
header.BorderSizePixel = 0
header.Parent = win
makeDraggable(win, header)
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -30, 1, 0)
title.Position = UDim2.new(0, 5, 0, 0)
title.BackgroundTransparency = 1
title.Text = config.Name
title.TextColor3 = Color3.fromRGB(240, 240, 240)
title.Font = PIXEL_FONT
title.TextSize = 15
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = header
local redBox = Instance.new("TextButton")
redBox.Size = UDim2.new(0, 9, 0, 9)
redBox.Position = UDim2.new(1, -22, 0.5, -4)
redBox.BackgroundColor3 = Color3.fromRGB(180, 30, 30)
redBox.BorderSizePixel = 0
redBox.Text = ""
redBox.Parent = header
local greenBox = Instance.new("TextButton")
greenBox.Size = UDim2.new(0, 9, 0, 9)
greenBox.Position = UDim2.new(1, -10, 0.5, -4)
greenBox.BackgroundColor3 = Color3.fromRGB(30, 180, 30)
greenBox.BorderSizePixel = 0
greenBox.Text = ""
greenBox.Parent = header
local scroll = Instance.new("ScrollingFrame")
scroll.Size = UDim2.new(1, 0, 1, -22)
scroll.Position = UDim2.new(0, 0, 0, 22)
scroll.BackgroundTransparency = 1
scroll.BorderSizePixel = 0
scroll.ScrollBarThickness = 2
scroll.CanvasSize = UDim2.new(0, 0, 0, #config.Modules * 21)
scroll.Parent = win
local collapsed = false
greenBox.MouseButton1Click:Connect(function()
collapsed = not collapsed
scroll.Visible = not collapsed
win.Size = collapsed and UDim2.new(0, config.W, 0, 22) or UDim2.new(0, config.W, 0, config.H)
end)
local list = Instance.new("UIListLayout")
list.SortOrder = Enum.SortOrder.LayoutOrder
list.Padding = UDim.new(0, 1)
list.Parent = scroll
for _, mod in ipairs(config.Modules) do
local name = mod[1]
local defaultOn = mod[2]
local callback = mod[3]
local sliders = mod[4]
Modules[name] = defaultOn
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, 0, 0, 20)
btn.BorderSizePixel = 0
btn.Text = " " .. name
btn.Font = CLEAN_FONT
btn.TextSize = 13
btn.TextXAlignment = Enum.TextXAlignment.Left
btn.AutoButtonColor = false
btn.Parent = scroll
local function updateAppearance()
local active = Modules[name]
if active then
btn.BackgroundColor3 = Color3.fromRGB(0, 200, 0)
btn.BackgroundTransparency = 0.1
btn.TextColor3 = Color3.fromRGB(0, 0, 0)
else
btn.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
btn.BackgroundTransparency = 0.6
btn.TextColor3 = Color3.fromRGB(180, 180, 180)
end
setHUDItem(name, active)
if callback then callback(active) end
end
btn.MouseButton1Click:Connect(function()
Modules[name] = not Modules[name]
updateAppearance()
end)
btn.MouseButton2Click:Connect(function()
if sliders then openSettingsFor(name, sliders) end
end)
updateAppearance()
end
end
for _, winData in ipairs(GUI_DATA) do
buildWindow(winData)
end
-- Build Live Settings Panel (Bottom Right)
local function buildSettingsPanel()
local win = Instance.new("Frame")
win.Size = UDim2.new(0, 185, 0, 240)
win.Position = UDim2.new(0, 860, 0, 240)
win.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
win.BackgroundTransparency = 0.55
win.BorderSizePixel = 1
win.BorderColor3 = Color3.fromRGB(15, 15, 15)
win.Parent = screenGui
local header = Instance.new("Frame")
header.Size = UDim2.new(1, 0, 0, 22)
header.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
header.BorderSizePixel = 0
header.Parent = win
makeDraggable(win, header)
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 1, 0)
title.Position = UDim2.new(0, 5, 0, 0)
title.BackgroundTransparency = 1
title.Text = "Settings"
title.TextColor3 = Color3.fromRGB(240, 240, 240)
title.Font = PIXEL_FONT
title.TextSize = 15
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = header
local scroll = Instance.new("ScrollingFrame")
scroll.Size = UDim2.new(1, 0, 1, -22)
scroll.Position = UDim2.new(0, 0, 0, 22)
scroll.BackgroundTransparency = 1
scroll.BorderSizePixel = 0
scroll.ScrollBarThickness = 2
scroll.CanvasSize = UDim2.new(0, 0, 0, #SLIDERS_DATA * 32)
scroll.Parent = win
local list = Instance.new("UIListLayout")
list.SortOrder = Enum.SortOrder.LayoutOrder
list.Padding = UDim.new(0, 2)
list.Parent = scroll
for _, s in ipairs(SLIDERS_DATA) do
local name, minVal, maxVal, curVal = s[1], s[2], s[3], s[4]
local frame = Instance.new("Frame")
frame.Size = UDim2.new(1, -6, 0, 28)
frame.BackgroundTransparency = 1
frame.Parent = scroll
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(0.65, 0, 0, 14)
lbl.BackgroundTransparency = 1
lbl.Text = name
lbl.TextColor3 = Color3.fromRGB(190, 190, 190)
lbl.Font = CLEAN_FONT
lbl.TextSize = 11
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Parent = frame
local valLbl = Instance.new("TextLabel")
valLbl.Size = UDim2.new(0.35, 0, 0, 14)
valLbl.Position = UDim2.new(0.65, 0, 0, 0)
valLbl.BackgroundTransparency = 1
valLbl.Text = string.format("%.1f", curVal)
valLbl.TextColor3 = Color3.fromRGB(150, 150, 150)
valLbl.Font = CLEAN_FONT
valLbl.TextSize = 11
valLbl.TextXAlignment = Enum.TextXAlignment.Right
valLbl.Parent = frame
local bar = Instance.new("TextButton")
bar.Size = UDim2.new(1, 0, 0, 4)
bar.Position = UDim2.new(0, 0, 0, 18)
bar.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
bar.BorderSizePixel = 0
bar.Text = ""
bar.AutoButtonColor = false
bar.Parent = frame
local fill = Instance.new("Frame")
local pct = math.clamp((curVal - minVal) / (maxVal - minVal), 0, 1)
fill.Size = UDim2.new(pct, 0, 1, 0)
fill.BackgroundColor3 = Color3.fromRGB(0, 200, 0)
fill.BorderSizePixel = 0
fill.Parent = bar
local function update(inputX)
local rel = math.clamp((inputX - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1)
fill.Size = UDim2.new(rel, 0, 1, 0)
local calculated = minVal + (rel * (maxVal - minVal))
valLbl.Text = string.format("%.1f", calculated)
if name == "Flight speed" then Settings.FlightSpeed = calculated end
end
local sliding = false
bar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
sliding = true
update(input.Position.X)
end
end)
UserInputService.InputChanged:Connect(function(input)
if sliding and input.UserInputType == Enum.UserInputType.MouseMovement then
update(input.Position.X)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
sliding = false
end
end)
end
end
buildSettingsPanel()
-- =================================================================
-- 8. KEYBIND (PRESS 'P' TO TOGGLE GUI)
-- =================================================================
UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
if input.KeyCode == Enum.KeyCode.P then
screenGui.Enabled = not screenGui.Enabled
if not screenGui.Enabled then
contextWindow.Visible = false
end
end
end)