The Gameplay Ability System ( GAS ) is the Unreal Engine plugin for abilities, stats and status effects. It is what you reach for when a character needs health that replicates, an attack that costs stamina, a stun that blocks other actions, and all of that working over the network without you writing the prediction code yourself.
The plugin is built from a small set of classes. UAbilitySystemComponent is the hub that every character owns, and it holds everything else: UGameplayAbility for the actions, UAttributeSet for the stats, UGameplayEffect for anything that changes a stat or stays on a character over time, and UGameplayTask for the waiting an ability does while a montage plays or an attribute changes ( the ability tasks derive from it ). An effect travels as an FGameplayEffectSpec, which is the built copy of that effect carrying its level and its captured attributes, and Gameplay Tags gate which of these are allowed to run at all.
If you came here looking for Epic's own reference, that is the official Gameplay Ability System documentation. This page is not it. It is thin in places, which is exactly why this page exists: these are the notes I have written while building GAS combat and RPG systems on shipped games like Lords of the Fallen and Killsquad.
Start with Introduction to GAS: The Six Pieces of Unreal's Gameplay Ability System if what you are missing is the map. After that the posts below go one piece at a time: attribute sets, gameplay effect durations and components, ability instancing policies, the ability tasks you use inside an ability, and the one-shot GiveAbilityAndActivateOnce pattern. I also keep a list of the GAS resources I actually recommend, Epic's own docs and the community ones included.







