Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

UnrealMCP — AI Bridge for Unreal Engine 5

PYPI · UNREALMCP · SCANNED AUG 7

Control the Unreal Engine 5 editor from any MCP client: Blueprints, materials, Niagara.

Available components

0 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security25
Provenance & Transparency32
Schema Quality & AI Usability37
  • AI-judged instruction clarity (poor).Fail
  • Context-footprint check failed: tool/resource definitions use about 35352 tokens (~123/item across 286 items; 286 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

pypi · unrealmcp

# add to Claude Code
claude mcp add aadeshrao123-unreal-mcp -- uvx unrealmcp
# add to Codex CLI
codex mcp add aadeshrao123-unreal-mcp -- uvx unrealmcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "aadeshrao123-unreal-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "unrealmcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add aadeshrao123-unreal-mcp --command uvx --arg unrealmcp
# ~/.hermes/config.yaml
mcp_servers:
  aadeshrao123-unreal-mcp:
    command: "uvx"
    args: ["unrealmcp"]
// mcp.json
{
  "mcpServers": {
    "aadeshrao123-unreal-mcp": {
      "command": "uvx",
      "args": [
        "unrealmcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 7 Aug 26 0
    • Malware scan: pass → unverified security
  • 6 Aug 26 0

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 7 Aug 2026 · Analysed pypi/[email protected]

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Install scripts 1 script
Hook Tier Command
build_backend allowlisted setuptools.build_meta
Vulnerabilities 6 findings
ID CVE Severity Vector Fix available
GHSA-m8x7-r2rg-vh5g CVE-2025-64340 medium CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H yes
GHSA-rww4-4w9c-7733 CVE-2026-27124 high yes
GHSA-vv7q-7jx5-f767 CVE-2026-32871 critical CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H yes
PYSEC-2026-2475 CVE-2025-64340 medium CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H yes
PYSEC-2026-2476 CVE-2026-27124 none yes
PYSEC-2026-338 CVE-2026-32871 critical CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H yes
Dependencies 78 packages
Packages resolved 78
Stale 5
No linked repository 3
Tree resolution Complete
MCP tools · 286 exposed · ~35,325 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
add_blueprint_node ~236

Add a node to a Blueprint graph. Node types by category: FLOW: Branch, Comparison, Switch, SwitchEnum, SwitchInteger, ExecutionSequence DATA: VariableGet, VariableSet, MakeArray CASTING: DynamicCast, ClassDynamicCast, CastByteToEnum UTILITY: Print, CallFunction, Select, SpawnActor SPECIAL: Timeline, GetDataTableRow, AddComponentByClass, Self, Knot EVENT: Event (specify event_type: BeginPlay, Tick, Destroyed, etc.) Extra args are only needed for specific node types (message for Print, variable_name for Variable nodes, target_function for CallFunction, etc.).

NameTypeReqDescription
blueprint_namestringyes
event_typestring
function_namestring
messagestring
node_typestringyes
pos_xnumber
pos_ynumber
target_blueprintstring
target_functionstring
variable_namestring
NameTypeReqDescription
resultstringyes

No examples provided.

add_component_to_blueprint ~98

Add a component to a Blueprint's default components. Args: blueprint_path: Full path to blueprint (e.g. "/Game/Blueprints/BP_MyActor") component_class: e.g. "StaticMeshComponent", "PointLightComponent" component_name: Optional custom name for the component

NameTypeReqDescription
blueprint_pathstringyes
component_classstringyes
component_namestring
NameTypeReqDescription
resultstringyes

No examples provided.

add_data_table_row ~67

Add a new row, optionally setting initial field values. data is a JSON string mapping field names to values, e.g. '{"FieldA": 1}'.

NameTypeReqDescription
datastring
data_table_pathstringyes
row_namestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_event_node ~58

Add an event node (ReceiveBeginPlay, ReceiveTick, ReceiveDestroyed, etc.).

NameTypeReqDescription
blueprint_namestringyes
event_namestringyes
pos_xnumber
pos_ynumber
NameTypeReqDescription
resultstringyes

No examples provided.

add_function_input ~58

Add an input parameter to a Blueprint function.

NameTypeReqDescription
blueprint_namestringyes
function_namestringyes
is_arrayboolean
param_namestringyes
param_typestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_function_output ~58

Add an output parameter to a Blueprint function.

NameTypeReqDescription
blueprint_namestringyes
function_namestringyes
is_arrayboolean
param_namestringyes
param_typestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_input_action_modifier ~149

Add a modifier to an Input Action. Args: asset_path: Path to the InputAction asset modifier_type: Class name — InputModifierDeadZone | InputModifierScalar | InputModifierNegate | InputModifierSwizzleAxis | InputModifierSmooth | InputModifierSmoothDelta | InputModifierScaleByDeltaTime | InputModifierResponseCurveExponential | InputModifierResponseCurveUser | InputModifierFOVScaling | InputModifierToWorldSpace properties: Optional modifier properties (e.g. {"LowerThreshold": 0.2, "Type": "Radial"})

NameTypeReqDescription
asset_pathstringyes
modifier_typestringyes
properties
NameTypeReqDescription
resultstringyes

No examples provided.

add_input_action_trigger ~133

Add a trigger to an Input Action. Args: asset_path: Path to the InputAction asset trigger_type: Class name — InputTriggerDown | InputTriggerPressed | InputTriggerReleased | InputTriggerHold | InputTriggerHoldAndRelease | InputTriggerTap | InputTriggerRepeatedTap | InputTriggerPulse | InputTriggerChordAction | InputTriggerCombo properties: Optional trigger properties (e.g. {"HoldTimeThreshold": 0.5, "bIsOneShot": true})

NameTypeReqDescription
asset_pathstringyes
properties
trigger_typestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_key_mapping ~150

Add a key-to-action mapping to an Input Mapping Context. Args: context_path: Path to the IMC asset action_path: Path to the InputAction asset key: Key name (e.g. "SpaceBar", "W", "Gamepad_LeftY", "LeftMouseButton") triggers: Optional list of triggers, each {"type": "InputTriggerHold", "properties": {...}} modifiers: Optional list of modifiers, each {"type": "InputModifierNegate", "properties": {...}}

NameTypeReqDescription
action_pathstringyes
context_pathstringyes
keystringyes
modifiers
triggers
NameTypeReqDescription
resultstringyes

No examples provided.

add_mapping_modifier ~103

Add a modifier to a specific mapping in an Input Mapping Context. Args: context_path: Path to the IMC asset mapping_index: Index of the mapping (from get_input_mapping_context) modifier_type: Modifier class name (e.g. "InputModifierNegate") properties: Optional modifier properties

NameTypeReqDescription
context_pathstringyes
mapping_indexintegeryes
modifier_typestringyes
properties
NameTypeReqDescription
resultstringyes

No examples provided.

add_mapping_trigger ~102

Add a trigger to a specific mapping in an Input Mapping Context. Args: context_path: Path to the IMC asset mapping_index: Index of the mapping (from get_input_mapping_context) trigger_type: Trigger class name (e.g. "InputTriggerPressed") properties: Optional trigger properties

NameTypeReqDescription
context_pathstringyes
mapping_indexintegeryes
properties
trigger_typestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_mass_config_trait ~170

Add a SINGLE trait to a Mass Entity Config without replacing existing traits. Safe for configs with complex replicator settings — only appends, never replaces. Returns error if the trait already exists on the config. Args: asset_path: Path to MassEntityConfigAsset (e.g. "/Game/.../DA_MinerMassEntityConfig_Mk1") trait_class: Full class path (e.g. "/Script/Jiggify.MassBuildingHealthTrait") properties: Optional dict of property values to set on the new trait. Supports floats, ints, bools, strings. Example: {"MaxHealth": 150, "Resistance_Fire": 0.2}

NameTypeReqDescription
asset_pathstringyes
properties
trait_classstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_material_comments ~79

Add comment boxes to a material graph for organization. comments is a JSON array. Each entry: {text, pos_x, pos_y, size_x, size_y, font_size, color: [r,g,b], show_bubble, color_bubble, group_mode}.

NameTypeReqDescription
commentsstringyes
material_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_material_expression ~125

Add a single expression node without clearing other nodes. Returns the new node_index. Wire it up with connect_material_expressions. node is a JSON object: {"type": "ScalarParameter", "pos_x": -1200, "pos_y": -400, "properties": {"parameter_name": "Speed", "default_value": 0.5}} For Custom HLSL nodes, include top-level "code", "description", "output_type", "inputs", and "outputs" fields.

NameTypeReqDescription
material_pathstringyes
nodestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_material_function_input ~267

Add an input pin to a Material Function. Args: function_path: Full path to existing material function input_name: Pin name (e.g. "BaseColor", "Strength", "UV") input_type: Scalar | Vector2 | Vector3 | Vector4 | Texture2D | TextureCube | Texture2DArray | VolumeTexture | StaticBool | MaterialAttributes | TextureExternal | Bool | Substrate description: Tooltip text sort_priority: Controls display order (lower = higher) use_preview_as_default: Use preview_value as the default when input is unconnected preview_value: JSON array for default value (e.g. "[0.5]", "[1.0, 0.0, 0.0, 1.0]") pos_x: Graph X position (default -600) pos_y: Graph Y position (default 0)

NameTypeReqDescription
descriptionstring
function_pathstringyes
input_namestringyes
input_typestring
pos_xinteger
pos_yinteger
preview_value
sort_priorityinteger
use_preview_as_defaultboolean
NameTypeReqDescription
resultstringyes

No examples provided.

add_material_function_output ~140

Add an output pin to a Material Function. Args: function_path: Full path to existing material function output_name: Pin name (e.g. "Result", "Normal", "Mask") description: Tooltip text sort_priority: Controls display order (lower = higher) pos_x: Graph X position (default 200) pos_y: Graph Y position (default 0)

NameTypeReqDescription
descriptionstring
function_pathstringyes
output_namestringyes
pos_xinteger
pos_yinteger
sort_priorityinteger
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_component ~122

Add a NiagaraComponent to an existing actor in the level. Args: actor_name: Name/label of the target actor system_path: Path to the Niagara System asset to assign component_name: Optional name for the component relative_location: Relative offset as "(X,Y,Z)" auto_activate: If true, auto-activate on begin play

NameTypeReqDescription
actor_namestringyes
auto_activateboolean
component_name
relative_location
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_custom_hlsl_input ~108

Add a typed input pin to a scratch pad module's Custom HLSL node. Types: float, int, bool, vec2/3/4, color, quat, matrix, position, ParameterMap, or any registered Niagara type. The pin's name is usable inside the HLSL source.

NameTypeReqDescription
module_namestringyes
pin_namestringyes
pin_typestring
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_custom_hlsl_output ~63

Add a typed output pin to a scratch pad module's Custom HLSL node.

NameTypeReqDescription
module_namestringyes
pin_namestringyes
pin_typestring
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_emitter ~124

Add an emitter to a Niagara System. Provide either emitter_path (existing emitter asset) or template (built-in template name). Args: system_path: Path to the Niagara System asset emitter_path: Path to an existing NiagaraEmitter asset to add emitter_name: Optional display name for the emitter in this system template: Built-in template name (e.g. "Fountain", "Sprite", "Mesh")

NameTypeReqDescription
emitter_name
emitter_path
system_pathstringyes
template
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_event_handler ~201

Add an event handler to an emitter that responds to events from a source emitter. Args: system_path: Path to the Niagara System asset emitter_name: Name of the receiving emitter source_emitter: Name of the emitter producing the event event_name: Event name (e.g. "CollisionEvent", "DeathEvent", "LocationEvent") execution_mode: How events are handled — "every_particle", "spawn_particles", "single_particle" spawn_number: Number of particles to spawn per event (for spawn_particles mode) max_events_per_frame: Limit on events processed per frame (0 = unlimited)

NameTypeReqDescription
emitter_namestringyes
event_namestringyes
execution_modestring
max_events_per_frameinteger
source_emitterstringyes
spawn_numberinteger
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_graph_node ~345

Create a new node inside a Niagara scratch-pad / dynamic-input / module graph. Mirrors the node-creation pattern used by the Niagara editor schema actions (FGraphNodeCreator + AllocateDefaultPins + NotifyGraphChanged). Spawns on both asset and edit-copy graphs when a system is open. Args: node_type: One of "Op", "FunctionCall", "DataInterfaceFunction", "ParameterMapGet", "ParameterMapSet", "Reroute", "Input" pos_x, pos_y: Graph position op_name: (node_type=Op) — discover via get_niagara_schema_actions (e.g. "Numeric::Add", "Numeric::Mul", "Numeric::Length") function_script: (node_type=FunctionCall) UNiagaraScript asset path input_name + input_type: (node_type=Input) variable name + Niagara type di_class + function_name: (node_type=DataInterfaceFunction) — wraps a data-interface member function. Discover via list_niagara_data_interface_functions. Examples: di_class="NiagaraDataInterfaceArrayPosition", function_name="Length" Use list_niagara_script_parameters after to verify the pin layout.

NameTypeReqDescription
di_class
function_name
function_script
input_name
input_type
module_name
node_typestringyes
op_name
pos_xinteger
pos_yinteger
script_path
system_path
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_map_get_pin ~175

Add a typed output pin to the first ParameterMapGet node in a scratch pad graph. Mirrors clicking "+" on a Map Get node in the editor and picking a variable. The pin name becomes the parameter handle (e.g. "Engine.DeltaTime", "User.MyParam", "Particles.Velocity"). Args: system_path: Niagara System asset path module_name: Scratch pad module name parameter_name: Variable name including namespace (e.g. "Engine.DeltaTime") parameter_type: Niagara type (float, int, bool, vec2/3/4, color, quat, matrix, position, ...)

NameTypeReqDescription
module_namestringyes
parameter_namestringyes
parameter_typestring
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_map_set_pin ~121

Add a typed input pin to the first ParameterMapSet node in a scratch pad graph. Mirrors clicking "+" on a Map Set node in the editor. Args: system_path: Niagara System asset path module_name: Scratch pad module name parameter_name: Variable name including namespace parameter_type: Niagara type (see add_niagara_map_get_pin)

NameTypeReqDescription
module_namestringyes
parameter_namestringyes
parameter_typestring
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_module ~154

Add a module to an emitter's script usage stack. Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter module_path: Path to the module script asset (e.g. "/Niagara/Modules/Update/SolveForcesAndVelocity") script_usage: Target stack — EmitterSpawn, EmitterUpdate, ParticleSpawn, ParticleUpdate, SystemSpawn, SystemUpdate index: Position in the stack (-1 = append at end)

NameTypeReqDescription
emitter_namestringyes
indexinteger
module_pathstringyes
script_usagestringyes
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_node_pin ~233

Generic: add a typed dynamic pin to any node in a scratch pad graph. Works with Custom HLSL, Map Get, Map Set, or any node inheriting from UNiagaraNodeWithDynamicPins. Identify the target node via exactly one of node_class / node_index / node_id. Args: system_path: Niagara System asset path module_name: Scratch pad module name pin_name: New pin name pin_type: Niagara type string (float, vec3, color, etc.) direction: "input" or "output" node_class: Class short name (e.g. "NiagaraNodeParameterMapGet", "ParameterMapGet") node_index: Raw Graph->Nodes index node_id: UEdGraphNode::NodeGuid string

NameTypeReqDescription
directionstring
module_namestringyes
node_class
node_id
node_index
pin_namestringyes
pin_typestring
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_renderer ~129

Add a renderer to an emitter. Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter renderer_type: Renderer class — SpriteRenderer, MeshRenderer, RibbonRenderer, LightRenderer, ComponentRenderer material_path: Optional material asset path for sprite/mesh/ribbon renderers mesh_path: Optional static mesh path for MeshRenderer

NameTypeReqDescription
emitter_namestringyes
material_path
mesh_path
renderer_typestringyes
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_script_parameter ~191

Add an input or output parameter to a Niagara script. For a dynamic input, "output" adds a new entry to the Output Dynamic Input node (screenshot 5's "Add Parameter" dropdown). Type must be a name registered in FNiagaraTypeRegistry — use list_niagara_parameter_types to discover valid options (e.g. "float", "Vector", "LinearColor", "Quat", "Position", "NiagaraID", "Matrix"). Args: name: Parameter name (input names without namespace prefix become Module.<name>) type: Niagara type name direction: "output" (default — appends to output node) | "input"

NameTypeReqDescription
directionstring
module_name
namestringyes
script_path
system_path
typestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_simulation_stage ~139

Add a simulation stage to an emitter. Simulation stages allow additional processing passes over particles or data interfaces. Args: system_path: Path to the Niagara System asset emitter_name: Name of the target emitter stage_name: Display name for the simulation stage iteration_source: What to iterate over — "particles" or a data interface name num_iterations: Number of times to execute this stage per frame

NameTypeReqDescription
emitter_namestringyes
iteration_sourcestring
num_iterationsinteger
stage_namestringyes
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_niagara_user_parameter ~470

Add a user parameter to a Niagara System. Supports every type the editor's User Parameters "+" menu can add — primitives, structs, enums, and Data Interfaces. Use list_niagara_parameter_types to discover valid type names before calling. Args: system_path: Path to the Niagara System asset parameter_name: Name for the new parameter (auto-prefixed with "User.") parameter_type: Type name. Resolved via NiagaraTypeRegistry, so anything Niagara registered is valid. Examples: - Primitives: "float", "int", "bool", "Vector2", "Vector", "Vector4", "LinearColor", "Quat", "Position", "Matrix" - Niagara structs: "NiagaraID", "NiagaraRandInfo", "NiagaraSpawnInfo" - Enums: "ENiagaraExecutionState", any registered UEnum path - Data Interfaces (bare or prefixed): "ArrayFloat", "ArrayVector", "ArrayVector4", "ArrayInt32", "Curve", "Vector2DCurve", "VectorCurve", "Vector4Curve", "CurlNoise", "Grid2D", "Grid3D", "SkeletalMesh", "StaticMesh", "Texture", "TextureCube", "VolumeTexture", "Texture2DArray", "RenderTarget2D", "SplineComponent", "Camera", "Collision", "PhysicsAsset", "Spline", and any other NiagaraDataInterface subclass including plugin-provided ones. default_value: Optional default. For scalars pass as string or number; for vector/color/struct pass UE-standard text form like "(X=1,Y=2,Z=3)" or "(R=1,G=0.5,B=0,A=1)". Data interfaces use the CDO defaults — use set_niagara_user_parameter afterwards for richer initialization. Returns the created parameter with its resolved type name, kind (primitive / struct / enum / data_interface / object), size_bytes, and (for DIs) class_path.

NameTypeReqDescription
default_value
parameter_namestringyes
parameter_typestringyes
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_statetree_binding ~138

Add a property binding connecting a source node's output to a target node's input. Args: asset_path: Content path to the StateTree asset source_node_guid: GUID of the source node source_property: Property path on source (e.g. "TargetLocation") target_node_guid: GUID of the target node target_property: Property path on target (e.g. "TargetLocation")

NameTypeReqDescription
asset_pathstringyes
source_node_guidstringyes
source_propertystringyes
target_node_guidstringyes
target_propertystringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_statetree_condition ~201

Add a condition to a state's enter conditions or a transition's conditions. Args: asset_path: Content path to the StateTree asset condition_class: Condition struct name (e.g. "StateTreeCompareIntCondition") state: State index path state_name: State name state_guid: State GUID target: "enter_conditions" or "transition" transition_index: Required when target="transition" operand: "And" or "Or" (how to combine with previous conditions) properties: JSON object for condition properties instance_properties: JSON object for condition instance data

NameTypeReqDescription
asset_pathstringyes
condition_classstringyes
instance_properties
operandstring
properties
state
state_guid
state_name
targetstring
transition_index
NameTypeReqDescription
resultstringyes

No examples provided.

add_statetree_evaluator ~103

Add a global evaluator to the StateTree. Args: asset_path: Content path to the StateTree asset evaluator_class: Evaluator struct name (e.g. "MassEnemyHasTargetEvaluator") properties: JSON object for evaluator node properties instance_properties: JSON object for evaluator instance data properties

NameTypeReqDescription
asset_pathstringyes
evaluator_classstringyes
instance_properties
properties
NameTypeReqDescription
resultstringyes

No examples provided.

add_statetree_global_task ~92

Add a global task to the StateTree. Args: asset_path: Content path to the StateTree asset task_class: Task struct name properties: JSON object for task node properties instance_properties: JSON object for task instance data properties

NameTypeReqDescription
asset_pathstringyes
instance_properties
properties
task_classstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_statetree_parameter ~88

Add a tree-level parameter. Args: asset_path: Content path to the StateTree asset name: Parameter name type: Property type ("bool", "int32", "float", "FVector", "FName", "FString", etc.)

NameTypeReqDescription
asset_pathstringyes
namestringyes
typestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_statetree_state ~209

Add a state to the tree. Omit parent params for a root-level state. Args: asset_path: Content path to the StateTree asset name: Name for the new state parent: Parent state index path (e.g. "0/1") parent_name: Parent state name parent_guid: Parent state GUID state_type: "State", "Group", "Linked", "LinkedAsset", or "Subtree" selection_behavior: "None", "TryEnterState", "TrySelectChildrenInOrder", "TrySelectChildrenAtRandom", "TrySelectChildrenWithHighestUtility", "TryFollowTransitions" position: Insert position (-1 = append)

NameTypeReqDescription
asset_pathstringyes
namestringyes
parent
parent_guid
parent_name
positioninteger
selection_behavior
state_typestring
NameTypeReqDescription
resultstringyes

No examples provided.

add_statetree_task ~149

Add a task to a state. Args: asset_path: Content path to the StateTree asset task_class: Task struct name (e.g. "MassEnemyAttackTask", "MassNavMeshPathFollowTask") or full path state: State index path state_name: State name state_guid: State GUID properties: JSON object for task node properties instance_properties: JSON object for task instance data properties

NameTypeReqDescription
asset_pathstringyes
instance_properties
properties
state
state_guid
state_name
task_classstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_statetree_transition ~256

Add a transition to a state. Args: asset_path: Content path to the StateTree asset trigger: "OnStateCompleted", "OnStateFailed", "OnStateSucceeded", "OnTick", "OnEvent" state: Source state index path state_name: Source state name state_guid: Source state GUID target_state: Target state index path, or special: "TreeSucceeded", "TreeFailed", "TreeStopped", "NextSibling" target_state_name: Target state name target_state_guid: Target state GUID priority: "Low", "Normal", "Medium", "High", "Critical" delay: Delay in seconds before transitioning delay_variance: Random variance (+/-) on delay event_tag: Gameplay tag for OnEvent trigger

NameTypeReqDescription
asset_pathstringyes
delay
delay_variance
event_tag
prioritystring
state
state_guid
state_name
target_state
target_state_guid
target_state_name
triggerstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

add_widget ~195

Add a new widget to a Widget Blueprint's Designer tree. Args: widget_class: Short name like "TextBlock", "Image", "Button", "CanvasPanel", "VerticalBox", "HorizontalBox", "Overlay", "SizeBox", "Border", "ScrollBox", "ProgressBar", etc. parent_widget_name: Name of the parent panel (e.g. "CanvasPanel_0") widget_name: Optional name (auto-generated if empty) index: Insert position among siblings (-1 = append) slot_properties: Canvas anchors, offsets, etc. widget_properties: Widget values like {"Text": "Hello"}

NameTypeReqDescription
indexinteger
parent_widget_namestringyes
slot_properties
widget_blueprint_pathstringyes
widget_classstringyes
widget_namestring
widget_properties
NameTypeReqDescription
resultstringyes

No examples provided.

analyze_blueprint_graph ~66

Analyze a specific graph — nodes, connections, and execution flow.

NameTypeReqDescription
blueprint_pathstringyes
graph_namestring
include_node_detailsboolean
include_pin_connectionsboolean
trace_execution_flowboolean
NameTypeReqDescription
resultstringyes

No examples provided.

apply_and_save_niagara_scratch_pad ~65

Apply a scratch pad module's edit-copy AND save the asset (Apply & Save button). Mirrors FNiagaraScratchPadScriptViewModel::ApplyChangesAndSave.

NameTypeReqDescription
module_namestringyes
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

apply_material_to_actor ~42

Apply a material to a level actor.

NameTypeReqDescription
actor_namestringyes
material_pathstringyes
material_slotinteger
NameTypeReqDescription
resultstringyes

No examples provided.

apply_material_to_blueprint ~51

Apply a material to a Blueprint component.

NameTypeReqDescription
blueprint_namestringyes
component_namestringyes
material_pathstringyes
material_slotinteger
NameTypeReqDescription
resultstringyes

No examples provided.

apply_niagara_scratch_pad ~77

Commit a scratch pad module's edit-copy to the original script (Apply button). Mirrors FNiagaraScratchPadScriptViewModel::ApplyChanges. Requires the Niagara System to be open in the editor so the view model exists.

NameTypeReqDescription
module_namestringyes
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

build_material_function_graph ~273

Build the internal node graph of a Material Function in one atomic call. Same interface as build_material_graph but for Material Functions. FunctionInput nodes use type="FunctionInput" with extra fields: input_name, input_type (Scalar/Vector2/Vector3/Vector4/Texture2D/TextureCube/ Texture2DArray/VolumeTexture/StaticBool/MaterialAttributes/TextureExternal/Bool/Substrate), description, sort_priority, use_preview_as_default, preview_value ([x,y,z,w]) FunctionOutput nodes use type="FunctionOutput" with extra fields: output_name, description, sort_priority Connections between nodes use the same format as build_material_graph: from_node (int), from_pin (str), to_node (int), to_pin (str) To connect a node to a FunctionOutput's input, use to_pin="" (the output has a single unnamed input pin labeled "A" internally). Args: function_path: Full path to existing material function nodes: JSON array of node definitions connections: JSON array of connections clear_existing: Remove existing expressions before building (default True)

NameTypeReqDescription
clear_existingboolean
connectionsstringyes
function_pathstringyes
nodesstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

build_material_graph ~599

Build a complete material node graph in one atomic operation. Creates expression nodes and wires them together in a single call. By default clears existing expressions first (safe rebuild — all external references stay intact). Args: material_path: Full path to existing material (e.g. "/Game/Materials/M_Portal") nodes: JSON array of node definitions. Each node has: - type: Short class name (e.g. "TextureCoordinate", "Custom", "ScalarParameter", "Constant3Vector", "TextureSample", "Multiply", "Add", "Panner", "Time", "VectorParameter", "LinearInterpolate", "ComponentMask") Auto-prefixed with "MaterialExpression" if needed. - pos_x, pos_y: Graph position (default -300, 0) - properties: Dict of editor properties to set. Common ones: - parameter_name: str — name shown in material instances - default_value: number or [r,g,b,a] - slider_min, slider_max: float — slider range - group: str — parameter group name - Values starting with "/" are loaded as assets - Lists of 3-4 become LinearColor, lists of 2 become Vector2D For Custom HLSL nodes (type="Custom"), also supports: - code: HLSL source code string - description: Node title in the graph - output_type: "float" | "float2" | "float3" | "float4" - inputs: List of input pin names (e.g. ["UV", "Speed"]) - outputs: List of {"name": str, "type": str} for additional outputs connections: JSON array of connections. Each connection has: - from_node: Source node index (int, 0-based into nodes array) - from_pin: Output pin name ("" for default output) - to_node: Target node index (int) or "material" for material output - to_pin: Input pin name, or material property when to_node="material": BaseColor, Metallic, Specular, Roughness, Anisotropy, EmissiveColor, Opacity, OpacityMask, Normal,…

NameTypeReqDescription
clear_existingboolean
connectionsstringyes
material_pathstringyes
nodesstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

cleanup_material_function ~102

Remove unconnected/orphaned nodes from a Material Function. Deletes: - FunctionOutput nodes with no input wired (duplicate output pins) - FunctionInput nodes whose output nobody consumes (duplicate input pins) - Orphaned internal nodes WARNING: Only call when the user explicitly asks to clean up. Args: dry_run: If true, reports what would be deleted without deleting.

NameTypeReqDescription
dry_runboolean
function_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

cleanup_material_graph ~185

Delete orphaned and/or dead-end nodes from a material graph. WARNING: NEVER call this tool unless the user explicitly asks to clean up or delete unconnected nodes. Users may intentionally keep disconnected nodes as references, scratchpads, or work-in-progress. Deleting them without permission will cause data loss and frustration. Args: mode: What to delete: "orphaned" — only nodes with NO connections at all (safest) "dead_ends" — nodes whose output goes nowhere (has inputs but no consumers) "all" — both orphaned and dead-ends dry_run: If true, reports what WOULD be deleted without actually deleting. Always use dry_run=true first to preview before deleting.

NameTypeReqDescription
dry_runboolean
material_pathstringyes
modestring
NameTypeReqDescription
resultstringyes

No examples provided.

clear_niagara_module_input ~190

Reset a module input to its default — equivalent to "Reset to Default" in the stack UI. Finds the override pin, breaks its connections, removes any orphan nodes that were exclusively feeding it (dynamic input node, map get, custom HLSL, etc.), then removes the override pin itself from the ParameterMapSet so the input reverts cleanly. Supports nested path syntax: input_name="Spawn Count.Position Array" clears the Position Array binding INSIDE the dynamic input attached to Spawn Count — without touching Spawn Count's own binding. Mirrors FNiagaraStackGraphUtilities::RemoveNodesForStackFunctionInputOverridePin (non-exported — replicated here).

NameTypeReqDescription
emitter_namestringyes
input_namestringyes
module_namestringyes
script_usagestringyes
system_pathstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

compile_blueprint ~21

Compile a Blueprint.

NameTypeReqDescription
blueprint_namestringyes
NameTypeReqDescription
resultstringyes

No examples provided.