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.

Server Core and Infrastructure
0/5Engine Version Verification
criticalEnsure 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
criticalConfigure 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
criticalTrigger a manual panic dump and verify that the resulting .db file can be successfully loaded by a fresh server instance.
Memory Limit Allocation
recommendedSet 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
recommendedImplement logrotate for the server output log to prevent disk space exhaustion from high-volume tracebacks.
Security and Permissions
0/5Wizard-Bit Audit
criticalRun 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
criticalRestrict access to $network and $bf_open_network to ensure only authorized system objects can initiate outbound connections.
Property Read-Access Audit
criticalVerify 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
recommendedImplement a quota system on the $player object to prevent users from flooding the database with thousands of objects.
Verb Execution Permissions
recommendedEnsure 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/5System Object (#0) Verification
criticalConfirm that all standard system aliases (e.g., $player, $room, $thing) are correctly mapped to their respective object numbers on #0.
Parentage Hierarchy Check
criticalRun an integrity check to ensure no objects have circular parentage and that all players descend from a valid $player object.
Stray Object Cleanup
recommendedIdentify and re-parent or recycle objects owned by non-existent player IDs to prevent database bloat and reference errors.
Invalid Reference Scan
recommendedScan the database for properties containing references to recycled objects (e.g., #-1) and nullify them.
Binary vs Text Dump Validation
optionalEnsure the server can output both binary and text-based database dumps for portability between different MOO engine versions.
Networking and Connectivity
0/5Port Forwarding and Firewall
criticalOpen and test the primary listening port (usually 7777) and ensure the firewall allows bidirectional traffic for that port.
TLS/SSL Encryption
recommendedConfigure a reverse proxy (like Nginx or stunnel) or use native ToastStunt TLS to secure player connections against eavesdropping.
Guest Account Management
recommendedTest the guest login workflow to ensure it properly recycles guest objects upon logout and prevents guest persistence.
MUD Client Protocol (MCP) Support
optionalVerify that the server correctly identifies and handles MCP handshakes for modern clients like Mudlet or BeipMU.
IPv6 Connectivity
optionalConfirm the MOO engine is compiled with IPv6 support to allow connections from modern network stacks.
Performance and Scripting
0/5Infinite Loop Prevention
criticalVerify that the 'max_stack_depth' and 'ticks' limits are set to prevent runaway verbs from freezing the server process.
Task Profiling
recommendedUse 'queued_tasks()' to monitor for stuck background tasks and identify verbs that are consuming excessive CPU cycles.
Fork/Suspend Audit
recommendedAudit verbs that use 'fork' or 'suspend' to ensure they do not create thousands of concurrent tasks during high player activity.
Help System Indexing
recommendedConfirm that the $help system is fully indexed and that all core commands have corresponding entries for new users.
Verb Profiling Tools
optionalInstall or enable verb profiling tools to track execution time for the 10 most frequently called verbs in the database.