locohost
If you only have one instance of an array, you do not ever have to pick it.
You can add multiple array objects and give them different names (just as you do with sprites), then when you refer to a particular name, you know which one you are working with. eg. playerArray.at(...) enemyArray.at(...) highscoreArray.at(...)
you CAN use the System Create object to make additional instances of an array at run time... then you DO have to make sure you have the correct one picked. (You can give arrays instance variables which gives you addition ways tell instances apart).
if you need to store an array of data for each instance of another object or family, you can make that object a container, and put an array object in the container. Then, when you create the object, the array gets created at the same time, and you will automatically have the correct array instance picked whenever the container object is picked. (and the array instance will be destroyed when the container object is destroyed).
You can have a function return multiple values by concatenating them together (using a delimiter), and then use TokenAt to reference the value you need later... but that doesn't help readability.
I like to use a lot of instance variables on objects, pass the UID of the object (and any input values as additional parameters) to a function to have it set all the instance variables as required. Then outside the function you reference the instance variables. That works best for self documenting. Using arrays is less readable because you have to figure out what each element of the array is actually storing. Although I have used dictionary objects to help with that, but that makes the lines of code even longer. I have also defined local variables to use as constants just to make lines of code easier to read... eg:
name=0
health=1
strength=2
set text to array.at(currentplayer, name)
Set array.at(currentplayer, health) to 5
...
(the variable definitions help document what is in the array. I also add comments at the beginning of every function to say what to pass in to the function, what the function does, and what it returns. If there is an array involved I will also have a comment defining what the elements of the array are - if I don't have the constants).
but like I said, I would choose instance variables over arrays unless you have a very large amount of data to store for each object. And normally, I will have the objects in a family and put the instance variables on the family.