Hello. I have a faulty ragdoll script that doesn't return any errors, but does not do what it's intended to do. Every time I activate it, it always seems to remove the player's arms and legs instead, and I have no idea on why this is happening. I am using ball socket constraints. This ragdoll script is for R6, and all of the ball socket constraints are enabled at all times btw.
local function returnMotor(joint, part, motors) if motors:FindFirstChild(joint) then motors[joint].Parent = part end end script.Ragdoll.Event:Connect(function(bool) if tick() - LAST_RAG < 2 then return end LAST_RAG = tick() local torso = character:WaitForChild("Torso") local motors = ReplicatedStorage.Motors:FindFirstChild(player.Name, true) if bool then if knocked then return end dis = create("Disable", nil, character) humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false) humanoid:SetStateEnabled(Enum.HumanoidStateType.GettingUp, false) humanoid:ChangeState(Enum.HumanoidStateType.Physics) root.CanCollide = false root.Massless = true for _, bodyPart in pairs(character:GetChildren()) do if bodyPart:IsA("BasePart") then for _, motor in pairs(bodyPart:GetChildren()) do if motor:IsA("Motor6D") and motor.Name ~= "Neck" then motor.Parent = motors end end end end humanoid.PlatformStand = true root.OOF:Play() root.OOF.TimePosition = .5 humanoid.AutoRotate = false humanoid:UnequipTools() con2 = character.ChildAdded:Connect(function(child) if child:IsA("Tool") then humanoid:UnequipTools() end end) knocked = true elseif not bool then if not knocked then return end if con2 then con2:Disconnect() end if dis then dis:Destroy() end humanoid.PlatformStand = false humanoid.Jump = true humanoid.AutoRotate = true humanoid:ChangeState(Enum.HumanoidStateType.GettingUp) root.CanCollide = true root.Massless = false local rightArm = character["Right Arm"] local leftArm = character["Left Arm"] local rightLeg = character["Right Leg"] local leftLeg = character["Left Leg"] returnMotor("RootJoint", root, motors) returnMotor("Left Shoulder", leftArm, motors) returnMotor("Right Shoulder", rightArm, motors) returnMotor("Left Hip", leftLeg, motors) returnMotor("Right Hip", rightLeg, motors) knocked = false end end)