editor.blueprint
Blueprint asset creation, editing, and full graph management (93 methods)
Core
editor.blueprint.create
Creates a new Blueprint asset with a given parent class.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
path | string | Yes | Content directory (e.g. "/Game/Blueprints") |
name | string | Yes | Blueprint asset name |
parent_class | string | No | Parent class name (default "Actor") |
Returns: success (bool), asset_path (string), name (string), parent_class (string), generated_class (string).
Example Request:
{
"jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.create",
"params": { "path": "/Game/Blueprints", "name": "BP_Hero", "parent_class": "Character" }
} editor.blueprint.open
Opens a Blueprint asset in the Blueprint editor.
Parameters: asset_path (string, required).
Returns: success (bool), asset_path (string).
editor.blueprint.compile
Compiles a Blueprint and returns the compile status.
Parameters: asset_path (string, required).
Returns: success (bool), status (string: UpToDate, UpToDateWithWarnings, Dirty, Error, BeingCreated, Unknown), asset_path (string).
editor.blueprint.getInfo
Returns comprehensive information about a Blueprint.
Parameters: asset_path (string, required).
Returns: asset_path, parent_class, generated_class, blueprint_type (Normal/Const/MacroLibrary/Interface/LevelScript/FunctionLibrary/Unknown), status, graph_names (array), variable_count, function_count.
editor.blueprint.getCompileErrors
Compiles a Blueprint and returns detailed compilation messages including errors and warnings.
Parameters: asset_path (string, required).
Returns: status (string), error_count (number), warning_count (number), messages (array of {message, severity}).
Variables
editor.blueprint.addVariable
Adds a new member variable to a Blueprint.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Blueprint asset path |
name | string | Yes | Variable name |
type | string | Yes | Type: bool, byte, int, int64, float, double, real, name, string, text, vector, rotator, transform, color, object |
default_value | string | No | Default value |
category | string | No | Variable category |
Returns: success (bool), name (string), type (string), category (string).
Example Request:
{
"jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.addVariable",
"params": { "asset_path": "/Game/Blueprints/BP_Hero", "name": "Health", "type": "float", "default_value": "100.0", "category": "Stats" }
} editor.blueprint.getVariables
Lists all member variables in a Blueprint.
Parameters: asset_path (string, required).
Returns: Array of {name, type, category, default_value, is_editable}.
editor.blueprint.removeVariable
Removes a member variable from a Blueprint.
Parameters: asset_path (string, required), name (string, required).
Returns: success (bool), name (string).
editor.blueprint.setVariableDefault
Sets the default value of a member variable in a Blueprint.
Parameters: asset_path (string, required), name (string, required), value (string, required -- e.g. "100.0", "true", "(X=1,Y=2,Z=3)").
Returns: success (bool), name (string), value (string).
Variable Metadata
editor.blueprint.renameVariable
Renames a member variable in a Blueprint. Updates all references in graphs.
Parameters: asset_path (string, required), old_name (string, required), new_name (string, required).
Returns: success (bool), old_name (string), new_name (string).
editor.blueprint.setVariableFlags
Sets property flags on a member variable. All flag fields are optional -- only provided flags are changed.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Blueprint asset path |
name | string | Yes | Variable name |
instance_editable | bool | No | Editable per-instance in the Details panel |
blueprint_read_only | bool | No | Read-only in Blueprint graphs |
save_game | bool | No | Included in save game serialization |
transient | bool | No | Transient (not serialized) |
advanced_display | bool | No | Hidden under Advanced in Details panel |
deprecated | bool | No | Mark variable as deprecated |
interp | bool | No | Expose for animation/Sequencer interpolation |
Returns: success (bool), name (string).
editor.blueprint.setVariableCategory
Sets the category for a member variable (used for grouping in the Details panel).
Parameters: asset_path (string, required), name (string, required), category (string, required).
Returns: success (bool), name (string), category (string).
editor.blueprint.setVariableMetadata
Sets a custom metadata key/value pair on a member variable.
Parameters: asset_path (string, required), name (string, required), key (string, required), value (string, required).
Returns: success (bool), name, key, value.
editor.blueprint.changeVariableType
Changes the type of an existing member variable.
Parameters: asset_path (string, required), name (string, required), new_type (string, required).
Returns: success (bool), name (string), new_type (string).
editor.blueprint.reorderVariable
Moves a variable before or after another variable in the variable list.
Parameters: asset_path (string, required), name (string, required), target_name (string, required), direction (string, optional -- "before" (default) or "after").
Returns: success (bool), name, target_name, direction.
editor.blueprint.isVariableUsed
Checks whether a member variable is referenced anywhere in the Blueprint graphs.
Parameters: asset_path (string, required), name (string, required).
Returns: name (string), is_used (bool).
editor.blueprint.getVariableDetails
Returns comprehensive details for a single member variable, including all flags and metadata.
Parameters: asset_path (string, required), name (string, required).
Returns: name, type, default_value, guid, category, instance_editable, blueprint_read_only, save_game, transient, advanced_display, deprecated, interp, is_used, rep_notify_func.
editor.blueprint.duplicateVariable
Duplicates a member variable. The new name is auto-generated by the engine.
Parameters: asset_path (string, required), name (string, required).
Returns: success (bool), source_name (string), new_name (string).
Functions
editor.blueprint.addFunction
Creates a new function graph in a Blueprint.
Parameters: asset_path (string, required), name (string, required).
Returns: success (bool), function_name (string), graph_name (string).
editor.blueprint.getFunctions
Lists all function graphs in a Blueprint.
Parameters: asset_path (string, required).
Returns: Array of {name, graph_name, is_pure, has_return, access_specifier (Public/Private/Protected)}.
editor.blueprint.removeFunction
Removes a function graph from a Blueprint.
Parameters: asset_path (string, required), name (string, required).
Returns: success (bool), name (string).
editor.blueprint.addNode
Spawns a K2 node of a supported type into a Blueprint graph.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Blueprint asset path |
graph_name | string | Yes | Target graph name |
node_type | string | Yes | See supported types below |
function_name | string | Conditional | Required for CallFunction |
variable_name | string | Conditional | Required for VariableGet or VariableSet |
event_name | string | Conditional | Required for CustomEvent |
target_class | string | Conditional | Required for Cast |
enum_name | string | Conditional | Required for SwitchEnum |
struct_name | string | Conditional | Required for MakeStruct or BreakStruct |
position | object | No | {x, y} node position (default 0,0) |
Supported node_type values: CallFunction, VariableGet, VariableSet, CustomEvent, IfThenElse/Branch, Sequence, SwitchInt/SwitchInteger, SwitchString, SwitchEnum, Select, Cast/CastTo, Delay, SpawnActor/SpawnActorFromClass, MakeStruct, BreakStruct, CreateDelegate, AddDelegate, RemoveDelegate, Reroute/Knot.
Returns: node_id (string GUID), title (string), class (string), pins (array of {name, direction, type}).
Example Request:
{
"jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.addNode",
"params": { "asset_path": "/Game/Blueprints/BP_Hero", "graph_name": "EventGraph", "node_type": "CallFunction", "function_name": "PrintString", "position": { "x": 300, "y": 0 } }
} editor.blueprint.addEventNode
Spawns an event override node (e.g. BeginPlay, Tick) into a Blueprint's event graph.
Parameters: asset_path (string, required), event_name (string, required -- BeginPlay, Tick, EndPlay, ActorBeginOverlap, ActorEndOverlap, AnyDamage, Destroyed, ActorHit), graph_name (string, optional), position (object, optional).
Returns: node_id, title, class, pins (array), event_name.
editor.blueprint.addInterface
Implements an interface on a Blueprint.
Parameters: asset_path (string, required), interface_name (string, required).
Returns: success (bool), interface_name (string), interface_path (string).
editor.blueprint.getInterfaces
Lists all interfaces implemented by a Blueprint.
Parameters: asset_path (string, required).
Returns: Array of {name, path, functions (array)}.
editor.blueprint.removeInterface
Removes an implemented interface from a Blueprint.
Parameters: asset_path (string, required), interface_name (string, required), preserve_functions (bool, optional -- default false).
Returns: success (bool), interface_name (string), functions_preserved (bool).
Function Parameters & Metadata
editor.blueprint.addFunctionInput
Adds an input parameter to an existing function graph.
Parameters: asset_path (string, required), function_name (string, required), pin_name (string, required), pin_type (string, required), default_value (string, optional).
Returns: success (bool), pin_name, pin_type, direction ("Input").
editor.blueprint.addFunctionOutput
Adds an output parameter (return value pin) to an existing function graph.
Parameters: asset_path (string, required), function_name (string, required), pin_name (string, required), pin_type (string, required).
Returns: success (bool), pin_name, pin_type, direction ("Output").
editor.blueprint.removeFunctionPin
Removes a user-defined input or output pin from a function.
Parameters: asset_path (string, required), function_name (string, required), pin_name (string, required).
Returns: success (bool), pin_name (string).
editor.blueprint.setFunctionFlags
Sets flags on a function (purity, access, const, call-in-editor). All flag fields are optional.
Parameters: asset_path (string, required), function_name (string, required), pure (bool, optional), const (bool, optional), access (string, optional -- Public/Protected/Private), call_in_editor (bool, optional).
Returns: success (bool), function_name (string).
editor.blueprint.setFunctionCategory
Sets the category for a function.
Parameters: asset_path (string, required), function_name (string, required), category (string, required).
Returns: success (bool), function_name, category.
editor.blueprint.setFunctionDescription
Sets the tooltip/description for a function.
Parameters: asset_path (string, required), function_name (string, required), description (string, required).
Returns: success (bool), function_name, description.
editor.blueprint.getFunctionDetails
Returns comprehensive details for a function, including inputs, outputs, flags, and metadata.
Parameters: asset_path (string, required), function_name (string, required).
Returns: name, graph_name, node_count, is_pure, is_const, is_static, access, has_return, inputs (array of {name, type, default_value}), outputs (array of {name, type}), category, description, keywords, call_in_editor, is_deprecated, deprecation_message.
Event Dispatchers
editor.blueprint.addEventDispatcher
Adds a new event dispatcher (multicast delegate) to a Blueprint.
Parameters: asset_path (string, required), name (string, required).
Returns: success (bool), name (string).
editor.blueprint.removeEventDispatcher
Removes an event dispatcher from a Blueprint.
Parameters: asset_path (string, required), name (string, required).
Returns: success (bool), name (string).
editor.blueprint.getEventDispatchers
Lists all event dispatchers in a Blueprint, including their parameter pins.
Parameters: asset_path (string, required).
Returns: Array of {name, pins (array of {name, type})}.
editor.blueprint.addDispatcherPin
Adds a parameter pin to an event dispatcher's signature.
Parameters: asset_path (string, required), dispatcher_name (string, required), pin_name (string, required), pin_type (string, required).
Returns: success (bool), dispatcher_name, pin_name, pin_type.
editor.blueprint.removeDispatcherPin
Removes a parameter pin from an event dispatcher's signature.
Parameters: asset_path (string, required), dispatcher_name (string, required), pin_name (string, required).
Returns: success (bool), dispatcher_name, pin_name.
Timelines
editor.blueprint.addTimeline
Adds a new timeline component to a Blueprint.
Parameters: asset_path (string, required), name (string, required), length (number, optional), loop (bool, optional).
Returns: success (bool), name, length, loop.
editor.blueprint.removeTimeline
Removes a timeline from a Blueprint.
Parameters: asset_path (string, required), name (string, required).
Returns: success (bool), name (string).
editor.blueprint.getTimelines
Lists all timelines in a Blueprint with summary information.
Parameters: asset_path (string, required).
Returns: Array of {name, length, loop, autoplay, replicated, float_track_count, vector_track_count, color_track_count, event_track_count}.
editor.blueprint.renameTimeline
Renames a timeline in a Blueprint.
Parameters: asset_path (string, required), old_name (string, required), new_name (string, required).
Returns: success (bool), old_name, new_name.
editor.blueprint.setTimelineProperties
Sets properties on an existing timeline. All property fields are optional.
Parameters: asset_path (string, required), name (string, required), length (number, optional), loop (bool, optional), autoplay (bool, optional), replicated (bool, optional).
Returns: success (bool), name (string).
editor.blueprint.getTimelineDetails
Returns full details for a timeline, including all tracks.
Parameters: asset_path (string, required), name (string, required).
Returns: name, length, loop, autoplay, replicated, float_tracks (array of {name, key_count}), vector_tracks (array of {name}), event_tracks (array of {name}).
SCS Components
editor.blueprint.addComponent
Adds a component to the Blueprint's Simple Construction Script (SCS) component hierarchy.
Parameters: asset_path (string, required), component_class (string, required), name (string, required), parent (string, optional -- parent component variable name, default root).
Returns: success (bool), name, component_class.
editor.blueprint.removeComponent
Removes a component from the SCS hierarchy. Children are promoted to the removed component's parent.
Parameters: asset_path (string, required), name (string, required).
Returns: success (bool), name (string).
editor.blueprint.getComponents
Lists all components in the Blueprint's SCS hierarchy.
Parameters: asset_path (string, required).
Returns: Array of {name, component_class, parent, children (array)}.
editor.blueprint.reparentComponent
Moves a component to a new parent in the SCS hierarchy.
Parameters: asset_path (string, required), name (string, required), new_parent (string, required).
Returns: success (bool), name, new_parent.
editor.blueprint.renameComponent
Renames a component in the SCS hierarchy.
Parameters: asset_path (string, required), old_name (string, required), new_name (string, required).
Returns: success (bool), old_name, new_name.
editor.blueprint.setComponentProperty
Sets a property on a component's template (CDO). Uses ImportText to parse the value string.
Parameters: asset_path (string, required), name (string, required), property (string, required), value (string, required).
Returns: success (bool), name, property, value.
Local Variables
editor.blueprint.addLocalVariable
Adds a local variable to a function graph.
Parameters: asset_path (string, required), function_name (string, required), name (string, required), type (string, required), default_value (string, optional).
Returns: success (bool), name, type, function_name.
editor.blueprint.removeLocalVariable
Removes a local variable from a function graph.
Parameters: asset_path (string, required), function_name (string, required), name (string, required).
Returns: success (bool), name (string).
editor.blueprint.getLocalVariables
Lists all local variables in a function graph.
Parameters: asset_path (string, required), function_name (string, required).
Returns: Array of {name, type, default_value}.
editor.blueprint.renameLocalVariable
Renames a local variable in a function graph.
Parameters: asset_path (string, required), function_name (string, required), old_name (string, required), new_name (string, required).
Returns: success (bool), old_name, new_name.
editor.blueprint.changeLocalVariableType
Changes the type of a local variable in a function graph.
Parameters: asset_path (string, required), function_name (string, required), name (string, required), new_type (string, required).
Returns: success (bool), name, new_type.
Breakpoints & Debug
editor.blueprint.addBreakpoint
Adds a breakpoint to a node in a Blueprint graph.
Parameters: asset_path (string, required), graph_name (string, required), node_id (string, required).
Returns: success (bool), node_id, enabled (bool).
editor.blueprint.removeBreakpoint
Removes a breakpoint from a node.
Parameters: asset_path (string, required), graph_name (string, required), node_id (string, required).
Returns: success (bool), node_id (string).
editor.blueprint.toggleBreakpoint
Toggles a breakpoint on a node. If no breakpoint exists, creates one enabled. If one exists, toggles its enabled state.
Parameters: asset_path (string, required), graph_name (string, required), node_id (string, required).
Returns: success (bool), node_id, enabled (bool).
editor.blueprint.getBreakpoints
Lists all breakpoints across all graphs in a Blueprint.
Parameters: asset_path (string, required).
Returns: Array of {node_id, node_title, graph_name, enabled}.
editor.blueprint.clearBreakpoints
Removes all breakpoints from all graphs in a Blueprint.
Parameters: asset_path (string, required).
Returns: success (bool), removed_count (number).
editor.blueprint.getDebugInfo
Returns debug state information for a Blueprint.
Parameters: asset_path (string, required).
Returns: has_debug_object (bool), debug_object (string), compile_status (string).
Reparenting
editor.blueprint.reparent
Changes the parent class of a Blueprint.
Parameters: asset_path (string, required), new_parent_class (string, required).
Returns: success (bool), new_parent_class (string).
editor.blueprint.getParentChain
Returns the full parent class inheritance chain for a Blueprint.
Parameters: asset_path (string, required).
Returns: Array of {name, path} from immediate parent to UObject.
Macros
editor.blueprint.addMacro
Creates a new macro graph in a Blueprint.
Parameters: asset_path (string, required), name (string, required).
Returns: success (bool), name (string).
editor.blueprint.removeMacro
Removes a macro graph from a Blueprint.
Parameters: asset_path (string, required), name (string, required).
Returns: success (bool), name (string).
editor.blueprint.getMacros
Lists all macro graphs in a Blueprint.
Parameters: asset_path (string, required).
Returns: Array of {name, node_count}.
editor.blueprint.renameMacro
Renames a macro graph in a Blueprint.
Parameters: asset_path (string, required), old_name (string, required), new_name (string, required).
Returns: success (bool), old_name, new_name.
Graph Management
editor.blueprint.addGraph
Adds a new graph to a Blueprint.
Parameters: asset_path (string, required), name (string, required), type (string, optional -- "ubergraph" (default), "function", or "macro").
Returns: success (bool), name, type.
editor.blueprint.removeGraph
Removes a graph from a Blueprint.
Parameters: asset_path (string, required), name (string, required).
Returns: success (bool), name (string).
editor.blueprint.renameGraph
Renames a graph in a Blueprint.
Parameters: asset_path (string, required), old_name (string, required), new_name (string, required).
Returns: success (bool), old_name, new_name.
editor.blueprint.getGraphs
Lists all graphs in a Blueprint, organized by type.
Parameters: asset_path (string, required).
Returns: Array of {name, type (EventGraph/Function/Macro/Delegate), node_count}.
Search & References
editor.blueprint.search
Searches all graphs in a Blueprint for nodes matching a query string (case-insensitive).
Parameters: asset_path (string, required), query (string, required).
Returns: query, result_count, results (array of {graph_name, graph_type, node_id, node_title, node_class}).
editor.blueprint.findReferences
Finds all nodes that reference a specific variable or function by name.
Parameters: asset_path (string, required), name (string, required).
Returns: name, reference_count, references (array of {graph_name, node_id, type}).
editor.blueprint.findUnused
Finds all member variables not referenced in any graph.
Parameters: asset_path (string, required).
Returns: unused_count (number), unused_variables (array of {name, type}).
editor.blueprint.collapseToFunction
STUB -- Always returns error -32003. Collapsing selected nodes to a function requires an active Blueprint Editor window. Workaround: Use addFunction + addNode to create functions programmatically.
editor.blueprint.collapseToMacro
STUB -- Always returns error -32003. Collapsing selected nodes to a macro requires an active Blueprint Editor window. Workaround: Use addMacro + addNode to create macros programmatically.
Validation
editor.blueprint.getDependencies
Returns the dependencies of a Blueprint (parent class and implemented interfaces).
Parameters: asset_path (string, required).
Returns: Array of {name, type (ParentClass or Interface)}.
editor.blueprint.getDependents
Returns assets that depend on (reference) this Blueprint, using the Asset Registry.
Parameters: asset_path (string, required).
Returns: dependent_count (number), dependents (array of {name}).
editor.blueprint.validate
Performs comprehensive validation: compiles, checks for errors/warnings, identifies unused variables, and reports summary statistics.
Parameters: asset_path (string, required).
Returns: is_valid (bool), status, error_count, warning_count, issues (array of {message, severity}), unused_variables (array), variable_count, function_count, graph_count.
Auto-Layout & Routing
editor.blueprint.autoLayout
Automatically arranges nodes in a Blueprint graph using a Sugiyama-style layered layout algorithm.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Blueprint asset path |
graph_name | string | No | Graph to layout (defaults to EventGraph) |
node_ids | array | No | Node GUID strings to layout (defaults to all) |
x_spacing | number | No | Horizontal spacing between layers (default: 250) |
y_spacing | number | No | Vertical spacing between nodes (default: 100) |
snap_to_grid | number | No | Grid snap size in pixels (default: 16, 0 to disable) |
Returns: success (bool), node_count, layer_count, positions (array of {node_id, x, y, layer}).
editor.blueprint.autoRoute
Manages reroute (knot) nodes. Removes redundant passthrough knots and inserts new reroute nodes at midpoints for long-distance connections.
Parameters: asset_path (string, required), graph_name (string, optional), node_ids (array, optional), remove_unused_knots (bool, optional -- default true).
Returns: success (bool), knots_created, knots_removed, created_knot_ids (array), removed_knot_ids (array).
editor.blueprint.straightenConnections
Aligns connected nodes vertically by adjusting Y positions so execution flow pins line up horizontally.
Parameters: asset_path (string, required), graph_name (string, optional), node_ids (array, optional), pin_alignment (string, optional -- "output" (default) or "input").
Returns: success (bool), adjusted_count, adjustments (array of {node_id, old_y, new_y, delta}).
Comment Groups
editor.blueprint.addComment
Creates a comment box in a Blueprint graph. If node_ids are provided, auto-computes the bounding box to enclose those nodes with padding.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Blueprint asset path |
text | string | Yes | Comment text |
graph_name | string | No | Graph name (defaults to EventGraph) |
node_ids | array | No | Node GUIDs to enclose (auto-computes bounds) |
x | number | No | X position (default: 0, ignored if node_ids provided) |
y | number | No | Y position (default: 0) |
width | number | No | Width in pixels (default: 400) |
height | number | No | Height in pixels (default: 200) |
padding | number | No | Padding around enclosed nodes (default: 50) |
color | object | No | {r, g, b, a} floats 0-1 (default: white 0.4 alpha) |
font_size | number | No | Font size (default: 18, clamped 1-1000) |
move_mode | string | No | "group" (default) or "no_group" |
details | string | No | Additional detail text (tooltip) |
Returns: success (bool), comment_id (string GUID), x, y, width, height, contained_node_count.
editor.blueprint.updateComment
Updates properties of an existing comment box. Only provided fields are changed; omitted fields retain their current values.
Parameters: asset_path (string, required), comment_id (string, required), graph_name (string, optional), text (string, optional), x (number, optional), y (number, optional), width (number, optional), height (number, optional), font_size (number, optional), move_mode (string, optional), details (string, optional), color (object, optional), node_ids (array, optional).
Returns: success (bool), comment_id (string).