--[[ 30‑TOGGLE PURPLE CHAOS PANEL • Studio-safe, LocalScript (StarterPlayerScripts) • Fly-ish, noclip, speed, jump, ESP, visual FX, camera stuff, etc. • 30 toggles, all actually do something ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") local player = Players.LocalPlayer local function getChar() local c = player.Character or player.CharacterAdded:Wait() local hrp = c:WaitForChild("HumanoidRootPart") local hum = c:WaitForChild("Humanoid") return c, hrp, hum end local gui = Instance.new("ScreenGui") gui.Name = "ThirtyTogglePanel" gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") -- MAIN WINDOW local window = Instance.new("Frame") window.Size = UDim2.new(0, 480, 0, 540) window.Position = UDim2.new(0.5, -240, 0.5, -270) window.BackgroundColor3 = Color3.fromRGB(10, 5, 20) window.BorderSizePixel = 0 window.Parent = gui Instance.new("UICorner", window).CornerRadius = UDim.new(0, 12) local stroke = Instance.new("UIStroke") stroke.Thickness = 2 stroke.Color = Color3.fromRGB(180, 0, 255) stroke.Parent = window -- TITLE BAR local titleBar = Instance.new("Frame") titleBar.Size = UDim2.new(1, 0, 0, 45) titleBar.BackgroundColor3 = Color3.fromRGB(20, 10, 40) titleBar.BorderSizePixel = 0 titleBar.Parent = window Instance.new("UICorner", titleBar).CornerRadius = UDim.new(0, 12) local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -50, 1, 0) title.Position = UDim2.new(0, 10, 0, 0) title.BackgroundTransparency = 1 title.Text = "⚡ 30‑Toggle Purple Chaos Panel ⚡" title.Font = Enum.Font.GothamBold title.TextSize = 20 title.TextColor3 = Color3.fromRGB(220, 160, 255) title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = titleBar -- CLOSE BUTTON local close = Instance.new("TextButton") close.Size = UDim2.new(0, 40, 0, 40) close.Position = UDim2.new(1, -45, 0, 2) close.BackgroundColor3 = Color3.fromRGB(60, 0, 40) close.Text = "X" close.Font = Enum.Font.GothamBold close.TextSize = 20 close.TextColor3 = Color3.fromRGB(255, 120, 160) Instance.new("UICorner", close).CornerRadius = UDim.new(0, 8) close.Parent = titleBar close.MouseButton1Click:Connect(function() window.Visible = not window.Visible end) -- SCROLL AREA local scroll = Instance.new("ScrollingFrame") scroll.Size = UDim2.new(1, -20, 1, -70) scroll.Position = UDim2.new(0, 10, 0, 60) scroll.CanvasSize = UDim2.new(0, 0, 0, 1600) scroll.ScrollBarThickness = 6 scroll.BackgroundTransparency = 1 scroll.Parent = window local layout = Instance.new("UIGridLayout") layout.CellSize = UDim2.new(0, 220, 0, 40) layout.CellPadding = UDim2.new(0, 10, 0, 10) layout.FillDirection = Enum.FillDirection.Horizontal layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Parent = scroll --------------------------------------------------------------------- -- STATE + TOGGLE LOGIC --------------------------------------------------------------------- local connections = {} local espHighlights = {} local rainbowConn local spinConn local noclipConn local autoJumpConn local cameraShakeConn local orbitConn local antiIdleConn local autoRespawnConn local autoResetConn local autoHealConn local defaultWalkSpeed = 16 local defaultJumpPower = 50 local defaultGravity = workspace.Gravity local defaultFOV = workspace.CurrentCamera and workspace.CurrentCamera.FieldOfView or 70 local defaultBrightness = Lighting.Brightness local defaultClockTime = Lighting.ClockTime local function clearConn(ref) if ref then ref:Disconnect() end return nil end local function setESP(enabled) for _, h in pairs(espHighlights) do h:Destroy() end table.clear(espHighlights) if not enabled then return end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= player and plr.Character then local h = Instance.new("Highlight") h.FillColor = Color3.fromRGB(200, 80, 255) h.OutlineColor = Color3.fromRGB(255, 255, 255) h.FillTransparency = 0.7 h.Adornee = plr.Character h.Parent = gui table.insert(espHighlights, h) end end connections["ESPPlayers"] = clearConn(connections["ESPPlayers"]) connections["ESPPlayers"] = Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(function() if not gui.Parent then return end local h = Instance.new("Highlight") h.FillColor = Color3.fromRGB(200, 80, 255) h.OutlineColor = Color3.fromRGB(255, 255, 255) h.FillTransparency = 0.7 h.Adornee = plr.Character h.Parent = gui table.insert(espHighlights, h) end) end) end local function setRainbowChar(enabled) rainbowConn = clearConn(rainbowConn) if not enabled then return end rainbowConn = RunService.RenderStepped:Connect(function(dt) local c = player.Character if not c then return end local t = tick() * 0.5 local r = 0.5 + 0.5 * math.sin(t) local g = 0.5 + 0.5 * math.sin(t + 2) local b = 0.5 + 0.5 * math.sin(t + 4) local col = Color3.new(r, g, b) for _, p in ipairs(c:GetDescendants()) do if p:IsA("BasePart") then p.Color = col end end end) end local function setSpin(enabled) spinConn = clearConn(spinConn) if not enabled then return end spinConn = RunService.RenderStepped:Connect(function(dt) local c, hrp = getChar() hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(2), 0) end) end local function setNoclip(enabled) noclipConn = clearConn(noclipConn) if not enabled then return end noclipConn = RunService.Stepped:Connect(function() local c = player.Character if not c then return end for _, p in ipairs(c:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end) end local function setAutoJump(enabled) autoJumpConn = clearConn(autoJumpConn) if not enabled then return end autoJumpConn = RunService.RenderStepped:Connect(function() local c, _, hum = getChar() hum.Jump = true end) end local function setCameraShake(enabled) cameraShakeConn = clearConn(cameraShakeConn) if not enabled then return end cameraShakeConn = RunService.RenderStepped:Connect(function() local cam = workspace.CurrentCamera if not cam then return end local offset = Vector3.new( (math.random() - 0.5) * 0.4, (math.random() - 0.5) * 0.4, (math.random() - 0.5) * 0.4 ) cam.CFrame = cam.CFrame * CFrame.new(offset) end) end local function setOrbitCamera(enabled) orbitConn = clearConn(orbitConn) if not enabled then return end orbitConn = RunService.RenderStepped:Connect(function() local cam = workspace.CurrentCamera local c, hrp = getChar() local t = tick() local radius = 15 local height = 5 local pos = hrp.Position + Vector3.new(math.cos(t) * radius, height, math.sin(t) * radius) cam.CFrame = CFrame.new(pos, hrp.Position) end) end local function setAntiIdle(enabled) antiIdleConn = clearConn(antiIdleConn) if not enabled then return end antiIdleConn = RunService.RenderStepped:Connect(function() local c, hrp = getChar() hrp.CFrame = hrp.CFrame * CFrame.new(0, 0, 0.001) end) end local function setAutoRespawn(enabled) autoRespawnConn = clearConn(autoRespawnConn) if not enabled then return end autoRespawnConn = player.CharacterAdded:Connect(function(c) local hum = c:WaitForChild("Humanoid") hum.Died:Connect(function() task.wait(1) if player and player.Character == c then player:LoadCharacter() end end) end) end local function setAutoReset(enabled) autoResetConn = clearConn(autoResetConn) if not enabled then return end autoResetConn = RunService.Stepped:Connect(function() local c, _, hum = getChar() if hum.Health > 0 then hum.Health = hum.MaxHealth end end) end local function setAutoHeal(enabled) autoHealConn = clearConn(autoHealConn) if not enabled then return end autoHealConn = RunService.Stepped:Connect(function() local c, _, hum = getChar() if hum.Health < hum.MaxHealth then hum.Health = hum.MaxHealth end end) end --------------------------------------------------------------------- -- TOGGLE DEFINITIONS --------------------------------------------------------------------- local toggleDefs = { { "Speed Boost", function(on) local _, _, hum = getChar() hum.WalkSpeed = on and 40 or defaultWalkSpeed end }, { "Jump Boost", function(on) local _, _, hum = getChar() hum.JumpPower = on and 100 or defaultJumpPower end }, { "Infinite Jump", function(on) connections["InfJump"] = clearConn(connections["InfJump"]) if not on then return end connections["InfJump"] = game:GetService("UserInputService").JumpRequest:Connect(function() local _, _, hum = getChar() hum:ChangeState(Enum.HumanoidStateType.Jumping) end) end }, { "Noclip", function(on) setNoclip(on) end }, { "Hover Fly", function(on) local _, _, hum = getChar() hum.WalkSpeed = on and 32 or defaultWalkSpeed hum.HipHeight = on and 8 or 2 end }, { "ESP Players", function(on) setESP(on) end }, { "Night Vision", function(on) Lighting.Brightness = on and 4 or defaultBrightness Lighting.ClockTime = on and 0.5 or defaultClockTime end }, { "Wide FOV", function(on) local cam = workspace.CurrentCamera if cam then cam.FieldOfView = on and 100 or defaultFOV end end }, { "ForceField", function(on) local c = player.Character if not c then return end local existing = c:FindFirstChildOfClass("ForceField") if on and not existing then Instance.new("ForceField", c) elseif not on and existing then existing:Destroy() end end }, { "Sparkles", function(on) local c = player.Character if not c then return end for _, p in ipairs(c:GetDescendants()) do if p:IsA("BasePart") then local s = p:FindFirstChildOfClass("Sparkles") if on and not s then local sp = Instance.new("Sparkles") sp.SparkleColor = Color3.fromRGB(200, 120, 255) sp.Parent = p elseif not on and s then s:Destroy() end end end end }, { "Light Aura", function(on) local c, hrp = getChar() local l = hrp:FindFirstChild("AuraLight") if on and not l then l = Instance.new("PointLight") l.Name = "AuraLight" l.Color = Color3.fromRGB(200, 120, 255) l.Range = 20 l.Brightness = 3 l.Parent = hrp elseif not on and l then l:Destroy() end end }, { "Rainbow Character", function(on) setRainbowChar(on) end }, { "Spin Character", function(on) setSpin(on) end }, { "Auto Jump", function(on) setAutoJump(on) end }, { "Auto Sit", function(on) connections["AutoSit"] = clearConn(connections["AutoSit"]) if not on then return end connections["AutoSit"] = RunService.Stepped:Connect(function() local _, _, hum = getChar() hum.Sit = true end) end }, { "Camera Shake", function(on) setCameraShake(on) end }, { "Orbit Camera", function(on) setOrbitCamera(on) end }, { "Low Gravity", function(on) workspace.Gravity = on and (defaultGravity / 4) or defaultGravity end }, { "Walk on Water (HipHeight)", function(on) local _, _, hum = getChar() hum.HipHeight = on and 12 or 2 end }, { "Anti Idle Wiggle", function(on) setAntiIdle(on) end }, { "Auto Respawn", function(on) setAutoRespawn(on) end }, { "Auto Heal", function(on) setAutoHeal(on) end }, { "Auto Reset (God Mode-ish)", function(on) setAutoReset(on) end }, { "Auto Equip First Tool", function(on) connections["AutoEquip"] = clearConn(connections["AutoEquip"]) if not on then return end connections["AutoEquip"] = RunService.Stepped:Connect(function() local bp = player:FindFirstChildOfClass("Backpack") if not bp then return end local tool = bp:FindFirstChildOfClass("Tool") if tool and not tool.Parent:IsA("Model") then tool.Parent = player.Character end end) end }, { "Anchor Character", function(on) local c = player.Character if not c then return end for _, p in ipairs(c:GetDescendants()) do if p:IsA("BasePart") and p.Name == "HumanoidRootPart" then p.Anchored = on end end end }, { "UI Blur", function(on) local blur = Lighting:FindFirstChild("ChaosBlur") if on and not blur then blur = Instance.new("BlurEffect") blur.Name = "ChaosBlur" blur.Size = 10 blur.Parent = Lighting elseif not on and blur then blur:Destroy() end end }, { "World Purple Tint", function(on) Lighting.ColorShift_Top = on and Color3.fromRGB(200, 120, 255) or Color3.new(0,0,0) Lighting.ColorShift_Bottom = on and Color3.fromRGB(80, 0, 120) or Color3.new(0,0,0) end }, { "Chaos Mode (Print Spam)", function(on) connections["ChaosPrint"] = clearConn(connections["ChaosPrint"]) if not on then return end connections["ChaosPrint"] = RunService.Stepped:Connect(function() if math.random() < 0.02 then print("CHAOS MODE:", math.random(1,9999)) end end) end }, { "Kick Yourself (once)", function(on) if on then player:Kick("You toggled Kick Yourself.") end end }, } --------------------------------------------------------------------- -- UI CREATION --------------------------------------------------------------------- local togglesState = {} local function createToggle(index, def) local name = def[1] local callback = def[2] local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 220, 0, 40) btn.BackgroundColor3 = Color3.fromRGB(25, 10, 40) btn.Text = name .. " : OFF" btn.Font = Enum.Font.Gotham btn.TextSize = 16 btn.TextColor3 = Color3.fromRGB(200, 180, 220) btn.Parent = scroll Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8) local stroke = Instance.new("UIStroke") stroke.Thickness = 1 stroke.Color = Color3.fromRGB(160, 80, 255) stroke.Parent = btn local on = false togglesState[index] = false btn.MouseButton1Click:Connect(function() on = not on togglesState[index] = on btn.Text = name .. " : " .. (on and "ON" or "OFF") btn.TextColor3 = on and Color3.fromRGB(255, 220, 255) or Color3.fromRGB(200, 180, 220) btn.BackgroundColor3 = on and Color3.fromRGB(60, 20, 90) or Color3.fromRGB(25, 10, 40) task.spawn(function() callback(on) end) end) end for i, def in ipairs(toggleDefs) do createToggle(i, def) end print("30‑Toggle Purple Chaos Panel loaded.")