Moved log generating stuff to its own function. There should be only one definition for world/New() / world/Del() and client/New() / client/Del(). I'd like there to be only one definition for any constructors or deconstructors, for the sake of clarity.
Deletion of lists when done and creation of lists when necessary benefits us not at all here. It's just extra processing once someone joins for the first time or once everyone leaves. Having the list doesn't hurt us.

No reason to put a + in front of this. There are no definitions so it doesn't need to be top-most. I'd also prefer the usage of #, but we can talk about that.
Don't put global-scope definitions in the struct files.
Why is this being retarded? It kept adding a full absolute path for the new file I created until I restarted DM.