To find the name of your swep, it’s either the single lua file in entities/weapons/*.lua or a folder name in the same directory.
I used weapon_css_colt_m4a1 because I have a lua file, which is shared, called weapon_css_colt_m4a1.lua in that directory.
You could use BroadcastLua( ) if you want all clients to hear it, or look into net.Start( msgname ), net.WriteString( ), net.Send( client ) or net.Broadcast( ), net.Receive( ), util.AddNetworkString( msgname ) to network the sound name and send it to the client.
In this case, BroadcastLua might be your best bet.
surface.PlaySound will play a sound without any 3d effect. That’s to say that if you want a player to “scream” upon death, this wouldn’t work well as the sound wouldn’t appear to come from the player, it would be a global sound.