editor.blueprint

Blueprint asset creation, editing, and full graph management (93 methods)

← API Reference

Core

editor.blueprint.create

Creates a new Blueprint asset with a given parent class.

Parameters:

NameTypeRequiredDescription
pathstringYesContent directory (e.g. "/Game/Blueprints")
namestringYesBlueprint asset name
parent_classstringNoParent 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:

NameTypeRequiredDescription
asset_pathstringYesBlueprint asset path
namestringYesVariable name
typestringYesType: bool, byte, int, int64, float, double, real, name, string, text, vector, rotator, transform, color, object
default_valuestringNoDefault value
categorystringNoVariable 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:

NameTypeRequiredDescription
asset_pathstringYesBlueprint asset path
namestringYesVariable name
instance_editableboolNoEditable per-instance in the Details panel
blueprint_read_onlyboolNoRead-only in Blueprint graphs
save_gameboolNoIncluded in save game serialization
transientboolNoTransient (not serialized)
advanced_displayboolNoHidden under Advanced in Details panel
deprecatedboolNoMark variable as deprecated
interpboolNoExpose 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:

NameTypeRequiredDescription
asset_pathstringYesBlueprint asset path
graph_namestringYesTarget graph name
node_typestringYesSee supported types below
function_namestringConditionalRequired for CallFunction
variable_namestringConditionalRequired for VariableGet or VariableSet
event_namestringConditionalRequired for CustomEvent
target_classstringConditionalRequired for Cast
enum_namestringConditionalRequired for SwitchEnum
struct_namestringConditionalRequired for MakeStruct or BreakStruct
positionobjectNo{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}.


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:

NameTypeRequiredDescription
asset_pathstringYesBlueprint asset path
graph_namestringNoGraph to layout (defaults to EventGraph)
node_idsarrayNoNode GUID strings to layout (defaults to all)
x_spacingnumberNoHorizontal spacing between layers (default: 250)
y_spacingnumberNoVertical spacing between nodes (default: 100)
snap_to_gridnumberNoGrid 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:

NameTypeRequiredDescription
asset_pathstringYesBlueprint asset path
textstringYesComment text
graph_namestringNoGraph name (defaults to EventGraph)
node_idsarrayNoNode GUIDs to enclose (auto-computes bounds)
xnumberNoX position (default: 0, ignored if node_ids provided)
ynumberNoY position (default: 0)
widthnumberNoWidth in pixels (default: 400)
heightnumberNoHeight in pixels (default: 200)
paddingnumberNoPadding around enclosed nodes (default: 50)
colorobjectNo{r, g, b, a} floats 0-1 (default: white 0.4 alpha)
font_sizenumberNoFont size (default: 18, clamped 1-1000)
move_modestringNo"group" (default) or "no_group"
detailsstringNoAdditional 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:

NameTypeRequiredDescription
asset_pathstringYesBlueprint asset path
graph_namestringNoGraph to group (defaults to EventGraph)
paddingnumberNoPadding around each group in pixels (default: 50)
min_group_sizenumberNoMinimum nodes to form a group (default: 2)
use_flow_groupingboolNoUse 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": [] } }
}