Checklists

MOO checklist for MUDs

This checklist outlines the technical and operational requirements for launching a production-ready MOO environment, focusing on server stability, database integrity, and security protocols specific to the LambdaMOO and ToastStunt engines.

MOO checklist for MUDs hero illustration
Progress0 / 25 complete (0%)

Server Core and Infrastructure

0/5
  • Engine Version Verification

    critical

    Ensure the server is running a modern fork like ToastStunt or a patched LambdaMOO 1.8.x to support 64-bit architectures and modern networking.

  • Checkpoint Frequency Configuration

    critical

    Configure the server to dump the database to disk at regular intervals (e.g., every 60 minutes) to prevent data loss in the event of a crash.

  • Panic Dump Validation

    critical

    Trigger a manual panic dump and verify that the resulting .db file can be successfully loaded by a fresh server instance.

  • Memory Limit Allocation

    recommended

    Set explicit memory limits in the server configuration to prevent a single recursive verb from exhausting system RAM and triggering an OOM kill.

  • Log Rotation Setup

    recommended

    Implement logrotate for the server output log to prevent disk space exhaustion from high-volume tracebacks.

Security and Permissions

0/5
  • Wizard-Bit Audit

    critical

    Run a script to list every object with the 'w' (wizard) bit set and verify that only essential system objects and administrative players are included.

  • Network Verb Protection

    critical

    Restrict access to $network and $bf_open_network to ensure only authorized system objects can initiate outbound connections.

  • Property Read-Access Audit

    critical

    Verify that sensitive properties (e.g., passwords or email addresses) are not world-readable by checking the 'r' bit on the $player object hierarchy.

  • Object Creation Quotas

    recommended

    Implement a quota system on the $player object to prevent users from flooding the database with thousands of objects.

  • Verb Execution Permissions

    recommended

    Ensure all verbs on public objects are set to 'r' (readable) but not 'x' (executable) by the world unless explicitly intended for public use.

Database Integrity

0/5
  • System Object (#0) Verification

    critical

    Confirm that all standard system aliases (e.g., $player, $room, $thing) are correctly mapped to their respective object numbers on #0.

  • Parentage Hierarchy Check

    critical

    Run an integrity check to ensure no objects have circular parentage and that all players descend from a valid $player object.

  • Stray Object Cleanup

    recommended

    Identify and re-parent or recycle objects owned by non-existent player IDs to prevent database bloat and reference errors.

  • Invalid Reference Scan

    recommended

    Scan the database for properties containing references to recycled objects (e.g., #-1) and nullify them.

  • Binary vs Text Dump Validation

    optional

    Ensure the server can output both binary and text-based database dumps for portability between different MOO engine versions.

Networking and Connectivity

0/5
  • Port Forwarding and Firewall

    critical

    Open and test the primary listening port (usually 7777) and ensure the firewall allows bidirectional traffic for that port.

  • TLS/SSL Encryption

    recommended

    Configure a reverse proxy (like Nginx or stunnel) or use native ToastStunt TLS to secure player connections against eavesdropping.

  • Guest Account Management

    recommended

    Test the guest login workflow to ensure it properly recycles guest objects upon logout and prevents guest persistence.

  • MUD Client Protocol (MCP) Support

    optional

    Verify that the server correctly identifies and handles MCP handshakes for modern clients like Mudlet or BeipMU.

  • IPv6 Connectivity

    optional

    Confirm the MOO engine is compiled with IPv6 support to allow connections from modern network stacks.

Performance and Scripting

0/5
  • Infinite Loop Prevention

    critical

    Verify that the 'max_stack_depth' and 'ticks' limits are set to prevent runaway verbs from freezing the server process.

  • Task Profiling

    recommended

    Use 'queued_tasks()' to monitor for stuck background tasks and identify verbs that are consuming excessive CPU cycles.

  • Fork/Suspend Audit

    recommended

    Audit verbs that use 'fork' or 'suspend' to ensure they do not create thousands of concurrent tasks during high player activity.

  • Help System Indexing

    recommended

    Confirm that the $help system is fully indexed and that all core commands have corresponding entries for new users.

  • Verb Profiling Tools

    optional

    Install or enable verb profiling tools to track execution time for the 10 most frequently called verbs in the database.