UE5.5, How the hell do one set particle position from C++? Why there is no index parameter for the map for node's output?

This is based from these tutorials

So in my case:
I have an array of stars. And I am sending it from the cpp class containing an Niagara component

UNiagaraDataInterfaceArrayFunctionLibrary::SetNiagaraArrayVector(NiagaraSystemComp, FName("ArrayPosition"), Positions);

So Positions is already a TArray<FVector>

I copy all the Niagara system structure in the video ,eg, the Emitter Update scratch script module

I wire the outpu1 into Map Set and get a local name scape “input”, I changed that to emitter name space name"spawn info".

For particle spawn:

  1. The map set either takes particle:position paramter or position array parameter
  2. But, is there a way to convert an vector array to an position array?
  3. If I choose to wire my vector cordinates into map set’s particle input node, I need to use index to loop and retrieve all the star cordinates in the Vector Array user parameter. But there is no such current index node from Map for loop, why the hell?
  4. If I choose to use position array data, I cannot find a node to convert vector array to position array.
  5. Why there isn’t a fast convert just like float to position convert?
    If you use this node called “Map for index” it will fail

And if I copy the method in video: Using a “remove last elem” node, it still spawn all my particles at world zero position