I wrote this tutorial some time ago to describe the best method for tweening models at the time that didn’t involve the use of SetPrimaryPartCFrame or a custom implement of the function where you calculate all the offsets by hand. SetPrimaryPartCFrame suffered from floating point imprecisions that would tear a model with each call with it being noticeable over a long period of time.
Since the advent of pivots, moving models is very efficient with PivotTo and doesn’t suffer from the floating point imprecisions that SetPrimaryPartCFrame did. This note is to point to the fact that developers can use the “old” method of tweening models (by proxy - you tween a CFrameValue and then have the model’s CFrame adjust according to the current value every step) now that pivots exist and SetPrimaryPartCFrame is deprecated, ridding of model tweening’s most glaring issue.
The method in that thread is physics-reliant while moving models by a pivot doesn’t require you to hook into the physics pipeline (no unanchoring, no welds). This is also important for experiences that require joint-destroying instances like explosions to hit tweening models without destroying their joints. Anchored assemblies will maintain shape while welded ones won’t assuming you want the vanilla joint destruction behaviour of explosions and don’t want to write the hit checking logic yourself.