LuminariMUD
A text-based multiplayer online role-playing game (MUD) server implementing Pathfinder/D&D 3.5 mechanics, built on the robust tbaMUD/CircleMUD foundation with extensive custom enhancements.
Table of Contents
- Quick Start - See also docs/GETTING_STARTED.md
- Overview
- Features
- Installation
- Usage
- Documentation
- Contributing
- Community
- License
- Acknowledgments
Quick Start
Get LuminariMUD running quickly with these simple steps:
Prerequisites
Install required libraries first:
sudo apt-get update
sudo apt-get install -y build-essential git make autoconf automake \
libcrypt-dev libgd-dev libmariadb-dev \
libcurl4-openssl-dev libssl-dev mariadb-server \
cmake libtool pkg-config gdb valgrind
Installation
git clone https://github.com/LuminariMUD/Luminari-Source.git
cd Luminari-Source
# 2. Run the deployment script
# This handles everything: dependencies, database, world data, build
# You'll be prompted for MySQL root password
./scripts/deploy.sh
# 3. Start the MUD server
./bin/circle -d lib
That's it! Connect to localhost:4000 with any MUD client.
What deploy.sh Does
The deployment script automatically:
- Copies configuration files (.example.h - .h)
- Installs any missing dependencies
- Sets up MariaDB database (prompts for root password)
- Creates database and user with generated password
- Initializes world data (zones, rooms, mobs, objects)
- Builds the MUD using autotools (preferred) or CMake
- Creates all required directories and symlinks
Optional flags:
--auto- Skip prompts where possible (still needs MySQL root password)--skip-db- Skip database setup (not recommended)--dev- Development build with debug symbols--prod- Production optimized build
For detailed information, see docs/deployment/DEPLOYMENT_GUIDE.md
Overview
LuminariMUD is a feature-rich MUD server that brings the beloved Pathfinder/D&D 3.5 rule system to life in a text-based multiplayer environment. Built upon the proven tbaMUD/CircleMUD codebase, it features an original world inspired by Biblical, Dragonlance, and Forgotten Realms stories.
Project Vision
Create a MUD with authentic Pathfinder/d20/D&D 3.5 mechanics featuring an original world that fosters a safe, friendly community for like-minded gamers. Our primary goal is building meaningful connections through collaborative storytelling and adventure.
Project Philosophy
This project embodies commitment, self-motivation, and perseverance through challenges. Creating a MUD is inherently rewarding work, regardless of player base size. We remain dedicated to our initial vision and the hard work required to make this project successful.
Features
Core Game Systems
- Authentic Pathfinder/D&D 3.5 Mechanics: Complete implementation of familiar rule systems
- Advanced Character System: Multiple races, classes, feats, and skills
- Dynamic Combat: Initiative-based combat with tactical positioning
- Spell System: Comprehensive magic system with spell preparation and components
- Crafting & Alchemy: Extensive item creation and enhancement systems
World & Content
- Original World Design: Unique setting inspired by Biblical, Dragonlance, and Forgotten Realms
- Quest-Driven Progression: Story-oriented advancement system
- Living World: Heavy scripting for dynamic, responsive environments
- Zone-to-Zone Travel: World map navigation with vehicle support
- High-Quality Content: Custom zones replacing stock content
Technical Features
- MySQL Integration: Persistent player data and world state
- DG Scripting System: Powerful scripting for NPCs, objects, and rooms
- Online Level Creation (OLC): In-game world building tools
- Advanced Networking: Support for modern MUD protocols including MSDP
- Performance Monitoring: Built-in profiling and debugging tools with C++ optimization
- Security Hardened: All PHP tools audited and secured (January 2025)
- Memory Management: Advanced debugging with Valgrind integration
Quick Start
Prerequisites
- Operating System: Linux or Unix-like system (including WSL2 Ubuntu)
- Compiler: GCC or Clang (C90/C89 with GNU extensions)
- Build System: CMake 3.12+ or Autotools
- Database: MariaDB 10.0+ or MySQL 5.7+ (REQUIRED - not optional)
- Libraries:
- libmariadb-dev (MariaDB client library - required)
- libcrypt, libgd, libm, libcurl, libssl, libcrypto, libpthread
Quick Install for Ubuntu/WSL2:
sudo apt-get update
sudo apt-get install -y build-essential libcrypt-dev libgd-dev libmariadb-dev \
libcurl4-openssl-dev libssl-dev mariadb-server git make cmake \
autoconf automake libtool pkg-config
# HIGHLY RECOMMENDED: Install debugging tools (used by debug_game.sh and vgrind.sh)
sudo apt-get install -y gdb valgrind
Build and Run
git clone https://github.com/LuminariMUD/Luminari-Source.git
cd Luminari-Source
# Configure required headers (one-time setup)
cp src/campaign.example.h src/campaign.h
cp src/mud_options.example.h src/mud_options.h
cp src/vnums.example.h src/vnums.h
# Edit these files as needed for your configuration
# Option 1: Build with CMake (recommended)
cmake -S . -B build/
cmake --build build/ -j$(nproc)
# Option 2: Traditional build with Autotools
autoreconf -fvi # Only if configure script missing
./configure
make
# Run the server (after configuration)
bin/circle
# Or use the autorun script for automatic restarts
./autorun
Installation
For detailed installation instructions including system requirements, dependencies, database setup, and configuration, please see the Setup and Build Guide.
Windows users (WSL): See the "Auto-WSL integration (Windows)" section in the Setup and Build Guide for targeting a specific WSL distro and for temporarily disabling or re-enabling the Auto-WSL behavior.
Usage
Basic Commands
Building and Development
make all
# Clean build artifacts
make clean
# Clean autotools files (keeps Makefile & config.h)
make scrub
# Full clean (removes everything, requires autoreconf)
make distclean
# Run unit tests
make cutest
# Generate dependencies
make depend
# Rebuild from scratch
autoreconf -fiv && ./configure && make all
Server Management
bin/circle
# Start with specific port
bin/circle -p 4000
# Run with autorun script (recommended for production)
./autorun
# Run in background
nohup bin/circle &
Configuration Files
campaign.h: Core game settings and world configurationmud_options.h: Server options and feature togglesvnums.h: Virtual number assignments for objects, rooms, and NPCs
Common Use Cases
For Players
- Connect via telnet:
telnet your-server-ip 4000 - Use a MUD client like MUSHclient, TinTin++, or Mudlet for enhanced experience
For Builders
- Use in-game OLC (Online Level Creation) commands
- Access building documentation in
/docs/ - Follow building standards and guidelines
For Developers
- Review code in modular C files
- Use the DG scripting system for advanced features
- Contribute via GitHub pull requests
Documentation
Quick Access
- Technical Master Index: Complete technical documentation overview
- Getting Started: Quick start guide for new users
Technical Documentation
- Architecture: Server architecture and design patterns
- Developer Guide: Coding standards and API reference
- Build Guide: CMake build system details
Game Documentation
- Combat System: Combat mechanics and calculations
- Player Management: Character creation and progression
- Vessel System: Ships, airships, and navigation
Additional Resources
- Testing Guide: Quality assurance and testing procedures
- Troubleshooting: Common issues and solutions
- Ultimate Writing Guide: Zone building and content creation
- AI Assistant Guide: Comprehensive guide for AI-assisted development
Contributing
We welcome contributions from developers, builders, and community members! Please read our guidelines before contributing.
How to Contribute
-
Fork the Repository
# Fork on GitHub, then clone your fork
git clone https://github.com/YOUR_USERNAME/Luminari-Source.git
cd Luminari-Source -
Create a Feature Branch
git checkout -b feature/your-feature-name -
Make Your Changes
- Follow our coding standards (see Developer Guide)
- Add tests for new functionality
- Update documentation as needed
-
Test Your Changes
make clean
make all
make cutest # Run unit tests -
Submit a Pull Request
- Push your branch to your fork
- Create a pull request with a clear description
- Reference any related issues
Contribution Guidelines
Code Contributions
- Coding Standards: Follow existing code style and conventions
- Documentation: Update relevant documentation for new features
- Testing: Include unit tests for new functionality
- Commit Messages: Use clear, descriptive commit messages
Content Contributions
- World Building: Follow established lore and building standards
- Help Files: Maintain consistency with existing help system
- Scripts: Use DG scripting best practices
Bug Reports
- Use GitHub Issues to report bugs
- Include steps to reproduce the issue
- Provide system information and error messages
- Check existing issues before creating new ones
Development Team Structure
Core Development
- Lead Programmer: Manages code standards and development workflow
- Game Designer: Defines game mechanics and project direction
- Programmers: Implement game mechanics and features
Content Creation
- World Designer: Designs maps, zones, and building standards
- Lore Designer: Develops world background and stories
- Quest Designers: Creates quest content and rewards
- Builders: Creates world content, scripts, and quests
- Lead Scripter: Develops universal scripts and provides support
Community Management
- Lead Administrator: Manages staff and community standards
- Administrators: Support player relations and enforce guidelines
- Help File Lead: Organizes help system and documentation
Contributor License Agreement
Contributions to this project must be accompanied by a Contributor License Agreement. You retain copyright to your contribution; this gives us permission to use and redistribute your contributions as part of the project.
Community
Join Our Community
- Discord: Join our community - Primary communication hub
- GitHub Discussions: Use for development-related discussions
- Issues: Report bugs and request features
Community Guidelines
- Respect: Treat all community members with respect and kindness
- Collaboration: Work together towards common goals
- Constructive Feedback: Provide helpful, actionable feedback
- Inclusivity: Welcome newcomers and help them get started
Getting Help
- Discord: Ask questions in appropriate channels
- Documentation: Check our comprehensive documentation first
- GitHub Issues: For bug reports and feature requests
- In-Game Help: Use the built-in help system
Troubleshooting
Common Issues
Build Problems
sudo apt-get install build-essential mariadb-server libmariadb-dev libgd-dev
# Permission issues
chmod +x configure
chmod +x licheck
# Clean build
make clean && make
Runtime Issues
# Check MariaDB service status
sudo systemctl status mariadb
# Or for older systems:
sudo systemctl status mysql
# Port already in use
# Check what's using port 4000
netstat -tulpn | grep :4000
Configuration Issues
- Verify all
.hconfiguration files are properly set up - Check file permissions on configuration files
- Ensure database credentials are correct
Getting Support
- Check the Troubleshooting Guide
- Search existing GitHub Issues
- Ask on Discord for community support
- Create a GitHub Issue for bugs or feature requests
License
This project uses a dual licensing approach:
tbaMUD/CircleMUD Code
Code contributed by the tbaMUD project follows their licensing terms. See tbamud.com for details.
LuminariMUD Custom Code
Custom code developed for LuminariMUD is released into the public domain:
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
For complete license details, see the LICENSE file.
Acknowledgments
Built Upon
- tbaMUD: The base MUD codebase
- CircleMUD: The original foundation
- CWG (Copper) MUD: Additional enhancements and features
Inspiration
- Biblical Stories: Spiritual and moral themes
- Dragonlance: Epic fantasy elements
- Forgotten Realms: Rich world-building traditions
Version Information
- Current Version: LuminariMUD 2.5001-beta (tbaMUD 3.64)
- Repository: https://github.com/LuminariMUD/Luminari-Source
- Created: July 16, 2019
- Language: C (ANSI C90/C89 standard) with C++11 performance monitoring
- Last Updated: January 2026
Version is defined in:
src/constants.c(canonical),src/structs.h,configure.ac,CMakeLists.txt
Remember: The work itself is the reward. Focus on creating something meaningful for the community.
For more information, visit our technical documentation or join our Discord community.