How can I unragdoll a character? (using the ragdoll script below)

local humanoid = script.Parent:WaitForChild("Humanoid")

humanoid.BreakJointsOnDeath = false

humanoid.Died:Connect(function()
	for index,joint in pairs(script.Parent:GetDescendants()) do
		if joint:IsA("Motor6D") then
			local socket = Instance.new("BallSocketConstraint")
			local a1 = Instance.new("Attachment")
			local a2 = Instance.new("Attachment")
			a1.Parent = joint.Part0
			a2.Parent = joint.Part1
			socket.Parent = joint.Parent
			socket.Attachment0 = a1
			socket.Attachment1 = a2
			a1.CFrame = joint.C0
			a2.CFrame = joint.C1
			socket.LimitsEnabled = true
			socket.TwistLimitsEnabled = true
			joint:Destroy()
		end
	end
end)

Uh, that seems to be a DEATH RAGDOLL script, not your playing ragdoll script.
You can’t really unragdoll a character.

Can you elaborate a bit more on what you are trying to achieve and when?

It still works when you’re alive though;

Oh- Thanks for clarifying that. Usually scripts that use Humanoid.Died Event are Death Ragdoll scripts. I think in-order to unragdoll, you just have delete the ball socket joints and replace with Motor6D’s.

I’ll try that. I made ur comment the solution anyways so I can remember.

2 Likes