Attacking an object on a HingeJoint can dislodge the object

The situation:

A HingeJoint is fashioned to hold a game object such that it rotates “like a door” up to a 90 degree deflection. It works fine.

Breaking torque is set to infinity.

The object owning the joint also owns the rigidbody, but no artwork. The artwork is a small collection of child objects with mesh colliders.

This game object is to be hit with 2 ounce plastic balls (it’s a simulation of a real game held by a robotics company). The ball is intended to flip the “door like” object to one side or another, giving opponents a point for doing so.

The issue is that when the object is hit hard enough with this ball, the artwork can “dislodge” from it’s position. The hinge anchor is not moved, but the gameobject that owns the hinge is “relocated” off the axis of the hinge, as if the object were attached to a plate on the hinge, and is moved relative to that plate, but is still attached.

Repeated hits continue to move the artwork, because the parent gameobject is being moved.

To stabilize this I merely added a script to the parent game object (that owns the hinge and rigidbody) to check at fixedupdate for misalignment, and restore it. That works, though if one looks carefully the object does jostle a bit - it is restored and continues to function correctly.

Is there something I misunderstand about fashioning an object on a hinge such that no forces can knock the alignment out of whack?

Is your parent gameobject actually a kinematic rigidbody? If not a joint can always transfer forces to both connected RBs. Also as i said in my other answer you usually don’t want to parent rigidbodies. There are cases where it might make sense but you should be aware of the fact that rigidbodies are simulated on their own. The hierarchical parent / child relationship through the transform component could interfer with the actual simulation. If the parent is moved it just “drags” the childs with it. Though not through forces / velocity changes but simply through dislocation.