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):

374 Likes
Temporary Ragdoll?
Resources for making AAA games
[Deprecated] R15 Ragdoll - Public Domain
Floating ragdoll glitch
Animation once you get above a certain health after it being low?
How do you script a Ragdoll Engine?
Knockout/unconscious script
Enemy Ragdoll Help
Ragdoll On Death Isn't Working
Trying to have player Ragdoll after getting hit
Basic R to Ragdoll Script
Working ragdoll?
Changing the players state on the server
Unique game concept - Looking for a scripter
Help with my Ragdoll script, why do I get "LeftElbow is not a valid member of MeshPart"?
Carrying / How to properly weld characters
Cannot figure out why ragdoll resets animation
Automatic Physics replication / constraints properties replication button
Hiring scripter for a simple game [10k robux]
Basic R to Ragdoll Script
Adding a ragdoll knockback
Animate is not a valid member
EasyFirstPerson: Drag-and-drop first person view models!
Why does my ragdolls take a while to get up?
Ragdoll garbage
Spawning an R15 player can be incredibly inconsistent in enclosed spaces
R6 Ragdoll System
How can I make a ragdoll toggle script for PC, Mobile, and Tablet
Ragdoll Hangout | Game Info
Can't change humanoid state type
How would I make a knockback ragdoll for a combat system?
Ragdoll script error: NeckRigAttachment is not a valid member of MeshPart "UpperTorso"
Echo Reaper's Ragdoll Problem
After NPC Ragdolls/HumanoidStateType.Physics Occasionally wont stand straight
Player weirdly ends up upside down after getting up from ragdoll?
Need decent R15 Ragdoll attachment CFrames
Ragdoll script does not work properly?

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?

18 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.

19 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?

12 Likes

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

9 Likes

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.

12 Likes

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

6 Likes

@Quenty recently updated his NevermoreEngine to contain ragdolls. I believe it supports R6 and R15. You can find that here: GitHub - Quenty/NevermoreEngine: ModuleScript loader with reusable and easy unified server-client modules for faster game development on Roblox

14 Likes

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

9 Likes

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?

10 Likes

Here.rbxl (18.0 KB)

5 Likes

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.

9 Likes

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

10 Likes

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

7 Likes

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

7 Likes

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.

10 Likes

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

6 Likes

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

15 Likes

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.

5 Likes

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
9 Likes