R15 / Rthro Ragdolls

I had previously made a ragdoll model in 2016, but there were a number of engine-level shortcomings that made it flawed:

  • There were no twist limits for BallSocketConstraints, so shoulders would happily turn all the way around where your inner armpit was on the outside of the character
  • There was no Humanoid.BreakJointsOnDeath property, which made it impossible to support things like preserving welded armor/etc on ragdolls, and made it difficult to support accessories/tools
  • There was no NoCollisionConstraint, so without creating a bunch of collision groups (potentially game-breaking if a game is already near the max) there was no way to prevent large R15 hitboxes from overconstraining ragdolls

Now that these are no longer an issue, I’ve been able to drastically improve upon where I originally started. The new ragdoll implementation has more realistic constraint limitations, avoids overconstraining, seamlessly preserves any accessories/tools/armor you have equipped, and works with arbitrary characters (e.g. a spider) that don’t conform to the R15 hierarchy.

Works with larger packages:

Works with packages that have excessive clipping:

Zero-G ragdolls!

Complete compatibility with physics



You can test out the ragdolls live in this place (K to kill yourself, or R to toggle ragdoll):

85 Likes

Big props on making this. Just played the test place and this is one of the best ragdoll physics I have seen. Do you have any plans on making it compatible with R6 Rigs?

3 Likes

No plans for compatibility with R6 rigs. The way they’re set up is too different from R15 to support them trivially, and R15 generally supersedes R6 in every regard. It’s an open-source model though, so feel free to adjust it to work with R6.

4 Likes

Alright, I may look into that for the sake of the players committed to classic rigs. I’ll share with you whatever I come up with if I get around to it.

I noticed the walking sounds persist when the ragdoll is created but the humanoid is still alive. This is probably beyond the scope of the ragdoll system, is this supposed to happen?

2 Likes

Is it normal if the ragdolls are frozen and only work when pressing R (on the demo file)?

1 Like

I guess I can throw some fix in. I think I may have done something similar with animations. Ultimately these are bugs in the core scripts though where they don’t properly obey humanoid state, so it’d be great if Roblox fixed them.

If you’re standing completely still, then maybe, as the package may be able to support itself standing upright. Especially on Zero-G as there are no forces on it. If this happens in any way when you’re moving before you die though, that’s a bug. I’ll need a video or more information to look into it further.

1 Like

It’s not actually the package itself, it’s really just the ragdolls being statues

1 Like

@Quenty recently updated his NevermoreEngine to contain ragdolls. I believe it supports R6 and R15. You can find that here: https://github.com/Quenty/NevermoreEngine

4 Likes

Thanks for this! I will use this for when people die in my game.

1 Like

Can you try to set this up in an empty baseplate to rule out any game-specific issues, and if you are still seeing this there, attach the file here?

Here.rbxl (18.0 KB)

You need both of the scripts linked in the OP. The one you inserted just shows how to use the ragdoll module – it doesn’t include it.

I combined the two models since so many people were having issues figure out that you needed both.

1 Like

its great.
it would be even better if someone made it compatible with r6 :smiley:

1 Like

the ragdoll doesn’t seem to work with the normal r15 rig form the animation rig builder
image
ragdem.rbxl (40.0 KB)

It looks like it’s because StarterCharacters don’t work properly with CharacterAppearanceLoaded. I’ve also noticed an issue where if you try to apply a HumanoidDescription, it will cause issues with the ragdoll.

I’ll look into using a smarter approach that works with character appearances changing / not being tied to the web when I get home today.

1 Like

How can I disable bodies? It’s my first time using a ragdoll. Thanks :slightly_smiling_face:

Wow this is awesome! Maybe one day I can achieve this level of physics development. lol

I was using this ragdoll, and I noticed that if my character gets exploded, the camera goes flying until it falls past the FallenPartsDestroyHeight. The ragdoll also moves if I’m in first person when my character is dead.

1 Like

Not sure if you’re still having this problem, since it’s been around 18 days, but I found a fix to humanoids that have Character Appearance = false. Go to the “RagdollTestScript” script and change the following code.

function characterAdded(player, character)
	player.CharacterAppearanceLoaded:wait()
	wait(0.1)
	
	local humanoid = character:FindFirstChildOfClass("Humanoid")
	buildRagdoll(humanoid)
end

Change the above portion of code to the below portion, and it should work.

function characterAdded(player, character)
	player.Character:WaitForChild('Humanoid', 60)
	player.Character:WaitForChild('HumanoidRootPart', 60)
	wait(0.1)
	
	local humanoid = character:FindFirstChildOfClass("Humanoid")
	buildRagdoll(humanoid)
end
1 Like