yeah if its possessed by AI then the client wont “own” it so you cant do runonclient events.
you could pass a player controller ref to the character and run the event through that
otherwise the way i do it is i have input commands on the controller that do server calls and the server tells the AI.
for the niagra effect you just need a server multicast. currently you’re spawning it on both server and client which is why the client gets two copies