MudBytes
This article displays in: Protocols
MSSP: MUD Server Status Protocol


Introduction

MUD listings are often out dated and lack accurate information. Verifying that the one submitting a new MUD is a member of the MUD's administration can be quite tedious as well.

The MUD Server Status Protocol seeks to address these issues by providing a transparant protocol for MUD crawlers to gather detailed information about a MUD, as well as dynamic information like boot time and the current amount of online players. It also makes submitting a new mud entry very simple because it only requires a player or admin to fill in the hostname and port.

This document provides a technical description of the MSSP protcol.

The MSSP Protocol


MSSP can be implemented as a Telnet option RFC854, RFC855. The server and client negotiate the use of MSSP as they would any other telnet option. Once agreement has been reached on the use of the option, option sub-negotiation is used to send information about the server to the client.

Server Commands

IAC WILL MSSP indicates the server supports MSSP.

Client Commands

IAC  DO MSSP indicates the client is willing to receive server status data.
IAC DONT MSSP indicates the client doesn't support MSSP.

Handshake

When a client connects to a server the server should send IAC WILL MSSP. The client should respond with either IAC DO MSSP or IAC DONT MSSP. If the server receives IAC DO MSSP it should respond with: IAC SB MSSP MSSP_VAR "variable" MSSP_VAL "value" MSSP_VAR "variable" MSSP_VAL "value" IAC SE.

MSSP definitions

MSSP            70

MSSP_VAR        1
MSSP_VAL        2


Example MSSP handshake

server - IAC WILL MSSP
client - IAC  DO MSSP
server - IAC  SB MSSP MSSP_VAR "PLAYERS" MSSP_VAL "52" MSSP_VAR "UPTIME" MSSP_VAL "1234567890" IAC SE


Variables and Values
For ease of parsing, variables and values cannot contain the MSSP_VAL, MSSP_VAR, IAC, or NUL byte. The value can be an empty string unless a numeric value is expected in which case the default value should be 0. If your Mud can't calculate one of the numeric values for the World variables you can use "-1" to indicate that the data is not available. If a list of responses is provided try to pick from the list, unless "Etc" is specified, which means it's open ended.

The same variable can be send more than once with different values, in which case the last reported value should be used as the default value. It is up to the crawler to decide how to exactly process multiple values. It's also possible to attach several values to a single variable by using MSSP_VAL more than once, with the default value reported last. This would look as following:

IAC SB MSSP MSSP_VAR "PORT" MSSP_VAL "80" MSSP_VAL "23" MSSP_VAL "3000" MSSP_VAR "CREATED" MSSP_VAL "1996" IAC SE

The quote characters mean that the encased word is a string, the quotes themselves should not be send.

MSSP Plaintext

Since it's not feasible for every mud to implement telopt negotiations a plaintext alternative is available. Whenever a new connection enters the command: MSSP-REQUEST a Mud supporting MSSP Plaintext should send the following:

\r\nMSSP-REPLY-START\r\nvariable\tvalue\r\nvariable\tvalue\r\nMSSP-REPLY-END\r\n

If a variable has multiple values you can use multiple tabs:

\r\nMSSP-REPLY-START\r\nvariable\tvalue\tvalue\r\nMSSP-REPLY-END\r\n

Specification

Mud Server Status Protocol Includes official variable set.

Extended Variables

MSSP Fields Freely edited.

links

Clients

GnomeMud (Requires compilation with --enable-debug-logger=TRUE)
TinTin++ (Requires using '#config {debug telnet} on' to display MSSP output from a MUD server.)

Codebases

AckFUSS (As of version 4.4.0.)
AFKMud (As of version 2.1.2, June 27, 2009)
SmaugFUSS 1.9 (As of May 14, 2009)
SWRFUSS 1.3 (As of May 14, 2009)
SWFotEFUSS 1.4 (As of May 14, 2009)
PlainText (As of Sep 9, 2012)

Directories

Kiasyn's MUD crawler
TinTin++ MUD crawler

Discussion

MSSP Discussion Forum

Servers

azereth.game-host.org:6400
cruentus.genesismuds.com:7070
home.gotr00t.us:3000
slackhalla.org:4321
slothmud.org:6101

Snippets

MUD Telopt Handler

Valid XHTML 1.1! Valid CSS!