Ability Managers are dedicated managers for each ability in your game.
They will manage the interaction between deployment of the ability and callbacks to the player character.
In many cases creating a game project with abilities, player characters spawn the ability directly, with the ability actor having code that performs the ability actions.
Ability Managers act as a middle man here. Rather than the player character spawning the ability directly, they spawn the Ability Manager for the given ability.
So let’s say you have an ability called “Fireball”, which would be an actor that has fireball particle effects, details of the damage application as well as any other behaviours.
You would create an Ability Manager for this Fireball skill, and simply add the Fireball skill to the list of abilities on the player. The rest is handled automatically.
It’s super simple, an Ability Manager Parent is provided, and you just need to create a child from it.
Fill in the Interface Functions appropriately, create a function that spawns your Fireball ability and call that function on the appropriate interface.
Read the How To: Create a new Ability for a step by step guide.