This occurs when either in first person or shift locked, jumping and when the character has any large parts that offset its centre of mass ( as far as I can tell ) ( In this gif I’m holding S to move backwards yet as you can see I move sideways at the same time )
You can reproduce it with this place by selecting the gun and trying to move backwards along the green line while in FP / Shift locked and jumping
Any sort of backwards movement is glitchy anyway, you can use it to go through walls more often than if you go forwards and you fall over more often and can get flung into the air with it.
So, disabling auto rotate fixes the issue, it appears that the when moving backwards, the backwards movement is occuring after the character rotates from the auto rotation ( so it would be facing slightly to either side ) and before the rotation lock from first person / etc.
I don’t really know what to do with this bug. I think @CodeWriter might know if this is fixable (although don’t expect an immediate reply, he’s busy with R15).
This does indeed happen because the character’s centre of mass has been offset. It can be fixed using the new-ish Massless property.
If you’re adding parts to the character, make them Massless so that they don’t affect movement.
[Edit 2 months later…]
Ok this also happens cause of some weird auto rotation thing that Roblox has.
I band-aid fixed it by disabling the ‘AutoRotate’ property on Humanoids, and also setting the CFrame of the local player’s HumanoidRootPart every frame in RenderStepped
local pitch, yaw, roll = workspace.CurrentCamera.CFrame:ToEulerAnglesYXZ()
character.HumanoidRootPart.CFrame = CFrame.new(character.HumanoidRootPart.Position) * CFrame.Angles(0,yaw,0)