I want to make each client visualize an effect instead of doing the effect server side but there are 2 ways to do that off the top of my head.
Client (Player who does the action) → Server → Fire back to all other clients to do the effect client side (This would fire a client to server remote event and then a server to client remote event)
Client (Player who does the action) → Other clients (This would use bindable events instead of remote events to avoid going through the server and straight to other clients)
Is there any noticeable differences between the 2 methods performance or latency wise? Or do both have the same impact overall and I can just pick whichever?
Even if peer-to-peer was an option, it would still be better to check through the server so you can make sure the action is allowed and not something possibly malicious or an accidental bug/queued etc action due to game design.
2 is not even possible. Also, why would you go from your own client → server → back to your own client? Skip the middleman and it will be a lot snappier for the player.
On top of the first option, the server should send the message to all other clients via an UnreliableRemoteEvent since they’re faster and it doesn’t matter if not all the visuals always get shown