Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Vehicle falls apart if the player who was in it dies. Why?

For some strange reason, in the turret I made, if a player gets in it, he/she is given a control tool for that turret, then if he/she gets out the turret control tool is removed. I don't know if that's part of the problem, but after he/she gets out, and dies somehow, the turret falls apart as if destroyed. I don't want that to happen, and I don't know how to fix it, help? Here's the scrip for it:

function onChildAdded(part)
if part.className == "Weld" then
	local torso = part.Part1
	if torso ~= nil then
		local parent = torso.Parent
		if parent ~= nil then
			local player = game.Players:findFirstChild(parent.Name)
			local turret = script.Parent.Parent.Parent.Parent
			turret.Parent = parent
			local tool = script.Turret:Clone()
			tool.Parent = player.Backpack
			script.Parent.Sound:play()
		end
	end
end
end


function onChildRemoved(part)
local player1 = game.Players:findFirstChild(script.Parent.Parent.Parent.Parent.Parent.Name)
player1.Backpack.Turret:remove()
script.Parent.Sound:stop()
end

script.Parent.ChildRemoved:connect(onChildRemoved)
script.Parent.ChildAdded:connect(onChildAdded)

2 comments

1

Don't parent the turret to the player's character model. :BreakJoints() is called on the player model when they die.

0

So what should I do to make it not fall apart?

1 answer

✓ Accepted answer
function onChildAdded(part)
if part.className == "Weld" then
    local torso = part.Part1
    if torso ~= nil then
        local parent = torso.Parent
        if parent ~= nil then
            local player = game.Players:findFirstChild(parent.Name)
            local turret = script.Parent.Parent.Parent.Parent
            turret.Parent = parent
            local tool = script.Turret:Clone()
            tool.Parent = game.Workspace
            script.Parent.Sound:play()
        end
    end
end
end


function onChildRemoved(part)
local player1 = game.Players:findFirstChild(script.Parent.Parent.Parent.Parent.Parent.Name)
player1.Backpack.Turret:remove()
script.Parent.Sound:stop()
end

script.Parent.ChildRemoved:connect(onChildRemoved)
script.Parent.ChildAdded:connect(onChildAdded)

Normally, things like this break apart due to them being inside of the player model.

1 comment

0

So how do I make it not fall apart?

This discussion is preserved as it was. New answers, comments, and votes are closed.