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).
editor.blueprint.getComments
Lists all comment boxes in a Blueprint, optionally filtered to a specific graph. Returns full details including position, size, style, and contained node GUIDs.
Parameters: asset_path (string, required), graph_name (string, optional -- defaults to all graphs).
Returns: count (number), comments (array of {comment_id, text, graph_name, x, y, width, height, font_size, move_mode, color, node_ids}).
{ "jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.getComments", "params": { "asset_path": "/Game/Blueprints/BP_Hero" } } editor.blueprint.removeComment
Removes a comment box from a Blueprint graph by GUID.
Parameters: asset_path (string, required), comment_id (string, required), graph_name (string, optional -- defaults to EventGraph).
Returns: success (bool), comment_id (string).
{
"jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.removeComment",
"params": { "asset_path": "/Game/Blueprints/BP_Hero", "comment_id": "F1A2B3C4-..." }
} editor.blueprint.autoGroup
Automatically groups nodes into labeled, color-coded comment boxes. By default uses flow-aware grouping that walks execution flow chains from event/entry nodes and attaches data-only satellite nodes to their single connected chain, falling back to BFS connected components for orphan subgraphs. Each group is labeled by dominant node type (Event, Branch Logic, Function Calls, Variables, Timeline, Spawn, Cast, Struct, Delegates, Macro, or Nodes) and colored from a customer-editable config file (Config/LayoutColors.json). Set use_flow_grouping to false for legacy BFS-only behavior.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
asset_path | string | Yes | Blueprint asset path |
graph_name | string | No | Graph to group (defaults to EventGraph) |
padding | number | No | Padding around each group in pixels (default: 50) |
min_group_size | number | No | Minimum nodes to form a group (default: 2) |
use_flow_grouping | bool | No | Use flow-aware grouping (default: true). Set false for legacy BFS connected-component grouping. |
Returns: success (bool), group_count (number), groups (array of {comment_id, label, node_count, node_ids}).
{
"jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.autoGroup",
"params": { "asset_path": "/Game/Blueprints/BP_Hero", "min_group_size": 3 }
} Segment Capture & Apply
editor.blueprint.captureSegment
Captures a set of nodes as a portable segment (dual-format: JSON + UE export text).
Parameters: asset_path (string, required), graph_name (string, optional -- defaults to EventGraph), node_ids (array, required).
Returns: success (bool), node_count (number), connection_count (number), segment_json (object -- v2 format: {version, node_count, connection_count, nodes, connections}, with per-node properties and per-pin default_value/sub_type), ue_export_text (string -- UE clipboard export for applySegment).
{
"jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.captureSegment",
"params": { "asset_path": "/Game/Blueprints/BP_Hero", "node_ids": ["A1B2C3D4-...", "E5F6G7H8-..."] }
} editor.blueprint.applySegment
Imports a previously captured segment into a Blueprint graph at a target position.
Parameters: asset_path (string, required), graph_name (string, optional -- defaults to EventGraph), segment_data (object, required*) -- object containing ue_export_text field, ue_export_text (string, required*) -- top-level alternative to segment_data, target_x (number, optional -- default 0), target_y (number, optional -- default 0). *Either segment_data or top-level ue_export_text is required.
Returns: success (bool), node_count (number), created_nodes (array of {node_id, class, title, x, y}), offset_x (number), offset_y (number).
{
"jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.applySegment",
"params": { "asset_path": "/Game/Blueprints/BP_Enemy", "segment_data": { "ue_export_text": "Begin Object Class=..." }, "target_x": 1000, "target_y": 500 }
} editor.blueprint.getSegmentInfo
Analyzes a captured segment JSON, returning class distribution, pin types, complexity, and suggested tags/category.
Parameters: segment_json (object, required*) -- the segment JSON from captureSegment, segment_data (object, required*) -- object containing segment_json field. *Either top-level segment_json or segment_data with nested segment_json is required.
Returns: success (bool), node_count, connection_count, total_pins, exec_pins, data_pins (numbers), complexity (string: "simple", "moderate", or "complex"), connection_ratio (number), bounding_box ({width, height}), node_classes (object, class name to count), pin_types (object, pin type to count), suggested_tags (array of strings), suggested_category (string).
{
"jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.getSegmentInfo",
"params": { "segment_json": { "version": 2, "nodes": [], "connections": [] } }
} Blueprint Portability
editor.blueprint.bundleBlueprint
Captures an entire Blueprint as a portable bundle (metadata, variables, functions, components, graphs with v2 segment JSON, and UE export text).
Parameters: blueprint (string, required) -- Blueprint asset path (e.g. "/Game/Blueprints/BP_Hero").
Returns: success (bool), blueprint (string), bundle (object), variable_count, function_count, graph_count, component_count (numbers). Bundle shape: bundle_version (number), metadata ({class_name, parent_class, interfaces}), variables (array of {name, type, default_value, category, flags, template_param}), functions (array of {name, inputs, outputs}), components (array of {name, component_class, parent, children}), graphs (array of {name, graph_class, segment_json}), ue_export_text (string).
{
"jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.bundleBlueprint",
"params": { "blueprint": "/Game/Blueprints/BP_Hero" }
} editor.blueprint.applyBundle
Creates a new Blueprint from a bundle, recreating variables, functions, and importing graph nodes.
Parameters: target (string, required) -- target asset path for the new Blueprint, bundle (object, required) -- bundle object from bundleBlueprint, overwrite (bool, optional -- default false) -- if true, replace existing Blueprint at target path.
Returns: success (bool), asset_path (string), name (string), parent_class (string), status (string -- compile status), variable_count (number), function_count (number).
{
"jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.applyBundle",
"params": { "target": "/Game/Blueprints/BP_HeroClone", "bundle": { "bundle_version": 1 } }
} editor.blueprint.instantiateTemplate
Creates a new Blueprint from a bundle and overrides template parameter values.
Parameters: bundle (object, required), target (string, required), parameters (object, required) -- maps variable names to new default values.
Returns: success (bool), asset_path (string), status (string), applied_parameters (array of variable names that were overridden), skipped_parameters (array of parameter names that did not match any variable), variable_count (number).
{
"jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.instantiateTemplate",
"params": { "target": "/Game/Blueprints/BP_HeroTank", "bundle": { "bundle_version": 1 }, "parameters": { "MaxHealth": "500.0", "MoveSpeed": "200.0" } }
} editor.blueprint.listTemplateParams
Scans a bundle for variables marked as template parameters and returns their names, types, and defaults.
Parameters: bundle (object, required) -- bundle object from bundleBlueprint.
Returns: success (bool), count (number), template_params (array of {name, type, default_value, category}).
{
"jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.listTemplateParams",
"params": { "bundle": { "bundle_version": 1 } }
} editor.blueprint.validateBundle
Validates a bundle structure, checking for required fields, resolvable types, and loadable parent classes.
Parameters: bundle (object, required) -- bundle object to validate.
Returns: valid (bool -- true if no errors), errors (array of error strings -- blocking issues), warnings (array of warning strings -- non-blocking issues).
{
"jsonrpc": "2.0", "id": 1, "method": "editor.blueprint.validateBundle",
"params": { "bundle": { "bundle_version": 1, "metadata": { "parent_class": "/Script/Engine.Actor" }, "variables": [], "graphs": [] } }
}