SkillAgentSearch skills...

GASDocumentation

My understanding of Unreal Engine 5's GameplayAbilitySystem plugin with a simple multiplayer sample project.

Install / Use

/learn @tranek/GASDocumentation
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

GASDocumentation

My understanding of Unreal Engine 5's GameplayAbilitySystem plugin (GAS) with a simple multiplayer sample project. This is not official documentation and neither this project nor myself are affiliated with Epic Games. I make no guarantee for the accuracy of this information.

The goal of this documentation is to explain the major concepts and classes in GAS and provide some additional commentary based on my experience with it. There is a lot of 'tribal knowledge' of GAS among users in the community and I aim to share all of mine here.

The Sample Project and documentation are current with Unreal Engine 5.3 (UE5). There are branches of this documentation for older versions of Unreal Engine, but they are no longer supported and are liable to have bugs or out of date information. Please use the branch that matches your engine version.

GASShooter is a sister Sample Project demonstrating advanced techniques with GAS for a multiplayer FPS/TPS.

The best documentation will always be the plugin source code.

<a name="table-of-contents"></a>

Table of Contents

  1. Intro to the GameplayAbilitySystem Plugin
  2. Sample Project
  3. Setting Up a Project Using GAS
  4. Concepts
    4.1 Ability System Component
          4.1.1 Replication Mode
          4.1.2 Setup and Initialization
    4.2 Gameplay Tags
          4.2.1 Responding to Changes in Gameplay Tags
          4.2.2 Loading Gameplay Tags from Plugin .ini Files
    4.3 Attributes
          4.3.1 Attribute Definition
          4.3.2 BaseValue vs CurrentValue
          4.3.3 Meta Attributes
          4.3.4 Responding to Attribute Changes
          4.3.5 Derived Attributes
    4.4 Attribute Set
          4.4.1 Attribute Set Definition
          4.4.2 Attribute Set Design
                4.4.2.1 Subcomponents with Individual Attributes
                4.4.2.2 Adding and Removing AttributeSets at Runtime
                4.4.2.3 Item Attributes (Weapon Ammo)
                      4.4.2.3.1 Plain Floats on the Item
                      4.4.2.3.2 AttributeSet on the Item
                      4.4.2.3.3 ASC on the Item
          4.4.3 Defining Attributes
          4.4.4 Initializing Attributes
          4.4.5 PreAttributeChange()
          4.4.6 PostGameplayEffectExecute()
          4.4.7 OnAttributeAggregatorCreated()
    4.5 Gameplay Effects
          4.5.1 Gameplay Effect Definition
          4.5.2 Applying Gameplay Effects
          4.5.3 Removing Gameplay Effects
          4.5.4 Gameplay Effect Modifiers
                4.5.4.1 Multiply and Divide Modifiers
                4.5.4.2 Gameplay Tags on Modifiers
          4.5.5 Stacking Gameplay Effects
          4.5.6 Granted Abilities
          4.5.7 Gameplay Effect Tags
          4.5.8 Immunity
          4.5.9 Gameplay Effect Spec
                4.5.9.1 SetByCallers
          4.5.10 Gameplay Effect Context
          4.5.11 Modifier Magnitude Calculation
          4.5.12 Gameplay Effect Execution Calculation
                4.5.12.1 Sending Data to Execution Calculations
                      4.5.12.1.1 SetByCaller
                      4.5.12.1.2 Backing Data Attribute Calculation Modifier
                      4.5.12.1.3 Backing Data Temporary Variable Calculation Modifier
                      4.5.12.1.4 Gameplay Effect Context
          4.5.13 Custom Application Requirement
          4.5.14 Cost Gameplay Effect
          4.5.15 Cooldown Gameplay Effect
                4.5.15.1 Get the Cooldown Gameplay Effect's Remaining Time
                4.5.15.2 Listening for Cooldown Begin and End
                4.5.15.3 Predicting Cooldowns
          4.5.16 Changing Active Gameplay Effect Duration
          4.5.17 Creating Dynamic Gameplay Effects at Runtime
          4.5.18 Gameplay Effect Containers
    4.6 Gameplay Abilities
          4.6.1 Gameplay Ability Definition
                4.6.1.1 Replication Policy
                4.6.1.2 Server Respects Remote Ability Cancellation
                4.6.1.3 Replicate Input Directly
          4.6.2 Binding Input to the ASC
                4.6.2.1 Binding to Input without Activating Abilities
          4.6.3 Granting Abilities
          4.6.4 Activating Abilities
                4.6.4.1 Passive Abilities
                4.6.4.2 Activation Failed Tags
          4.6.5 Canceling Abilities
          4.6.6 Getting Active Abilities
          4.6.7 Instancing Policy
          4.6.8 Net Execution Policy
          4.6.9 Ability Tags
          4.6.10 Gameplay Ability Spec
          4.6.11 Passing Data to Abilities
          4.6.12 [Ability Cost and Cooldown](#concepts-g
View on GitHub
GitHub Stars5.7k
CategoryDevelopment
Updated1h ago
Forks971

Languages

C++

Security Score

95/100

Audited on Mar 29, 2026

No findings