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

Ragdoll script just making floating ball joints?

Asked by 4 years ago

Hey! I've been learning about terrain generation lately and I finally got my script to work, and then I had the thought of making a physics game, anyway, I need ragdolls for that, and I'm not really good with joints, so help is appreciated!

My script is:

01function ragdoll(player)
02    local plr = game.Players[player]
03    local character = plr.Character
04    for _,motor in pairs(character:GetDescendants()) do
05        if motor:IsA("Motor6D") then
06            local at1 , at2 = Instance.new("Attachment", motor.Parent), Instance.new("Attachment", motor.Parent)
07            at1.Name = "one"
08            at2.Name = "two"
09 
10 
11            at1.CFrame = motor.Part0.CFrame
12            at2.CFrame = motor.Part1.CFrame
13            wait()
14            local joint = Instance.new("BallSocketConstraint", motor.Parent)
15            joint.Attachment0 = at1
View all 34 lines...

Now, it is making ball joints, but they just float above my character and do nothing, they actually make my character fall apart?

Like I said help is appreciated, Thank you!

0
How about dont add any attachments and find the attachment in the part0 and part1 like motor.Part0:FindFirstChild(motor.Name.. "Attachment") or motor.Part0:FindFirstChild(motor.Name.."RigAttachment") kepiblop 124 — 4y
1
Do the exact same with part1 too kepiblop 124 — 4y
1
Ill try that thanks man EllaTheFloofyFox 106 — 4y
0
I gave you a example on answers kepiblop 124 — 4y

1 answer

Log in to vote
1
Answered by
kepiblop 124
4 years ago

Here is a fixed version of your script that so far works for R15 (does some weird body poses LOL)

01local function ragdoll(player)
02    local character = player.Character or player.CharacterAdded:Wait()
03    local humanoid = character.Humanoid or player.CharacterAdded:Wait()
04    humanoid.BreakJointsOnDeath = false
05    humanoid.Died:Connect(function()
06        for i,motor in pairs(character:GetDescendants()) do
07            if motor:IsA("Motor6D") then
08                local ballsocket = Instance.new("BallSocketConstraint",motor.Parent)
09                local at1 = motor.Part0:FindFirstChild(motor.Name.."Attachment") or motor.Part0:FindFirstChild(motor.Name.."RigAttachment")
10                local at2 = motor.Part1:FindFirstChild(motor.Name.."Attachment") or motor.Part1:FindFirstChild(motor.Name.."RigAttachment")
11                ballsocket.Attachment0,ballsocket.Attachment1 = at1,at2
12                motor:Destroy()
13                ballsocket.Visible = true
14            end
15        end
View all 24 lines...
0
If you set his RootPart.CanCollide to false after he dies, he will not do the cool poses imKirda 4491 — 4y
0
Humanoid root part? Alright thanks! kepiblop 124 — 4y
0
Hey thanks, this is exactly what I needed! EllaTheFloofyFox 106 — 4y
0
your welcome! kepiblop 124 — 4y
0
(this is from fm_trick but i just wrote it manually but with your variables) kepiblop 124 — 4y
Ad

Answer this question