Yellioiousito Gueto
Key RequiredUniversal

Yellioiousito Gueto

Universal ScriptWubbexploitorWubbexploitor 285 views 219 executesUpdated Jan 24, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•1984 lines (56347 chars)
-- 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("========================================")

Features & Information

uhh flying noclip ig?

Community Comments (4)

WubbexploitorWubbexploitorJan 24, 2026

do yall like it?

ilyxagaydovilyxagaydovJan 24, 2026

Nice

Replying to @ilyxagaydov
WubbexploitorWubbexploitorJan 24, 2026

@ilyxagaydov tysm

WubbexploitorWubbexploitorJan 26, 2026

hai

More Scripts for Universal Scripts