Home
  • Home
  • About
    • Features
    • History
  • Play
  • Community
    • Elvenrunes
    • Discord
    • Links
    • Wiki
  • News
    • War
    • Game News
    • Web News
  • Resources
    • Newcomers
    • Help
    • Rules
    • Dictionary
    • Boards
    • Download
    • Restricted
  • Search

MUME Help

Index: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

MPI, MUME CLIENT PROTOCOL, PDU


The MUME client protocol is what clients use to communicates with MUME.

The protocol builds on Telnet (RFC 854) over TCP (or, optionally, TLS over TCP), with the following Telnet options supported:

  • Echo RFC 857
  • Suppress Go Ahead RFC 858
  • Window Size RFC 1073
  • Terminal Type RFC 1091
  • Charset RFC 2066
  • Mud Server Status Protocol — https://tintin.mudhalla.net/protocols/mssp/
All special MUME commands, which can be sent either from or to the client, are of the format <start> <command> <length> <newline> <data>.

<start> is the MPI (MUME Protocol Isomething) start sequence ~$#E. The MPI must follow a newline.

<command> is one of the following letters:

  • I identify for remote editing and viewing (from client)
  • E edit (to/from client)
  • V view (to client)
  • P prompt settings (from client)
  • X XML settings (from client)
<length> is the length in bytes of <data> as a string of ASCII digits.

<newline> is a single newline, ASCII 10.

The I command

The I command takes no arguments:

  ~$#EI

The E command

The E command involves several different messages. One of these is sent by the server, and the other two are sent by the client.

The E command sent by the server

When requesting that the client begin a new editing session, the server sends the following:

  • MPI init string.
  • The character E.
  • The length of the remainder of the message in bytes.
  • A newline character.
  • The character M.
  • A session identifier, consisting of a string of digits.
  • A newline character.
  • The description of the session. (This is free-form text, terminated by exactly one newline).
  • The initial contents of the editing session (which may or may not end with a newline).
For the purposes of computing the length field, the message starts with the first byte after the newline at the end of the field.

The E command sent by the client

The client may end an active editing session in one of two ways: by uploading the text generated by the editor, or by canceling the message.

Here's what the "cancel" message looks like:

  • MPI init string.
  • The character E.
  • The length of the message.
  • A newline character.
  • The character C
  • The session identifier, represented by a string of digits.
  • A newline character.
The "upload" message looks like this:

  • MPI init string.
  • The character E.
  • The length of the message.
  • A newline character.
  • The character E.
  • The session identifier.
  • A newline character.
  • The edited text.

The V command

The V (or view) command is even simpler. It consists of one message, from server to client:

  • MPI init string.
  • The character V.
  • Length in bytes.
  • A newline character.
  • Text to be displayed with the pager.
Again, for the purposes of computing the length field, the message begins with the byte following the newline that terminates the length field.

Remote editing (E & V commands) in the protocol stack

MUME processes the Telnet IAC sequences before the received MUME Protocol data and escapes them in the sent data. In other words, the MUME protocol stands on top of the Telnet layer and not the other way around.

The P command

The P command accepts a number of prompt-related flags:

  • G makes MUME send the Telnet IAC GA (go ahead) sequence after each prompt. Enable this if your MUD client is slow to display prompts.
  • U prevents MUME from sending repeated prompts.
  • A makes MUME send all prompts
For example, the following sequence enables IAC GA. The "data" is made of two characters: G and the final newline.

  ~$#EP2
  G

The X command

The X command enables or disables XML mode. It is a variable-length command, with a mode for the first character and options as following characters.

Modes:

  • 0 disables XML mode
  • 1 enables XML mode
  • 2 disables XML mode without sending </xml>
  • 3 enables XML mode without sending <xml>
Options:

  • G enables gratuitous output until disconnected. In this mode, descriptions are sent without regard for brief/spam mode, but those that would have been hidden by brief/spam are wrapped in an extra <gratuitous> tag.
Example 1:
  ~$#EX2
  1G
Example 2:
  ~$#EX1
  3
Credits: The documentation of the E and V commands was contributed by Kron.

See also: XML, "LOCAL EDITOR", TLS

Generated on Thu Jan 14 01:03:50 2021

What is MUME?

MUME, Multi-Users in Middle-earth, is a multiplayer text-based online game based upon J. R. R. Tolkien’s Middle-earth during the epic wars of the late Third Age between the forces of the Dark Lord and the armies of the Free peoples. MUME is completely free to play and has been continuously running, expanded, and remastered by a community of volunteers since 1991.

Ready to explore?
Play Now