
KeylessUniversal

-- Ultimate Admin Panel V2.1 for Roblox
-- NEW FEATURES: Moonwalk Flying, TP to Player, Inventory Viewer, Tool Dupe, Theme Customization, Pixel Art Drawing!
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local TextChatService = game:GetService("TextChatService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local rootPart = character:WaitForChild("HumanoidRootPart")
local mouse = player:GetMouse()
-- Admin States
local adminStates = {
flying = false,
moonwalkFlying = false, -- NEW: Moonwalk mode
noclip = false,
infiniteJump = false,
godMode = false,
esp = false,
speedEnabled = false,
jumpEnabled = false,
pointerLock = false,
clickTeleport = false,
fullbright = false,
xray = false,
autoJump = false,
noFall = false,
antiAfk = false,
autoClicker = false,
rainbowMode = false,
platformMode = false,
aimbot = false,
wallhack = false
}
-- Admin Values
local adminValues = {
flySpeed = 50,
walkSpeed = 16,
jumpPower = 50,
defaultWalkSpeed = 16,
defaultJumpPower = 50,
fov = 70,
gravity = 196.2,
clicksPerNanosecond = 1000000,
toggleKey = Enum.KeyCode.P,
rainbowSpeed = 1
}
-- NEW: Theme System
local themes = {
Default = {
primary = Color3.fromRGB(30, 30, 45),
secondary = Color3.fromRGB(45, 45, 60),
accent = Color3.fromRGB(100, 100, 255),
text = Color3.fromRGB(255, 255, 255),
toggleOn = Color3.fromRGB(100, 200, 100),
toggleOff = Color3.fromRGB(200, 100, 100)
},
Dark = {
primary = Color3.fromRGB(20, 20, 20),
secondary = Color3.fromRGB(35, 35, 35),
accent = Color3.fromRGB(255, 100, 100),
text = Color3.fromRGB(255, 255, 255),
toggleOn = Color3.fromRGB(80, 180, 80),
toggleOff = Color3.fromRGB(180, 80, 80)
},
Ocean = {
primary = Color3.fromRGB(20, 40, 60),
secondary = Color3.fromRGB(30, 60, 90),
accent = Color3.fromRGB(0, 150, 200),
text = Color3.fromRGB(255, 255, 255),
toggleOn = Color3.fromRGB(50, 200, 150),
toggleOff = Color3.fromRGB(200, 80, 100)
},
Forest = {
primary = Color3.fromRGB(25, 40, 25),
secondary = Color3.fromRGB(40, 60, 40),
accent = Color3.fromRGB(100, 200, 100),
text = Color3.fromRGB(240, 255, 240),
toggleOn = Color3.fromRGB(120, 220, 120),
toggleOff = Color3.fromRGB(220, 100, 100)
},
Sunset = {
primary = Color3.fromRGB(60, 30, 40),
secondary = Color3.fromRGB(80, 40, 50),
accent = Color3.fromRGB(255, 150, 100),
text = Color3.fromRGB(255, 240, 230),
toggleOn = Color3.fromRGB(255, 180, 100),
toggleOff = Color3.fromRGB(200, 100, 150)
},
Purple = {
primary = Color3.fromRGB(40, 20, 60),
secondary = Color3.fromRGB(60, 30, 90),
accent = Color3.fromRGB(150, 100, 255),
text = Color3.fromRGB(255, 255, 255),
toggleOn = Color3.fromRGB(200, 150, 255),
toggleOff = Color3.fromRGB(255, 100, 150)
}
}
local currentTheme = themes.Default
local allGuiElements = {} -- Track all GUI elements for theme updates
-- Tool States
local activeTools = {}
local toolConnections = {}
local currentTool = nil
local buildingSelection = nil
-- Flying Variables
local flyControl = {w = 0, s = 0, a = 0, d = 0}
local flyConnection = nil
local flyBodyGyro = nil
local flyBodyVelocity = nil
-- Rainbow Variables
local rainbowConnection = nil
-- Platform Variables
local platform = nil
-- Create Camera instance early
local camera = workspace.CurrentCamera
-- NEW: Pixel Art Drawing Variables
local pixelColors = {
["⬛"] = Color3.fromRGB(0, 0, 0),
["⬜"] = Color3.fromRGB(255, 255, 255),
["🟥"] = Color3.fromRGB(255, 0, 0),
["🟧"] = Color3.fromRGB(255, 165, 0),
["🟨"] = Color3.fromRGB(255, 255, 0),
["🟩"] = Color3.fromRGB(0, 255, 0),
["🟦"] = Color3.fromRGB(0, 0, 255)
}
local drawingMode = false
local currentPixelArt = {}
-- Helper function to get character safely
local function getCharacter()
return player.Character
end
-- Helper function to get humanoid safely
local function getHumanoid()
local char = getCharacter()
if char then
return char:FindFirstChildOfClass("Humanoid")
end
return nil
end
-- Helper function to get root part safely
local function getRootPart()
local char = getCharacter()
if char then
return char:FindFirstChild("HumanoidRootPart")
end
return nil
end
-- NEW: Apply theme to GUI element
local function applyTheme(element, elementType)
if not element then return end
if elementType == "primary" then
element.BackgroundColor3 = currentTheme.primary
elseif elementType == "secondary" then
element.BackgroundColor3 = currentTheme.secondary
elseif elementType == "accent" then
element.BackgroundColor3 = currentTheme.accent
elseif elementType == "text" then
element.TextColor3 = currentTheme.text
end
table.insert(allGuiElements, {element = element, type = elementType})
end
-- NEW: Update all GUI elements with new theme
local function updateAllThemes(newTheme)
currentTheme = themes[newTheme] or themes.Default
for _, data in pairs(allGuiElements) do
if data.element and data.element.Parent then
applyTheme(data.element, data.type)
end
end
end
-- ==================== FLYING ====================
local function startFlying()
adminStates.flying = true
local root = getRootPart()
if not root then return end
flyBodyGyro = Instance.new("BodyGyro")
flyBodyGyro.P = 9e4
flyBodyGyro.maxTorque = Vector3.new(9e9, 9e9, 9e9)
flyBodyGyro.cframe = root.CFrame
flyBodyGyro.Parent = root
flyBodyVelocity = Instance.new("BodyVelocity")
flyBodyVelocity.velocity = Vector3.new(0, 0.1, 0)
flyBodyVelocity.maxForce = Vector3.new(9e9, 9e9, 9e9)
flyBodyVelocity.Parent = root
flyConnection = RunService.RenderStepped:Connect(function()
if adminStates.flying and flyBodyGyro and flyBodyVelocity then
local root = getRootPart()
if not root then return end
local cam = workspace.CurrentCamera
local speed = adminValues.flySpeed
-- NEW: Moonwalk mode reverses forward/backward
local wControl = adminStates.moonwalkFlying and flyControl.w or flyControl.w
local sControl = adminStates.moonwalkFlying and flyControl.s or flyControl.s
-- If moonwalk is on, swap W and S
if adminStates.moonwalkFlying then
wControl = flyControl.s
sControl = flyControl.w
else
wControl = flyControl.w
sControl = flyControl.s
end
local moveDirection = Vector3.new(
flyControl.d - flyControl.a,
0,
sControl - wControl -- This reverses direction in moonwalk mode
)
if moveDirection.Magnitude > 0 then
moveDirection = moveDirection.Unit
end
flyBodyGyro.cframe = cam.CFrame
flyBodyVelocity.velocity = (cam.CFrame.LookVector * moveDirection.Z + cam.CFrame.RightVector * moveDirection.X) * speed
end
end)
end
local function stopFlying()
adminStates.flying = false
if flyConnection then
flyConnection:Disconnect()
flyConnection = nil
end
if flyBodyGyro then
flyBodyGyro:Destroy()
flyBodyGyro = nil
end
if flyBodyVelocity then
flyBodyVelocity:Destroy()
flyBodyVelocity = nil
end
flyControl = {w = 0, s = 0, a = 0, d = 0}
end
-- NEW: Toggle moonwalk flying
local function toggleMoonwalk(enabled)
adminStates.moonwalkFlying = enabled
end
-- ==================== NOCLIP ====================
local noclipConnection = nil
local function toggleNoclip(enabled)
adminStates.noclip = enabled
if noclipConnection then
noclipConnection:Disconnect()
noclipConnection = nil
end
if enabled then
noclipConnection = RunService.Stepped:Connect(function()
local char = getCharacter()
if char then
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") and part.CanCollide then -- FIX: Check if already non-collidable
part.CanCollide = false
end
end
end
end)
else
local char = getCharacter()
if char then
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then -- FIX: Don't re-enable HRP collision
part.CanCollide = true
end
end
end
end
end
-- ==================== INFINITE JUMP ====================
local function toggleInfiniteJump(enabled)
adminStates.infiniteJump = enabled
end
-- ==================== GOD MODE ====================
local godModeConnection = nil
local function toggleGodMode(enabled)
adminStates.godMode = enabled
local hum = getHumanoid()
if not hum then return end
if godModeConnection then
godModeConnection:Disconnect()
godModeConnection = nil
end
if enabled then
godModeConnection = hum.HealthChanged:Connect(function(health)
if health < hum.MaxHealth then
hum.Health = hum.MaxHealth
end
end)
hum.Health = hum.MaxHealth
end
end
-- ==================== ESP ====================
local espConnections = {}
local function toggleESP(enabled)
adminStates.esp = enabled
for _, connection in pairs(espConnections) do
connection:Disconnect()
end
espConnections = {}
for _, otherPlayer in pairs(Players:GetPlayers()) do
if otherPlayer ~= player and otherPlayer.Character then
local highlight = otherPlayer.Character:FindFirstChildOfClass("Highlight")
if highlight then
highlight:Destroy()
end
end
end
if enabled then
local function addESP(otherPlayer)
if otherPlayer == player then return end
local function charAdded(char)
task.wait(0.1)
if not adminStates.esp then return end
local highlight = Instance.new("Highlight")
highlight.Adornee = char
highlight.FillColor = Color3.fromRGB(255, 0, 0)
highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
highlight.FillTransparency = 0.5
highlight.OutlineTransparency = 0
highlight.Parent = char
end
if otherPlayer.Character then
charAdded(otherPlayer.Character)
end
table.insert(espConnections, otherPlayer.CharacterAdded:Connect(charAdded))
end
for _, otherPlayer in pairs(Players:GetPlayers()) do
addESP(otherPlayer)
end
table.insert(espConnections, Players.PlayerAdded:Connect(addESP))
end
end
-- ==================== FULLBRIGHT ====================
local originalAmbient = nil
local originalOutdoorAmbient = nil
local originalBrightness = nil
local function toggleFullbright(enabled)
adminStates.fullbright = enabled
local lighting = game:GetService("Lighting")
if enabled then
originalAmbient = lighting.Ambient
originalOutdoorAmbient = lighting.OutdoorAmbient
originalBrightness = lighting.Brightness
lighting.Ambient = Color3.fromRGB(255, 255, 255)
lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255)
lighting.Brightness = 2
else
if originalAmbient then
lighting.Ambient = originalAmbient
end
if originalOutdoorAmbient then
lighting.OutdoorAmbient = originalOutdoorAmbient
end
if originalBrightness then
lighting.Brightness = originalBrightness
end
end
end
-- ==================== X-RAY ====================
local xrayParts = {}
local function toggleXray(enabled)
adminStates.xray = enabled
for part, originalTransparency in pairs(xrayParts) do
if part and part.Parent then
part.Transparency = originalTransparency
end
end
xrayParts = {}
if enabled then
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA("BasePart") and obj.Transparency < 1 then
xrayParts[obj] = obj.Transparency
obj.Transparency = 0.7
end
end
end
end
-- ==================== RAINBOW MODE ====================
local function toggleRainbowMode(enabled)
adminStates.rainbowMode = enabled
if rainbowConnection then
rainbowConnection:Disconnect()
rainbowConnection = nil
end
if enabled then
rainbowConnection = RunService.RenderStepped:Connect(function()
if adminStates.rainbowMode then
local char = getCharacter()
if char then
local hue = (tick() * adminValues.rainbowSpeed * 50) % 360
local color = Color3.fromHSV(hue / 360, 1, 1)
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.Color = color
end
end
end
end
end)
end
end
-- ==================== POINTER LOCK ====================
local lockedPlayer = nil
local pointerConnection = nil
local pointerPart = nil
local function clearLockedPlayer()
lockedPlayer = nil
if pointerPart then
pointerPart:Destroy()
pointerPart = nil
end
end
local function togglePointerLock(enabled)
adminStates.pointerLock = enabled
if pointerConnection then
pointerConnection:Disconnect()
pointerConnection = nil
end
if not enabled then
clearLockedPlayer()
return
end
pointerConnection = mouse.Button1Down:Connect(function()
local target = mouse.Target
if target then
local targetPlayer = Players:GetPlayerFromCharacter(target.Parent)
if targetPlayer and targetPlayer ~= player then
lockedPlayer = targetPlayer
if pointerPart then
pointerPart:Destroy()
end
pointerPart = Instance.new("Part")
pointerPart.Size = Vector3.new(1, 10, 1)
pointerPart.Anchored = true
pointerPart.CanCollide = false
pointerPart.Material = Enum.Material.Neon
pointerPart.BrickColor = BrickColor.new("Bright red")
pointerPart.Parent = workspace
task.spawn(function()
while lockedPlayer and pointerPart and adminStates.pointerLock do
local targetChar = lockedPlayer.Character
if targetChar then
local targetRoot = targetChar:FindFirstChild("HumanoidRootPart")
if targetRoot then
pointerPart.Position = targetRoot.Position + Vector3.new(0, 5, 0)
end
end
task.wait()
end
end)
end
end
end)
end
-- ==================== CLICK TELEPORT ====================
local clickTeleportConnection = nil
local function toggleClickTeleport(enabled)
adminStates.clickTeleport = enabled
if clickTeleportConnection then
clickTeleportConnection:Disconnect()
clickTeleportConnection = nil
end
if enabled then
clickTeleportConnection = mouse.Button1Down:Connect(function()
if mouse.Target and adminStates.clickTeleport then
local root = getRootPart()
if root then
root.CFrame = CFrame.new(mouse.Hit.Position + Vector3.new(0, 3, 0))
end
end
end)
end
end
-- ==================== NO FALL DAMAGE ====================
local noFallConnection = nil
local function toggleNoFall(enabled)
adminStates.noFall = enabled
if noFallConnection then
noFallConnection:Disconnect()
noFallConnection = nil
end
if enabled then
local hum = getHumanoid()
if hum then
local originalState = hum:GetState()
noFallConnection = hum.StateChanged:Connect(function(old, new)
if new == Enum.HumanoidStateType.FallingDown or new == Enum.HumanoidStateType.Ragdoll then
hum:ChangeState(Enum.HumanoidStateType.GettingUp)
end
end)
end
end
end
-- ==================== ANTI AFK ====================
local antiAfkConnection = nil
local function toggleAntiAfk(enabled)
adminStates.antiAfk = enabled
if antiAfkConnection then
antiAfkConnection:Disconnect()
antiAfkConnection = nil
end
if enabled then
antiAfkConnection = RunService.Heartbeat:Connect(function()
if adminStates.antiAfk then
local VirtualUser = game:GetService("VirtualUser")
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.new())
end
end)
end
end
-- ==================== AUTO CLICKER ====================
local autoClickerConnection = nil
local function toggleAutoClicker(enabled)
adminStates.autoClicker = enabled
if autoClickerConnection then
autoClickerConnection:Disconnect()
autoClickerConnection = nil
end
if enabled then
autoClickerConnection = RunService.RenderStepped:Connect(function()
if adminStates.autoClicker then
mouse1press()
task.wait(1 / adminValues.clicksPerNanosecond)
mouse1release()
end
end)
end
end
-- ==================== PLATFORM MODE ====================
local function togglePlatformMode(enabled)
adminStates.platformMode = enabled
if platform then
platform:Destroy()
platform = nil
end
if enabled then
platform = Instance.new("Part")
platform.Size = Vector3.new(10, 1, 10)
platform.Anchored = true
platform.CanCollide = true
platform.Material = Enum.Material.Neon
platform.BrickColor = BrickColor.new("Bright blue")
platform.Transparency = 0.5
platform.Parent = workspace
task.spawn(function()
while adminStates.platformMode and platform do
local root = getRootPart()
if root then
platform.CFrame = CFrame.new(root.Position - Vector3.new(0, 4, 0))
end
task.wait()
end
end)
end
end
-- ==================== WALLHACK ====================
local function toggleWallhack(enabled)
adminStates.wallhack = enabled
if enabled then
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA("BasePart") and obj.CanCollide then
obj.CanCollide = false
end
end
else
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA("BasePart") then
obj.CanCollide = true
end
end
end
end
-- ==================== SPEED AND JUMP ====================
local function setWalkSpeed(speed)
adminValues.walkSpeed = speed
local hum = getHumanoid()
if hum then
hum.WalkSpeed = speed
end
end
local function setJumpPower(power)
adminValues.jumpPower = power
local hum = getHumanoid()
if hum then
hum.JumpPower = power
end
end
-- NEW: ==================== TELEPORT TO PLAYER ====================
local function teleportToPlayer(targetPlayer)
if targetPlayer and targetPlayer.Character then
local targetRoot = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
local myRoot = getRootPart()
if targetRoot and myRoot then
myRoot.CFrame = targetRoot.CFrame * CFrame.new(0, 0, 3) -- TP behind them
print("Teleported to " .. targetPlayer.Name)
end
end
end
-- NEW: ==================== TOOL DUPLICATION ====================
local function duplicateTool(tool)
if tool and tool:IsA("Tool") then
local clone = tool:Clone()
clone.Parent = player.Backpack
print("Duplicated " .. tool.Name)
return clone
end
end
local function duplicateAllTools()
local char = getCharacter()
if char then
-- Dupe tools in backpack
for _, tool in pairs(player.Backpack:GetChildren()) do
if tool:IsA("Tool") then
duplicateTool(tool)
end
end
-- Dupe equipped tool
for _, tool in pairs(char:GetChildren()) do
if tool:IsA("Tool") then
duplicateTool(tool)
end
end
end
end
-- NEW: ==================== INVENTORY VIEWER ====================
local inventoryGui = nil
local inventoryFrame = nil
local function createInventoryViewer()
if inventoryGui then
inventoryGui:Destroy()
end
inventoryGui = Instance.new("ScreenGui")
inventoryGui.Name = "InventoryViewer"
inventoryGui.ResetOnSpawn = false
inventoryGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 600, 0, 500)
mainFrame.Position = UDim2.new(0.5, -300, 0.5, -250)
mainFrame.BackgroundColor3 = currentTheme.primary
mainFrame.BorderSizePixel = 0
mainFrame.Parent = inventoryGui
applyTheme(mainFrame, "primary")
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = mainFrame
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -100, 0, 40)
title.Position = UDim2.new(0, 0, 0, 0)
title.BackgroundTransparency = 1
title.Text = "🎒 Player Inventories"
title.TextColor3 = currentTheme.text
title.TextSize = 18
title.Font = Enum.Font.GothamBold
title.Parent = mainFrame
applyTheme(title, "text")
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(255, 100, 100)
closeBtn.Text = "X"
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.TextSize = 18
closeBtn.Font = Enum.Font.GothamBold
closeBtn.Parent = mainFrame
local closeBtnCorner = Instance.new("UICorner")
closeBtnCorner.CornerRadius = UDim.new(0, 6)
closeBtnCorner.Parent = closeBtn
closeBtn.MouseButton1Click:Connect(function()
inventoryGui:Destroy()
inventoryGui = nil
end)
local scrollFrame = Instance.new("ScrollingFrame")
scrollFrame.Size = UDim2.new(1, -20, 1, -60)
scrollFrame.Position = UDim2.new(0, 10, 0, 50)
scrollFrame.BackgroundColor3 = currentTheme.secondary
scrollFrame.BorderSizePixel = 0
scrollFrame.ScrollBarThickness = 8
scrollFrame.Parent = mainFrame
applyTheme(scrollFrame, "secondary")
local scrollCorner = Instance.new("UICorner")
scrollCorner.CornerRadius = UDim.new(0, 8)
scrollCorner.Parent = scrollFrame
local listLayout = Instance.new("UIListLayout")
listLayout.Padding = UDim.new(0, 10)
listLayout.SortOrder = Enum.SortOrder.LayoutOrder
listLayout.Parent = scrollFrame
-- Populate with all players
for _, targetPlayer in pairs(Players:GetPlayers()) do
local playerFrame = Instance.new("Frame")
playerFrame.Size = UDim2.new(1, -10, 0, 200)
playerFrame.BackgroundColor3 = currentTheme.primary
playerFrame.BorderSizePixel = 0
playerFrame.Parent = scrollFrame
applyTheme(playerFrame, "primary")
local playerCorner = Instance.new("UICorner")
playerCorner.CornerRadius = UDim.new(0, 6)
playerCorner.Parent = playerFrame
local playerLabel = Instance.new("TextLabel")
playerLabel.Size = UDim2.new(1, -10, 0, 30)
playerLabel.Position = UDim2.new(0, 5, 0, 5)
playerLabel.BackgroundTransparency = 1
playerLabel.Text = "👤 " .. targetPlayer.Name
playerLabel.TextColor3 = currentTheme.text
playerLabel.TextSize = 16
playerLabel.Font = Enum.Font.GothamBold
playerLabel.TextXAlignment = Enum.TextXAlignment.Left
playerLabel.Parent = playerFrame
applyTheme(playerLabel, "text")
local toolsFrame = Instance.new("ScrollingFrame")
toolsFrame.Size = UDim2.new(1, -10, 1, -40)
toolsFrame.Position = UDim2.new(0, 5, 0, 35)
toolsFrame.BackgroundTransparency = 1
toolsFrame.BorderSizePixel = 0
toolsFrame.ScrollBarThickness = 6
toolsFrame.Parent = playerFrame
local toolsLayout = Instance.new("UIGridLayout")
toolsLayout.CellSize = UDim2.new(0, 80, 0, 100)
toolsLayout.CellPadding = UDim2.new(0, 5, 0, 5)
toolsLayout.SortOrder = Enum.SortOrder.LayoutOrder
toolsLayout.Parent = toolsFrame
-- Get tools from backpack
local tools = {}
if targetPlayer.Backpack then
for _, tool in pairs(targetPlayer.Backpack:GetChildren()) do
if tool:IsA("Tool") then
table.insert(tools, tool)
end
end
end
-- Get equipped tool
if targetPlayer.Character then
for _, tool in pairs(targetPlayer.Character:GetChildren()) do
if tool:IsA("Tool") then
table.insert(tools, tool)
end
end
end
-- Display tools with 3D models
for _, tool in pairs(tools) do
local toolContainer = Instance.new("Frame")
toolContainer.BackgroundColor3 = currentTheme.secondary
toolContainer.BorderSizePixel = 0
toolContainer.Parent = toolsFrame
applyTheme(toolContainer, "secondary")
local toolContainerCorner = Instance.new("UICorner")
toolContainerCorner.CornerRadius = UDim.new(0, 4)
toolContainerCorner.Parent = toolContainer
-- Create ViewportFrame for 3D model
local viewport = Instance.new("ViewportFrame")
viewport.Size = UDim2.new(1, 0, 0.7, 0)
viewport.Position = UDim2.new(0, 0, 0, 0)
viewport.BackgroundTransparency = 1
viewport.Parent = toolContainer
-- Clone tool for display
local toolClone = tool:Clone()
toolClone.Parent = viewport
-- Create camera for viewport
local vpCamera = Instance.new("Camera")
viewport.CurrentCamera = vpCamera
vpCamera.Parent = viewport
-- Position camera to view tool
local handle = toolClone:FindFirstChild("Handle")
if handle then
local size = handle.Size.Magnitude
vpCamera.CFrame = CFrame.new(handle.Position + Vector3.new(size, size, size), handle.Position)
end
-- Tool name label
local toolName = Instance.new("TextLabel")
toolName.Size = UDim2.new(1, 0, 0.3, 0)
toolName.Position = UDim2.new(0, 0, 0.7, 0)
toolName.BackgroundTransparency = 1
toolName.Text = tool.Name
toolName.TextColor3 = currentTheme.text
toolName.TextSize = 10
toolName.Font = Enum.Font.Gotham
toolName.TextWrapped = true
toolName.TextScaled = true
toolName.Parent = toolContainer
applyTheme(toolName, "text")
end
if #tools == 0 then
local noTools = Instance.new("TextLabel")
noTools.Size = UDim2.new(1, 0, 1, 0)
noTools.BackgroundTransparency = 1
noTools.Text = "No tools"
noTools.TextColor3 = Color3.fromRGB(150, 150, 150)
noTools.TextSize = 14
noTools.Font = Enum.Font.Gotham
noTools.Parent = toolsFrame
end
end
scrollFrame.CanvasSize = UDim2.new(0, 0, 0, listLayout.AbsoluteContentSize.Y + 10)
inventoryGui.Parent = player:WaitForChild("PlayerGui")
end
-- NEW: ==================== PIXEL ART DRAWING ====================
local function sendPixelArt(artData)
-- Send pixel art to chat
local TextChatService = game:GetService("TextChatService")
local generalChannel = TextChatService:FindFirstChild("TextChannels"):FindFirstChild("RBXGeneral")
if generalChannel then
for _, line in ipairs(artData) do
generalChannel:SendAsync(line)
task.wait(0.5) -- Delay to avoid chat flood
end
else
-- Fallback to legacy chat
for _, line in ipairs(artData) do
game:GetService("ReplicatedStorage").DefaultChatSystemChatEvents.SayMessageRequest:FireServer(line, "All")
task.wait(0.5)
end
end
end
local pixelArtGui = nil
local function createPixelArtEditor()
if pixelArtGui then
pixelArtGui:Destroy()
end
pixelArtGui = Instance.new("ScreenGui")
pixelArtGui.Name = "PixelArtEditor"
pixelArtGui.ResetOnSpawn = false
pixelArtGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 500, 0, 600)
mainFrame.Position = UDim2.new(0.5, -250, 0.5, -300)
mainFrame.BackgroundColor3 = currentTheme.primary
mainFrame.BorderSizePixel = 0
mainFrame.Parent = pixelArtGui
applyTheme(mainFrame, "primary")
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = mainFrame
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -100, 0, 40)
title.Position = UDim2.new(0, 0, 0, 0)
title.BackgroundTransparency = 1
title.Text = "🎨 Pixel Art Editor"
title.TextColor3 = currentTheme.text
title.TextSize = 18
title.Font = Enum.Font.GothamBold
title.Parent = mainFrame
applyTheme(title, "text")
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(255, 100, 100)
closeBtn.Text = "X"
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.TextSize = 18
closeBtn.Font = Enum.Font.GothamBold
closeBtn.Parent = mainFrame
local closeBtnCorner = Instance.new("UICorner")
closeBtnCorner.CornerRadius = UDim.new(0, 6)
closeBtnCorner.Parent = closeBtn
closeBtn.MouseButton1Click:Connect(function()
pixelArtGui:Destroy()
pixelArtGui = nil
end)
-- Color palette
local paletteFrame = Instance.new("Frame")
paletteFrame.Size = UDim2.new(1, -20, 0, 50)
paletteFrame.Position = UDim2.new(0, 10, 0, 50)
paletteFrame.BackgroundColor3 = currentTheme.secondary
paletteFrame.BorderSizePixel = 0
paletteFrame.Parent = mainFrame
applyTheme(paletteFrame, "secondary")
local paletteCorner = Instance.new("UICorner")
paletteCorner.CornerRadius = UDim.new(0, 8)
paletteCorner.Parent = paletteFrame
local paletteLayout = Instance.new("UIListLayout")
paletteLayout.FillDirection = Enum.FillDirection.Horizontal
paletteLayout.Padding = UDim.new(0, 5)
paletteLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
paletteLayout.VerticalAlignment = Enum.VerticalAlignment.Center
paletteLayout.Parent = paletteFrame
local selectedColor = "⬛"
for emoji, color in pairs(pixelColors) do
local colorBtn = Instance.new("TextButton")
colorBtn.Size = UDim2.new(0, 50, 0, 40)
colorBtn.BackgroundColor3 = color
colorBtn.Text = emoji
colorBtn.TextSize = 24
colorBtn.Font = Enum.Font.Gotham
colorBtn.Parent = paletteFrame
local colorCorner = Instance.new("UICorner")
colorCorner.CornerRadius = UDim.new(0, 6)
colorCorner.Parent = colorBtn
colorBtn.MouseButton1Click:Connect(function()
selectedColor = emoji
-- Highlight selected
for _, btn in pairs(paletteFrame:GetChildren()) do
if btn:IsA("TextButton") then
btn.BorderSizePixel = 0
end
end
colorBtn.BorderSizePixel = 3
colorBtn.BorderColor3 = Color3.fromRGB(255, 255, 255)
end)
end
-- Canvas
local canvasFrame = Instance.new("Frame")
canvasFrame.Size = UDim2.new(1, -20, 1, -170)
canvasFrame.Position = UDim2.new(0, 10, 0, 110)
canvasFrame.BackgroundColor3 = currentTheme.secondary
canvasFrame.BorderSizePixel = 0
canvasFrame.Parent = mainFrame
applyTheme(canvasFrame, "secondary")
local canvasCorner = Instance.new("UICorner")
canvasCorner.CornerRadius = UDim.new(0, 8)
canvasCorner.Parent = canvasFrame
local canvasGrid = Instance.new("UIGridLayout")
canvasGrid.CellSize = UDim2.new(0, 30, 0, 30)
canvasGrid.CellPadding = UDim2.new(0, 2, 0, 2)
canvasGrid.Parent = canvasFrame
-- Create 10x10 grid
local gridData = {}
for y = 1, 10 do
gridData[y] = {}
for x = 1, 10 do
gridData[y][x] = "⬜"
local pixel = Instance.new("TextButton")
pixel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
pixel.Text = "⬜"
pixel.TextSize = 20
pixel.Parent = canvasFrame
local pixelCorner = Instance.new("UICorner")
pixelCorner.CornerRadius = UDim.new(0, 4)
pixelCorner.Parent = pixel
pixel.MouseButton1Click:Connect(function()
gridData[y][x] = selectedColor
pixel.Text = selectedColor
pixel.BackgroundColor3 = pixelColors[selectedColor]
end)
end
end
-- Send to chat button
local sendBtn = Instance.new("TextButton")
sendBtn.Size = UDim2.new(0.45, 0, 0, 40)
sendBtn.Position = UDim2.new(0.025, 0, 1, -50)
sendBtn.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
sendBtn.Text = "📤 Send to Chat"
sendBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
sendBtn.TextSize = 16
sendBtn.Font = Enum.Font.GothamBold
sendBtn.Parent = mainFrame
local sendCorner = Instance.new("UICorner")
sendCorner.CornerRadius = UDim.new(0, 8)
sendCorner.Parent = sendBtn
sendBtn.MouseButton1Click:Connect(function()
local artLines = {}
for y = 1, 10 do
local line = ""
for x = 1, 10 do
line = line .. gridData[y][x]
end
table.insert(artLines, line)
end
sendPixelArt(artLines)
end)
-- Clear button
local clearBtn = Instance.new("TextButton")
clearBtn.Size = UDim2.new(0.45, 0, 0, 40)
clearBtn.Position = UDim2.new(0.525, 0, 1, -50)
clearBtn.BackgroundColor3 = Color3.fromRGB(255, 100, 100)
clearBtn.Text = "🗑️ Clear"
clearBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
clearBtn.TextSize = 16
clearBtn.Font = Enum.Font.GothamBold
clearBtn.Parent = mainFrame
local clearCorner = Instance.new("UICorner")
clearCorner.CornerRadius = UDim.new(0, 8)
clearCorner.Parent = clearBtn
clearBtn.MouseButton1Click:Connect(function()
for y = 1, 10 do
for x = 1, 10 do
gridData[y][x] = "⬜"
end
end
for _, pixel in pairs(canvasFrame:GetChildren()) do
if pixel:IsA("TextButton") then
pixel.Text = "⬜"
pixel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
end
end
end)
pixelArtGui.Parent = player:WaitForChild("PlayerGui")
end
-- ==================== TOOLS SYSTEM ====================
local function giveAllTools()
-- Build Tool
local buildTool = Instance.new("Tool")
buildTool.Name = "Build Tool"
buildTool.RequiresHandle = false
local buildHandle = Instance.new("Part")
buildHandle.Name = "Handle"
buildHandle.Size = Vector3.new(1, 1, 3)
buildHandle.BrickColor = BrickColor.new("Bright blue")
buildHandle.Parent = buildTool
buildTool.Activated:Connect(function()
if buildingSelection then
local newPart = buildingSelection:Clone()
newPart.Position = mouse.Hit.Position + Vector3.new(0, newPart.Size.Y/2, 0)
newPart.Parent = workspace
end
end)
buildTool.Parent = player.Backpack
-- Delete Tool
local deleteTool = Instance.new("Tool")
deleteTool.Name = "Delete Tool"
deleteTool.RequiresHandle = false
local deleteHandle = Instance.new("Part")
deleteHandle.Name = "Handle"
deleteHandle.Size = Vector3.new(1, 1, 3)
deleteHandle.BrickColor = BrickColor.new("Bright red")
deleteHandle.Parent = deleteTool
deleteTool.Activated:Connect(function()
if mouse.Target and mouse.Target ~= workspace.Terrain then
mouse.Target:Destroy()
end
end)
deleteTool.Parent = player.Backpack
-- Paint Tool
local paintTool = Instance.new("Tool")
paintTool.Name = "Paint Tool"
paintTool.RequiresHandle = false
local paintHandle = Instance.new("Part")
paintHandle.Name = "Handle"
paintHandle.Size = Vector3.new(1, 1, 3)
paintHandle.BrickColor = BrickColor.new("Bright yellow")
paintHandle.Parent = paintTool
local currentPaintColor = Color3.fromRGB(255, 0, 0)
paintTool.Activated:Connect(function()
if mouse.Target and mouse.Target:IsA("BasePart") then
mouse.Target.Color = currentPaintColor
-- Cycle color
local hue = (Color3.toHSV(currentPaintColor) * 360 + 30) % 360
currentPaintColor = Color3.fromHSV(hue / 360, 1, 1)
end
end)
paintTool.Parent = player.Backpack
print("Tools given!")
end
-- ==================== GUI CREATION ====================
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "AdminPanelV2.1"
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 500, 0, 700)
mainFrame.Position = UDim2.new(0.5, -250, 0.5, -350)
mainFrame.BackgroundColor3 = currentTheme.primary
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Parent = screenGui
applyTheme(mainFrame, "primary")
local mainCorner = Instance.new("UICorner")
mainCorner.CornerRadius = UDim.new(0, 12)
mainCorner.Parent = mainFrame
-- Title Bar
local titleBar = Instance.new("Frame")
titleBar.Size = UDim2.new(1, 0, 0, 40)
titleBar.BackgroundColor3 = currentTheme.accent
titleBar.BorderSizePixel = 0
titleBar.Parent = mainFrame
applyTheme(titleBar, "accent")
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 12)
titleCorner.Parent = titleBar
local titleFix = Instance.new("Frame")
titleFix.Size = UDim2.new(1, 0, 0, 12)
titleFix.Position = UDim2.new(0, 0, 1, -12)
titleFix.BackgroundColor3 = currentTheme.accent
titleFix.BorderSizePixel = 0
titleFix.Parent = titleBar
applyTheme(titleFix, "accent")
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -100, 1, 0)
titleLabel.Position = UDim2.new(0, 10, 0, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "🚀 ULTIMATE ADMIN V2.1"
titleLabel.TextColor3 = currentTheme.text
titleLabel.TextSize = 18
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = titleBar
applyTheme(titleLabel, "text")
local minimizeButton = Instance.new("TextButton")
minimizeButton.Size = UDim2.new(0, 30, 0, 30)
minimizeButton.Position = UDim2.new(1, -70, 0, 5)
minimizeButton.BackgroundColor3 = Color3.fromRGB(255, 200, 100)
minimizeButton.Text = "-"
minimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
minimizeButton.TextSize = 20
minimizeButton.Font = Enum.Font.GothamBold
minimizeButton.Parent = titleBar
local minimizeCorner = Instance.new("UICorner")
minimizeCorner.CornerRadius = UDim.new(0, 6)
minimizeCorner.Parent = minimizeButton
local closeButton = Instance.new("TextButton")
closeButton.Size = UDim2.new(0, 30, 0, 30)
closeButton.Position = UDim2.new(1, -35, 0, 5)
closeButton.BackgroundColor3 = Color3.fromRGB(255, 100, 100)
closeButton.Text = "X"
closeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
closeButton.TextSize = 18
closeButton.Font = Enum.Font.GothamBold
closeButton.Parent = titleBar
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 6)
closeCorner.Parent = closeButton
-- Content Frame with ScrollingFrame
local contentFrame = Instance.new("ScrollingFrame")
contentFrame.Size = UDim2.new(1, -20, 1, -60)
contentFrame.Position = UDim2.new(0, 10, 0, 50)
contentFrame.BackgroundColor3 = currentTheme.secondary
contentFrame.BorderSizePixel = 0
contentFrame.ScrollBarThickness = 8
contentFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
contentFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
contentFrame.Parent = mainFrame
applyTheme(contentFrame, "secondary")
local contentCorner = Instance.new("UICorner")
contentCorner.CornerRadius = UDim.new(0, 8)
contentCorner.Parent = contentFrame
local contentPadding = Instance.new("UIPadding")
contentPadding.PaddingTop = UDim.new(0, 10)
contentPadding.PaddingBottom = UDim.new(0, 10)
contentPadding.PaddingLeft = UDim.new(0, 10)
contentPadding.PaddingRight = UDim.new(0, 10)
contentPadding.Parent = contentFrame
local contentLayout = Instance.new("UIListLayout")
contentLayout.Padding = UDim.new(0, 8)
contentLayout.SortOrder = Enum.SortOrder.LayoutOrder
contentLayout.Parent = contentFrame
-- Helper function to create section headers
local function createSectionHeader(parent, text)
local header = Instance.new("TextLabel")
header.Size = UDim2.new(1, 0, 0, 30)
header.BackgroundColor3 = currentTheme.accent
header.Text = text
header.TextColor3 = currentTheme.text
header.TextSize = 16
header.Font = Enum.Font.GothamBold
header.TextXAlignment = Enum.TextXAlignment.Left
header.Parent = parent
applyTheme(header, "accent")
local headerPadding = Instance.new("UIPadding")
headerPadding.PaddingLeft = UDim.new(0, 10)
headerPadding.Parent = header
local headerCorner = Instance.new("UICorner")
headerCorner.CornerRadius = UDim.new(0, 6)
headerCorner.Parent = header
return header
end
-- Helper function to create toggle buttons
local function createToggleButton(parent, text, callback)
local container = Instance.new("Frame")
container.Size = UDim2.new(1, 0, 0, 50)
container.BackgroundColor3 = currentTheme.secondary
container.Parent = parent
applyTheme(container, "secondary")
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = container
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, -120, 1, 0)
label.Position = UDim2.new(0, 15, 0, 0)
label.BackgroundTransparency = 1
label.Text = text
label.TextColor3 = currentTheme.text
label.TextSize = 14
label.Font = Enum.Font.Gotham
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = container
applyTheme(label, "text")
local button = Instance.new("TextButton")
button.Size = UDim2.new(0, 100, 0, 30)
button.Position = UDim2.new(1, -110, 0.5, -15)
button.BackgroundColor3 = currentTheme.toggleOff
button.Text = "OFF"
button.TextColor3 = currentTheme.text
button.TextSize = 14
button.Font = Enum.Font.Gotham
button.Parent = container
local buttonCorner = Instance.new("UICorner")
buttonCorner.CornerRadius = UDim.new(0, 6)
buttonCorner.Parent = button
local isOn = false
button.MouseButton1Click:Connect(function()
isOn = not isOn
button.Text = isOn and "ON" or "OFF"
button.BackgroundColor3 = isOn and currentTheme.toggleOn or currentTheme.toggleOff
callback(isOn)
end)
return container
end
-- Helper function to create action buttons
local function createActionButton(parent, text, callback)
local button = Instance.new("TextButton")
button.Size = UDim2.new(1, 0, 0, 45)
button.BackgroundColor3 = currentTheme.accent
button.Text = text
button.TextColor3 = currentTheme.text
button.TextSize = 14
button.Font = Enum.Font.GothamBold
button.Parent = parent
applyTheme(button, "accent")
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = button
button.MouseButton1Click:Connect(callback)
return button
end
-- Helper function to create text inputs
local function createTextInput(parent, labelText, defaultValue, callback)
local container = Instance.new("Frame")
container.Size = UDim2.new(1, 0, 0, 50)
container.BackgroundColor3 = currentTheme.secondary
container.Parent = parent
applyTheme(container, "secondary")
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = container
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, -120, 1, 0)
label.Position = UDim2.new(0, 15, 0, 0)
label.BackgroundTransparency = 1
label.Text = labelText
label.TextColor3 = currentTheme.text
label.TextSize = 14
label.Font = Enum.Font.Gotham
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = container
applyTheme(label, "text")
local input = Instance.new("TextBox")
input.Size = UDim2.new(0, 100, 0, 30)
input.Position = UDim2.new(1, -110, 0.5, -15)
input.BackgroundColor3 = Color3.fromRGB(60, 60, 80)
input.Text = tostring(defaultValue)
input.TextColor3 = currentTheme.text
input.TextSize = 14
input.Font = Enum.Font.Gotham
input.Parent = container
applyTheme(input, "text")
local inputCorner = Instance.new("UICorner")
inputCorner.CornerRadius = UDim.new(0, 6)
inputCorner.Parent = input
input.FocusLost:Connect(function()
local value = tonumber(input.Text)
if value then
callback(value)
else
input.Text = tostring(defaultValue)
end
end)
return container
end
-- NEW: Player list with TP button
local function createPlayerList(parent)
local playerListFrame = Instance.new("ScrollingFrame")
playerListFrame.Size = UDim2.new(1, 0, 0, 200)
playerListFrame.BackgroundColor3 = currentTheme.secondary
playerListFrame.BorderSizePixel = 0
playerListFrame.ScrollBarThickness = 6
playerListFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
playerListFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
playerListFrame.Parent = parent
applyTheme(playerListFrame, "secondary")
local listCorner = Instance.new("UICorner")
listCorner.CornerRadius = UDim.new(0, 8)
listCorner.Parent = playerListFrame
local listLayout = Instance.new("UIListLayout")
listLayout.Padding = UDim.new(0, 5)
listLayout.SortOrder = Enum.SortOrder.LayoutOrder
listLayout.Parent = playerListFrame
local function updatePlayerList()
-- Clear existing
for _, child in pairs(playerListFrame:GetChildren()) do
if child:IsA("Frame") then
child:Destroy()
end
end
-- Add all players
for _, targetPlayer in pairs(Players:GetPlayers()) do
local playerFrame = Instance.new("Frame")
playerFrame.Size = UDim2.new(1, -10, 0, 40)
playerFrame.BackgroundColor3 = currentTheme.primary
playerFrame.Parent = playerListFrame
applyTheme(playerFrame, "primary")
local playerCorner = Instance.new("UICorner")
playerCorner.CornerRadius = UDim.new(0, 6)
playerCorner.Parent = playerFrame
local playerName = Instance.new("TextLabel")
playerName.Size = UDim2.new(1, -90, 1, 0)
playerName.Position = UDim2.new(0, 10, 0, 0)
playerName.BackgroundTransparency = 1
playerName.Text = targetPlayer.Name
playerName.TextColor3 = currentTheme.text
playerName.TextSize = 14
playerName.Font = Enum.Font.Gotham
playerName.TextXAlignment = Enum.TextXAlignment.Left
playerName.Parent = playerFrame
applyTheme(playerName, "text")
local tpButton = Instance.new("TextButton")
tpButton.Size = UDim2.new(0, 75, 0, 30)
tpButton.Position = UDim2.new(1, -80, 0.5, -15)
tpButton.BackgroundColor3 = currentTheme.accent
tpButton.Text = "TP 📍"
tpButton.TextColor3 = currentTheme.text
tpButton.TextSize = 12
tpButton.Font = Enum.Font.GothamBold
tpButton.Parent = playerFrame
applyTheme(tpButton, "accent")
local tpCorner = Instance.new("UICorner")
tpCorner.CornerRadius = UDim.new(0, 6)
tpCorner.Parent = tpButton
tpButton.MouseButton1Click:Connect(function()
teleportToPlayer(targetPlayer)
end)
end
end
updatePlayerList()
-- Update when players join/leave
Players.PlayerAdded:Connect(updatePlayerList)
Players.PlayerRemoving:Connect(updatePlayerList)
return playerListFrame
end
-- ==================== POPULATE GUI ====================
-- MOVEMENT SECTION
createSectionHeader(contentFrame, "🏃 MOVEMENT")
createToggleButton(contentFrame, "✈️ Flying", function(enabled)
if enabled then
startFlying()
else
stopFlying()
end
end)
-- NEW: Moonwalk toggle
createToggleButton(contentFrame, "🌙 Moonwalk Flying (Fly Backwards)", toggleMoonwalk)
createTextInput(contentFrame, "Fly Speed", 50, function(value)
adminValues.flySpeed = value
end)
createToggleButton(contentFrame, "👻 Noclip", toggleNoclip)
createTextInput(contentFrame, "Walk Speed", 16, function(value)
setWalkSpeed(value)
end)
createTextInput(contentFrame, "Jump Power", 50, function(value)
setJumpPower(value)
end)
createToggleButton(contentFrame, "🔁 Infinite Jump", toggleInfiniteJump)
createToggleButton(contentFrame, "🛝 Platform Mode", togglePlatformMode)
-- VISUAL SECTION
createSectionHeader(contentFrame, "👁️ VISUAL")
createToggleButton(contentFrame, "👁️ ESP (Player Highlights)", toggleESP)
createToggleButton(contentFrame, "💡 Fullbright", toggleFullbright)
createToggleButton(contentFrame, "👓 X-Ray", toggleXray)
createToggleButton(contentFrame, "🌈 Rainbow Mode", toggleRainbowMode)
createTextInput(contentFrame, "Rainbow Speed", 1, function(value)
adminValues.rainbowSpeed = value
end)
createTextInput(contentFrame, "FOV", 70, function(value)
adminValues.fov = value
workspace.CurrentCamera.FieldOfView = value
end)
-- COMBAT SECTION
createSectionHeader(contentFrame, "⚔️ COMBAT")
createToggleButton(contentFrame, "🛡️ God Mode", toggleGodMode)
createToggleButton(contentFrame, "🪂 No Fall Damage", toggleNoFall)
createToggleButton(contentFrame, "🧱 Walk Through Walls", toggleWallhack)
-- POINTER & TELEPORT SECTION
createSectionHeader(contentFrame, "🎯 TARGETING")
createToggleButton(contentFrame, "🎯 Pointer Lock", togglePointerLock)
createToggleButton(contentFrame, "📍 Click Teleport", toggleClickTeleport)
-- UTILITY SECTION
createSectionHeader(contentFrame, "⚙️ UTILITY")
createToggleButton(contentFrame, "💤 Anti-AFK", toggleAntiAfk)
createToggleButton(contentFrame, "🖱️ Auto Clicker", toggleAutoClicker)
createTextInput(contentFrame, "Clicks/Nanosecond", 1000000, function(value)
adminValues.clicksPerNanosecond = value
end)
createTextInput(contentFrame, "Gravity", 196.2, function(value)
adminValues.gravity = value
workspace.Gravity = value
end)
-- NEW: TOOLS SECTION
createSectionHeader(contentFrame, "🔧 TOOLS")
createActionButton(contentFrame, "🎁 Give All Tools", giveAllTools)
createActionButton(contentFrame, "📋 Duplicate All Tools", duplicateAllTools)
createActionButton(contentFrame, "🎒 View All Inventories", createInventoryViewer)
-- NEW: THEME SECTION
createSectionHeader(contentFrame, "🎨 THEMES")
local themeFrame = Instance.new("Frame")
themeFrame.Size = UDim2.new(1, 0, 0, 150)
themeFrame.BackgroundColor3 = currentTheme.secondary
themeFrame.Parent = contentFrame
applyTheme(themeFrame, "secondary")
local themeCorner = Instance.new("UICorner")
themeCorner.CornerRadius = UDim.new(0, 8)
themeCorner.Parent = themeFrame
local themeGrid = Instance.new("UIGridLayout")
themeGrid.CellSize = UDim2.new(0.3, 0, 0, 40)
themeGrid.CellPadding = UDim2.new(0.05, 0, 0, 10)
themeGrid.SortOrder = Enum.SortOrder.LayoutOrder
themeGrid.Parent = themeFrame
for themeName, _ in pairs(themes) do
local themeBtn = Instance.new("TextButton")
themeBtn.BackgroundColor3 = themes[themeName].accent
themeBtn.Text = themeName
themeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
themeBtn.TextSize = 14
themeBtn.Font = Enum.Font.GothamBold
themeBtn.Parent = themeFrame
local themeBtnCorner = Instance.new("UICorner")
themeBtnCorner.CornerRadius = UDim.new(0, 6)
themeBtnCorner.Parent = themeBtn
themeBtn.MouseButton1Click:Connect(function()
updateAllThemes(themeName)
end)
end
-- NEW: PIXEL ART SECTION
createSectionHeader(contentFrame, "🎨 PIXEL ART")
createActionButton(contentFrame, "🖼️ Open Pixel Art Editor", createPixelArtEditor)
-- SETTINGS SECTION
createSectionHeader(contentFrame, "⚙️ SETTINGS")
-- Create keybind selector
local function createKeybindSelector(parent, text, default, callback)
local Container = Instance.new("Frame")
Container.Size = UDim2.new(1, 0, 0, 50)
Container.BackgroundColor3 = currentTheme.secondary
Container.Parent = parent
applyTheme(Container, "secondary")
local Corner = Instance.new("UICorner")
Corner.CornerRadius = UDim.new(0, 8)
Corner.Parent = Container
local Label = Instance.new("TextLabel")
Label.Size = UDim2.new(1, -120, 1, 0)
Label.Position = UDim2.new(0, 15, 0, 0)
Label.BackgroundTransparency = 1
Label.Text = text
Label.TextColor3 = currentTheme.text
Label.TextSize = 14
Label.Font = Enum.Font.Gotham
Label.TextXAlignment = Enum.TextXAlignment.Left
Label.Parent = Container
applyTheme(Label, "text")
local Button = Instance.new("TextButton")
Button.Size = UDim2.new(0, 100, 0, 30)
Button.Position = UDim2.new(1, -110, 0.5, -15)
Button.BackgroundColor3 = Color3.fromRGB(60, 60, 80)
Button.Text = default.Name
Button.TextColor3 = currentTheme.text
Button.TextSize = 14
Button.Font = Enum.Font.Gotham
Button.Parent = Container
applyTheme(Button, "text")
local ButtonCorner = Instance.new("UICorner")
ButtonCorner.CornerRadius = UDim.new(0, 6)
ButtonCorner.Parent = Button
local listening = false
Button.MouseButton1Click:Connect(function()
if not listening then
listening = true
Button.Text = "Press Key..."
Button.BackgroundColor3 = Color3.fromRGB(100, 200, 100)
local connection
connection = UserInputService.InputBegan:Connect(function(input, gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard then
Button.Text = input.KeyCode.Name
Button.BackgroundColor3 = Color3.fromRGB(60, 60, 80)
callback(input.KeyCode)
listening = false
connection:Disconnect()
end
end)
end
end)
return Container
end
createKeybindSelector(contentFrame, "Toggle GUI Key", Enum.KeyCode.P, function(keyCode)
adminValues.toggleKey = keyCode
end)
-- ACTION BUTTONS
createSectionHeader(contentFrame, "🎮 ACTIONS")
createActionButton(contentFrame, "🏥 Reset Health", function()
local hum = getHumanoid()
if hum then
hum.Health = hum.MaxHealth
end
end)
createActionButton(contentFrame, "🔄 Reset Character", function()
local char = getCharacter()
if char then
char:BreakJoints()
end
end)
createActionButton(contentFrame, "🌍 Reset Gravity", function()
workspace.Gravity = 196.2
adminValues.gravity = 196.2
end)
createActionButton(contentFrame, "💥 Create Explosion", function()
local root = getRootPart()
if root then
local explosion = Instance.new("Explosion")
explosion.Position = root.Position
explosion.BlastRadius = 50
explosion.BlastPressure = 1000000
explosion.Parent = workspace
end
end)
createActionButton(contentFrame, "🌟 Sparkles", function()
local char = getCharacter()
if char then
for _, part in pairs(char:GetChildren()) do
if part:IsA("BasePart") then
local sparkle = Instance.new("Sparkles")
sparkle.Parent = part
end
end
end
end)
createActionButton(contentFrame, "🔥 Fire", function()
local char = getCharacter()
if char then
for _, part in pairs(char:GetChildren()) do
if part:IsA("BasePart") then
local fire = Instance.new("Fire")
fire.Parent = part
end
end
end
end)
createActionButton(contentFrame, "💨 Smoke", function()
local char = getCharacter()
if char then
for _, part in pairs(char:GetChildren()) do
if part:IsA("BasePart") then
local smoke = Instance.new("Smoke")
smoke.Parent = part
end
end
end
end)
createActionButton(contentFrame, "🧹 Clear Effects", function()
local char = getCharacter()
if char then
for _, obj in pairs(char:GetDescendants()) do
if obj:IsA("Fire") or obj:IsA("Smoke") or obj:IsA("Sparkles") then
obj:Destroy()
end
end
end
end)
createActionButton(contentFrame, "⚙️ Reset All Settings", function()
-- Stop all features
stopFlying()
toggleNoclip(false)
toggleESP(false)
toggleFullbright(false)
toggleXray(false)
togglePointerLock(false)
toggleClickTeleport(false)
toggleNoFall(false)
toggleAntiAfk(false)
toggleAutoClicker(false)
toggleRainbowMode(false)
togglePlatformMode(false)
toggleWallhack(false)
-- Reset values
local hum = getHumanoid()
if hum then
hum.WalkSpeed = 16
hum.JumpPower = 50
end
workspace.Gravity = 196.2
workspace.CurrentCamera.FieldOfView = 70
adminValues.walkSpeed = 16
adminValues.jumpPower = 50
adminValues.flySpeed = 50
adminValues.fov = 70
adminValues.gravity = 196.2
adminValues.clicksPerNanosecond = 1000000
adminValues.rainbowSpeed = 1
end)
-- PLAYER LIST
createSectionHeader(contentFrame, "👥 PLAYERS")
createPlayerList(contentFrame)
-- CLOSE AND MINIMIZE HANDLERS
closeButton.MouseButton1Click:Connect(function()
screenGui:Destroy()
stopFlying()
toggleNoclip(false)
toggleESP(false)
togglePointerLock(false)
clearLockedPlayer()
end)
local minimized = false
minimizeButton.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
contentFrame.Visible = false
mainFrame:TweenSize(UDim2.new(0, 500, 0, 40), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.3, true)
minimizeButton.Text = "+"
else
mainFrame:TweenSize(UDim2.new(0, 500, 0, 700), Enum.EasingDirection.Out, Enum.EasingStyle.Quad, 0.3, true, function()
contentFrame.Visible = true
end)
minimizeButton.Text = "-"
end
end)
-- PARENT TO PLAYER GUI
screenGui.Parent = player:WaitForChild("PlayerGui")
-- ==================== INPUT HANDLING ====================
-- Toggle GUI
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == adminValues.toggleKey then
screenGui.Enabled = not screenGui.Enabled
end
-- Flying controls
if adminStates.flying then
if input.KeyCode == Enum.KeyCode.W then
flyControl.w = 1
elseif input.KeyCode == Enum.KeyCode.S then
flyControl.s = 1
elseif input.KeyCode == Enum.KeyCode.A then
flyControl.a = 1
elseif input.KeyCode == Enum.KeyCode.D then
flyControl.d = 1
end
end
-- Infinite jump
if adminStates.infiniteJump and input.KeyCode == Enum.KeyCode.Space then
local hum = getHumanoid()
if hum then
hum:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
end)
UserInputService.InputEnded:Connect(function(input)
if adminStates.flying then
if input.KeyCode == Enum.KeyCode.W then
flyControl.w = 0
elseif input.KeyCode == Enum.KeyCode.S then
flyControl.s = 0
elseif input.KeyCode == Enum.KeyCode.A then
flyControl.a = 0
elseif input.KeyCode == Enum.KeyCode.D then
flyControl.d = 0
end
end
end)
-- CHARACTER RESET HANDLER
player.CharacterAdded:Connect(function(newCharacter)
character = newCharacter
humanoid = newCharacter:WaitForChild("Humanoid")
rootPart = newCharacter:WaitForChild("HumanoidRootPart")
-- Reapply settings
if adminStates.noclip then
toggleNoclip(true)
end
if adminStates.noFall then
toggleNoFall(true)
end
if adminStates.godMode then
toggleGodMode(true)
end
local hum = getHumanoid()
if hum then
hum.WalkSpeed = adminValues.walkSpeed
hum.JumpPower = adminValues.jumpPower
end
workspace.Gravity = adminValues.gravity
end)
-- STARTUP MESSAGE
print("========================================")
print("🚀 ULTIMATE ADMIN PANEL V2.1 LOADED! 🚀")
print("========================================")
print("NEW FEATURES:")
print("✅ 🌙 Moonwalk Flying (Fly Backwards!)")
print("✅ 📍 Teleport to Any Player")
print("✅ 🎒 View Everyone's Inventories (with 3D models!)")
print("✅ 📋 Tool Duplication")
print("✅ 🎨 Theme Customization (6 themes!)")
print("✅ 🖼️ Pixel Art Editor (chat emojis!)")
print("✅ 🐛 Bug Fixes & Improvements")
print("========================================")
print("Press 'Give All Tools' to get started!")
print("Press '" .. adminValues.toggleKey.Name .. "' to toggle GUI!")
print("========================================")



do yall like it?
Nice
@ilyxagaydov tysm
hai