Set listposition to array.at(loopindex+1) is a string, the data in the array, shouldn't that just be loopindex if I'm understanding it correctly.
The other bug is the last event because it is 0 to start with it is already triggering and restarting the layout constantly. You can run that event elsewhere like after the text object being pressed you can add it in there as a sub event to check if there are now 0 objects remaining.