Run it
Copy the script and paste it into your executor.
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local playerScripts = player:WaitForChild("PlayerScripts")
local controls = require(playerScripts:WaitForChild("PlayerModule")):GetControls()
local BIND_NAME = "CameraAlignedMobileMove"
local DEADZONE = 0.05
local function unbind()
RunService:UnbindFromRenderStep(BIND_NAME)
end
local (char)
()
UserInputService.TouchEnabled
humanoid = char:()
RunService:(BIND_NAME, .RenderPriority.Input.Value + , ()
humanoid.Parent
()
camera = .CurrentCamera
camera
move = controls:()
mag = move.Magnitude
mag <= DEADZONE
camLook = camera.CFrame.LookVector
camRight = camera.CFrame.RightVector
forward = .(camLook.X, , camLook.Z)
right = .(camRight.X, , camRight.Z)
forward.Magnitude >
forward = forward.Unit
right.Magnitude >
right = right.Unit
worldMove = (right * move.X - forward * move.Z)
worldMove.Magnitude >
humanoid:(worldMove.Unit, )
)
player.CharacterAdded:(hookCharacter)
player.Character
(player.Character)
There's no slowdown in movement when you try to move using your joystick in mobile. You'll be already at full speed. I'll make it open source btw. NOTE: This is recommended for obbies or parkour since I specifically made it for that. It allows more dexterity and easier maneuverability.

Universal