Multiplayer is basically understanding the 3 proxies and writing specific code for each.
Autonomous (client), Simulated and Server (authority).
Identifying Client, Sim, Server upfront is key. Once you can determine the role of a character the flow logic handling is easy.
In the character class you’d implement a function that sets an Enum identifier for role.
Key note…
Servers do not play audio or visual FX. Servers do not render anything. So you write your code based on that.
Never use (index) nodes in multiplayer.
Here’s a post that goes in to detail about multiplayer shooting. Regardless the title of the post, this is not a Gameplay Ability approach.