How To Patch “Exploding” Model
What I have found?
There was a solution where you have to apply welds to the PrimaryPart and then using SetPrimaryPartCFrame or simply use CFrame on the main part which is welded. Make sure you unanchor them and that there’s nothing that can break the joints of it.
Addendum: I think Motor6D will fix it without anchoring.
Sources & Links
There have been multiple posts about it.
Please do beware of using SetPrimaryPartCFrame for things like tweening, as it can cause your model to break apart with noticable gaps.
However, it’s not quite relevant if you don’t have any rotations involved
You should be using Welds to define fixed transformations between parts once instead of using SetPrimaryPartCFrame, which computes the “offsets” of all parts to the PrimaryPart, then computes all new CFrame values using that computed offset and the new PrimaryPart CFrame. The constant recomputations of these “offsets” causes the effect you see. By using Welds, you store the offset permanently (which you compute once at start-up with e.g. CFrame::toObjectSpace()).
This is caused by floating point precision errors when the offsets to the primarypart are calculated, which happens every call. I can’t recall if it was an official statement or not but it was mentioned in a thread a while back that SetPrimaryPartCFrame wasn’t intended to be used like this.
Using Welds (or Motor6D joints, I can’t remember) is the way to get around this. You can still keep the model anchored and CFrame it around you just need that joint object to calculate and then permanently s…
Try this instead: weld all the parts to the base using Motor6D, unanchor all the other parts, and just set the CFrame of the base.
1 Like