XD ADMIN V3 (read description)
Key RequiredUniversal

XD ADMIN V3 (read description)

Universal ScriptMeWhenICheatMeWhenICheat 1.5K views 20.1K executesUpdated Oct 4, 2026
Unrated
00
Lua Script•380 lines (12858 chars)
local Player = game.Players.LocalPlayer
local Mouse = Player:GetMouse()
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")

--  UI SETUP
local ScreenGui = Instance.new("ScreenGui", Player:WaitForChild("PlayerGui"))
ScreenGui.Name = "AdminUI"
ScreenGui.ResetOnSpawn = false

local function makeDraggable(obj)
	local dragging, dragInput, dragStart, startPos
	obj.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			dragging = true
			dragStart = input.Position
			startPos = obj.Position
		end
	end)
	UserInputService.InputChanged:Connect(function(input)
		if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
			local delta = input.Position - dragStart
			obj.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
		end
	end)
	obj.InputEnded:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end
	end)
end

-- MAIN PANEL (SQUARE)
local MainFrame = Instance.new("Frame", ScreenGui)
MainFrame.Size = UDim2.new(0, 320, 0, 320) 
MainFrame.Position = UDim2.new(0.5, -160, 0.5, -160)
MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 12)
local MainStroke = Instance.new("UIStroke", MainFrame)
MainStroke.Thickness = 3
makeDraggable(MainFrame)

local Title = Instance.new("TextLabel", MainFrame)
Title.Size = UDim2.new(1, 0, 0, 45)
Title.BackgroundTransparency = 1
Title.Text = "XD Admin V3"
Title.Font = Enum.Font.FredokaOne
Title.TextSize = 24
Title.TextColor3 = Color3.fromRGB(255, 255, 255)

-- SCROLLING FRAME
local Scroll = Instance.new("ScrollingFrame", MainFrame)
Scroll.Size = UDim2.new(1, 0, 1, -50)
Scroll.Position = UDim2.new(0, 0, 0, 45)
Scroll.BackgroundTransparency = 1
Scroll.CanvasSize = UDim2.new(0, 0, 0, 0)
Scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
Scroll.ScrollBarThickness = 4

local ListLayout = Instance.new("UIListLayout", Scroll)
ListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
ListLayout.Padding = UDim.new(0, 15)

local Padding = Instance.new("UIPadding", Scroll)
Padding.PaddingTop = UDim.new(0, 10)
Padding.PaddingBottom = UDim.new(0, 15)

-- BUTTON GRID
local GridFrame = Instance.new("Frame", Scroll)
GridFrame.Size = UDim2.new(0, 280, 0, 130) -- Adjusted height
GridFrame.BackgroundTransparency = 1
local GridLayout = Instance.new("UIGridLayout", GridFrame)
GridLayout.CellSize = UDim2.new(0, 135, 0, 35)
GridLayout.CellPadding = UDim2.new(0, 10, 0, 10)

local function createStyledBtn(name, color, parent)
	local btn = Instance.new("TextButton", parent)
	btn.Text = name
	btn.BackgroundColor3 = color
	btn.Font = Enum.Font.GothamBold
	btn.TextSize = 13
	btn.TextColor3 = Color3.fromRGB(0,0,0)
	Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
	return btn
end

local FlyBtn = createStyledBtn("Fly", Color3.fromRGB(0, 255, 100), GridFrame)
local NoclipBtn = createStyledBtn("Noclip", Color3.fromRGB(180, 100, 255), GridFrame)
local TPBtn = createStyledBtn("Tap TP", Color3.fromRGB(100, 200, 255), GridFrame)


local ResetBtn = createStyledBtn("Reset", Color3.fromRGB(255, 80, 80), GridFrame)

-- SLIDERS
local function createSlider(name, min, max, default)
	local Holder = Instance.new("Frame", Scroll)
	Holder.Size = UDim2.new(0, 280, 0, 45)
	Holder.BackgroundTransparency = 1

	local Label = Instance.new("TextLabel", Holder)
	Label.Size = UDim2.new(1, 0, 0, 20)
	Label.BackgroundTransparency = 1
	Label.TextColor3 = Color3.fromRGB(255, 255, 255)
	Label.TextSize = 12
	Label.Text = name .. ": " .. default
	Label.Font = Enum.Font.GothamBold
	Label.TextXAlignment = Enum.TextXAlignment.Left

	local SliderFrame = Instance.new("Frame", Holder)
	SliderFrame.Size = UDim2.new(1, 0, 0, 20)
	SliderFrame.Position = UDim2.new(0, 0, 0, 22)
	SliderFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
	Instance.new("UICorner", SliderFrame).CornerRadius = UDim.new(0, 4)

	local Bar = Instance.new("Frame", SliderFrame)
	Bar.Size = UDim2.new(0.9, 0, 0, 4)
	Bar.Position = UDim2.new(0.05, 0, 0.5, -2)
	Bar.BackgroundColor3 = Color3.fromRGB(50, 50, 50)

	local Dot = Instance.new("TextButton", Bar)
	Dot.Size = UDim2.new(0, 16, 0, 16)
	Dot.Position = UDim2.new((default-min)/(max-min), -8, 0.5, -8)
	Dot.Text = ""
	Dot.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
	Instance.new("UICorner", Dot).CornerRadius = UDim.new(1, 0)

	local val = default
	local sliding = false
	Dot.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then sliding = true end end)
	UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then sliding = false end end)
	UserInputService.InputChanged:Connect(function(i)
		if sliding and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then
			local per = math.clamp((i.Position.X - Bar.AbsolutePosition.X) / Bar.AbsoluteSize.X, 0, 1)
			Dot.Position = UDim2.new(per, -8, 0.5, -8)
			val = math.floor(min + (per * (max-min)))
			Label.Text = name .. ": " .. val
		end
	end)
	return function() return val end
end

local getFlySpeed = createSlider("Fly Speed", 20, 500, 60)
local getSpeed = createSlider("Walk Speed", 16, 500, 16)
local getJumpPower = createSlider("Jump Power", 50, 500, 50)
local getGravity = createSlider("Gravity", 0, 196, 196)

-- PLAYER LIST
local ListTitle = Instance.new("TextLabel", Scroll)
ListTitle.Size = UDim2.new(1, 0, 0, 30)
ListTitle.BackgroundTransparency = 1
ListTitle.Text = "SERVER PLAYERS"
ListTitle.Font = Enum.Font.GothamBold
ListTitle.TextColor3 = Color3.fromRGB(150, 150, 150)
ListTitle.TextSize = 13

local PlayerListFrame = Instance.new("Frame", Scroll)
PlayerListFrame.Size = UDim2.new(0, 280, 0, 0)
PlayerListFrame.BackgroundTransparency = 1
local PlayerListLayout = Instance.new("UIListLayout", PlayerListFrame)
PlayerListLayout.Padding = UDim.new(0, 5)

local function updatePlayerList()
	for _, v in pairs(PlayerListFrame:GetChildren()) do if v:IsA("Frame") then v:Destroy() end end
	for _, p in pairs(Players:GetPlayers()) do
		if p ~= Player then
			local pEntry = Instance.new("Frame", PlayerListFrame)
			pEntry.Size = UDim2.new(1, 0, 0, 35)
			pEntry.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
			Instance.new("UICorner", pEntry).CornerRadius = UDim.new(0, 4)

			local pLabel = Instance.new("TextLabel", pEntry)
			pLabel.Size = UDim2.new(0.7, 0, 1, 0)
			pLabel.Position = UDim2.new(0, 10, 0, 0)
			pLabel.BackgroundTransparency = 1
			pLabel.Text = p.DisplayName
			pLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
			pLabel.TextXAlignment = Enum.TextXAlignment.Left
			pLabel.Font = Enum.Font.Gotham
			pLabel.TextSize = 11

			local pTP = Instance.new("TextButton", pEntry)
			pTP.Size = UDim2.new(0.2, 0, 0.7, 0)
			pTP.Position = UDim2.new(0.75, 0, 0.15, 0)
			pTP.BackgroundColor3 = Color3.fromRGB(100, 200, 255)
			pTP.Text = "TP"
			pTP.Font = Enum.Font.GothamBold
			pTP.TextSize = 10
			Instance.new("UICorner", pTP).CornerRadius = UDim.new(0, 4)

			pTP.MouseButton1Click:Connect(function()
				if p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
					Player.Character.HumanoidRootPart.CFrame = p.Character.HumanoidRootPart.CFrame * CFrame.new(0, 3, 0)
				end
			end)
		end
	end
	PlayerListFrame.Size = UDim2.new(0, 280, 0, #Players:GetPlayers() * 40)
end
Players.PlayerAdded:Connect(updatePlayerList)
Players.PlayerRemoving:Connect(updatePlayerList)
updatePlayerList()


-- APPLY PLAYER stats
local function applyPlayerSettings()
	local char = Player.Character
	if not char then
		return
	end

	local humanoid = char:FindFirstChildOfClass("Humanoid")
	if humanoid then
		-- Walk Speed
		humanoid.WalkSpeed = getSpeed()

		-- Jump Power
		humanoid.UseJumpPower = true
		humanoid.JumpPower = getJumpPower()
	end

	-- Gravity
	workspace.Gravity = getGravity()
end

local settingsConnection = RunService.Heartbeat:Connect(function()
	if Player.Character then
		applyPlayerSettings()
	end
end)

Player.CharacterAdded:Connect(function(character)
	character:WaitForChild("Humanoid")

	task.wait(0.1)
	applyPlayerSettings()
end)

-- LOGIC
-- FLY
local flying = false
FlyBtn.MouseButton1Click:Connect(function()
	flying = not flying
	FlyBtn.Text = flying and "Fly (ON)" or "Fly"
	local char = Player.Character
	if flying and char then
		local hrp = char:WaitForChild("HumanoidRootPart")
		local bv = Instance.new("BodyVelocity", hrp)
		bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
		local bg = Instance.new("BodyGyro", hrp)
		bg.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
		char.Humanoid.PlatformStand = true
		task.spawn(function()
			while flying and char.Parent do
				local cam = workspace.CurrentCamera
				local dir = Vector3.new(0,0,0)
				if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir = dir + cam.CFrame.LookVector end
				if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir = dir - cam.CFrame.LookVector end
				if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir = dir - cam.CFrame.RightVector end
				if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir = dir + cam.CFrame.RightVector end
 -- up & down
	            if UserInputService:IsKeyDown(Enum.KeyCode.E) then dir = dir + Vector3.new(0,1,0) end
                if UserInputService:IsKeyDown(Enum.KeyCode.Q) then dir = dir - Vector3.new(0,1,0) end
				bv.Velocity = dir.Unit * getFlySpeed()
				if dir == Vector3.new(0,0,0) then bv.Velocity = Vector3.new(0,0,0) end
				bg.CFrame = cam.CFrame
				task.wait()
			end
			bv:Destroy() bg:Destroy() char.Humanoid.PlatformStand = false
		end)
	end
end)

Player.CharacterAdded:Connect(function(char)
	flying = false
	FlyBtn.Text = "Fly"

	task.wait(0.1)

	local hrp = char:FindFirstChild("HumanoidRootPart")
	if hrp then
		for _, v in ipairs(hrp:GetChildren()) do
			if v:IsA("BodyVelocity") or v:IsA("BodyGyro") then
				v:Destroy()
			end
		end
	end

	local humanoid = char:FindFirstChildOfClass("Humanoid")
	if humanoid then
		humanoid.PlatformStand = false
	end
end)


-- NOCLIP
local noclip = false
local ncConn

local function toggleNoclip(on)
	noclip = on
	NoclipBtn.Text = on and "Noclip (ON)" or "Noclip"

	if ncConn then ncConn:Disconnect() end
	ncConn = nil

	if on then
		ncConn = RunService.Stepped:Connect(function()
			if Player.Character then
				for _, v in ipairs(Player.Character:GetDescendants()) do
					if v:IsA("BasePart") then v.CanCollide = false end
				end
			end
		end)
	end
end

NoclipBtn.MouseButton1Click:Connect(function()
	toggleNoclip(not noclip)
end)

Player.CharacterAdded:Connect(function()
	toggleNoclip(false)
end)

ResetBtn.MouseButton1Click:Connect(function()
	toggleNoclip(false)
	if Player.Character then Player.Character:BreakJoints() end
end)

-- Tap TP
local tpOn = false

TPBtn.MouseButton1Click:Connect(function()
	tpOn = not tpOn
	TPBtn.Text = tpOn and "TP (ON)" or "Tap TP"
end)

UserInputService.InputBegan:Connect(function(input, processed)
	if not tpOn or processed then return end

	if input.UserInputType == Enum.UserInputType.MouseButton1
		or input.UserInputType == Enum.UserInputType.Touch then

		local pos = UserInputService:GetMouseLocation()
		local ray = workspace.CurrentCamera:ViewportPointToRay(pos.X, pos.Y)
		local hit = workspace:Raycast(ray.Origin, ray.Direction * 1000)

		if hit and Player.Character then
			Player.Character.HumanoidRootPart.CFrame =
				CFrame.new(hit.Position + Vector3.new(0, 3, 0))
		end
	end
end)

-- Reset on death
Player.CharacterAdded:Connect(function()
	tpOn = false
	TPBtn.Text = "Tap TP"
end)

ResetBtn.MouseButton1Click:Connect(function()
	tpOn = false
	TPBtn.Text = "Tap TP"
	if Player.Character then Player.Character:BreakJoints() end
end)

-- Reset button
ResetBtn.MouseButton1Click:Connect(function() if Player.Character then Player.Character:BreakJoints() end end)

-- X button
local CloseBtn = createStyledBtn("X", Color3.fromRGB(255,50,50), MainFrame)
CloseBtn.Size = UDim2.new(0, 26, 0, 26)
CloseBtn.Position = UDim2.new(1, -32, 0, 8)
local OpenBtn = createStyledBtn("Open XD", Color3.fromRGB(0,0,0), ScreenGui)
OpenBtn.Size = UDim2.new(0, 100, 0, 40)
OpenBtn.Position = UDim2.new(0.5, -50, 0.9, 0)
OpenBtn.TextColor3 = Color3.fromRGB(255,255,255)
OpenBtn.Visible = false
makeDraggable(OpenBtn)
CloseBtn.MouseButton1Click:Connect(function() MainFrame.Visible = false OpenBtn.Visible = true end)
OpenBtn.MouseButton1Click:Connect(function() MainFrame.Visible = true OpenBtn.Visible = false end)

Features & Information

feature updates: fly/noclip/tap tp now turns to off after reset, Tap TP no longer trigger on buttons Original script by c00lkidd_XD6967 https://scriptblox.com/script/Universal-Script-XD-ADMIN-V1-82586 Last version by me using ChatGPT https://scriptblox.com/script/Universal-Script-XD-ADMIN-V2-201265 tested with solara executor I used ChatGPT to edit some functions
#gui#solora#fly#noclip#tp

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts