How would I go about detecting the direction a player is inputting for their character across platforms?

This should work. Uses the camera cframe as well as the raw movement vector provided by the PlayerModule to get the real movement direction.

local Controller = require(game.Players.LocalPlayer.PlayerScripts:WaitForChild("PlayerModule")):GetControls()
local function GetInputDirection()
	local Direction = workspace.CurrentCamera.CFrame:VectorToWorldSpace(Controller:GetMoveVector())
	return if Direction.X ~= 0 or Direction.Z ~= 0 then Vector3.new(Direction.X, 0, Direction.Z).Unit else Vector3.zero
end
20 Likes