DOCUMENTATION

Cooked Projects

MifBridge works on cooked projects, meaning games shipped as paks where the editor-only data has been stripped. It treats that as a property of the content to report rather than an error to hide: when something is cooked, the answer says so and names what can still be done.

What cooking removes

Cooking strips each Blueprint's editor-only UBlueprint, graphs included. Only the generated class ships. So a cooked Blueprint has no graphs to read or edit. That is the nature of the asset, not a limitation of the bridge.

The graph-reading endpoints (list_graphs, list_nodes, find_nodes) say so explicitly on a cooked Blueprint, instead of returning an empty list that would look like a Blueprint with no logic.

What works on cooked content

  • Describing packages. describe_package takes a /Game/ path and lists the objects a package contains, their classes, and whether it is cooked. It works even when the Blueprint graphs are gone.
  • Material parameters. Material parameters can be read on a cooked game's materials. The material endpoints refuse, rather than crash, on a cooked material they cannot safely change.
  • The class hierarchy. The panel's INHERITANCE view groups every Blueprint under the native class it derives from, using asset-registry tags. It loads no assets at all, which matters on cooked content, where loading everything to ask for its parent class can take the editor down.
  • Reading project structure. Dependency graphs and asset distribution come from the asset registry, and they report both a cap and the true total when a result is bounded.

Writes that would crash are refused

Some ordinary edits are fatal on stripped content. A cooked static mesh can keep its build settings but lose the editable mesh data a rebuild needs, and any property write triggers that rebuild. The engine then stops on an assertion, with no bridge frame on the stack.

MifBridge checks for that exact state before writing, and refuses with an explanation instead. Duplicating an asset is guarded the same way.

A cooked texture has no source image, and the engine's exporter stops the editor on one. From 1.2, export_asset refuses a cooked texture before any exporter runs, answering cooked and hasSourceImage: false, and names render_thumbnail, which renders it from its platform data.

Editing a cooked Blueprint

A cooked Blueprint cannot be edited in place, because the graphs it would need are gone. create_editable_child can mint an editable copy (sourceAsset, optional childPath, and a variant of child, sibling, uncooked, sibling_full or full). It needs an engine function that exists only in the engine build MifBridge was developed against, not in any stock Unreal release. On a stock engine it refuses and explains why, rather than failing half-way.

Reading a cooked Blueprint's logic needs a decompiler, and MifBridge does not ship one.

Assets loaded twice

Some modded or cooked assets load as two copies whose nodes share identical GUIDs. For those, pass graphId alongside nodeGuid, so the node is looked up in the right graph.

Where to go from here

  • MifBridge covers the calling conventions and the in-editor panel.
  • Safety and Write Modes covers what runs by default. Saving, which makes a change to a real asset permanent, is refused unless a person raises the write mode.