Niagara
Every Niagara command in CodeFizz Editor Agent, with parameters and examples.
Every Niagara command in CodeFizz Editor Agent, with parameters and examples.
108 commands. Each shows its parameters and an example, and has a copyable deep link, so you (or an AI agent) can jump straight to one.
validate_niagara_stackScan a Niagara system's full stack for issues (the per-module warnings/errors the editor shows)
Walks the live Niagara stack, system stack plus every emitter stack, every module/entry, and reports all FStackIssue entries (the same warnings/errors shown on modules in the Niagara editor, e.g. unmet module dependencies). Each issue reports scope, module, category, severity (error/warning/info), short + long description, a stable issue_key, whether it is auto_fixable, and its list of fixes. Pass min_severity to filter. The system must be open in the Niagara editor (the command opens it if needed) since stack issues come from the live stack view model.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| min_severity | string | No | Minimum severity to report: error | warning | info (default info) |
cfa validate_niagara_stack --system-path /Game/VFX/NS_Fire
cfa validate_niagara_stack --system-path /Game/VFX/NS_Fire --min-severity warningfix_niagara_stack_issueApply a stack issue's fix (the editor's "Fix issue" button), one issue or all auto-fixes
Executes a Niagara stack issue's fix delegate, the same action as clicking "Fix issue" in the editor (e.g. reorder a module before its dependency, add a required module). Target one issue with issue_key (from validate_niagara_stack) or match (a substring of the issue text); choose a specific fix with fix_index (default: the first auto-fix). Or pass all=true to apply every auto-fixable issue in a loop until none remain. Recompiles + saves the system afterward and reports remaining issues.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| all | bool | No | Apply every auto-fixable issue (loop until clean) |
| issue_key | string | No | Exact issue_key from validate_niagara_stack |
| match | string | No | Substring of the issue's short/long description to match |
| fix_index | int | No | Which fix to apply (default: first auto-fix on the issue) |
cfa fix_niagara_stack_issue --system-path /Game/VFX/NS_Fire --all=true
cfa fix_niagara_stack_issue --system-path /Game/VFX/NS_Fire --match "SolveForcesAndVelocity"
cfa fix_niagara_stack_issue --system-path /Game/VFX/NS_Fire --issue-key <key-from-validate>list_niagara_asset_typesList standalone Niagara data/utility asset types creatable via create_niagara_asset
Lists the asset_type values accepted by create_niagara_asset, each with its runtime asset class, availability in this build, and a one-line note. Backed by the engine factory registry (not a hardcoded doc), so it stays truthful across engine versions.
cfa list_niagara_asset_typescreate_niagara_assetCreate a standalone Niagara data/utility asset
Creates a standalone Niagara data/utility asset (parameter collection, parameter collection instance, parameter definitions, effect type, data channel, sim cache, validation rule set) via its engine factory. Run list_niagara_asset_types for the asset_type values. Edit the created asset afterward with the generic describe_object / set_object_property reflection commands. Note: sim_cache is created blank, its data is captured at runtime, not authored here.
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_type | string | Yes | Asset type key (see list_niagara_asset_types) |
| asset_path | string | Yes | Content Browser path for the new asset |
| parent | string | No | parameter_collection_instance only: parent parameter collection to bind |
cfa create_niagara_asset --asset-type parameter_collection --asset-path /Game/CFATest/NPC_Wind
cfa create_niagara_asset --asset-type parameter_collection_instance --asset-path /Game/CFATest/NPCI_Wind --parent /Game/CFATest/NPC_Wind.NPC_Wind
cfa create_niagara_asset --asset-type effect_type --asset-path /Game/CFATest/ET_Defaultadd_niagara_parameter_collection_parameterAdd a named parameter (with optional default value) to a parameter collection
Populates a Niagara Parameter Collection (NPC) so it actually drives values: adds a named, typed parameter under the collection's namespace and optionally sets its default on the collection's default instance. Supported types: float, int, bool, vector (vec3), color (linear color). Value format: number for float/int, {"x":..,"y":..,"z":..} for vector, {"r":..,"g":..,"b":..,"a":..} for color. The returned parameter_name is the fully namespaced name to reference from systems/emitters.
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Asset path of the parameter collection |
| name | string | Yes | Friendly parameter name (namespace added automatically) |
| type | string | Yes | float | int | bool | vector | color |
| value | json | No | Optional default value (number, or {x,y,z} / {r,g,b,a}) |
cfa add_niagara_parameter_collection_parameter --asset-path /Game/FX/NPC_Wind.NPC_Wind --name Strength --type float --value 2.5
cfa add_niagara_parameter_collection_parameter --asset-path /Game/FX/NPC_Wind.NPC_Wind --name Tint --type color --value '{"r":0.2,"g":0.6,"b":1.0,"a":1.0}'create_niagara_systemCreate a new Niagara particle system
Creates a new Niagara system asset at the given path. Use template to start from a preset (e.g., "empty" for a blank system, or a template name for pre-configured emitters). Returns the created asset path. Call add_niagara_emitter afterward to populate it.
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Content Browser path for the new system |
| template | string | No | Template name: empty, Fountain, etc. |
cfa create_niagara_system --asset-path /Game/VFX/NS_Explosion
cfa create_niagara_system --asset-path /Game/VFX/NS_Fire --template "Fountain"get_niagara_system_infoGet full info about a Niagara system
Returns detailed information about a Niagara system including its emitters, user parameters, system settings, and compilation status. Use include to control what sections are returned (all, emitters, parameters, compilation). Use filter to narrow emitters and parameters by name substring.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| include | string | No | Sections to include: all, emitters, parameters, compilation |
| filter | string | No | Substring filter on emitter and parameter names |
cfa get_niagara_system_info --system-path /Game/VFX/NS_Explosion
cfa get_niagara_system_info --system-path /Game/VFX/NS_Fire --include emitters
cfa get_niagara_system_info --system-path /Game/VFX/NS_Fire --filter Sparklist_niagara_systemsList Niagara system assets
Lists all Niagara system assets under the given path. Use name_filter to narrow results by name substring. Useful for discovering existing systems before creating new ones or for finding systems to modify.
| Parameter | Type | Required | Description |
|---|---|---|---|
| path | string | No | Content Browser path to search |
| name_filter | string | No | Filter systems by name substring |
| max_results | int | No | Maximum number of results |
cfa list_niagara_systems
cfa list_niagara_systems --path /Game/VFX --name-filter "Fire"
cfa list_niagara_systems --max-results 50delete_niagara_systemDelete a Niagara system asset
Deletes a Niagara system asset. Checks for references by default. Set force to true to delete even if other assets reference this system. Use find_references first to understand the impact of deletion.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the system to delete |
| force | bool | No | Delete even if referenced by other assets |
cfa delete_niagara_system --system-path /Game/VFX/NS_OldEffect
cfa delete_niagara_system --system-path /Game/VFX/NS_Unused --forcecompile_niagara_systemCompile a Niagara system
Triggers compilation of a Niagara system. Compilation resolves all module scripts, validates parameter bindings, and generates GPU compute shaders. Set wait_for_completion to false for async compilation. Returns the full compile state: is_valid, error_count, warning_count, a summary string, per-script statuses, and a messages[] array with every compile event ({script, severity error|warning|display|log, message, short_description}), the same errors and warnings the Niagara editor reports.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the system to compile |
| wait_for_completion | bool | No | Wait for compilation to finish |
| force | bool | No | Force a recompile of an up-to-date system (ForceGraphToRecompileOnNextCheck). Note: Niagara serves unchanged content from its content-addressed DDC, so fresh messages only appear after a real graph change; the messages[] otherwise reflect the last actual translation |
cfa compile_niagara_system --system-path /Game/VFX/NS_Explosion
cfa compile_niagara_system --system-path /Game/VFX/NS_Fire --wait-for-completion=falsecompile_niagara_scriptCompile a standalone Niagara script (module / dynamic input / function)
Compiles a STANDALONE Niagara script asset, the standalone script editor's "Compile" button (UNiagaraScript::RequestCompile). Standalone module/dynamic-input/function scripts do not self-compile as you author them (they compile inside the system that uses them), so their editor shows 'compile status unknown' until you compile them. This runs a real, synchronous compile and returns the full state: is_valid, compile_status (up_to_date | up_to_date_with_warnings | error | dirty | unknown), error_count, warning_count, last_op_count (0 means never compiled), and a messages[] array of every compile event ({severity, message, short_description}). Pass script_path to the module/DI/function asset. If the script is OPEN in its editor this drives the editor's own Compile button on the edited copy (so the Stats panel + status update live) and returns editor_open:true, the edit persists to disk on apply_niagara_script; otherwise it compiles and saves the asset directly.
| Parameter | Type | Required | Description |
|---|---|---|---|
| script_path | string | Yes | Asset path of the standalone module / dynamic input / function script |
| force | bool | No | Force a real recompile (skips the DDC cache) so messages[] reflect this graph; false serves an up-to-date result from cache |
cfa compile_niagara_script --script-path /Game/VFX/Modules/NM_SineTornado
cfa compile_niagara_script --script-path /Game/VFX/DI/DI_Jitter --force=falseapply_niagara_scriptApply a standalone Niagara script's edits to the asset (editor Apply button)
Replicates the standalone script editor's "Apply" button (FNiagaraScriptToolkit::OnApply) for a script open in its own editor: it compiles the transient edited copy, commits it onto the on-disk asset, refreshes every script that references it, and saves. Use after build_niagara_graph / compile_niagara_script when the script is open in the editor so the change persists exactly as a user clicking Apply. Returns editor_open and applied (false when the script isn't open, the asset already holds the edits, or when the edited copy matches the original, i.e. nothing to apply).
| Parameter | Type | Required | Description |
|---|---|---|---|
| script_path | string | Yes | Asset path of the standalone module / dynamic input / function script |
cfa apply_niagara_script --script-path /Game/VFX/DI/DI_Jitterget_niagara_emittersList emitters in a Niagara system
Returns emitters in a Niagara system with their names, indices, enabled states, and summary info (sim target, local_space, determinism, renderer_count). Use filter to narrow results by emitter name substring.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| filter | string | No | Substring filter on emitter names |
cfa get_niagara_emitters --system-path /Game/VFX/NS_Explosion
cfa get_niagara_emitters --system-path /Game/VFX/NS_Fire --filter Sparkcreate_niagara_emitterCreate a standalone Niagara emitter asset
Creates a standalone UNiagaraEmitter asset at the given path via the engine emitter factory. With add_default_modules=true (default) the emitter ships with a sprite renderer plus the standard EmitterState/SpawnRate/SystemLocation/AddVelocity/UpdateAge/Color/Solver modules; set it false for a truly empty emitter. Reuse it in a system with add_niagara_emitter --emitter-path (use --inherit to control parented vs copied).
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Content Browser path for the new emitter |
| add_default_modules | bool | No | Add the default renderer + starter modules (use =false for an empty emitter) |
cfa create_niagara_emitter --asset-path /Game/CFATest/E_Spark
cfa create_niagara_emitter --asset-path /Game/CFATest/E_Blank --add-default-modules=falseadd_niagara_emitterAdd an emitter to a Niagara system
Adds an emitter to a Niagara system. Provide emitter_path to add from an existing emitter asset (template or standalone), or template to add from a built-in template. Use emitter_name to set a custom display name. If neither emitter_path nor template is given, adds an empty emitter. Use inherit to force the new handle to be parented to the source (true, live inheritance) or a standalone copy (false); omit it to use the source emitter's own setting.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the target Niagara system |
| emitter_path | string | No | Asset path of an existing emitter to add (template or standalone) |
| emitter_name | string | No | Display name for the emitter |
| template | string | No | Built-in template name (e.g., Fountain, Sprite) |
| inherit | bool | No | =true parented/inherited handle, =false standalone copy (omit = source's own bIsInheritable) |
| force_add | bool | No | Add even if an emitter with this name already exists (creates a Name001 duplicate). Default false: an existing name is returned as-is (already_existed=true), so re-runs are idempotent |
cfa add_niagara_emitter --system-path /Game/VFX/NS_Fire --template "Fountain" --emitter-name "Sparks"
cfa add_niagara_emitter --system-path /Game/VFX/NS_Fire --emitter-path /Game/CFATest/E_Spark.E_Spark --inherit=trueremove_niagara_emitterRemove an emitter from a Niagara system
Removes an emitter from a Niagara system by name. This also removes all modules, renderers, and event handlers associated with the emitter. Use get_niagara_emitters to confirm the exact emitter name before removal.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter to remove |
cfa remove_niagara_emitter --system-path /Game/VFX/NS_Fire --emitter-name Sparksset_niagara_emitter_propertySet a property on an emitter
Sets a property on an emitter within a Niagara system. Supported keys: enabled, sim_target (CPUSim/GPUComputeSim), local_space, determinism, bounds_mode, max_particles. Value is JSON-encoded. Set local_space=true for any effect that should play at its actor: a module that writes Particles.Position directly renders at world (0,0,0) in the default world space; local space makes positions relative to the component so the effect follows the actor.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| property | string | Yes | Property key: enabled, sim_target, local_space, determinism, bounds_mode, max_particles |
| value | json | Yes | JSON-encoded property value |
cfa set_niagara_emitter_property --system-path /Game/VFX/NS_Fire --emitter-name Sparks --property sim_target --value '"GPUComputeSim"'
cfa set_niagara_emitter_property --system-path /Game/VFX/NS_Fire --emitter-name Sparks --property local_space --value trueduplicate_niagara_emitterDuplicate an emitter within a system
Creates a copy of an existing emitter within the same Niagara system. The duplicate inherits all modules, renderers, and settings from the source. Optionally provide new_name to rename the copy; otherwise it gets a default suffix.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter to duplicate |
| new_name | string | No | Name for the duplicated emitter |
cfa duplicate_niagara_emitter --system-path /Game/VFX/NS_Fire --emitter-name Sparks --new-name "Sparks_Large"reorder_niagara_emitterMove an emitter to a new position
Changes the execution order of an emitter within a Niagara system by moving it to a new index. Emitter order affects rendering draw order (later emitters draw on top) and can affect event handler resolution.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter to move |
| new_index | int | Yes | New zero-based position index |
cfa reorder_niagara_emitter --system-path /Game/VFX/NS_Fire --emitter-name Sparks --new-index 0get_niagara_modulesList modules in an emitter's stack
Returns modules in an emitter's script stack. Filter by script_usage to see only specific stages: EmitterSpawn, EmitterUpdate, ParticleSpawn, ParticleUpdate, or all. Use filter to narrow by module function name substring. Set include_inputs to true to also return each module's input parameters and their current values.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| script_usage | string | No | Stage filter: all, EmitterSpawn, EmitterUpdate, ParticleSpawn, ParticleUpdate |
| include_inputs | bool | No | Include module input parameters |
| filter | string | No | Substring filter on module function names |
cfa get_niagara_modules --system-path /Game/VFX/NS_Fire --emitter-name Sparks
cfa get_niagara_modules --system-path /Game/VFX/NS_Fire --emitter-name Sparks --script-usage ParticleUpdate
cfa get_niagara_modules --system-path /Game/VFX/NS_Fire --emitter-name Sparks --filter Color
cfa get_niagara_modules --system-path /Game/VFX/NS_Fire --emitter-name Sparks --include-inputs=falseadd_niagara_moduleAdd a module to an emitter's stack
Adds a module to an emitter's script stack at the specified stage. Target the emitter with either system_path + emitter_name (an emitter inside a system) OR emitter_path (a standalone UNiagaraEmitter asset). module_path is the asset path of a Niagara module script or scratch pad module. Use list_niagara_modules to discover available modules. Set index to -1 (default) to append at the end, or specify a zero-based position to insert at.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Asset path of the Niagara system (with emitter_name) |
| emitter_name | string | No | Name of the emitter inside the system |
| emitter_path | string | No | Asset path of a standalone emitter (instead of system_path + emitter_name) |
| module_path | string | Yes | Asset path of the module script to add |
| script_usage | string | Yes | Stage: EmitterSpawn, EmitterUpdate, ParticleSpawn, ParticleUpdate |
| index | int | No | Insert position (-1 = append at end) |
| force_add | bool | No | Add even if this exact module is already in the stack. Default false: an already-present module is returned as-is (already_existed=true), so re-runs are idempotent |
cfa add_niagara_module --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-path /Niagara/Modules/ScaleSpriteSize --script-usage ParticleUpdate
cfa add_niagara_module --emitter-path /Game/CFATest/E_Spark.E_Spark --module-path /Niagara/Modules/Update/Velocity/VortexVelocity.VortexVelocity --script-usage ParticleUpdateremove_niagara_moduleRemove a module from an emitter's stack
Removes a module from an emitter's script stack by name and stage. Use get_niagara_modules to find the exact module name and which script_usage stage it belongs to.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| module_name | string | Yes | Name of the module to remove |
| script_usage | string | Yes | Stage the module belongs to |
cfa remove_niagara_module --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name ScaleSpriteSize --script-usage ParticleUpdateset_niagara_module_enabledEnable or disable a module
Enables or disables a module in an emitter's stack without removing it. Disabled modules are skipped during simulation but their configuration is preserved. Useful for debugging or A/B testing different module setups.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| module_name | string | Yes | Name of the module |
| script_usage | string | Yes | Stage the module belongs to |
| enabled | bool | Yes | True to enable, false to disable |
cfa set_niagara_module_enabled --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name Drag --script-usage ParticleUpdate --enabled=false
cfa set_niagara_module_enabled --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name Drag --script-usage ParticleUpdate --enabledreorder_niagara_moduleMove a module to a new position in stack
Changes the execution order of a module within its script stage. Module order within a stage determines execution priority (earlier modules run first). Useful for ensuring dependent calculations happen in the correct sequence.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| module_name | string | Yes | Name of the module to move |
| script_usage | string | Yes | Stage the module belongs to |
| new_index | int | Yes | New zero-based position index |
cfa reorder_niagara_module --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name Drag --script-usage ParticleUpdate --new-index 0get_niagara_module_inputsGet input parameters for a module (keyword + top-N)
Returns the reveal-aware input parameters for a specific module in an emitter's stack, including the conditionally-revealed value inputs (Cylinder Radius, SpawnRate, Lifetime...) that the summary get_niagara_modules omits, with names, types and current values. input_filter narrows by keyword and ranks results by relevance (exact > prefix > substring); max_results caps the count (0 = all). Use both for a precise, token-light lookup like 'the radius input on ShapeLocation, top 5'. Response includes total_matched and truncated.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| module_name | string | Yes | Name of the module |
| script_usage | string | Yes | Stage the module belongs to |
| input_filter | string | No | Keyword to filter + rank inputs by relevance (exact > prefix > substring) |
| max_results | int | No | Cap returned inputs (0 = all). Pairs with input_filter for top-N. |
| include_values | bool | No | Attach each input's resolved current_value via the stack reader (opens the system's stack). Set false for a lighter graph-only report. |
cfa get_niagara_module_inputs --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name AddVelocity --script-usage ParticleSpawn
cfa get_niagara_module_inputs --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name ShapeLocation --script-usage ParticleSpawn --input-filter radius --max-results 5set_niagara_module_inputSet an input value on a module
Sets a static input value on a module. The value is JSON-encoded and must match the parameter type (float for scalars, array for vectors, object for structs). Use get_niagara_module_inputs to discover available inputs and their types. For dynamic values (random ranges, curves, linked parameters), use set_niagara_dynamic_input instead.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Asset path of the Niagara system (with emitter_name) |
| emitter_name | string | No | Name of the emitter inside the system |
| emitter_path | string | No | Asset path of a standalone emitter (instead of system_path + emitter_name) |
| module_name | string | Yes | Name of the module |
| input_name | string | Yes | Name of the input parameter |
| value | json | Yes | JSON-encoded value matching the parameter type |
| script_usage | string | Yes | Stage the module belongs to |
cfa set_niagara_module_input --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name SpawnRate --input-name SpawnRate --value 500 --script-usage EmitterUpdate
cfa set_niagara_module_input --emitter-path /Game/CFATest/E_Spark.E_Spark --module-name VortexVelocity --input-name "Velocity Amount" --value 400 --script-usage ParticleUpdateset_niagara_dynamic_inputSet a dynamic input on a module
Assigns a dynamic input to a module parameter. Dynamic inputs provide runtime-computed values. The 'script' type attaches ANY of the engine/project dynamic-input scripts (there are hundreds: Random Range Float, Random Jitter Float, Remap Range, Select Float from Array, Waveform, etc.) by its asset path via dynamic_input_script_path, discover paths with resolve_niagara_built_in_dynamic_input or search_niagara_functions --usage dynamic_input. Convenience shortcuts: random_range / uniform_random (min_value/max_value), parameter_link (parameter_name), custom_expression (expression). Not all fields apply to every type.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| module_name | string | Yes | Name of the module |
| input_name | string | Yes | Name of the input parameter |
| script_usage | string | Yes | Stage the module belongs to |
| dynamic_input_type | string | Yes | random_range, uniform_random, parameter_link, custom_expression, or script (attach any DI script by path) |
| min_value | json | No | Minimum value for ranged types |
| max_value | json | No | Maximum value for ranged types |
| parameter_name | string | No | Parameter name for parameter_link type |
| expression | string | No | HLSL expression for custom_expression type |
| dynamic_input_script_path | string | No | For type=script: asset path of the dynamic-input script to attach (any of the ~283 available) |
| suggested_name | string | No | For type=script: display name for the attached dynamic input node |
| pin_defaults | json | No | For type=script: {"Pin Name":"value"...} to set the dynamic input's own input pins |
cfa set_niagara_dynamic_input --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name InitialSize --input-name "SpriteSize" --script-usage ParticleSpawn --dynamic-input-type random_range --min-value 5.0 --max-value 15.0
cfa set_niagara_dynamic_input --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name InitializeParticle --input-name "Mass" --script-usage ParticleSpawn --dynamic-input-type script --dynamic-input-script-path "/Niagara/DynamicInputs/Utility/RandomJitterFloat.RandomJitterFloat" --pin-defaults '{"Jitter Amount":"0.5"}'set_niagara_curveSet a curve on a module input
Assigns a curve to a module input parameter. curve_type specifies the curve dimensionality (Float, Vector2, Vector3, Vector4, LinearColor). keys is a JSON array of key objects with time and value fields. Use for time-varying properties like color over life, size over life, or velocity curves.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| module_name | string | Yes | Name of the module |
| input_name | string | Yes | Name of the input parameter |
| script_usage | string | Yes | Stage the module belongs to |
| curve_type | string | Yes | Curve type: Float, Vector2, Vector3, Vector4, LinearColor |
| keys | json | Yes | JSON array of curve keys [{time, value}...] |
cfa set_niagara_curve --system-path /Game/VFX/NS_Fire --emitter-name Flame --module-name ScaleColor --input-name "Scale Factor" --script-usage ParticleUpdate --curve-type Float --keys '[{"time": 0, "value": 0}, {"time": 0.2, "value": 1}, {"time": 1, "value": 0}]'
cfa set_niagara_curve --system-path /Game/VFX/NS_Fire --emitter-name Flame --module-name Color --input-name "Color" --script-usage ParticleUpdate --curve-type LinearColor --keys '[{"time": 0, "value": [1,0.5,0,1]}, {"time": 1, "value": [0.2,0,0,0]}]'set_niagara_stack_valueSet any module input value via the stack (local/enum/linked/hlsl/dynamic_input/data_interface/reset)
Universal, crash-free module-input value setter. Drives the editor's own stack (UNiagaraStackFunctionInput), so it never leaves the graph in a state the Niagara compiler rejects. kind selects the value form: local (scalar, [array] for vector/color, or {object} of fields), enum (name/display/int), linked (parameter_name), hlsl (expression), dynamic_input (dynamic_input_script), data_interface (data_interface_class + properties), reset (to_base for parent-emitter base). For a nested dynamic-input pin, pass input_name_stack instead of input_name.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | No | Emitter display name (omit for system-usage modules) |
| script_usage | string | Yes | Stage: EmitterSpawn/EmitterUpdate/ParticleSpawn/ParticleUpdate/SystemSpawn/SystemUpdate |
| module_name | string | Yes | Module function name |
| input_name | string | Yes | Top-level input name (use input_name_stack for nested pins) |
| kind | string | Yes | local, enum, linked, hlsl, dynamic_input, data_interface, reset |
| value | json | No | local/enum: scalar, [array] for vector/color, or {object} of fields |
| input_name_stack | json | No | Optional array: full dynamic-input chain, overrides input_name |
| parameter_name | string | No | kind=linked: source parameter name |
| expression | string | No | kind=hlsl: HLSL expression text |
| dynamic_input_script | string | No | kind=dynamic_input: dynamic-input script asset path |
| data_interface_class | string | No | kind=data_interface: DI class name or path |
| properties | json | No | kind=data_interface: JSON object applied to the created DI |
| to_base | bool | No | kind=reset: reset to parent-emitter base instead of script default |
cfa set_niagara_stack_value --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name AddVelocity --input-name "Velocity" --script-usage ParticleSpawn --kind local --value '[0,0,250]'
cfa set_niagara_stack_value --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name Color --input-name "Color" --script-usage ParticleUpdate --kind linked --parameter-name Particles.Colorget_niagara_stack_valueRead a module input's current value and kind (round-trips to set_niagara_stack_value)
Reads an input's current value mode via the stack view model and reports it in the same shape set_niagara_stack_value accepts: kind plus value/parameter_name/expression/dynamic_input_script/data_interface_class. Dynamic inputs recurse into their child inputs. Pass input_name_stack to read a nested dynamic-input pin.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | No | Emitter display name (omit for system-usage modules) |
| script_usage | string | Yes | Stage: EmitterSpawn/EmitterUpdate/ParticleSpawn/ParticleUpdate/SystemSpawn/SystemUpdate |
| module_name | string | Yes | Module function name |
| input_name | string | Yes | Top-level input name (use input_name_stack for nested pins) |
| input_name_stack | json | No | Optional array: full dynamic-input chain, overrides input_name |
cfa get_niagara_stack_value --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name AddVelocity --input-name "Velocity" --script-usage ParticleSpawnget_niagara_user_parametersGet user-exposed parameters
Returns user-exposed parameters on a Niagara system asset or on a placed Niagara component in the level. Provide system_path to read the asset definition, or actor_name to read runtime overrides on a placed instance. Shows parameter names, types, and value types. Use filter to narrow by parameter name substring.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Asset path of the Niagara system |
| actor_name | string | No | Name of a placed Niagara actor in the level |
| filter | string | No | Substring filter on parameter names |
cfa get_niagara_user_parameters --system-path /Game/VFX/NS_Fire
cfa get_niagara_user_parameters --actor-name "NS_Fire_Instance"
cfa get_niagara_user_parameters --system-path /Game/VFX/NS_Fire --filter Coloradd_niagara_user_parameterAdd a user parameter to a system
Adds a new user-exposed parameter to a Niagara system. User parameters appear in the Details panel when the system is placed in a level and can be set per-instance. parameter_type is the Niagara type name (Float, Vector, LinearColor, Bool, Int32, etc.). Optionally provide a JSON-encoded default_value.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| parameter_name | string | Yes | Name for the new parameter |
| parameter_type | string | Yes | Niagara type: Float, Vector, LinearColor, Bool, Int32, etc. |
| default_value | json | No | JSON-encoded default value |
cfa add_niagara_user_parameter --system-path /Game/VFX/NS_Fire --parameter-name "Intensity" --parameter-type Float --default-value 1.0
cfa add_niagara_user_parameter --system-path /Game/VFX/NS_Fire --parameter-name "ParticleColor" --parameter-type LinearColor --default-value '[1, 0.5, 0, 1]'set_niagara_user_parameterSet a user parameter value
Sets the value of a user-exposed parameter. When actor_name is provided, sets the per-instance override on a placed Niagara component. When system_path is provided, sets the default value on the asset. parameter_type must match the parameter's declared type.
| Parameter | Type | Required | Description |
|---|---|---|---|
| parameter_name | string | Yes | Name of the user parameter |
| parameter_type | string | Yes | Niagara type: Float, Vector, LinearColor, Bool, Int32, etc. |
| value | json | Yes | JSON-encoded parameter value |
| actor_name | string | No | Name of a placed Niagara actor for per-instance override |
| system_path | string | No | Asset path to set the default value |
cfa set_niagara_user_parameter --actor-name "NS_Fire_Instance" --parameter-name "Intensity" --parameter-type Float --value 2.5
cfa set_niagara_user_parameter --system-path /Game/VFX/NS_Fire --parameter-name "ParticleColor" --parameter-type LinearColor --value '[0, 1, 0, 1]'remove_niagara_user_parameterRemove a user parameter from a system
Removes a user-exposed parameter from a Niagara system. Any module inputs linked to this parameter will be unlinked. Placed instances that override this parameter will lose their overrides. Use get_niagara_user_parameters to confirm the parameter name.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| parameter_name | string | Yes | Name of the parameter to remove |
cfa remove_niagara_user_parameter --system-path /Game/VFX/NS_Fire --parameter-name Intensitylink_niagara_parameterLink a module input to a parameter
Links a module input to a Niagara parameter by namespace path. This makes the module input read its value from the linked parameter at runtime instead of using a static value. Common parameter paths include User.ParamName for user parameters, Emitter.Age, Particles.Lifetime, Engine.DeltaTime, etc.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| module_name | string | Yes | Name of the module |
| input_name | string | Yes | Name of the input parameter to link |
| script_usage | string | Yes | Stage the module belongs to |
| linked_parameter | string | Yes | Namespace path of the parameter to link (e.g., User.Intensity) |
cfa link_niagara_parameter --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name ScaleColor --input-name "Scale Factor" --script-usage ParticleUpdate --linked-parameter "User.Intensity"
cfa link_niagara_parameter --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name Color --input-name "Color" --script-usage ParticleUpdate --linked-parameter "User.ParticleColor"add_niagara_rendererAdd a renderer to an emitter
Adds a renderer to an emitter. renderer_type specifies the kind: SpriteRenderer, MeshRenderer, RibbonRenderer, LightRenderer, ComponentRenderer, etc. Optionally set the material and mesh at creation time. Use set_niagara_renderer_property and set_niagara_renderer_binding to configure further.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| renderer_type | string | Yes | Type: sprite, mesh, ribbon, light, component (the *Renderer long form also works) |
| material_path | string | No | Material asset path to assign |
| mesh_path | string | No | Static mesh asset path (for MeshRenderer) |
cfa add_niagara_renderer --system-path /Game/VFX/NS_Fire --emitter-name Sparks --renderer-type SpriteRenderer --material-path /Game/Materials/M_Spark
cfa add_niagara_renderer --system-path /Game/VFX/NS_Fire --emitter-name Debris --renderer-type MeshRenderer --mesh-path /Game/Meshes/SM_Chunk --material-path /Game/Materials/M_Rockremove_niagara_rendererRemove a renderer from an emitter
Removes a renderer from an emitter by its zero-based index. An emitter can have multiple renderers; use get_niagara_emitters or get_niagara_renderer_info to see their indices.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| renderer_index | int | Yes | Zero-based index of the renderer to remove |
cfa remove_niagara_renderer --system-path /Game/VFX/NS_Fire --emitter-name Sparks --renderer-index 1get_niagara_renderer_infoGet renderer properties and bindings
Returns detailed information about a renderer on an emitter, including its type, material, mesh (if applicable), all configurable properties, and all attribute bindings (which particle attributes drive which rendering features). Use to inspect before modifying.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| renderer_index | int | No | Zero-based renderer index |
cfa get_niagara_renderer_info --system-path /Game/VFX/NS_Fire --emitter-name Sparks
cfa get_niagara_renderer_info --system-path /Game/VFX/NS_Fire --emitter-name Sparks --renderer-index 1set_niagara_renderer_propertySet a property on a renderer
Sets a property on a renderer. Common properties include SortMode, SubImageSize, Material, Alignment, FacingMode, SourceMode (for ribbons), and mesh-specific settings. Use get_niagara_renderer_info to discover available properties.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Asset path of the Niagara system (with emitter_name) |
| emitter_name | string | No | Name of the emitter inside the system |
| emitter_path | string | No | Asset path of a standalone emitter (instead of system_path + emitter_name) |
| property | string | Yes | Property name to set |
| value | json | Yes | JSON-encoded property value |
| renderer_index | int | No | Zero-based renderer index |
cfa set_niagara_renderer_property --system-path /Game/VFX/NS_Fire --emitter-name Sparks --property SortMode --value '"ViewDistance"'
cfa set_niagara_renderer_property --emitter-path /Game/CFATest/E_Spark.E_Spark --property Material --value "/Niagara/DefaultAssets/DefaultSpriteMaterial.DefaultSpriteMaterial"set_niagara_renderer_bindingBind a renderer slot to a particle attribute
Binds a renderer attribute slot to a particle attribute. Bindings control which particle data drives rendering features. Common binding_name values: PositionBinding, ColorBinding, SpriteRotationBinding, SpriteSizeBinding, VelocityBinding, DynamicMaterialBinding, NormalizedAgeBinding, etc.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| binding_name | string | Yes | Renderer binding slot name (e.g., ColorBinding, SpriteSizeBinding) |
| attribute | string | Yes | Particle attribute path (e.g., Particles.Color) |
| renderer_index | int | No | Zero-based renderer index |
cfa set_niagara_renderer_binding --system-path /Game/VFX/NS_Fire --emitter-name Sparks --binding-name ColorBinding --attribute "Particles.Color"
cfa set_niagara_renderer_binding --system-path /Game/VFX/NS_Fire --emitter-name Sparks --binding-name SpriteSizeBinding --attribute "Particles.SpriteSize"create_niagara_scratch_pad_moduleCreate a scratch pad module on a system
Creates a new scratch pad module within a Niagara system. Scratch pad modules are system-local scripts that can be used across emitters within that system. They are useful for prototyping custom logic before extracting to a standalone module asset. Specify the script_usage stage and an optional module_name. NOTE: the engine uniquifies the name (e.g. "CustomDrag" becomes "CustomDrag_0"); use the returned module_name verbatim for all follow-up scratch-pad commands.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| script_usage | string | Yes | Stage: EmitterSpawn, EmitterUpdate, ParticleSpawn, ParticleUpdate |
| module_name | string | No | Display name for the scratch pad module |
cfa create_niagara_scratch_pad_module --system-path /Game/VFX/NS_Fire --script-usage ParticleUpdate --module-name "CustomDrag"set_niagara_scratch_pad_hlslSet HLSL code on a scratch pad module
Sets the HLSL code body, input definitions, and output definitions on a scratch pad module. inputs is a JSON array of {name, type} objects defining input pins. outputs is a JSON array of {name, type} objects defining output pins. The HLSL code runs per-particle or per-emitter depending on the module's script_usage.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| script_path | string | No | Standalone UNiagaraScript asset path (instead of system_path + module_name) |
| hlsl_code | string | Yes | HLSL code body for the module |
| inputs | json | No | JSON array of input definitions [{name, type}...] |
| outputs | json | No | JSON array of output definitions [{name, type}...] |
cfa set_niagara_scratch_pad_hlsl --system-path /Game/VFX/NS_Fire --module-name "CustomDrag" --hlsl-code "OutVelocity = Velocity * (1.0 - DragCoeff * DeltaTime);" --inputs '[{"name":"Velocity","type":"Vector"},{"name":"DragCoeff","type":"Float"}]' --outputs '[{"name":"OutVelocity","type":"Vector"}]'create_niagara_module_assetCreate a standalone Niagara script asset (module / dynamic input / function)
Creates a new standalone Niagara script asset that can be shared across systems. module_type selects the kind: module, dynamic_input, or function. Duplicates the editor's matching default template when available, else builds a minimal compilable graph. Author its graph afterward with the graph/HLSL/pin verbs via --script-path, then reference it into a system with add_niagara_module --module-path. Each graph/HLSL/pin edit auto-saves the standalone asset to disk, so authored scripts survive editor restarts. Standalone module/dynamic-input/function scripts have no self-compile, they compile in the context of the system that uses them, so 'compile status unknown' on the standalone asset is expected until it is placed in a system. New assets default to library_visibility=Exposed so they show up in the stack's Add menu; override as needed.
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Content Browser path for the new script asset |
| module_type | string | No | module | dynamic_input | function |
| description | string | No | Description shown in the asset's details |
| library_visibility | string | No | Exposed (in Add menu) | Unexposed | Hidden |
| category | string | No | Category shown in the asset's details / Add menu grouping |
| suggested | bool | No | Add to the 'Suggested' category at the top of Add menus |
cfa create_niagara_module_asset --asset-path /Game/VFX/Modules/NM_CustomForce --module-type module --description "Applies custom force"
cfa create_niagara_module_asset --asset-path /Game/VFX/DynamicInputs/DI_Jitter --module-type dynamic_input --category "Custom/Motion" --suggestedadd_niagara_event_handlerAdd an event handler to an emitter
Adds an event handler that responds to events generated by another emitter. execution_mode controls how the handler runs: every_particle (run on each existing particle), spawned_particles (spawn new particles per event). Use for collision responses, death events, or inter-emitter communication.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter receiving the event |
| source_emitter | string | Yes | Name of the emitter generating the event |
| event_name | string | Yes | Event type name (e.g., CollisionEvent, DeathEvent) |
| execution_mode | string | No | Mode: every_particle, spawned_particles |
| spawn_number | int | No | Number of particles to spawn per event (for spawned_particles mode) |
| max_events_per_frame | int | No | Max events per frame (0 = unlimited) |
cfa add_niagara_event_handler --system-path /Game/VFX/NS_Fire --emitter-name Sparks --source-emitter Flame --event-name "CollisionEvent" --execution-mode spawned_particles --spawn-number 3
cfa add_niagara_event_handler --system-path /Game/VFX/NS_Fire --emitter-name Smoke --source-emitter Flame --event-name "DeathEvent" --execution-mode every_particleadd_niagara_simulation_stageAdd a simulation stage to an emitter
Adds a custom simulation stage to an emitter. Simulation stages run additional passes after the main ParticleUpdate, useful for multi-pass algorithms like fluid simulation, neighbor searches, or iterative constraint solving. iteration_source can be particles or a data interface.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| stage_name | string | Yes | Display name for the simulation stage |
| iteration_source | string | No | Iteration source: particles or a data interface name |
| num_iterations | int | No | Number of iterations per frame |
cfa add_niagara_simulation_stage --system-path /Game/VFX/NS_Fluid --emitter-name Particles --stage-name "PressureSolve" --iteration-source particles --num-iterations 4
cfa add_niagara_simulation_stage --system-path /Game/VFX/NS_Cloth --emitter-name Vertices --stage-name "ConstraintSolve" --num-iterations 8get_niagara_event_handlersList event handlers on an emitter
Returns all event handlers configured on an emitter, including source emitter, event type, execution mode, spawn number, and associated module stacks. Use before adding or modifying event handlers.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
cfa get_niagara_event_handlers --system-path /Game/VFX/NS_Fire --emitter-name Sparksspawn_niagara_effectSpawn a Niagara effect in the level
Spawns a Niagara system as an actor in the current level at the specified location. Returns the spawned actor name. Transform args accept Unreal canonical strings "(X=..,Y=..,Z=..)" / "(P=..,Y=..,R=..)" as well as bare CSV "X,Y,Z" or JSON object/array. Set auto_activate to false to spawn deactivated (use control_niagara_effect to activate later). Use actor_label for the Outliner display label (canonical across MCP tools); name is a legacy alias kept for backward compat.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system to spawn |
| location | string | No | World position: "(X=..,Y=..,Z=..)", "X,Y,Z", or JSON {X,Y,Z} |
| rotation | string | No | Rotation: "(P=..,Y=..,R=..)", "Pitch,Yaw,Roll", or JSON {Pitch,Yaw,Roll} |
| scale | string | No | Scale: "(X=..,Y=..,Z=..)", "X,Y,Z", or JSON {X,Y,Z} |
| actor_label | string | No | Outliner display label (canonical form) |
| name | string | No | Legacy alias for actor_label (actor_label wins if both given) |
| auto_activate | bool | No | Activate the effect immediately on spawn |
cfa spawn_niagara_effect --system-path /Game/VFX/NS_Explosion --location "(X=100,Y=200,Z=0)"
cfa spawn_niagara_effect --system-path /Game/VFX/NS_Fire --location "(X=0,Y=0,Z=50)" --scale "(X=2,Y=2,Z=2)" --actor-label "CampfireVFX"
cfa spawn_niagara_effect --system-path /Game/VFX/NS_Ambient --location "(X=0,Y=0,Z=0)" --auto-activate=falsecontrol_niagara_effectControl a spawned Niagara effect
Controls a Niagara effect actor in the level. action can be: activate (start playing), deactivate (stop with completion), kill (stop immediately), reset (restart from beginning), or toggle (flip active state). Use get_niagara_actors to find effect actor names.
| Parameter | Type | Required | Description |
|---|---|---|---|
| actor_name | string | Yes | Name of the Niagara actor in the level |
| action | string | Yes | Action: activate, deactivate, kill, reset, toggle |
cfa control_niagara_effect --actor-name "NS_Fire_Instance" --action activate
cfa control_niagara_effect --actor-name "CampfireVFX" --action kill
cfa control_niagara_effect --actor-name "NS_Ambient_0" --action resetadd_niagara_componentAdd a Niagara component to an actor
Adds a UNiagaraComponent to an existing actor in the level. The component plays the specified Niagara system as a child of the actor. Use relative_location to offset the effect from the actor's root. Set auto_activate to false if you want to trigger it later.
| Parameter | Type | Required | Description |
|---|---|---|---|
| actor_name | string | Yes | Name of the target actor in the level |
| system_path | string | Yes | Asset path of the Niagara system |
| component_name | string | No | Name for the new component |
| relative_location | json | No | JSON object {X, Y, Z} offset from actor root |
| auto_activate | bool | No | Activate the component immediately |
cfa add_niagara_component --actor-name "Torch_BP" --system-path /Game/VFX/NS_TorchFlame --component-name "FlameVFX" --relative-location '{"X": 0, "Y": 0, "Z": 100}'
cfa add_niagara_component --actor-name "PlayerCharacter" --system-path /Game/VFX/NS_FootDust --auto-activate=falseget_niagara_actorsList Niagara effect actors in the level
Returns all Niagara system actors currently placed in the level. Optionally filter by system asset path to find instances of a specific effect. Shows actor name, system path, location, and active state.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_filter | string | No | Filter by Niagara system asset path |
cfa get_niagara_actors
cfa get_niagara_actors --system-filter "/Game/VFX/NS_Fire"list_niagara_modulesList available Niagara modules
Lists every module-usage Niagara script from the Asset Registry, the same source the editor's Add Module menu uses (engine + project). Filter by category (the module's folder, e.g. spawn, update, forces, beams, ribbons) or search by name/path substring. Returns module asset paths and categories. total_matched reports the count before max_results.
| Parameter | Type | Required | Description |
|---|---|---|---|
| category | string | No | Category filter (module folder: spawn, update, forces, beams...) |
| search | string | No | Search modules by name or path substring |
| max_results | int | No | Maximum number of results |
| include_engine | bool | No | Include engine /Niagara modules (default true) |
cfa list_niagara_modules --search velocity
cfa list_niagara_modules --category beams
cfa list_niagara_modules --search jitter --max-results 20list_niagara_emitter_templatesList available emitter templates
Lists built-in and project emitter templates that can be used with add_niagara_emitter. Templates provide pre-configured emitters with modules and renderers for common effects like fountains, sprites, mesh particles, ribbons, etc. Filter by category to narrow results.
| Parameter | Type | Required | Description |
|---|---|---|---|
| category | string | No | Category filter: all, sprite, mesh, ribbon, gpu, etc. |
cfa list_niagara_emitter_templates
cfa list_niagara_emitter_templates --category spritelist_niagara_data_interfacesList Niagara data interface types
Lists available Niagara data interface types. Data interfaces provide external data to Niagara simulations (meshes, textures, audio, physics, landscape, splines, etc.). Use filter to search by name. Returns type names and descriptions.
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | No | Filter data interfaces by name substring |
cfa list_niagara_data_interfaces
cfa list_niagara_data_interfaces --filter "Mesh"list_niagara_parameter_typesList Niagara parameter types by scope
Lists valid Niagara parameter types for a given scope. scope controls which namespace to list: user (User.* parameters), particle (Particles.* attributes), emitter (Emitter.* variables), system (System.* variables), or engine (Engine.* built-ins). Use filter to narrow results by name.
| Parameter | Type | Required | Description |
|---|---|---|---|
| scope | string | No | Parameter scope: user, particle, emitter, system, engine |
| filter | string | No | Filter parameter types by name substring |
cfa list_niagara_parameter_types
cfa list_niagara_parameter_types --scope particle --filter "Color"
cfa list_niagara_parameter_types --scope engineget_niagara_emitter_attributesGet attributes available on an emitter
Returns attributes available on an emitter including rapid iteration parameters and well-known particle attributes (Position, Velocity, Color, etc.). Shows names, types, scope, and source. Use filter to narrow by attribute name substring.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| scope | string | No | Attribute scope: particle, emitter, system, engine |
| filter | string | No | Substring filter on attribute names |
cfa get_niagara_emitter_attributes --system-path /Game/VFX/NS_Fire --emitter-name Sparks
cfa get_niagara_emitter_attributes --system-path /Game/VFX/NS_Fire --emitter-name Sparks --scope particle
cfa get_niagara_emitter_attributes --system-path /Game/VFX/NS_Fire --emitter-name Sparks --filter Colorget_niagara_renderer_propertiesList editable properties on a renderer with current values
Returns all editable UPROPERTY fields on a renderer (sprite, ribbon, mesh, light, component) with their current values and valid enum options. Use filter to get specific properties, strongly recommended to save tokens. Property names can be used directly with set_niagara_renderer_property.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| renderer_index | int | No | Renderer index (default 0) |
| filter | string | No | Substring filter on property name (e.g. Facing, Material, Sort, Shadow) |
cfa get_niagara_renderer_properties --system-path /Game/VFX/NS_Fire --emitter-name Sparks --filter Facing
cfa get_niagara_renderer_properties --system-path /Game/VFX/NS_Fire --emitter-name Sparks --filter Material
cfa get_niagara_renderer_properties --system-path /Game/VFX/NS_Fire --emitter-name Sparks --filter Sortset_niagara_system_propertySet a system-level property via reflection
Sets any UPROPERTY on UNiagaraSystem: WarmupTime, WarmupTickDelta, bDeterminism, RandomSeed, bFixedBounds, FixedBounds, bFixedTickDelta, FixedTickDeltaTime, etc. Use the exact C++ property name (PascalCase). For booleans, can auto-add 'b' prefix.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| property | string | Yes | Property name (PascalCase, e.g. WarmupTime, bDeterminism) |
| value | string | Yes | Value as string |
cfa set_niagara_system_property --system-path /Game/VFX/NS_Fire --property WarmupTime --value 2.0
cfa set_niagara_system_property --system-path /Game/VFX/NS_Fire --property bDeterminism --value true
cfa set_niagara_system_property --system-path /Game/VFX/NS_Fire --property RandomSeed --value 42get_niagara_rapid_iteration_parametersGet actual module input values (spawn rate, colors, forces, etc.)
Returns all rapid iteration parameters, the real configurable values on Niagara modules. These include spawn rate, gravity, colors, sizes, lifetimes, and every other editable module input. Each parameter includes its module name, input name, current value, and type. Use the filter parameter to narrow results.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| script_usage | string | No | Stack filter: emitter_spawn, emitter_update, particle_spawn, particle_update, or all |
| filter | string | No | Substring filter on parameter name (e.g. Color, SpawnRate, Gravity) |
cfa get_niagara_rapid_iteration_parameters --system-path /Game/VFX/NS_Fire --emitter-name Sparks
cfa get_niagara_rapid_iteration_parameters --system-path /Game/VFX/NS_Fire --emitter-name Sparks --filter SpawnRate
cfa get_niagara_rapid_iteration_parameters --system-path /Game/VFX/NS_Fire --emitter-name Sparks --script-usage particle_spawn --filter Colorset_niagara_rapid_iteration_parameterSet a module input value (spawn rate, color, force, size, etc.)
Sets a rapid iteration parameter value on a Niagara module. This is the primary way to change module inputs like spawn rate, colors, forces, sizes, and lifetimes. Use get_niagara_rapid_iteration_parameters first to discover available parameters. Value format: float (5.0), int (10), bool (true), vector ({"x":1,"y":2,"z":3}), color ({"r":1,"g":0.5,"b":0,"a":1}).
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Asset path of the Niagara system (with emitter_name) |
| emitter_name | string | No | Name of the emitter inside the system |
| emitter_path | string | No | Asset path of a standalone emitter (instead of system_path + emitter_name) |
| module_name | string | Yes | Module name (e.g. SpawnRate, InitializeParticle, GravityForce) |
| input_name | string | Yes | Input parameter name (e.g. SpawnRate, Color, Gravity) |
| value | json | Yes | Value to set, format depends on type |
| script_usage | string | Yes | Stack: emitter_update, particle_spawn, particle_update, etc. |
cfa set_niagara_rapid_iteration_parameter --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name SpawnRate --input-name SpawnRate --value 50 --script-usage emitter_update
cfa set_niagara_rapid_iteration_parameter --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name InitializeParticle --input-name Color --value '{"r":1,"g":0.3,"b":0,"a":1}' --script-usage particle_spawn
cfa set_niagara_rapid_iteration_parameter --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name GravityForce --input-name Gravity --value '{"x":0,"y":0,"z":-980}' --script-usage particle_updateget_niagara_system_errorsGet compilation errors and warnings for a Niagara system
Returns compilation errors, warnings, and validation issues for a Niagara system. Use to diagnose why a system isn't working, find outdated modules, or check for configuration problems. Filter by emitter name or severity level.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | No | Filter to issues from a specific emitter |
| severity | string | No | Severity filter: error, warning, info, or all |
cfa get_niagara_system_errors --system-path /Game/VFX/NS_Fire
cfa get_niagara_system_errors --system-path /Game/VFX/NS_Fire --emitter-name Sparks --severity errorget_niagara_particle_statsGet live particle counts and emitter execution state
Returns live particle counts per emitter, total spawned count, execution state (Active/Inactive/Complete), and bounds info. Requires the system to be previewing in the Niagara editor or spawned in the level. Use to verify emitters are spawning particles and to diagnose empty effects.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | No | Filter to a specific emitter's stats |
cfa get_niagara_particle_stats --system-path /Game/VFX/NS_Fire
cfa get_niagara_particle_stats --system-path /Game/VFX/NS_Fire --emitter-name Sparksset_niagara_playback_rangeSet the timeline playback range in the Niagara editor
Controls how long the Niagara editor preview plays. If your effect dies at 0.02s, extend the range. For looping effects set a longer range (e.g. 5-10 seconds). Optionally override the frame rate.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| range_end | float | Yes | End time in seconds (e.g. 5.0) |
| range_start | float | No | Start time in seconds |
| frame_rate | int | No | Optional frame rate override (default 60) |
cfa set_niagara_playback_range --system-path /Game/VFX/NS_Fire --range-end 5.0
cfa set_niagara_playback_range --system-path /Game/VFX/NS_Fire --range-start 0.5 --range-end 10.0 --frame-rate 30get_niagara_playback_rangeGet the current playback range and frame rate settings
Returns the current timeline playback range (start/end in seconds) and frame rate configuration. Use to check if the playback range is too short, a common cause of effects appearing to not play.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
cfa get_niagara_playback_range --system-path /Game/VFX/NS_Fireget_niagara_module_versionsCheck for outdated modules in an emitter
Identifies modules that have newer versions available, a common source of Niagara warnings and compatibility issues. Returns current and available versions per module. Use filter to narrow by module name substring.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Asset path of the Niagara system |
| emitter_name | string | Yes | Name of the emitter |
| filter | string | No | Filter modules by name substring |
cfa get_niagara_module_versions --system-path /Game/VFX/NS_Fire --emitter-name Sparks
cfa get_niagara_module_versions --system-path /Game/VFX/NS_Fire --emitter-name Sparks --filter "Spawn"export_niagaraExport a full Niagara System / Script / Emitter as reflection-grounded JSON
Auto-detects the asset class and writes one JSON file. System export captures: system properties, user parameters (with default values), every emitter (sim target, local space, full emitter-data properties, renderers), every stage's ordered module stack with resolved input values (including dynamic inputs + nested pins), and all scratch-pad/local scripts WITH their full node graph + dynamic inputs. Separate-asset modules/DIs (engine or /Game) are listed as lightweight references (path + name + description/category/library-visibility + usage flags), NOT their internal graph, which is re-exportable by running export_niagara on that asset's path. Written to Saved/CodeFizzEditorAgent/Exports/.
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset | string | No | Niagara System / Script / Emitter asset path (alias: asset_path) |
| include_values | bool | No | Read module input values via the stack (opens the system editor) |
| include_referenced_graphs | bool | No | Inline full graphs for referenced separate-asset modules/DIs too (default: reference by path only) |
| include_stage_graphs | bool | No | Also dump the raw spliced per-stage graphs |
| inline | bool | No | Also return the full export JSON in the response (not just the file path) |
cfa export_niagara --asset /Game/VFX/NS_SolarSystem
cfa export_niagara --asset /Game/VFX/NM_PlanetInit
cfa export_niagara --asset /Game/VFX/NS_SolarSystem --include-values=false --include-stage-graphs=trueget_niagara_graph_nodesIntrospect every node inside a Niagara graph
Three resolver modes: (1) system_path + module_name for scratch pad module, (2) system_path + emitter_name + script_usage for emitter stack graph, (3) script_path for standalone UNiagaraScript asset. Returns nodes with pin/link detail based on verbosity. Token-efficient, use type_filter/name_filter to narrow.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path |
| module_name | string | No | Scratch pad module name (mode 1) |
| emitter_name | string | No | Emitter name (mode 2) |
| script_usage | string | No | emitter_spawn|emitter_update|particle_spawn|particle_update (mode 2) |
| script_path | string | No | Standalone UNiagaraScript asset path (mode 3) |
| verbosity | string | No | summary | connections | full |
| type_filter | string | No | Substring on short class name (e.g. MapGet, Op, CustomHlsl) |
| name_filter | string | No | Substring on node title |
cfa get_niagara_graph_nodes --system-path /Game/VFX/NS_Fire --module-name MyScratchPad
cfa get_niagara_graph_nodes --system-path /Game/VFX/NS_Fire --emitter-name Sparks --script-usage emitter_update --type-filter FunctionCallget_niagara_node_infoDeep inspect a single Niagara node by index, class, or GUID
Returns full pin layout, link detail, and node-type-specific fields (op_name for Op, function_script for FunctionCall, hlsl_preview for CustomHlsl, input_name/type for Input).
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path |
| module_name | string | No | Scratch pad module name |
| script_path | string | No | Standalone script asset path |
| node_index | int | No | Ordinal index in Graph->Nodes |
| node_class | string | No | Short ('MapGet') or full ('NiagaraNodeParameterMapGet') |
| node_id | string | No | FGuid string matching UEdGraphNode::NodeGuid |
cfa get_niagara_node_info --system-path /Game/VFX/NS_Fire --module-name MyDI --node-index 2
cfa get_niagara_node_info --script-path /Game/VFX/MyModule --node-class MapGettrace_niagara_connectionBFS trace of connections upstream or downstream from a node
Walks the graph from a starting node with optional pin_name filter. Returns each visited node with depth so the dependency chain is visible without dumping the whole graph.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path |
| module_name | string | No | Scratch pad module name |
| script_path | string | No | Standalone script asset path |
| node_index | int | No | Starting node index |
| node_class | string | No | Starting node class |
| node_id | string | No | Starting node GUID |
| direction | string | No | upstream | downstream | both |
| max_depth | int | No | Max BFS depth |
| pin_name | string | No | Optional starting-pin name filter |
cfa trace_niagara_connection --system-path /Game/VFX/NS_Fire --module-name MyDI --node-class MapGet --direction downstream --pin-name "Vector Array"validate_niagara_graphClassify orphaned, dead-end, and missing-input nodes in a Niagara graph
Returns three arrays: orphaned (no incoming or outgoing links), dead_ends (inputs connected but no outputs consumed), missing_inputs (no link and no default). Skips +Add placeholder pins.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path |
| module_name | string | No | Scratch pad module name |
| script_path | string | No | Standalone script asset path |
cfa validate_niagara_graph --system-path /Game/VFX/NS_Fire --module-name MyDIapply_niagara_scratch_padApply scratch pad changes in an open Niagara System (Apply Scratch button)
Triggers exactly what a user clicks in the open Niagara System editor. With module_name it applies that one scratch script (FNiagaraScratchPadScriptViewModel::ApplyChanges). WITHOUT module_name it is the toolbar's "Apply Scratch" button, applies ALL pending scratch changes via the system's scratch-pad view model (FNiagaraSystemToolkit::OnApplyScratchPadChanges). Pass compile=true to also recompile + refresh + save the system afterwards (like clicking Compile next). Requires the system to be open in the editor.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Niagara System asset path |
| module_name | string | No | Scratch pad module/DI name, omit to apply ALL pending scratch changes (Apply Scratch button) |
| compile | bool | No | After applying, recompile + refresh + save the system (like clicking Compile next) |
cfa apply_niagara_scratch_pad --system-path /Game/VFX/NS_Fire # Apply Scratch (all)
cfa apply_niagara_scratch_pad --system-path /Game/VFX/NS_Fire --module-name MyDI # one script
cfa apply_niagara_scratch_pad --system-path /Game/VFX/NS_Fire --compileapply_and_save_niagara_scratch_padApply a scratch pad module's edit-copy and save the asset (Apply & Save button)
Mirrors FNiagaraScratchPadScriptViewModel::ApplyChangesAndSave.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Niagara System asset path |
| module_name | string | Yes | Scratch pad module name |
cfa apply_and_save_niagara_scratch_pad --system-path /Game/VFX/NS_Fire --module-name MyDIlist_niagara_scratch_pad_modulesList all scratch pad modules on a Niagara System
Returns name, path, usage, node counts, and custom HLSL node count per script.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Niagara System asset path |
cfa list_niagara_scratch_pad_modules --system-path /Game/VFX/NS_Firedelete_niagara_scratch_pad_moduleDelete a scratch pad module from a Niagara System
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Niagara System asset path |
| module_name | string | Yes | Scratch pad module name |
cfa delete_niagara_scratch_pad_module --system-path /Game/VFX/NS_Fire --module-name MyDIduplicate_niagara_scratch_pad_moduleDuplicate a scratch pad module with a new name
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Niagara System asset path |
| module_name | string | Yes | Source scratch pad module name |
| new_name | string | Yes | New scratch pad module name |
cfa duplicate_niagara_scratch_pad_module --system-path /Game/VFX/NS_Fire --module-name MyDI --new-name MyDICopyrename_niagara_scratch_pad_moduleRename a scratch pad module
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Niagara System asset path |
| module_name | string | Yes | Current scratch pad module name |
| new_name | string | Yes | New scratch pad module name |
cfa rename_niagara_scratch_pad_module --system-path /Game/VFX/NS_Fire --module-name Old --new-name Newget_niagara_script_propertiesRead the details-panel properties of a Niagara script
Returns Category, Description, Keywords, ModuleUsageBitmask, ProvidedDependencies, RequiredDependencies, LibraryVisibility, bDeprecated, DeprecationMessage, bExperimental, ExperimentalMessage, NumericOutputTypeSelectionMode, ScriptMetaData, ConversionUtility.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path (with module_name) |
| module_name | string | No | Scratch pad module name |
| script_path | string | No | Standalone script asset path |
cfa get_niagara_script_properties --system-path /Game/VFX/NS_Fire --module-name MyDIset_niagara_script_propertiesBatch-set details-panel properties on a Niagara script
Pass a JSON object under --properties with any subset of the editable fields. ModuleUsageBitmask uses ENiagaraScriptUsage bitmask (e.g. particle spawn + update = (1<<3)|(1<<4)). ProvidedDependencies takes a JSON array of strings; RequiredDependencies an array of objects.
| Parameter | Type | Required | Description |
|---|---|---|---|
| properties | object | Yes | JSON object of property name -> value |
| system_path | string | No | Niagara System asset path (with module_name) |
| module_name | string | No | Scratch pad module name |
| script_path | string | No | Standalone script asset path |
cfa set_niagara_script_properties --system-path /Game/VFX/NS_Fire --module-name MyDI --properties '{"Category":"MCP/DI","bExperimental":true,"ProvidedDependencies":["MCP.ArrayLength"]}'list_niagara_script_parametersList input + output parameters of a Niagara script
Outputs come from UNiagaraNodeOutput::Outputs. Inputs come from script variable metadata filtered to Module.* / Input.* / User.* namespaces.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path |
| module_name | string | No | Scratch pad module name |
| script_path | string | No | Standalone script asset path |
cfa list_niagara_script_parameters --system-path /Game/VFX/NS_Fire --module-name MyDIadd_niagara_script_parameterAdd an input or output parameter to a Niagara script
For 'output' direction appends to UNiagaraNodeOutput::Outputs. Type must be a FNiagaraTypeRegistry name (e.g. float, Vector, Vector2D, Vector4, LinearColor, Quat, Position, NiagaraID, int32, bool, Matrix, NiagaraDataInterfaceArrayPosition).
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Parameter name (no namespace → becomes Module.<name>) |
| type | string | Yes | Niagara type name |
| direction | string | No | output | input |
| system_path | string | No | Niagara System asset path |
| module_name | string | No | Scratch pad module name |
| script_path | string | No | Standalone script asset path |
cfa add_niagara_script_parameter --system-path /Game/VFX/NS_Fire --module-name MyDI --name TestFloat --type float --direction outputremove_niagara_script_parameterRemove a named input or output parameter, cascades to Map Get/Set pins
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Parameter name |
| direction | string | No | output | input |
| system_path | string | No | Niagara System asset path |
| module_name | string | No | Scratch pad module name |
| script_path | string | No | Standalone script asset path |
cfa remove_niagara_script_parameter --system-path /Game/VFX/NS_Fire --module-name MyDI --name Module.Default --direction inputrename_niagara_script_parameterRename a script parameter in-place across asset and edit-copy graphs
| Parameter | Type | Required | Description |
|---|---|---|---|
| old_name | string | Yes | Current parameter name |
| new_name | string | Yes | New parameter name |
| direction | string | No | output | input |
| system_path | string | No | Niagara System asset path |
| module_name | string | No | Scratch pad module name |
| script_path | string | No | Standalone script asset path |
cfa rename_niagara_script_parameter --system-path /Game/VFX/NS_Fire --module-name MyDI --old-name NewOutput --new-name FinalNoise --direction outputadd_niagara_graph_nodeCreate a new node inside a Niagara graph
Provide node_type OR class_path. node_type options: Op (requires op_name), FunctionCall (requires function_script), DataInterfaceFunction (requires di_class + function_name), ParameterMapGet, ParameterMapSet, Reroute, Input (requires input_name + input_type). class_path spawns ANY UNiagaraNode subclass (full path, NiagaraNodeXxx, or Xxx), discover via list_niagara_node_types / search_niagara_nodes. Discover op_name via get_niagara_schema_actions and DI function_name via list_niagara_data_interface_functions, never guess.
| Parameter | Type | Required | Description |
|---|---|---|---|
| node_type | string | No | Op | FunctionCall | DataInterfaceFunction | ParameterMapGet | ParameterMapSet | Reroute | Input (or use class_path) |
| class_path | string | No | Any UNiagaraNode subclass (full path, NiagaraNodeXxx, or Xxx), alternative to node_type |
| pos_x | int | No | Graph X position |
| pos_y | int | No | Graph Y position |
| op_name | string | No | (Op) e.g. Numeric::Mul, Numeric::Add, Numeric::Length |
| function_script | string | No | (FunctionCall) UNiagaraScript asset path |
| input_name | string | No | (Input) variable name |
| input_type | string | No | (Input) Niagara type |
| di_class | string | No | (DataInterfaceFunction) DI class name |
| function_name | string | No | (DataInterfaceFunction) DI member function name |
| system_path | string | No | Niagara System asset path |
| module_name | string | No | Scratch pad module name |
| script_path | string | No | Standalone script asset path |
cfa add_niagara_graph_node --system-path /Game/VFX/NS_Fire --module-name MyDI --node-type Op --op-name "Numeric::Mul" --pos-x 100 --pos-y 100
cfa add_niagara_graph_node --script-path /Game/VFX/DI/DI_Foo.DI_Foo --class-path NiagaraNodeStaticSwitchdelete_niagara_graph_nodeDelete a node from a Niagara graph
Provide node_index (ordinal) OR node_id (FGuid from get_niagara_graph_nodes).
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path |
| module_name | string | No | Scratch pad module name |
| script_path | string | No | Standalone script asset path |
| node_index | int | No | Ordinal index |
| node_id | string | No | FGuid string |
cfa delete_niagara_graph_node --system-path /Game/VFX/NS_Fire --module-name MyDI --node-index 4build_niagara_graphBuild a whole Niagara graph at once, many nodes + connections in one call
Bulk graph builder (parity with build_material_graph). Spawns every node in 'nodes' (array index = node id) then wires every edge in 'connections'. The schema validates connections and auto-inserts conversion nodes (e.g. float->Vector) like the editor. Targets a standalone script (script_path) OR scratch module (system_path + module_name); reflects live in an open editor. Per-item failures are reported in errors[]; returns node index->guid map. Each node: {node_type|class_path, op_name|function_script|di_class+function_name|input_name+input_type, pos_x, pos_y}. Rich node types for building a whole module/dynamic input in ONE call: node_type=CustomHlsl takes hlsl_code + inputs:[{name,type}] + outputs:[{name,type}] (code + typed pins built together); ParameterMapGet takes get_pins:[{name,type}] (typed output params like Particles.Age, Module.Foo); ParameterMapSet takes set_pins:[{name,type}] (typed input params like Particles.Position). Connections use from_node/to_node (array index of a node built this call) OR from_node_class/to_node_class to reference a pre-existing node by class (e.g. "Input"/"Output" kept by clear_existing), so MapGet->CustomHlsl->MapSet + the Input/Output wiring all build in one call. Any ParameterMapGet/Set whose map Source pin you leave unconnected is auto-wired to the module's Input map (like the editor), a disconnected Source builds a module that fails to compile and can crash the Niagara translator, so this is done for you. Discover node specs with get_niagara_schema_actions.
| Parameter | Type | Required | Description |
|---|---|---|---|
| script_path | string | No | Standalone UNiagaraScript asset path (or system_path + module_name) |
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| nodes | json | Yes | JSON array of node specs (index = id) |
| connections | json | No | JSON array of {from_node,from_pin,to_node,to_pin} |
| clear_existing | bool | No | Remove existing nodes (keeps Input/Output) before building |
| finalize | bool | No | For a standalone script, Compile+Apply after building so it is immediately usable (inputs resolve, dynamic-input children materialize, dependents pick it up). Set false to batch several builds before one manual compile. Scratch modules compile with their system regardless |
cfa build_niagara_graph --system-path /Game/VFX/NS_Fire --module-name MyMod_0 --clear-existing --nodes '[{"node_type":"ParameterMapGet","get_pins":[{"name":"Particles.Age","type":"float"}]},{"node_type":"CustomHlsl","hlsl_code":"OutV=Age*2;","inputs":[{"name":"Age","type":"float"}],"outputs":[{"name":"OutV","type":"float"}]},{"node_type":"ParameterMapSet","set_pins":[{"name":"Particles.Lifetime","type":"float"}]}]' --connections '[{"from_node_class":"Input","from_pin":"Input","to_node":0,"to_pin":"Source"},{"from_node":0,"from_pin":"Particles.Age","to_node":1,"to_pin":"Age"},{"from_node":1,"from_pin":"OutV","to_node":2,"to_pin":"Particles.Lifetime"},{"from_node":2,"from_pin":"Dest","to_node_class":"Output","to_pin":"OutputMap"}]'add_niagara_custom_hlsl_inputAdd an input pin to a Custom HLSL node
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| script_path | string | No | Standalone UNiagaraScript asset path (instead of system_path + module_name) |
| pin_name | string | Yes | New input pin name |
| pin_type | string | Yes | Niagara type (float, Vector, int32, etc.) |
cfa add_niagara_custom_hlsl_input --system-path /Game/VFX/NS_Fire --module-name MyDI --pin-name Value --pin-type floatadd_niagara_custom_hlsl_outputAdd an output pin to a Custom HLSL node
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| script_path | string | No | Standalone UNiagaraScript asset path (instead of system_path + module_name) |
| pin_name | string | Yes | New output pin name |
| pin_type | string | Yes | Niagara type |
cfa add_niagara_custom_hlsl_output --system-path /Game/VFX/NS_Fire --module-name MyDI --pin-name Result --pin-type floatrename_niagara_custom_hlsl_pinRename a Custom HLSL pin (also rewrites {PinName} references in the HLSL body)
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| script_path | string | No | Standalone UNiagaraScript asset path (instead of system_path + module_name) |
| old_name | string | Yes | Current pin name |
| new_name | string | Yes | New pin name |
cfa rename_niagara_custom_hlsl_pin --system-path /Game/VFX/NS_Fire --module-name MyDI --old-name Value --new-name Scalarremove_niagara_custom_hlsl_pinRemove a pin from a Custom HLSL node
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| script_path | string | No | Standalone UNiagaraScript asset path (instead of system_path + module_name) |
| pin_name | string | Yes | Pin to remove |
cfa remove_niagara_custom_hlsl_pin --system-path /Game/VFX/NS_Fire --module-name MyDI --pin-name Valueadd_niagara_map_get_pinAdd a typed output pin to the first ParameterMapGet node in a scratch pad graph
Mirrors clicking + on a Map Get node in the editor. The pin name becomes the parameter handle (e.g. Module.MyParam, Engine.DeltaTime, User.MyParam).
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| script_path | string | No | Standalone UNiagaraScript asset path (instead of system_path + module_name) |
| parameter_name | string | Yes | Variable name including namespace |
| parameter_type | string | No | Niagara type |
cfa add_niagara_map_get_pin --system-path /Game/VFX/NS_Fire --module-name MyDI --parameter-name Module.Position --parameter-type Vectoradd_niagara_map_set_pinAdd a typed input pin to the first ParameterMapSet node in a scratch pad graph
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| script_path | string | No | Standalone UNiagaraScript asset path (instead of system_path + module_name) |
| parameter_name | string | Yes | Variable name including namespace |
| parameter_type | string | No | Niagara type |
cfa add_niagara_map_set_pin --system-path /Game/VFX/NS_Fire --module-name MyModule --parameter-name Particles.Velocity --parameter-type Vectoradd_niagara_node_pinAdd a pin to any UNiagaraNodeWithDynamicPins-derived node
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| script_path | string | No | Standalone UNiagaraScript asset path (instead of system_path + module_name) |
| pin_name | string | Yes | New pin name |
| pin_type | string | Yes | Niagara type |
| direction | string | No | input | output |
| node_index | int | No | Target node index |
| node_class | string | No | Target node class |
| node_id | string | No | Target node GUID |
cfa add_niagara_node_pin --system-path /Game/VFX/NS_Fire --module-name MyDI --node-index 3 --pin-name Extra --pin-type float --direction outputrename_niagara_node_pinRename a pin on a dynamic-pin node
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| script_path | string | No | Standalone UNiagaraScript asset path (instead of system_path + module_name) |
| old_name | string | Yes | Current pin name |
| new_name | string | Yes | New pin name |
| node_index | int | No | Target node index |
| node_class | string | No | Target node class |
| node_id | string | No | Target node GUID |
cfa rename_niagara_node_pin --system-path /Game/VFX/NS_Fire --module-name MyDI --node-index 3 --old-name Foo --new-name Barremove_niagara_node_pinRemove a dynamic pin from any node in a scratch pad graph
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| script_path | string | No | Standalone UNiagaraScript asset path (instead of system_path + module_name) |
| pin_name | string | Yes | Pin name to remove |
| node_index | int | No | Target node index |
| node_class | string | No | Target node class |
| node_id | string | No | Target node GUID |
cfa remove_niagara_node_pin --system-path /Game/VFX/NS_Fire --module-name MyDI --node-index 2 --pin-name Module.Defaultconnect_niagara_pinsWire one node's output pin to another node's input pin inside a scratch pad graph
Validated via UEdGraphSchema_Niagara::TryCreateConnection. Identify each side via (class|index|id) + pin name.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| script_path | string | No | Standalone UNiagaraScript asset path (instead of system_path + module_name) |
| from_pin | string | Yes | Source pin name |
| to_pin | string | Yes | Destination pin name |
| from_node_index | int | No | Source node index |
| from_node_class | string | No | Source node class |
| from_node_id | string | No | Source node GUID |
| to_node_index | int | No | Destination node index |
| to_node_class | string | No | Destination node class |
| to_node_id | string | No | Destination node GUID |
cfa connect_niagara_pins --system-path /Game/VFX/NS_Fire --module-name MyDI --from-node-index 2 --from-pin Module.Position --to-node-index 3 --to-pin Array\ interfacedisconnect_niagara_pinsBreak a pin connection in a scratch pad graph
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| script_path | string | No | Standalone UNiagaraScript asset path (instead of system_path + module_name) |
| pin_name | string | Yes | Pin to break |
| node_index | int | No | Target node index |
| node_class | string | No | Target node class |
| node_id | string | No | Target node GUID |
cfa disconnect_niagara_pins --system-path /Game/VFX/NS_Fire --module-name MyDI --node-index 3 --pin-name "Array interface"list_niagara_node_typesEnumerate Niagara node classes available for spawning
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | No | Case-insensitive substring on class name |
cfa list_niagara_node_types --filter Parameterget_niagara_node_type_infoGet pin schema for a node class or script asset
| Parameter | Type | Required | Description |
|---|---|---|---|
| class_name | string | No | UClass name (short or full) |
| script_path | string | No | UNiagaraScript asset path |
cfa get_niagara_node_type_info --class-name NiagaraNodeParameterMapGetsearch_niagara_functionsFind Niagara script assets by usage + name filter
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | No | Name/path substring |
| usage | string | No | module | dynamic_input | function |
| include_engine | bool | No | Include /Niagara/* engine scripts |
| max_results | int | No | Max returned |
cfa search_niagara_functions --filter Length --usage functionget_niagara_schema_actionsSearch the full Niagara node palette (the right-click menu) by keyword + category
Wraps UEdGraphSchema_Niagara::GetGraphActions, the exact data the editor's right-click menu uses (ops, function/module/dynamic-input scripts, make/break, convert, DI nodes). Runs against a standalone script (script_path) OR an in-system scratch module (system_path + module_name). Each entry has display_name, category, tooltip, keywords, the spawn descriptor (op_name / function_script / node_type / input_name+type) and full input/output pin schema with Niagara types, feed straight into add_niagara_graph_node.
| Parameter | Type | Required | Description |
|---|---|---|---|
| script_path | string | No | Standalone UNiagaraScript asset path (or use system_path + module_name) |
| system_path | string | No | Niagara System asset path (scratch pad target) |
| module_name | string | No | Scratch pad module name (with system_path) |
| filter | string | No | Case-insensitive keyword over display_name/category/keywords/tooltip |
| category | string | No | Case-insensitive category filter (e.g. Math, Vector, Color) |
| max_results | int | No | Max returned entries |
cfa get_niagara_schema_actions --script-path /Game/VFX/DI/DI_Foo.DI_Foo --filter align --max-results 5
cfa get_niagara_schema_actions --system-path /Game/VFX/NS_Fire --module-name MyDI --category Math --filter multiplydescribe_niagara_typeGeneric type query, handles registered Niagara types AND raw UEnums/UScriptStructs
First tries FNiagaraTypeRegistry; falls back to UEnum/UScriptStruct reflection for script-property enums like ENiagaraScriptLibraryVisibility or any custom project enum.
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | Yes | Type name (pin-registered or UEnum/UScriptStruct) |
cfa describe_niagara_type --type Vector
cfa describe_niagara_type --type ENiagaraScriptLibraryVisibilityget_niagara_data_interface_schemaWalk a UNiagaraDataInterface class default object and return its editable property schema
| Parameter | Type | Required | Description |
|---|---|---|---|
| di_class | string | Yes | DI class short or full name |
cfa get_niagara_data_interface_schema --di-class NiagaraDataInterfaceArrayPositionlist_niagara_available_parametersList available Niagara parameters (Engine.*, Particles.*, Emitter.*, User.*)
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | No | Case-insensitive substring on parameter name |
| namespace | string | No | all | engine | particles | emitter | user | system |
| max_results | int | No | Max returned |
| system_path | string | No | Optional, include system's user parameters |
| module_name | string | No | Optional, scope to a scratch pad module's namespace |
cfa list_niagara_available_parameters --namespace engine --filter Timeget_niagara_module_input_bindingResolve the actual binding of each module input, Default / Local / Linked / Dynamic / Data
Answers 'what is Spawn Count actually driven by?'. Recursively walks dynamic-input children up to max_depth so a single call returns the full binding tree with nested parameter links and literal values.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Niagara System asset path |
| emitter_name | string | Yes | Emitter name |
| module_name | string | Yes | Module display name |
| script_usage | string | Yes | emitter_spawn|emitter_update|particle_spawn|particle_update|system_spawn|system_update |
| input_filter | string | No | Case-insensitive substring on input name |
| max_depth | int | No | Recursive descent cap for dynamic-input children |
cfa get_niagara_module_input_binding --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name SpawnPerFrame --script-usage emitter_updateclear_niagara_module_inputReset a module input to its default (including nested paths like 'Spawn Count.Position Array')
Finds the override pin, breaks its connections, removes orphan nodes exclusively feeding it, then removes the override pin. Mirrors 'Reset to Default' in the stack UI. Supports nested path syntax to reach inputs inside dynamic inputs.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Niagara System asset path |
| emitter_name | string | Yes | Emitter name |
| module_name | string | Yes | Module display name |
| script_usage | string | Yes | Stack the module is in |
| input_name | string | Yes | Input name (supports 'Parent.Child' nesting) |
cfa clear_niagara_module_input --system-path /Game/VFX/NS_Fire --emitter-name Sparks --module-name SpawnPerFrame --script-usage emitter_update --input-name "Spawn Count.Position Array"find_niagara_scratch_pad_usageFind where a scratch pad script is referenced across all emitter/system graphs
Scans every emitter × {spawn, update, particle_spawn, particle_update} + system_spawn + system_update graphs for UNiagaraNodeFunctionCall nodes whose FunctionScript matches. Returns usage sites as {emitter, script_usage, function_name, node_id, is_dynamic_input}.
| Parameter | Type | Required | Description |
|---|---|---|---|
| system_path | string | Yes | Niagara System asset path |
| module_name | string | Yes | Scratch pad module name to hunt for |
cfa find_niagara_scratch_pad_usage --system-path /Game/VFX/NS_Fire --module-name GetDataInterfaceLengthresolve_niagara_built_in_dynamic_inputDiscover built-in dynamic-input script paths via AssetRegistry (replaces hardcoded guesses)
Replaces guessed paths like /Niagara/Modules/DynamicInputs/UniformRangedFloat (which vary across UE versions) with a live AssetRegistry scan. Returns UNiagaraScript assets with Usage=DynamicInput matching the filter.
| Parameter | Type | Required | Description |
|---|---|---|---|
| name_filter | string | No | Case-insensitive substring |
| exact_name | string | No | Return only the asset whose AssetName equals this |
| max_results | int | No | Max returned |
cfa resolve_niagara_built_in_dynamic_input --name-filter Random --max-results 10list_niagara_data_interface_functionsEnumerate member functions on a Niagara data interface class
Returns the functions the editor's right-click 'Functions' submenu shows on a DI pin, built-in DI members like Array.Length, Array.Get, Array.Add. These aren't UNiagaraScript assets so search_niagara_functions won't find them. Pass the result as function_name to add_niagara_graph_node(node_type='DataInterfaceFunction').
| Parameter | Type | Required | Description |
|---|---|---|---|
| di_class | string | Yes | Short ('NiagaraDataInterfaceArrayPosition') or full path |
| filter | string | No | Case-insensitive substring on function name |
| include_pins | bool | No | Include input/output pin schema |
cfa list_niagara_data_interface_functions --di-class NiagaraDataInterfaceArrayPosition --filter Length