My Admin Gui for pc
Key RequiredUniversal

My Admin Gui for pc

Universal ScriptScriptplayeranddoinScriptplayeranddoin 843 views 299 executesUpdated Dec 2, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•602 lines (25823 chars)
-- AdvancedAdminPanel_Final.lua
-- LocalScript -> StarterPlayer > StarterPlayerScripts
-- All-in-one: draggable modern panel, tabs, fly, speed boost (walkspeed), infinite jump, noclip, kill, fling, TP dropdown, ESP (box + tracer if available),
-- chat logs, server hop, rejoin. Buttons grey-degrade style.

-- ===== CONFIG =====
local iconPath = '/mnt/data/A_2D_digital_illustration_infographic_titled_"Miku.png' -- local asset path (will be transformed by host)

-- ===== SERVICES =====
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local TeleportService = game:GetService("TeleportService")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local cam = workspace.CurrentCamera

-- ===== UTIL =====
local function New(class, props)
    local obj = Instance.new(class)
    if props then
        for k,v in pairs(props) do
            if k == "Parent" then obj.Parent = v
            else
                pcall(function() obj[k] = v end)
            end
        end
    end
    return obj
end

local function safeDisconnect(conn)
    if conn and conn.Disconnect then
        conn:Disconnect()
    elseif conn and conn.disconnect then
        conn:disconnect()
    end
end

-- ===== STATE =====
local state = {
    guiOpen = true, -- auto-open on execute
    flying = false,
    infjump = false,
    noclip = false,
    esp = false,
    tracer = false,
    box = true,
    speed = 16,
    freecamSpeed = 3,
    autoRejoin = false,
}

-- ===== GUI BUILD =====
local screen = New("ScreenGui", {Parent = PlayerGui, ResetOnSpawn = false, Name = "AdvAdminGUI_vFinal"})
screen.Enabled = true -- open immediately when executed

-- panel
local panel = New("Frame", {Parent = screen, Size = UDim2.new(0,600,0,420), Position = UDim2.new(0.08,0,0.06,0), BackgroundColor3 = Color3.fromRGB(24,24,24)})
New("UICorner", {Parent = panel, CornerRadius = UDim.new(0,8)})
New("UIStroke", {Parent = panel, Color = Color3.fromRGB(180,180,180), Transparency = 0.85, Thickness = 1})

-- topbar
local top = New("Frame", {Parent = panel, Size = UDim2.new(1,0,0,42), BackgroundTransparency = 1})
-- Title
local title = New("TextLabel", {
    Parent = top,
    Position = UDim2.new(0,12,0,8),
    Size = UDim2.new(0.6,0,1,0),
    BackgroundTransparency = 1,
    Text = "C00lkidd-Scripts admin gui V.1",
    Font = Enum.Font.SourceSansBold,
    TextSize = 20,
    TextColor3 = Color3.fromRGB(235,235,235)
})

local closeBtn = New("TextButton", {Parent = top, Size = UDim2.new(0,34,0,34), Position = UDim2.new(1,-46,0,4), Text = "✕", TextColor3 = Color3.new(1,1,1), BackgroundColor3 = Color3.fromRGB(45,45,45)})
New("UICorner", {Parent = closeBtn, CornerRadius = UDim.new(0,6)})
New("UIStroke", {Parent = closeBtn, Color = Color3.fromRGB(140,140,140), Transparency = 0.8})

-- left tab column
local tabCol = New("Frame", {Parent = panel, Position = UDim2.new(0,12,0,56), Size = UDim2.new(0,160,1,-70), BackgroundTransparency = 1})
local tabLayout = New("UIListLayout", {Parent = tabCol, FillDirection = Enum.FillDirection.Vertical, Padding = UDim.new(0,8)})
tabLayout.SortOrder = Enum.SortOrder.LayoutOrder

-- content area
local content = New("Frame", {Parent = panel, Position = UDim2.new(0,184,0,56), Size = UDim2.new(1,-196,1,-70), BackgroundColor3 = Color3.fromRGB(18,18,18)})
New("UICorner", {Parent = content, CornerRadius = UDim.new(0,6)})

-- tab helper (grey-degrade style)
local pages = {}
local function makeTab(name)
    local btn = New("TextButton", {Parent = tabCol, Size = UDim2.new(1,0,0,36), Text = name, Font = Enum.Font.SourceSans, TextSize = 15, BackgroundColor3 = Color3.fromRGB(36,36,36), TextColor3 = Color3.fromRGB(235,235,235)})
    New("UICorner", {Parent = btn, CornerRadius = UDim.new(0,6)})
    local grad = New("UIGradient", {Parent = btn})
    grad.Color = ColorSequence.new{ColorSequenceKeypoint.new(0, Color3.fromRGB(64,64,64)), ColorSequenceKeypoint.new(1, Color3.fromRGB(44,44,44))}
    local page = New("Frame", {Parent = content, Size = UDim2.new(1,0,1,0), BackgroundTransparency = 1, Visible = false})
    pages[name] = page
    btn.MouseButton1Click:Connect(function()
        for _,p in pairs(pages) do p.Visible = false end
        page.Visible = true
        btn.BackgroundColor3 = Color3.fromRGB(70,70,70)
        delay(0.12, function() btn.BackgroundColor3 = Color3.fromRGB(36,36,36) end)
    end)
    return page, btn
end

local homePage = makeTab("Home")
local movementPage = makeTab("Movement")
local combatPage = makeTab("Combat")
local visualPage = makeTab("Visuals")
local playersPage = makeTab("Players")
local utilPage = makeTab("Utility")
pages["Home"].Visible = true

-- --- HOME CONTENT
New("TextLabel", {Parent = homePage, Position = UDim2.new(0,12,0,8), Size = UDim2.new(1,-24,0,60), BackgroundTransparency = 1, Text = "Hoşgeldin kanka! F ile aç/kapa. Sunucu kısıtları bazı actionları engelleyebilir.", TextWrapped = true, Font = Enum.Font.SourceSans, TextSize = 14, TextColor3 = Color3.fromRGB(230,230,230)})
-- Discord link alt yazısı
New("TextLabel", {Parent = homePage, Position = UDim2.new(0,12,1,-32), Size = UDim2.new(1,-24,0,20), BackgroundTransparency = 1, Text = "Discordumuza gelmeyi unutmayın ! https://discord.gg/BsfrKcjEys", TextWrapped = false, Font = Enum.Font.SourceSansItalic, TextSize = 14, TextColor3 = Color3.fromRGB(160,200,255)})

-- ================= Movement page controls (freecam removed) =================
local flyToggle = New("TextButton", {Parent = movementPage, Position = UDim2.new(0,12,0,12), Size = UDim2.new(0,320,0,40), Text = "Fly: OFF"})
New("UICorner", {Parent = flyToggle, CornerRadius = UDim.new(0,6)})

local speedLabel = New("TextLabel", {Parent = movementPage, Position = UDim2.new(0,12,0,62), Size = UDim2.new(0,220,0,20), BackgroundTransparency = 1, Text = "Speed: 16", TextColor3 = Color3.fromRGB(220,220,220)})
local speedBar = New("Frame", {Parent = movementPage, Position = UDim2.new(0,12,0,82), Size = UDim2.new(0,260,0,18), BackgroundColor3 = Color3.fromRGB(40,40,40)})
New("UICorner", {Parent = speedBar, CornerRadius = UDim.new(0,8)})
local speedFill = New("Frame", {Parent = speedBar, Size = UDim2.new(0.06,0,1,0), BackgroundColor3 = Color3.fromRGB(120,120,120)})
New("UICorner", {Parent = speedFill, CornerRadius = UDim.new(0,8)})

local infJumpToggle = New("TextButton", {Parent = movementPage, Position = UDim2.new(0,12,0,112), Size = UDim2.new(0,320,0,40), Text = "InfiniteJump: OFF"})
New("UICorner", {Parent = infJumpToggle, CornerRadius = UDim.new(0,6)})

local noclipToggle = New("TextButton", {Parent = movementPage, Position = UDim2.new(0,12,0,162), Size = UDim2.new(0,320,0,40), Text = "Noclip: OFF"})
New("UICorner", {Parent = noclipToggle, CornerRadius = UDim.new(0,6)})

-- ================= Combat page (Kill / Fling) =================
local killInput = New("TextBox", {Parent = combatPage, Position = UDim2.new(0,12,0,12), Size = UDim2.new(0,320,0,36), PlaceholderText = "PlayerName to Kill", BackgroundColor3 = Color3.fromRGB(36,36,36), TextColor3 = Color3.fromRGB(235,235,235)})
New("UICorner", {Parent = killInput, CornerRadius = UDim.new(0,6)})
local killBtn = New("TextButton", {Parent = combatPage, Position = UDim2.new(0,344,0,12), Size = UDim2.new(0,120,0,36), Text = "Kill"})
New("UICorner", {Parent = killBtn, CornerRadius = UDim.new(0,6)})

local flingInput = New("TextBox", {Parent = combatPage, Position = UDim2.new(0,12,0,62), Size = UDim2.new(0,320,0,36), PlaceholderText = "PlayerName to Fling", BackgroundColor3 = Color3.fromRGB(36,36,36), TextColor3 = Color3.fromRGB(235,235,235)})
New("UICorner", {Parent = flingInput, CornerRadius = UDim.new(0,6)})
local flingBtn = New("TextButton", {Parent = combatPage, Position = UDim2.new(0,344,0,62), Size = UDim2.new(0,120,0,36), Text = "Fling"})
New("UICorner", {Parent = flingBtn, CornerRadius = UDim.new(0,6)})

-- ================= Visuals (ESP) =================
local espToggle = New("TextButton", {Parent = visualPage, Position = UDim2.new(0,12,0,12), Size = UDim2.new(0,320,0,40), Text = "ESP: OFF"})
New("UICorner", {Parent = espToggle, CornerRadius = UDim.new(0,6)})
local tracerToggle = New("TextButton", {Parent = visualPage, Position = UDim2.new(0,12,0,64), Size = UDim2.new(0,320,0,40), Text = "Tracer: OFF"})
New("UICorner", {Parent = tracerToggle, CornerRadius = UDim.new(0,6)})
local boxToggle = New("TextButton", {Parent = visualPage, Position = UDim2.new(0,12,0,116), Size = UDim2.new(0,320,0,40), Text = "Box: ON"})
New("UICorner", {Parent = boxToggle, CornerRadius = UDim.new(0,6)})

-- ================= Players (TP) =================
local tpDropdown = New("TextBox", {Parent = playersPage, Position = UDim2.new(0,12,0,12), Size = UDim2.new(0,320,0,36), PlaceholderText = "PlayerName", BackgroundColor3 = Color3.fromRGB(36,36,36), TextColor3 = Color3.fromRGB(235,235,235)})
New("UICorner", {Parent = tpDropdown, CornerRadius = UDim.new(0,6)})
local tpBtn = New("TextButton", {Parent = playersPage, Position = UDim2.new(0,344,0,12), Size = UDim2.new(0,120,0,36), Text = "TP to Player"})
New("UICorner", {Parent = tpBtn, CornerRadius = UDim.new(0,6)})
local bringBtn = New("TextButton", {Parent = playersPage, Position = UDim2.new(0,344,0,62), Size = UDim2.new(0,120,0,36), Text = "Bring Player"})
New("UICorner", {Parent = bringBtn, CornerRadius = UDim.new(0,6)})

-- ================= Utility (Chat logs, server hop, rejoin) =================
local chatFrame = New("ScrollingFrame", {Parent = utilPage, Position = UDim2.new(0,12,0,12), Size = UDim2.new(1,-24,0,220), BackgroundColor3 = Color3.fromRGB(18,18,18), CanvasSize = UDim2.new(0,0,0,0)})
chatFrame.ScrollBarThickness = 6
New("UICorner", {Parent = chatFrame, CornerRadius = UDim.new(0,6)})
local chatLayout = New("UIListLayout", {Parent = chatFrame, Padding = UDim.new(0,4)})
local autoRejoinToggle = New("TextButton", {Parent = utilPage, Position = UDim2.new(0,12,0,248), Size = UDim2.new(0,160,0,36), Text = "AutoRejoin: OFF"})
New("UICorner", {Parent = autoRejoinToggle, CornerRadius = UDim.new(0,6)})
local serverHopBtn = New("TextButton", {Parent = utilPage, Position = UDim2.new(0,188,0,248), Size = UDim2.new(0,160,0,36), Text = "Server Hop"})
New("UICorner", {Parent = serverHopBtn, CornerRadius = UDim.new(0,6)})
local rejoinBtn = New("TextButton", {Parent = utilPage, Position = UDim2.new(0,364,0,248), Size = UDim2.new(0,160,0,36), Text = "Rejoin"})
New("UICorner", {Parent = rejoinBtn, CornerRadius = UDim.new(0,6)})

-- ===== DRAGGING =====
do
    local dragging, dragInput, dragStart, startPos
    top.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = true
            dragStart = input.Position
            startPos = panel.Position
            input.Changed:Connect(function()
                if input.UserInputState == Enum.UserInputState.End then dragging = false end
            end)
        end
    end)
    top.InputChanged:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseMovement then dragInput = input end
    end)
    RunService.RenderStepped:Connect(function()
        if dragging and dragInput and dragStart and startPos then
            local delta = dragInput.Position - dragStart
            panel.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
        end
    end)
end

-- ===== TOGGLE GUI WITH F =====
UIS.InputBegan:Connect(function(input, gpe)
    if gpe then return end
    if input.KeyCode == Enum.KeyCode.F then
        state.guiOpen = not state.guiOpen
        screen.Enabled = state.guiOpen
        if not state.guiOpen then pcall(function() UIS.MouseBehavior = Enum.MouseBehavior.Default end) end
    end
end)

closeBtn.MouseButton1Click:Connect(function()
    state.guiOpen = false
    screen.Enabled = false
    pcall(function() UIS.MouseBehavior = Enum.MouseBehavior.Default end)
end)

-- ===== MOVEMENT SYSTEMS =====
local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local HRP = char:WaitForChild("HumanoidRootPart")
local humanoid = char:WaitForChild("Humanoid")
humanoid.WalkSpeed = state.speed

-- FLY
local flyBV = nil
flyToggle.MouseButton1Click:Connect(function()
    state.flying = not state.flying
    flyToggle.Text = state.flying and "Fly: ON" or "Fly: OFF"
    if state.flying then
        humanoid.PlatformStand = true
        flyBV = Instance.new("BodyVelocity")
        flyBV.MaxForce = Vector3.new(1e6,1e6,1e6)
        flyBV.Velocity = Vector3.new(0,0,0)
        flyBV.Parent = HRP
    else
        humanoid.PlatformStand = false
        if flyBV then flyBV:Destroy() flyBV = nil end
    end
end)

RunService.RenderStepped:Connect(function()
    if state.flying and flyBV then
        local dir = Vector3.zero
        if UIS:IsKeyDown(Enum.KeyCode.W) then dir += cam.CFrame.LookVector end
        if UIS:IsKeyDown(Enum.KeyCode.S) then dir -= cam.CFrame.LookVector end
        if UIS:IsKeyDown(Enum.KeyCode.A) then dir -= cam.CFrame.RightVector end
        if UIS:IsKeyDown(Enum.KeyCode.D) then dir += cam.CFrame.RightVector end
        if UIS:IsKeyDown(Enum.KeyCode.E) then dir += Vector3.new(0,1,0) end
        if UIS:IsKeyDown(Enum.KeyCode.Q) then dir -= Vector3.new(0,1,0) end
        flyBV.Velocity = dir * 60
    end
end)

-- SPEED SLIDER (walkspeed)
local draggingSpeed = false
speedBar.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then draggingSpeed = true end end)
speedBar.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then draggingSpeed = false end end)
RunService.RenderStepped:Connect(function()
    if draggingSpeed then
        local abs = speedBar.AbsolutePosition.X
        local w = speedBar.AbsoluteSize.X
        local mx = UIS:GetMouseLocation().X
        local rel = math.clamp((mx - abs) / w, 0, 1)
        speedFill.Size = UDim2.new(rel,0,1,0)
        local newSpeed = math.floor(10 + rel * 90) -- 10..100
        state.speed = newSpeed
        speedLabel.Text = "Speed: "..tostring(newSpeed)
        if humanoid and not state.flying then
            humanoid.WalkSpeed = newSpeed
        end
    end
end)

-- INFINITE JUMP
local jumpConn
infJumpToggle.MouseButton1Click:Connect(function()
    state.infjump = not state.infjump
    infJumpToggle.Text = "InfiniteJump: "..(state.infjump and "ON" or "OFF")
    if state.infjump then
        if not jumpConn then
            jumpConn = UIS.JumpRequest:Connect(function()
                if humanoid and humanoid.Health > 0 then
                    humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
                end
            end)
        end
    else
        safeDisconnect(jumpConn)
        jumpConn = nil
    end
end)

-- NOCLIP
local noclipConn
noclipToggle.MouseButton1Click:Connect(function()
    state.noclip = not state.noclip
    noclipToggle.Text = "Noclip: "..(state.noclip and "ON" or "OFF")
    if state.noclip then
        noclipConn = RunService.Stepped:Connect(function()
            local c = LocalPlayer.Character
            if not c then return end
            for _,part in pairs(c:GetDescendants()) do
                if part:IsA("BasePart") then part.CanCollide = false end
            end
        end)
    else
        safeDisconnect(noclipConn)
        noclipConn = nil
        local c = LocalPlayer.Character
        if c then
            for _,part in pairs(c:GetDescendants()) do
                if part:IsA("BasePart") then part.CanCollide = true end
            end
        end
    end
end)

-- ===== COMBAT: Kill & Fling (client attempts) =====
local function findPlayerByName(name)
    if not name or name == "" then return nil end
    local target = Players:FindFirstChild(name)
    if not target then
        for _,p in pairs(Players:GetPlayers()) do
            if p ~= LocalPlayer and p.Name:lower():sub(1,#name) == name:lower() then target = p break end
        end
    end
    return target
end

killBtn.MouseButton1Click:Connect(function()
    local name = killInput.Text
    local target = findPlayerByName(name)
    if target and target.Character and target.Character:FindFirstChild("Humanoid") then
        pcall(function() target.Character.Humanoid.Health = 0 end)
    end
end)

flingBtn.MouseButton1Click:Connect(function()
    local name = flingInput.Text
    local target = findPlayerByName(name)
    if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
        local hrp = target.Character.HumanoidRootPart
        -- powerful yeet
        local v = Instance.new("BodyVelocity")
        v.MaxForce = Vector3.new(1e7,1e7,1e7)
        v.P = 1e6
        v.Velocity = (hrp.CFrame.LookVector * 180) + Vector3.new(0,200,0)
        v.Parent = hrp
        game:GetService("Debris"):AddItem(v, 0.7)
    end
end)

-- ===== VISUALS: ESP (box + tracer) =====
local espObjects = {}
local drawingAvailable, DrawingLib = pcall(function() return Drawing end)
local Drawing = DrawingLib
local boxEnabled = true
local tracerEnabled = false

local function clearEsp(p)
    local data = espObjects[p]
    if not data then return end
    if data.box and drawingAvailable then
        pcall(function() data.box.Visible = false; data.box:Remove() end)
    end
    if data.tracer and drawingAvailable then
        pcall(function() data.tracer.Visible = false; data.tracer:Remove() end)
    end
    if data.bill and data.bill.Parent then data.bill:Destroy() end
    espObjects[p] = nil
end

local function createEsp(p)
    if p == LocalPlayer then return end
    clearEsp(p)
    local c = p.Character
    if not c then return end
    local root = c:FindFirstChild("HumanoidRootPart") or c:FindFirstChild("Torso") or c:FindFirstChild("UpperTorso")
    local head = c:FindFirstChild("Head")
    if not root then return end

    local data = {}
    if drawingAvailable then
        local box = Drawing.new("Square")
        box.Thickness = 2
        box.Filled = false
        box.Visible = false
        box.Color = Color3.new(1,1,1)

        local tracer = Drawing.new("Line")
        tracer.Thickness = 1.8
        tracer.Color = Color3.new(1,0.4,0.4)
        tracer.Visible = false

        data.box = box
        data.tracer = tracer
    else
        if head then
            local bill = Instance.new("BillboardGui")
            bill.Size = UDim2.new(0,120,0,60)
            bill.Adornee = head
            bill.AlwaysOnTop = true
            bill.Parent = PlayerGui
            local f = Instance.new("Frame", bill)
            f.Size = UDim2.new(1,0,1,0)
            f.BackgroundTransparency = 1
            f.BorderSizePixel = 2
            f.BorderColor3 = Color3.new(1,1,1)
            data.bill = bill
        end
    end
    espObjects[p] = data
end

local function ensureAllCreated()
    for _,p in pairs(Players:GetPlayers()) do
        if p ~= LocalPlayer and p.Character then
            if not espObjects[p] then createEsp(p) end
        end
    end
end

Players.PlayerAdded:Connect(function(p)
    p.CharacterAdded:Connect(function()
        if state.esp then
            task.wait(0.6)
            createEsp(p)
        end
    end)
end)

Players.PlayerRemoving:Connect(function(p)
    clearEsp(p)
end)

espToggle.MouseButton1Click:Connect(function()
    state.esp = not state.esp
    espToggle.Text = "ESP: "..(state.esp and "ON" or "OFF")
    if state.esp then
        ensureAllCreated()
    else
        for p,_ in pairs(espObjects) do clearEsp(p) end
    end
end)

tracerToggle.MouseButton1Click:Connect(function()
    tracerEnabled = not tracerEnabled
    state.tracer = tracerEnabled
    tracerToggle.Text = tracerEnabled and "Tracer: ON" or "Tracer: OFF"
end)

boxToggle.MouseButton1Click:Connect(function()
    boxEnabled = not boxEnabled
    state.box = boxEnabled
    boxToggle.Text = boxEnabled and "Box: ON" or "Box: OFF"
end)

RunService.RenderStepped:Connect(function()
    if not state.esp then
        for p,data in pairs(espObjects) do
            if data.box and drawingAvailable then data.box.Visible = false end
            if data.tracer and drawingAvailable then data.tracer.Visible = false end
            if data.bill and data.bill.Parent then data.bill.Enabled = false end
        end
        return
    end

    local camera = cam
    for p,data in pairs(espObjects) do
        if not p or not p.Character then
            clearEsp(p)
        else
            local c = p.Character
            local root = c:FindFirstChild("HumanoidRootPart") or c:FindFirstChild("Torso") or c:FindFirstChild("UpperTorso")
            local head = c:FindFirstChild("Head")
            if not root then clearEsp(p) continue end

            local pos3 = root.Position
            local headPos = (head and head.Position) or (pos3 + Vector3.new(0,2,0))
            local screenPos = camera:WorldToViewportPoint(headPos)
            local onScreen = screenPos.Z > 0
            local screenX, screenY = screenPos.X, screenPos.Y

            if drawingAvailable and data.box and data.tracer then
                if onScreen then
                    local topY = camera:WorldToViewportPoint(headPos + Vector3.new(0,0.5,0)).Y
                    local bottomY = camera:WorldToViewportPoint(pos3 - Vector3.new(0,1,0)).Y
                    local height = math.abs(bottomY - topY)
                    if height <= 0 then height = 50 end
                    local width = math.clamp(height * 0.45, 20, 200)

                    if boxEnabled then
                        data.box.Visible = true
                        data.box.Size = Vector2.new(width, height)
                        data.box.Position = Vector2.new(screenX - width/2, screenY - height/2)
                        data.box.Color = Color3.new(1,1,1)
                    else
                        data.box.Visible = false
                    end

                    if tracerEnabled then
                        data.tracer.Visible = true
                        data.tracer.From = Vector2.new(camera.ViewportSize.X/2, camera.ViewportSize.Y)
                        data.tracer.To = Vector2.new(screenX, screenY)
                        data.tracer.Color = Color3.new(1,0.4,0.4)
                    else
                        data.tracer.Visible = false
                    end
                else
                    data.box.Visible = false
                    data.tracer.Visible = false
                end
            else
                if data.bill and data.bill.Parent then
                    data.bill.Enabled = onScreen and state.box
                end
            end
        end
    end
end)

-- ===== PLAYERS: TP & Bring =====
tpBtn.MouseButton1Click:Connect(function()
    local name = tpDropdown.Text
    if name == "" then return end
    local target = findPlayerByName(name)
    if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
        local myChar = LocalPlayer.Character
        if myChar and myChar:FindFirstChild("HumanoidRootPart") then
            myChar.HumanoidRootPart.CFrame = target.Character.HumanoidRootPart.CFrame + Vector3.new(0,3,0)
        end
    end
end)

bringBtn.MouseButton1Click:Connect(function()
    local name = tpDropdown.Text
    if name == "" then return end
    local target = findPlayerByName(name)
    if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
        pcall(function() target.Character.HumanoidRootPart.CFrame = LocalPlayer.Character.HumanoidRootPart.CFrame + Vector3.new(0,3,0) end)
    end
end)

-- ===== CHAT LOGS =====
local function addChatLine(text)
    local lbl = New("TextLabel", {Parent = chatFrame, Size = UDim2.new(1,-12,0,18), BackgroundTransparency = 1, Text = text, TextColor3 = Color3.fromRGB(220,220,220), Font = Enum.Font.SourceSans, TextSize = 14})
    chatLayout.Parent.CanvasSize = UDim2.new(0,0,0,chatLayout.AbsoluteContentSize.Y + 8)
end

for _,p in pairs(Players:GetPlayers()) do
    p.Chatted:Connect(function(msg)
        addChatLine(p.Name..": "..tostring(msg))
    end)
end
Players.PlayerAdded:Connect(function(pl)
    pl.Chatted:Connect(function(msg) addChatLine(pl.Name..": "..tostring(msg)) end)
end)

-- ===== AUTO-REJOIN & SERVER HOP =====
autoRejoinToggle.MouseButton1Click:Connect(function()
    state.autoRejoin = not state.autoRejoin
    autoRejoinToggle.Text = "AutoRejoin: "..(state.autoRejoin and "ON" or "OFF")
    if state.autoRejoin then
        LocalPlayer.CharacterRemoving:Connect(function()
            if state.autoRejoin then
                pcall(function() TeleportService:Teleport(game.PlaceId, LocalPlayer) end)
            end
        end)
    end
end)

serverHopBtn.MouseButton1Click:Connect(function()
    pcall(function() TeleportService:Teleport(game.PlaceId, LocalPlayer) end)
end)

rejoinBtn.MouseButton1Click:Connect(function()
    pcall(function() TeleportService:Teleport(game.PlaceId, LocalPlayer) end)
end)

-- ===== CLEANUP ON UNLOAD =====
screen.AncestryChanged:Connect(function()
    if not screen:IsDescendantOf(game) then
        pcall(function() UIS.MouseBehavior = Enum.MouseBehavior.Default end)
        for p,objs in pairs(espObjects) do
            if objs.box and drawingAvailable then
                pcall(function() objs.box:Remove() end)
            end
            if objs.tracer and drawingAvailable then
                pcall(function() objs.tracer:Remove() end)
            end
        end
    end
end)

-- ===== FINISH =====
humanoid.WalkSpeed = state.speed
print("Advanced Admin Panel loaded. GUI opened automatically.")

Players.PlayerAdded:Connect(function(pl)
    pl.Chatted:Connect(function(msg) addChatLine(pl.Name..": "..tostring(msg)) end)
    pl.CharacterAdded:Connect(function(c)
        if state.esp then createEsp(pl) end
    end)
end)

Features & Information

nothing here

Community Comments (1)

roninpilot1roninpilot1Dec 2, 2025

gang is this ai

More Scripts for Universal Scripts