Gameplay TagsGame Creator 2 Module

#FAQ

#What is the difference between Unity Tags and Gameplay Tags?

Unity Tags are a built-in Unity feature where each GameObject has one tag from a flat list.

Gameplay Tags are a gameplay-focused system where objects and containers can have multiple hierarchical tags.

Use Unity Tags when a Unity workflow or third-party asset expects them. Use Gameplay Tags for gameplay logic, Game Creator Actions and Conditions, states, factions, damage types, quests, interactions, and other design categories.

#Why not just use booleans?

Booleans are fine for small, isolated logic. They become messy when many systems need the same state.

Instead of several unrelated values:

IsStunned
IsBurning
IsEnemy
IsInteractable

you can use shared tags:

Character.State.Stunned
Character.State.Burning
Faction.Enemy
Interaction.Usable

Tags are easier to search, organize, reuse, and query across Game Creator workflows.

#Can I rename tags safely?

The tag manager supports renaming tags and renaming subtrees. The runtime also supports redirect resolution for old paths when redirects are present.

TODO: Verify whether the final packaged asset performs project-wide reference rewriting for scenes, prefabs, Game Creator Actions, Conditions, Variables, and other serialized assets. Until confirmed, export the tag database and use version control before large rename operations.

#Can I delete tags safely?

The tag manager supports deleting a selected tag and its descendants after confirmation.

TODO: Verify whether the final packaged asset includes a user-facing reference scan before delete. Treat delete as a database operation unless reference detection is confirmed.

#Are Gameplay Tags fast?

Tag checks are lightweight. Scene-wide searches are the part to use thoughtfully.

For best performance:

  • Check known objects directly when possible.
  • Use trigger, collision, raycast, or overlap workflows to reduce candidates.
  • Use Unity layers before tag checks.
  • Avoid per-frame global searches in large scenes.
  • Cache results when the same query is reused.

#Can tags be added at runtime?

Yes. Tags can be added, removed, cleared, and set at runtime through Game Creator Actions or C#.

component.AddTag(GameplayTag.FromPath("Character.State.Stunned"));
component.RemoveTag(GameplayTag.FromPath("Character.State.Stunned"));

#Should tags store numbers or values?

No. Gameplay Tags should describe identity, category, capability, or state.

Good tags:

Damage.Type.Fire
Faction.Enemy
Character.State.Stunned

Use variables or fields for values:

Health = 25
Gold = 100
Speed = 4.5

#How should I organize tags?

Start with broad root categories:

Character
Damage
Faction
Interaction
Item
Quest
World

Then add specific children:

Character.State.Stunned
Damage.Type.Fire
Interaction.Usable.Door
Quest.Main.Completed

Keep names clear, stable, and easy to search.

#What does Include Children mean?

Include Children lets a parent query match child tags.

Owned: Damage.Type.Fire
Query: Damage.Type
Mode: Include Children
Result: true

This is useful for broad rules like "any damage type" or "any usable object."

#Can a GameObject have more than one Gameplay Tag?

Yes. Use GameplayTagComponent in Container mode to store multiple tags.

Faction.Enemy
Character.State.Burning
Damage.Resistance.Fire

Use Single Tag mode when an object should only have one primary tag at a time.

#Can I use Gameplay Tags without Game Creator 2?

The runtime API can be used from custom C# scripts, but this asset depends on Game Creator 2 Core and is designed to integrate with Game Creator values, properties, Actions, Conditions, Events, and save systems.

For a project without Game Creator 2, this package is not intended as a standalone dependency.

#What happens if I assign an undefined tag?

Undefined tags can produce warnings in the Editor or development builds when passed through the tag service.

To avoid mistakes:

  • Use the tag picker whenever possible.
  • Keep tags defined in the Gameplay Tags settings page.
  • Run validation after imports or large edits.