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.