The way I solved this was to create a completely seperate movement script and ditch the default roblox one. The way it works is the character can only move forwards, using the Humanoid:Move() function, and then a BodyAngularVelocity applies a turning when A or D is pressed. I’m aware that this is outdated and probably inefficent but it works for me.