-- ============================================================ -- 👑 ADMIN PANEL — клиентская имитация -- Всё что можно с клиента. Серверные функции — только визуально. -- ============================================================ local Players = game:GetService("Players") local Lighting = game:GetService("Lighting") local RunService = game:GetService("RunService") local SoundSvc = game:GetService("SoundService") local Debris = game:GetService("Debris") local LP = Players.LocalPlayer local PG = LP:WaitForChild("PlayerGui") local CLICK_SOUND = "rbxassetid://3800990183" local origLighting = { Ambient = Lighting.Ambient, OutdoorAmbient = Lighting.OutdoorAmbient, Brightness = Lighting.Brightness, FogColor = Lighting.FogColor, FogStart = Lighting.FogStart, FogEnd = Lighting.FogEnd, ClockTime = Lighting.ClockTime, GlobalShadows = Lighting.GlobalShadows, } local S = { god = false, invisible = false, fly = false, noclip = false, speed = false, infJump = false, freecam = false, } local savedCFrames = {} local flyBV, flyBG, noclipConn, freecamConn local camOrigCFrame local clickProto = Instance.new("Sound") clickProto.SoundId = CLICK_SOUND clickProto.Volume = 1 clickProto.Parent = SoundSvc local function click() local s = clickProto:Clone() s.Parent = SoundSvc s:Play() Debris:AddItem(s, 2) end -- === GUI === local gui = Instance.new("ScreenGui") gui.Name = "AdminPanel" gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.Parent = PG local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 300, 0, 450) frame.Position = UDim2.new(0.5, -150, 0.5, -225) frame.BackgroundColor3 = Color3.fromRGB(10, 10, 15) frame.BorderColor3 = Color3.fromRGB(255, 215, 0) frame.BorderSizePixel = 3 frame.Active = true frame.Draggable = true frame.Parent = gui Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10) local titleBar = Instance.new("Frame") titleBar.Size = UDim2.new(1, 0, 0, 40) titleBar.BackgroundColor3 = Color3.fromRGB(20, 15, 5) titleBar.BorderSizePixel = 0 titleBar.Parent = frame Instance.new("UICorner", titleBar).CornerRadius = UDim.new(0, 10) local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -50, 1, 0) title.BackgroundTransparency = 1 title.Text = "👑 ADMIN PANEL" title.TextColor3 = Color3.fromRGB(255, 215, 0) title.Font = Enum.Font.GothamBold title.TextSize = 18 title.TextXAlignment = Enum.TextXAlignment.Left title.Position = UDim2.new(0, 15, 0, 0) title.Parent = titleBar local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 30, 0, 30) closeBtn.Position = UDim2.new(1, -35, 0, 5) closeBtn.BackgroundColor3 = Color3.fromRGB(80, 20, 20) closeBtn.BorderSizePixel = 0 closeBtn.Text = "✕" closeBtn.TextColor3 = Color3.fromRGB(255, 100, 100) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 16 closeBtn.Parent = titleBar Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 5) closeBtn.MouseButton1Click:Connect(function() click() frame.Visible = false end) local icon = Instance.new("TextButton") icon.Size = UDim2.new(0, 55, 0, 55) icon.Position = UDim2.new(0, 10, 0, 10) icon.BackgroundColor3 = Color3.fromRGB(10, 10, 15) icon.BorderColor3 = Color3.fromRGB(255, 215, 0) icon.BorderSizePixel = 2 icon.Text = "👑" icon.TextColor3 = Color3.fromRGB(255, 215, 0) icon.Font = Enum.Font.GothamBold icon.TextSize = 26 icon.Parent = gui Instance.new("UICorner", icon).CornerRadius = UDim.new(0, 10) icon.MouseButton1Click:Connect(function() click() frame.Visible = not frame.Visible end) local info = Instance.new("TextLabel") info.Size = UDim2.new(1, -20, 0, 24) info.Position = UDim2.new(0, 10, 0, 45) info.BackgroundTransparency = 1 info.Text = "Сервер: " .. #Players:GetPlayers() .. " игроков" info.TextColor3 = Color3.fromRGB(180, 180, 180) info.Font = Enum.Font.Code info.TextSize = 12 info.TextXAlignment = Enum.TextXAlignment.Left info.Parent = frame local scroll = Instance.new("ScrollingFrame") scroll.Size = UDim2.new(1, -10, 1, -130) scroll.Position = UDim2.new(0, 5, 0, 72) scroll.BackgroundTransparency = 1 scroll.BorderSizePixel = 0 scroll.ScrollBarThickness = 4 scroll.ScrollBarImageColor3 = Color3.fromRGB(255, 215, 0) scroll.CanvasSize = UDim2.new(0, 0, 0, 0) scroll.ScrollingDirection = Enum.ScrollingDirection.Y scroll.Parent = frame local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0, 4) layout.HorizontalAlignment = Enum.HorizontalAlignment.Center layout.Parent = scroll layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() scroll.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y + 10) end) local leaveBtn = Instance.new("TextButton") leaveBtn.Size = UDim2.new(1, -10, 0, 34) leaveBtn.Position = UDim2.new(0, 5, 1, -39) leaveBtn.BackgroundColor3 = Color3.fromRGB(120, 0, 0) leaveBtn.BorderSizePixel = 0 leaveBtn.Text = "🚪 ПОКИНУТЬ СЕРВЕР" leaveBtn.TextColor3 = Color3.fromRGB(255, 255, 255) leaveBtn.Font = Enum.Font.GothamBold leaveBtn.TextSize = 14 leaveBtn.Parent = frame Instance.new("UICorner", leaveBtn).CornerRadius = UDim.new(0, 5) local function getChar() return LP.Character end local function getHRP() local c = getChar() return c and c:FindFirstChild("HumanoidRootPart") end local function getHum() local c = getChar() return c and c:FindFirstChildOfClass("Humanoid") end -- === ФУНКЦИИ === local function toggleGod(on) S.god = on task.spawn(function() while S.god do task.wait(0.1) local h = getHum() if h then h.MaxHealth = math.huge h.Health = math.huge h.BreakJointsOnDeath = false end end end) if not on then local h = getHum() if h then h.MaxHealth = 100; h.Health = 100; h.BreakJointsOnDeath = true end end end local function toggleInvisible(on) S.invisible = on local c = getChar() if not c then return end for _, p in pairs(c:GetDescendants()) do if p:IsA("BasePart") or p:IsA("Decal") then if on then p.Transparency = 1 else if p:IsA("BasePart") and p.Name ~= "HumanoidRootPart" then p.Transparency = 0 elseif p:IsA("Decal") then p.Transparency = 0 end end end end end local function toggleFly(on) local hrp = getHRP() if on and hrp then flyBV = Instance.new("BodyVelocity", hrp) flyBV.MaxForce = Vector3.new(9e9, 9e9, 9e9) flyBV.Velocity = Vector3.zero flyBG = Instance.new("BodyGyro", hrp) flyBG.MaxTorque = Vector3.new(9e9, 9e9, 9e9) flyBG.P = 9e4 flyBG.CFrame = hrp.CFrame S.fly = true task.spawn(function() while S.fly do task.wait() local h = getHRP() if not h then break end flyBV.Velocity = Vector3.zero flyBG.CFrame = h.CFrame end end) else if flyBV then flyBV:Destroy(); flyBV = nil end if flyBG then flyBG:Destroy(); flyBG = nil end S.fly = false end end local function toggleNoclip(on) if on then S.noclip = true if noclipConn then noclipConn:Disconnect() end noclipConn = RunService.Stepped:Connect(function() if not S.noclip then return end local c = getChar() if c then for _, p in pairs(c:GetDescendants()) do if p:IsA("BasePart") and p.CanCollide then p.CanCollide = false end end end end) else S.noclip = false if noclipConn then noclipConn:Disconnect(); noclipConn = nil end end end local function toggleSpeed(on) local h = getHum() if h then h.WalkSpeed = on and 100 or 16 S.speed = on end end local function toggleInfJump(on) local h = getHum() if h then h.UseJumpPower = true h.JumpPower = on and 200 or 50 S.infJump = on end end local function toggleFreecam(on) local cam = workspace.CurrentCamera if not cam then return end if on then camOrigCFrame = cam.CFrame cam.CameraType = Enum.CameraType.Scriptable S.freecam = true local keys = {} game:GetService("UserInputService").InputBegan:Connect(function(input, gp) if not gp then keys[input.KeyCode] = true end end) game:GetService("UserInputService").InputEnded:Connect(function(input, gp) keys[input.KeyCode] = false end) freecamConn = RunService.RenderStepped:Connect(function() if not S.freecam then return end local move = Vector3.zero if keys[Enum.KeyCode.W] then move = move + cam.CFrame.LookVector end if keys[Enum.KeyCode.S] then move = move - cam.CFrame.LookVector end if keys[Enum.KeyCode.A] then move = move - cam.CFrame.RightVector end if keys[Enum.KeyCode.D] then move = move + cam.CFrame.RightVector end if keys[Enum.KeyCode.Space] then move = move + Vector3.new(0, 1, 0) end if keys[Enum.KeyCode.LeftShift] then move = move - Vector3.new(0, 1, 0) end if move.Magnitude > 0 then cam.CFrame = cam.CFrame + move.Unit * 2 end end) else S.freecam = false if freecamConn then freecamConn:Disconnect(); freecamConn = nil end if camOrigCFrame then cam.CFrame = camOrigCFrame end cam.CameraType = Enum.CameraType.Custom end end local function setTime(t) Lighting.ClockTime = t end local function toggleFog(on) if on then Lighting.FogColor = origLighting.FogColor Lighting.FogStart = origLighting.FogStart Lighting.FogEnd = origLighting.FogEnd else Lighting.FogStart = 0 Lighting.FogEnd = 100000 end end local function setSkyColor(r, g, b) Lighting.Ambient = Color3.fromRGB(r, g, b) Lighting.OutdoorAmbient = Color3.fromRGB(r, g, b) end local function teleportSpawn() local hrp = getHRP() local spawn = workspace:FindFirstChildOfClass("SpawnLocation") if hrp and spawn then hrp.CFrame = spawn.CFrame + Vector3.new(0, 5, 0) end end local function teleportUp() local hrp = getHRP() if hrp then hrp.CFrame = hrp.CFrame + Vector3.new(0, 100, 0) end end local function toggleCharacterSize(on) local c = getChar() if not c then return end local h = getHum() if not h then return end if on then h.BodyDepthScale.Value = 2 h.BodyHeightScale.Value = 2 h.BodyWidthScale.Value = 2 h.HeadScale.Value = 2 else h.BodyDepthScale.Value = 1 h.BodyHeightScale.Value = 1 h.BodyWidthScale.Value = 1 h.HeadScale.Value = 1 end end local function showServerInfo() local players = #Players:GetPlayers() local maxPlayers = Players.MaxPlayers local jobId = game.JobId local infoGui = Instance.new("ScreenGui") infoGui.Name = "AdminServerInfo" infoGui.ResetOnSpawn = false infoGui.Parent = PG local box = Instance.new("Frame") box.Size = UDim2.new(0, 300, 0, 200) box.Position = UDim2.new(0.5, -150, 0.5, -100) box.BackgroundColor3 = Color3.fromRGB(10, 10, 15) box.BorderColor3 = Color3.fromRGB(255, 215, 0) box.BorderSizePixel = 2 box.Parent = infoGui Instance.new("UICorner", box).CornerRadius = UDim.new(0, 8) local t = Instance.new("TextLabel") t.Size = UDim2.new(1, -20, 0, 30) t.Position = UDim2.new(0, 10, 0, 10) t.BackgroundTransparency = 1 t.Text = "📊 ИНФО О СЕРВЕРЕ" t.TextColor3 = Color3.fromRGB(255, 215, 0) t.Font = Enum.Font.GothamBold t.TextSize = 16 t.Parent = box local list = Instance.new("TextLabel") list.Size = UDim2.new(1, -20, 1, -80) list.Position = UDim2.new(0, 10, 0, 45) list.BackgroundTransparency = 1 list.Text = "Игроков: " .. players .. "/" .. maxPlayers .. "\nJob ID: " .. jobId:sub(1, 8) .. "..." .. "\nИгра: " .. game.PlaceId .. "\nСоздатель: " .. game.CreatorId list.TextColor3 = Color3.fromRGB(220, 220, 220) list.Font = Enum.Font.Code list.TextSize = 13 list.TextXAlignment = Enum.TextXAlignment.Left list.TextYAlignment = Enum.TextYAlignment.Top list.Parent = box local close = Instance.new("TextButton") close.Size = UDim2.new(1, -20, 0, 30) close.Position = UDim2.new(0, 10, 1, -40) close.BackgroundColor3 = Color3.fromRGB(80, 20, 20) close.Text = "ЗАКРЫТЬ" close.TextColor3 = Color3.fromRGB(255, 255, 255) close.Font = Enum.Font.GothamBold close.TextSize = 13 close.BorderSizePixel = 0 close.Parent = box Instance.new("UICorner", close).CornerRadius = UDim.new(0, 5) close.MouseButton1Click:Connect(function() click() infoGui:Destroy() end) end -- === КНОПКИ === local BTN_H = 34 local BTN_G = 4 local yPos = 0 local toggleButtons = {} local function addToggle(name, onChange) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -6, 0, BTN_H) btn.BackgroundColor3 = Color3.fromRGB(25, 25, 30) btn.BorderColor3 = Color3.fromRGB(255, 215, 0) btn.BorderSizePixel = 1 btn.Text = name .. " [OFF]" btn.TextColor3 = Color3.fromRGB(230, 230, 230) btn.Font = Enum.Font.Gotham btn.TextSize = 13 btn.Parent = scroll Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 5) local active = false local data = { btn = btn, name = name, setActive = function(v) active = v btn.Text = name .. " [" .. (active and "ON" or "OFF") .. "]" btn.BackgroundColor3 = active and Color3.fromRGB(80, 60, 0) or Color3.fromRGB(25, 25, 30) end } table.insert(toggleButtons, data) btn.MouseButton1Click:Connect(function() click() active = not active data.setActive(active) if onChange then pcall(onChange, active) end end) yPos = yPos + BTN_H + BTN_G end local function addAction(name, color, onClick) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -6, 0, BTN_H) btn.BackgroundColor3 = color or Color3.fromRGB(30, 30, 60) btn.BorderColor3 = Color3.fromRGB(255, 215, 0) btn.BorderSizePixel = 1 btn.Text = name btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.Font = Enum.Font.Gotham btn.TextSize = 13 btn.Parent = scroll Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 5) btn.MouseButton1Click:Connect(function() click() if onClick then pcall(onClick) end end) yPos = yPos + BTN_H + BTN_G end addToggle("🛡 GOD MODE", toggleGod) addToggle("👻 INVISIBLE", toggleInvisible) addToggle("🕊 FLY", toggleFly) addToggle("🚪 NOCLIP", toggleNoclip) addToggle("💨 SPEED x6", toggleSpeed) addToggle("🦘 INF JUMP", toggleInfJump) addToggle("🎥 FREECAM", toggleFreecam) addToggle("📏 BIG CHARACTER", toggleCharacterSize) addToggle("🌫 FOG ON/OFF", toggleFog) addAction("☀️ ДЕНЬ (12:00)", Color3.fromRGB(200, 150, 0), function() setTime(12) end) addAction("🌙 НОЧЬ (0:00)", Color3.fromRGB(30, 30, 80), function() setTime(0) end) addAction("🌅 ЗАКАТ (18:00)", Color3.fromRGB(200, 80, 0), function() setTime(18) end) addAction("🌫 СИНИЙ ТУМАН", Color3.fromRGB(0, 50, 100), function() setSkyColor(0, 50, 100) end) addAction("🟥 КРАСНЫЙ АД", Color3.fromRGB(100, 0, 0), function() setSkyColor(100, 0, 0) end) addAction("⬆️ ТЕЛЕПОРТ НА СПАВН", Color3.fromRGB(0, 80, 30), teleportSpawn) addAction("⬆️ ТЕЛЕПОРТ +100 ВВЕРХ", Color3.fromRGB(0, 80, 30), teleportUp) addAction("📊 ИНФО О СЕРВЕРЕ", Color3.fromRGB(50, 50, 100), showServerInfo) scroll.CanvasSize = UDim2.new(0, 0, 0, yPos + 10) leaveBtn.MouseButton1Click:Connect(function() click() LP:Kick("Покинул сервер через ADMIN PANEL") end) LP.CharacterAdded:Connect(function() task.wait(1) if S.god then toggleGod(true) end if S.invisible then toggleInvisible(true) end if S.speed then toggleSpeed(true) end if S.infJump then toggleInfJump(true) end end) print("[ADMIN PANEL] загружено. Всё клиентское — серверных прав нет.")