1. Davion Kalhen
  2. Pyom



Welcome to the Pyom project!

Pyom is a re-authoring of the Rom DikuMUD derivative, using version 3 of the python programming language. We've tried to use as few external modules as possible, but are using the excellent Miniboa telnet stack as our core.

In most cases, we're trying to keep the overall feel of the code to be familiar to people who have worked on the original C implementation of Rom. Changes are being made where they have to be, often due to Rom relying on C specific memory handling tricks, or where it simplifies something by re-factoring it.

For example, the old send_to_char() function has been replaced by a send() method in the character class, giving us the much simpler ch.send() method.

The initial goal of the project is to provide a fully working copy of Rom, in python, which can act as a stepping stone to help others convert their aging C dikurivatives to a more modern language. On today's hardware, there is little value in over-optimizing such a small project, and a great deal to gain by allowing fast and easy coding.

We've included a modified version of Miniboa. The original can be found here.

and for Python 3, here.

You are, of course, required to follow all the licenses of everything this code was derived from. This includes the Miniboa license, and the licenses for Rom, Merc, and DikuMUD.

The original C source and data files are included for comparison. The root of the python project itself is in ./Rom24/pysrc/, and this should be used as the source directory for any IDE you might use.

Installation and Usage


  1. Grab and install a copy of the latest version of Python3 (currently tested on 3.4.x)
  2. Ensure that the Python directory is available on your PATH environment variable
  3. Open a new command prompt window
  4. Navigate to "~/pyom/Rom24/pysrc/"
  5. Run "python pyom.py"

If all went well, you should be seeing a barrage of initialization messages and the MUD will be booting up. By default the MUD uses port 1337. You can connect to localhost:1337 and login.

A basic interactive shell is available in shell.py. Various configuration options can be adjusted in settings.py. If you're running from a command line,

cd ./Rom24/pysrc && python3 ./pyom.py

should get things started. If you're using an IDE, make sure you set pyom.py as the start file.

Configuring an Implementor Character

An Implementor is a superadmin/root/GM/immortal that has all privilages. To set your first character up as an Implementor:

  1. Create a character
  2. Get to level 2
  3. Save and log out
  4. Locate your character file in "~pyom/Rom24/player/<yourname>.json"
  5. Open and modify the Trust (Tru) and Level (Levl) variables to 60
  6. Save the file
  7. Log back into your character
  8. If you have access to commands like "load" "restore" and "vnum" then you are an implementor

This isn't finished, and we're still learning python, so things may be flat-out broken, or done in a really inefficient or silly way, as we unlearn bad habits C has taught us.

In case you found this elsewhere, the actual up-to-date home of the project is here.

You can also contact our project lead, Davion, via PM at mudbytes.

We hope you have fun with this, and find it useful!