You don’t RPC animation montages, muzzle flash fx, shot audio. You RPC small data (bools, floats, vectors, enums etc). These values are used in event functions to “determine” new states and actions. Said actions and states execute functions that play montages, fx and audio.
Look at my code. At no point am I passing any montage, audio or fx through an rpc.
Think “DETERMINISTIC” and code that way.
If I pass a boolean the receiving function does action A if True and action B if false.