Running the first segment no longer rotates it in the desired direction. I understand that my original code segment is working just fine, and in reality the axis I want to rotate the part on is “swapped”, but I’m not sure how to get around that. I imagine the solution is to use :ToWorldSpace or :ToObjectSpace, but nothing I’ve tried has worked. Thanks.
The axis of rotation depends on the order in which the CFrames are applied. If the multiplication of angles is after the part CFrame like the example code
Its “relative” to the parts axis and current rotation.
To make it relative to world space do
Part.CFrame = CFrame.Angles() *part.CFrame
This makes it relative to world space as the previous CFrame is CFrame.new
Never mind, I see the thread’s poster wants to maintain the object’s orientation and rotate it relative to the world space as opposed to rotating the object relative to its object space.