Agent skill

Unreal Enum and Struct Editor

by kevinpbuckley in kevinpbuckley/VibeUE

Creates, edits and inspects Unreal Engine UserDefinedEnums and UserDefinedStructs through Python, including adding values or members and reading internal versus display names.

MITAuto-check passedGame Development

Install Unreal Enum and Struct Editor

skills CLI
$ npx skills add kevinpbuckley/VibeUE --skill enum-struct -a claude-code

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

GitHub CLI
$ gh skill install kevinpbuckley/VibeUE enum-struct --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/enum-struct .claude/skills/enum-struct && 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
enum-struct
GitHub stars
717
Token cost
~2.3k tokens
SKILL.md length
449 words
Files
2 (incl. scripts)
Skills in repo
39
Repo updated
First seen
Licence
MIT

At a glance

Creates, edits and inspects Unreal Engine UserDefinedEnums and UserDefinedStructs through Python, including adding values or members and reading internal versus display names.

  • Creating a new Blueprint enum or struct asset in Unreal Engine
  • SKILL.md covers Critical Rules, Workflows, Available Property Types and Troubleshooting, plus 1 more section
  • Adding or renaming enum values or struct members
  • Defining a struct to use as a DataTable row

What it does

The skill covers the EnumStructService workflows for Blueprint-level enums and structs in Unreal Engine. It is explicit that native C++ enums and structs are read-only and only UserDefinedEnums and UserDefinedStructs can be modified through this service, using Python's unreal module to search and operate on them.

Naming is a common pitfall it corrects for: create_enum and create_struct only prepend an E or F prefix when the given name does not already start with it, so passing TestState yields ETestState while E_TestState is kept as given, and creation fails outright on a name that already exists, requiring a delete first. Enum entries also have immutable internal names like NewEnumerator0 that differ from the display name every other method works with, so add_enum_value, rename_enum_value and remove_enum_value all operate on display names, and get_enum_info returns both together.

When your agent uses it

  • Creating a new Blueprint enum or struct asset in Unreal Engine
  • Adding or renaming enum values or struct members
  • Defining a struct to use as a DataTable row

Example prompts

  • “Create a UserDefinedEnum called EWeaponType with three values.”
  • “Add a new member to the inventory item struct for a stack count.”
  • “Show me the internal and display names for every value in this enum.”

Requirements

  • Unreal Engine with the EnumStructService available
  • Python

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 Enum and Struct Editor loads about 2.3k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 449 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~70
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). 449 words, ~2,341 tokens.

Download SKILL.mdSave it as .claude/skills/enum-struct/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
enum-struct
description
Create, modify, and introspect UserDefinedEnums and UserDefinedStructs (EnumStructService). Use when the user asks to create a Blueprint enum or struct, add enum values or struct members, or inspect an enum/struct's fields. Useful for defining a DataTable row struct.
display_name
Enums and Structs
vibeue_classes
EnumStructService, BlueprintTypeParser
unreal_classes
UserDefinedEnum, UserDefinedStruct, EditorAssetLibrary
keywords
enum, struct, userdefined, enumeration, structure, type, property, datatable

Enum and Struct Skill

Critical Rules

Read-Only Native Types

Native C++ enums and structs are read-only. Only UserDefinedEnums and UserDefinedStructs can be modified:

python
import unreal

# Search for user-defined enums only (editable)
enums = unreal.EnumStructService.search_enums("Weapon", True)  # bUserDefinedOnly=True

# Check if an enum is user-defined before modifying
# (returns a single EnumInfo or None — NOT a (success, info) tuple)
info = unreal.EnumStructService.get_enum_info("EMyEnum")
if info and info.is_user_defined:          # field is is_user_defined, NOT b_is_user_defined
    unreal.EnumStructService.add_enum_value("EMyEnum", "NewValue")
🚨 Pass the EXACT asset name you want — prefixing is dumb

create_enum / create_struct only prepend E/F when the name doesn't already start with that letter; they never insert underscores or reformat. So:

  • want E_TestState → pass "E_TestState" (passing "TestState" creates ETestState)
  • want EWeaponType → "WeaponType" or "EWeaponType" both work

Creation fails with an empty string if the asset already exists — delete it first (delete_enum / delete_struct), there is no overwrite.

🚨 Enum values: you are always working with DISPLAY names

UserDefinedEnum entries have immutable internal names (NewEnumerator0..N). Every EnumStructService method speaks display names: the name you pass to add_enum_value becomes the display name, get_enum_values returns display names, and rename_enum_value / remove_enum_value accept display names (rename changes the display name only). For internal+display pairs use get_enum_info(...).values (each entry has name = internal, display_name, value, index).


Workflows

Create UserDefinedEnum
python
import unreal

# Create a new enum — pass the exact final name (here E prefix gets prepended)
enum_path = unreal.EnumStructService.create_enum("/Game/Data/Enums", "WeaponType")
print(f"Created: {enum_path}")  # /Game/Data/Enums/EWeaponType.EWeaponType
if not enum_path:
    # creation failed — most likely the asset already exists; delete_enum first
    ...

# Add values
unreal.EnumStructService.add_enum_value(enum_path, "Sword", "Melee Sword")
unreal.EnumStructService.add_enum_value(enum_path, "Bow", "Ranged Bow")
unreal.EnumStructService.add_enum_value(enum_path, "Staff", "Magic Staff")

# Verify
values = unreal.EnumStructService.get_enum_values(enum_path)
print(f"Values: {values}")  # ['Sword', 'Bow', 'Staff']
Create UserDefinedStruct
python
import unreal

# Create a new struct (F prefix added automatically)
struct_path = unreal.EnumStructService.create_struct("/Game/Data/Structs", "WeaponData")
print(f"Created: {struct_path}")

# Add properties
unreal.EnumStructService.add_struct_property(struct_path, "WeaponName", "FString", "Unnamed")
unreal.EnumStructService.add_struct_property(struct_path, "Damage", "float", "10.0")
unreal.EnumStructService.add_struct_property(struct_path, "AttackSpeed", "float", "1.0")
unreal.EnumStructService.add_struct_property(struct_path, "WeaponType", "EWeaponType")  # Use our enum

# Add array property
unreal.EnumStructService.add_struct_property(struct_path, "SpecialEffects", "FName", "", "Array")

# Verify — get_struct_info returns a single StructInfo (or None), NOT a (success, info) tuple
info = unreal.EnumStructService.get_struct_info(struct_path)
if info:
    print(f"Properties: {info.property_count}")
    for prop in info.properties:
        print(f"  {prop.name}: {prop.type} (default: {prop.default_value}, guid: {prop.guid})")

Notes:

  • prop.name is the authored name ("Damage") and all mutation methods (rename_struct_property, set_struct_property_default, remove_struct_property, change_struct_property_type) accept authored names. GUIDs live per property (StructPropertyInfo.guid) — StructInfo itself has no guid field.
  • New structs are seeded with a placeholder bool (MemberVar_0); the first add_struct_property call removes it automatically. If you ever see a stray MemberVar_* bool in an older struct, drop it with remove_struct_property(path, "MemberVar_0").
Discover Enums and Structs
python
import unreal

# Search all enums containing "Weapon"
enums = unreal.EnumStructService.search_enums("Weapon")
for e in enums:
    print(f"{e.name} ({e.value_count} values) - UserDefined: {e.is_user_defined}")

# Search user-defined structs only
structs = unreal.EnumStructService.search_structs("Data", True)  # bUserDefinedOnly=True
for s in structs:
    print(f"{s.name} ({s.property_count} properties)")

# Get detailed enum info — returns a single EnumInfo (or None), NOT a (success, info) tuple
enum_info = unreal.EnumStructService.get_enum_info("EWeaponType")
if enum_info:
    for v in enum_info.values:
        print(f"  {v.name} = {v.value} ({v.display_name})")
Modify Existing Enum
python
import unreal

enum_path = "/Game/Data/Enums/EWeaponType.EWeaponType"

# Rename a value
unreal.EnumStructService.rename_enum_value(enum_path, "Sword", "LongSword")

# Change display name
unreal.EnumStructService.set_enum_value_display_name(enum_path, "Bow", "Composite Bow")

# Remove a value
unreal.EnumStructService.remove_enum_value(enum_path, "Staff")

# Add new value
unreal.EnumStructService.add_enum_value(enum_path, "Crossbow", "Heavy Crossbow")
Modify Existing Struct
python
import unreal

struct_path = "/Game/Data/Structs/FWeaponData.FWeaponData"

# Rename a property
unreal.EnumStructService.rename_struct_property(struct_path, "Damage", "BaseDamage")

# Change property type — ⚠️ this RESETS the default value to the new type's zero;
# re-set the default afterwards if you need one
unreal.EnumStructService.change_struct_property_type(struct_path, "BaseDamage", "int32")

# Set default value
unreal.EnumStructService.set_struct_property_default(struct_path, "BaseDamage", "15")

# Remove a property
unreal.EnumStructService.remove_struct_property(struct_path, "SpecialEffects")

# Add new property
unreal.EnumStructService.add_struct_property(struct_path, "CriticalMultiplier", "float", "2.0")
Show full SKILL.md (222 more words)Show less
Use Struct in a DataTable

After creating a UserDefinedStruct, it becomes available as a DataTable row type. The struct must contain at least one property before it can be used as a row type.

python
import unreal

# Create the row struct with EnumStructService
struct_path = unreal.EnumStructService.create_struct("/Game/Data", "ItemRow")
unreal.EnumStructService.add_struct_property(struct_path, "ItemName", "FString")
unreal.EnumStructService.add_struct_property(struct_path, "Value", "int32", "0")
unreal.EnumStructService.add_struct_property(struct_path, "Icon", "UTexture2D")

DataTable creation itself is no longer a VibeUE service — it is owned by the engine's native asset toolset. Create the DataTable with the engine AssetTools toolset via call_tool (pass the FItemRow struct as the row structure); run describe_toolset on AssetTools for the exact action name and parameters. You can also create one in raw Python via unreal.AssetToolsHelpers + unreal.DataTableFactory if you prefer execute_python_code.


Available Property Types

When adding struct properties, use these type strings:

Basic Types
  • bool, int32, int64, float, double
  • FString, FName, FText, uint8, byte
Common Structs
  • FVector, FVector2D, FRotator, FTransform
  • FColor, FLinearColor
  • FGameplayTag, FGameplayTagContainer
Object References
  • AActor, APawn, ACharacter
  • UTexture2D, UMaterial, UStaticMesh
  • USoundBase, UAnimSequence
Containers

Use the ContainerType parameter:

python
# Array of strings
unreal.EnumStructService.add_struct_property(path, "Tags", "FString", "", "Array")

# Set of names
unreal.EnumStructService.add_struct_property(path, "UniqueNames", "FName", "", "Set")

# Map of string to int
unreal.EnumStructService.add_struct_property(path, "Scores", "int32", "", "Map")

Troubleshooting

"Enum not found" Error
  • Check if using full path vs just name
  • Use search_enums() to find the correct path
  • Ensure the asset is saved
"Cannot modify native enum/struct"
  • Only UserDefinedEnum/UserDefinedStruct assets can be modified
  • Native C++ types from engine/plugins are read-only
  • Check is_user_defined property before modifying
Property Type Not Recognized
  • Use BlueprintService.search_variable_types() to find valid type names
  • Ensure enum/struct types exist before referencing them

Sample scripts (run via execute_python_code)

  • scripts/create_enum_struct.txt — create a UserDefinedEnum (+values) and a UserDefinedStruct.

© 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/enum-struct of kevinpbuckley/VibeUE.

  • SKILL.md
  • scripts/create_enum_struct.txt

Open the folder on GitHubat commit dc051be

Compare with similar skills

Unreal Enum and Struct Editor 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 Enum and Struct Editor compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Unreal Enum and Struct Editor this skillkevinpbuckley/VibeUE717—~2.3kAutomated safety check: PassMIT
Unreal BridgeTornLux/UnrealBridge305—~8.4kAutomated safety check: NotesMIT
Scenario Unreal Cinematicsscenario-labs/skills898—~5.1kAutomated safety check: PassMIT
Scenario Unreal Pipeline Automationscenario-labs/skills898—~5kAutomated safety check: PassMIT
Scenario Unreal Expertscenario-labs/skills898—~6.4kAutomated safety check: PassMIT
Scenario Unreal Gameplayscenario-labs/skills898—~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.

    305 GitHub stars~8.4k tokensUpdated 6 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…

    898 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…

    898 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…

    898 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…

    898 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.3k GitHub stars~2.9k tokensUpdated yesterday
    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.

    717 GitHub stars~1.3k tokensUpdated 5 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.

    717 GitHub stars~3.6k tokensUpdated 5 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.

    717 GitHub stars~3.2k tokensUpdated 5 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.

    717 GitHub stars~6.5k tokensUpdated 5 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.

    717 GitHub stars~1.3k tokensUpdated 5 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.

    717 GitHub stars~2.4k tokensUpdated 5 days ago
    Auto-check passed

Questions about Unreal Enum and Struct Editor

What does Unreal Enum and Struct Editor do?

Creates, edits and inspects Unreal Engine UserDefinedEnums and UserDefinedStructs through Python, including adding values or members and reading internal versus display names. The skill covers the EnumStructService workflows for Blueprint-level enums and structs in Unreal Engine. It is explicit that native C++ enums and structs are read-only and only UserDefinedEnums and UserDefinedStructs can be modified through this service, using Python's unreal module to search and operate on them.

When should I use Unreal Enum and Struct Editor?

Unreal Enum and Struct Editor fits situations like: creating a new Blueprint enum or struct asset in Unreal Engine; adding or renaming enum values or struct members; defining a struct to use as a DataTable row.

How do I install Unreal Enum and Struct Editor in Claude Code?

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

How do I install Unreal Enum and Struct Editor in Codex?

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

Can I use Unreal Enum and Struct Editor 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 enum-struct -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/enum-struct, .gemini/skills/enum-struct, .github/skills/enum-struct and .opencode/skills/enum-struct in your project.

What does Unreal Enum and Struct Editor need to run?

SKILL.md names no scripts, command-line tools or credentials: Unreal Enum and Struct Editor is instructions for the agent only. Our summary lists: Unreal Engine with the EnumStructService available; Python.

Does Unreal Enum and Struct Editor 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 Enum and Struct Editor 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 Enum and Struct Editor use?

Unreal Enum and Struct Editor 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 Enum and Struct Editor use?

About 2.3k tokens (SKILL.md is roughly 9.4k 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 Enum and Struct Editor?

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

Who maintains Unreal Enum and Struct Editor?

kevinpbuckley (a GitHub user) maintains it in kevinpbuckley/VibeUE, which has 717 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 1, 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.