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

How do I fix this death script?

This is in a server script:

game.Players.PlayerAdded:connect(function(player)

	repeat wait() until player:FindFirstChild("leaderstats")
	local lives = player.leaderstats.Respawns

	player.CharacterAdded:connect(function(char)
		char:FindFirstChild("Humanoid").Died:connect(function()
			lives.Value = lives.Value - 1

			player:FindFirstChild("Backpack").Death:Play()
			children = player.Backpack:GetChildren()
			for _,v in pairs(children) do
			if v:IsA("Sound") then
			v:Stop()
			v:Destroy()

			end
			end
		end)
	end)
end)

What I'm attempting to do here is two things: Remove one life from the player when he dies, as well as play a "death" sound. The problem is that this rarely works online for some reason. I tried a local script too but it doesn't seem to work. It could be a problem with the script or there might be some other way to do this that I'm not aware of. Any ideas?

2 comments

0

What is it not doing that it should be doing?

0

Both aspects of the script don't seem to work. No lives are removed and the sound doesn't play.

2 answers

✓ Accepted answer

It seems to work fine when I tested it with a server, it does not seem to work as good whilst playing solo mode. I think it should work fine on online mode.

local time = 10 --How long you want the music to play, you're making it play then immediately stopping the sound.

game.Players.PlayerAdded:connect(function(player)
    repeat wait() until player:FindFirstChild("leaderstats")
    local lives = player.leaderstats.Respawns
	player.CharacterAdded:connect(function(character)
		character:FindFirstChild("Humanoid").Died:connect(function()
			wait()
			lives.Value = lives.Value - 1
			player:FindFirstChild("Backpack").Death:Play()
			wait(time)
			children = player.Backpack:GetChildren()
			for _,v in pairs(children) do
				if v:IsA("Sound") then
					repeat --This makes sure the sound stops completely. Roblox's sound system is a bit buggy.
						wait()
						v:Stop()
					until v.IsPlaying == false	
				end
			end
		end)
	end)
end)

For the sound aspect, try adding a wait of however long the sound plays for. From my beginner standpoint it appears as soon as it is told to Play it is told to Stop.

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