Skip to content

MajorTomAW/ModularGameplayAbilities

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modular Gameplay Abilities

📋 〢 Overview

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.


🌐 〢 Index

  1. Modular Gameplay Ability
      1.1 Activation
      1.2 Actor Tracking
      1.3 Failure Management
      1.4 (Explicit) Cooldowns
      1.5 AI-Controlled Ability usage
  2. Lazy-Loading the ASC
  3. Installing the plugin

1. Modular Gameplay Ability

The UModularGameplayAbilty is an extended version of the base UGameplayAbility providing more functionality and customization options in the context of activation, failure, cooldowns, etc.


📣 〢 Activation

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)

image


📣 〢 Actor Tracking

[...]


📣 〢 Failure Management

[...]


📣 〢 (Explicit) Cooldowns

[...]

image


📣 〢 AI-Controlled Ability usage

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 / ... [...]

image


2. Lazy-Loading the ASC

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. [...]

image

Credit (Vorixo)


If you like this project, leaving a star is much appreciated
Back to the top

About

Unreal Engine Plugin for extending the GAS in a Lyra-like manner.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published