I am not claiming this is the best method, but if I were you I would use a single BP as an effect controller that would handle all effects in your game. When a skill goes off, it would pass important info to the effect controller BP(transform, duration, type, etc), and that BP could use that info to decide what effect to play and even mix it together with other effects.
I generally do this with most of my systems eventually, even if they start off separate and chaotic as they are prototyped in. It makes cleaning up, reading, and upgrading your code easier. It makes debugging easier since you know all trains run through the one station. It may also be more performant, but I haven’t bothered testing that theory(it would depend on your exact situation anyway).