
KeylessUniversal

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



