Skip to content

maldorne/awesome-muds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

103 Commits
 
 
 
 
 
 

Repository files navigation

Awesome MUDs

Awesome

A curated list of MUD development resources, tools, and apps.

Inspired by the awesome list thing.

If you want to add anything to this list, please open an issue or a pull request.

Contents

Clients

List of clients you can use to connect to different MUDs, grouped by operating system. Includes a list of MUD protocols the client is compatible with (although it can be an incomplete list, help is welcome!)

Multiplatform

  • Mudlet [Linux, MacOS, Windows], [GMCP, MSSP, MCMP, MSP, ATCP, Aardwolf's 102, MSDP, MXP, MMP, Discord GMCP, GMCP Authentication]
  • Blightmud [Linux, MacOS], [TLS, GMCP, MSDP, MCCP2]
  • Tintin++ [Android, iOS, Linux, MacOS, Windows] [GMCP, MCCP, MCCP3, MSDP, MSLP, MSSP, MTTS, MMCP, NAWS, MNES]
  • KildClient [Linux, Windows], [SSL, MCCP, MCCP2, MMCP, zChat]
  • TinyFugue [Linux, MacOS, Windows], [MCCP]
  • TinyFugue Rebirth [Linux, MacOS, Windows], [GMCP, ATCP]
  • AxMud [Linux, Windows], [MXP, GMCP, MSDP, MNES, MTTS]
  • Tortilla MUD client (completely in russian) [Windows XP and above, Linux and MacOS via Wine], [MCCP, MSDP, MTTS]
  • KBTin (Tintin++ fork) [Linux, MacOS, BSD], [MCCP, TLS]
  • Sip [Linux, MacOS, Windows], [MXP, GMCP, MNES, MSP, MSDP]

Windows

  • Avalon Mud Client
  • CMUD (free trial, paid app) [MXP, MSP, MCP, MCCP, ATCP]
  • zMUD 7.21 (free trial, paid app, last version of CMUD precursor, unmaintained) [MXP, MCP, MCCP]
  • zMUD 3.62 (last free version of zMUD, very old, unmaintained)
  • Portal
  • MUSHclient [MXP, MCCP, MMCP, MTTS]
  • BeipMU [TLS, MCMP]
  • WinTin (supports Tintin++ scripting language, unmaintained in its webpage, but Tintin++ releases has updated windows versions)
  • GMud32 (very old, unmaintained)
  • Putty (generic telnet and ssh client, without MUD features)

MacOS

Linux

Mobile

Abandoned projects

Links to old abandoned open source mud client projects, maybe something useful in there:

  • MudWalker (unmaintained, abandoned) [MacOS] [MCP]
  • GGMud (unmaintained, abandoned) [Linux, MacOS, Windows] [MCCP]
  • Lyntin (unmaintained, abandoned) [Made in Python, probably multiplatform]
  • XpertMud (unmaintained, abandoned) [Linux, Windows]

Web Clients

  • MudPortal (web client and proxy server ws/telnet) [MCCP, MXP, MSDP, GMCP, ATCP, MTTS]
  • mud-web-client (fork from MudPortal, just the web client, updated to allow wss)
  • Mudslinger (fork, fork) (original code seems to be gone, the links are forks) (web client and proxy server) [MXP]
  • Grapevine
  • DecafMUD (very old, unmaintained)

Web Proxies

Server apps that allow a web client to connect to a mud/telnet server:

Codebases and drivers

MUD1

MUDs evolved from the original game (created in 1978 in the University of Essex by Roy Trubshaw and Richard Bartle), in families of related games, mainly based in the technologies used to implement them.

AberMUD

Created in 1987 at the Aberystwyth University, was the first popular open source MUD. Ported to C in 1988 in AberMUD2, and published as GPL in AberMUD V. It inspired the next three major codebases: TinyMUD, LPMud and DikuMUD.

TinyMUD

Released by Jim Aspnes in 1989, running on Unix and written in C.

MU*, sometimes called Tiny family, is an abbreviation which refers collectively to a family comprising: TinyMUD, MUSH, MOO, TinyMUCK. It has its own wiki.

Main variations: PennMUSH, TinyMUSH, TinyMUX and RhostMUSH.

  • Lots of code and documentation on MUSHCode.

Written by Stephen White in 1990. Later that year, he released MOO.

Written by Stephen White in 1990, derived from TinyMUCK, with object oriented design. Pavel Curtis did substantial modifications to MOO code, creating LambdaMOO, which was hosted at Xerox PARC.

LPMud

Released by Lars Pensjö in 1989, trying to combine the extensibility of TinyMUD with the adventures of AberMUD. He designed the LPC language (from Lars Pensjö C) and the driver/interpreter, trying to make the process of extending the game easier, separating the Mud in two different parts: the driver which acts as a virtual machine/interpreter/runtime (programmed in C), and the mudlib which implements the game code (programmed in LPC and executed by the driver). Some old games still being played today started here: Genesis, BatMUD, Discworld, etc.

Some language documentation:

Drivers

LPMud

After Lars Pensjö retired from LPMud development, Joern Rennecke (Amylaar) took over development of the LPMud driver and produced the 3.2 series of LPMud. This is sometimes known as the Amylaar driver.

MudOS

Another group of people started working from the LPMud v3.0 in 1992, and renamed it to MudOS, which will have several versions until 2003. (its original webpage, mudos.org, is defunct, but you can find some of the last versions in the maldorne repository and use them with Docker). It could use sockets at mudlib level (with LPC code), which allowed to create a TCP intermud network. This protocol evolved until Intermud 3.

FluffOS

In parallel to the last versions of Mudos (the last one was v22.2b14, 2003), the Discworld developers forked it and renamed it as FluffOS. Still maintained. It had versions 1.0 to 1.36, 2.0 to 2.27, and since 3.0 the maintainer is Yucong Sun, and major versions has been released with the names FluffOS 2017, 2019 and 2023.

LDMud

Lars Düning continued the development of the LPMud driver renaming it to LDMud (but keeping the Amylaar version numbers, so starting with 3.2.2). LDMud is still being maintained.

CD MUD
DGD

Felix 'Dworkin' Croes developed in 1993 DGD (Dworkin Game/Generic Driver), not derived from LPMud (so not using the same license) but compatible with LPC language. Still maintained, and open source since v1.4 (2010).

Mudlibs

An LPMud is split in two layers: the driver above — an interpreter/VM written in a systems language (usually C or C++) — and the mudlib, the game framework written in LPC and executed by the driver. A single driver can host many different mudlibs, and historically mudlibs have been shared, forked, and cross-pollinated far more often than drivers. Understanding this split is key to reading LP-family history: when people say "LPMud", they can mean the driver, a specific mudlib, or the whole ecosystem.

Some of the most influential mudlibs:

Mudlib Notes Source
2.4.5 The original mudlib distributed with Lars Pensjö's LPMud driver. Minimal by modern standards, but the direct ancestor of most other LP mudlibs [1]. lp-245 in the LDMud repo (lightly updated to run on modern LDMud)
TMI-2 The Mud Institute framework mudlib. Educational codebase from the 1990s providing skeletons and examples rather than a playable world; builders were expected to do most of the world-building themselves. tmi2_fluffos_v3.zip (bundled with FluffOS, via lpmuds.net)
Nightmare Descended from 2.4.5; direct ancestor of Dead Souls. Development was formally ended by Descartes of Borg (George Reese) and distribution withdrawn; surviving copies are community preservation [2]. Community mirrors at lpmuds.net
Lima Independent ground-up design by Zakk Girouard, Tim Hollebeek, Greg Stein and John Viega, centred on a new centralized command parser and object model. Still maintained for FluffOS [3]. limalib/lima (the older fluffos/lima fork was archived in 2024)
Dead Souls General-purpose mudlib originally released by Descartes of Borg (George Reese) as a development playground on top of Nightmare, later revived and maintained by Cratylus. Frequently used as a ready-to-run starting point on FluffOS [4]. quixadhal/deadsouls
CDlib In-house mudlib of Genesis LPMud — the oldest continuously-running LPMud, started by Lars Pensjö in 1989. Paired with the matching CD gamedriver; has been reused by a handful of other LP MUDs beyond Genesis itself [5]. genesismud/mudlib
Discworld Mudlib powering Discworld MUD, founded in 1991 by David 'Pinkfish' Bennett. One of the largest and most mature LP mudlibs in active use. FluffOS was forked from MudOS to keep this mudlib running after MudOS development stalled. The live Discworld code is not public — only a periodically-released cut-down distribution mudlib [6]. See also: project history, mudlib info, community wiki. Snapshot at Yuffster/discworld_distribution_mudlib
Foundation II Stripped-down version of Nightmare by Descartes of Borg (George Reese), released May 1995. The first MudOS mudlib designed for non-game uses, and the first that could be commercially licensed [7]. For MudOS/FluffOS. foundation2_fluffos_v1.zip (via lpmuds.net)
LPUniversity Educational mudlib created by Tacitus (Wayne Somerville) in 2006. Designed to let builders learn LPC by building a mudlib from near-scratch without having to deal with driver internals [8]. For MudOS/FluffOS. lpuni_fluffos_v1.zip (via lpmuds.net)
Final Realms FR-MUD (1991/1992), a "Discworld-style lib" per its own internal documentation. Opened before any Discworld mudlib was released publicly (March 1993), so it was not a Discworld fork at launch, but the preserved late-1990s source shows it progressively absorbed Discworld code over the decade [9]. quixadhal/fr, maldorne/frmudlib v3.5
Phantasmal The most complete publicly available mudlib for DGD, created by Noah Gibbs (author of Self Conscious DGD). Features full persistence, OLC, and a help system. AGPL license [10]. dworkin/phantasmal
Gurbalib Lightweight DGD mudlib originally created by Fudge (Erlend Simonsen), currently maintained by Sirdude (Kent Mein). Relatively complete game feature set for a DGD lib [11]. sirdude/gurbalib
References
  1. LDMud's mud/lp-245 README describes it as "the old LP 2.4.5 mudlib, slightly updated to run with LDMud 3.2.7 or newer".
  2. Descartes of Borg, End of Nightmare Mudlib Development, rec.games.mud.lp.
  3. Lima mudlib project site at limamudlib.dev; maintained repo at limalib/lima; the earlier fluffos/lima was archived read-only in October 2024.
  4. Dead Souls Mudlib on the MUD Wiki; repo README at quixadhal/deadsouls credits "Cratylus @ Dead Souls" with the lib "based on Descartes @ Nightmare".
  5. Genesis LPMud on Wikipedia; genesismud/mudlib repo describes itself as "the mudlib upon which Genesis and a few other muds run".
  6. Distribution mudlib on the Discworld MUD wiki; see also the official Discworld mudlib page.
  7. Lauren Burka's MUDline (1995): "May 15, 1995. The Foundation II LPC Library is released. Foundation II is the first LPC library for MudOS designed for non-game uses, and the first which people may license." Also stored in this repository.
  8. LPUniversity Foundation on SourceForge; bundled FluffOS download via lpmuds.net.
  9. Preserved FR:Release mudlib source at quixadhal/fr and maldorne/frmudlibmudlib/net/intermud3/README (Hamlet of WWC, Aug 1996) reads: "This package was born on Nightmare mud... After that, it took a trip to Discworld... Thereafter, it went to Final Realms... since each DW-style lib is just a bit different". Discworld's mudlib release date is from Lauren Burka's MUDline chronology (1995): "March 1993. The Discworld Mudlib for MudOS is released, making the second widely available mudlib for MudOS", and matches the official Discworld mudlib page.
  10. dworkin/phantasmal on GitHub; author confirmed in Noah Gibbs' Self Conscious DGD.
  11. sirdude/gurbalib on GitHub; original authorship chain documented in HEADER.txt at wotf.org.

DikuMUD

Inspired by AberMUD and LPMud, created in 1990/91 at DIKU (Datalogisk Institut Københavns Universitet —the department of computer science at the University of Copenhagen—) in Copenhagen, Denmark.

Some well-known derivatives of DikuMUD: CircleMUD (web, source), MERC, Envy, ROM, SMAUG, GodWars, AwakeMUD (web, source).

Modern drivers

Some information about some modern drivers/game engines/codebases created long time after the original MU* games.

Evennia

Created by Greg Taylor in 2006, Samuel "Griatch" Regandell took over the project in 2011. Modern library for creating online multiplayer text games in pure Python. Coding is done using normal Python modules imported into the server at runtime. BSD license.

CoffeeMud

Created by Bo Zimmerman in 2000, created 100% in Java. Supports any JDBC/ODBC database, includes built-in web server. Apache License.

Old games and drivers reconstructed with the help of AI

Legends of Future Past

Originally created by Jon Radoff in 1992, one of the earliest commercial MUDs. Ran on CompuServe and the early internet until 1999. Won Computer Gaming World's 1993 Special Award for Artistic Excellence. The original engine source code was lost, but the game was reconstructed in 2026 from its original script files using AI (Claude Code). Go backend, React frontend, WebSocket multiplayer. MIT License.

Protocols

Generic protocols for remote connections

TELNET

Connect to *NIX servers and BBSes using TELOPT negotiations. The base telnet protocol is defined in RFC 854 and RFC 855; several options commonly used in MUD connections extend it:

  • Binary Transmission (RFC 856). Enables 8-bit clean data transfer, required for UTF-8, MCCP compressed streams, and any protocol that embeds raw bytes in the telnet stream.
  • Echo (RFC 857). Controls whether the server or client echoes typed input. MUD servers use this to suppress client-side echo during password entry.
  • Suppress Go Ahead / SGA (RFC 858). Suppresses the telnet GA signal; see also EOR / GA below. Enabling SGA together with Echo puts the connection in character mode (input transmitted character by character instead of line by line), which is the default operating mode for most MUDs.
  • Q Method (RFC 1143). A state-machine approach to implementing telnet option negotiation that avoids infinite loops. Not a wire protocol but the recommended implementation strategy; referenced by the Tintin++ documentation.

VT100

In MUD context, "VT100" refers to the ANSI X3.64 escape sequences originally implemented by the DEC VT100 terminal (1978). Virtually every MUD server and client uses these sequences for text color (SGR), bold, underline, cursor positioning, and screen clearing. The standard was formalized as ECMA-48 / ISO 6429; modern MUD clients like Mudlet and TinTin++ extend support to xterm 256-color and 24-bit truecolor.

NAWS

Negotiate About Window Size. Sends the mud client's window size to the server. RFC 1073.

TTYPE

Terminal Type. Telnet option that lets clients advertise their terminal type to the server. Used by MUDs for client identification and feature negotiation; MTTS extends TTYPE to carry a bitfield of MUD-specific client capabilities. RFC 1091.

CHARSET

Telnet option for negotiating the character encoding (latin1, UTF-8, etc.) used over a connection. Increasingly relevant as modern clients move from latin1 to UTF-8. RFC 2066.

EOR / GA

End of Record and Go Ahead. Telnet markers used to signal the end of a prompt line so clients can distinguish prompts from ongoing output. Historically MUDs relied on GA, but many now suppress it (SGA, RFC 858) and send EOR (RFC 885) instead. Most modern MUD clients support both.

Specific protocols for MUDs

The following MUD-specific protocols are implemented as telnet options, building on the base TELNET RFCs listed above.

GMCP

Generic Mud Communication Protocol. GMCP is implemented as a Telnet option. Uses JSON syntax to define structured and typed data.

MCP

Mud Client Protocol. An attempt to provide a standard message format on which to build MUD-based client-server applications, primarily used in MOO environments.

MCCP

Mud Client Compression Protocol version 2 and 3. MCCP2 is implemented as a Telnet option. Allows a MUD server to compress output to the receiving client using the zlib compression library. Created in 1998, MCCP version 2 was created in 2000. In 2019 MCCP version 3 was created as a separate protocol.

MSDP

Mud Server Data Protocol. MSDP is implemented as a Telnet option. Developed in 2009, provides a standardized way to define typeless variables, arrays, tables, and commands. MSDP over GMCP offers standardized generic event handling besides sending structured data.

MSLP

Mud Server Link Protocol. Allows the creation of clickable links in the client side. MSLP is negotiated by using the MTTS standard.

MSSP

Mud Server Status Protocol. MSSP is implemented as a Telnet option. Protocol for MUD crawlers to gather detailed information about a MUD, including dynamic information like boot time and the current amount of online players. See also GSGP.

MTTS

Mud Terminal Type Standard. Transparant and straight forward standard for Mud Clients to communicate their terminal capabilities. See also MNES.

MMCP

Mud Master Chat Protocol for instant messaging and file transfers over private P2P connections. Is a decentralized chat protocol which allows MUD clients to communicate with each other over a TCP/IP connection.

MXP

MUD eXtension Protocol. MXP embeds HTML-like tags in MUD output, allowing servers to send clickable links, inline images, custom elements, and styled text to supporting clients. It is negotiated via Telnet subnegotiation and defines both built-in elements (like <A> for hyperlinks and <SEND> for clickable commands) and server-defined custom elements. See also Pueblo for an earlier, similar approach.

MSP

MUD Sound Protocol. MSP uses special trigger sequences embedded in MUD output (!!SOUND() and !!MUSIC()) to instruct supporting clients to play sound and music files, either from a local cache or downloaded from a specified URL. Largely superseded by MCMP, which provides richer media control over GMCP.

MCMP

MUD Client Media Protocol. A standard for loading, playing and stopping media files with MUD clients over GMCP that is intended to modernise MSP.

zChat

Chat format. Similar to MMCP but not compatible.

GSGP

Game Scry Game Protocol. GSGP is a standardized JSON structure which you can make available for GameScry or other sites to ping for real-time data about a game, its active players, leaderboards, etc. See also MSSP.

ATCP

Achaea Telnet Client Protocol. Using TELNET code 200, was implemented by cMUD in 2008. In 2010 evolved to ATCP2 using TELNET code 201. Was later renamed to GMCP. Achaea, Aardwolf, MUME, Avatar, Gensis, and MUSHclient provide package definitions modeled after the ATCP2 draft.

Aardwolf's 102

Similar to ATCP, Aardwolf includes a hidden channel of information that you can access.

MNES

Mud New Environment Standard. Implemented as a Telnet option. Seeks to supplement MTTS by providing a straightforward way to use the NEW-ENVIRON telnet option (RFC 1572) to exchange and update various client and server settings.

MMP

Mud Mapping Protocol. IronRealms protocol as a way to export our in game map data so that clients (or players) can easily access and download this data.

TLS

Transport Layer Security. Some MUD servers and clients support encrypted connections via TLS (formerly SSL). Connections typically use direct TLS on a separate port rather than STARTTLS negotiation; there is no universal port convention, though individual MUDs document their TLS port. The MTTS standard includes a flag (bit 2048) to let clients advertise TLS support.

Pueblo

Developed by Chaco Communications in the mid-1990s, Pueblo extended MUD output with HTML tags for styled text, inline images, and clickable links — predating MXP with a similar approach. The Pueblo client is long defunct, but some MUD servers still emit Pueblo-compatible markup and a handful of modern clients retain partial support.

ZMP

Zenith MUD Protocol. An out-of-band communication protocol for MUDs, designed as a simpler, more extensible alternative to MSSP and MSDP. Uses NUL-delimited strings inside a telnet subnegotiation.

Pinkfish

Not a protocol but a widely-used color code standard in LPC MUDs, named after David 'Pinkfish' Bennett (founder of Discworld MUD). Pinkfish codes use %^COLOR%^ tokens (e.g., %^RED%^, %^BOLD%^) that the driver converts to ANSI escape sequences. Used by Discworld, Dead Souls, and many other LP-family mudlibs.

WebSocket

Not a MUD-specific protocol, but increasingly used as a transport layer alternative to raw telnet for web-based MUD clients. A WebSocket proxy (ws/wss to telnet) allows browser clients to connect to traditional MUD servers; some modern servers support WebSocket natively.

Intermud

Family of protocols for cross-MUD communication: shared chat channels, player-to-player messages, who lists, and mail between different MUDs. Several incompatible variants exist, each tied historically to a different MUD family.

CD Intermud

The earliest LP intermud protocol, developed by the CDlib / Genesis team. Used UDP and was later superseded by Intermud 3.

Intermud 2 (I2)

Successor to CD Intermud, still UDP-based. Added support for more message types but was superseded by Intermud 3 which moved to TCP and introduced router-based architecture.

Intermud 3 (I3)

Developed in the LPMud/MudOS world in the 1990s. Uses a network of routers: participating MUDs connect to a router rather than directly to each other, and the router forwards traffic to the rest of the network. Still in use — several routers remain active and many LP-family games are reachable over I3.

IMC2

Inter-MUD Communication 2. Alternative intermud protocol developed primarily for DikuMUD derivatives (SMAUG and descendants). Peer-to-peer rather than router-based, and not interoperable with I3.

Grapevine

Modern web-based intermud replacement using WebSockets and JSON. Designed to be easy to implement from any codebase regardless of family, sidestepping the Diku/LP split of I3 and IMC2. See also the Grapevine listing in the Community section.

Several other intermud protocols were developed for specific MUD families but saw limited adoption outside them: AberChat (AberMUD), MUSHLink (MUSH), Circle Intermud (CircleMUD), ROM Intermud (ROM), Merentha Intermud (Merentha), MudNet, Arachnos, and Zebedee. See MUD Standards for documentation on these.

People

This section includes some of the people already mentioned in the previous sections, but also some others that are important in the history of MUDs. It will be expanded in the future, help is welcome!

Community

Discussion

General Info

Player competition

MUD listings

Technical Documentation

  • Mudhalla, home of the Tintin client, MUD listing, protocols documentation.
  • Mudlet wiki. Protocols documentation.

Others

  • Titans of Text, podcast, 33 episodes during 2019-2020.
  • 50 Years of Text Games, the original content of the book about text games, first published as a newsletter in Substack, free to read.
  • Terra Nova, defunct collaborative blog for academics and professionals in game studies, focused primarily on the study of virtual worlds (2003-2014).

Papers

  • Players Who Suit MUDs, a refereed paper which appeared in Volume 1, Issue 1 of the Journal of MUD Research, June, 1996. By Richard Bartle. Also known by its full title as "Hearts, Clubs, Diamonds, Spades: Players Who Suit MUDs".

About

A curated list of MUD development resources, tools, and apps.

Topics

Resources

Stars

Watchers

Forks

Contributors