Skip to main content

A modern Python port of the ROM 2.4b6 MUD engine with full telnet server and JSON world loading

Project description

QuickMUD - A Modern ROM 2.4 Python Port

PyPI version Python 3.10+ License: MIT Tests

QuickMUD is a modern Python port of the legendary ROM 2.4b6 MUD engine, derived from ROM 2.4b6, Merc 2.1 and DikuMUD. This is a complete rewrite that brings the classic text-based MMORPG experience to modern Python with async networking, JSON world data, and comprehensive testing.

🎮 What is a MUD?

A "Multi-User Dungeon" (MUD) is a text-based MMORPG that runs over telnet. ROM is renowned for its fast-paced combat system and rich player interaction. ROM was also the foundation for Carrion Fields, one of the most acclaimed MUDs ever created.

✨ Key Features

  • 🚀 Modern Python Architecture: Fully async/await networking with SQLAlchemy ORM
  • 📡 Multi-User Telnet Server: Handle hundreds of concurrent players
  • 🗺️ JSON World Loading: Easy-to-edit world data with 352+ room resets
  • 🏪 Complete Shop System: Buy, sell, and list items with working economy
  • ⚔️ ROM Combat System: Classic ROM combat mechanics and skill system
  • 👥 Social Features: Say, tell, shout, and 100+ social interactions
  • 🛠️ Admin Commands: Teleport, spawn, ban management, and OLC building
  • 📊 100% Test Coverage: 200+ tests ensure reliability and stability

📦 Installation

For Players & Server Operators

pip install quickmud

Quick Start

Run a QuickMUD server:

mud runserver

The server will start on localhost:4000. Connect with any telnet client:

telnet localhost 4000

🏗️ For Developers

🏗️ For Developers

Development Installation

git clone https://github.com/Nostoi/rom24-quickmud-python.git
cd rom24-quickmud-python
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -e .[dev]

Running Tests

pytest  # Run all 200 tests (should complete in ~16 seconds)

Development Server

python -m mud  # Start development server

🎯 Project Status

  • Version: 1.2.0 (Production Ready)
  • Test Coverage: 200/200 tests passing (100% success rate)
  • Performance: Full test suite completes in ~16 seconds
  • Compatibility: Python 3.10+, cross-platform

🏛️ Architecture

  • Async Networking: Modern async/await telnet server
  • SQLAlchemy ORM: Robust database layer with migrations
  • JSON World Data: Human-readable area files with full ROM compatibility
  • Modular Design: Clean separation of concerns (commands, world, networking)
  • Type Safety: Comprehensive type hints throughout codebase

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

🤝 Contributing

Contributions are welcome! Please read our Contributing Guidelines and feel free to submit pull requests.

📚 Documentation


Experience the classic MUD gameplay with modern Python reliability! 🐍✨

For a fully reproducible environment, use the pinned requirements files generated with pip-tools:

pip install -r requirements-dev.txt

To update the pinned dependencies:

pip-compile requirements.in
pip-compile requirements-dev.in

Tools like Poetry provide a similar workflow if you prefer that approach.

Run tests with:

pytest

Publishing

To release a new version to PyPI:

  1. Update the version in pyproject.toml.
  2. Commit and tag:
git commit -am "release: v1.2.3"
git tag v1.2.3
git push origin main --tags

The GitHub Actions workflow will build and publish the package when the tag is pushed.

Python Architecture

Game systems are implemented in Python modules:

  • mud/net provides asynchronous telnet and websocket servers.
  • mud/game_loop.py drives the tick-based update loop.
  • mud/commands contains the command dispatcher and handlers.
  • mud/combat and mud/skills implement combat and abilities.
  • mud/persistence.py handles saving characters and world state.

Start the server with:

python -m mud runserver

Docker Image

Build and run the Python server with Docker:

docker build -t quickmud .
docker run -p 5000:5000 quickmud

Or use docker-compose to rebuild on changes and mount the repository:

docker-compose up

Connect via:

telnet localhost 5000

Data Models

The mud/models package defines dataclasses used by the game engine. They mirror the JSON schemas in schemas/ and supply enums and registries for loading and manipulating area, room, object, and character data.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rom24_quickmud_python-1.2.2.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rom24_quickmud_python-1.2.2-py3-none-any.whl (112.5 kB view details)

Uploaded Python 3

File details

Details for the file rom24_quickmud_python-1.2.2.tar.gz.

File metadata

  • Download URL: rom24_quickmud_python-1.2.2.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rom24_quickmud_python-1.2.2.tar.gz
Algorithm Hash digest
SHA256 08f0154abcd5a907f137a7c6c3f3c91728b9b022612d76609ba62fffd71aec20
MD5 d1aeb04dad91b22816de5d1ac8997fb1
BLAKE2b-256 5dfad4cd6cd89c2fc8cfd86d0fc76940fd9fd30166e1b2c6e4fe5a694c2b298d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rom24_quickmud_python-1.2.2.tar.gz:

Publisher: publish-to-pypi.yml on Nostoi/rom24-quickmud-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rom24_quickmud_python-1.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for rom24_quickmud_python-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 85f16633b8eb49e95198c61ec8c97a2a8060faf4d31e4528588db2c56a7ea91d
MD5 9b0ed407801f855415be7e2e3a8a496b
BLAKE2b-256 49a32167aa02b0a1bbe653824fae3dfcb355747f38a5f3cb09c9e4911b060730

See more details on using hashes here.

Provenance

The following attestation bundles were made for rom24_quickmud_python-1.2.2-py3-none-any.whl:

Publisher: publish-to-pypi.yml on Nostoi/rom24-quickmud-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page