Basically the conclusion that me/Brain reached is it's not worth merging things back in until we have a way to do this that doesn't involve piling on poor design--that being that asss accepts multiple types of clients but special cases every kind of behavior (ex. if (p->type == T_CONT) { ... } else if (p->type == T_CHAT) { ... })--and given a new client that goes beyond Continuum will be added, and with it the possibility of many variations doing slightly different things and having slightly different abilities there is no good way to continue just checking "p->type" for every single core module. We don't have the ideas fully set in stone yet, but if you catch me in game I can give you a run down of how we have things planned so far. The basic idea though is that instead of having each core module check the client type it will just make a generic "client API" call for which each client can implement its own handler for how to send and receive data. Thus if you want to add support for a new client to the server, you basically just add a new client module--instead of applying a patch like what Bak is basically doing now (while acceptable, it makes upgrading your core more annoying in the future.) With this kind of system you can build a client off an existing client easily without making a lot of changes to server code (beyond one file.) The tricks we still have to work on are the login and encryption processes as they relate to Continuum, and how the receive-data mechanism will work, but soonish I'll set up a branch showing at least how the problem is being approached and hopefully others can contribute some pieces. It's not a hard problem, only a tedious one--converting each core module to not take care of receiving/sending data itself, but passing off messages and receiving messages from client modules instead.