So far it's going okay, but I've always struggled with save-files. Firstly, I've got the small problem that before the first time we log in our mobs won't already exist. Also, with the code I have developed, it seems that when I run the game I am automatically attached to my mob, skipping the log in sequence. I guess that's because the world saves my mob's client/key. Anyway, here's the code I have so far. Any and all advice will be greatly appreciated!
world
New()
..()
var/savefile/F = new("World")
world.log = file("Log.txt")
world.log<<"Turn: [Turn]"
F>>Turn
F>>Phase
F>>Finished
F>>Players
var/xx,yy,zz
for(var/mob/a in Players)
world.log<<"Player [a]"
F["[a]loc_x"]>>xx
F["[a]loc_y"]>>yy
F["[a]loc_z"]>>zz
a.loc = locate(xx,yy,zz)
//RunOnce()
Del()
..()
var/savefile/F = new("World")
F<<Turn
F<<Phase
F<<Finished
F<<Players
for(var/mob/a in Players)
world.log<<"aPlayer [a]"
F["[a]loc_x"]<<a.x
F["[a]loc_y"]<<a.y
F["[a]loc_z"]<<a.z
proc
RunOnce()
Players=new/list()
var/mob/Pointer/Ease = new/mob/Pointer()
Ease.loc = locate(38,16,2)
Ease.name = "Ease"
Players.Add(Ease)
var/mob/Pointer/Arlthain = new/mob/Pointer()
Arlthain.loc = locate(37,16,2)
Arlthain.name = "Arlthain"
Players.Add(Arlthain)
var/mob/Pointer/Zaineph = new/mob/Pointer()
Zaineph.loc = locate(36,16,2)
Zaineph.name = "Zaineph"
Players.Add(Zaineph)
Also, we each will have two mobs (Generals) attached to us. Will these be saved with us? Or do I need a for loop for them as well?
~Ease~
From there, all you need to do is save / load your list of players. Doing that will save every mob in the list. Each mob saved then handles its x,y,z locations.
Similarly, to save anything belonging to the mob, you simply need to have a list on that mob which gets saved, and contains any other objects you wish to save (note: if the objs have map locations, you will need to change the above to apply to objs as well by making it atom/movable/Write() and Read()).
Note that references to other player mobs is dangerous (IE: var/mob/my_enemy = Ease). It will save the other mob in the savefile along with your mob. However, this is not a major issue in this case as there will only be one savefile for every player.
If you want to know more about savefiles, I strongly suggest you use ExportText() to see the format.
Oh, and as for your "skipping the login process" issue: the default action of client/New() is to first connect you to an already-existing mob if it has your key. So if you've already loaded the mob, you will log into it.