Motor6D Removal and Replacement issue

I am using a system where my character has Ballsockets and I remove the Motor6D parent to somewhere else to make the limbs move freely, then I replace it back when I want my character to go back. The ragdolls function normally, the issue is that walking animations (any type of animation rlly) stops loading, and characters just stay on their normal pose (the one where nothing is moving) permanently. Sometimes it fixes itself and characters go back to loading their animations, but I wanted to avoid this issue.

Do you think there’s any solution to this?

3 Likes

You could try disabling/re-enabling the Animate script in the character

Not sure if that’d do anything, it’s just an idea.

2 Likes

Sadly this doesn’t work :frowning:

2 Likes

Do you think you could take a gif to show what exactly the player is doing??

He’s standing still like an R6 without animation playing.

1 Like

Could you post your code??

30chars

warn("Recieved")
local Ragdoll = coroutine.create(function(Character, Info)
local PlayerFolder = GameFolder[Character.Name.."_Folder"]
local Storage = PlayerFolder[Character.Name.."_Storage"]
local NewParts = Instance.new("Folder", Storage)
NewParts.Name = "RagdollParts"
local MotorFolder = Instance.new("Folder", Storage)

		MotorFolder.Name = "MotorFolder"
		
		local HandR = Instance.new("Part")
		HandR.Size = Vector3.new(1,1,1)
		HandR.Parent = NewParts
		HandR.Name = "HandR"
		HandR.Transparency = 1
		local WeldR = Instance.new("Weld")
		WeldR.C0 = CFrame.new(0,-0.5,0)
		WeldR.Parent = HandR
		WeldR.Part0 = Character["Right Arm"]
		WeldR.Part1 = HandR
		
		local HandL = Instance.new("Part")
		HandL.Size = Vector3.new(1,1,1)
		HandL.Parent = NewParts
		HandL.Name = "HandL"
		HandL.Transparency = 1
		local WeldL = Instance.new("Weld")
		WeldL.C0 = CFrame.new(0,-0.5,0)
		WeldL.Parent = HandL
		WeldL.Part0 = Character["Left Arm"]
		WeldL.Part1 = HandL
		
		local LegR = Instance.new("Part")
		LegR.Size = Vector3.new(1,1,1)
		LegR.Parent = NewParts
		LegR.Name = "LegR"
		LegR.Transparency = 1
		local WeldLR = Instance.new("Weld")
		WeldLR.C0 = CFrame.new(0,-0.5,0)
		WeldLR.Parent = LegR
		WeldLR.Part0 = Character["Right Leg"]
		WeldLR.Part1 = LegR
		
		local LegL = Instance.new("Part")
		LegL.Size = Vector3.new(1,1,1)
		LegL.Parent = NewParts
		LegL.Name = "LegL"
		LegL.Transparency = 1
		local WeldLL = Instance.new("Weld")
		WeldLL.C0 = CFrame.new(0,-0.5,0)
		WeldLL.Parent = LegL
		WeldLL.Part0 = Character["Left Leg"]
		WeldLL.Part1 = LegL

		for _,v in ipairs(Character.Torso:GetChildren()) do
			if v:IsA("Motor6D") and v.Name ~= "Neck" then
				local Clone = v:Clone()
				Clone.Parent = MotorFolder
				Clone.Part0 = nil
				Clone.Part1 = nil
				v:Destroy()
			end
		end
		spawn(function()
			wait(Info)
			if not GameFolder:FindFirstChild(Character.Name.."_Folder") then return end
			for _, v in ipairs(Storage.MotorFolder:GetChildren()) do
				if v.Name == "Left Hip" then
					v.Part0 = Character.Torso
					v.Part1 = Character["Left Leg"]
				elseif v.Name == "Left Shoulder" then
					v.Part0 = Character.Torso
					v.Part1 = Character["Left Arm"]
				elseif v.Name == "Right Hip" then
					v.Part0 = Character.Torso
					v.Part1 = Character["Right Leg"]
				elseif v.Name == "Right Shoulder" then
					v.Part0 = Character.Torso
					v.Part1 = Character["Right Arm"]
				end
				v.Parent = Character.Torso
			end
		end)
	end)
	
	coroutine.resume(Ragdoll, Character, Info)
end
2 Likes

https://gyazo.com/411359e0b406a5134aeebb9c4a6742a6

If you see between those many ragdolls, the characters come back as if there were no animations playing and I have no idea why this happens.

did you find a fix? currently having the same issues.

for those having the same problem as me, i found a solution…

it’s actually what @C_Sharper mentioned earlier, i disabled the animator before they got into ragdoll. afterwards, once i had reattached all my joints i just turned it back on.