Same for me. I just started to understand how arrays are actually working and I really need to get the logic about it.
But I did get an important information: all objects has a AsJson expression.
That's mean that everything about a sprite (size, position, actual frame, etc…) can be saves and load quite easely. Even variable I guess.
It you create an event to save everything in your array like:
+ System: For each Sprite
-> Array: Insert Sprite.AsJSON at index 0 on X axis
Then if you want to call it back:
+ Array: For each X element
-> System: Create object Sprite on layer 0 at (0, 0), create hierarchy: False, template: ""
-> Sprite: Set from JSON string Array.CurValue
Seems it works pretty well but I encountered a major problem: This is not working with families. It can't recognize sprites with their name and it mix everything when you call it back.
And that's a big problem because I don't want to put this for every single sprite in my game (yep, I'm lazy XD).
For now I have no solution.
But even if I need to figure it out, I need to assign a new variable for each room that every single sprite in it can refer to.
And I may have the solution for this with the mini map I'have created here:
https://www.dropbox.com/s/yemjzks3vwv11xf/LevelGeneratorTest.c3p?dl=0
For now it's not that bad even if I didn't really figure how to detect the entrances of the rooms already created, but I'm going on.