Thanks.
The reason I wanted to do as much of the processing in the ability itself is to not clutter my controller with ability-related stuff, but since all I need is to spawn a class, I went with your suggestion since I can reuse the same function for all of the abilities that spawn things (and then the rest of the ability-specific stuff can be on that new spawned class’ begin play).
For reference this is what it looks like now in AbilityBP, and then the Event itself is in the local controller, which the client owns.