Version Availability: 40 methods (Core, Waves 1-6) work on UE 5.6.0+. The remaining 48 methods (Waves 54-60: Editor Control, Debug, Dynamic Pins, Typed Parameters, Panel Control, Inspection Data, Graph Layout) require UE 5.7+ (FPCGEditor is a private header in 5.6). On 5.6, only the available methods are advertised by system.methods.
Core Graph Operations
editor.pcg.createGraph
Create a new UPCGGraph asset at a content path.
Parameters: path (string, required -- content path e.g. "/Game/PCG"), name (string, required).
Returns: success (bool), asset_path (string), name (string).
editor.pcg.getNodes
List all nodes in a PCG graph, including input/output nodes and their pins.
Parameters: graph (string, required).
Returns: graph, count, nodes (array of {index, name, title, isInputNode, inputPins, outputPins}).
Example Request:
{ "jsonrpc": "2.0", "id": 1, "method": "editor.pcg.getNodes", "params": { "graph": "/Game/PCG/PCG_RanchFence.PCG_RanchFence" } } editor.pcg.addNode
Add a node to a PCG graph by settings class name.
Parameters: graph (string, required), settingsClass (string, required -- e.g. "PCGSplineSamplerSettings", "PCGStaticMeshSpawnerSettings").
Returns: success, nodeName, nodeIndex, title, settingsClass, inputPins (array), outputPins (array).
editor.pcg.removeNode
Remove a node from a PCG graph by index. Cannot remove input/output nodes.
Parameters: graph (string, required), nodeIndex (number, required).
Returns: success (bool), removedNode (string).
editor.pcg.setNodeProperty
Set a property on a node's settings object using ImportText. Supports dotted property paths.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
graph | string | Yes | Asset path of the PCG graph |
nodeIndex | number | Yes | Index of the node |
property | string | Yes | Property name or dotted path |
value | string | Yes | Value as string (parsed via ImportText) |
Returns: success (bool), property (string), value (string).
editor.pcg.connectNodes
Connect an output pin of one node to an input pin of another.
Parameters: graph (string, required), fromNode (number, required), fromPin (string, required), toNode (number, required), toPin (string, required).
Returns: success, fromNode, fromPin, toNode, toPin.
editor.pcg.disconnectNodes
Remove an edge between two nodes.
Parameters: graph (string, required), fromNode (number, required), fromPin (string, required), toNode (number, required), toPin (string, required).
Returns: success (bool).
editor.pcg.attachToActor
Add a UPCGComponent to an actor and assign a graph to it.
Parameters: actorPath (string, required), graphPath (string, required).
Returns: success, actor, component, graph.
editor.pcg.generate
Execute PCG generation on an actor's PCG component.
Parameters: actorPath (string, required), force (bool, optional -- default false).
Returns: success, actor, generating.
editor.pcg.cleanup
Clean up generated content from an actor's PCG component.
Parameters: actorPath (string, required), removeComponents (bool, optional -- default false).
Returns: success, actor.
Wave 1: Inspection & Discovery
editor.pcg.getNodeProperty
Read a single property value from a node's settings. Supports dotted property paths.
Parameters: graph (string, required), nodeIndex (number, required), property (string, required).
Returns: property, value, type.
editor.pcg.getNodeProperties
List ALL properties on a node's settings object with names, types, and current values.
Parameters: graph (string, required), nodeIndex (number, required).
Returns: settingsClass, count, properties (array of {name, type, value, editable}).
editor.pcg.listNodeTypes
List all available PCG settings classes (node types) that can be added to a graph.
Parameters: filter (string, optional -- substring filter).
Returns: count, types (array of {className, displayName, description}).
editor.pcg.getNodePins
Get detailed pin information for a node including types, connections, and usage.
Parameters: graph (string, required), nodeIndex (number, required).
Returns: nodeName, title, inputPins (array with label, connected, connections, etc.), outputPins (array).
editor.pcg.getGraphInfo
Get graph-level metadata including HiGen settings, node count, and user parameter summary.
Parameters: graph (string, required).
Returns: name, assetPath, category, description, hierarchicalGeneration, use2DGrid, nodeCount, defaultGridSize, userParamCount.
editor.pcg.findNode
Find node(s) in a graph by title or settings class name.
Parameters: graph (string, required), title (string, optional), settingsClass (string, optional).
Returns: count, matches (array of {index, name, title, settingsClass}).
Wave 2: Parameters & Graph Instances
editor.pcg.getUserParams
Get all user-defined parameters on a graph.
Parameters: graph (string, required).
Returns: count, parameters (array of {name, type, value}).
editor.pcg.setUserParam
Set a user parameter value on a graph.
Parameters: graph (string, required), name (string, required), value (string, required).
Returns: success, parameter, value.
editor.pcg.createGraphInstance
Create a UPCGGraphInstance asset referencing a source graph.
Parameters: sourceGraph (string, required), path (string, required), name (string, required).
Returns: success, assetPath, sourceGraph.
editor.pcg.setParamOverride
Override a parameter on a graph instance.
Parameters: instancePath (string, required), name (string, required), value (string, required).
Returns: success, parameter, value.
editor.pcg.getParamOverrides
List parameters on a graph instance with override status and values.
Parameters: instancePath (string, required).
Returns: count, parameters (array of {name, type, overridden, value}).
Wave 3: Component Configuration
editor.pcg.getComponentSettings
Read PCG component configuration from an actor.
Parameters: actorPath (string, required).
Returns: actor, component, generationTrigger, seed, isPartitioned, isGenerating, isCleaningUp, generationGridSize, graphPath.
editor.pcg.setComponentSettings
Configure multiple PCG component settings at once.
Parameters: actorPath (string, required), generationTrigger (string, optional), seed (number, optional), isPartitioned (bool, optional).
Returns: success, actor.
editor.pcg.setGenerationTrigger
Set when PCG generation triggers on a component.
Parameters: actorPath (string, required), trigger (string, required -- GenerateOnLoad, GenerateOnDemand, or GenerateAtRuntime).
Returns: success, trigger.
editor.pcg.setSeed
Set the random seed for deterministic generation.
Parameters: actorPath (string, required), seed (number, required).
Returns: success, seed.
editor.pcg.detachFromActor
Remove PCG component from an actor (inverse of attachToActor).
Parameters: actorPath (string, required), cleanup (bool, optional -- default true).
Returns: success, actor.
Wave 4: Data Inspection
editor.pcg.getGeneratedOutput
Get summary of generated data from a PCG component including point counts, bounds, and attribute info.
Parameters: actorPath (string, required).
Returns: actor, dataCount, data (array of {pin, tags, dataType, pointCount, bounds, attributeCount}).
editor.pcg.getPointData
Read point cloud data with pagination (positions, rotations, scales, density).
Parameters: actorPath (string, required), dataIndex (number, optional), offset (number, optional), limit (number, optional -- 1-1000, default 100).
Returns: total, offset, limit, hasMore, points (array of {location, rotation, scale, density, steepness, seed}).
editor.pcg.getAttributes
List all metadata attributes on generated data.
Parameters: actorPath (string, required), dataIndex (number, optional).
Returns: count, attributes (array of {name, type}).
editor.pcg.getAttributeValues
Get info about a specific attribute on generated point data.
Parameters: actorPath (string, required), attribute (string, required), dataIndex (number, optional).
Returns: attribute, type, pointCount.
editor.pcg.getGeneratedActors
List components on the PCG actor (generated ISMCs, etc.).
Parameters: actorPath (string, required).
Returns: actor, componentCount, components (array of {name, class, location}).
Wave 5: Batch & Asset Management
editor.pcg.findPCGActors
Find all actors in the level with PCG components.
Parameters: graphFilter (string, optional).
Returns: count, actors (array of {label, name, path, graphPath, graphName, isGenerating}).
editor.pcg.generateAll
Trigger generation on all PCG components in the level.
Parameters: force (bool, optional), graphFilter (string, optional).
Returns: success, generatedCount.
editor.pcg.cleanupAll
Cleanup all PCG components in the level.
Parameters: removeComponents (bool, optional), graphFilter (string, optional).
Returns: success, cleanedCount.
editor.pcg.saveGraph
Explicitly save a PCG graph asset to disk.
Parameters: graph (string, required).
Returns: success, graph, filePath.
editor.pcg.duplicateGraph
Duplicate an existing PCG graph as a new asset.
Parameters: sourceGraph (string, required), path (string, required), name (string, required).
Returns: success, assetPath, sourceGraph.
Wave 6: Advanced Features
editor.pcg.addSubgraph
Add a subgraph node referencing another PCG graph.
Parameters: graph (string, required), subgraphPath (string, required).
Returns: success, nodeIndex, nodeName, subgraphPath.
editor.pcg.setNodePosition
Set a node's visual position in the graph editor.
Parameters: graph (string, required), nodeIndex (number, required), x (number, required), y (number, required).
Returns: success, nodeName, x, y.
editor.pcg.renameNode
Set a custom title on a node.
Parameters: graph (string, required), nodeIndex (number, required), title (string, required).
Returns: success, title.
editor.pcg.recompileGraph
Force recompile a PCG graph (clear cache, rebuild).
Parameters: graph (string, required).
Returns: success, graph.
Wave 54: Graph Editor Control & Component Extras (UE 5.7+ only)
editor.pcg.openGraphEditor
Open a PCG graph in the asset editor.
Parameters: graph (string, required).
Returns: success (bool).
editor.pcg.closeGraphEditor
Close all editors for a PCG graph.
Parameters: graph (string, required).
Returns: success (bool).
editor.pcg.getEditorState
Get the current state of a PCG component and/or graph editor.
Parameters: actorPath (string, optional), graph (string, optional).
Returns: isGenerating, isCleaningUp, isDirty, editingMode, hasOpenEditor.
editor.pcg.pauseRegeneration
Pause/resume automatic regeneration by setting generation trigger.
Parameters: actorPath (string, required), paused (bool, optional -- default true).
Returns: success (bool).
editor.pcg.forceRegeneration
Force regeneration on a PCG component.
Parameters: actorPath (string, required).
Returns: success (bool).
editor.pcg.cancelExecution
Cancel in-progress PCG generation.
Parameters: actorPath (string, required).
Returns: success (bool).
editor.pcg.dirtyGenerated
Dirty generated data on a PCG component.
Parameters: actorPath (string, required), flag (string, optional -- Actor, Landscape, Input, Data, All).
Returns: success (bool).
editor.pcg.setEditingMode
Set the editing mode on a PCG component.
Parameters: actorPath (string, required), mode (string, required -- Normal, Preview, LoadAsPreview).
Returns: success (bool).
Wave 55: Debug, Inspect & Node Flags (UE 5.7+ only)
editor.pcg.setNodeDebug
Set the debug flag (bDebug) on a node's settings.
Parameters: graph (string, required), nodeIndex (number, required), debug (bool, optional -- default true).
Returns: success (bool).
editor.pcg.setNodeEnabled
Set the enabled flag (bEnabled) on a node's settings.
Parameters: graph (string, required), nodeIndex (number, required), enabled (bool, optional -- default true).
Returns: success (bool).
editor.pcg.setNodeInspected
Mark a node for inspection (sets debug flag as proxy).
Parameters: graph (string, required), nodeIndex (number, required), inspected (bool, optional -- default true).
Returns: success (bool).
editor.pcg.getNodeFlags
Get debug/enabled flags and editor state for a node.
Parameters: graph (string, required), nodeIndex (number, required).
Returns: debug, enabled, hasOpenEditor.
editor.pcg.debugOnlySelected
Set debug flag only on specified nodes, clear all others.
Parameters: graph (string, required), nodeIndices (array of numbers, required).
Returns: success (bool).
editor.pcg.disableDebugAll
Clear the debug flag on all nodes in a graph.
Parameters: graph (string, required).
Returns: success (bool).
editor.pcg.getNodeErrors
Get compiler errors/warnings from an editor node. Requires graph open in editor.
Parameters: graph (string, required), nodeIndex (number, required).
Returns: hasError, errorMessage, errorType.
Wave 56: Dynamic Pins & Pin Default Values (UE 5.7+ only)
editor.pcg.addDynamicInputPin
Add a dynamic input pin to a node. Limited: requires non-exported PCGEditor API.
editor.pcg.removeDynamicInputPin
Remove a dynamic input pin. Limited: requires non-exported PCGEditor API.
editor.pcg.canAddDynamicPins
Query pin counts for a node.
Parameters: graph (string, required), nodeIndex (number, required).
Returns: inputPinCount, outputPinCount.
editor.pcg.getPinDefaultValue
Get pin info for a node's input pin.
Parameters: graph (string, required), nodeIndex (number, required), pinLabel (string, required).
Returns: label, connected.
editor.pcg.setPinDefaultValueActive
Limited: requires non-exported PCGEditor API.
editor.pcg.resetPinDefaultValue
Limited: requires non-exported PCGEditor API.
Wave 57: Typed Parameters & Asset Operations (UE 5.7+ only)
editor.pcg.addUserParam
Add a typed user parameter to a PCG graph.
Parameters: graph (string, required), name (string, required), type (string, required -- Float, Double, Int32, Int64, Bool, Byte, Name, String, Vector, Rotator, Transform, Color, SoftObjectPath).
Returns: success (bool).
editor.pcg.removeUserParam
Remove a user parameter by name.
Parameters: graph (string, required), name (string, required).
Returns: success (bool).
editor.pcg.getUserParamTyped
Get a user parameter's value with proper type coercion.
Parameters: graph (string, required), name (string, required).
Returns: name, type, value.
editor.pcg.setUserParamTyped
Set a user parameter's value with type validation.
Parameters: graph (string, required), name (string, required), value (any, required).
Returns: success (bool).
editor.pcg.deleteGraph
Delete a PCG graph asset.
Parameters: graph (string, required).
Returns: success (bool).
editor.pcg.findGraphs
Find PCG graph assets via Asset Registry.
Parameters: path (string, optional -- filter by path substring).
Returns: count, graphs (array of {path, name, package}).
editor.pcg.levelToAsset
Convert current level to a PCG data asset.
No parameters.
Returns: success, package.
Wave 58: Panel Control & Subsystem Access (UE 5.7+ only)
editor.pcg.listPanels
List all 21 PCG editor panels with open/foreground status. Panels include: Attributes1-4, DebugObjectTree, Determinism, Find, GraphEditor, Log, NodePalette, NodeSource, Profiling, PropertyDetails1-4, UserParams, Viewport1-4.
Parameters: graph (string, required -- graph must be open in editor).
Returns: panel list with open/foreground status.
editor.pcg.openPanel
Open/focus a specific PCG editor panel.
Parameters: graph (string, required), panel (string, required).
Returns: success (bool).
editor.pcg.closePanel
Close a specific PCG editor panel.
Parameters: graph (string, required), panel (string, required).
Returns: success (bool).
editor.pcg.isPanelOpen
Check if a panel is open and/or focused.
Parameters: graph (string, required), panel (string, required).
Returns: open, foreground.
editor.pcg.getRegisteredComponents
Get all PCG components registered in the world.
No parameters.
Returns: count, components (array of {actor, actorPath, isGenerating, isCleaningUp, graph}).
editor.pcg.flushCache
Flush the PCG cache.
No parameters.
Returns: success (bool).
editor.pcg.refreshRuntimeComponents
Refresh all runtime-generation PCG components in the world.
No parameters.
Returns: success (bool).
Wave 59: Inspection Data & Determinism (UE 5.7+ only)
editor.pcg.getInspectionData
Get current inspection state from the PCG editor.
Parameters: graph (string, required -- must be open in editor).
Returns: hasInspectionSource, stackDepth, rootGraph.
editor.pcg.setInspectionSource
Set the execution stack being inspected.
Parameters: graph (string, required), actorPath (string, required).
Returns: success (bool).
editor.pcg.clearInspection
Clear the current inspection in the PCG editor.
Parameters: graph (string, required).
Returns: success (bool).
editor.pcg.jumpToNode
Focus the PCG graph editor view on a specific node.
Parameters: graph (string, required), nodeIndex (number, required).
Returns: success (bool).
editor.pcg.runDeterminismTest
Open the Determinism panel for testing.
Parameters: graph (string, required).
Returns: success (bool).
editor.pcg.getProfilingData
Get per-node metadata for profiling. Opens the Profiling panel for detailed timing.
Parameters: graph (string, required).
Returns: nodeCount, nodes (array of {index, name, debug, enabled, settingsClass}).
Wave 60: Graph Layout & Comments (UE 5.7+ only)
editor.pcg.selectNodes
Mark nodes by setting debug flags (proxy for editor selection).
Parameters: graph (string, required), nodeIndices (array of numbers, required).
Returns: success (bool).
editor.pcg.getSelectedNodes
Get nodes with debug flag set.
Parameters: graph (string, required).
Returns: count, selectedNodes (array of {index, name, debug}).
editor.pcg.deleteNodes
Delete multiple nodes by index (batch). Skips input/output nodes.
Parameters: graph (string, required), nodeIndices (array of numbers, required).
Returns: success (bool).
editor.pcg.createComment
Create a comment node in the PCG graph editor.
Parameters: graph (string, required), text (string, required), x (number, optional), y (number, optional), width (number, optional -- default 400), height (number, optional -- default 200).
Returns: success (bool).
editor.pcg.alignNodes
Align nodes in a specified direction.
Parameters: graph (string, required), nodeIndices (array, required -- min 2), direction (string, required -- Left, Right, Top, Bottom, CenterH, CenterV).
Returns: success (bool).
editor.pcg.distributeNodes
Distribute nodes evenly along an axis.
Parameters: graph (string, required), nodeIndices (array, required -- min 3), axis (string, required -- Horizontal, Vertical).
Returns: success (bool).
editor.pcg.straightenConnections
Straighten connections by aligning Y positions to first node.
Parameters: graph (string, required), nodeIndices (array, required -- min 2 connected nodes).
Returns: success (bool).