tranek /GASDocumentation

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

★ 5,990⑂ 1,009👁 149⑃ 50● 104▤ 0
C++Created 2019-08-11
5,990
stars
+0+2+25
1,009
forks
149
watchers
50
prs
104
issues
0
releases
–
discussions

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.


 Table of Contents

 1. Intro to the GameplayAbilitySystem Plugin
 1. Sample Project
 1. Setting Up a Project Using GAS
 1. 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  
        &n

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON