Unreal Blueprint Analyzer
Read-only analysis of Blueprint binary assets in any Unreal Engine project. Treat .uasset, .umap, and similar Unreal assets as binary source files; never patch them in place.
Core rules
- Do not edit
.uasset, .umap, .navmesh, or other Unreal binary assets directly.
- Separate confirmed fact from inference. Label evidence sources as source, docs, references, binary strings, or editor exports.
- Prefer the most reliable source available: official editor exports, Commandlets, user-provided screenshots, or JSON.
- If the user asks to modify a Blueprint, give safe editor steps or a scriptable editor/export pipeline, not a binary patch.
Parsing method
Prefer structured parsers over raw string grepping:
- CUE4Parse (the .NET library behind FModel) for
.uasset, .umap, and .pak package structure.
- UAssetAPI for Blueprint Kismet bytecode and expression graphs.
- FModel as a ready-made viewer and exporter.
Fall back to python <skill>/scripts/extract_uasset_strings.py <asset> --json (or strings / PowerShell byte reads) when no structured parser is available.
Workflow
- Identify the asset path and type: Actor Blueprint, UI Widget, Behavior Tree Task, Data Asset, Map, or unknown.
- Find adjacent source, config, and docs: match the asset name or path to nearby C++, Blueprint nativization output, Python/Editor Utility, Verse, Lua, C#, plugin scripts, config files, data tables, or project scripting layers; search asset names, generated class names, parent classes, ClassPaths, component names, Widget names, event/function names, Delegates, RPC names, Gameplay Tags, Blackboard keys, Input Actions, Data Table rows, and config references; read
AGENTS.md, CONTEXT.md, README.md, design docs, plugin docs, or source comments if present.
- Extract clues without modifying the asset: prefer the built-in script
python <skill>/scripts/extract_uasset_strings.py <asset> --json; otherwise use strings, PowerShell byte reads, or editor exports.
- Classify the extracted clues: asset paths, ClassPaths, and parent classes; component names, Widget names, and exposed variables; function, event, and RPC names; Blackboard keys, Data Table names, tags, sockets, animation names, and referenced assets.
- Cross-validate clues against source, config, docs, and editor exports. Strings that appear only in the binary are weak evidence; clues that also appear in source, config, docs, or exports are stronger.
- Write a short report. When static analysis cannot prove execution flow, give a confidence level and concrete editor re-check points.
Sunset note
Blueprint is still a first-class authoring system in shipping UE5, but Epic has announced a gradual migration to Verse (UE6 early access expected Q4 2027, full by mid-2029). Treat Blueprint assets as long-lived but not evergreen; do not present this workflow as permanent.
Output format
Unless the user specifies otherwise, use this structure:
- Asset: path, inferred type, and related source/config/export paths.
- Purpose: what the Blueprint most likely does, with a confidence level.
- Evidence: grouped into confirmed source/doc evidence and binary-string inference.
- Runtime contracts: component names, Widget names, fields, Blackboard keys, RPCs, asset paths, and save/sync fields the runtime depends on.
- Risks / Unknowns: what static binary analysis cannot prove.
- Editor follow-up: specific items to re-check in the Blueprint editor, or safe manual changes.
Local command examples
python .\scripts\extract_uasset_strings.py <path-to-asset>.uasset --json
rg "BP_Door|Door_C|OpenDoor|Interact|BeginOverlap" Source Content Config Plugins docs
When a project uses a custom Unreal tech stack, follow that stack for adjacent code — do not presume a scripting language. For example: C++ classes in Source/, Editor Utility Python, Verse in UEFN projects, Lua in Oasis/PUBG Mobile UGC projects, C# in UnrealCLR-style integrations, plugin-defined Blueprint Libraries, or data-driven config.
1---2name: unreal-blueprint-analyzer3description: Read-only analysis of Unreal Engine Blueprint assets, including .uasset, .umap, Widget Blueprint, Animation Blueprint, Behavior Tree, Data Asset, and map assets. Use structured parsers (CUE4Parse, UAssetAPI, FModel), binary strings, editor exports, C++ or scripting source, project docs, config, and asset references to infer Blueprint purpose. Use when the user asks to parse, inspect, explain, reverse-read, or understand any Unreal Engine Blueprint or Blueprint-related asset.4---56# Unreal Blueprint Analyzer78Read-only analysis of Blueprint binary assets in any Unreal Engine project. Treat `.uasset`, `.umap`, and similar Unreal assets as binary source files; never patch them in place.910## Core rules1112- Do not edit `.uasset`, `.umap`, `.navmesh`, or other Unreal binary assets directly.13- Separate confirmed fact from inference. Label evidence sources as source, docs, references, binary strings, or editor exports.14- Prefer the most reliable source available: official editor exports, Commandlets, user-provided screenshots, or JSON.15- If the user asks to modify a Blueprint, give safe editor steps or a scriptable editor/export pipeline, not a binary patch.1617## Parsing method1819Prefer structured parsers over raw string grepping:2021- CUE4Parse (the .NET library behind FModel) for `.uasset`, `.umap`, and `.pak` package structure.22- UAssetAPI for Blueprint Kismet bytecode and expression graphs.23- FModel as a ready-made viewer and exporter.2425Fall back to `python <skill>/scripts/extract_uasset_strings.py <asset> --json` (or `strings` / PowerShell byte reads) when no structured parser is available.2627## Workflow28291. Identify the asset path and type: Actor Blueprint, UI Widget, Behavior Tree Task, Data Asset, Map, or unknown.302. Find adjacent source, config, and docs: match the asset name or path to nearby C++, Blueprint nativization output, Python/Editor Utility, Verse, Lua, C#, plugin scripts, config files, data tables, or project scripting layers; search asset names, generated class names, parent classes, ClassPaths, component names, Widget names, event/function names, Delegates, RPC names, Gameplay Tags, Blackboard keys, Input Actions, Data Table rows, and config references; read `AGENTS.md`, `CONTEXT.md`, `README.md`, design docs, plugin docs, or source comments if present.313. Extract clues without modifying the asset: prefer the built-in script `python <skill>/scripts/extract_uasset_strings.py <asset> --json`; otherwise use `strings`, PowerShell byte reads, or editor exports.324. Classify the extracted clues: asset paths, ClassPaths, and parent classes; component names, Widget names, and exposed variables; function, event, and RPC names; Blackboard keys, Data Table names, tags, sockets, animation names, and referenced assets.335. Cross-validate clues against source, config, docs, and editor exports. Strings that appear only in the binary are weak evidence; clues that also appear in source, config, docs, or exports are stronger.346. Write a short report. When static analysis cannot prove execution flow, give a confidence level and concrete editor re-check points.3536## Sunset note3738Blueprint is still a first-class authoring system in shipping UE5, but Epic has announced a gradual migration to Verse (UE6 early access expected Q4 2027, full by mid-2029). Treat Blueprint assets as long-lived but not evergreen; do not present this workflow as permanent.3940## Output format4142Unless the user specifies otherwise, use this structure:4344- Asset: path, inferred type, and related source/config/export paths.45- Purpose: what the Blueprint most likely does, with a confidence level.46- Evidence: grouped into confirmed source/doc evidence and binary-string inference.47- Runtime contracts: component names, Widget names, fields, Blackboard keys, RPCs, asset paths, and save/sync fields the runtime depends on.48- Risks / Unknowns: what static binary analysis cannot prove.49- Editor follow-up: specific items to re-check in the Blueprint editor, or safe manual changes.5051## Local command examples5253```powershell54python .\scripts\extract_uasset_strings.py <path-to-asset>.uasset --json55rg "BP_Door|Door_C|OpenDoor|Interact|BeginOverlap" Source Content Config Plugins docs56```5758When a project uses a custom Unreal tech stack, follow that stack for adjacent code — do not presume a scripting language. For example: C++ classes in `Source/`, Editor Utility Python, Verse in UEFN projects, Lua in Oasis/PUBG Mobile UGC projects, C# in UnrealCLR-style integrations, plugin-defined Blueprint Libraries, or data-driven config.