Gameplay Ability System - dynamic cooldowns

Good progress, but keep in mind if you add the node ‘add granted tag’ inside GA, there is no need to do it again inside GE. You should pick one or another. The percent reduction is going to be calculated inside the GA Fireball that checks if player has matching tag and also contains the set by caller. The select node shown in GA Fireball contains 1 and 0.8, try something more noticeable, like 10 and 5 sec, after testing you can set back to 1 and 0.8. You may want to add print string nodes to check if the tags are being added/removed timely.

To wrap-up, it is a good practice to create a workflow, or a flowchart with all steps you are envisioning. For instance:

  1. Player activates booster
  2. GA Booster adds tag booster.cooldownreduction to the player during the booster effect duration.
    2.1. If any other ability reads that tag, perform condition checks and move to true/ false branches.
    2.2 If player executes Fireball, GA Fireball checks if player has matching tag and selects fireball cooldown duration depending on true/false. This info is fed into Fireball GE via set by caller.
  3. After 20sec, booster effect ceases and the tag booster.cooldownreduction is removed from player.