The problem is that it often isn't the world maps that cause the lag. It is peoples personal apartments or the like where people pile many thousands of different objects. I believe the worse case was the communal apartments. I'd imagine other cases right now might be guilds. The 'problem' with preloading is how do you know what maps to load? Looking at all the maps on the server and figuring which to load would take a non trivial amount of time. Also, these maps still need to be saved out periodically, which may also take a non trivial amount of time. In addition, as the server is right now, when maps are in memory, the objects on them are processed, when not in memory, they aren't. Thus, keeping a map in memory would result in that map being processed, which could mess some things up. The best solution is to do something similar to what Brendan suggests - seperate map loading, freezing the player. I had tried to do something like that many years ago, never worked very reliable. Better long term would be for each map to have its own thread. With multi core/thread cpu's, this makes more and more sense. However, that requires some prety significant changes. First being that any function that declares any variables as static is not thread safe.