Concept: Augment System
Augments answer "how do I make THIS instance of this ability different" without duplicating the asset or branching inside it.
Scope
An augment attaches to one FGameplayAbilitySpecHandle. Two characters with the same ability granted can carry entirely different augments; the ability asset never changes.
The three parts
| Part | When it runs | Holds state? |
|---|---|---|
| Mutation | On property read | No - it transforms a value. |
| Action | On an event tag | No - one shot. |
| Stateful listener | On an event tag | Yes - accumulates across events. |
Slots
Slots are typed by Augment.Category.* tag and split into two pools. Fixed slots are the ability's declared capacity. Temp slots hold transient grants - a combo transition's reward is equipped into a temp slot and unequipped when the step ends.
Lifetimes
| Lifetime | Removed when |
|---|---|
UntilStepEnds | The current combo step exits. |
UntilComboEnds | The combo finishes or resets. |
ForDurationSeconds | A timer expires. |
ForUseCount | It has been used N times. |
Permanent | Explicitly removed. |
Stacking scales potency
With
Stack Mode = Potency, re-granting an already-equipped augment increments its stack count and the effective level becomes BaseLevel + (StackCount - 1). That is the mechanism behind "damage grows as the combo continues" - no condition required.See also
- How-To: Create and Equip an Augment
- How-To: Write a Stateful Augment