Idk
Key RequiredUniversal

Idk

Universal ScriptDylanlolopooDylanlolopoo 24 views 5 executesUpdated Aug 10, 2026
Unrated
00
Lua Script•370 lines (7855 chars)
--// MOBILE MOVEMENT GUI
--// Put this in:
--// StarterPlayer > StarterPlayerScripts > LocalScript

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

local player = Players.LocalPlayer

local character
local humanoid
local root

local flying = false
local noclip = false
local infiniteJump = false

local walkSpeed = 16
local jumpPower = 50
local flySpeed = 60

local flyUp = false
local flyDown = false

local function loadCharacter(char)
	character = char
	humanoid = char:WaitForChild("Humanoid")
	root = char:WaitForChild("HumanoidRootPart")

	humanoid.WalkSpeed = walkSpeed
	humanoid.JumpPower = jumpPower
end

if player.Character then
	loadCharacter(player.Character)
end

player.CharacterAdded:Connect(loadCharacter)

--==================================================
-- GUI
--==================================================

local gui = Instance.new("ScreenGui")
gui.Name = "MobileMovementGUI"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.Parent = player:WaitForChild("PlayerGui")

local main = Instance.new("Frame")
main.Size = UDim2.fromOffset(230, 390)
main.Position = UDim2.new(0, 15, 0.5, -195)
main.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
main.BorderSizePixel = 0
main.Active = true
main.Parent = gui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 12)
corner.Parent = main

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 45)
title.BackgroundTransparency = 1
title.Text = "MOVEMENT"
title.TextColor3 = Color3.new(1, 1, 1)
title.TextSize = 22
title.Font = Enum.Font.GothamBold
title.Parent = main

-- Dragging
local dragging = false
local dragStart
local startPosition

title.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.Touch
		or input.UserInputType == Enum.UserInputType.MouseButton1 then

		dragging = true
		dragStart = input.Position
		startPosition = main.Position

		input.Changed:Connect(function()
			if input.UserInputState == Enum.UserInputState.End then
				dragging = false
			end
		end)
	end
end)

UserInputService.InputChanged:Connect(function(input)
	if not dragging then
		return
	end

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

		local delta = input.Position - dragStart

		main.Position = UDim2.new(
			startPosition.X.Scale,
			startPosition.X.Offset + delta.X,
			startPosition.Y.Scale,
			startPosition.Y.Offset + delta.Y
		)
	end
end)

local function createButton(text, y)
	local button = Instance.new("TextButton")

	button.Size = UDim2.new(1, -20, 0, 45)
	button.Position = UDim2.fromOffset(10, y)

	button.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
	button.TextColor3 = Color3.new(1, 1, 1)

	button.Text = text
	button.TextSize = 17
	button.Font = Enum.Font.GothamBold

	button.AutoButtonColor = true
	button.Parent = main

	local c = Instance.new("UICorner")
	c.CornerRadius = UDim.new(0, 8)
	c.Parent = button

	return button
end

local flyButton = createButton("FLY: OFF", 50)
local speedButton = createButton("WALK SPEED: 16", 102)
local noclipButton = createButton("NOCLIP: OFF", 154)
local infJumpButton = createButton("INF JUMP: OFF", 206)
local jumpButton = createButton("JUMP POWER: 50", 258)

--==================================================
-- FLY UP/DOWN BUTTONS
--==================================================

local upButton = createButton("▲ FLY UP", 310)
local downButton = createButton("▼ FLY DOWN", 362)

-- Make the frame slightly taller
main.Size = UDim2.fromOffset(230, 420)

--==================================================
-- FLY
--==================================================

flyButton.Activated:Connect(function()
	flying = not flying

	if flying then
		flyButton.Text = "FLY: ON"
	else
		flyButton.Text = "FLY: OFF"

		if root then
			root.AssemblyLinearVelocity = Vector3.zero
		end

		if humanoid then
			humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
		end
	end
end)

--==================================================
-- WALK SPEED
--==================================================

speedButton.Activated:Connect(function()

	if walkSpeed == 16 then
		walkSpeed = 32

	elseif walkSpeed == 32 then
		walkSpeed = 50

	elseif walkSpeed == 50 then
		walkSpeed = 75

	elseif walkSpeed == 75 then
		walkSpeed = 100

	else
		walkSpeed = 16
	end

	speedButton.Text = "WALK SPEED: " .. walkSpeed

	if humanoid then
		humanoid.WalkSpeed = walkSpeed
	end
end)

--==================================================
-- NOCLIP
--==================================================

noclipButton.Activated:Connect(function()

	noclip = not noclip

	if noclip then
		noclipButton.Text = "NOCLIP: ON"
	else
		noclipButton.Text = "NOCLIP: OFF"

		if character then
			for _, obj in ipairs(character:GetDescendants()) do
				if obj:IsA("BasePart") then
					obj.CanCollide = true
				end
			end
		end
	end
end)

RunService.Stepped:Connect(function()

	if not noclip or not character then
		return
	end

	for _, obj in ipairs(character:GetDescendants()) do
		if obj:IsA("BasePart") then
			obj.CanCollide = false
		end
	end
end)

--==================================================
-- INFINITE JUMP
--==================================================

infJumpButton.Activated:Connect(function()

	infiniteJump = not infiniteJump

	if infiniteJump then
		infJumpButton.Text = "INF JUMP: ON"
	else
		infJumpButton.Text = "INF JUMP: OFF"
	end
end)

UserInputService.JumpRequest:Connect(function()

	if infiniteJump and humanoid then
		humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
	end
end)

--==================================================
-- JUMP POWER
--==================================================

jumpButton.Activated:Connect(function()

	if jumpPower == 50 then
		jumpPower = 75

	elseif jumpPower == 75 then
		jumpPower = 100

	elseif jumpPower == 100 then
		jumpPower = 150

	else
		jumpPower = 50
	end

	jumpButton.Text = "JUMP POWER: " .. jumpPower

	if humanoid then
		humanoid.JumpPower = jumpPower
	end
end)

--==================================================
-- FLY UP/DOWN TOUCH BUTTONS
--==================================================

local function holdButton(button, variableName)

	button.InputBegan:Connect(function(input)

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

			if variableName == "up" then
				flyUp = true
			else
				flyDown = true
			end
		end
	end)

	button.InputEnded:Connect(function(input)

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

			if variableName == "up" then
				flyUp = false
			else
				flyDown = false
			end
		end
	end)
end

holdButton(upButton, "up")
holdButton(downButton, "down")

--==================================================
-- FLY MOVEMENT
--==================================================

RunService.RenderStepped:Connect(function()

	if not flying then
		return
	end

	if not character or not humanoid or not root then
		return
	end

	-- Roblox's built-in mobile joystick
	local direction = humanoid.MoveDirection

	local velocity = direction * flySpeed

	-- Up/down buttons
	if flyUp then
		velocity += Vector3.new(0, flySpeed, 0)
	end

	if flyDown then
		velocity -= Vector3.new(0, flySpeed, 0)
	end

	root.AssemblyLinearVelocity = velocity

	-- Prevent normal falling
	humanoid:ChangeState(Enum.HumanoidStateType.Physics)
end)

--==================================================
-- RESPAWN SUPPORT
--==================================================

player.CharacterAdded:Connect(function(char)

	loadCharacter(char)

	task.wait(0.25)

	if humanoid then
		humanoid.WalkSpeed = walkSpeed
		humanoid.JumpPower = jumpPower
	end
end)

Features & Information

Idk find out

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts