I have finally been able to come up with a solution to this problem. What I have done is download the ForEach object and taken the following line:
Every 00"-01
O_NPC:Set X Position to X("O_NPC") + MoveX("O_NPC")
And replaced this with:
Every 00"-01
Start loop for each one of O_NPC: Loop name MoveX
On each one of O_NPC, Loop name "MoveX"
Y position of O_NPC < DestY("O_NPC")
Set Y position of O_NPC to Y("O_NPC") + 1
On each one of O_NPC, Loop name "MoveX"
Y position of O_NPC >= 0
Y position of O_NPC > DestY("O_NPC")
Set Y position of O_NPC to Y("O_NPC") - 1
As well as doing this, all of my other conditions are contained in other iterations of the On each loop MoveX.
I am feeling so relieved to have solved this problem, I still have a little hair left :)
