MUD Protocol Archive

This is an archive of the network protocols that The Last Outpost DikuMUD and other MU*'s typically make use of when a client connects to the game. If you are writing your own game client for use with LO, or if you are trying to add a feature to your own MUD or MU* game server and want to see the standards that games typically use, these documents should be of use to you!

Except for links that say (original), these are local copies of the docs as they were written around the time the LO feature was implemented. Standards are of course subject to change, so be sure to check for more up to date versions upstream.

The RFC Series documents are available at https://www.rfc-editor.org/, and are a great resource for learning about Internetworking protocols.

The Mudhalla source documents are located at https://tintin.mudhalla.net/protocols/.


TELNET

Telnet is the base protocol used by all MU* type games and MU* clients. Many feel that Telnet is what separates the MU*'s from other text games! Telnet and its sub-protocols are described in IETF RFC Documents. RFC's can sometimes be a challenge to read and interpret correctly today, due in part due to their age. The first Telnet RFC's were written in the early 1980's, when the computing and networking world was very different from how it is today. There is good summary of the protocol, written in a more up to date late 1990's context, to be found in Chapter 3 of "Connected: An Internet Encyclopedia".

ECHO / SGA

The Telnet ECHO and SGA protocols are used to hide password data as it is being typed, and it is also how standard telnet and mud clients negotiate out of the default "basic line mode" into character-at-a-time mode. See section 6 of RFC 858 for details. Some MUD clients will use the GA option to determine when it is OK for them to parse data sent from the game. See RFC 854 page 5, and CIE 3.2.2 for details.

EOR

The TELNET End of Record option allows a MUD server to mark the end of a prompt.

NAWS

"Negotiate About Window Size" allows a client to convey window size to the game server, so that the server can do line wrapping and paging correctly for the player. Without NAWS, MUD servers typically default to an 80x25 screen.

TTYPE / MTTS

The Terminal Type option lets the client give information to the server about the type of terminal implementation that is in use. The MUD Terminal Type Standard expands on the original protocol to provide an explict set of capabilities that the client supports, including ANSI color support, UTF-8 encoding, Screen Reader capability, and Proxy information.

NEW_ENVIRON / MNES

The MUD New-Environ Standard extends the Telent NEW-ENVIRON standard with a set of well known variable names that are useful for relaying information between a MUD client and a server, including the CHARSET, the client software name and version, and some MTTS capability information.

CHARSET

The Telnet Charset option allows a MUD client to explicitly state that it has support for non-ASCII UTF-8 encoded characters. It does NOT state that the client has full Emoji support, or what unicode version is supported, only that it supports the UTF-8 encoding method.

MSSP

The Mud Server Status Protocol provides an automated way for MUD listing sites to poll the server for up to date listing information for the game.

Other MUD Protocols

These protocols aren't used by LO, but are archived here for completeness.

GMCP

Generic Mud Communication Protocol is a Telnet extension used to send out-of-band JSON formatted data to custom MUD client implementations.

MCCP

Mud Client Compression Protocol is a telnet extension that enables the client and server to use zlib compression on the game text to reduce the amount of raw data on going over the network.

MMCP

Mud Master Chat Protocol is a decentralized chat protocol which allows MUD clients to communicate with each other over a TCP/IP connection.

MSDP

Mud Server Data Protocol is a Telnet extension used to send well known variable values out-of-band to supporting MUD client implementations.

MSLP

Mud Server Link Protocol address the task of handling clickable links, and is negotiated by using the MTTS protocol.

Terminal Standards

ANSI Terminal escape sequeneces are the most common way to set text attributes like color in terminals and MUD clients. They were standardized by the ITU (International Telecommunication Union), a United Nations Specialized Agency in the field of telecommunications.

ITU-T Rec. T.416 (03/93)

This is a copy of the ITU Recommendations for terminal escape sequences in PDF format. It is not an easy document to read.

ANSI escape code

Wikipedia has a good description of the codes along with some usage examples.

XTerm Control Sequences

The XTerm terminal emulator has been around since the dawn of XWindows, and has serves as the baseline terminal implementation for most UNIX-like systems. It is a great compatibility target.
PLAY NOW