
KeylessUniversal

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)No comments yet for this script.



