Adding new parts to a rig no longer working correctly (again)

This issue happened back in August and was resolved after about a week but it has appeared again with all the same issues so I’ll just copy paste my old bug report

I’m experiencing an issue where parts that are cloned into a character model and rigged onto it with motors are not working the way they were. Rather than being rigged onto the character and playing the animation like normal, the character is teleporting to the new part and starts flinging all over the place. SetNetworkOwner and RootPriority don’t seem to change anything.

Expected behavior

How it used to look:

What is now happening:

Are you using any LinearVelocity, AlignPosition, AlignOrientation or AngularVelocity constraints? This kind of issue may relate to this rollout:

You can check by disabling the workspace property MoverConstraintRootBehavior.

No, this works entirely by inserting new models into the player character and attaching their primary parts with new Motor6ds. The inserted models have no anchored parts.

Can you turn on the Massless property on the added parts? I know that sometimes fixes things for welded items like tools but I’m not sure if it’ll do the same for Motor6Ds.

This does seem to fix it, but this should probably still be looked into as the teleporting was fixed without me making any changes previously (and before my last bug report for it was responded to)

This definitely sounds like an AssemblyRootPart issue. We have seen similar issues with some MoverConstraints, which is why I asked about those. I’m unaware of any recent changes that would have affected root part selection independent of MoverConstraints but I can take a closer look. Setting the new parts as Massless should pretty much guarantee that an existing part in the character will be selected as the root so its not surprising this would fix the issue. Do you have a simple reproduction you can send? Thanks.

1 Like

Sorry forgot about this, here’s a simple repro

Before making this report I’d forgotten that I make my custom characters entirely massless for velocity stuff so that’s also done in this repro. While its understandable something weird would happen if something of mass is added to a model without it this behavior didn’t exist again until a short time ago, but if changing Massless is the solution for welds and now also this then this probably isn’t that big of a deal.

RigMassRepro.rbxl (67.4 KB)

I looked through recent changes and didn’t see any obvious changes to this part of the code. The change in behavior is likely a side effect of some other change we made. Generally, having the entire character as massless is going to be error prone and make things sensitive to small changes. The massless property is ignored for the RootPart of an assembly, so attempting to make the entire assembly massless means that the dynamics are going to be extremely sensitive to this root part selection (since it will be the only part with mass). Performing any operation that may change this root part, such as welding additional parts to an assembly, is going to lead to unpredictable behavior when the root part changes. You can see this post for additional context: New BasePart Properties: Massless & RootPriority .

In the reproduction file you shared, it looks like the HumanoidRootPart starts as the AssemblyRootPart and then it switches to the part “Right” when I add the extra parts. Everything seems to work fine if the massless property on the HumanoidRootPart is disabled. Because this property is ignored on the AssemblyRootPart, changing this setting should have no effect outside of this welding behavior. Will that work for your application?

This did work for me, yes. It makes sense why it’d now work that way but just wanted to see if this new behavior was intentional.