Intermud Protocols

There are several intermud protocols which define how (players on) different muds can communicate with each other. The protocols are in general not muddriver or mudlib dependant, though the number of implementations is limited. OuterSpace however supports most commonly used protocols.

Most used are the intermud chatlines, the remote who and finger facilities. However some other services (like intermud mail) are used as well. For each protocol, there are about a 100 muds using those (most muds only support one protocol).

These are the protocols that I know at least something about:

Rwho Protocol

Before we even had such a thing as intermud, MUDs used the RWHO (Remote who) protocol to check who was logged on where. A dedicated server gathered all the data and the MUDs (clients in this case) would update and query this information. The protocol was created by Marcus J. Ranum and is still discussed in-depth in the official FAQ (by Moira). The other reference (an email) I found is part of an old CD distribution and this actually describes exactly how the protocol is implemented. This mail was used to port RWHO support to the CD driver. The protocol dates back from (at least) June 1991.

CD Intermud (Genesis)

The original intermud protocol is the CD UDP-version (designed by people from Chalmers Datorförening; a.k.a. the "Genesis" people). Here (small) UDP messages are send from one mud to another. Some messages, like channel messages, are send to all known muds. You can extend the list off known muds by querying other muds for the list they know, or by adding muds when you receive a message from them.

This version dates back from August 1992 and was implemented in CD.01.55 (driver version). It seems to have been much driven by Commander@Genesis (Johan Andersson).

Intermud 2

The original protocol has been extended quite a lot over the years, and is currently known as the Intermud 2 protocol. It still is completely backwards compatible with the CD version, however the native CD mudlib doesn't support the new extensions.

Many distributions are capable of (at least a subset of) this protocol. It was probably first ported for Discworld by Pinkfish (David Bennett), nowadays at least TMI-2, Eastern Stories and Elveszett Vilag support it. Probably all derivate of eachother and the original LPMud. Another change (not so important, but quite obvious) is the use of Pinkfish colour codes; see the list of codes for details.

A more recent addition is TCP support for Intermud 2 messages. This may be based on the MudOS or Eastern Stories driver which offer native TCP support. See the description of the startup packet in the message list for more details.

Zebedee Intermud

The CD protocol was quite basic and easy to implement, however it has some important drawbacks: It is not possible to send messages longer than 1kb. Only 1 intermud channel is implemented. And there is no message acknowledgement - even though many packets are lost due to the unreliability of the UDP (user datagram protocol) used. So the protocol is not really fit for sending mud-lists, mail or files.

All flaws of the CD-implementation are taken care of in it the new intermud protocol distributed as the "Inetd" package. This was created by Nostradamus@Zebedee (Mark Lewis). Here a message can be send in several parts and if no acknowledgement is received, a message is send again (up to 3 times). The inetd distribution can be easily added in many LPC mudlibs although it was primary designed for Amylaar (with CD compability in mind!)

A great extension providing intermud-mail is included in the latest distributions. This mail protocol was developed on top of Zebedee's implementation by Alvin@Sushi (James W. Armstrong). The latest (and most likely last ever) version is Inetd v0.7 beta 2, which was released in September 1996(?) The first implementation of this protocol was available late 1993 (maybe even earlier).

Circle Intermud

An other intermud protocol was developed by Stryker@Tempus (Chris Austin), and is mostly used on Circle-MUDs. However Merc- and Envy-MUDs are supported as well. The protocol is designed to use a stand-alone daemon for communication with other daemons over UDP and communication with the muddriver using a unix socket. It is quite simple to add support directly to the driver or mudlib though, so there is no reason why LPMUDs shouldn't support this protocol though.

For the rest it was pretty much the same as Intermud-2, however the message fields were indexed by their order in the message rather then by field names. Every message has its own command number which indicates the type of this message. In general these packets are definately shorter than an Intermud-2 message.

Stryker started with version 0.00, however the first only released versions are 0.52-0.56 and finally version 1.0. This was developed in the years 1995-1996 and nothing seems to have been one on this since. Because of this, the protocol was later nicknamed Intermud 1(?!)

Intermud 3

Even though the extensions, all protocols were still based on (unreliable) UDP connections. And when the developer (Nostradamus) stopped his work, there was no team to take over. In the mean time, the Center for Imaginary Environments (MudOS) started with Intermud-3: a protocol with a completely different backbone. The core designers of this protocol are Deathblade (Greg Stein), Rust (John Viega) and Beek (Tim Hollebeek).

Every mud must have an open TCP-connection with one of the central routers. The router will check all incoming messages and relay those to the mud(s) for which it's destined. And an OOB (out-of-band) feature is used for sending large packets (mail, files) from one mud directly to another. The latest version is Intermud 3 v3 (though the router still accepts v2 messages as well).

Once this one is running with several routers, it probably is the best protocol that I am aware off. However a major drawback is that it used MudOS' mudmode (every TCP message starts with 4 bytes in network byte order which indicates the size of the message). This makes it impossible to implement in mudlibs that don't allow the NULL character.

This protocol was developed in 1996-1997, and this very popular in new MUDs. Unfortunately the specification fails to explain the bit about mudmode, nor does it mention which router you can use (the only one at the moment):

GoT Intermud

This implementation is quite similar to the Intermud 3 protocol, but unfortunately it hasn't reached the same popularity: I've seen no more than 6 connected muds. The protocol was only implemented in Nightmare and CD mudlibs. It was originally developed by Durandel@Gates of Time (Erik Halvorson) in 1997.

Protocol details no longer seem to be publicly available. There is no longer an IGoT server running, since the original one closed down. However a new router is planned to open in the near future. The current maintainer of IGoT is Tarken (Joseph Wilhelm).


AberChat is an intermud protocol which seems to be quite new, but already popular among AberMUDs. Unfortunately I wasn't able to find much background information, but this protocol seems to be designed by Kroll@SMiLE in January 1998.

An Abermail patch was completed in April 1998 by Hadron@Cryosphere (Robert Brady).

RoM Intermud

Christian@RealmOfMagic (Christian Loth) has developed yet another protocol which allows for communication between the Tempus- and Zebedee protocols. This is an external package which sets up a "meta-server" that can translate both protocols to (and from) a new "meta-protocol" for communication with the MUD.

It is designed to be very modular and it should be relatively simple to add a support for a new protocol. However the system is not really finished yet, and it doesn't seem to be catching on either... I never bothered to even have a closer look at it, because I believe Intermud stuff should be handled completely from within the mudlib: and not by the driver or even worse, external programs. The last version is 2.1 from August 1998, so it is still under active development, I might even check it when it becomes popular.

Return to the OuterSpace index
Last modified Fri Feb 20 14:13:26 2009, by Dyorion