mu*index
reading
plain text
theme

protocol

MXP

The MUD eXtension Protocol — HTML-like markup in the text stream, giving clickable links, images and forms. Widely specified, unevenly implemented.

https://www.zuggsoft.com/zmud/mxp.htm

Measured adoption

122 of 886 listed games — 13.8%

The games not counted here are not games without the protocol. A game is counted when we observed its server offering the option in a handshake; the rest are servers that did not offer it to us and servers whose handshake we have not read, and we cannot tell you which.

Games observed offering MXP in a handshake, by the codebase we identified them as running.
codebase offered it identified
CoffeeMUD 30 32
CircleMUD 9 47
ROM 9 55
DikuMUD 5 35
SMAUG 5 20
tbaMUD 4 5
Evennia 2 11
PennMUSH 1 34
AresMUSH 0 18
CobraMUSH 0 2
FluffOS 0 28
MUCK 0 24
RhostMUSH 0 40
TinyMUSH 0 9

MXP embeds a small, HTML-like markup language in the text a server sends: <send> for a clickable command, <a href> for a link, colour and font elements, and a mechanism for a server to define its own tags. It negotiates on telnet option 91.

Its design problem is inherent and interesting: the markup travels in the same stream as the text, so a server has to be careful about text that looks like markup, and a client has to be careful about what it will render. MXP defines security levels for exactly this reason — a tag arriving in a line of chat from another player is not the same as a tag the server emitted itself.

Clickability is the reason people want it

Most of what MXP is actually used for is turning north and item names into things you can click. For a new player that is a substantial difference, and it is why the protocol keeps being implemented despite its complexity.

Pueblo is the other one

Pueblo predates MXP and does a similar job with a different, more literally HTML-shaped approach. A client that supports one frequently does not support the other, and the two are easy to confuse when reading a feature list — which is a mistake we have had to be careful about in the client tables in this section.

What we measure

Servers offering telnet option 91 in a handshake we observed. MXP is less commonly negotiated than the out-of-band protocols, partly because much of its value is realised by servers that simply emit the markup and hope, without negotiating at all — which we cannot see.

See also

  • Pueblo The older HTML-in-a-MUD scheme, from the client of the same name. Still supported by MUSH-side clients, and routinely confused with MXP.
  • MUSHclient The long-established Windows client. Five scripting languages, a plugin architecture that most of its protocol support lives in, and a release history that has slowed.
  • Mudlet Cross-platform, Lua-scripted, and the client with the most thoroughly documented screen-reader support in this section.