CJ First Steps
As with the inbuilt joints, user joints join a child object to a parent object. The physical nature of this joining is up to you.
Whilst the child object is always an object with non-zero mass, the parent can be static (zero mass) or can even be the world (defined as 0 or NULL).
Construction of a user joint is done with NewtonConstraintCreateUserJoint. The nature of the joint is continually specified in a callback. This continuous callback technique allows for a very flexible joint system.
The maxDOF parameter is usually 6 to allow for full flexibility. (this needs improving, Joe)