A downloadable tool

Buy Now$14.99 USD or more

Rename a Niagara user parameter and Unreal does not tell you what you broke. The setters are keyed by name, so a Blueprint still calling SetVariableFloat("Intensity") against a System that no longer exposes it does not fail. It takes the add branch, creates a brand new parameter nothing reads, and writes your value into it. No warning, no error, no visible effect. The same is true of a value an artist authored on a placed component in a level.

This plugin builds one index of every place a Niagara user parameter is named across your project, joins them, and tells you which names reach nothing.

It reads three unrelated places, because the name lives in all three:

  • the System asset's own exposed parameters
  • literal name pins on Blueprint call sites
  • per-instance overrides on placed Niagara components in levels

It writes one self-contained HTML report - no sibling CSS, nothing to serve - so it survives being mailed to a colleague or dropped in a CI artefact store. It carries a wiring map joining every exposed parameter to every site that names it, with orphans drawn as connections that terminate in nothing; an orphan table split by severity; and a panel saying what the scan could not see. Point -Report= at a .json path instead and you get the machine-readable form; the extension decides.

The severity split is the point. A stale name with no value is untidy. A stale name carrying a value someone deliberately set on a placed effect is data loss, and nothing in the engine will ever reunite them or say a word about it.

It refuses rather than guesses. A name that is wired or computed instead of typed cannot be known without running the game, so it is listed separately and is never counted as an orphan - "I could not read this" and "this is broken" are different claims. Call shapes this build does not index are counted and named as a gap in the tool, not in your project, and the orphan count is stated as a lower bound when that happens. Levels using One File Per Actor are reported the same way.

Exit codes for CI: 0 clean, 1 bad usage, 2 nothing scanned, 4 findings found, 5 refused, 6 missing input. Gate your build on 4. A scan that matched nothing returns 2 and never 0, because a pass with a zero next to it is a failure wearing a pass.

This build is audit only. -Rename and -Revert are parsed and refused by name, so nothing can believe they ran. They are not in this build and the tool says so when you ask for them.

Verified on Unreal Engine 5.8 only, which is the only engine it has been built and run against. Ships as raw, readable C++ with a commandlet and an editor console command. Full documentation: README.

More from CSAF

More Unreal Engine plugins from the same studio:

Everything else we make is at csaf.itch.io.

Purchase

Buy Now$14.99 USD or more

In order to download this tool you must purchase it at or above the minimum price of $14.99 USD. You will get access to the following files:

niagara-parameter-surgeon-ue5-plugin.zip 84 kB
Version 1

Development log

Leave a comment

Log in with itch.io to leave a comment.