Skip to content

JSON Schema

BlueprintAI operations are JSON arrays. Each element is one operation object.

[
{
"op": "operation_name",
"param1": "value1",
"param2": "value2"
},
{
"op": "another_operation",
"param1": "value1"
}
]

Operations execute in order. If any operation fails validation, the entire plan is rejected before execution begins.

Most operations share these parameters:

ParameterTypeDescription
opstringOperation name (required)
pathstringContent Browser path (e.g. /Game/Characters)
namestringAsset name without extension
assetstringFull asset path (e.g. /Game/Characters/BP_Enemy)

Paths follow Unreal’s content path format:

/Game/Folder/SubFolder ← directory
/Game/Folder/SubFolder/BP_Enemy ← asset reference

/Game/ maps to your project’s Content/ directory. Plugin content uses /PluginName/.

Use the CLI to list all operations and their schemas:

Terminal window
python Plugins/BlueprintAI/Scripts/cli.py schema
python Plugins/BlueprintAI/Scripts/cli.py schema create_blueprint

The schema command returns the full JSON Schema for each operation including required fields, allowed values, and descriptions.

Some domains support a higher-level declarative spec format that the AI decomposes into individual operations automatically. This is useful for complex assets like Behavior Trees:

[
{
"op": "apply_spec",
"asset_type": "behavior_tree",
"asset": "/Game/AI/BT_Enemy",
"spec": {
"blackboard": "/Game/AI/BB_Enemy",
"tree": {
"type": "Selector",
"children": [
{
"type": "Sequence",
"tasks": ["BTTask_MoveTo", "BTTask_Wait"]
}
]
}
}
}
]

When validation fails, BlueprintAI returns structured errors:

{
"status": "error",
"errors": [
{
"op_index": 0,
"op": "create_blueprint",
"field": "path",
"message": "Path must start with /Game/ or /PluginName/"
}
]
}

The AI uses these errors to correct and retry the plan automatically.