Using ActorComponentInterface to cache the Actor Parameter on a per particle basis?

Issue: I want to create a single emitter that shoots at multiple targets each time it spawns a particle. It uses its target actor on frame to get a target location, but caches it PER PARTICLE.

I know that you can do this SYSTEM wide via a USER PARAMETER but this means as soon as you update this parameter, all currently in flight particles will go to the new target. I can’t seem to select a particle parameter for the actor component interface.

Is there a way that I can cache the the object and use it in an actor component interface? Or perhaps another method I could use on tick to get the location or position of said object / actor? A third way would be a way to cache the object in the actor component interface so it wouldn’t be updated after it was initially set.

Does anyone have any ideas? Or perhaps even another way to do what I’m trying to achieve? My current “bad” backup is to have each firing of the particle to be its own system, then manage an annoying pooling system.

Thanks for any assistance.

Things I’ve Tried:

  • Setting the actor to a particle level parameter. (does not appear in component list)
  • Caching the Actor Component Interface as a particle parameter. (seems to store a pointer to the user variable instead of the pointer to object itself)
  • Passing the Particle.Object into a niagara module that handles the conversion. (can’t find a way to “pass” it into an Actor Component Interface in the module)

Backups that I don’t want to do:

  • Spawn a bunch of systems (bad for perf/complexity)
  • Predict the final location (bad if enemies get stuck on their path due to a blocking or slowing event)
  • Write my own Actor Component Interface that allows caching of the object’s pointer instead of the a pointer to variable (a bit out of my skill and unsure if possible)

P.S: If you are looking on how the Actor Component Interface works, I would suggest this thread.