3. you can delete the "for each player" condition, the other is enough
4. at first, I don't understand why your array is 4*4*1, an array of 4*2*1 is enough if you need only to store the name and the number of pickups. But it's not a big deal...
The variable "collected" is useless, you should put a variable "num_id" instead, to store the column corresponding in the array (0 for triangle, 1 for circle...).
Instead of "for each XY element", you should put :
for each X element :
Array : Value.at(Array.CurX , 0) = figures.whatlam ==> Array : set Value.at(Array.CurX , figures.num_id) to Array.at(Array.CurX , num_id) + 1
blue is condition, red is action
I hope you understood, I can't upload a capx. Tell me if you have questions or if it's not working
[edit] you shouldn't bump your topic to fast, personally, I answer at first to topics that haven't any answers.