Export format
Every file is plain UTF-8 text, meant to be read by people and by language models. It is a readable view of the project, not a format that compiles back into Blueprints.
A Blueprint file
# WBP_Overlay_Confirm : WBP_Base
# /AdvancedFrameworkPro/AFS_UI/Utils/Overlay/Widgets/WBP_Overlay_Confirm
## declarations
widget WBP_Button_No : WBP_Button_Normal_C ; exposed as variable
widget WBP_Button_Yes : WBP_Button_Normal_C ; exposed as variable
dispatcher OnButtonClicked(Confirm: bool)
;; Fires when the confirmation overlay is answered.
## EventGraph
event WBP_Button_No.OnPressed(Button : WBP_Button)
;; Handler for the deny button.
Call On Button Clicked false
CloseWidget
- The first lines name the asset, its parent class and its package path; a
#line below them is the asset's description. ## declarationslists components or the widget tree, variables with types and defaults, and dispatchers.- Each graph follows under its own
##heading; collapsed graphs are written out as## EventGraph > Name. - An entry point starts a block:
event,function(with-> returns), orentryfor collapsed graphs and macros. A bound event is named after its component,Component.Event. - The body is one statement per line, indented by execution: branches as
if/else, sequences, loops, andon <pin>for nodes with several execution outputs. ;;is a description,;a comment. See Import descriptions.
codex.json
One JSON object:
| Key | Contents |
|---|---|
codex_version, generated, engine, project | What produced the file and when |
roots | The content roots that were walked |
assets | One object per Blueprint |
enums, structs | One object per user enum and struct |
Each asset carries package_path, mount_root, relative_path, asset, parent, blueprint_type,
description, implements, components, imports and members. Each member has kind (variable,
function, event, macro), name, params, returns, type, default, category, tooltip,
replication and access flags, meta (every metadata key), and inherited when the text comes from a
parent class or interface rather than the asset.
Comparing two exports
codex_diff.py, in the plugin's Content/Python/codeable_ai_editor_tools, compares two codex.json files and
writes a Markdown draft: assets added, removed or moved; parent and interface changes; members added,
removed or changed in signature (breaking changes first); enum entries and struct members; and how many
descriptions changed.
python codex_diff.py old/codex.json new/codex.json --out CHANGES.md
In the editor an assistant calls the same through CodexTools.diff_exports.