Agent skill

Unreal Gameplay Tags

by kevinpbuckley in kevinpbuckley/VibeUE

Registers and queries Unreal Engine Gameplay Tags from the editor through VibeUE, including bulk registration and hierarchy lookups, with no restart needed.

MITAuto-check passedGame Development

Install Unreal Gameplay Tags

skills CLI
$ npx skills add kevinpbuckley/VibeUE --skill gameplay-tags -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kevinpbuckley/VibeUE gameplay-tags --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kevinpbuckley/VibeUE.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Content/Skills/gameplay-tags .claude/skills/gameplay-tags && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
gameplay-tags
GitHub stars
730
Token cost
~2.3k tokens
SKILL.md length
759 words
Files
2 (incl. scripts)
Skills in repo
39
Repo updated
First seen
Licence
MIT

At a glance

Registers and queries Unreal Engine Gameplay Tags from the editor through VibeUE, including bulk registration and hierarchy lookups, with no restart needed.

  • Registering a group of Gameplay Tags such as Ability.Attack.Melee in one call
  • SKILL.md covers Critical Rules, Workflows, API Reference and Sample scripts (run via…
  • Checking whether a tag exists or listing the children of a parent tag
  • Getting a valid tag value to pass to a gameplay event or ability API

What it does

This skill manages Gameplay Tags in an Unreal Engine project. Single-tag add, remove, rename and list operations belong to the engine's own GameplayTagsToolset in Unreal 5.8, called through call_tool, and VibeUE adds the parts the engine does not cover through unreal.GameplayTagService.

Those extras are bulk registration with add_tags, existence checks with has_tag, detailed info with get_tag_info, direct children with get_children, and request_tag or request_tag_container for getting real tag values to pass to tag-typed APIs, since Python cannot construct a tag itself. Tags are written to INI config and registered at runtime, so they show up in the editor tag picker straight away. If an external Unreal skills-manager tool is present, the skill can load extra domain knowledge from it.

When your agent uses it

  • Registering a group of Gameplay Tags such as Ability.Attack.Melee in one call
  • Checking whether a tag exists or listing the children of a parent tag
  • Getting a valid tag value to pass to a gameplay event or ability API
  • Renaming or removing a tag that is no longer needed

Example prompts

  • “Register the tags State.Stunned, State.Burning and Ability.Attack.Melee in my project.”
  • “Does Ability.Attack.Melee exist, and what are its child tags?”
  • “Get me a tag container for State.Stunned and State.Burning to use in a gameplay event call.”

Requirements

  • An Unreal Engine project with the VibeUE plugin
  • Unreal Engine 5.8 for the native GameplayTagsToolset

What it can do on your machine

Read from SKILL.md and the folder at commit dc051be. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/, which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Unreal Gameplay Tags loads about 2.3k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 759 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~64
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from kevinpbuckley/VibeUE at commit dc051be, republished under its MIT licence (© kevinpbuckley). 759 words, ~2,303 tokens.

Download SKILL.mdSave it as .claude/skills/gameplay-tags/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
gameplay-tags
description
Create, list, remove, and rename Gameplay Tags with runtime registration (GameplayTagService). Use when the user asks to add or register gameplay tags, list/query existing tags, or rename/remove tags (e.g. Ability.Attack.Melee, State.Stunned).
display_name
Gameplay Tags
vibeue_classes
GameplayTagService
unreal_classes
UGameplayTagsManager, FGameplayTag, FGameplayTagContainer
keywords
gameplay tag, gameplay tags, tag, event tag, gameplay event, tag hierarchy

🧠 Brains complement: IF an unreal-engine-skills-manager tool (external MCP) exists in this session, call it with {action: "load", skill: "gameplay-tags"} for UE domain knowledge on this topic — correct APIs, architecture, best practices — and treat it as the rubric for any review / "best practices" question. If no such tool is available (e.g. running under Claude Code or Codex without that MCP), skip this line entirely and proceed with this skill alone — do NOT attempt the call.

Gameplay Tags Skill

Manage Unreal Engine Gameplay Tags. Core CRUD (add / remove / rename / list) is now owned by Unreal 5.8's native GameplayTagsToolset (call it via call_tool). VibeUE keeps only the delta the engine toolset does NOT provide — runtime hierarchy queries, bulk registration, and tag-value lookup: unreal.GameplayTagService.has_tag / get_tag_info / get_children / add_tags / request_tag / request_tag_container.

Tags are written to INI config and registered at runtime — they appear immediately in the editor tag picker without restart.

Critical Rules

🔀 Where each operation lives
OperationUse
Add / remove / rename a single tag, list all tagsengine GameplayTagsToolset via call_tool (run describe_toolset for its action names/params)
Bulk-register many tags at onceunreal.GameplayTagService.add_tags([...], comment, source)
Check existenceunreal.GameplayTagService.has_tag(name)
Obtain an FGameplayTag VALUE for a tag-typed APIunreal.GameplayTagService.request_tag(name) / request_tag_container(names) — Python CANNOT construct FGameplayTag itself (TagName is read-only, MakeLiteralGameplayTag takes a tag). Use these for has_matching_gameplay_tag, send_gameplay_event_to_actor, assign_tag_set_by_caller_magnitude, tag-keyed TMap authoring, tag queries, etc. request_tag returns an invalid tag (never asserts) for unregistered names — check .is_valid()
Detailed info (comment/source/redirect/child count)unreal.GameplayTagService.get_tag_info(name)
Direct children of a tagunreal.GameplayTagService.get_children(parent)

The single-tag add_tag / remove_tag / rename_tag / list_tags helpers were removed from GameplayTagService in the 5.8 consolidation — use the engine GameplayTagsToolset for those. VibeUE's add_tags remains for registering several tags in one call.

⚠️ Do NOT Use ProjectSettingsService for Gameplay Tags

ProjectSettingsService.set_ini_value() writes the ini file but does NOT register tags with UGameplayTagsManager. Tags created this way will not appear in tag pickers or dropdowns.

Use the engine GameplayTagsToolset (single-tag CRUD) or unreal.GameplayTagService.add_tags (bulk) for gameplay tag operations.

⚠️ Tag Names Use Dot Hierarchy

Tags use dot-separated hierarchy: Category.Subcategory.TagName

python
# ✅ CORRECT
unreal.GameplayTagService.add_tags(["Cube.StartChasing"])
unreal.GameplayTagService.add_tags(["Ability.Fireball.Cast"])

# ❌ WRONG - don't use spaces or special characters
unreal.GameplayTagService.add_tags(["Cube Start Chasing"])
⚠️ Default Source is DefaultGameplayTags.ini

Tags default to DefaultGameplayTags.ini source. This is the standard project-level tag source. You can specify a different source if needed, but the default is correct for most cases.

⚠️ Check Results
python
result = unreal.GameplayTagService.add_tags(["Cube.StartChasing"], "Event to start chasing")
if not result.success:
    print(f"Failed: {result.error_message}")
⚠️ Renames Register a Redirect — has_tag(old_name) Stays True

Renaming a tag (via the engine GameplayTagsToolset) updates the INI and registers a tag redirect so existing assets keep resolving the old name. Consequences:

  • has_tag(old_name) returns True after a rename — that is the redirect, not a failed rename.
  • get_tag_info(old_name) describes the redirect target; check its redirected_to field (non-empty = the requested name is a redirect, the value is the new canonical name).
  • Verify a rename with the engine toolset's list action or get_children(parent) — the old name will be gone from those listings — or check get_tag_info(old_name).redirected_to.
⚠️ get_tag_info Returns a Struct or None — NOT a Tuple
python
# ❌ WRONG — raises "cannot unpack non-iterable GameplayTagInfo"
found, info = unreal.GameplayTagService.get_tag_info("Cube.StartChasing")

# ✅ CORRECT
info = unreal.GameplayTagService.get_tag_info("Cube.StartChasing")
if info is not None:
    print(info.tag_name, info.comment)

Show full SKILL.md (300 more words)Show less

Workflows

Add Tags for StateTree Events

When a StateTree transition needs OnEvent trigger, create the event tags first:

python
import unreal

# 1. Create the gameplay tags
result = unreal.GameplayTagService.add_tags(
    ["Cube.StartChasing", "Cube.StopChasing"],
    "StateTree chase events"
)
print(f"Added {len(result.tags_modified)} tags: {result.tags_modified}")

# 2. Now use them in StateTree transitions (via StateTreeService)
Add a Single Tag

Single-tag add lives in the engine GameplayTagsToolset — call it with call_tool (run describe_toolset on it for the exact action name and parameters). For one-or-many in a single call from Python, add_tags also accepts a single-element list:

python
import unreal

result = unreal.GameplayTagService.add_tags(
    ["Ability.Fireball.Cast"],
    "Triggered when player casts fireball"
)
if result.success:
    print(f"Tag added: {result.tags_modified[0]}")
List All Tags (with Filter)

Listing/filtering all tags is an engine GameplayTagsToolset action (via call_tool). To walk a specific subtree from Python, use get_children:

python
import unreal

# Direct children under "Cube"
for t in unreal.GameplayTagService.get_children("Cube"):
    print(f"{t.tag_name} (source={t.source}, children={t.child_count})")
Check Tag Existence Before Use
python
import unreal

tag_name = "Cube.StartChasing"
if unreal.GameplayTagService.has_tag(tag_name):
    print(f"Tag '{tag_name}' exists")
else:
    # Register it (bulk-capable VibeUE helper; or use the engine GameplayTagsToolset)
    unreal.GameplayTagService.add_tags([tag_name])
Inspect Tag Hierarchy
python
import unreal

# Get children of root "Cube" tag
children = unreal.GameplayTagService.get_children("Cube")
for child in children:
    print(f"  {child.tag_name} (explicit={child.is_explicit})")
Rename a Tag

Renaming is an engine GameplayTagsToolset action — call it via call_tool. Then verify the redirect from Python (the old name still resolves through the redirect, so has_tag stays True):

python
import unreal

# (rename Cube.StartChasing -> Cube.BeginChase via the engine GameplayTagsToolset, then:)
info = unreal.GameplayTagService.get_tag_info("Cube.StartChasing")
print(f"Old name now redirects to: {info.redirected_to}")  # 'Cube.BeginChase'
Remove a Tag

Removing a single tag is an engine GameplayTagsToolset action (via call_tool). Confirm it is gone from Python with has_tag / get_children on the parent.


API Reference

VibeUE delta (call as unreal.GameplayTagService.<method> via execute_python_code):

MethodReturnsDescription
has_tag(tag_name)boolCheck if tag exists (also True for redirected old names of renamed tags)
get_tag_info(tag_name)FGameplayTagInfo or NoneGet detailed tag info (struct or None — NOT a tuple)
get_children(parent_tag)[FGameplayTagInfo]Get direct children of a tag
add_tags(tag_names, comment, source)FGameplayTagResultBulk-register multiple tags (also works for one)

Single-tag add / remove / rename and list-all are provided by Unreal 5.8's native GameplayTagsToolset — reach it with call_tool; run describe_toolset for its actions.

FGameplayTagInfo Fields
FieldTypeDescription
tag_namestrFull tag name (as requested)
redirected_tostrIf the requested name was renamed, the new canonical tag it redirects to (empty if none). Other fields describe the redirect target.
commentstrDeveloper comment
sourcestrWhere tag was defined
is_explicitboolExplicitly defined vs implied parent
child_countintNumber of direct children

Sample scripts (run via execute_python_code)

  • scripts/add_tags.txt — register gameplay tags and list them.

© kevinpbuckley, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in Content/Skills/gameplay-tags of kevinpbuckley/VibeUE.

  • SKILL.md
  • scripts/add_tags.txt

Open the folder on GitHubat commit dc051be

Compare with similar skills

Unreal Gameplay Tags next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Unreal Gameplay Tags compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Unreal Gameplay Tags this skillkevinpbuckley/VibeUE730—~2.3kAutomated safety check: PassMIT
Unreal BridgeTornLux/UnrealBridge306—~8.4kAutomated safety check: NotesMIT
Scenario Unreal Cinematicsscenario-labs/skills946—~5.1kAutomated safety check: PassMIT
Scenario Unreal Pipeline Automationscenario-labs/skills946—~5kAutomated safety check: PassMIT
Scenario Unreal Expertscenario-labs/skills946—~6.4kAutomated safety check: PassMIT
Scenario Unreal Gameplayscenario-labs/skills946—~5.2kAutomated safety check: PassMIT

Similar skills

  • Unreal Bridge

    TornLux/UnrealBridge

    Execute Python scripts inside a running Unreal Engine 5.3+ editor via TCP bridge.

    306 GitHub stars~8.4k tokensUpdated 10 days ago
    Game DevelopmentAuto-check: notes
  • Scenario Unreal Cinematics

    scenario-labs/skills

    A skill your agent uses when making a trailer, cutscene, cinematic or short film in Unreal Engine 5.8 with Sequencer: shot lists, master and shot sequences, cameras, lenses, depth of field, camera…

    946 GitHub stars~5.1k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • A skill your agent uses when importing FBX, USD, OBJ or glTF from Maya, ZBrush or Blender into Unreal Engine 5.8 in bulk or reimporting changed files, writing Editor Python tools, Interchange…

    946 GitHub stars~5k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Scenario Unreal Expert

    scenario-labs/skills

    A skill your agent uses when an agent drives Unreal Engine 5.8 on a Mac for any task: Editor Python (the unreal module), headless UnrealEditor-Cmd -run=pythonscript jobs, Epic's Unreal MCP server…

    946 GitHub stars~6.4k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Scenario Unreal Gameplay

    scenario-labs/skills

    A skill your agent uses when building or debugging UE5 gameplay: a character with double jump or dash, abilities with cooldowns, enemy AI that patrols, chases and attacks, a health bar or HUD…

    946 GitHub stars~5.2k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • 2D Map and Scene Generator

    0x0funky/agent-sprite-forge

    Plans and builds 2D game maps and scenes, from tilemaps and parallax backgrounds to HD-2D plates, with collision checks, a playable HTML preview and Tiled, Godot or LDtk export.

    4.4k GitHub stars~2.9k tokensUpdated 5 days ago
    Game DevelopmentAuto-check passed

More from kevinpbuckley/VibeUE

All 39 skills in this repo
  • Unreal Animation Bone Editor

    kevinpbuckley/VibeUE

    Previews, validates and bakes bone-rotation edits on Unreal Engine AnimSequences, enforcing a coordinate space and a constraint-checked preview-validate-bake loop.

    730 GitHub stars~1.3k tokensUpdated 4 days ago
    Auto-check passed
  • Unreal Animation Montage

    kevinpbuckley/VibeUE

    Creates and edits Unreal Engine Animation Montages through AnimMontageService: sections, slots, segments, branching points, notifies and blend settings.

    730 GitHub stars~3.6k tokensUpdated 4 days ago
    Auto-check passed
  • Unreal AnimSequence Editor

    kevinpbuckley/VibeUE

    Creates and edits AnimSequence keyframes and bone tracks in Unreal Engine through AnimSequenceService, following an inspect, preview, validate and bake workflow with correct bone-space handling.

    730 GitHub stars~3.2k tokensUpdated 4 days ago
    Auto-check passed
  • Unreal Asset Import and Export

    kevinpbuckley/VibeUE

    Imports files into Unreal Engine, exports textures, reads the Content Browser selection and checks open assets via VibeUE, plus mesh reimport material fixes.

    730 GitHub stars~6.5k tokensUpdated 4 days ago
    Auto-check passed
  • Unreal Engine Settings Control

    kevinpbuckley/VibeUE

    Changes Unreal Engine console variables, scalability levels and raw INI values through VibeUE's Python API, now that registered settings moved to the engine's own toolset.

    730 GitHub stars~1.3k tokensUpdated 4 days ago
    Auto-check passed
  • Unreal Enhanced Input Setup

    kevinpbuckley/VibeUE

    Creates and wires Unreal Engine Enhanced Input assets through VibeUE's InputService: Input Actions, Mapping Contexts, key bindings, triggers and modifiers.

    730 GitHub stars~2.4k tokensUpdated 4 days ago
    Auto-check passed

Questions about Unreal Gameplay Tags

What does Unreal Gameplay Tags do?

Registers and queries Unreal Engine Gameplay Tags from the editor through VibeUE, including bulk registration and hierarchy lookups, with no restart needed. This skill manages Gameplay Tags in an Unreal Engine project.GameplayTagService.

When should I use Unreal Gameplay Tags?

Unreal Gameplay Tags fits situations like: registering a group of Gameplay Tags such as Ability.Attack.Melee in one call; checking whether a tag exists or listing the children of a parent tag; getting a valid tag value to pass to a gameplay event or ability API; renaming or removing a tag that is no longer needed.

How do I install Unreal Gameplay Tags in Claude Code?

Run `npx skills add kevinpbuckley/VibeUE --skill gameplay-tags -a claude-code`. Or copy the skill folder (Content/Skills/gameplay-tags in kevinpbuckley/VibeUE) into .claude/skills/gameplay-tags in your project. Claude Code loads it when a task matches its description.

How do I install Unreal Gameplay Tags in Codex?

Run `npx skills add kevinpbuckley/VibeUE --skill gameplay-tags -a codex`. Or copy the skill folder (Content/Skills/gameplay-tags in kevinpbuckley/VibeUE) into .agents/skills/gameplay-tags in your project. Codex loads it when a task matches its description.

Can I use Unreal Gameplay Tags in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kevinpbuckley/VibeUE --skill gameplay-tags -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gameplay-tags, .gemini/skills/gameplay-tags, .github/skills/gameplay-tags and .opencode/skills/gameplay-tags in your project.

What does Unreal Gameplay Tags need to run?

SKILL.md names no scripts, command-line tools or credentials: Unreal Gameplay Tags is instructions for the agent only. Our summary lists: An Unreal Engine project with the VibeUE plugin; Unreal Engine 5.8 for the native GameplayTagsToolset.

Does Unreal Gameplay Tags access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Unreal Gameplay Tags safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Unreal Gameplay Tags use?

Unreal Gameplay Tags is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Unreal Gameplay Tags use?

About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Unreal Gameplay Tags?

Skills that share tags, products or a category with Unreal Gameplay Tags: Unreal Bridge (TornLux/UnrealBridge, 306 stars), Scenario Unreal Cinematics (scenario-labs/skills, 946 stars), Scenario Unreal Pipeline Automation (scenario-labs/skills, 946 stars) and Scenario Unreal Expert (scenario-labs/skills, 946 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Unreal Gameplay Tags?

kevinpbuckley (a GitHub user) maintains it in kevinpbuckley/VibeUE, which has 730 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 7, 2026.

Source: kevinpbuckley/VibeUE on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.