Skip to content
GAS (Gameplay Ability System)
Type a keyword to search

GAS (Gameplay Ability System)

Core GAS components in Echo Quest, technical rationale, and the complete dodge-system data flow

Updated2026-07-15·~7 min read

This chapter introduces the core components of GAS and the rationale behind using it. It then uses the dodge system as a complete case study, tracing the full data flow from player input to ability termination.

ComponentResponsibilityExample
GameplayAbility (GA)A container for gameplay logic. It activates when trigger conditions are met, such as a Tag or input binding, and executes Blueprint logic.GA_Dodge, GA_LightAttack
GameplayCue (GC)Presentation-only feedback such as VFX, SFX, and camera shake, triggered by Tags.dodge trail VFX, hit blood splash
GameplayEffect (GE)Attribute and state layer. It modifies Attributes, grants or removes Tags, and configures Cost / Cooldown behavior.GE_Cost_Dodge, GE_Damage_Melee

GAS-related plugins: GameplayAbilities (built-in engine module), ComboGraph, GAS Companion

GAS Blueprint folder structure

  • Modularity and decoupling: GA is responsible only for logic flow and state machines, GE only for numeric changes and constraints such as Cost / Cooldown, GC only for presentation, and Attribute Sets only for base character attributes.
  • Tag-based state management: replaces “Bool variable hell” with a scalable way to manage triggering, blocking, and state relationships.
  • Complex attribute calculation through Attribute Sets: GEs can add, multiply, or override base attributes at any time, avoiding the need to restructure gameplay algorithms when formulas evolve.
  • Networking and prediction: in multiplayer games, GAS provides strong support for client-side prediction and synchronization of GameplayAbility activation, Attribute values such as Health and Mana, and GameplayEffect state.

This separation also becomes the foundation for later systems such as ComboGraph, Hit Reaction, and enemy AI hit states to share the same event chain.

1.3.1 Defining Base Character Attributes — GAS Attributes

Section titled “1.3.1 Defining Base Character Attributes — GAS Attributes”

Dodge consumes stamina, which is one of the character’s base attributes. The Attribute Set stores player and enemy base data such as Health, Stamina, and Mana in a DataTable. This makes the system easy to maintain and extend. For example, if poise or stagger resistance needs to be added later, it can be configured centrally in the same data layer.

Attribute Set DataTable with player and enemy base attribute values

1.3.2 Taking Over Player Input — GSC_InputBinding

Section titled “1.3.2 Taking Over Player Input — GSC_InputBinding”

Player input is migrated into GSC_InputBinding, which provides high-level input management and assigns a corresponding Gameplay Tag to each character state.

When the player presses Shift (IA_Dodge), the logic inside GA_Dodge runs. In this project, all gameplay action inputs, such as attack, dodge, and skill activation, trigger a corresponding Gameplay Ability. The GA then owns the concrete logic implementation and state validation.

GSC_InputBinding configuration linking Input Actions and Gameplay Abilities

1.3.3 Executing the Dodge Logic in GA_Dodge

Section titled “1.3.3 Executing the Dodge Logic in GA_Dodge”

After the ability activates, it first checks whether the player currently has directional input. If the XY length of the input vector is ≤ 0 and the character is not falling, the system treats the character as standing still. If directional input exists, the system calculates the last input direction, which determines the dodge direction.

Directional input → forward dodge: the player Actor is instantly rotated toward the previous frame’s input vector, ensuring that the dodge follows the player’s intended direction. The forward dodge montage is played, the position at the moment of input is captured for the Gameplay Cue, and the Apply Root Motion Constant Force node takes over the CharacterMovementComponent to apply a forward force for the configured duration.

Standing still → backward dodge: the backward dodge montage is played directly. The input position is captured for the Gameplay Cue, and Apply Root Motion Constant Force takes over the CharacterMovementComponent to apply a backward force for the configured duration. The backward dodge has a shorter displacement than the forward dodge, which is exactly why this node is useful: it allows the displacement profile to be tuned per case.

Complete GA_Dodge Blueprint logic

1.3.4 Playing Dodge VFX Through Gameplay Cue

Section titled “1.3.4 Playing Dodge VFX Through Gameplay Cue”

Gameplay Cue owns all presentation-related logic and is triggered by GameplayCue Tags.

Gameplay Cues have two main forms: GameplayCueNotify_Static, used for one-shot effects such as muzzle flashes, and GameplayCueNotify_Actor, used for persistent effects that require ticking, such as trails.

The dodge VFX Gameplay Cue obtains the GameplayCue location data and the instigator position, spawns a Niagara VFX with Spawn System Attached at the player position, and continuously follows the Actor position to create the trail effect.

Gameplay Cue Blueprint logic using Spawn System Attached to spawn Niagara VFX

GameplayCue Tag configuration: GameplayCue.Character.Dodge.PrefectDodge, the actual in-project name

Viewport preview of the dodge trail particle effect

1.3.5 Tag Management During GA_Dodge Execution

Section titled “1.3.5 Tag Management During GA_Dodge Execution”

When GA_Dodge activates, the player receives the Ability.Character.Dodge Tag. The Tag is automatically removed when the GA ends.

BlockAbilitiesWithTag defines which Tags, and therefore which GAs, are blocked while this GA is active:

Blocked abilityEffect
All Ability.*Attacks, including melee and ranged attacks, cannot be triggered during dodge.
Event.Character.JumpJump cannot be triggered during dodge.

GA_Dodge Tag configuration: Ability Tags and Cancel/Block Abilities with Tag

1.3.6 Adding Stamina Cost and Cooldown Through GameplayEffect

Section titled “1.3.6 Adding Stamina Cost and Cooldown Through GameplayEffect”

At the same time, activating the ability triggers two Gameplay Effects: GE_Cost_Dodge and GE_Cooldown_Dodge.

Cost and Cooldown GameplayEffect classes specified in the GA

1.3.7 Configuration of the Two GameplayEffects

Section titled “1.3.7 Configuration of the Two GameplayEffects”
  • GE_Cost_Dodge: automatically triggered when the ability starts. It subtracts 5 from the Stamina Attribute defined in the first step.
  • GE_Cooldown_Dodge: applied during the Ability activation/Commit phase. It grants the player the Cooldown.Dodge Tag for 1 second. During this duration, GAs governed by the same Cooldown constraint cannot be triggered again.

GE_Cost_Dodge: Stamina Attribute -5, Instant

GE_Cooldown_Dodge: Duration 1s, granting the Cooldown.Dodge Tag

When the dodge montage finishes, blends out, is interrupted, or is cancelled, the GA ends. State Tags granted for the active duration of this Ability are removed. The cooldown has already been applied by GE_Cooldown_Dodge during the Ability activation/Commit phase and continues to block reactivation through the Cooldown.Dodge Tag.

PlayMontageAndWait node configuration