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
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.
The TELNET End of Record option allows a MUD server to mark the end of a prompt.
"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
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.
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.
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.
Generic Mud Communication Protocol is a Telnet extension used to send
out-of-band JSON formatted data to custom MUD client implementations.
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.
Mud Master Chat Protocol is a decentralized chat protocol which allows MUD
clients to communicate with each other over a TCP/IP connection.
Mud Server Data Protocol is a Telnet extension used to send well known
variable values out-of-band to supporting MUD client implementations.
Mud Server Link Protocol address the task of handling clickable links, and
is negotiated by using the MTTS protocol.
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.