Step 1 =
old = scene.objects
step 2 = add ragdoll group
step 3 = compare
new = set(scene.objects)-old
step 4 = add armature
step 5 = for constraints in armature , for ragbones in new , if constraint name == ragBone name-> set constraint target
step 6 = for tags in original armature, for ragbones in new -> if tags string = ragbone name -> orient ragbone to tag
so this adds a ragdoll, adds a armature, then targets the bone constraints in the armature to the ragdoll bone objects
then it rotates the ragdoll bone objects to match the actor's 'bone tags' orientations
(the ragdoll matches the pose of the dying actor)
then I delete the 'Original' actor leaving the ragdoll physics objects and ragdoll armature.
Adding another armature copy introduces flickering in the first ragdoll and the new armature
I will try and make a simple demonstration, but this is how I found the issue.
I am not instancing the armature, I am adding a duplicate so I don't understand why one would even effect the other
as I am adding a new ragdoll, and a new armature, and only searching through the new items to bind the constraints, not scene objects,
so the new armature is not targeting the old ragdoll, as it' does not know anything about it......