Players can't see muzzle flash of a custom weapon in multiplayer unless if timer responsible for its appearance is set to a very big value.
To make a double muzzle flash effect I usually use high timer values (6 for big flash and 5 for small flash) to bypass this issue. In singleplayer it looks ridiculously slow, but in multiplayer it works relatively fine.
For a test I tried to make a double muzzle flash effect using small timer value similar to default weapons (e.g. Assault Rifle CS-RC). In singleplayer it works fine, but this is what I've got while testing it in multiplayer:
1) Player who fires the gun sees the muzzle flash, while other player doesn't see it on his screen (game speed is default). Image.
2) When game speed is slowed by trigger (value was set to 3) both players see muzzle flash (both states - big and small flash). Image.
3) When game speed is slowed and gun was given to other player, both players see muzzle flash, but sometimes they only see one state of muzzle flash (either big flash or small flash, but not both). Image.
This is the map I used to test it. Link. Note that there are two rifles. First one has a slow flash (timer values: 6 and 5) and its action on shoot trigger deactivates itself when flash starts and activates itself when flash ends (this was made to reduce the possible lag). Second rifle has a quick flash (timer values: 1 and 1). The mentioned in this topic issue is related to the second rifle. Clarification image.
Is there a way to make muzzle flash look good in both singleplayer and multiplayer modes?