How Do I Tween Only the Rotation Matrix Part of a CFrame?

I am making a build system that tweens rotations in 90 degree increments.

The problem is that whenever I tween the CFrame itself to a new, rotated CFrame, the position component also becomes locked so the part can’t be moved around during the duration of the tween.

Tweening the orientation Vector3 is not optimal either, because it leads to unpredictable patterns of rotation for reaching the end goal. For example, instead of rotating 90 degrees clockwise, it might rotate 270 degrees counter-clockwise.

I’ve noticed that this problem does not occur when I tween the entirety of the CFrame with the 9 component rotation matrix; it always takes the same, predictable path. Is there any way to just tween the rotation matrix alone but leave the position property free for editing during the tween?

1 Like