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).