I don't understand why arrays and hashes (what construct calls a dictionary) have to be plugins. It feels strange that you can't create arrays the same way you can variables, which is one of the most basic things in any programming language.
There are so many extra steps in linking array objects to other objects in order to create "pseudo" instance arrays that isn't even funny. It would be awesome to be able so simply do "player.array[index] = x" like you would do "player.variable = x"
There is only 1 step needed to add a per-instance array: put a sprite in a container with an array. There is no way to actually write a variable assignment like "player.variable = 1" - you have to use a 'set variable' action. It's not clear why you used this scripting syntax for things that are normally actions. Even if there was an array variable type, you'd still have to use a 'set array variable' action to provide the array index. If this was further extended to other types, e.g. dictionaries, vectors, matrices, colors etc. then you'd end up needing a separate 'set variable' action per data type, which would compound the 'set variable' actions from two (string/number + boolean) to many more. This seems clunky and could end up confusing beginners since it complicates a basic feature and end up making the tool seem harder to use than it really is. There is also little upside compared to just using the existing container system. I assume this suggestion was made unaware of the fact containers can do this almost equivalently already, since they provide a 'set value at array index' action that can work per-instance using containers.