Skip to main content

Gameplay Tags Reference

All built-in gameplay tags used by the plugin. These are defined as native tags in GameplayInteractionTags.h / .cpp and are available in any project that includes the plugin.


Input Tags​

Used to bind interaction abilities to Enhanced Input actions via dynamic ability tags.

TagPurpose
Input.InteractBind GA_Interact to this tag. Pressed → activate, Released → cancel timed hold.
Input.Interact.ShowOptionsBind GA_ShowInteractionOptions to this tag (open radial menu).
Input.Interact.SwitchOptionBind GA_Interaction_SwitchOption to this tag (cycle options).

Gameplay Event Tags​

TagPurpose
GameplayEvent.Interaction.TerminateSend this event to the player's ASC to cleanly end any active interaction ability.
GameplayEvent.Interaction.OptionSelectedReserved for option selection events (e.g. from the radial menu).

Interaction State Tags​

These tags describe why an interaction is blocked or in what state an entity or player currently is. They appear in FGameplayTagContainer OutFailureTags returned by CanActivateInteractionOption.

TagPriorityProduced byMeaning
Gameplay.Interaction.Unauthorized100SpecificPlayers policyPlayer is not registered / not allowed
Gameplay.Interaction.Disabled80Entity blocking tagsEntity is hard-locked, powered off, or destroyed
Gameplay.Interaction.Busy60SpecificNumberOfPlayers policyInteractor cap reached
Gameplay.Interaction.Cooldown50CooldownTags on optionOption is on cooldown
Gameplay.Interaction.Blocked40Player or entity blocking tagsGeneric block
Gameplay.Interaction.Ongoing30Player has this tag granted at activationPlayer is already mid-interaction
Gameplay.Interaction.Unavailable10Various null / missing component checksCatch-all fallback

How Tags Flow​

  1. UGameplayAbility_Interaction grants Ongoing to the player via PlayerTemporaryGrantedTagsOnStart (set as default on every UGameplayInteractionOption).
  2. UGameplayAbility_Interaction has ActivationBlockedTags containing Ongoing, Blocked, Unauthorized, and Busy — preventing the ability from being activated while any of these are present.
  3. UGameplayEntityInteractionComponent has BlockingTags containing the full set above plus Cooldown and Disabled — these are checked against the entity's dynamic tags in CanInteract.

Ability Tags​

TagPurpose
Ability.InteractionTag the interaction ability spec with this so GetActiveInteractionAbilityInstance and ForceTerminateInteraction can find it.
Ability.Interaction.ActiveReserved for marking the ability as actively executing.

State / Event Tags (Informational)​

These are defined but not automatically applied — use them in your own abilities, cues, or Blueprint logic as descriptive state markers.

TagPurpose
Gameplay.Interaction.StartedMark that an interaction started
Gameplay.Interaction.FinishedMark that an interaction finished
Gameplay.Interaction.Timed.StartedMark that a timed hold started
Gameplay.Interaction.Timed.FinishedMark that a timed hold finished

Adding Your Own Tags​

Register project-specific tags in your project's GameplayTags.ini or as native tags in your own module:

// YourGameplayTags.h
namespace YourTags
{
UE_DECLARE_GAMEPLAY_TAG_EXTERN(TAG_State_Door_Locked);
}

// YourGameplayTags.cpp
namespace YourTags
{
UE_DEFINE_GAMEPLAY_TAG(TAG_State_Door_Locked, "State.Door.Locked");
}

Use them in TargetRequirements on your options, in GrantDynamicTags / RevokeDynamicTags calls, and in your UGameplayInteractionErrorMapping asset.