How to properly replicate custom events and variables in a Blueprint-based multiplayer game?

Proper process is to Apply the movement and FX on the owning client first, then call the server. Server can then execute the dash for itself, then call a Multicast and exclude all except simulated proxies.

Get Local Role == Simulated Proxy