editor.pcg

Procedural Content Generation graph authoring and execution (88 methods)

← API Reference

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:

NameTypeRequiredDescription
graphstringYesAsset path of the PCG graph
nodeIndexnumberYesIndex of the node
propertystringYesProperty name or dotted path
valuestringYesValue 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).