Engine¶
90 tools. Back to the index.
add_niagara_data_interface¶
Additive.
Add a new UNiagaraDataInterface user-parameter binding to a Niagara system, inside an undo transaction, request a recompile and save the system; success requires the save. A user parameter that already has this name and class is left as is (added false, already_exists true, nothing saved); one with this name and any other type is an error. The inverse is remove_niagara_data_interface.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
parameter_name |
string | yes | Short name of the new user-parameter (no "User." prefix) |
data_interface_class |
string | yes | Data interface class name (e.g. "StaticMesh", "Texture"): a loaded data interface class with that name, else /Script/Niagara.NiagaraDataInterface<Name> |
Returns: { system_path: string, parameter_name: string, data_interface_class: string, data_interface_class_path?: string, offset?: int, added?: bool, already_exists?: bool, saved: bool, save_error?: string }
add_niagara_decal_renderer¶
Additive.
Add a NiagaraDecalRendererProperties (UNiagaraDecalRendererProperties) to a Niagara emitter with decal-specific defaults applied via reflection. Companion to add_niagara_renderer with renderer_type='Decal' — use this cmd when you want to seed decal config (material, source mode, visibility tag, screen-size fade) in the same call. Then requests a system compile and saves.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System (e.g. "/Game/Niagara/NS_Example"). |
emitter_name |
string | yes | Name of the emitter handle (the human-readable name in the system's emitter list). |
material_path |
string | no | Optional asset path; sets the renderer's Material UPROPERTY. |
source_mode |
string | no | Optional ENiagaraRendererSourceDataMode name (Particles/Emitter). Default Particles. |
renderer_visibility |
number | no | Optional int32 visibility tag (default 0). |
decal_screen_size_fade |
number | no | Optional float fade threshold (default 0.0). |
Returns: { system_path, emitter_name, renderer_index, renderer_class, material_path, source_mode, renderer_visibility, decal_screen_size_fade, renderer_count, save_error? }
add_niagara_emitter_from_template¶
Additive.
Add a copy of a template emitter to a Niagara system (canonical path). Loads the template/parent UNiagaraEmitter asset and adds a standalone copy of it to the system via FNiagaraEditorUtilities::AddEmitterToSystem — the same operation the Niagara editor's "Add Emitter" performs. This rebuilds the emitter's nodes and syncs the system overview graph, then requests a compile and saves the system.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System (e.g. "/Game/Niagara/NS_Example") |
emitter_asset_path |
string | yes | Asset path of the source UNiagaraEmitter template (e.g. "/Niagara/DefaultAssets/Templates/Emitters/Fountain.Fountain") |
Returns: { system_path: string, source_emitter_asset: string, emitter_handle_id: string, emitter_handle_name: string, is_valid: bool, is_enabled: bool, emitters_before: int, total_emitters: int, success: bool, saved: bool, save_error?: string }
add_niagara_emitter_handle¶
Additive.
Add an emitter to a Niagara system from an existing UNiagaraEmitter asset. Loads the emitter asset, gets its exposed version GUID, and calls UNiagaraSystem::AddEmitterHandle. The system is saved after modification.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the target Niagara System (e.g. "/Game/Niagara/NS_Example"). |
emitter_path |
string | no | Asset path of the source UNiagaraEmitter to add. |
emitter_name |
string | no | Optional desired name for the new handle; defaults to the source emitter's name |
Returns: { system_path: string, emitter_handle_name: string, emitter_handle_id: string, is_valid: bool, is_enabled: bool, total_emitters: int, saved: bool, save_error?: string }
add_niagara_event_handler¶
Additive, idempotent.
Add an event handler to a Niagara emitter (the writer for event_handler_count). Constructs an FNiagaraEventScriptProperties (allocating its UNiagaraScript with usage ParticleEventScript, mirroring add_niagara_simulation_stage) and adds it via UNiagaraEmitter::AddEventHandler. Idempotent by source_event_name: if a handler for that event already exists it is returned (already_exists=true) without adding a duplicate. The system is saved after modification. The handler's event-script graph is created in a default state — full event wiring must be completed in the Niagara editor (reported honestly via note); the handler properties are persisted and re-readable.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System (e.g. "/Game/Niagara/NS_Example"). |
emitter_name |
string | yes | Display name of the emitter handle within the system. |
source_event_name |
string | yes | Name of the source event this handler consumes (its identity key for idempotency). |
execution_mode |
string | no | Optional EveryParticle | SpawnedParticles | SingleParticle (default EveryParticle). |
spawn_number |
number | no | Optional int particles to spawn per event (SpawnedParticles mode). |
max_events_per_frame |
number | no | Optional int cap on events consumed per frame. |
min_spawn_number |
number | no | Optional int minimum spawn when random_spawn_number is set. |
random_spawn_number |
boolean | no | Optional bool: spawn a random count in [min_spawn_number, spawn_number]. |
source_emitter_id |
string | no | Optional GUID of the emitter handle that generates the event (default: this emitter). |
Returns: { system_path: string, emitter_name: string, usage_id: string, source_event_name: string, execution_mode: string, spawn_number: int, max_events_per_frame: int, already_exists: bool, event_handler_count: int, saved: bool, save_error?: string, note: string }
add_niagara_light_renderer¶
Additive.
Add a NiagaraLightRendererProperties (UNiagaraLightRendererProperties) to a Niagara emitter with light-specific defaults applied via reflection. Companion to add_niagara_renderer with renderer_type='Light' — use this cmd when you want to seed light config (radius scale, falloff mode, affects-translucency, color add) in the same call. Then requests a system compile and saves.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System (e.g. "/Game/Niagara/NS_Example"). |
emitter_name |
string | yes | Name of the emitter handle. |
use_inverse_squared_falloff |
boolean | no | Optional bool (default true). True => UE physical light; false => use DefaultExponent below. |
affects_translucency |
boolean | no | Optional bool (default true). Set false for cheaper lights that shouldn't bleed through translucent surfaces. |
allow_mega_lights |
boolean | no | Optional bool (default false). True => MegaLights path (Lumen); see bMegaLightsCastShadows below. |
mega_lights_cast_shadows |
boolean | no | Optional bool (default false). |
alpha_scales_brightness |
boolean | no | Optional bool (default true). When true, particle color alpha modulates brightness. |
radius_scale |
number | no | Optional float (default 1.0, ClampMin=0). |
default_exponent |
number | no | Optional float (default 1.0, ClampMin=0); only used when use_inverse_squared_falloff=false. |
specular_scale |
number | no | Optional float (default 1.0, ClampMin=0). |
diffuse_scale |
number | no | Optional float (default 1.0, ClampMin=0). |
color_add |
array | no | Optional [r, g, b] static color shift. |
Returns: { system_path, emitter_name, renderer_index, renderer_class, radius_scale, default_exponent, specular_scale, diffuse_scale, color_add:{}, renderer_count, save_error? }
add_niagara_module_to_graph¶
Additive.
Insert a UNiagaraScript module at a specific index in a Niagara emitter's particle stack graph.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
module_script_path |
string | yes | Asset path of the module UNiagaraScript |
script_group |
string | no | Optional "spawn" or "update"; defaults to "update" |
target_index |
number | no | Optional stack index for insertion; INDEX_NONE (-1) appends to the end |
Returns: { system_path: string, emitter_name: string, module_script_path: string, script_group: string, target_index: int, module_node_name: string, added: bool, saved: bool, save_error?: string }
add_niagara_module_to_stack¶
Additive.
Insert an engine module script into a Niagara emitter's particle stack. Loads the module UNiagaraScript and inserts it at the end of the emitter's ParticleSpawn or ParticleUpdate stack via FNiagaraStackGraphUtilities::AddScriptModuleToStack, then recompiles and saves. NOTE: only the module's script-default inputs are applied — per-instance input overrides are out of scope (the response reports added_with_defaults=true). Stateless emitters (no editable graph) return a clean error.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Display name of the emitter handle to modify. |
module_script_path |
string | yes | Asset path of the module UNiagaraScript (e.g. "/Niagara/Modules/Update/Forces/GravityForce.GravityForce") |
script_group |
string | no | Optional "spawn" (ParticleSpawnScript) or "update" (ParticleUpdateScript); defaults to "update" |
Returns: { system_path: string, emitter_name: string, module_script_path: string, script_group: string, module_node_name: string, added_with_defaults: bool, success: bool, saved: bool, save_error?: string }
add_niagara_renderer¶
Additive.
Add a new renderer (Sprite / Ribbon / Mesh / Light) to a Niagara emitter. Creates a UNiagaraRendererProperties instance of the requested concrete class (Sprite / Ribbon / Mesh / Light), optionally sets the Material UPROPERTY, and appends it to the emitter's RendererProperties array. Then requests a system compile and saves the asset.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System (e.g. "/Game/Niagara/NS_Example"). |
emitter_name |
string | yes | Name of the emitter handle (the human-readable name in the system's emitter list). |
renderer_type |
string | yes | One of "Sprite" / "Ribbon" / "Mesh" / "Light" (case-insensitive). |
material_path |
string | no | Optional asset path; sets the renderer's Material property. If omitted, the renderer is added with a null material (still a valid empty renderer). |
Returns: { system_path: string, emitter_name: string, renderer_type: string, renderer_class: string, renderer_index: int, material_path: string, renderer_count: int, save_error?: string }
add_niagara_simulation_stage¶
Additive.
Add a simulation stage to a Niagara emitter. Creates a UNiagaraSimulationStageGeneric, configures it with default iteration source (Particles), execute behavior (Always), and GPU dispatch type (OneD), then adds it to the emitter via FVersionedNiagaraEmitterData::AddSimulationStage. The system is saved after modification. The stage's graph is created in a default state; further graph wiring must be completed in the Niagara editor graph.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Display name of the emitter handle. |
stage_name |
string | yes | Name for the new simulation stage. |
iteration_count |
number | no | Optional iteration count for the stage; defaults to 1 |
Returns: { system_path: string, emitter_name: string, stage_name: string, requested_iteration_count: int, total_simulation_stages: int, success: bool }
create_niagara_system¶
Additive.
Creates (or loads, idempotently) an empty UNiagaraSystem asset and saves it. Uses NewObject + UNiagaraSystemFactoryNew::InitializeSystem (headless-safe); the new system has its system spawn/update scripts wired but no emitters.
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | yes | Name of the Niagara System asset to create. |
package_path |
string | no | Target content folder; defaults to /Game/Niagara |
Returns: { system_name: string, asset_path: string, created: bool, already_exists?: bool, saved?: bool, save_error?: string, emitter_count: int }
duplicate_niagara_emitter_handle¶
Additive.
Duplicate an emitter handle of a Niagara System asset under a new name, keeping its enabled state, then save the system. Returns the actual name and id of the copy plus total_emitters; a failed save is not reported in the reply. Find handle names with get_niagara_emitter_handles.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Niagara System asset path, e.g. "/Game/FX/NS_Fire"; the call fails without it. |
source_emitter_name |
string | yes | Display name of the emitter handle to copy (case-insensitive), as get_niagara_emitter_handles lists it. |
new_emitter_name |
string | no | Name for the copy (default "<source_emitter_name>_Copy"). |
Returns: { system_path: string, source_emitter_name: string, new_emitter_name: string, new_emitter_id: string, is_valid: bool, total_emitters: int }
duplicate_niagara_module_in_stack¶
Additive.
Duplicate a UNiagaraNodeFunctionCall module in a Niagara emitter's spawn or update graph.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
module_name |
string | yes | Display name of the module to duplicate |
script_group |
string | no | Optional "spawn" or "update"; defaults to "update" |
target_index_override |
number | no | Optional absolute target index for the duplicate; defaults to one-past-source |
Returns: { system_path: string, emitter_name: string, script_group: string, source_module_name: string, new_module_name: string, inserted_index: int, duplicated: bool, saved: bool, save_error?: string }
editor_status¶
Read-only.
Prove the Unreal editor is alive and TICKING: a no-argument game-thread liveness/health probe, and the first call to make when the MCP bridge goes quiet. It runs on the GAME THREAD via the bridge's command drain, so a reply proves the game thread is pumping -- unlike a transport-only ping, which a wedged editor still answers. After a "Connection reset" use it to tell an editor CRASH (this errors, the reconnect refuses) from a mere tool TIMEOUT (this returns alive=true); call it twice and diff frame_counter to rule out a deadlock, since a frozen game thread replies once but never advances the frame. Also reports whether PIE is running (pie_active / is_simulating) and the open editor world, without starting or stopping anything. Read-only and cheap; safe to call any time.
No parameters.
Returns: { alive: bool, gis_running: bool, exit_requested: bool, is_editor: bool, frame_counter: number, pie_active: bool, is_simulating: bool, editor_world: string, world_context_count: int }
get_engine_info¶
Read-only.
Read the GEngine object (engine_name, engine_class) and enumerate every world context with its world_name, world_type (Editor/PIE/Game/...) and has_game_instance flag. Use it to see how many worlds exist at once -- in co-op PIE the host and each client are SEPARATE world contexts, so this is how you confirm two PIE worlds are up before reading state that must be checked on both sides. Sibling: get_game_instance_info adds the GameInstance class; editor_status is the cheaper "is the editor alive" probe.
No parameters.
Returns: { engine_name: string, engine_class: string, world_context_count: int, worlds: [object] }
get_engine_settings¶
Read-only.
Read exactly two live engine knobs: max_fps (UEngine::GetMaxFPS) and screen_percentage (Scalability resolution scale). NOT a general settings dump -- for project/plugin settings use get_project_settings_value or get_engine_ini_value, for scalability buckets get_scalability_levels, and for frame timing get_fps_info / frame_timing.
No parameters.
Returns: { max_fps: number, screen_percentage: number }
get_game_instance_info¶
Read-only.
Read the live UGameInstance (name, class, object path) plus every engine world context (world_name + world_type: Editor/PIE/Game/EditorPreview/Inactive). A UGameInstance only exists while PIE or a game world is running, so at rest exists=false with empty strings is the NORMAL answer, not an error -- use it to answer "is a game session up, and which GameInstance class did it pick?". Pick this over get_engine_info when you care about the GameInstance itself; get_engine_info answers the same world-context question without it.
No parameters.
Returns: { exists: bool, game_instance_name: string, game_instance_class: string, game_instance_path: string, world_context_count: int, worlds: [object] }
get_niagara_component_matrix¶
Read-only.
Reads a Matrix (FMatrix4f) override parameter back off a spawned Niagara component — the round-trip reader for set_niagara_component_matrix. UNiagaraComponent exposes no GetNiagaraVariableMatrix, so this reads the value straight out of the component's OverrideParameters store (FNiagaraParameterStore) by looking up the Matrix4 FNiagaraVariable; the override is stored as FMatrix44f. Returns found:false with an empty matrix (never a faked identity) when the variable has no local override on the component.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_name |
string | yes | Owner actor identifier (internal name or editor label). |
variable_name |
string | yes | Niagara variable name to read. |
Returns: { actor_name: string, variable_name: string, variable_type: string, found: bool, matrix: [number x 16] }
get_niagara_data_interface_info¶
Read-only.
Get detail and a UPROPERTY dump for one UNiagaraDataInterface user-parameter binding on a Niagara system.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
parameter_name |
string | yes | Short name of the user-parameter DI |
Returns: { system_path: string, parameter_name: string, data_interface_class: string, data_interface_class_path: string, path_name: string, properties: [{ name, type }], property_count: int }
get_niagara_data_interfaces¶
Read-only.
List all UNiagaraDataInterface user-parameter bindings on a Niagara system. parameter_name is the user parameter's short name (no "User." prefix), the name the other data interface tools take; object_name and path_name name the data interface object itself; index is its slot in the system's data interface store.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
Returns: { system_path: string, count: int, data_interfaces: [{ index, parameter_name, object_name, data_interface_class, data_interface_class_path, path_name }] }
get_niagara_effect_type¶
Read-only.
Get the EffectType configuration of a Niagara system. Reads the UNiagaraEffectType associated with the system and returns its key properties: UpdateFrequency, CullReaction, bAllowCullingForLocalPlayers.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
Returns: { system_path: string, effect_type_path: string, update_frequency: string, cull_reaction: string, allows_culling: bool }
get_niagara_emitter_data_interfaces¶
Read-only.
List the data interface bindings on a Niagara emitter (read-only). Reads the FVersionedNiagaraEmitterData::EmitterDependencies array (TArray<FNiagaraDataInterfaceEmitterBinding>). Each binding has a name, type, interface_class, interface_path, and instance_index. Adding or removing data interface bindings on a script requires view-models (FNiagaraStackGraphUtilities AddDataInterface) and is editor-only -- this command lists them but does not mutate them.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
Returns: { system_path: string, emitter_name: string, data_interface_count: int, data_interfaces: [{ emitter_name, binding_mode }] }
get_niagara_emitter_handle_info¶
Read-only.
Read one emitter handle of a Niagara System asset, chosen by display name or 0-based index: its id, id name, enabled and valid flags, version GUID and, when it has emitter data, its local-space and deprecated flags. Read-only; list every handle with get_niagara_emitter_handles.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Niagara System asset path, e.g. "/Game/FX/NS_Fire"; the call fails without it. |
emitter_name |
string | no | Display name of the handle (case-insensitive); when non-empty it wins over emitter_index. |
emitter_index |
number | no | 0-based position in the emitter list of the system, used only when emitter_name is absent or empty. |
Returns: { system_path: string, emitter_name: string, emitter_id: string, emitter_id_name: string, is_enabled: bool, is_valid: bool, emitter_version: string, is_local_space?: bool, is_deprecated?: bool }
get_niagara_emitter_handles¶
Read-only.
List every emitter handle of a Niagara System asset with its display name, id GUID, enabled and valid flags, plus emitter_count. Read-only; the names feed the other emitter tools, and get_niagara_emitter_handle_info gives one handle in detail.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Niagara System asset path, e.g. "/Game/FX/NS_Fire"; the call fails without it. |
Returns: { system_path: string, emitter_count: int, emitter_handles: [{ name, id, is_enabled, is_valid }] }
get_niagara_emitter_renderers¶
Read-only.
List all renderers on a Niagara emitter (read-only). Each entry also dumps the authored renderer UPROPERTYs (base bIsEnabled/SortOrderHint/MotionVectorSetting/bAllowInCullProxies plus the Sprite/Mesh-specific fields present on the concrete class) and, for Mesh renderers, the assigned static-mesh slots — so set_niagara_renderer_properties / set_niagara_mesh_renderer_mesh round-trip.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
Returns: { system_path: string, emitter_name: string, renderer_count: int, renderers: [{ index, class, display_name, material_path, properties:{...}, meshes?:[{ slot, mesh_path }] }] }
get_niagara_emitter_runtime_summary¶
Read-only.
Flat readback of a Niagara emitter's runtime knobs and counts.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
Returns: { system_path: string, emitter_name: string, sim_target: string, bounds_mode: string, bounds_min: string, bounds_max: string, allocation_mode: string, pre_allocation_count: int, max_gpu_particles: int, local_space: bool, deterministic: bool, requires_persistent_ids: bool, update_module_count: int, spawn_module_count: int, emitter_spawn_module_count: int, emitter_update_module_count: int, renderer_count: int, event_handler_count: int, simulation_stage_count: int }
get_niagara_emitter_sim_target¶
Read-only.
Get the simulation target configuration of a Niagara emitter. Reads SimTarget, bLocalSpace and bDeterministic from the emitter's FVersionedNiagaraEmitterData.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System (e.g. "/Game/Niagara/NS_Example"). |
emitter_name |
string | yes | Display name of the emitter handle. |
Returns: { system_path: string, emitter_name: string, sim_target: string, is_local_space: bool, is_deterministic: bool }
get_niagara_event_handlers¶
Read-only.
List a Niagara emitter's event handlers and their properties. Reads FVersionedNiagaraEmitterData::GetEventHandlers(); each entry reports its usage_id (the remove key), source_event_name, execution_mode, spawn/event counts and source_emitter_id.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Display name of the emitter handle within the system. |
Returns: { system_path: string, emitter_name: string, event_handler_count: int, event_handlers: [{usage_id, source_event_name, execution_mode, spawn_number, max_events_per_frame, min_spawn_number, random_spawn_number, source_emitter_id, has_script}] }
get_niagara_module_info¶
Read-only.
Read detail for a single UNiagaraNodeFunctionCall module in a Niagara emitter's spawn or update graph.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
module_name |
string | yes | Display name of the module function-call node |
script_group |
string | no | Optional "spawn" or "update"; defaults to "update" |
Returns: { system_path: string, emitter_name: string, script_group: string, module_name: string, node_guid: string, stack_index: int, total_modules_in_stack: int, function_script?: string, function_script_class?: string, is_enabled?: bool, input_pin_count: int, output_pin_count: int, is_deprecated: bool }
get_niagara_module_input¶
Read-only.
Read a Niagara module input override from the rapid-iteration store. Locates the module function-call node and the named input, reports the input's real type, and reads back any rapid-iteration override currently set for it. found=false means no override exists yet (the module is using its script default); in that case 'value' is omitted.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Display name of the emitter handle. |
module_node_name |
string | yes | The module function-call node name. |
input_name |
string | yes | Leaf name of the module input (e.g. "Drag"). |
Returns: { system_path: string, emitter_name: string, module_node_name: string, input_name: string, ri_param_name: string, value_type: string, found: bool, value?: number | [number, number, number] | [number, number, number, number], success: bool }
get_niagara_module_stack¶
Read-only.
Read BOTH the spawn AND update module stacks of a Niagara emitter in one call (read-only). Runs the same export-safe enumeration as list_niagara_modules twice, returning the modules grouped as spawn:[...] and update:[...] (each entry also carries its own script_group tag). Honest-empty arrays per group, with a spawn_note/update_note if a graph could not be resolved.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
Returns: { system_path: string, emitter_name: string, spawn: [{...}], update: [{...}], spawn_module_count: int, update_module_count: int, total_modules_in_stack: int, spawn_note?: string, update_note?: string }
get_niagara_renderer_info¶
Read-only.
Dump the full property set of a specific renderer instance owned by a system emitter. Resolves the system via path, the emitter via name (or handle_index), and the renderer via index — then runs FJsonObjectConverter::UStructToJsonObject on the renderer to produce a flat property map. get_niagara_emitter_renderers lists every renderer; this cmd returns the full UPROPERTY surface of one renderer.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Content path to the UNiagaraSystem asset. |
emitter_name |
string | yes | Name of the emitter handle (preferred) or its FName. |
renderer_index |
number | yes | 0-based index into FVersionedNiagaraEmitterData::RendererProperties. |
handle_index |
number | no | Optional fallback when multiple emitters share a name (0-based). |
Returns: { system_path, emitter_name, renderer_index, renderer_class, renderer_class_path, properties: {...} }
get_niagara_scalability_settings¶
Read-only.
Get the scalability configuration of a Niagara system. Reads scalability settings from the system's UNiagaraEffectType: MaxDistance, MaxInstances (system-level), ScaleSpawnCount (emitter-level), and whether distance culling is active.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
Returns: { system_path: string, effect_type_path: string, has_scalability_settings: bool, max_distance: number, max_instances: int, scale_spawn_count: number, distance_culling_enabled: bool }
get_niagara_simulation_stages¶
Read-only.
Read the simulation stages of a Niagara emitter (read-only). Same enumeration as list_niagara_simulation_stages, but accepts an OPTIONAL stage_index (preferred) or stage_name to return just the matching stage; with no identifier it returns the full array. Each entry reports index, stage_name, class, enabled, and (for UNiagaraSimulationStageGeneric) iteration_source. Honest-empty when the emitter has no stages or the filter matches nothing.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
stage_index |
number | no | Optional 0-based index of a single stage to return. |
stage_name |
string | no | Optional SimulationStageName to match if stage_index is not supplied. |
Returns: { system_path: string, emitter_name: string, simulation_stage_count: int, total_simulation_stages: int, simulation_stages: [{ index, stage_name, class, enabled, iteration_source? }] }
get_niagara_system_info¶
Read-only.
Reads metadata for a UNiagaraSystem: emitter count, warmup time and exposed user parameters.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System (e.g. /Game/Niagara/NS_Example or /Game/Niagara/NS_Example.NS_Example) |
Returns: { system_name: string, system_path: string, emitter_count: int, num_user_parameters: int, warmup_time: number, user_parameters: [{ name, type }] }
get_niagara_system_properties¶
Read-only.
Read the render/system flags + fixed bounds of a UNiagaraSystem asset via reflection (GetPropertyValue_InContainer + GetFixedBounds). Read-only; no recompile.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
Returns: { system_path, cast_shadow, override_cast_shadow, receives_decals, override_receives_decals, render_custom_depth, override_render_custom_depth, custom_depth_stencil_value, override_custom_depth_stencil_value, translucency_sort_priority, override_translucency_sort_priority, translucency_sort_distance_offset, override_translucency_sort_distance_offset, support_large_world_coordinates, require_current_frame_data, b_fixed_bounds, fixed_bounds:{min,max}, fixed_bounds_valid }
get_niagara_system_warmup_time¶
Read-only.
Read the warmup and determinism settings of a Niagara System asset: warmup_time in seconds, warmup_tick_count, warmup_tick_delta, needs_warmup and deterministic. Read-only; change them with set_niagara_system_warmup_time, set_niagara_system_warmup_tick_count, set_niagara_system_warmup_tick_delta and set_niagara_system_deterministic.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Niagara System asset path, e.g. "/Game/FX/NS_Fire"; the call fails without it. |
Returns: { system_path: string, warmup_time: number, warmup_tick_count: int, warmup_tick_delta: number, needs_warmup: bool, deterministic: bool }
get_niagara_user_parameter¶
Read-only.
Read a user-exposed parameter's current value from a Niagara System's exposed store. Resolves the parameter by short name (no "User." prefix) and the supplied type token, reads the POD value back. Round-trip companion to set_niagara_user_parameter.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
parameter_name |
string | yes | User parameter name (without the "User." prefix). |
type |
string | no | Type token: Float|Vector|Vec2|Vec4|Color|Bool|Int (case-insensitive); defaults to Float |
Returns: { system_path: string, parameter_name: string, parameter_type: string, found: bool, value_read_back?: number|bool|[number...] }
list_niagara_data_interface_classes¶
Read-only.
Enumerate every concrete UNiagaraDataInterface subclass registered in this process via TObjectIterator. Skips Abstract (those are base classes only). Used to discover what data-interface class strings are valid for add_niagara_data_interface.
No parameters.
Returns: { count: int, classes: [{class_name, class_path, display_name, abstract, class_flags}] }
list_niagara_modules¶
Read-only.
List the module function-call nodes on ONE stack of a Niagara emitter (read-only). Resolves the emitter's spawn OR update group graph (script_group, default "update") via the export-safe ResolveEmitterOutputNode + UNiagaraGraph::GetNodesOfClass path, then reports each UNiagaraNodeFunctionCall: index, module_name (GetFunctionName), node_guid, function_script(+class), is_enabled (IsNodeEnabled), is_deprecated, input/output pin counts. Honest-empty modules:[] when the stack has no modules or the graph is not resolvable (a note is returned).
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
script_group |
string | no | Optional "spawn" or "update"; defaults to "update". |
Returns: { system_path: string, emitter_name: string, script_group: string, module_count: int, total_modules_in_stack: int, modules: [{ index, script_group, module_name, node_guid, function_script?, function_script_class?, is_enabled, is_deprecated, input_pin_count, output_pin_count, total_modules_in_stack }], note?: string }
list_niagara_renderer_classes¶
Read-only.
Enumerate every concrete UNiagaraRendererProperties subclass registered in this process via TObjectIterator. Skips Abstract (those are base classes only). Used to discover what renderer_class strings are valid for add_niagara_renderer.
No parameters.
Returns: { count: int, classes: [{class_name, class_path, display_name, abstract, class_flags}] }
list_niagara_simulation_stages¶
Read-only.
List all simulation stages on a Niagara emitter (read-only). Resolves the system by path and the emitter by name, then enumerates FVersionedNiagaraEmitterData::GetSimulationStages(). Each entry reports index, stage_name (SimulationStageName), class, enabled, and (for UNiagaraSimulationStageGeneric stages) iteration_source. Honest-empty: returns simulation_stages:[] / simulation_stage_count:0 when the emitter has no stages.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
Returns: { system_path: string, emitter_name: string, simulation_stage_count: int, simulation_stages: [{ index, stage_name, class, enabled, iteration_source? }] }
move_niagara_simulation_stage¶
Destructive, idempotent.
Reorder a Niagara simulation stage on its emitter's stage list by moving it to a target index. Resolves the stage on FVersionedNiagaraEmitterData::GetSimulationStages() (stage_index or stage_name), validates target_index is in range, then calls UNiagaraEmitter::MoveSimulationStageToIndex with the emitter version GUID, requests a system compile and saves the asset. Idempotent: an in-position move reports already_at_target:true with the live before/after indices. NiagaraEmitter.h (NIAGARA_API).
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Display name of the emitter handle owning the stage. |
target_index |
number | yes | Required 0-based target index the stage should occupy after the move (must be in [0, total_simulation_stages)). |
stage_index |
number | no | Optional 0-based index into the emitter's simulation stages; takes precedence over stage_name when both are supplied. |
stage_name |
string | no | Optional SimulationStageName to match if stage_index is not supplied. |
Returns: { system_path, emitter_name, stage_index, stage_name, stage_class, target_index, moved, already_at_target, before_index, after_index, total_simulation_stages, saved, save_error? }
remove_niagara_data_interface¶
Destructive.
Remove a UNiagaraDataInterface user-parameter binding from a Niagara system by name, inside an undo transaction, request a recompile and save the system; success requires the save. A name with no user parameter, or a user parameter that is not a data interface, is an error and nothing is changed.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
parameter_name |
string | yes | Short name of the user-parameter to remove (no "User." prefix) |
Returns: { system_path: string, parameter_name: string, data_interface_class: string, removed: bool, saved: bool, save_error?: string }
remove_niagara_emitter_handle¶
Destructive.
Remove an emitter handle from a Niagara system by name or index.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | no | Optional display name of the emitter handle to remove |
emitter_index |
number | no | Optional zero-based index; used if emitter_name not provided |
Returns: { system_path: string, removed_emitter_name: string, removed_emitter_id: string, emitters_before: int, emitters_after: int, removed: bool }
remove_niagara_event_handler¶
Destructive, idempotent.
Remove an event handler from a Niagara emitter by its usage_id. Calls UNiagaraEmitter::RemoveEventHandlerByUsageId. Idempotent: if no handler with that usage_id exists it reports already_removed without error. The system is saved after a removal.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Display name of the emitter handle within the system. |
usage_id |
string | yes | The handler's usage_id (as returned by add_niagara_event_handler / get_niagara_event_handlers). |
Returns: { system_path: string, emitter_name: string, usage_id: string, already_removed: bool, removed: bool, event_handler_count: int, saved: bool, save_error?: string }
remove_niagara_module_from_stack¶
Destructive.
Remove a UNiagaraNodeFunctionCall module from a Niagara emitter's spawn or update graph.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
module_name |
string | yes | Display name of the module function-call node to remove |
script_group |
string | no | Optional "spawn" or "update"; defaults to "update" |
Returns: { system_path: string, emitter_name: string, script_group: string, module_name: string, removed: bool, saved: bool, save_error?: string }
remove_niagara_renderer¶
Destructive.
Remove a renderer from a Niagara emitter by index. Validates that renderer_index is in range, removes from the emitter's RendererProperties array, requests a system compile and saves the asset.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
renderer_index |
number | yes | 0-based index into the emitter's renderers list (use get_niagara_emitter_renderers to find the index) |
Returns: { system_path: string, emitter_name: string, removed_renderer_index: int, removed_renderer_class: string, renderer_count_after: int, save_error?: string }
remove_niagara_simulation_stage¶
Destructive, idempotent.
Remove a Niagara simulation stage from an emitter's stage list by stage_index or stage_name. Resolves the stage on FVersionedNiagaraEmitterData::GetSimulationStages() (stage_index preferred, stage_name matches SimulationStageName), then calls UNiagaraEmitter::RemoveSimulationStage with the emitter version GUID, requests a system compile and saves the asset. Idempotent: a missing stage reports already_removed:true with the current total_simulation_stages. NiagaraEmitter.h (NIAGARA_API).
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Display name of the emitter handle owning the stage. |
stage_index |
number | no | Optional 0-based index into the emitter's simulation stages; takes precedence over stage_name when both are supplied. |
stage_name |
string | no | Optional SimulationStageName to match if stage_index is not supplied (matches add_niagara_simulation_stage's name). |
Returns: { system_path, emitter_name, stage_index, stage_name, stage_class, removed, already_removed, total_simulation_stages, saved, save_error? }
rename_niagara_emitter_handle¶
Destructive.
Rename an emitter handle of a Niagara System asset and save the system. The engine sanitizes the name and makes it unique among the emitters of the system, so read new_name and verified (false when the stored name differs from the request); a failed save is not reported.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Niagara System asset path, e.g. "/Game/FX/NS_Fire"; the call fails without it. |
current_name |
string | yes | Current display name of the emitter handle (case-insensitive), as get_niagara_emitter_handles lists it. |
new_name |
string | yes | Requested display name; it may come back sanitized or with a numeric suffix. |
Returns: { system_path: string, old_name: string, new_name: string, verified: bool }
reorder_niagara_modules¶
Destructive.
Move a UNiagaraNodeFunctionCall module to a new index in its Niagara emitter stack (in-place reordering).
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
module_name |
string | yes | Display name of the module to move |
target_index |
number | yes | Non-negative target index in the ordered stack |
script_group |
string | no | Optional "spawn" or "update"; defaults to "update" |
Returns: { system_path: string, emitter_name: string, script_group: string, module_name: string, old_index: int, new_index: int, target_index: int, reordered: bool, saved: bool, save_error?: string }
set_niagara_component_bool¶
Destructive, idempotent.
Sets a bool override parameter on a spawned Niagara component. Resolves the UNiagaraComponent on the owner actor and calls SetVariableBool, then reads it back.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_name |
string | yes | Owner actor identifier (internal name or editor label). |
variable_name |
string | yes | Niagara variable name (override is added locally if needed). |
value |
boolean | no | Bool value to set. |
Returns: { actor_name: string, variable_name: string, variable_type: string, set: bool, verified: bool, value_read_back: bool }
set_niagara_component_color¶
Destructive, idempotent.
Sets a LinearColor override parameter on a spawned Niagara component. Resolves the UNiagaraComponent on the owner actor and calls SetVariableLinearColor, then reads it back.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_name |
string | yes | Owner actor identifier (internal name or editor label). |
variable_name |
string | yes | Niagara variable name (override is added locally if needed). |
color |
array | no | Color value [R, G, B, A] (A defaults to 1.0 if omitted). |
Returns: { actor_name: string, variable_name: string, variable_type: string, set: bool, verified: bool, value_read_back: [number, number, number, number] }
set_niagara_component_float¶
Destructive, idempotent.
Sets a float override parameter on a spawned Niagara component. Resolves the UNiagaraComponent on the owner actor (matched by internal name or editor label) and calls SetVariableFloat, then reads it back.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_name |
string | yes | Owner actor identifier (internal name or editor label). |
variable_name |
string | yes | Niagara variable name (override is added locally if needed). |
value |
number | no | Float value to set. |
Returns: { actor_name: string, variable_name: string, variable_type: string, set: bool, verified: bool, value_read_back: number }
set_niagara_component_int¶
Destructive, idempotent.
Sets an int32 override parameter on a spawned Niagara component. Resolves the UNiagaraComponent on the owner actor and calls SetVariableInt, then reads it back via GetNiagaraVariableInt.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_name |
string | yes | Owner actor identifier (internal name or editor label). |
variable_name |
string | yes | Niagara variable name (override is added locally if needed). |
value |
number | no | Integer value to set. |
Returns: { actor_name: string, variable_name: string, variable_type: string, set: bool, verified: bool, value_read_back: integer }
set_niagara_component_matrix¶
Destructive, idempotent.
Sets a Matrix (FMatrix) override parameter on a spawned Niagara component. Resolves the UNiagaraComponent on the owner actor and calls SetVariableMatrix with a 4x4 row-major matrix built from 16 floats. UNiagaraComponent does NOT expose GetNiagaraVariableMatrix as public API, so round-trip readback is not available; verified:true means the set call succeeded.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_name |
string | yes | Owner actor identifier (internal name or editor label). |
variable_name |
string | yes | Niagara variable name (override is added locally if needed). |
matrix |
array | no | Array of 16 numbers in 4x4 row-major order (M00, M01, ..., M33). |
Returns: { actor_name: string, variable_name: string, variable_type: string, set: bool, verified: bool, value_read_back: [number x 16] }
set_niagara_component_object¶
Destructive, idempotent.
Sets an Object (UObject*) override parameter on a spawned Niagara component by loading the UObject at the given object_path. Resolves the UNiagaraComponent on the owner actor and calls SetVariableObject, then reads it back via GetNiagaraVariableObject and returns its GetPathName() as a string.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_name |
string | yes | Owner actor identifier (internal name or editor label). |
variable_name |
string | yes | Niagara variable name (override is added locally if needed). |
object_path |
string | yes | Asset path of the UObject to bind (e.g. "/Game/Materials/M_Heat.M_Heat"). |
Returns: { actor_name: string, variable_name: string, variable_type: string, set: bool, verified: bool, object_path_read_back: string, object_class_read_back: string }
set_niagara_component_position¶
Destructive, idempotent.
Sets a Position (FVector) override parameter on a spawned Niagara component. Resolves the UNiagaraComponent on the owner actor and calls SetVariablePosition, then reads it back via GetNiagaraVariablePosition.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_name |
string | yes | Owner actor identifier (internal name or editor label). |
variable_name |
string | yes | Niagara variable name (override is added locally if needed). |
position |
array | no | World-space position override as [x, y, z]. |
Returns: { actor_name: string, variable_name: string, variable_type: string, set: bool, verified: bool, value_read_back: [number, number, number] }
set_niagara_component_quat¶
Destructive, idempotent.
Sets a Quat (FQuat) override parameter on a spawned Niagara component. Resolves the UNiagaraComponent on the owner actor and calls SetVariableQuat, then reads it back via GetNiagaraVariableQuat and serialises as 4 floats in (W, X, Y, Z) order.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_name |
string | yes | Owner actor identifier (internal name or editor label). |
variable_name |
string | yes | Niagara variable name (override is added locally if needed). |
w |
number | no | W (scalar) component of the quaternion. |
x |
number | no | X component of the quaternion. |
y |
number | no | Y component of the quaternion. |
z |
number | no | Z component of the quaternion. |
Returns: { actor_name: string, variable_name: string, variable_type: string, set: bool, verified: bool, value_read_back: [number, number, number, number] }
set_niagara_component_vec2¶
Destructive, idempotent.
Sets a Vec2 (FVector2D) override parameter on a spawned Niagara component. Resolves the UNiagaraComponent on the owner actor and calls SetVariableVec2, then reads it back via GetNiagaraVariableVec2.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_name |
string | yes | Owner actor identifier (internal name or editor label). |
variable_name |
string | yes | Niagara variable name (override is added locally if needed). |
x |
number | no | X component of the Vec2. |
y |
number | no | Y component of the Vec2. |
Returns: { actor_name: string, variable_name: string, variable_type: string, set: bool, verified: bool, value_read_back: [number, number] }
set_niagara_component_vec4¶
Destructive, idempotent.
Sets a Vec4 (FVector4) override parameter on a spawned Niagara component. Resolves the UNiagaraComponent on the owner actor and calls SetVariableVec4, then reads it back via GetNiagaraVariableVec4.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_name |
string | yes | Owner actor identifier (internal name or editor label). |
variable_name |
string | yes | Niagara variable name (override is added locally if needed). |
x |
number | no | X component of the Vec4. |
y |
number | no | Y component of the Vec4. |
z |
number | no | Z component of the Vec4. |
w |
number | no | W component of the Vec4. |
Returns: { actor_name: string, variable_name: string, variable_type: string, set: bool, verified: bool, value_read_back: [number, number, number, number] }
set_niagara_component_vector¶
Destructive, idempotent.
Sets a Vector3 override parameter on a spawned Niagara component. Resolves the UNiagaraComponent on the owner actor and calls SetVariableVec3, then reads it back.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_name |
string | yes | Owner actor identifier (internal name or editor label). |
variable_name |
string | yes | Niagara variable name (override is added locally if needed). |
vector |
array | no | Vector value [X, Y, Z]. |
Returns: { actor_name: string, variable_name: string, variable_type: string, set: bool, verified: bool, value_read_back: [number, number, number] }
set_niagara_data_interface_array¶
Destructive, idempotent.
Set the numeric values of an array user-parameter data interface (e.g. ArrayFloat FloatData / int32 array IntData).
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
parameter_name |
string | yes | Short name of the user-parameter array DI (no "User." prefix) |
values |
array | yes | Array of numbers to store (replaces all existing array contents) |
array_property |
string | no | Optional array UPROPERTY to set (default "FloatData"; e.g. "IntData" for the int32 array DI) |
Returns: { system_path: string, parameter_name: string, array_property: string, element_type: string, count: int, values: [number], set: bool, saved: bool, save_error?: string }
set_niagara_data_interface_asset¶
Destructive, idempotent.
Points an object property of a user-parameter data interface on a Niagara system at an asset (e.g. the mesh of a StaticMesh DI, the texture of a Texture DI), inside an undo transaction, reads it back, requests a system recompile and saves the system; success requires the read-back and the save. The DI must already exist (add_niagara_data_interface); property_name picks the property, else the first hard object property in reflection order. The asset must load and be of the property's class, else it is an error and nothing is written. For non-asset fields use set_niagara_data_interface_default.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
parameter_name |
string | yes | Short name of the user-parameter DI to mutate |
asset_path |
string | no | Asset path of the UObject to assign (must be the right subclass) |
property_name |
string | no | Optional FObjectProperty name on the DI; defaults to the first FObjectProperty |
Returns: { system_path: string, parameter_name: string, property_name: string, asset_path: string, set: bool (the property reads back the asset), saved: bool, save_error?: string }
set_niagara_data_interface_curve¶
Destructive, idempotent.
Replaces all keys of one FRichCurve property on a curve user-parameter data interface of a Niagara system with the given time/value keys (an empty array clears it), rebuilds the DI's lookup table, requests a recompile and saves the system, inside an undo transaction that records the DI; success requires the save. The DI must already exist (add_niagara_data_interface) and curve_property must name an FRichCurve on it: Curve by default, XCurve/YCurve/ZCurve (WCurve too on Vector4) on vector curve DIs, RedCurve/GreenCurve/BlueCurve/AlphaCurve on color curve DIs. For array DIs use set_niagara_data_interface_array.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
parameter_name |
string | yes | Short name of the user-parameter curve DI (no "User." prefix) |
keys |
array | yes | Array of { time: number, value: number } keys to set (replaces all existing keys on the channel) |
curve_property |
string | no | Optional FRichCurve UPROPERTY to author (default "Curve"; e.g. "RedCurve"/"XCurve" on Color/Vector curve DIs) |
Returns: { system_path: string, parameter_name: string, curve_property: string, key_count: int, keys: [{time,value}], set: bool, saved: bool, save_error?: string }
set_niagara_data_interface_default¶
Destructive, idempotent.
Writes one property of a user-parameter data interface on a Niagara system from text parsed by the property's ImportText, so any type it accepts works ("1.5", "(X=1,Y=2,Z=3)", "(R=1,G=0,B=0,A=1)", an enum name), inside an undo transaction, then requests a system recompile and saves the system; success requires the save. A missing DI or property, or text that does not parse, is an error and the DI is left untouched. value echoes the request; value_read_back is the stored value exported as text. List the DI's properties with get_niagara_data_interface_info; for asset references use set_niagara_data_interface_asset.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
parameter_name |
string | yes | Short name of the user-parameter DI to mutate |
property_name |
string | yes | Name of the FProperty on the DI to set |
value |
string | yes | String representation of the value (parsed by FProperty::ImportText_Direct) |
Returns: { system_path: string, parameter_name: string, property_name: string, value: string, value_read_back: string, set: bool, saved: bool, save_error?: string }
set_niagara_decal_renderer_material¶
Destructive, idempotent.
Assign a material to the Decal renderer at renderer_index of one emitter in a Niagara System asset and save the system; a failed save returns success false. Returns the previous and new material paths and changed. For sprite, ribbon or mesh renderers use set_niagara_renderer_material.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Niagara System asset path, e.g. "/Game/Niagara/NS_Example"; the call fails without it. |
emitter_name |
string | yes | Display name of the emitter handle that owns the renderer (case-insensitive); the call fails without it. |
renderer_index |
number | yes | 0-based index in the renderer list of the emitter, in get_niagara_emitter_renderers order; that renderer must be a Decal renderer. The call fails without it. |
material_path |
string | yes | Object path of the UMaterialInterface to assign, e.g. "/Game/Decals/M_Blood.M_Blood". |
Returns: { system_path, emitter_name, renderer_index, previous_material_path, new_material_path, changed, saved }
set_niagara_effect_type¶
Destructive, idempotent.
Assign an EffectType asset to a Niagara system. Loads the UNiagaraEffectType from the given path and calls UNiagaraSystem::SetEffectType. The system is saved after modification.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
effect_type_path |
string | yes | Asset path of the UNiagaraEffectType to assign. |
Returns: { system_path: string, effect_type_path: string, success: bool }
set_niagara_emitter_allocation_mode¶
Destructive, idempotent.
Set the EParticleAllocationMode (and optional PreAllocationCount) on a Niagara emitter's FVersionedNiagaraEmitterData.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
allocation_mode |
string | yes | One of "AutomaticEstimate", "ManualEstimate", or "FixedCount" (case-insensitive; "Automatic" and "Manual" and "Fixed" also accepted) |
pre_allocation_count |
number | no | Optional int; only meaningful when not AutomaticEstimate |
Returns: { system_path: string, emitter_name: string, allocation_mode: string, pre_allocation_count: int, applied: bool, saved: bool, save_error?: string }
set_niagara_emitter_bounds¶
Destructive, idempotent.
Set the CalculateBoundsMode and FixedBounds on a Niagara emitter's FVersionedNiagaraEmitterData.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
bounds_mode |
string | no | One of "Dynamic", "Fixed", or "Programmable"; defaults to "Fixed" |
bounds_min |
string | no | Optional [x, y, z] string (FVector) for the FixedBounds minimum |
bounds_max |
string | no | Optional [x, y, z] string (FVector) for the FixedBounds maximum |
Returns: { system_path: string, emitter_name: string, bounds_mode: string, bounds_min: string, bounds_max: string, applied: bool, saved: bool, save_error?: string }
set_niagara_emitter_enabled¶
Destructive, idempotent.
Enable or disable an emitter handle on a Niagara system.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Display name of the emitter handle. |
enabled |
boolean | no | Optional bool; defaults to true |
Returns: { system_path: string, emitter_name: string, enabled: bool, state_changed: bool, verified: bool, is_enabled_read_back: bool }
set_niagara_emitter_local_space¶
Destructive, idempotent.
Set whether one emitter of a Niagara System asset simulates in local space (bLocalSpace on its emitter data), then save the system. Returns local_space as read back, applied and saved (with save_error); the reply stays success even when the save fails, so check saved.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Niagara System asset path, e.g. "/Game/FX/NS_Fire"; the call fails without it. |
emitter_name |
string | yes | Display name of the emitter handle (case-insensitive). |
local_space |
boolean | yes | true to simulate the particles of the emitter in its local space, false for world space; the call fails without it. |
Returns: { system_path: string, emitter_name: string, local_space: bool, applied: bool, saved: bool, save_error?: string }
set_niagara_emitter_max_gpu_particles¶
Destructive, idempotent.
Set the MaxGPUParticlesSpawnPerFrame override on a Niagara emitter (only effective when SimTarget is GPUComputeSim).
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
max_gpu_particles |
number | no | Non-negative integer |
Returns: { system_path: string, emitter_name: string, sim_target: string, max_gpu_particles: int, effective_for_current_sim: bool, applied: bool, saved: bool, save_error?: string }
set_niagara_emitter_requires_persistent_ids¶
Destructive, idempotent.
Toggle bRequiresPersistentIDs on a Niagara emitter (stable Particles.ID across frames; small perf cost).
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
requires_persistent_ids |
boolean | no | Boolean to assign |
Returns: { system_path: string, emitter_name: string, requires_persistent_ids: bool, applied: bool, saved: bool, save_error?: string }
set_niagara_emitter_sim_target¶
Destructive, idempotent.
Configure the simulation target of a Niagara emitter. Sets SimTarget, and optionally bLocalSpace and bDeterministic, on the emitter's FVersionedNiagaraEmitterData. The system is saved after modification.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Display name of the emitter handle. |
sim_target |
string | yes | Target type — "CPUSim" or "GPUComputeSim". |
local_space |
boolean | no | Optional bool override for bLocalSpace |
deterministic |
boolean | no | Optional bool override for bDeterminism |
Returns: { system_path: string, emitter_name: string, sim_target: string, success: bool }
set_niagara_emitter_template_description¶
Destructive, idempotent.
Set the TemplateAssetDescription text of a standalone Niagara Emitter asset (not an emitter inside a system) and save the asset; a failed save returns success false. Returns old_description and new_description; an empty string clears the text.
| Parameter | Type | Required | Description |
|---|---|---|---|
emitter_asset_path |
string | yes | Asset path of the UNiagaraEmitter, e.g. "/Game/FX/NE_Sparks" (an emitter asset, not a system path). |
description |
string | yes | New description text, stored as FText; an empty string clears it. |
Returns: { emitter_asset_path: string, old_description: string, new_description: string, applied: bool, saved: bool, save_error?: string }
set_niagara_mesh_renderer_mesh¶
Destructive, idempotent.
Assign a static mesh into a Niagara Mesh renderer's Meshes[] slot. Resolves (or grows the array to) the slot index, loads the UStaticMesh, and sets the slot's inner .Mesh via reflection on the FNiagaraMeshRendererMeshProperties element. Then requests a system compile and saves. add_niagara_renderer type=Mesh leaves Meshes empty (renders nothing); this is the command that makes a Mesh renderer actually draw. Idempotent: re-assigning the same mesh to the same slot does not grow the array.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
renderer_index |
number | yes | 0-based index of the Mesh renderer (use get_niagara_emitter_renderers). |
mesh_path |
string | yes | Asset path of the UStaticMesh to assign (e.g. "/Engine/BasicShapes/Cube"). |
slot |
number | yes | Optional 0-based slot index into Meshes[] (default 0). The array is grown with default elements up to this index if needed. |
Returns: { system_path, emitter_name, renderer_index, renderer_class, slot, mesh_path, mesh_count, already_assigned: bool, save_error? }
set_niagara_module_enabled¶
Destructive, idempotent.
Enable or disable a UNiagaraNodeFunctionCall module in a Niagara emitter's spawn or update graph.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
module_name |
string | yes | Display name of the module to toggle |
enabled |
boolean | no | Optional bool; defaults to true |
script_group |
string | no | Optional "spawn" or "update"; defaults to "update" |
Returns: { system_path: string, emitter_name: string, script_group: string, module_name: string, previous_enabled?: bool, enabled: bool, saved: bool, save_error?: string }
set_niagara_module_input¶
Destructive, idempotent.
Override a Niagara module input by writing the rapid-iteration store. Locates the module function-call node (by its module_node_name, as returned by add_niagara_module_to_stack) on the emitter's spawn or update stack, matches the input by its leaf name, and writes the value into the owning group script's RapidIterationParameters store. The system is recompiled and saved. HONEST GATE: bool / enum / data-interface / object inputs are not rapid-iteration eligible and return a clean error ("override of <type> inputs requires the linked-value path, not supported headless"). The packed value_type must also match the input's actual type or a clean error is returned.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System (e.g. "/Game/Niagara/NS_Example"). |
emitter_name |
string | yes | Display name of the emitter handle. |
module_node_name |
string | yes | The module function-call node name (from add_niagara_module_to_stack's module_node_name). |
input_name |
string | yes | Leaf name of the module input (e.g. "Drag" for "Module.Drag"). |
value_type |
string | no | One of "float", "int", "vector", or "color"; defaults to "float" |
value |
any | no | For float/int: scalar number. For vector: an [x, y, z] list. For color: an [r, g, b, a] list. |
Returns: { system_path: string, emitter_name: string, module_node_name: string, input_name: string, value_type: string, ri_param_name: string, verified: bool, success: bool, saved: bool, save_error?: string }
set_niagara_renderer_material¶
Destructive, idempotent.
Set the Material UPROPERTY on a Niagara renderer (Sprite/Ribbon/Mesh). Loads the material, sets it on the renderer's public Material field, requests a system compile and saves. Reads back to verify the material path is now bound.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
renderer_index |
number | yes | 0-based index of the renderer (use get_niagara_emitter_renderers to find the index) |
material_path |
string | yes | Asset path of the UMaterialInterface to assign. |
Returns: { system_path: string, emitter_name: string, renderer_index: int, renderer_class: string, material_path: string, material_path_read_back: string, save_error?: string }
set_niagara_renderer_properties¶
Destructive, idempotent.
Author renderer UPROPERTYs on a Niagara renderer (Sprite/Mesh/Ribbon/Light/Decal) generically by reflection. Writes only the supplied fields onto the LIVE concrete renderer via MergeJsonWithClamp (FJsonObjectConverter + ClampMin/Max meta), then requests a system compile and saves. Enum writes (alignment/facing_mode/sort_mode/motion_vector_setting/decal_source_mode) also fire PostEditChangeProperty so derived state updates. Light/Decal scalar fields (radius_scale, affects_translucency, color_add, decal_screen_size_fade, decal_source_mode, ...) are covered here — use set_niagara_decal_renderer_material for the decal Material (object-ref). Keys not present on the concrete renderer class are reported in not_applicable (honest, not silently swallowed). Idempotent. Covers base renderer_enabled for free.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle. |
renderer_index |
number | yes | 0-based index of the renderer (use get_niagara_emitter_renderers). |
enabled |
string | no | Optional bool: base bIsEnabled (also accepted as renderer_enabled). |
sort_order_hint |
string | no | Optional int: base SortOrderHint. |
motion_vector_setting |
string | no | Optional enum name: base MotionVectorSetting (e.g. "AutoDetect"/"Precise"/"Disable"). |
allow_in_cull_proxies |
string | no | Optional bool: base bAllowInCullProxies. |
alignment |
string | no | Optional enum name (Sprite): Alignment (e.g. "Unaligned"/"VelocityAligned"/"CustomAlignment"/"Automatic"). |
facing_mode |
string | no | Optional enum name (Sprite ENiagaraSpriteFacingMode or Mesh ENiagaraMeshFacingMode, resolved by class): FacingMode. |
sort_mode |
string | no | Optional enum name (Sprite/Mesh): SortMode (e.g. "None"/"ViewDepth"/"ViewDistance"/"CustomAscending"/"CustomDescending"). |
sub_image_size |
string | no | Optional [x,y] or {X,Y} (Sprite/Mesh): SubImageSize. |
macro_uv_radius |
string | no | Optional float (Sprite): MacroUVRadius. |
pivot_in_uv_space |
string | no | Optional [x,y] or {X,Y} (Sprite): PivotInUVSpace. |
cast_shadows |
string | no | Optional bool (Sprite): bCastShadows. |
renderer_visibility |
string | no | Optional int (Sprite): RendererVisibility tag value. |
override_materials |
string | no | Optional bool (Mesh): bOverrideMaterials. |
mesh_bounds_scale |
string | no | Optional [x,y,z] or {X,Y,Z} (Mesh): MeshBoundsScale. |
locked_axis |
string | no | Optional [x,y,z] or {X,Y,Z} (Mesh): LockedAxis. |
use_inverse_squared_falloff |
string | no | Optional bool (Light): bUseInverseSquaredFalloff. |
affects_translucency |
string | no | Optional bool (Light): bAffectsTranslucency. |
allow_mega_lights |
string | no | Optional bool (Light): bAllowMegaLights. |
mega_lights_cast_shadows |
string | no | Optional bool (Light): bMegaLightsCastShadows. |
alpha_scales_brightness |
string | no | Optional bool (Light): bAlphaScalesBrightness. |
override_inverse_exposure_blend |
string | no | Optional bool (Light): bOverrideInverseExposureBlend. |
radius_scale |
string | no | Optional float (Light, ClampMin=0): RadiusScale. |
default_exponent |
string | no | Optional float (Light, ClampMin=0): DefaultExponent (used when use_inverse_squared_falloff=false). |
specular_scale |
string | no | Optional float (Light, ClampMin=0): SpecularScale. |
diffuse_scale |
string | no | Optional float (Light, ClampMin=0): DiffuseScale. |
color_add |
string | no | Optional {x,y,z} or [x,y,z] (Light): ColorAdd (FVector3f RGB shift). |
inverse_exposure_blend |
string | no | Optional float (Light): InverseExposureBlend. |
decal_screen_size_fade |
string | no | Optional float (Decal): DecalScreenSizeFade. |
decal_source_mode |
string | no | Optional enum name/int (Decal): SourceMode ("Particles"/"Emitter"); fires PostEditChangeProperty so UpdateSourceModeDerivates runs. |
Returns: { system_path, emitter_name, renderer_index, renderer_class, applied:[prop names], not_applicable:[input keys], post_edit_fired: bool, properties:{round-trip dump}, save_error? }
set_niagara_simulation_stage_properties¶
Destructive, idempotent.
Author the settable enum/bool/FName/FIntPoint UPROPERTYs on a UNiagaraSimulationStageGeneric (the spawn-without-setter companion to add_niagara_simulation_stage). Resolves the stage on an emitter by stage_index or stage_name, writes only the supplied fields by reflection (MergeJsonWithClamp), sets bEnabled via SetEnabled, fires PostEditChangeProperty for enum writes, then requests a system compile and saves. Idempotent. HONEST GATE: the binding-valued fields num_iterations/element_count_x|y|z/data_interface are FNiagaraParameterBindingWithValue / binding structs that ImportText cannot author here -- any such key is reported in not_supported, never faked (iteration count is authored on the add path).
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
emitter_name |
string | yes | Name of the emitter handle owning the stage. |
stage_name |
string | yes | Optional SimulationStageName to match if stage_index is not supplied. |
stage_index |
number | no | Optional 0-based index into the emitter's simulation stages (use add_niagara_simulation_stage / get_niagara_emitter_runtime_summary); takes precedence over stage_name |
name |
string | no | Optional FName: SimulationStageName (renames the stage; also accepted as simulation_stage_name). |
enabled |
boolean | no | Optional bool: base bEnabled (written via SetEnabled). |
iteration_source |
string | no | Optional enum name: IterationSource (Particles|DataInterface|DirectSet). |
execute_behavior |
string | no | Optional enum name: ExecuteBehavior (Always|OnSimulationReset|NotOnSimulationReset). |
disable_partial_particle_update |
string | no | Optional bool: bDisablePartialParticleUpdate. |
particle_iteration_state_enabled |
string | no | Optional bool: bParticleIterationStateEnabled. |
particle_iteration_state_range |
string | no | Optional {X,Y} object: ParticleIterationStateRange (FIntPoint; the generic struct path needs the object form, not a [x,y] array). |
gpu_dispatch_force_linear |
string | no | Optional bool: bGpuDispatchForceLinear. |
direct_dispatch_type |
string | no | Optional enum name: DirectDispatchType (OneD|TwoD|ThreeD). |
direct_dispatch_element_type |
string | no | Optional enum name: DirectDispatchElementType (NumThreads|NumThreadsNoClipping|NumGroups). |
Returns: { system_path, emitter_name, stage_index, stage_name, stage_class, applied:[prop names], not_applicable:[keys], not_supported:[binding keys], enabled?: bool, post_edit_fired: bool, save_error? }
set_niagara_system_deterministic¶
Destructive, idempotent.
Set the bDeterminism UPROPERTY on a Niagara system via reflection.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
deterministic |
boolean | no | Boolean to assign to bDeterminism |
Returns: { system_path: string, old_deterministic: bool, new_deterministic: bool, applied: bool, saved: bool }
set_niagara_system_fixed_bounds¶
Destructive, idempotent.
Sets fixed local-space bounds on a spawned Niagara component. Resolves the UNiagaraComponent on the owner actor and calls UNiagaraComponent::SetSystemFixedBounds(FBox), then reads back via GetSystemFixedBounds.
| Parameter | Type | Required | Description |
|---|---|---|---|
actor_name |
string | yes | Owner actor identifier (internal name or editor label). |
min |
array | no | Local-space bounds minimum [X, Y, Z]. |
max |
array | no | Local-space bounds maximum [X, Y, Z]. |
Returns: { actor_name: string, applied: bool, bounds_valid: bool, min_read_back: [number, number, number], max_read_back: [number, number, number] }
set_niagara_system_properties¶
Destructive, idempotent.
Set render/system flags on a UNiagaraSystem asset via raw reflection (no PostEditChangeProperty -> avoids the compile/scalability pipeline). Only the supplied fields are applied; each render override value also sets its bOverride* companion so it actually takes effect on spawned components. Persists via SavePackage and is reopen-clean (no recompile). Idempotent.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System (e.g. "/Game/Niagara/NS_Example"). |
cast_shadow |
string | no | Optional bool: default CastShadow for spawned components (sets bCastShadow + bOverrideCastShadow). |
override_cast_shadow |
string | no | Optional bool: explicitly set bOverrideCastShadow (auto-set when cast_shadow is given). |
receives_decals |
string | no | Optional bool: default ReceivesDecals (sets bReceivesDecals + bOverrideReceivesDecals). |
override_receives_decals |
string | no | Optional bool: explicitly set bOverrideReceivesDecals. |
render_custom_depth |
string | no | Optional bool: default RenderCustomDepth (sets bRenderCustomDepth + bOverrideRenderCustomDepth). |
override_render_custom_depth |
string | no | Optional bool: explicitly set bOverrideRenderCustomDepth. |
custom_depth_stencil_value |
string | no | Optional int: default CustomDepthStencilValue (sets CustomDepthStencilValue + bOverrideCustomDepthStencilValue). |
override_custom_depth_stencil_value |
string | no | Optional bool: explicitly set bOverrideCustomDepthStencilValue. |
translucency_sort_priority |
string | no | Optional int: default TranslucencySortPriority (sets it + bOverrideTranslucencySortPriority). |
override_translucency_sort_priority |
string | no | Optional bool: explicitly set bOverrideTranslucencySortPriority. |
translucency_sort_distance_offset |
string | no | Optional float: default TranslucencySortDistanceOffset (sets it + bOverrideTranslucencySortDistanceOffset). |
override_translucency_sort_distance_offset |
string | no | Optional bool: explicitly set bOverrideTranslucencySortDistanceOffset. |
support_large_world_coordinates |
string | no | Optional bool: bSupportLargeWorldCoordinates. |
require_current_frame_data |
string | no | Optional bool: bRequireCurrentFrameData. |
b_fixed_bounds |
string | no | Optional bool: bFixedBounds (enables the system FixedBounds box). |
fixed_bounds |
object | no | Optional object {min:[x,y,z], max:[x,y,z]}: the system FixedBounds FBox. Partial corners keep the current value. |
Returns: { system_path, applied_count, override_applied:[...], <read-back of every field>, fixed_bounds:{min,max}, saved, save_error? }
set_niagara_system_warmup_tick_count¶
Destructive, idempotent.
Re-resolve the protected UNiagaraSystem::WarmupTickCount from the current WarmupTime/WarmupTickDelta pair.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
Returns: { system_path: string, old_warmup_tick_count: int, new_warmup_tick_count: int, warmup_time: number, warmup_tick_delta: number, applied: bool, saved: bool }
set_niagara_system_warmup_tick_delta¶
Destructive, idempotent.
Set the warmup tick delta (seconds per tick) on a Niagara system.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
warmup_tick_delta |
number | no | Tick delta in seconds (must be > 0) |
Returns: { system_path: string, old_warmup_tick_delta: number, new_warmup_tick_delta: number, applied: bool, saved: bool }
set_niagara_system_warmup_time¶
Destructive, idempotent.
Set the warmup time in seconds of a Niagara System asset and save it; a failed save returns success false. With a non-zero warmup_tick_delta the engine rounds the time down to a whole number of ticks, so read new_warmup_time and warmup_tick_count back.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Niagara System asset path, e.g. "/Game/FX/NS_Fire"; the call fails without it. |
warmup_time |
number | yes | Warmup time in seconds (>= 0; 0 disables warmup); the call fails without it. |
Returns: { system_path: string, old_warmup_time: number, new_warmup_time: number, warmup_tick_count: int, applied: bool, saved: bool }
set_niagara_user_parameter¶
Destructive, idempotent.
Sets a user-exposed parameter default on a Niagara System's exposed store. Adds the parameter (under the User. namespace) if it does not yet exist, sets the value, then reads it back to verify. Supports float/vector(vec3)/vec2/vec4/color/bool/int. Type is taken from the optional type hint; if omitted, vector key implies Vector and otherwise Float (back-compat). Color is FLinearColor and bool is FNiagaraBool.
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System. |
parameter_name |
string | yes | User parameter name (without the "User." prefix). |
type |
string | no | Optional type token: Float|Vector|Vec2|Vec4|Color|Bool|Int (case-insensitive). Defaults to Vector if a vector key is present, else Float |
value |
any | no | Optional float scalar (Float), int (Int) or bool (Bool) value, per the resolved type |
vector |
array | no | Optional [X, Y, Z] for Vector (also implies type=Vector when type omitted) |
vec2 |
string | no | Optional [X, Y] for a Vec2 parameter |
vec4 |
string | no | Optional [X, Y, Z, W] for a Vec4 parameter |
color |
string | no | Optional [R, G, B, A] (linear) for a Color parameter |
Returns: { system_path: string, parameter_name: string, parameter_type: string, value_set: bool, value_read_back?: number|bool|[number...], verified: bool }
spawn_niagara_component¶
Additive.
Spawns a Niagara System as a persistent UNiagaraComponent in the editor world. Spawns via UNiagaraFunctionLibrary::SpawnSystemAtLocation with bAutoDestroy disabled so the component persists for follow-up parameter calls. The owner actor can later be targeted by either its internal object name (owner_actor_name) or its editor label (owner_actor_label).
| Parameter | Type | Required | Description |
|---|---|---|---|
system_path |
string | yes | Asset path of the Niagara System to spawn (e.g. /Game/MyGame/NS_Example) |
location |
array | no | World location [X, Y, Z]. |
rotation |
array | no | Optional [pitch, yaw, roll]; defaults to identity |
actor_label |
string | no | Optional desired editor label for the owner actor |
Returns: { system_path: string, component_name: string, owner_actor_name: string, owner_actor_label: string, is_registered: bool, is_active: bool, location: [number, number, number] }