Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Why Isn't my ragdoll part fully ragdolling the person who tripped against It?

Asked by 2 years ago

Hello Developers!

I've made a ragdoll part, basically, when you touch the ragdoll part, you will as the name suggest, ragdoll for three seconds before getting up, the Issues are:

  1. Only one of the body parts get ragdolled
  2. For some reason, when you get teleported via CFrame while being ragdolled, only the HumanoidRootPart Teleports there and not the rest of the bodyparts, the HumanoidRootPart also moves towards the other bodyparts after being teleported, but thats probably just expected behaviour

(Also If your wondering, how the ragdoll part works Is that there Is a script that whenever the player touches the part, a script Inside the said script gets cloned and enabled)

Script:

local NPC = script.Parent

if script.Enabled == true then
    wait(0.1)
    NPC.Humanoid.PlatformStand = true
    NPC.Humanoid.BreakJointsOnDeath = false
    for _, v in pairs(NPC:GetDescendants()) do
        if v:IsA("Motor6D") then
            local Attachment0, Attachment1 = Instance.new("Attachment"), Instance.new("Attachment")
            game:GetService("Debris"):AddItem(Attachment0,10)
            game:GetService("Debris"):AddItem(Attachment1,10)
            Attachment0.CFrame = v.C0
            Attachment1.CFrame = v.C1
            Attachment0.Parent = v.Part0
            Attachment1.Parent = v.Part1

            local BallSocketConstraint = Instance.new("BallSocketConstraint")
            game:GetService("Debris"):AddItem(BallSocketConstraint,10)
            BallSocketConstraint.Attachment0 = Attachment0
            BallSocketConstraint.Attachment1 = Attachment1
            BallSocketConstraint.Parent = v.Parent

            v.Enabled = false
            wait(3)
            game:GetService("Debris"):AddItem(Attachment0,0)
            game:GetService("Debris"):AddItem(Attachment1,0)
            game:GetService("Debris"):AddItem(BallSocketConstraint,0)
            v.Enabled = true
            NPC.Humanoid.BreakJointsOnDeath = true
            NPC.HumanoidRootPart.CanCollide = true
            NPC.Humanoid.PlatformStand = false
        end
        NPC.HumanoidRootPart.CanCollide = false
    end
end

Answer this question