XD ADMIN V2 (read description)
Key RequiredUniversal

XD ADMIN V2 (read description)

Universal ScriptMeWhenICheatMeWhenICheat 13.9K views 100.9K executesUpdated Apr 14, 2026
4.3/ 5(7 votes)
6186% Positive
Lua Script•308 lines (11862 chars)
--[[ WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk! ]]


local Player = game.Players.LocalPlayer
local Mouse = Player:GetMouse()
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")

-- 1. UI SETUP
local ScreenGui = Instance.new("ScreenGui", Player:WaitForChild("PlayerGui"))
ScreenGui.Name = "XDAdminUI"
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 V2"
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

-- Here to edit slider (min, max, default)
local getFlySpeed = createSlider("Fly Speed", 20, 200, 60)
local getSpeed = createSlider("Walk Speed", 16, 200, 16)
local getJumpPower = createSlider("Jump Power", 50, 200, 50)
local getGravity = createSlider("Gravity", 20, 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()

-- LOGIC
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
	            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)

-- NOCLIP FIX (Disables properly now)
local noclip = false
local ncConn
NoclipBtn.MouseButton1Click:Connect(function()
	noclip = not noclip
	NoclipBtn.Text = noclip and "Noclip (ON)" or "Noclip"

	if noclip then
		ncConn = RunService.Stepped:Connect(function()
			if noclip and Player.Character then
				for _, v in pairs(Player.Character:GetDescendants()) do
					if v:IsA("BasePart") then v.CanCollide = false end
				end
			end
		end)
	else
		if ncConn then ncConn:Disconnect() end
		if Player.Character then
			for _, v in pairs(Player.Character:GetDescendants()) do
				if v:IsA("BasePart") then v.CanCollide = true end
			end
		end
	end
end)

RunService.Heartbeat:Connect(function()
	if Player.Character and Player.Character:FindFirstChild("Humanoid") then 
		local hum = Player.Character.Humanoid
		
		hum.UseJumpPower = true
		hum.WalkSpeed = getSpeed()
		hum.JumpPower = getJumpPower()
	end

	workspace.Gravity = getGravity()
end)

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

UserInputService.InputBegan:Connect(function(input)
	if TPBtn.Text == "TP (ON)" and (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 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 includes: Fly (Q&E to go up&down), Noclip, Click TP, Reset character, TP to player list, Slider control for fly speed, walk speed, jump height and gravity (effects every client side parts) Original script by c00lkidd_XD6967 https://scriptblox.com/script/Universal-Script-XD-ADMIN-V1-82586 removed orbit and fling tested with solara executor I used ChatGPT to edit some functions you can find the code to change the limits of the sliders
#solara#gui#fly#noclip#tp

Community Comments (13)

MeWhenICheatMeWhenICheatApr 15, 2026

@Franek2014 what executor did you use?

Replying to @MeWhenICheat
ProgamerYTProgamerYTJul 19, 2026

@MeWhenICheat solara read the description

Replying to @ProgamerYT
MeWhenICheatMeWhenICheatJul 26, 2026

@ProgamerYT that's me asking someone who had trouble executing

b81ba723b81ba723Apr 15, 2026

what is this

Replying to @b81ba723
MeWhenICheatMeWhenICheatApr 17, 2026

@b81ba723 read the description

xdemonstream192xdemonstream192Apr 18, 2026

How to use.

Replying to @xdemonstream192
MeWhenICheatMeWhenICheatApr 20, 2026

@xdemonstream192 do you mean how to run the script? or how the gui work? it should be obvious

LexTheMommyLexTheMommyMay 8, 2026

Good script, works really well without any problem in most games, but people would prefer using inf yield admin

Replying to @LexTheMommy
MeWhenICheatMeWhenICheatMay 15, 2026

@LexTheMommy of course people would prefer infinite yield, but I don't like to type commends

rubma47rubma47Jun 7, 2026

i created a script like this for spanish people :D

How to use for phone idk how

Replying to @Sjsjsjsjjsjskwjwjwn
MeWhenICheatMeWhenICheatJul 27, 2026

@Sjsjsjsjjsjskwjwjwn use executor :P if it doesn't work I can't help

Dilophosaurus67Dilophosaurus67Jul 28, 2026

Hoe gebruik ik het in roblox

More Scripts for Universal Scripts