Rotation Math Headache

I have 2 physics meshes, the vehicle mesh and the wheel mesh. I need to get the Yaw of the wheels that turn relative to the Yaw of the vehicle’s mesh. This is turning out to be a lot more difficult then I originally thought, because for whatever reason whatever I try the Pitch and Roll somehow affect the Yaw.

You simply substract base object rotation from attached object rotation

Attached object rotation - Base object rotation

That’s odd, that is actually the first thing I tried. Does that mean this is the wrong way to subtract rotators?

This is definitely giving me the wrong answer. I’ve been Googling around trying to find the proper math for dealing with rotators, there doesn’t seem to be much out there, maybe you can point me in the right direction?

Okay so I’ve tried something new and it has confused me even more. I’m trying this setup to get local rotation

and from looking at it (which I’ve been doing for far too long), theres no way it could really be wrong. But it’s not giving me what I need.
In my vehicle’s blueprint I can see that the wheel’s local rotation is 0,90,0 (P,Y,R or Y,Z,X).
So to run a test on the code above, I disable physics to all parts of the vehicle, then run the game and the code prints it’s answer to my screen every 2 seconds.

  1. While the vehicle is flat on the ground, I get 0,90,0, which is correct.

  2. Then I rotate the Roll of the vehicle and I get 30, 90, 30, I would expect it to still be 0, 90, 0

  3. Then I rotate the Pitch of the vehicle and I get 60, 27, -51, again I would expect it to still be 0, 90, 0

How is this the local rotation? I thought the local rotation of an attached object would stay the same regardless of it’s parent’s rotation?