Any decent & non-laggy ragdoll modules/systems?
I’m making a rogue-like game and a ragdoll on death script just won’t fill my needs.
I need a ragdoll module/system that is able to ragdoll & unragdoll, I’ve been looking for some but everyone I’ve seen has critiques about how it’s laggy or straight up doesn’t work.
SPECIFICALLY R6.
I’m not asking someone to make a system or module for me but rather if anyone has something similar that works and is functional.
Thank you.
depends on whether you’re using r6 or 15.
i use r6, and no plans at all to use r15 (for simplicity and preference).
here’s the one i use
for r15 ive seen some ones out there, but obviously i didnt bother taking a good look.
I updated my post, but i’m talking about R6 specifically.
I’m pretty sure I looked at that one awhile ago and people in the replies were talking about it be buggy? Does it work for you well? Another thing it has a seperate NPC version, anyway to combine both?
You could set Humanoid.RequiresNeck
to false
, disable all Motor6D
s and create a BallSocketConstraint
for each Motor6D and mess with its properties that will make its behavior less laggy. Something like
local function ragdoll(character: Model)
for i,v in pairs(character:GetDescendants()) do
if v:IsA("Motor6D") then
local ballSocketConstraint = Instance.new("BallSocketConstraint")
local attachment0 = Instance.new("Attachment")
local attachment1 = Instance.new("Attachment")
attachment0.Parent = v.Part0
attachment1.Parent = v.Part1
ballSocketConstraint.Parent = v.Parent
ballSocketConstraint.Attachment0 = attachment0
ballSocketConstraint.Attachment1 = attachment1
attachment0.CFrame = v.C0
attachment1.CFrame = v.C1
-- messing with the properties of a ballsocketconstraint I found these properties efficient for my game, you could try yourself
ballSocketConstraint.MaxFrictionTorque = 200
ballSocketConstraint.LimitsEnabled = true
ballSocketConstraint.TwistLimitsEnabled = true
v.Enabled = false
end
end
character.Humanoid.RequiresNeck = false
end
and for unragdoll just reversing everything
local function unRagdoll(character)
for i,v in pairs(character:GetDescendants()) do
if v:IsA("BallSocketConstraint") then
v:Destroy()
elseif v:IsA("Motor6D") then
v.Enabled = true
end
end
character.Humanoid.RequiresNeck = true
end
You would probably want to use RunService.Heartbeat
to set CanCollide
on the limbs to true.
Why would i use a heartbeat to set CanCollide to true? Can’t I just set it to true once?
For some reason Roblox constantly changes the collisions of the body parts. You could try changing it only once but I don’t think it will work
Would the script you gave be something that’s laggy on the server or at all? I’ve had problems with a previous one even when setting humanoidstates to work with it.
I’m not sure, I don’t have problems with it in my game.
I just gave you an example you can try something else if you want
It’s alright thanks for your help, i’ll try it out.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.