Niagara System and Emitter Reference

This page links to documents that are part of the Niagara System and Emitter Reference.

Windows
MacOS
Linux

Niagara Stack Model and Namespaces

Particle simulation in Niagara operates as a stack�simulation flows from the top of the stack to the bottom, executing programmable code blocks called modules in order. Crucially, every module is assigned to a namespace that describes when the module is executed. These namespaces are represented visually in the System and Emitter Editor as sections.

Modules that are part of the System Namespace execute first, handling behavior that is shared with every emitter. Then, items and modules in the Emitter Namespace execute for each unique emitter. Following this, parameters in the Particle Namespace execute for each unique particle in an individual emitter. Finally, renderer items describe how to render each emitter�s simulated particle data to the screen.

A module is an item, but an item is not a module. Modules are editable assets a user can create. Items refer to parts of a system or emitter that the user cannot create. Examples of items are system properties, emitter properties, and renderers.

Groups, Namespaces and Data Encapsulation

By adding each module to a group (System, Emitter, or Particle), you can control when a module executes along with what data a module operates on. Stack groups are associated with Namespaces that define what data the modules in that group can read or write to. For example, modules that execute in the System Group can read and write to parameters in the System Namespace, but can only read from parameters that belong to the Engine or User Namespaces. As execution goes down the stack from the System Group to the Emitter Group, modules executing in the Emitter Group can read and write to parameters in the Emitter Namespace, but can only read from parameters in the System, Engine and User Namespaces. Modules in the Particle Group can only read from parameters in the System and Emitter Namespaces.

Because modules in the Emitter Group can read from parameters in the System Namespace, simulation that is relevant for all emitters can be performed once by modules in the System Group, then each individual emitter can have the modules in its Emitter Group read from the results stored in the System Namespace.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback