Unreal Engine Plugin for extending the GAS in a Lyra-like manner.
Warning
This is still in development and some features may not work as expected.
The UModularGameplayAbilty is an extended version of the base UGameplayAbility providing more functionality and customization options in the context of activation, failure, cooldowns, etc.
Gameplay Ability activation can happen in 3 different ways:
| Activation Policy | Description |
|---|---|
| 1. Passive | Used for abilities that always apply gameplay effects and/or tags when being given to an ASC. (e.g. "On Spawn") |
| 2. Triggered | Abilities that should be activated by a trigger (for example a GameplayEvent / Gameplay Message / etc.) |
| 3. Active | Abilities that should explicitly be activated by player actions. (E.g. pressing an input key) |
This will run through the default ability activation process but also checking for its Activation Group.
The principle of Activation Groups is pretty much ported from Lyra.
On a high level, each ability can have its own activation group the defines its relationship to other abilities.
| Activation Group | Description |
|---|---|
| 1. Independent | Usually the majority of your abilities will run independently from another. Meaning they don't care about the activation of other abilities. |
| 2. Exclusive (Replaceable) | Setting the Activation Group to "Exclusive (Replaceable) means there should only be one exclusive ability running at a time. But it can be canceled and replaced by other exclusive abilities. |
| 3. Exclusive (Blocking) | This does pretty much the same as the "Exclusive (Replaceable) Activation Group, however instead of getting canceled by others, this will actively block all other exclusive abilities from activating. |
Potential usage of this could be:
- Independent: Abilities that can be used at any time, e.g.
Jump,Crouch. - Exclusive (Replaceable): Abilities that can be replaced by others, e.g.
Aim Down Sights,Sprint. - Exclusive (Blocking): Abilities that should block others, e.g.
Show Inventory,Show Map. (Only one at a time should be shown)
[...]
[...]
[...]
As Gameplay Abilities are also able to be activated by bot-controlled pawns, the ModularGameplayAbility provides further logic modifying the AI's behavior.
E.g. during the Ability activation, if instigated by an AI, it will stop any Behavior Logic / AI Movement / RVO Avoidance / ...
[...]
The AModularAbilityActor provides logic for an actor that is meant to use the Ability System. Thus setting up an example of how to lazy-load the Ability System and manage pending attribute modifiers for optimal performance. [...]
If you like this project, leaving a star is much appreciated
Back to the top



