JointInstance is the base class for joints, such as Connectors, Welds, and Snaps.
Weld, Snap, WeldConstraint, Motor, and Motor6D joints all combine multiple parts into the same Assembly. An assembly is a rigid body if none of its parts are anchored. No physical forces can ever separate the parts of an Assembly or move them relative to each other unless the joints are removed or updated. They're a single body.
Every Assembly has a root part, see BasePart:GetRootPart(). When a JointInstance's C0/C1 is modified the root part will stay where it was.
Welds do not have any directionality. Part0 or Part1, doesn't matter. You can imagine rigid joints forming a tree branching down from the root part. All the parts down the tree from root will move, and their welded "children" in this tree will move with them.
A typical Roblox avatar is a single assembly. Here's a visualization of this tree in a basic R15 humanoid rig on the left, and a representation of this implicit tree of which parts move relative to which parts on the right.
Determines how the offset point is attached to JointInstance.Part0.
This property determines if the joint is currently active in the world. If true, the joint is active.
If the JointInstance is not in Workspace or JointsService, or one of its parts is not in Workspace the joint will be inactive.
Rigid joints like Weld, Snap, WeldConstraint, Motor, or Motor6D may also be disabled due to conflicts with other rigid joints, such as joints between the same two parts or indirect cycles in the weld graph. Joints disabled this way may be re-enabled later when another joint or part is added or removed.
C0 is the position aspect of the orientation between two parts in a weld. JointInstance.Part0 and JointInstance.Part1 move accordingly to this value, which denotes their respective positions.
This property sets whether the joint is active or not.
When this property is set to true, if the joints's JointInstance.Part0 and JointInstance.Part1 properties are set, then the joint will ensure that its two parts will be connected and behave according to joint type (e.g. Welds, and Snaps).
- JointInstance.Active, determines if the joint is currently active in the world