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?
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.