Skip to main content
Glama

add_niagara_emitter_from_template

Add a standalone copy of a UNiagaraEmitter template to a Niagara system by loading the source asset, rebuilding nodes, syncing the overview graph, then compiling and saving the system.

Instructions

Add a copy of a template emitter to a Niagara system (canonical path). Loads the template/parent UNiagaraEmitter asset and adds a standalone copy of it to the system via FNiagaraEditorUtilities::AddEmitterToSystem — the same operation the Niagara editor's "Add Emitter" performs. This rebuilds the emitter's nodes and syncs the system overview graph, then requests a compile and saves the system.

Returns: { system_path: string, source_emitter_asset: string, emitter_handle_id: string, emitter_handle_name: string, is_valid: bool, is_enabled: bool, emitters_before: int, total_emitters: int, success: bool, saved: bool, save_error?: string }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
system_pathYesAsset path of the Niagara System (e.g. "/Game/Niagara/NS_Example")
emitter_asset_pathYesAsset path of the source UNiagaraEmitter template (e.g. "/Niagara/DefaultAssets/Templates/Emitters/Fountain.Fountain")

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.2.0
    • changedInput schema / required
      Previous value: -[
      -  "emitter_asset_path"
      -]New value: +[
      +  "system_path",
      +  "emitter_asset_path"
      +]
  2. First observedv1.1.0

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations only covering safety hints, the description carries the real behavioral burden and does so well: it discloses that the operation rebuilds emitter nodes, syncs the system overview graph, requests a compile, and saves the system. Those side effects are exactly what an agent needs beyond readOnly/destructive/idempotent flags.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then mechanism and returns. It is slightly verbose with the parenthetical class reference, but every sentence (behavior, compile/save side effects, returns) carries information the agent can use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description fully compensates by enumerating the returned fields (handles, booleans, emitter counts, save status). Combined with the behavioral detail, an agent has everything needed to invoke and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema; the description only loosely references the 'template/parent UNiagaraEmitter asset' and adds no format or path-syntax detail beyond it. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: adds a standalone copy of a template UNiagaraEmitter into a Niagara system. It names the underlying editor operation (FNiagaraEditorUtilities::AddEmitterToSystem, the editor's 'Add Emitter'), which pins down exactly what it does versus the adjacent emitter-handle tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: it's clear this is for copying a template emitter into a system, but there is no explicit when/when-not guidance or naming of alternatives such as add_niagara_emitter_handle or duplicate_niagara_emitter_handle. The agent must infer the choice from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools