ue-gameplay-tags

Implements hierarchical Gameplay Tags in Unreal Engine C++ for state modeling and tag-driven gameplay logic.

55|5|Updated Mar 26, 2026
One-click install
npx skills add https://github.com/kevinpbuckley/unreal-engine-skills --skill ue-gameplay-tags-kevinpbuckley
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ue-gameplay-tags
Source: https://github.com/kevinpbuckley/unreal-engine-skills/tree/main/skills/core/ue-gameplay-tags
Command: npx skills add https://github.com/kevinpbuckley/unreal-engine-skills --skill ue-gameplay-tags-kevinpbuckley

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Unreal Engine projects often rely on brittle enums, booleans, and string comparisons to model states, categories, and conditions, which break as systems grow. This Skill provides the correct UE 5.8 APIs and patterns for using Gameplay Tags — hierarchical, interned FName labels — so agents write tag-driven C++ that multiple systems (GAS, AI, animation, UI) can share. ## Core Features & Use Cases - Native tag declaration and definition: Covers UE_DECLARE_GAMEPLAY_TAG_EXTERN, UE_DEFINE_GAMEPLAY_TAG, UE_DEFINE_GAMEPLAY_TAG_COMMENT, and UE_DEFINE_GAMEPLAY_TAG_STATIC, including module registration timing and cross-module sharing. - Container and query operations: Documents FGameplayTagContainer operations (AddTag, HasTag, HasAny, HasAll, exact variants), single-tag matching (MatchesTag), and data-driven FGameplayTagQuery conditions editable by designers. - Integration patterns: Explains IGameplayTagAssetInterface, Blueprint exposure with UPROPERTY tag pickers, config via DefaultGameplayTags.ini and DataTables, and GAS integration points. - Use Case: An agent needs to model a character stun state that blocks abilities and drives UI. It defines TAG_State_Stunned natively, adds it to the character's FGameplayTagContainer, implements IGameplayTagAssetInterface, and gates ability activation with an FGameplayTagQuery. ## Quick Start Use the ue-gameplay-tags skill to define a native gameplay tag for a stunned state and query it from an actor's tag container in Unreal C++.

Frequently Asked Questions about ue-gameplay-tags

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I define Gameplay Tags in Unreal C++?

Use UE_DECLARE_GAMEPLAY_TAG_EXTERN in a header and UE_DEFINE_GAMEPLAY_TAG in a .cpp file to create native tags registered at module load. Alternatively, add tags in Project Settings or DefaultGameplayTags.ini and look them up with FGameplayTag::RequestGameplayTag.

What is the difference between HasTag and HasTagExact in Unreal?

HasTag is hierarchy-aware, so a container holding Ability.Attack.Melee returns true for HasTag(Ability.Attack). HasTagExact only matches the precise tag. Use exact variants when parent tags must not satisfy the check.

When should I use Gameplay Tags instead of enums in Unreal?

Use enums for small, fixed, mutually-exclusive sets switched in C++. Use Gameplay Tags for open-ended, hierarchical, designer-extensible labels, when an object holds a set of simultaneous states, or when conditions must be editable without recompiling.

Why does my Gameplay Tag code fail to compile or link in Unreal?

Missing "GameplayTags" in your Build.cs PublicDependencyModuleNames causes unresolved external symbols. Also, UE_DEFINE_GAMEPLAY_TAG must be in a .cpp file — a static_assert rejects definitions in headers.

Can Gameplay Tags be replicated over the network in Unreal?

Yes, FGameplayTag and FGameplayTagContainer implement NetSerialize. Enabling Fast Replication in UGameplayTagsSettings sends a 16-bit net index instead of full FNames, requiring identical tag dictionaries on client and server.

How do Gameplay Tags integrate with the Gameplay Ability System?

GAS uses tags for activation requirements, blocking and cancelling abilities, granted tags on Gameplay Effects, and Gameplay Cue triggers. The AbilitySystemComponent maintains a FGameplayTagCountContainer tracking how many sources grant each tag.