Hi @Raildex_,
I had this exact problem when working on my swimming code a few months ago lol. The issue is Gimbal lock and the pitch getting reset.
Here is my solution:
On my setup Im using Control rotation pitch and yaw to drive character rotation. So, I’m constantly checking pitch against a threshold (say 75 degrees). When the character goes past the threshold…
Switch from Impulse to AddWorldOffset and do a delta location in the Z vector (up) or -Z vector (down).
Try this and play around with the pitch values (75-85 seem to work best for me).
Hope this helps!