MUSHclient checklist for MUDs
This production-readiness checklist ensures that your MUSHclient environment and custom Lua plugins are optimized for stability, performance, and long-term maintainability.

Environment and Compatibility
0/5Verify Directory Permissions
criticalEnsure MUSHclient is installed in a directory where the user has write access (e.g., C:\MUSHclient) to prevent failures when saving world files or variables, especially on modern Windows versions.
Wine Compatibility Check
recommendedIf running on Linux or macOS, verify that the 'mfc42.dll' and 'msvcrt.dll' overrides are correctly configured in Wine to prevent UI crashes.
ANSI Color Palette Standardization
recommendedConfirm that the world's 16 standard ANSI colors are mapped correctly to match the MUD's expected theme to ensure UI readability.
Font Scaling and DPI Settings
criticalTest the output window font at high DPI settings and ensure fixed-width fonts (like Consolas or Lucida Console) are used to maintain ASCII map alignment.
Log File Rotation Configuration
optionalEnable automatic logging and configure a file naming convention (e.g., %Y-%m-%d.log) to prevent single log files from growing to unmanageable sizes.
Lua Scripting Architecture
0/5Lua Version Verification
criticalEnsure all scripts are compatible with Lua 5.1, as this is the version embedded in MUSHclient, avoiding 5.2+ syntax like 'goto' or changed libraries.
Global Script File Isolation
recommendedVerify that world-specific logic is stored in an external .lua file rather than embedded in the .mcl file to facilitate version control and external editing.
Error Handler Implementation
criticalImplement a custom error handler using 'pcall' or 'xpcall' in critical script blocks to prevent the client from silently failing during combat or automated tasks.
Package Path Configuration
recommendedExplicitly set 'package.path' at the start of the global script to include the /scripts or /modules directory for reliable library loading.
Variable Persistence Check
criticalVerify that critical script state is stored using 'SetVariable' and 'GetVariable' so data persists across client restarts and world reloads.
Plugin Management
0/5Unique Plugin ID Assignment
criticalEnsure every custom plugin has a unique 24-character hexadecimal ID to prevent internal conflicts within the MUSHclient plugin engine.
OnPluginInstall Callback Logic
recommendedVerify that 'OnPluginInstall' correctly initializes miniwindows, variables, and timers when the plugin is first loaded or reloaded.
Plugin Dependency Mapping
recommendedDocument and check for the presence of required plugins using 'IsPluginInstalled' before attempting to call their exported functions.
XML Character Encoding
criticalConfirm that the .xml plugin file is saved with UTF-8 encoding without BOM to prevent parsing errors on load.
Resource Cleanup on Uninstall
recommendedImplement 'OnPluginClose' to delete miniwindows and stop timers to prevent memory leaks and orphaned UI elements.
Trigger and Alias Optimization
0/5Regular Expression Efficiency
criticalReview all triggers for catastrophic backtracking risks; use anchors (^ and $) where possible to limit the search space per line.
Trigger Sequence Ordering
recommendedOrganize triggers by frequency of occurrence and use 'match_attempted' or 'omit_from_output' flags to reduce processing overhead on high-traffic lines.
Recursive Alias Prevention
criticalVerify that aliases do not call themselves or each other in an infinite loop; set maximum recursion limits if necessary.
Multi-line Trigger Verification
recommendedTest multi-line triggers against varied network lag scenarios to ensure they correctly capture data across packet fragments.
OmitFromLog Flagging
optionalApply 'OmitFromLog' to high-frequency triggers (like prompt updates) to keep log files clean and reduce disk I/O.
User Interface and Miniwindows
0/5Miniwindow Redraw Throttling
criticalEnsure miniwindow redraw functions are throttled using a timer or only fire when data changes to prevent UI flickering and high CPU usage.
Z-Order Layer Management
recommendedAssign explicit Z-order values to all miniwindows to ensure critical UI elements (like health bars) are not obscured by background elements.
Mouse Hotspot Cleanup
recommendedVerify that 'WindowDeleteHotspot' is called before creating new hotspots to prevent the hotspot table from bloating over time.
Text Wrapping Logic
recommendedConfirm that custom chat windows or status panes correctly handle word-wrapping for long strings to prevent text truncation.
Font Fallback Validation
optionalVerify that the plugin checks for the existence of required fonts using 'WindowFontInfo' and falls back to 'Arial' or 'Courier' if missing.
Network and Connectivity
0/5TCP Keepalive Activation
criticalEnable TCP keepalives in the world configuration to prevent firewalls from dropping idle connections during periods of inactivity.
MCCP Compression Verification
recommendedEnsure Mud Client Compression Protocol (MCCP) is enabled to reduce bandwidth usage, especially for users on limited or high-latency connections.
Character Encoding Match
criticalVerify that the world encoding (e.g., UTF-8 or ISO-8859-1) matches the MUD server's output to prevent garbled extended ASCII characters.
Input Buffer Size Check
recommendedConfirm the command stack size and input buffer are large enough to handle complex macros or pasted script blocks without truncation.
SOCKS/Proxy Configuration
optionalTest connectivity through a proxy if required by the deployment environment to ensure the client respects system-level network rules.