Resource
Practical patterns for using gameplay tags with GAS, CommonUI, Enhanced Input, and animation systems.
Gameplay Abilities use tag containers to define what they block, what blocks them, and what they cancel on activation. This is configured per-ability in the class defaults.
AbilityTagsTags that identify this abilityActivationBlockedTagsIf the owner has any of these tags, this ability cannot activateActivationRequiredTagsThe owner must have all of these tags for this ability to activateBlockAbilitiesWithTagWhile active, prevent abilities with these tags from activatingCancelAbilitiesWithTagOn activation, cancel any active abilities with these tagsActivationOwnedTagsTags granted to the owner while this ability is activeState.DeadEverything except Ability.Behavior.SurvivesDeathDead characters can't actState.StunnedAll action abilitiesStunned characters can't use abilitiesState.ChannelingOther action abilitiesCan't start a new action while channelingGameplay Effects grant tags to their target for as long as the effect is active. This is how status effects, buffs, and debuffs work.
GrantedTagsAdded when GE is applied, removed when GE ends. Static, defined in class defaults.DynamicGrantedTagsSame behavior, but can be modified at runtime via the GE spec handle.Some projects use a .Removal suffix to explicitly remove a state tag. For example, applying a GE that grants State.SprintingRemoval removes State.Sprinting through tag container logic. This is common in GASShooter-style projects.
The engine routes cue events by matching the GameplayCue. prefix. This prefix is not optional. If a tag doesn't start with GameplayCue., the cue system ignores it.
OnExecuteInstant one-shot (for example, hit impact)OnActiveWhen the cue is first activatedWhileActiveEvery tick while the cue is activeOnRemoveWhen the cue is deactivatedThe tag hierarchy determines which handler responds. A handler for GameplayCue.Weapon.Impact catches GameplayCue.Weapon.Impact.Metal and GameplayCue.Weapon.Impact.Wood unless more specific handlers exist.
CommonUI uses gameplay tags to identify widget layers. Each layer is a stack. Pushing a widget onto UI.Layer.Menu pauses the UI.Layer.Game layer below it.
UI.Layer.GameHUD elements visible during gameplayUI.Layer.GameMenuIn-game overlays (pause, inventory)UI.Layer.MenuFull-screen menus (main menu, settings)UI.Layer.ModalModal dialogs (confirm, alert)UI.Action.* tags route platform-agnostic input actions through CommonUI. For example, UI.Action.Back maps to Escape on keyboard and B/Circle on gamepad. The layer system handles which widget receives the action.
Lyra maps Enhanced Input Actions to Gameplay Abilities via InputTag.* tags. Each Input Action is associated with a tag, and the ability system activates the ability that matches.
Input Action: IA_Fire → InputTag.Ability.Fire
Input Action: IA_Jump → InputTag.Ability.Jump
Input Action: IA_Dash → InputTag.Ability.Dash
Input Action: IA_Reload → InputTag.Ability.Reload
Input Action: IA_Move → InputTag.Move
Input Action: IA_Look → InputTag.Look.MouseThe ability is granted with a matching InputTag. When the Input Action fires, the system finds the ability whose input tag matches and activates it. This decouples the physical key binding from the ability.
Animation Blueprints can bind gameplay tags to boolean properties via the Gameplay Tag Property Map in class defaults. When the owner gains or loses a tag, the bound property updates automatically without polling.
State.AimingbIsAiming (switches to aim offset blend space)State.CrouchingbIsCrouching (selects crouch locomotion)State.SprintingbIsSprinting (drives sprint blend)State.DeadbIsDead (triggers death montage)This is configured in the Anim Blueprint's class defaults under Gameplay Tags > Gameplay Tag Property Map. It's ideal to use this instead of manually polling tags in the animation graph.