Why is my ragdoll like this?

fixed

for _,motor6D in pairs(Char:GetDescendants()) do -- I'm just looping through all of the motor6d's and creating a joint for each of them. 
	if motor6D:IsA("Motor6D") then
		if motor6D.Name ~= "Root" then
			
			local Part0 = motor6D.Part0
			local Part1 = motor6D.Part1
									
			local attachment0 = Part0:FindFirstChild(motor6D.Name.."RigAttachment")
			local attachment1 = Part1:FindFirstChild(motor6D.Name.."RigAttachment")
			

			for index,v in pairs(HingeConstraints) do
				if motor6D.Name == index then
					local HingeJoint = HingeConstraints[motor6D.Name]["Constraint"]
										
					HingeJoint.Parent = RagdollConstraints
					HingeJoint.Attachment0 = attachment0
					HingeJoint.Attachment1 = attachment1
					HingeJoint.LimitsEnabled = HingeConstraints[motor6D.Name]["LimitsEnabled"]
					HingeJoint.LowerAngle = HingeConstraints[motor6D.Name]["LowerAngle"]
					HingeJoint.UpperAngle = HingeConstraints[motor6D.Name]["UpperAngle"]
					HingeJoint.Name = motor6D.Name.."Joint"
					
					break
				end
			end


			for index, v in pairs(BallConstraints) do
				if motor6D.Name == index then
					local BallJoint = BallConstraints[motor6D.Name]["Constraint"]
					BallJoint.Parent = RagdollConstraints
					BallJoint.Attachment0 = attachment0
					BallJoint.Attachment1 = attachment1
					BallJoint.LimitsEnabled = BallConstraints[motor6D.Name]["LimitsEnabled"]
					BallJoint.TwistLimitsEnabled = BallConstraints[motor6D.Name]["TwistLimitsEnabled"]
					BallJoint.UpperAngle = BallConstraints[motor6D.Name]["UpperAngle"]
					BallJoint.TwistLowerAngle = BallConstraints[motor6D.Name]["TwistLowerAngle"]
					BallJoint.TwistUpperAngle = BallConstraints[motor6D.Name]["TwistUpperAngle"]
					BallJoint.Name = motor6D.Name.."Joint"
					
				end
			end
		end
	end
end

If you’re using GetChildren for the Constraint tables, then you won’t be able to get it’s name using the index.

I’m using a dictionary for my constraints table, I don’t need to use getchildren and in game they have the correct values

Try fidgeting with the custom physical properties of the limbs. There is a chance that the constraints might be too ridged.

Also, a thing worth mentioning is that the humanoid root part after death has collision on. It’s probably interfering with the limbs.