Man, figuring out how to manually position particles in Niagara was a huge PITA. Docs mention Niagara Data Channels and Niagara Data Interfaces but so much of it is out of date and / or incomplete it's kinda *worse* than it not being there at all.
In the end I discovered I could do it just with user array parameters indexed with particle IDs, which *become* data interfaces, something never mentioned in the docs so making the connection was extremely hard. I feel a blog post coming on