From Valve Developer Community
A constraint is an entity that restricts the movement one or more VPhysics entities relative to the world or each other.
Note:Constraints attach to a physics object's center of mass. To have them attach at specific points use info_constraint_anchor.
Tip:To constrain an object to the world, leave one of the target fields blank. The position of the constraint entity will then be used.
- Prevents its targets from moving relative to each other.
- Limits how far its target(s) can move.
- Tries to ensure that an object stays upright. Can look very wrong so use with care!
- Prevents movement but allows free rotation.
- Prevents movement but allows rotation along a single axis.
- Restricts movement to a single axis.
- Essentially two length constraints with a shared length.
- A ball socket with rotation limits.
- A rigid length constraint with bounciness.
- Manages a group of overlapping constraints and keeps them stable.
- Used to attach constraints to a local position on an entity (usually they attach to the center of mass). Attach the desired constraint to this entity, and then parent this entity to the entity you want the constraint to apply to.