About model interactions in scripting: this is definitely lacking. The only way to currently communicate between models is by setting global variabels. Or having single instance models spawn by reference (all enemies can script with "PlayerModel" but the playermodel can't get a single enemy). In some examples I set Temp1 etc in a zexpression before SpawnModel and the models OnSpawned expression examines these variables. This is a crude way of passing data by parameters.
Arrays, parameters and functions for this like in GameMaker would be the way to go. It does require a bit of work in the compiler code which is the hardest part to change in ZGE. If you know anyone with compiler-writing skills then please let them know of this project because I could really use some help in that area.
SeekModel should work, but you need to spawn your model by reference, otherwise it tries so seek the original model not the clone, and the original model position is at 0,0,0.
Writing to files is a planned feature, however I imagined it being used for saving settings and highscores, not as a level-editor

