Gameplay Effects are the Advanced Gameplay Ability System's way to change Attributes. This includes:
Direct changes to the Attribute's base value, like taking away health points from an Actor that has received damage.
Temporary changes (often called "buffs" or "debuffs"), like granting a boost to movement speed for a few seconds.
Persistent changes that are applied over time, for example a poisoned gameplay effect that applies a poison gameplay cue to the character & slowly deals poison damage over time.
Gameplay Effects are implemented as Blueprints (of base class BP_AdvancedGameplayEffect) that interact with the Ability System Component and can be stored there while they are active. Gameplay Effects are designed to be Data Driven. Which means you can create custom gameplay effects by only needing modify the properties provided by the class.
Major Properties
Duration: Gameplay Effects can apply instantly (such as Health decreasing when damaged), over a limited time such as a buff that is applied & removed after a certain duration.
Modifiers: Modifiers can modify be applied to modify attribute values to determine how the gameplay effect interacts with attributes. For example, a buff can be created which buffs the characters attack attribute. Once the gameplay effect is removed the buff to attack will be removed. Gameplay effects can also be added to items to give items various buffs to the characters’ attributes.
Note: When adding modifiers You DO NOT need to generate the modifier ID. The modifier ID can simply be left blank, the attributes system will automatically generate a modifier ID.
Executions: Executions can be used to execute certain logic when the gameplay effect is applied. You can create child classes of BP_Execution & write some custom functionality to fire when the gameplay effect is applied. Executions can also help with calculations that cannot be handled by a standard attribute modifier. Such as damage calculation.
Application Required Tags: the owning actor must have these tags before the effect can be applied.
Application Blocked Tags: the gameplay effect is blocked if the owning actor has any of these tags.
Period: used to determine the interval that a ongoing gameplay effect is applied. For example for a poison gameplay effect that decreases health over time, the period will determine the interval between each time damage is applied.
Granted Abilities: Gameplay abilities can also be granted when effects are applied. When used in combination with gameplay tags & executions, this can create highly-specific gameplay combinations.
Stacking: "Stacking" refers to the policy of applying a buff or debuff (or Gameplay Effect, in this case) to a target that already carries it. For example, applying a gameplay effect multiple times can add multiple “stacks” of that gameplay effect which indicated the number of times that gameplay effect has been applied.
Gameplay Cues: When this effect is applied, various gameplay cues can also be applied on the actor the gameplay effect was applied to. Effects such as particle effects, sound effects, or other visual effects required for the gameplay effect.