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!

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/.


Last-Outpost Supported Protocols

These protocols are used by The Last Outpost MUD and the LociTerm MUD client.

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 "obsolete line-by-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.

For an in-depth explanation of current ECHO/SGA practices, see:

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 explicit 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 definitely supports the UTF-8 (or other supplied) encoding method. Note that while UTF-8 is the RFC 5198 required default encoding for Telnet connections, some MUD games will incorrectly default to ASCII unless the UTF-8 CHARSET is negotiated.

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.

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 from the server to the client.

GMCP

Generic Mud Communication Protocol is a Telnet extension used to send out-of-band JSON formatted data to custom MUD client implementations. It is implemented as a Telnet option, and defines a standard way to indicate support and version information for different GMCP modules.

GMCP has a small number built-in modules that are considered part of the core GMCP functionality and are well documented. Other modules are considered game specific extensions, and are documented by the module authors (if at all.) As such, there is no canonical standard documentation for most GMCP modules. The information is divided up among many sources, some of which are listed here.

GSGP

Game Scry Game Protocol is a standardized JSON structure which you can make available for GameScry or other sites to ping for real-time data about a game. It can be used for sharing leaderboard data.


Other MUD Protocols

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

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 sequences 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