Graph Layout
The same way Theming makes the panel’s look yours, the auto-layout spacing is yours to tune. Every graph Blueprint AI lays out — EQS, Behavior Trees, Animation, Control Rig, Niagara scripts, Materials, MetaSounds, PCG, and Camera rigs — shares two parameters you can set per call or once for the whole project.
The two knobs
Section titled “The two knobs”| Parameter | Axis |
|---|---|
column_spacing | Gap along the layout’s primary axis (the signal-flow / depth direction) |
row_spacing | Gap along the cross axis |
Both are plain distances in graph units. Leave one at 0 (or omit it) and that axis falls through to the next level of configuration below.
Resolution order
Section titled “Resolution order”For each axis, the effective spacing is the first of:
- The op’s own
column_spacing/row_spacing, when greater than0. - A project layout-config file — an op-specific entry, otherwise a
"*"wildcard that applies to every layout op. - The engine default for that op (table below).
Project config file
Section titled “Project config file”Drop a JSON file at <Project>/Config/BlueprintAILayout.json to space every graph the way your team prefers — commit it and everyone’s layouts match:
{ "*": { "column_spacing": 400, "row_spacing": 220 }, "layout_eqs_query": { "column_spacing": 350 }}- A
"*"entry applies to every layout op; an op-specific entry overrides the wildcard for that op, per axis. - In the example, every graph lays out at
400 / 220— except EQS queries, whose columns are350wide (their rows still inherit the wildcard’s220). - Point the
BLUEPRINTAI_LAYOUT_CONFIGenvironment variable at any path to override the project file (handy in CI).
Per-call override
Section titled “Per-call override”Any op can still override the resolved spacing inline — this always wins:
{ "op": "layout_eqs_query", "asset": "/Game/AI/EQS_FindCover", "column_spacing": 500, "row_spacing": 260 }Or just ask the AI: “lay out EQS_FindCover with wider columns.”
Engine defaults
Section titled “Engine defaults”When nothing overrides them, each op uses these defaults (column / row):
| Op | Domain | Default |
|---|---|---|
layout_eqs_query | EQS | 300 / 150 |
layout_behavior_tree | Behavior Trees | 300 / 200 |
layout_anim_graph | Animation | 350 / 180 |
layout_control_rig_graph | Control Rig | 350 / 180 |
layout_niagara_script_graph | Niagara | 350 / 180 |
layout_expressions | Materials | 300 / 180 |
layout_meta_sound_graph | MetaSounds | 420 / 190 |
layout_pcg_graph | PCG | 320 / 180 |
layout_camera_rig | Cameras | 320 / 170 |