This problem is in most cases trivial, solved with CFrame*CFrame.Angles(x,y,z)

However, this solution proves to be inadequate for performing rolls and tilts beyond 90 degrees with an aircraft: The direction of rotation will be briefly reversed, causing a jolt in the manoeuvre and possibly preventing it entirely.

This bug occurs as a result of storing angles above 180 degrees as negatives: It means that every 180 degrees of a turn will have a sign switch, which will cause an unexpected result with the maths.

Anyone know how I can solve this? Unfortunately, when the angles are stored in a CFrame, I canâ€™t do anything about them being negative; theyâ€™re converted to the buggy signed format when the CFrame is created.

EDIT:

It turns out that what I was encountering was a bug with BodyGyro, CFrames are fine.