Niagara / unreal GDC



Some data interfaces do not yet have GPU implementations, like the spline component, staic mesh, and skinned mesh.


Thanks for the information really appreciated, - ahhh okay yeah all makes sense!


Can anyone point me to the Niagara content examples? Ive downloaded various things and looked online for a good hour with no luck [Ive downloaded the ‘content examples’ from the learn tab but find nothing Niagara related withintheir - updating my engine incase that’s why]


@chrisdunham95 Make sure that you are downloading the 4.20 version of Content Examples, there should be a Niagara Map . That’s where all the examples are.


Little bit of feedback.
It would be nice to have a slight colour change or line or other distinction between particle spawn and particle update. I find myself constantly searching for the update module head :smiley:


We agree! We’ll be doing a QOL pass on the stack at some point to address a number of things we have logged, such as better color differentiation, coloration of input fields, better nesting and visualization of dynamic inputs, drag and drop, copy paste, all that stuff. It’s coming, unsure of exactly when.


Dunno if this has been requested. A Nice UX thing to have: Double clicking a Parameter track or keyframe in the timeline, automatically focuses said parameter in the Module stack.

Right now the most annoying thing in working with Niagara for me is having to scroll up and down the stack to find a parameter or something I want to tweak. I’m sure it’ll become more familiar as I use the tool more, but it’s still a little frustrating.

A long shot, but I wish one day we have the option of having a module stack that looked a little more like this :stuck_out_tongue:



Does anyone know if there is any way to use an ENUM or similar switching feature inside of Niagara? I’d like the ability to select different behavior within a Module (e.g. which Easing Function to use) without having to create a whole new module to do it. But as of now, it seems like the only way to do something like this would he to use an Integer for switching, which is hacky and wouldn’t be very practical—especially if you expect others to use it!

Any thoughts?


@DeepSpaceBanana lol @ that Houdini shop job… tbh I didnt notice it at first


Can someone explain to me how I can use Niagara’s particle lifetime in a shader? With cascade we had the ‘Particle relative Time’ Node, but that doesn’t seem to do anything for materials used in Niagara.



Sorry if this is basic knowledge, but how can we access Structs in Niagara?
I’ve been looking into the “Generate / Receive” events, and the two default ones (Collision / Location) both utilize what seems to be a custom Read / Write node called “LocationEvent”. See attached image for reference.

Am I crazy?! I can’t seem to find any way to create or even access this node, except just to copy / paste it from one of the Modules that already contains it!

Also, I am unable to create my own custom Read / Write node. I can access the pre-made Read / Write nodes (e.g. “LinearColor Read”). But I am unable to create a new type using a Struct, which is what Epic has done with theirs.

Any help here would be greatly appreciated!


Wondering if it is possible to set/raise a warning if a curve is set in a “Spawn” section? was using a curve in a dynamic parameter module and it wasn’t updating DUH because it was in the Spawn Particle section and not the update section. Wasted about 15 minutes. I guess it is useful if it is not sampling the particles age, therefore it is not simple to know if it is erroneously being used. Maybe a ticker on the curve while the timeline is playing would work, then i would see that the curve isn’t being sampled in real-time.

EDIT: scratch that, i think there is a bug. curve does not seem to be reflecting the behavior, even in the update particle section


Navigation and debugging tools for parameters and data flow is definitely an area that we’ll be focusing on in the future. In the short term using the “Collapse to Headers” command in the right click menu of the emitter can help keep more things in view, and the search bar should help too.

As for the node based view for the stack that’s not currently something we’re planning on supporting although we do have a lot of ideas which we’ll be exploring for allowing more flexibility at the emitter level.


I wrote up an answer on our new blog,


Can’t wait to see more content on the blog! :smiley:



You are a lifesaver!!! Wow, thank you so much!
I feel a little stupid…after seeing your tutorial, I remember seeing that section in the Project Settings for adding those parameters. But I’d completely forgotten about it.

Also, very well done blog post! Easy to follow and very informative. Definitely looking forward to more posts :wink:


@FrankFella That’s good to know.


(in regard to the param group definitions posted a while back)
This info has to be the most important info that I have found since playing with Niagara. Most other things you can learn by playing but the definition of how to use these param groups is undeniably golden


Immortalized here:


Been Playing in Niagara and like it a lot. Following Cannabis Cod3r’s tutorials. Lately I have started getting a lag in update when I tweak values. Screen is black until I let go of the entry I am adjusting. Where as before it was real-time and instantaneous, just as seen in the video demos.

I have a good system with a 1080ti. Scene is empty save for the Emitter being tweaked. Anyone else encountered this and know a fix? A setting to be tweaked? I am on the latest 4.20.1.