Skip to main content

Creating a MUD

Discworld Help

Creating a MUD


Creating a MUD - what goes into creating something like DiscworldMUD


Setting up a MUD is not for the faint-hearted. DiscworldMUD runs on a Linux server, and getting Linux running is the least of your worries. It is allegedly possible (but considerably more difficult) to run the Discworld mudlib on Windows, but stories of people having done this are few and far-between.

This is not a guide to setting up your own MUD. You will not find such a guide here. This is simply an outline of what goes into making a MUD. You are likely reading this because you have been referred here by someone, having asked them for help in setting up a MUD. Creators on DiscworldMUD cannot help you with setting up your own MUD or coding for another MUD. This includes help on setting up your own driver, mudlib, or indeed writing LPC or other mud-side code. All we can do is tell you where to start, and that is the purpose of this document. If you are still interested, read on.

DiscworldMUD is an example of an LPMUD, although there are other kinds of MUD. LPMUDs consist of two major components:

o the LPMUD Driver
o the mudlib

The LPMUD driver is a server program that hosts the MUD, allowing network access to users, and local system access to the computer. It behaves as a virtual machine, allowing users to connect to it as if connected to a standard Un*x shell account. DiscworldMUD uses a driver called FluffOS - a heavily modified derivative of another driver, MudOS. The driver in turn hosts the mudlib, the library of files that makes a MUD unique.

The mudlib is made up of program and configuration files that define the behaviour of the MUD. Mudlib objects - such as rooms, NPCs, items, and low-level handlers - are contained within a filesystem organised hierarchically, much like the Un*x filesystem.

The language used in LPMUDs is LPC, a variant of C that supports object-oriented techniques. Each mudlib object consists of at least one LPC file, usually many such files connected together via inheritance or inclusion. Fortunately, creators need know little of the LPMUD architecture to write such files, although a thorough understanding of LPC and object inheritance is necessary to create and maintain the mudlib.

A distribution version of the DiscworldMUD driver and mudlib is occasionally available from the following location:

Note that this server is not always available, and is not directly connected to the DiscworldMUD server, so we cannot help if it is not currently available.

The steps involved (at a minimum) in setting up the distribution version are as follows:

o Download the driver and mudlib.
o Unpack them - they are shipped as tgz files.
o Compile the driver, using options appropriate to your system
o Set the mud configurations to match your system configuration
o Rinse, lather, repeat until you get a running driver.

There is a mailing list hosted at the above site. The archives contain many stories of heartache and tribulation endured by those willing to attempt the installation. If you have any problems going through the steps outlined above, you may find them of assistance.

Bear in mind that the distribution version of the mudlib does not contain any of the locations, NPCs, or items that you know and love from DiscworldMUD. You will not find Ankh-Morpork, Bes Pelargic, Sto Lat, Djelibeybi, an ornate warhammer, Cohen, Captain Carrot, or Casanunda. Nor will you be able to get these from any creator on Discworld. The distribution version of the mudlib contains enough basic code to create one's own locations and items, assuming one can code in LPC.

Very Important Note

Creators on DiscworldMUD are not expected to know how to set up and maintain a MUD. Questions on doing so will probably not be entertained. Few of the creators have attempted to set up their own version of the MUD. Fewer still have succeeded. If you wish to attempt to do so, you're on your own. Feel free to use the mailing list mentioned above, or some of the resources listed below to get you started, however.


In preference to listing URLs that can go out of date, we will present a list of terms that your favourite search engine will no doubt accept and return a rich supply of results.

LPMUD - a type of driver and MUD.
TinyMUD - another popular MUD type.
DIKU - another popular MUD type.
LPC - the language used on LPMUDs.* - Usenet groups (available via Google groups) about MUDs

Searching for "mud server", "java mud server", "perl mud server", "smalltalk mud server" etc. will give plenty of results. Keywords like "creating a mud from scratch" will also work as expected. Use your own discretion, as ever.