Play sound for every players

  1. **What do you want to achieve? I want to play sound likes gun sound and character singing sound to every player

  2. **What is the issue? Script fire sound to player using RemoteEvent and player plays it locally or just play it by script is better? (I want new player also hear these sound as well)

Play it on the server so everyone can hear it. As for playing it…

local Sound = game.SoundService.Sing — Change this to where your sound is
Sound:Play() 

If it’s a locally produced sound (for example a gun firing), you can play locally on the player who produced the sounds, and then fire a remote event, and then that remote event will fire all other clients to play locally on other clients. This solution makes sure that source does not have any latency however uses one extra event to not play the sound twice on source player.

An alternative way is just firing a remote event and playing it on server, but this may cause noticeable delays on the first client if their network is a bit slow since they will only hear it after server receives the event but the input has no (almost no compared to network) delay.

Both have their own tradeoffs, especially if stuff like StreamingEnabled is considered, but the easiest way is second one.