#Tag Containers
A tag container is a collection of Gameplay Tags. Containers let one object, variable, or property hold multiple labels at the same time.
Example:
Faction.Enemy
Character.State.Burning
Damage.Resistance.Fire
Interaction.Usable
This makes gameplay logic composable. An object can be an enemy, burning, fire-resistant, and usable without requiring four unrelated booleans.
#GameplayTagComponent
Add Game Creator > Gameplay Tags > Gameplay Tag Component to any GameObject that should participate in tag-based logic.
Common examples:
- Player and enemy prefabs.
- Interactable objects.
- Pickups and loot.
- Doors, chests, switches, traps.
- Quest objects.
- Area triggers.
The component exposes a runtime tag container that can be read or changed by Game Creator and C#.
#Container Mode and Single Tag Mode
| Mode | Best For | Example |
|---|---|---|
| Container | Objects with several simultaneous tags. | Enemy + Burning + Fire Resistant |
| Single Tag | Objects that should hold one primary tag. | One current quest state |
Container mode is the most flexible and is the best default for most gameplay objects.
Single Tag mode is useful for exclusive categories:
Quest.Main.Available
Quest.Main.Active
Quest.Main.Completed
When a new tag is set in Single Tag mode, it replaces the previous tag.
#Exclusive Groups and Sibling Switching
For category-style states where one option should be active at a time inside a container, use exclusive group actions:
Set Exclusive Gameplay TagSet Parent Group Gameplay TagCycle Sibling Gameplay TagClear Parent Group Gameplay Tags
These actions let container mode maintain "single choice per branch" behavior:
State.Buff.Haste
State.Buff.Shield
State.Buff.Regeneration
You can keep one active State.Buff.* tag while still keeping unrelated tags like Faction.Enemy in the same container.
#Add, Remove, Clear, and Set
Tags can be changed at runtime through Game Creator Actions:
| Action | Use |
|---|---|
| Add Gameplay Tag | Apply a state, category, or capability. |
| Remove Gameplay Tag | Remove a temporary state or category. |
| Clear Gameplay Tags | Empty a container. |
| Set Gameplay Tag | Assign a single tag value. |
#Runtime Matching
Containers support direct tag checks and container queries:
| Query | Meaning |
|---|---|
| Has Tag | Does this container include this tag? |
| Contains Any | Does this container include at least one query tag? |
| Contains All | Does this container include every query tag? |
| Equals | Does this container exactly match another container? |
Matching can be exact or include children.
Owned: Damage.Type.Fire
Query: Damage.Type
Mode: Include Children
Result: true
#Tag Change Events
GameplayTagComponent exposes runtime events:
EventTagsChangedEventTagAddedEventTagRemoved- Static lifecycle events:
EventCreated,EventRegistered,EventUnregistered,EventDestroying
#Saving Runtime Tags
The plugin includes a Game Creator memory type:
Game Object/Gameplay Tags
Use it when runtime tags on a GameplayTagComponent should be remembered by Game Creator save systems.