Inf jump and noclip gui mobile support
Key RequiredUniversal

Inf jump and noclip gui mobile support

Universal ScriptBraydencoolman14Braydencoolman14 1.1K views 45.8K executesUpdated Sep 17, 2026
Unrated
00
Lua Script•225 lines (5431 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

local player = Players.LocalPlayer

-- SETTINGS
local infiniteJumpEnabled = false
local noClipEnabled = false

-- CREATE GUI
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "MobileMovementControls"
screenGui.ResetOnSpawn = false
screenGui.IgnoreGuiInset = true
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.Parent = player:WaitForChild("PlayerGui")

-- MAIN FRAME
local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 200, 0, 135)
mainFrame.Position = UDim2.new(1, -215, 0.5, -70)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Parent = screenGui

local frameCorner = Instance.new("UICorner")
frameCorner.CornerRadius = UDim.new(0, 14)
frameCorner.Parent = mainFrame

-- TITLE / DRAG BAR
local title = Instance.new("TextLabel")
title.Name = "DragBar"
title.Size = UDim2.new(1, 0, 0, 35)
title.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
title.Text = "MOBILE CONTROLS"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.TextScaled = true
title.Font = Enum.Font.GothamBold
title.BorderSizePixel = 0
title.Active = true
title.Parent = mainFrame

local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 14)
titleCorner.Parent = title

-- BUTTON CREATOR
local function createButton(name, text, position)
	local button = Instance.new("TextButton")
	button.Name = name
	button.Size = UDim2.new(1, -20, 0, 42)
	button.Position = position
	button.BackgroundColor3 = Color3.fromRGB(55, 55, 55)
	button.TextColor3 = Color3.fromRGB(255, 255, 255)
	button.Text = text .. " [OFF]"
	button.TextScaled = true
	button.Font = Enum.Font.GothamBold
	button.BorderSizePixel = 0
	button.AutoButtonColor = true
	button.Active = true
	button.Parent = mainFrame

	local corner = Instance.new("UICorner")
	corner.CornerRadius = UDim.new(0, 10)
	corner.Parent = button

	return button
end

local infiniteJumpButton = createButton(
	"InfiniteJumpButton",
	"INFINITE JUMP",
	UDim2.new(0, 10, 0, 42)
)

local noClipButton = createButton(
	"NoClipButton",
	"NO CLIP",
	UDim2.new(0, 10, 0, 88)
)

-- DRAGGING
local dragging = false
local dragStart = nil
local startingPosition = nil

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

		dragging = true
		dragStart = input.Position
		startingPosition = mainFrame.Position
	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 difference = input.Position - dragStart

		mainFrame.Position = UDim2.new(
			startingPosition.X.Scale,
			startingPosition.X.Offset + difference.X,
			startingPosition.Y.Scale,
			startingPosition.Y.Offset + difference.Y
		)
	end
end)

UserInputService.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.Touch
		or input.UserInputType == Enum.UserInputType.MouseButton1 then

		dragging = false
	end
end)

-- INFINITE JUMP
infiniteJumpButton.Activated:Connect(function()
	infiniteJumpEnabled = not infiniteJumpEnabled

	if infiniteJumpEnabled then
		infiniteJumpButton.Text = "INFINITE JUMP [ON]"
		infiniteJumpButton.BackgroundColor3 = Color3.fromRGB(40, 170, 70)
	else
		infiniteJumpButton.Text = "INFINITE JUMP [OFF]"
		infiniteJumpButton.BackgroundColor3 = Color3.fromRGB(55, 55, 55)
	end
end)

UserInputService.JumpRequest:Connect(function()
	if not infiniteJumpEnabled then
		return
	end

	local character = player.Character
	if not character then
		return
	end

	local humanoid = character:FindFirstChildOfClass("Humanoid")
	if humanoid then
		humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
	end
end)

-- NO CLIP
local savedCollisionStates = {}

local function saveCollisionStates(character)
	savedCollisionStates = {}

	for _, object in ipairs(character:GetDescendants()) do
		if object:IsA("BasePart") then
			savedCollisionStates[object] = object.CanCollide
		end
	end
end

local function restoreCollisionStates()
	for object, collisionState in pairs(savedCollisionStates) do
		if object and object.Parent then
			object.CanCollide = collisionState
		end
	end

	savedCollisionStates = {}
end

noClipButton.Activated:Connect(function()
	noClipEnabled = not noClipEnabled

	local character = player.Character

	if noClipEnabled then
		noClipButton.Text = "NO CLIP [ON]"
		noClipButton.BackgroundColor3 = Color3.fromRGB(40, 170, 70)

		if character then
			saveCollisionStates(character)
		end
	else
		noClipButton.Text = "NO CLIP [OFF]"
		noClipButton.BackgroundColor3 = Color3.fromRGB(55, 55, 55)

		restoreCollisionStates()
	end
end)

-- NO CLIP LOOP
RunService.Stepped:Connect(function()
	if not noClipEnabled then
		return
	end

	local character = player.Character
	if not character then
		return
	end

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

-- RESPAWN SUPPORT
player.CharacterAdded:Connect(function(character)
	savedCollisionStates = {}

	if noClipEnabled then
		task.wait(0.5)
		saveCollisionStates(character)
	end
end)

Features & Information

Infinite jump and no clip

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts