Joint system scale problems

Hello! I’m having some issues with a joint system I built and I can’t figure out how to troubleshoot or fix it.

I have a hand I set up to be an active ragdoll, the joint system has a parent object to make it easy to move it around as a whole.When I hit play it looks like this-
https://i.gyazo.com/d51ce9c4cedd1ca35552d28bd9d06264.gif

It’s not perfect but it works well enough for now. However, when I scale my parent object to be smaller the entire behavior of the joint system changes. When I scale it smaller and hit play the same exact system with 0 changes behaves like this-
https://i.gyazo.com/b2030833ec5641e79a2c711a367592a1.gif

I am using configurable joints and capsule colliders. The configurable joint contains an option for “Configured in World” which is toggled to false. There is no script or code on this object. If you have any ideas on how to fix this I would greatly appreciate it. Thank you

Dude, I have been struggling this for a while now, and finally I have figured it out.
Not sure if you still need it, but here it is anyways.

So the problem seems to be that the physics system calculates the anchors and connected anchors at the start, but does not update them later, which is fine, as long as the scale is the same.

But when you scale it, the joint system stays at the original size thus the model falls apart.

What you need to do is save the anchor and connected anchor positions, and update it whenever you scale it. (It is in local space, so no need to scale it).

Don’t forget to disable Auto Configure Connected Anchor!!

My script does it in every update:

Transform[] children;
private Vector3[] _connectedAnchor;
private Vector3[] _anchor;

void Start()
{
    children = transform.GetComponentsInChildren<Transform>();
    _connectedAnchor = new Vector3[children.Length];
    _anchor = new Vector3[children.Length];

    for (int i = 0; i < children.Length; i++)
    {
        if (children*.GetComponent<Joint>() != null)*

{
connectedAnchor = children*.GetComponent().connectedAnchor;*
anchor = children*.GetComponent().anchor;*
}

}
}
private void Update()
{
for (int i = 0; i < children.Length; i++)
{
if (children*.GetComponent() != null)*
{
children.GetComponent().connectedAnchor = connectedAnchor*;
children.GetComponent().anchor = _anchor;*

}
}
}
I hope you find it useful.
Best, Richard_

When you scaled your hand, did you scale the mass in the rigidbody(s) to match?

If you don’t, the forces (particularly gravity) will appear to have a larger magnitude.