Niagara User Parameter in Dynamic Scratch Module?

I’m writing a scratch module in Niagara, but cannot for the life of me figure out how to get a User Parameter as an input. There’s another question here from Aug 2024, and the guy answered his own problem by saying “just press the second apply button”. That doesn’t really answer the question man.

If anyone can help would be massively appreciated. Here’s what I’m looking at.

As you can see I have a User Parameter Sun Direction (Vector) which I’m trying to expose an input. Other online sources are telling me that I have to set up a module input, which I’ve also tried, but I can’t use my User Parameter as binding or anything.

can you PLEASE explain your answer?

I was stuck on this problem for a while, and finally figured out the solution.
User parameters cannot be directly accessed with Map Get inside a module script, but they can be passed into the module:

  1. In your dynamic module script, expose an input parameter, then click Apply & Save.

  2. In the Niagara System panel, bind your user parameter to that input parameter, just like you usually do.


You also must hit this apply button first to see it


Then you will see it when clicking

But only if you hit apply

map get cant see user params directly inside a module script, that part is normal. expose an input pin on the scratch module, hit apply, then in the system stack bind your sun direction user paramter to that input like any other binding.

once it is wired, drive sun direction per instance from blueprint with set niagara variable, and read it back to confirm the value landed before chasing the graph.

you can also try Expose Niagara Variables C++ & Blueprints, a plugin for Unreal Engine that exposes Niagara variables to Blueprint and C++: Expose Niagara Variables to Blueprint & C++ — Set Niagara Parameters at Runtime | Fab