Given the section, I'll assume that you're using one of the "classic" Blitzes -- in these languages, the "easiest" way is usually to just write how many of an object there is to the save file before writing all of your objects. When loading the file, just read that many in. Say your save/load functions for an individual object are something like this, and CountSpaceShips() tells you how many space ships are currently active. [code] ; our space ship type Type SpaceShip Field hp Field x#, y# End Type ; This saves a spaceship to disk. Function SaveSpaceShip(me.SpaceShip, file) ; save each field into the save file WriteInt file, hp WriteFloat file, x WriteFloat file, y End Function ; save a space ship to a file on disk Function LoadSpaceShip(file) ; create a ship Local me.SpaceShip = New SpaceShip ; read each field from the save file me\hp = ReadInt(file) me\x = ReadFloat(file) me\y = ReadFloat(file) End Function ; It would probably be better to keep track of how ; many ships you have! Function CountSpaceShips() Local count = 0, ship.SpaceShip For ship = Each SpaceShip count = count + 1 Next Return count End Function [/code] You can then do something like this to save: [code] ; open the save file Local file = WriteFile("game.sav"), ship.SpaceShip ; write how many spaceships there are WriteFile file, CountSpaceShips() For ship = Each SpaceShip SaveSpaceShip(ship, file) Next CloseFile file [/code] And read the save file like this: [code] Local file = ReadFile("game.sav") ; how many ships to load? Local i, count = ReadInt(file) ; just load them in. It's easy now! For i = 1 to count LoadSpaceShip(file) Next [/code] You can follow the same basic principles for each type quite easily - save the count of players, then the players, save the count of enemies, then the enemies, etc. This post is from -- http://socoder.net/index.php?topic=971