Attaching weapon differently for client that owns the player character

Hey,
A multicast wont fire on all clients unless its called from a “Run On Server” event. In some cases a “Run On Owning Client” must be fired along side the multicast event so you can run your own client side logic and also replicate that to the rest of the clients as well.

A pretty simple and effective naming convention will always be easy for you to read and debug. I would personally create two custom events. I would name it just like you have it except I would call one ReceivePrimaryWeaponMulticast making it “Multicast” and the other ReceivePrimaryWeaponServer making it “Run On Server”. Most likely reliable for events like this.

From the server event call the multicast event. From the multicast event have your logic just like you have. Call the server event from wherever your execution starts. It would go something like this:

"Input Action> ReceivePrimaryWeaponServer

ReceivePrimaryWeaponServer> ReceivePrimaryWeaponMulticast

ReceivePrimaryWeaponMulticast> Your logic"

This works every time in most simple execution strings on each client and you will always know which one is which a lot easier when you have a ton of RPCs down the road.

Running your logic only on a “Run On Server” event will most likely end up with everyone getting the same weapon when the other guy is swapping out.