When in first person with this weapon system, the :lerp im using to smooth the setting of the RootPart CFrame appears somewhat choppy, like its bouncing or overshooting rather than smoothly interpolating to my cursor, while this doesn’t happen when moving up-down.
Video example: (uploaded externally as file size was too large)
This is the code setting the CFrame:
local speed = dt * 20
Root.CFrame = Root.CFrame:Lerp(CFrame.lookAt(Root.Position, Vector3.new(Mouse.Hit.Position.X, Root.Position.Y, Mouse.Hit.Position.Z)), speed/2)
Do note that the AutoRotate property of the humanoid is disabled during this as well. I have encountered this issue previously when trying to make first person camera systems, so figuring out what exactly causes this would definitely be helpful.