This is in a server script:
01 | game.Players.PlayerAdded:connect( function (player) |
02 |
03 | repeat wait() until player:FindFirstChild( "leaderstats" ) |
04 | local lives = player.leaderstats.Respawns |
05 |
06 | player.CharacterAdded:connect( function (char) |
07 | char:FindFirstChild( "Humanoid" ).Died:connect( function () |
08 | lives.Value = lives.Value - 1 |
09 |
10 | player:FindFirstChild( "Backpack" ).Death:Play() |
11 | children = player.Backpack:GetChildren() |
12 | for _,v in pairs (children) do |
13 | if v:IsA( "Sound" ) then |
14 | v:Stop() |
15 | v:Destroy() |
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?
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.
01 | local time = 10 --How long you want the music to play, you're making it play then immediately stopping the sound. |
02 |
03 | game.Players.PlayerAdded:connect( function (player) |
04 | repeat wait() until player:FindFirstChild( "leaderstats" ) |
05 | local lives = player.leaderstats.Respawns |
06 | player.CharacterAdded:connect( function (character) |
07 | character:FindFirstChild( "Humanoid" ).Died:connect( function () |
08 | wait() |
09 | lives.Value = lives.Value - 1 |
10 | player:FindFirstChild( "Backpack" ).Death:Play() |
11 | wait(time) |
12 | children = player.Backpack:GetChildren() |
13 | for _,v in pairs (children) do |
14 | if v:IsA( "Sound" ) then |
15 | repeat --This makes sure the sound stops completely. Roblox's sound system is a bit buggy. |
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.