Best Class for abilities?

You should just make your own ability class deriving from UActorComponent. I’ve found that using pre-made stuff for gameplay logic is almost never a good idea in the long run

Better to know and understand your code, so that you can change it easily if you need to, and make it do exactly what you want it to do