Hello – this bug was only tested on R15,
This bug relates to being unable to detect the Waist Motor6D and Root Motor6D in a character based on the Torso morph a user is using. I have not tested on several morphs just the normal blocky torso and ROBLOX Boy Torso - Roblox torso. These Motor6D’s DO appear, just later than everything else to a point it becomes unpredictable.
While setting up constraints on a newly added rig, you’re unable to detect the Motor6D within UpperTorso and LowerTorso at the same time as all other Motor6Ds. This forces a quick solution where I need to yield a script until these 2 specific cases are solved.
Players.PlayerAdded:Connect(function(Player)
local function CharacterAdded(Character)
local Ragger = Ragdoll.new(Character);
end
local Character = Player.Character or Player.CharacterAdded:Wait();
CharacterAdded(Character);
Player.CharacterAdded:Connect(CharacterAdded);
end)
Basically the above snippet of code is the lifecycle of the ragdoll script. When the character is added and a Ragdoll object is created for that character, I need to yield until the Waist and Root appears because otherwise while using the Roblox Boy torso specifically, they will not exist when checking the character. This is not the case with a blocky torso.
repeat task.wait()
until Character:FindFirstChild("Waist", true) and Character:FindFirstChild("Root", true)
Repro file/Info:
I have the game Ragdoll the player every 10 seconds, you need to wear ROBLOX Boy Torso - Roblox this torso to show that your character will die because the joints are not set up when all other joints are set. If you take off the torso, you’ll ragdoll properly.
I cloned a rig that has the torso and one that does not and put them in front of a green part which if you step on, will ragdoll that NPC. You’ll notice both of them do not die because their character already has all of their joints (since I cloned them after loading into studio).
The scripts are in ServerScriptService
CharacterJointBug.rbxl (164.8 KB)