Is there a way to ask a Niagara particle system what user parameters it has?

I want to have the player be able to pick a niagara particle effect (from an ever increasing library of VFX skins), and then tweak whatever user parameters that particle system has. Is there a way I can ask particle template what its user parameters are, so I can expose those to the player dynamically, or do I have to create some kind of data asset for every particle system that lists the user parameters?

You can’t extract parameter values from Niagara Systems, but you can create blueprints that will set those parameters, and players can interact with such blueprints.

good question. I wish there was some tool or “wizard” dialog box to step through the process of generating blueprints based on user exposed variables. I’ve been re-doing the work for each niagara asset I’ve bought from marketplace but recently started a universal niagara blueprint that has everything I normally use all wired up.

Old question, but maybe this is useful?:

TArray<FNiagaraVariable> UserParams;
NiagaraSystem->GetExposedParameters().GetUserParameters(UserParams);
for (auto& UserParam : UserParams)
{
	UE_LOG(LogTemp, Log, TEXT("%s: %s, type: %s"), *NiagaraSystem->GetName(), *UserParam.GetName().ToString(), *UserParam.GetType().GetName())
}
1 Like

This