CircleMUD Data in XML Format for Your Text Adventure Game

Long before World of Warcraft, people played text-based MMORPGs called MUDs (Multi-User Dungeon). These were basically multiplayer text adventure games where people could wander through a virtual world fighting monsters and exploring. They had several RPG elements to them.

CircleMUD was a popular piece of server software for running a MUD, and it came with a sizeable virtual world (which the admin could modify/append to customize their fantasy world.) It would be pretty handy to use parts of this data if you were creating your own virtual world for a text adventure game, but the format of CircleMUD’s data files is kind of obtuse and not amenable to manipulation.

So I wrote a few scripts to convert these files into a single XML file which is 4MB when unzipped. You can parse this file and modify it to suit your needs. It contains 1979 rooms across 30 different areas (called zones in the file), with 46 shops and 569 different “mobs” (mobile objects, which are the monsters and NPCs). There are 678 different types of objects, including 116 weapons and 154 types of armor.

The scripts and original CircleMUD data (along with descriptions of the data formats) are included in the zip:

Download CircleMUD XML Data (1.3 MB zipped)

Use Python’s XML parsing libraries rather than trying to write your own code to parse it. Dive into Python has a chapter on XML parsing and Effbot’s ElementTree module can parse XML. The zip file also comes with a small script that loads the data as a giant Python dict.

Here’s an example of what this textual data looks like:

<mob vnum="907" alignment="-1000" type="S" level="26" thac0="0" ac="-2" 

maxhp="12d8+590" barehanddmg="4d6+10" gold="0" xp="160000" 

loadposition="standing" defaultposition="standing" sex="male">

  <alias name="minos" />

  <alias name="king" />

  <alias name="minotaur" />

  <shortdesc>King Minos the Minotaur</shortdesc>

  <longdesc>King Minos the Minotaur is ready and waiting to gore you to death.</longdesc>

  <detaileddesc>He smells something awful.</detaileddesc>

  <action sentinel="true" aggressive="true" memory="true" helper="true" 

nocharm="true" nosummon="true" nobash="true" />

  <affection detectinvis="true" senselife="true" sanctuary="true" infravision="true" 

notrack="true" />

</mob>

If you’d like to play a MUD for yourself, there are still many that are run on the Internet. The website mudconnect.com lists over a thousand of them. Just search for “CircleMUD” to find a server that runs the CircleMUD software.

Enjoy!

4 comments on this post.
  1. Irmen de Jong:

    Nice coincidence – I started toying around with writing a MUD from scratch recently, and now I discovered this article :-)

    I might use the data file in one way or another. If you’re interested I blog a little about my development efforts on my Mud, it’s in Dutch though: http://www.razorvine.net/blog/user/irmen/category/12 (look for posts titled Python Mud)

  2. Daniel Fischer:

    It was meant to be! I stumbled onto your site while browsing amazon before I crash for the night. I’ve been working on a text adventure game & I want to eventually dive into MUDs again. Now I’m quite excited to check out your site in detail. Keep up the great work!

  3. Irmen de Jong:

    Hello Al,
    the xml files you originally posted have some problems. They’re not valid XML. They contain several types of syntax errors and un-escaped special characters like ‘&’. I’ve fixed the python convert scripts to output valid xml instead. The fixed versions can be downloaded here http://www.razorvine.net/download/circlemuddata_converters.zip

  4. me:

    Evennia ( http://evennia.com/ ) looks like an interesting project to create a MUD in Python and Django. It might be fun to use this data with that.

Leave a comment