NakedMud: Content-less MUD engine

Archivist's Note - Geoff Hollis-Haynes: January 16, 1983 - November 8, 2021

A photo of Geoff staring lovingly at his tabby cat as he holds it. He is dressed in his teaching attire. This site is maintained as a memorial for Geoff, who tragically passed away at the age of 38 after living with cancer for many years. Those who knew him remember a kind, gentle soul full of generosity and warmth for friends, family, his students, and small fuzzy creatures. He was known as a talented researcher and teacher in academic circles, but few knew that Geoff was also a dedicated game developer and programmer in his off-hours.

NakedMUD's development began at the tail-end of Geoff's undergraduate years at the University of Alberta (2004-2005), and then continued at a measured pace during his graduate student years at University of Cincinnati's Masters of Experimental Psychology program (2006-2008). After being admitted to the Experimental Psychology Ph.D program (2008-2009), NakedMUD received a couple more years of bug fixes, feature additions and updates.

Geoff's successful completion of the Ph.D program signaled the end of NakedMUD's development, as he returned to his home turf in Edmonton, Alberta to work as a sessional and associate lecturer at Grant MacEwan University and the University of Alberta, and fulfilled his duties as a loving husband and cat-dad and son, until his death in 2021.

I remember Geoff as one of the most passionate, dedicated and joyful people I knew during my years in academia, and I hope this small collection of Geoff's game development work remains as a working memorial of his love for programming.

This is Geoff's site, maintained exactly as he left it before the University deleted his webspace. Some of the links/additional downloads remain unavailable. Thanks to the efforts of fellow software preservationists @avidal, @stevestreza, @crawfordsm and @lewiscowles1986, most of Geoff's source code for NakedMUD has been located and restored to this site.

- Archivist vga256
E-mail: vga {at}

NOTE: This project is no longer maintained. This webpage only remains public for historic reasons.

For the aspiring MUD administrator with a vision, starting from a well developed codebase can be quite a hassle; stripping out all of the existing systems that conflict with your vision - like stock combat, magic, or currency - can be more trouble than it is worth. Likewise, starting right from scratch can be just as much of an onerous undertaking. NakedMud aims to let you start right from where you want to - a richly developed codebase without any game content.

NakedMud's goal is to provide a richly developed base containing no actual game content or mechanics. NakedMud also aims to be easily extendable, simple to set up, and full of utilities that will be useful to any development team, independent of the MUD they are working on. Such utilities range from those focused on designing game content (e.g. fully functional scripting language, OLC for building), to manipulating game content (e.g. object get/put/etc, character movement), and to programming new modules for your MUD (e.g. generic data structures, hook, event, and action handlers, a suite of tools for easy storage and retrieval from files).

Many thanks go to Brian Graversen for writing SocketMud, on which NakedMud was built. NakedMud is written in C, and uses Python for scripting. The latest version of NakedMud can be downloaded below. NakedMud is public domain; it costs no money to use, and comes with no licencing restrictions. NakedMud requires gcc >= v3.0.2 (other compilers untested) and Python >= v2.3. Startup instructions are contained in the docs folder of the download.
One manual to rule them all
NakedMud has a wealth of very useful information in very out-dated manuals. I am currently undertaking the grand project of re-writing updated manuals for building, scripting, and programming in NakedMud. Since there are already basic (outdated) scripting and programming manuals, I am beginning the updated versions with a comprehensive guide to building. From there, I will go to scripting, Python programming, and finally C programming. This will be an ongoing project. The fruits of this work can be found here.
Versions View Changelog
Version Patch Release Date
Version 3.8.1 From v3.8 Apr 7, 2009
Version 3.8 From v3.7.9 Apr 5, 2009
Version 3.7.9 (3.8 pre-release) From v3.7 [Install Notes] Mar 2, 2009
Version 3.7 From v3.6 Dec 6, 2008
Version 3.6 From v3.5 May 31, 2008
Version 3.5 From v3.4 Oct 15, 2007
Version 3.4 From v3.3 Sept 22, 2007
Version 3.3 From v3.2.1 Dec 24, 2006
Version 3.2.1 From v3.2 Jul 9, 2006
Version 3.2 From v3.1 July 1, 2006
Version 3.1 From v3.0 Dec 4, 2005
Version 3.0 From v2.7 [Install Notes] Oct 7, 2005
Version 2.7 From v2.6 [Install Notes] July 31, 2005
Version 2.6 From v2.5 July 6, 2005
Version 2.5 From v2.4 June 18, 2005
Version 2.4 From v2.3 [Install Notes] June 4, 2005
Version 2.3 From v2.2 [Install Notes] May 27, 2005
Version 2.2 From v2.1.1 [Install Notes] May 12, 2005
Version 2.1.1 From v2.1 May 8, 2005
Version 2.1 From v2.0 Apr 24, 2005
Version 2.0 From v1.5 Apr 15, 2005
Version 1.5 From v1.4 Jan 29, 2005
Version 1.4 From v1.0 Jan 18, 2005
Version 1.0 first public release of NakedMud Dec 26, 2004
NakedMud has an active development community. We have a mailing list that can be taken advantage of to keep up to date with announcements, bug reports, general Q&A, etc... To subscribe, send an email to From that point on, you can email messages to the group at

Some of us also hang out on IRC to talk about development plans, general banter, and to work through questions for new users in real time. You can find us at irc://
Various resources for programming in NakedMud, with particular attention to the framework for modular design within the codebase. These manuals are incredibly useful, if not a little outdated. I am currently in process of rewriting these manuals so they are a little more relevant to current versions of NakedMud.

Programming with NakedMud - Basic introduction to the codebase
Extending NakedMud - Comprehensive tutorial on modules, auxiliary data, and storage sets
Python in NakedMud - Introduction to programming with Python
Additional Downloads
Here are some additional resources. Some of the modules may be out of date, and will not function with the current version of NakedMud without minor changes. I try my best to keep them all updated, but no promises. So think of them more as demonstrations rather than things that will work out of the box. Modules are roughly ordered by 'coolness'.

Persistent - Allows room contents and state to be saved across crash/restart
Dialog - Module for NPC interaction. Allows for extensive scripting. Includes OLC editor.
Quest - One-time and repeatable quests. Allows for extensive scripting. Includes OLC editor.
Mail - A mail module written in Python. Requires Stendec's PyOLC.
Currency - Python module supporting spendable things. Money, experience, questpoints, etc.
Act - Python module for player and NPC actions. Supports restriction-checking and cooldowns.
Webserver - Allows web browsers to fetch game information (v3.1 compatible).
Affects - Open-ended, extendable system for character, object, and room affects.
Object Bonus - Extends affects module. Allows objects to grant players affects when worn.
MSSP Support - Allow mud crawlers to extract information about your game.
Consumables - Adds a new item type for edibles and drinkables via Python
Stats - A simple, open-ended system for adding stats to characters and npcs.
Bulletin - A simple bulletin board system written in Python.
Shell - Allows admins to execute shell commands from within the mud.
Autorun Script - A Python script that will automatically reboot your MUD after it crashes.
Questions, comments, and concerns should be directed to Geoff Hollis. My own personal NakedMud project can be found here
NakedMud is written and maintained by Geoff Hollis. NakedMud is is free, and you can do whatever you want with it. That said, I won't turn down donations! If you think it's worth the fee, a meagre $5 can go a long way to brighten my day.