Here’s how I do it.
Note, all of this is in the weapon class itself.
The Auto Autonomous Firing
function determines if the client can fire (Macro), calculates projectile aim velocity, requests projectile from obj pool (effectively firing), calls timer, RPC’s server etc.
Short snippet to see flow.
A few of the custom function nodes inside the firing function.