How to prevent rotating and make pushing easier in 2D game?

Heyo I’ve been working on a 2D game and I think one of my biggest issues atm is working with the players character and npcs I’ve been trying to prevent them from rotating like this https://streamable.com/b9t30t and also pushing is a bit wack Pushing I want it to be nice and smooth when pushing but as you can see it’s not.

I’m using a body position at the moment to keep them in place also the parts are set to massless.

local BodyPos = Instance.new("BodyPosition")
BodyPos.Position = Main.HRP.Position
BodyPos.MaxForce = Vector3.new(0,0,math.huge)
BodyPos.P = 1e6
BodyPos.Parent = Main.HRP	

And I’m also doing this to make sure they’re always facing the opponent

	Modules.ClientMatchManager.Connections["FacePlayer"] = Main.RunService.RenderStepped:Connect(function()
		if Main.Humanoid:GetState() ~= Enum.HumanoidStateType.Freefall then
			local CharacterPos = Main.Character.PrimaryPart.Position
			local OpponentPos = OpponentCharacter.PrimaryPart.Position
			local NewVector = Vector3.new(OpponentPos.X,CharacterPos.Y,OpponentPos.Z)
			local NewCFrame = CFrame.new(CharacterPos,NewVector)
			Main.Character:SetPrimaryPartCFrame(NewCFrame)				
		end
	end)

You could disable the AutoRotate boolval that’s a property to humanoid, I’m fairly sure this will prevent all and any ability to rotate?

https://developer.roblox.com/en-us/api-reference/property/Humanoid/AutoRotate

Sorry if this doesn’t help at all, I haven’t tried making a 2D game ever.

I already have autorotate off which I think works, but this issue still seems to occur.

Wait I’m stupid, I mean turn it on.