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
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
- Malware scan not yet available for this package.Unverified
- CVE check failed: an unpatched critical CVE affects this package; the score is capped at 0. See how to fix → View diagnostics → Fail
- Runs setuptools.build_meta at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
- 8 of 78 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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.
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
claude mcp add aadeshrao123-unreal-mcp -- uvx unrealmcp
codex mcp add aadeshrao123-unreal-mcp -- uvx unrealmcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"aadeshrao123-unreal-mcp": {
"type": "local",
"command": [
"uvx",
"unrealmcp"
],
"enabled": true
}
}
} openclaw mcp add aadeshrao123-unreal-mcp --command uvx --arg unrealmcp
mcp_servers:
aadeshrao123-unreal-mcp:
command: "uvx"
args: ["unrealmcp"] {
"mcpServers": {
"aadeshrao123-unreal-mcp": {
"command": "uvx",
"args": [
"unrealmcp"
]
}
}
} 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.
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 |
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.
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.).
| Name | Type | Req | Description |
|---|---|---|---|
| blueprint_name | string | yes | – |
| event_type | string | – | – |
| function_name | string | – | – |
| message | string | – | – |
| node_type | string | yes | – |
| pos_x | number | – | – |
| pos_y | number | – | – |
| target_blueprint | string | – | – |
| target_function | string | – | – |
| variable_name | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| blueprint_path | string | yes | – |
| component_class | string | yes | – |
| component_name | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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}'.
| Name | Type | Req | Description |
|---|---|---|---|
| data | string | – | – |
| data_table_path | string | yes | – |
| row_name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
add_event_node ~58
Add an event node (ReceiveBeginPlay, ReceiveTick, ReceiveDestroyed, etc.).
| Name | Type | Req | Description |
|---|---|---|---|
| blueprint_name | string | yes | – |
| event_name | string | yes | – |
| pos_x | number | – | – |
| pos_y | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
add_function_input ~58
Add an input parameter to a Blueprint function.
| Name | Type | Req | Description |
|---|---|---|---|
| blueprint_name | string | yes | – |
| function_name | string | yes | – |
| is_array | boolean | – | – |
| param_name | string | yes | – |
| param_type | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
add_function_output ~58
Add an output parameter to a Blueprint function.
| Name | Type | Req | Description |
|---|---|---|---|
| blueprint_name | string | yes | – |
| function_name | string | yes | – |
| is_array | boolean | – | – |
| param_name | string | yes | – |
| param_type | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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"})
| Name | Type | Req | Description |
|---|---|---|---|
| asset_path | string | yes | – |
| modifier_type | string | yes | – |
| properties | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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})
| Name | Type | Req | Description |
|---|---|---|---|
| asset_path | string | yes | – |
| properties | – | – | – |
| trigger_type | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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": {...}}
| Name | Type | Req | Description |
|---|---|---|---|
| action_path | string | yes | – |
| context_path | string | yes | – |
| key | string | yes | – |
| modifiers | – | – | – |
| triggers | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| context_path | string | yes | – |
| mapping_index | integer | yes | – |
| modifier_type | string | yes | – |
| properties | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| context_path | string | yes | – |
| mapping_index | integer | yes | – |
| properties | – | – | – |
| trigger_type | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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}
| Name | Type | Req | Description |
|---|---|---|---|
| asset_path | string | yes | – |
| properties | – | – | – |
| trait_class | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| comments | string | yes | – |
| material_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| material_path | string | yes | – |
| node | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | – |
| function_path | string | yes | – |
| input_name | string | yes | – |
| input_type | string | – | – |
| pos_x | integer | – | – |
| pos_y | integer | – | – |
| preview_value | – | – | – |
| sort_priority | integer | – | – |
| use_preview_as_default | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | – |
| function_path | string | yes | – |
| output_name | string | yes | – |
| pos_x | integer | – | – |
| pos_y | integer | – | – |
| sort_priority | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| actor_name | string | yes | – |
| auto_activate | boolean | – | – |
| component_name | – | – | – |
| relative_location | – | – | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| module_name | string | yes | – |
| pin_name | string | yes | – |
| pin_type | string | – | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
add_niagara_custom_hlsl_output ~63
Add a typed output pin to a scratch pad module's Custom HLSL node.
| Name | Type | Req | Description |
|---|---|---|---|
| module_name | string | yes | – |
| pin_name | string | yes | – |
| pin_type | string | – | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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")
| Name | Type | Req | Description |
|---|---|---|---|
| emitter_name | – | – | – |
| emitter_path | – | – | – |
| system_path | string | yes | – |
| template | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| emitter_name | string | yes | – |
| event_name | string | yes | – |
| execution_mode | string | – | – |
| max_events_per_frame | integer | – | – |
| source_emitter | string | yes | – |
| spawn_number | integer | – | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| di_class | – | – | – |
| function_name | – | – | – |
| function_script | – | – | – |
| input_name | – | – | – |
| input_type | – | – | – |
| module_name | – | – | – |
| node_type | string | yes | – |
| op_name | – | – | – |
| pos_x | integer | – | – |
| pos_y | integer | – | – |
| script_path | – | – | – |
| system_path | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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, ...)
| Name | Type | Req | Description |
|---|---|---|---|
| module_name | string | yes | – |
| parameter_name | string | yes | – |
| parameter_type | string | – | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| module_name | string | yes | – |
| parameter_name | string | yes | – |
| parameter_type | string | – | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| emitter_name | string | yes | – |
| index | integer | – | – |
| module_path | string | yes | – |
| script_usage | string | yes | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | – | – |
| module_name | string | yes | – |
| node_class | – | – | – |
| node_id | – | – | – |
| node_index | – | – | – |
| pin_name | string | yes | – |
| pin_type | string | – | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| emitter_name | string | yes | – |
| material_path | – | – | – |
| mesh_path | – | – | – |
| renderer_type | string | yes | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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"
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | – | – |
| module_name | – | – | – |
| name | string | yes | – |
| script_path | – | – | – |
| system_path | – | – | – |
| type | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| emitter_name | string | yes | – |
| iteration_source | string | – | – |
| num_iterations | integer | – | – |
| stage_name | string | yes | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| default_value | – | – | – |
| parameter_name | string | yes | – |
| parameter_type | string | yes | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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")
| Name | Type | Req | Description |
|---|---|---|---|
| asset_path | string | yes | – |
| source_node_guid | string | yes | – |
| source_property | string | yes | – |
| target_node_guid | string | yes | – |
| target_property | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| asset_path | string | yes | – |
| condition_class | string | yes | – |
| instance_properties | – | – | – |
| operand | string | – | – |
| properties | – | – | – |
| state | – | – | – |
| state_guid | – | – | – |
| state_name | – | – | – |
| target | string | – | – |
| transition_index | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| asset_path | string | yes | – |
| evaluator_class | string | yes | – |
| instance_properties | – | – | – |
| properties | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| asset_path | string | yes | – |
| instance_properties | – | – | – |
| properties | – | – | – |
| task_class | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.)
| Name | Type | Req | Description |
|---|---|---|---|
| asset_path | string | yes | – |
| name | string | yes | – |
| type | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| asset_path | string | yes | – |
| name | string | yes | – |
| parent | – | – | – |
| parent_guid | – | – | – |
| parent_name | – | – | – |
| position | integer | – | – |
| selection_behavior | – | – | – |
| state_type | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| asset_path | string | yes | – |
| instance_properties | – | – | – |
| properties | – | – | – |
| state | – | – | – |
| state_guid | – | – | – |
| state_name | – | – | – |
| task_class | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| asset_path | string | yes | – |
| delay | – | – | – |
| delay_variance | – | – | – |
| event_tag | – | – | – |
| priority | string | – | – |
| state | – | – | – |
| state_guid | – | – | – |
| state_name | – | – | – |
| target_state | – | – | – |
| target_state_guid | – | – | – |
| target_state_name | – | – | – |
| trigger | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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"}
| Name | Type | Req | Description |
|---|---|---|---|
| index | integer | – | – |
| parent_widget_name | string | yes | – |
| slot_properties | – | – | – |
| widget_blueprint_path | string | yes | – |
| widget_class | string | yes | – |
| widget_name | string | – | – |
| widget_properties | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
analyze_blueprint_graph ~66
Analyze a specific graph — nodes, connections, and execution flow.
| Name | Type | Req | Description |
|---|---|---|---|
| blueprint_path | string | yes | – |
| graph_name | string | – | – |
| include_node_details | boolean | – | – |
| include_pin_connections | boolean | – | – |
| trace_execution_flow | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| module_name | string | yes | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
apply_material_to_actor ~42
Apply a material to a level actor.
| Name | Type | Req | Description |
|---|---|---|---|
| actor_name | string | yes | – |
| material_path | string | yes | – |
| material_slot | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
apply_material_to_blueprint ~51
Apply a material to a Blueprint component.
| Name | Type | Req | Description |
|---|---|---|---|
| blueprint_name | string | yes | – |
| component_name | string | yes | – |
| material_path | string | yes | – |
| material_slot | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| module_name | string | yes | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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)
| Name | Type | Req | Description |
|---|---|---|---|
| clear_existing | boolean | – | – |
| connections | string | yes | – |
| function_path | string | yes | – |
| nodes | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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,…
| Name | Type | Req | Description |
|---|---|---|---|
| clear_existing | boolean | – | – |
| connections | string | yes | – |
| material_path | string | yes | – |
| nodes | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | – |
| function_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | – |
| material_path | string | yes | – |
| mode | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
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).
| Name | Type | Req | Description |
|---|---|---|---|
| emitter_name | string | yes | – |
| input_name | string | yes | – |
| module_name | string | yes | – |
| script_usage | string | yes | – |
| system_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
compile_blueprint ~21
Compile a Blueprint.
| Name | Type | Req | Description |
|---|---|---|---|
| blueprint_name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.