From unreal-tools
Read, understand, and safely edit Unreal Engine .uasset / .umap files. USE THIS SKILL whenever the user mentions a .uasset file, a Blueprint (BP_* / *_BP), a DataTable (DT_* / *_DT), a Widget Blueprint (WBP_* / *_WBP), an Unreal map (.umap), a /Game/... asset path, or anything inside an Unreal project's Content/ folder. Also use when .uasset or .umap files appear in git diffs, when the user asks "what does this asset do", when you see Blueprint class names in C++ headers, or when an Unreal project (.uproject) is present in the working directory. NEVER attempt to hand-edit .uasset files with Edit/Write — they are binary and will be corrupted. Always go through the tools in this skill.
How this skill is triggered — by the user, by Claude, or both
Slash command
/unreal-tools:unreal-assetsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A skill for reading and editing Unreal Engine binary assets (`.uasset`, `.umap`) without corrupting them. Works on any Unreal project on this machine.
references/blueprints.mdreferences/datatables.mdreferences/setup.mdreferences/uasset-format.mdreferences/workflow.mdscripts/inspect.pyscripts/run_ue.shscripts/ue_scripts/_common.pyscripts/ue_scripts/dump_bp.pyscripts/ue_scripts/dump_dt.pyscripts/ue_scripts/dump_graph.pyscripts/ue_scripts/edit_bp.pyscripts/ue_scripts/edit_dt.pyscripts/ue_scripts/smoke.pyA skill for reading and editing Unreal Engine binary assets (.uasset, .umap) without corrupting them. Works on any Unreal project on this machine.
Two tiers of tooling, picked per task:
| Tier | Tool | Cost | Use when |
|---|---|---|---|
| 1. Fast | scripts/inspect.py (stdlib Python) | ~50 ms, no UE needed | Surface-level questions: what type is this? what does it reference? |
| 2. Deep | scripts/run_ue.sh <uproject> <ue_script> [args] — runs Python inside headless Unreal Editor | ~30–60 s cold start, ~5 s warm | Need the real parent class, variables, components, DataTable rows; any kind of edit |
Tier 2 is authoritative because it uses Unreal's own APIs (unreal.EditorAssetLibrary, unreal.Blueprint, unreal.DataTable, etc.). It requires the Python Editor Script Plugin to be enabled in the UE editor — see references/setup.md if smoke tests fail.
Triggers — if any of these apply, use the skill:
.uasset or .umap/Game/Bearships/App/BearshipsController_BP.uproject file is in the working directory and the task touches contentgit status / git diff shows .uasset / .umap changes*_BP, BP_*, *_C in logs)Edit or Write a .uasset or .umap file directly. They are binary — you will corrupt them. Editing happens only through Tier 2 (UE Python).Read a .uasset file as text. The output is garbage and wastes context. Use inspect.py first.references/workflow.md for the commit-first rule and why.references/blueprints.md.User mentions a .uasset or /Game/... asset
│
├─ Question is "what is this / what does it reference / what's its class?"
│ → Tier 1: python3 <skill>/scripts/inspect.py <path>
│
├─ Question is about a Blueprint's variables / components / parent class
│ → Tier 2: run_ue.sh <uproject> ue_scripts/dump_bp.py /Game/<path>
│
├─ Question is about a Blueprint's graph logic ("what does this function do?",
│ "why does X call Y?", "what's the control flow here?")
│ → Tier 2: run_ue.sh <uproject> ue_scripts/dump_graph.py /Game/<path> [GraphName]
│ → Requires ClaudeUnrealBridge UE plugin. Scope with a graph name on big BPs.
│
├─ Question is about a DataTable's rows
│ → Tier 2: run_ue.sh <uproject> ue_scripts/dump_dt.py /Game/<path>
│
├─ Need to edit a DataTable (add/update/delete rows)
│ → Build JSON patch → run_ue.sh ... ue_scripts/edit_dt.py /Game/<path> <patch.json>
│ → See references/datatables.md for patch schema
│
├─ Need to edit a Blueprint (var default, parent class, component)
│ → run_ue.sh ... ue_scripts/edit_bp.py /Game/<path> <op.json>
│ → Scope is LIMITED (no graph edits). See references/blueprints.md.
│
└─ Asset type not yet covered (Widget, Material, Map, …)
→ Fall back to Tier 1 for metadata. Tell the user what's missing and
offer to extend the skill by adding a new ue_scripts/dump_<type>.py.
~/.claude/skills/unreal-assets/ (symlink → ~/Developer/claude-unreal-tools/skills/unreal-assets/)/Users/Shared/Epic Games/UE_5.7/Engine/Binaries/Mac/UnrealEditor.app/Contents/MacOS/UnrealEditor — override by setting UE_EDITOR env var.Unreal scripts take /Game/... paths, not filesystem paths. Rules:
Content/Bearships/App/BearshipsController_BP.uasset → /Game/Bearships/App/BearshipsController_BP.uasset / .umap extension in the UE path.inspect.py accepts filesystem paths. Tier 2 scripts accept /Game/... paths.
python3 ~/.claude/skills/unreal-assets/scripts/inspect.py \
Content/Bearships/App/BearshipsController_BP.uasset
Returns JSON with the file's class names, imports (things it depends on), and exports (things it defines). Good for 90% of "what is this?" questions.
~/.claude/skills/unreal-assets/scripts/run_ue.sh \
./BearGame.uproject \
~/.claude/skills/unreal-assets/scripts/ue_scripts/dump_bp.py \
/Game/Bearships/App/BearshipsController_BP
~/.claude/skills/unreal-assets/scripts/run_ue.sh \
./BearGame.uproject \
~/.claude/skills/unreal-assets/scripts/ue_scripts/dump_graph.py \
/Game/Bearships/Systems/Bears/BearBase_BP TraceForItems
Pass a specific graph name (like TraceForItems or EventGraph) to scope big BPs. Omit to dump every graph. Requires the ClaudeUnrealBridge UE plugin. Output includes full control-flow (exec) and data-flow edges, with node titles and semantic references — enough to reconstruct what the graph actually does.
~/.claude/skills/unreal-assets/scripts/run_ue.sh \
./BearGame.uproject \
~/.claude/skills/unreal-assets/scripts/ue_scripts/dump_dt.py \
/Game/Bearships/Systems/Bears/Customization/SpeciesTypes
references/datatables.md for schema).edit_dt.py /Game/<dt> /tmp/patch.json.dump_dt.py and diff to verify.git status should show the DT's .uasset modified — commit it.~/.claude/skills/unreal-assets/scripts/run_ue.sh \
./BearGame.uproject \
~/.claude/skills/unreal-assets/scripts/ue_scripts/smoke.py
Expected output: {"ok": true, "engine": "5.7.x", "project": "BearGame"}. If it fails, see references/setup.md.
Deeper material — load on demand, don't inline into SKILL.md:
references/blueprints.md — what's readable/editable on a Blueprint, 5.7 API caveats, the graph-surgery limitation.references/datatables.md — row-struct model, discovering the struct class, patch schema.references/uasset-format.md — primer on the binary format Claude needs for interpreting inspect.py output.references/workflow.md — safety rules: commit-first, redirectors, when to defer to human.references/setup.md — one-time setup, enabling Python Editor Script Plugin, troubleshooting.Support for a new asset type (e.g. Widgets):
scripts/ue_scripts/dump_wbp.py mirroring dump_bp.py.references/widgets.md for the per-type detail..claude-plugin/plugin.json.No changes needed to inspect.py or run_ue.sh — they are asset-type-agnostic.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
npx claudepluginhub august-batista/claude-unreal-bridge-editor