LP MUD checklist for MUDs
This checklist ensures that an LP MUD environment is stable, secure, and ready for public players. It focuses on the specific architecture of LPC drivers like FluffOS or LDMud and their respective mudlibs.

Driver and Boot Configuration
0/5Driver Version Verification
criticalConfirm the driver (FluffOS or LDMud) matches the version required by the mudlib to prevent efun incompatibilities.
Config File Path Validation
criticalVerify that 'master_file', 'simul_efun', and 'global_include_file' paths in the driver config point to valid LPC files.
Log Directory Permissions
criticalEnsure the system user running the driver has write access to /log or /syslog to capture runtime errors.
Memory Limit Allocation
recommendedSet the maximum memory usage in the driver config to prevent the process from consuming the entire host RAM during a leak.
Binary Saving Configuration
optionalEnable save_binary in the driver to speed up boot times by caching compiled LPC bytecode.
LPC Security and Access Control
0/5Master Object valid_read/write Audit
criticalTest that non-admin objects cannot read or write to sensitive directories like /secure, /data, or /bin.
Shutdown and Exec Restriction
criticalVerify that the shutdown() and exec() efuns are restricted to the master object or specific admin UIDs.
Simul_efun Override Protection
criticalCheck that valid_override in master.c prevents users from redefining critical system efuns.
UID/EUID Assignment Logic
recommendedVerify that the mudlib correctly assigns Effective User IDs to objects cloned by players vs objects cloned by the system.
Snoop and Intercept Validation
recommendedConfirm that the snoop efun requires high-level privileges and logs the initiator's identity.
Object Persistence and State
0/5Save/Restore Object Testing
criticalTrigger save_object() and restore_object() on player and room objects to ensure no data loss occurs during reboot.
Heart_beat and Call_out Cleanup
criticalVerify that destructed objects correctly remove their pending call_outs and heart_beats from the driver cycle.
Global Variable Initialization
recommendedCheck that create() or reset() functions properly initialize all variables to prevent null pointer exceptions.
Shadow Object Restrictions
recommendedEnsure query_allow_shadow() is implemented on critical objects to prevent unauthorized function hooking.
Pre-loading Critical Objects
recommendedAdd essential daemons and rooms to the 'preload' list in the master object to ensure they are available immediately after boot.
Networking and Protocol Support
0/5Telnet and SSL Port Verification
criticalVerify the MUD is listening on the designated telnet port and that SSL certificates are valid if using encrypted ports.
GMCP/MSDP Handshake Test
recommendedConnect with a modern client like Mudlet and verify that the mudlib successfully sends JSON or key-value metadata.
Intermud-3 (I3) Connectivity
optionalConfirm the I3 daemon connects to a router and can send/receive 'tell' and 'who' packets to other MUDs.
MXP Tag Rendering
optionalTest that MUD eXtension Protocol tags for links and fonts are correctly parsed and not displayed as raw text to players.
Websocket Gateway Check
optionalIf using a web client, verify the websocket-to-telnet gateway handles character encoding (UTF-8) correctly.
Performance and Stability
0/5MAX_EVAL_COST Limits
criticalSet a strict evaluation cost limit in the driver to kill infinite LPC loops before they hang the entire process.
Large Mapping/Array Audit
recommendedScan for objects storing excessively large mappings that could cause memory spikes during serialization.
Reclaim_objects Routine
recommendedSchedule a periodic call to reclaim_objects() to clear out references to destructed objects and free memory.
Inbound Connection Throttling
recommendedImplement a connection limit in the master object to prevent basic Denial of Service (DoS) attacks via rapid login attempts.
Profiling and Statistics
optionalEnable the 'opcprof' or equivalent profiling tool to identify which LPC functions are consuming the most CPU time.
Development and Admin Tools
0/5Update Command Inheritance Test
criticalVerify the 'update' command correctly reloads inherited files so that changes propagate to child objects.
Runtime Error Logger
criticalConfirm that LPC runtime errors are written to a file accessible to developers for real-time debugging.
Destruct and Clean_up Testing
recommendedVerify that the clean_up() function in rooms correctly removes idle objects to maintain a low object count.
Admin 'Who' and Stealth Modes
recommendedTest that admin invisibility and stealth settings correctly hide the user from player-side lists and room entries.
Command Path Resolution
recommendedEnsure the 'bin' daemon correctly finds and caches commands in the user's path (e.g., /cmds/std, /cmds/wiz).