unreal-blueprint-analyzer

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Unreal Blueprint Analyzer

Unreal Blueprint 分析器

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.
对任意Unreal Engine项目中的Blueprint二进制资产进行只读分析。将
.uasset
.umap
及类似Unreal资产视为二进制源文件;切勿就地修补它们。

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.
  • 请勿直接编辑
    .uasset
    .umap
    .navmesh
    或其他Unreal二进制资产。
  • 将已确认的事实与推断内容区分开。将证据来源标记为源码、文档、引用、二进制字符串或编辑器导出内容。
  • 优先使用最可靠的可用来源:官方编辑器导出内容、Commandlets、用户提供的截图或JSON。
  • 如果用户要求修改Blueprint,请提供安全的编辑器操作步骤或可脚本化的编辑器/导出流程,而非二进制补丁。

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.
优先使用结构化解析器而非原始字符串匹配:
  • 使用CUE4Parse(FModel背后的.NET库)分析
    .uasset
    .umap
    .pak
    包结构。
  • 使用UAssetAPI分析Blueprint Kismet字节码和表达式图。
  • 使用FModel作为现成的查看器和导出工具。
当没有可用的结构化解析器时,退而使用
python <skill>/scripts/extract_uasset_strings.py <asset> --json
(或
strings
/PowerShell字节读取)。

Workflow

工作流程

  1. Identify the asset path and type: Actor Blueprint, UI Widget, Behavior Tree Task, Data Asset, Map, or unknown.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Write a short report. When static analysis cannot prove execution flow, give a confidence level and concrete editor re-check points.
  1. 识别资产路径和类型:Actor Blueprint、UI Widget、Behavior Tree Task、Data Asset、地图或未知类型。
  2. 查找关联的源码、配置和文档:将资产名称或路径与附近的C++代码、Blueprint原生输出、Python/编辑器实用工具、Verse、Lua、C#、插件脚本、配置文件、数据表或项目脚本层匹配;搜索资产名称、生成的类名、父类、ClassPaths、组件名称、Widget名称、事件/函数名称、委托、RPC名称、Gameplay Tags、黑板键、输入操作、数据表格行和配置引用;若存在则阅读
    AGENTS.md
    CONTEXT.md
    README.md
    、设计文档、插件文档或源码注释。
  3. 在不修改资产的前提下提取线索:优先使用内置脚本
    python <skill>/scripts/extract_uasset_strings.py <asset> --json
    ;否则使用
    strings
    、PowerShell字节读取或编辑器导出内容。
  4. 对提取的线索进行分类:资产路径、ClassPaths和父类;组件名称、Widget名称和暴露变量;函数、事件和RPC名称;黑板键、数据表名称、标签、插槽、动画名称和引用的资产。
  5. 对照源码、配置、文档和编辑器导出内容交叉验证线索。仅出现在二进制中的字符串属于弱证据;同时出现在源码、配置、文档或导出内容中的线索可信度更高。
  6. 撰写简短报告。当静态分析无法证明执行流程时,给出置信度和具体的编辑器复查要点。

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.
Blueprint仍是UE5正式版本中的一等创作系统,但Epic已宣布将逐步迁移至Verse(UE6抢先体验版预计2027年第四季度推出,2029年年中全面完成迁移)。请将Blueprint资产视为长期存在但非永久有效的资产;切勿将此工作流程表述为永久方案。

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.
除非用户另有指定,否则使用以下结构:
  • 资产:路径、推断类型及相关的源码/配置/导出路径。
  • 用途:该Blueprint最可能的功能,并标注置信度。
  • 证据:分为已确认的源码/文档证据和二进制字符串推断两部分。
  • 运行时约定:运行时依赖的组件名称、Widget名称、字段、黑板键、RPC、资产路径以及保存/同步字段。
  • 风险/未知项:静态二进制分析无法证明的内容。
  • 编辑器后续操作:需在Blueprint编辑器中复查的具体项,或安全的手动修改建议。

Local command examples

本地命令示例

powershell
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.
powershell
python .\scripts\extract_uasset_strings.py <path-to-asset>.uasset --json
rg "BP_Door|Door_C|OpenDoor|Interact|BeginOverlap" Source Content Config Plugins docs
当项目使用自定义Unreal技术栈时,请遵循该栈处理关联代码——不要预设脚本语言。例如:
Source/
中的C++类、编辑器实用工具Python、UEFN项目中的Verse、Oasis/PUBG Mobile UGC项目中的Lua、UnrealCLR风格集成中的C#、插件定义的Blueprint Libraries,或数据驱动的配置文件。