ID:270401
 
Ok, I have a save system that uses << instead of Write(). You know, the kind that saves copies of objects and the like instead of references. Now, the issue with this is that somehow, it's managing to save copies of other players along with one person, which of course causes all sorts of login errors and whatnot.

Two things: Firstly, changing to the other way of saving is not an option, it causes the rest of the game to not work properly. Secondly, I'd prefer not to have to root through my whole game and pick out all the bits where it might save another person's mob to the player's.

So what I'm asking is, is there a way to modify the save system to not save other people's mobs? Like, check the mob for references to other mobs and then delete them before saving?
You could run through every entry in the Vars[] list, checking for mobs and nulling out that reference. This is not a good idea, though, because you may actually want to know about other mobs that this one has a relationship with.

Instead, you should look at the vars defined for your mobs, and replace any entries that look like this:
var/mob/parent as mob
to something like this:
var/parents_key as text

Then you'll have to redefine all of your functions to locate a mob with that key, instead of just using the parent mob. This is a long and complicated task, but it's one that you will have to do before you progress. It's something that should have been done with your code from the begining. There's no easy way around it, you're going to have to do some work to fix it.
In response to IainPeregrine
Dammit I was afraid of that... Well if that's the only way then I'll go ahead and do it >_<