i was curious on how you would make a ragdoll system with out using attachments considering attachments were added around 2016 yet ragdolls existed before then in 2014 and earliar.
The main reason for this is for my own ragdoll system that i have been trying to optimise and also make different versions of.
(Note: i wasn’t really sure on what category this would go in but considering ragdoll systems are heavily script based i decided to put it here -please tell me what the correct category would be to put this in if am probably wrong-)
Before Attachments were added around 2016, ragdolls were built using legacy joint types that Roblox still technically supports but has long since deprecated. The two main ones were Rotate and Rotate2. These worked identically to Motor6D in terms of API. they had Part0, Part1, C0, and C1 but instead of locking rotation like a Motor6D does, they allowed the connected parts to swing freely under physics. No Attachments needed, just part-to-part joints with CFrame offsets.
The basic ragdoll process was to loop through the character, find every Motor6D, save its C0/C1 offsets and its Part0/Part1 references, destroy it, then create a Rotate2 in its place using those same values. That’s really all there was to it structurally.
You’d also set Humanoid.PlatformStand = true at the same time, which is important because without it the Humanoid keeps trying to stand the character up and fights the ragdoll physics the whole time.
The biggest downside compared to modern setups is that Rotate2 has zero rotation limiting. Limbs can spin a full 360 degrees freely which looks wrong. Back then people would work around this by tuning part masses or placing invisible geometry to loosely block extreme rotations, since there was no clean built-in way to set cone limits like you get with BallSocketConstraint today.
For your optimisation work it’s worth knowing that Rotate2 is lighter per joint than a BallSocketConstraint paired with two Attachments, so if you’re ragdolling lots of characters simultaneously the old approach can actually have a performance edge, just at the cost of that rotation control.
Note:
I know im 1 years late, Im just bored and wanted to write this.