@bn2
It comes down to pivot points and how the 3d app that made the model exports limbs in relation to the limb hierarchy. It can also depend on how the user built the model in the 3d app. If they didn't set the pivots correctly or didn't link a hierarchy at all, the limbs could be all based on 0,0,0 instead of relative to their connection to a parent limb.
If your game or app uses it's own models, then you can control this. If you are building the models yourself, you can make sure the limbs are linked correctly in your 3d app before export. If that doesn't make a difference, then save each limb as it's own object with it's correct pivot point set.
Usually setting the pivot point of an individual object is as simple as positioning it so that the area on the mesh you want to be the pivot is located at 0,0,0 before you save it. For example, a lower leg mesh would be placed so that the knee area or slightly above is located at 0,0,0. Then you save that object.
Once in DBC, build your model by loading in the individual limbs, making meshes from the objects, adding the limbs and then linking them according to Robert the Robots instructions above. You would then offset them (AFTER they have been linked) relative to the parent limb they were linked to.
Now, once your model is completely built, you can do a couple of different things:
1. Glue your additional objects to the limb they belong to and offset these objects by using POSITION OBJECT <addon object>,x,y,z where x,y and z is an offset, not an absoulte world position.
2. Create a triangle object where all of the vertices are the same, then make a mesh out of it. This should create an invisible mesh that has only 1 point. Use this new mesh to add additional limbs to your object. Link and offset these limbs to the positions your addons will be placed.
2a. Glue your addons to the hidden limbs
OR
2b. Make a mesh out of your addon and use CHANGE MESH to change the invisible limb to your addon mesh. The only problem with this is you'll have to change the mesh back to the invisible mesh when the addon is removed. This can have the benefit of reducing object polygon counts when you remove addons.
OR
2c. Using LIMB POSITION X() Y() and Z() to position your addons at the invisible limbs.
If you built your model with the same hierarchy as was from your original full model from the 3d app, in DBC you can save the full model's animation and apply it to the pieced together model.
If rebuilding the model isn't an option, then you can use your own dummy limbs to place at the rotation points (pivot points) of your main model (of course with the proper links and offsets). You essentially build a pseudo skeleton of your main model out of plains or something and you rotate the skeleton limbs according to the model's animation. You then use the limb positions to place your addons similarly to 1 and 2 above.
There are many options really. The best situation would be to start with a model that has the correct offsets and pivot points set. If they are set correctly initially, you will get return values when you use LIMB OFFSET X() y() z() or LIMB POSITION X() Y() Z().
Enjoy your day.