Niagara emit multiple particles with different user properties at once

Greetings,
My niagara system has one user property - StartLocation,
then that location set to spawned particle in emitter

Thats works good (example code below):

auto Niagara = Structure->NiagaraComponent;
Niagara->SetVectorParameter(TEXT("StartLocation"), StartLocation);
Niagara->Activate(true);

But that works only once per Tick, if I try to make multiple Activate calls, that obviously not work (as niagara internally activates only when its updated by engine)

Are there any way to emit multiple particles with different user parameters (for example code above in a FOR loop)?

What I want: at one frame - 100 particles emitted on different user defined StartLocation

1 Like

In case it will help anyone, found a solution.
Its pretty simple:
Declare Vector Array as user input,
set it before Activate() method

UNiagaraDataInterfaceArrayFunctionLibrary::SetNiagaraArrayVector(NiagaraComponent, FName("StartLocations"), Positions);
NiagaraComponent->Activate(true);

And produce by “Spawn Burst” number of particles = user input vector array count
in “particle spawn” extract each particle input by its ExecIndex (ExecIndex = index of spawned particle by Spawn Burst)

2 Likes