Do you use Quarternions? [Fixed!]

Hey , sorry I missed your message first time around:

Alpha is initialized every frame to FVector::ZeroVector. I don’t set Omega.Z to zero because at the end of the frame, I do UpdatedComponent->SetPhysicsAngularVelocity(Omega);. I want to keep the existing omega.Z value in case of collisions etc, otherwise I’ll smash into something and won’t respond to it.

I also figured out why I shouldn’t be clearing the Z vector for each part. Imagine I reach a rotation in mid-air where the side of my craft is parallel to the floor. At this point I may want to pitch up or down still, but I won’t be able to since Z will be forced to zero all the time, and I’ll have to wait until I hit the ground and the auto-levelling system takes over.

The most sensible method for me here is to adjust the ‘Alpha’ value based on the axes of the craft, it’s just bizarre that it doesn’t seem to work the way it should.