editor.graph

Node graph editing (Blueprint/Material graph nodes and connections)

← API Reference

editor.graph.getGraphs

Lists all UEdGraph objects owned by a given asset (Blueprint, Material, etc.).

Parameters:

NameTypeRequiredDescription
asset_pathstringYesPath to the asset

Returns:

NameTypeDescription
countnumberNumber of graphs
graphsarrayEach: {name, class, schema, node_count}
asset_pathstringAsset path

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.graph.getGraphs", "params": { "asset_path": "/Game/Blueprints/BP_Hero" } }

editor.graph.getNodes

Lists all nodes in a specific graph within an asset.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesPath to the asset
graph_namestringYesName of the graph

Returns:

NameTypeDescription
countnumberNumber of nodes
nodesarrayEach: {id, class, title, position: {x, y}, pin_count}
graph_namestringGraph name
asset_pathstringAsset path

Example Request:

{
  "jsonrpc": "2.0", "id": 1, "method": "editor.graph.getNodes",
  "params": { "asset_path": "/Game/Blueprints/BP_Hero", "graph_name": "EventGraph" }
}

editor.graph.getNodeDetails

Returns detailed information about a specific node including all pins with connection data.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesPath to the asset
graph_namestringYesName of the graph
node_idstringYesNode GUID

Returns:

NameTypeDescription
idstringNode GUID
classstringNode class name
titlestringNode display title
positionobject{x, y}
is_enabledboolWhether node is enabled
commentstringNode comment (if non-empty)
pinsarrayPin details with name, direction, type, connections
pin_countnumberNumber of pins

Example Request:

{
  "jsonrpc": "2.0", "id": 1, "method": "editor.graph.getNodeDetails",
  "params": { "asset_path": "/Game/Blueprints/BP_Hero", "graph_name": "EventGraph", "node_id": "A1B2C3D4-..." }
}

editor.graph.getPinInfo

Returns detailed information about a specific pin on a node.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesPath to the asset
graph_namestringYesName of the graph
node_idstringYesNode GUID
pin_namestringYesPin name

Returns: All pin fields (name, direction, type, sub_type, default_value, connected_to, etc.) plus node_id, graph_name, asset_path.

Example Request:

{
  "jsonrpc": "2.0", "id": 1, "method": "editor.graph.getPinInfo",
  "params": { "asset_path": "/Game/Blueprints/BP_Hero", "graph_name": "EventGraph", "node_id": "A1B2...", "pin_name": "ReturnValue" }
}

editor.graph.createNode

Creates a new graph node of a given UEdGraphNode subclass.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesPath to the asset
graph_namestringYesName of the graph
node_classstringYesClass name (e.g. "K2Node_CallFunction")
positionobjectNo{x, y} node position (default 0,0)

Returns:

NameTypeDescription
idstringNew node GUID
classstringNode class name
titlestringNode title
positionobject{x, y}
pinsarrayPin objects
pin_countnumberNumber of pins

Example Request:

{
  "jsonrpc": "2.0", "id": 1, "method": "editor.graph.createNode",
  "params": { "asset_path": "/Game/Blueprints/BP_Hero", "graph_name": "EventGraph", "node_class": "K2Node_CallFunction", "position": { "x": 200, "y": 100 } }
}

editor.graph.deleteNode

Deletes a node from a graph, breaking all links first.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesPath to the asset
graph_namestringYesName of the graph
node_idstringYesNode GUID to delete

Returns:

NameTypeDescription
successboolWhether deletion succeeded
node_idstringDeleted node GUID

Example Request:

{
  "jsonrpc": "2.0", "id": 1, "method": "editor.graph.deleteNode",
  "params": { "asset_path": "/Game/Blueprints/BP_Hero", "graph_name": "EventGraph", "node_id": "A1B2..." }
}

editor.graph.connectPins

Creates a connection (wire) between two pins on two nodes.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesPath to the asset
graph_namestringYesName of the graph
source_node_idstringYesSource node GUID
source_pin_namestringYesSource pin name
target_node_idstringYesTarget node GUID
target_pin_namestringYesTarget pin name
validateboolNoCheck schema compatibility (default true)

Returns:

NameTypeDescription
successboolWhether connection was made

Example Request:

{
  "jsonrpc": "2.0", "id": 1, "method": "editor.graph.connectPins",
  "params": {
    "asset_path": "/Game/Blueprints/BP_Hero", "graph_name": "EventGraph",
    "source_node_id": "A1B2...", "source_pin_name": "then",
    "target_node_id": "C3D4...", "target_pin_name": "execute"
  }
}

editor.graph.disconnectPins

Breaks a specific connection between two pins.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesPath to the asset
graph_namestringYesName of the graph
source_node_idstringYesSource node GUID
source_pin_namestringYesSource pin name
target_node_idstringYesTarget node GUID
target_pin_namestringYesTarget pin name

Returns:

NameTypeDescription
successboolWhether disconnection succeeded

Example Request:

{
  "jsonrpc": "2.0", "id": 1, "method": "editor.graph.disconnectPins",
  "params": {
    "asset_path": "/Game/Blueprints/BP_Hero", "graph_name": "EventGraph",
    "source_node_id": "A1B2...", "source_pin_name": "then",
    "target_node_id": "C3D4...", "target_pin_name": "execute"
  }
}

editor.graph.disconnectAllPins

Breaks all connections on all pins of a specific node.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesPath to the asset
graph_namestringYesName of the graph
node_idstringYesNode GUID

Returns:

NameTypeDescription
successboolWhether disconnection succeeded
broken_link_countnumberNumber of connections broken
node_idstringNode GUID

Example Request:

{
  "jsonrpc": "2.0", "id": 1, "method": "editor.graph.disconnectAllPins",
  "params": { "asset_path": "/Game/Blueprints/BP_Hero", "graph_name": "EventGraph", "node_id": "A1B2..." }
}

editor.graph.setNodePosition

Moves a graph node to a new X/Y position.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesPath to the asset
graph_namestringYesName of the graph
node_idstringYesNode GUID
positionobjectYes{x, y} target position
snap_grid_sizenumberNoGrid snap size (default 0 = no snap)

Returns:

NameTypeDescription
successboolWhether position was set
node_idstringNode GUID
positionobject{x, y} final position

Example Request:

{
  "jsonrpc": "2.0", "id": 1, "method": "editor.graph.setNodePosition",
  "params": { "asset_path": "/Game/Blueprints/BP_Hero", "graph_name": "EventGraph", "node_id": "A1B2...", "position": { "x": 400, "y": 200 } }
}

editor.graph.getSelectedNodes

Returns the currently selected nodes in an open graph editor tab.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesPath to the asset
graph_namestringYesName of the graph

Returns:

NameTypeDescription
countnumberNumber of selected nodes
nodesarrayEach: {id, class, title}

Example Request:

{
  "jsonrpc": "2.0", "id": 1, "method": "editor.graph.getSelectedNodes",
  "params": { "asset_path": "/Game/Blueprints/BP_Hero", "graph_name": "EventGraph" }
}

editor.graph.selectNodes

Sets the selection in an open graph editor tab to the specified nodes.

Parameters:

NameTypeRequiredDescription
asset_pathstringYesPath to the asset
graph_namestringYesName of the graph
node_idsarrayYesArray of node GUIDs to select
clear_existingboolNoClear current selection first (default true)

Returns:

NameTypeDescription
successboolWhether selection was set
selected_countnumberNodes actually selected
requested_countnumberNodes requested

Example Request:

{
  "jsonrpc": "2.0", "id": 1, "method": "editor.graph.selectNodes",
  "params": { "asset_path": "/Game/Blueprints/BP_Hero", "graph_name": "EventGraph", "node_ids": ["A1B2...", "C3D4..."] }
}