[Feature Request] Niagara: Default values for user exposed params in emitter, set those params through system

I have an emitter with a few parameters I want the user to be able to set; they’re currently emitter attributes that are set in Emitter Spawn. If I make them User Exposed parameters, however, not only can I not access them in the system, I can’t set default values for them in the emitter, either, which generally makes the preview disappear entirely (0 is the default value for floats and whatnot). I haven’t tried to set an emitter’s user parameter using a Set Niagara Variable node, but I have my doubts about that working, since that kind of node takes a system object reference.

What I would like to be able to do is make a user parameter in the emitter, set a default value for it so I can see how the system will look in the editor, and have that default value get inherited by the system running the emitter. That way, if I use the same emitter multiple times in a system, and I change the default value in the emitter, all of the instances of the emitter in the system are updated with it, unless any of the instances have had that value overridden.

I imagine that if a system did inherit User Exposed parameters from the emitters inside of it, it might append the names of those emitters to the parameter to differentiate them, ugly as it may be.

If there’s already a way to do this kind of thing somehow, how would I do it?

1 Like

Same problem here.

image

On the system box click user parameters and they’ll appear over on the right so you can set the defaults.

17 Likes

Exactly what I needed, thanks!

Since this sometimes comes up for standalone emitters: user parameters are a system level concept and not available in emitter assets for a few reasons. One being that adding emitters that use the same user parameter name, but with a different type or default value would lead to a conflict that cannot be easily resolved.

I suggest instead to do the following: Define a few emitter level attributes instead and set them to their default values in emitter update. Add them to the emitter summary view if that’s available in your UE version. Then, when adding the emitter to a system, bind the parameters you want to expose to user parameters available in the system.