Checklists

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.

MUSHclient checklist for MUDs illustration
Placeholder illustration shown while custom artwork is being produced.
Progress0 / 30 complete (0%)

Environment and Compatibility

0/5
  • Verify Directory Permissions

    critical

    Ensure 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

    recommended

    If 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

    recommended

    Confirm 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

    critical

    Test 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

    optional

    Enable 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/5
  • Lua Version Verification

    critical

    Ensure 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

    recommended

    Verify 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

    critical

    Implement 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

    recommended

    Explicitly set 'package.path' at the start of the global script to include the /scripts or /modules directory for reliable library loading.

  • Variable Persistence Check

    critical

    Verify that critical script state is stored using 'SetVariable' and 'GetVariable' so data persists across client restarts and world reloads.

Plugin Management

0/5
  • Unique Plugin ID Assignment

    critical

    Ensure every custom plugin has a unique 24-character hexadecimal ID to prevent internal conflicts within the MUSHclient plugin engine.

  • OnPluginInstall Callback Logic

    recommended

    Verify that 'OnPluginInstall' correctly initializes miniwindows, variables, and timers when the plugin is first loaded or reloaded.

  • Plugin Dependency Mapping

    recommended

    Document and check for the presence of required plugins using 'IsPluginInstalled' before attempting to call their exported functions.

  • XML Character Encoding

    critical

    Confirm that the .xml plugin file is saved with UTF-8 encoding without BOM to prevent parsing errors on load.

  • Resource Cleanup on Uninstall

    recommended

    Implement 'OnPluginClose' to delete miniwindows and stop timers to prevent memory leaks and orphaned UI elements.

Trigger and Alias Optimization

0/5
  • Regular Expression Efficiency

    critical

    Review all triggers for catastrophic backtracking risks; use anchors (^ and $) where possible to limit the search space per line.

  • Trigger Sequence Ordering

    recommended

    Organize 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

    critical

    Verify that aliases do not call themselves or each other in an infinite loop; set maximum recursion limits if necessary.

  • Multi-line Trigger Verification

    recommended

    Test multi-line triggers against varied network lag scenarios to ensure they correctly capture data across packet fragments.

  • OmitFromLog Flagging

    optional

    Apply 'OmitFromLog' to high-frequency triggers (like prompt updates) to keep log files clean and reduce disk I/O.

User Interface and Miniwindows

0/5
  • Miniwindow Redraw Throttling

    critical

    Ensure 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

    recommended

    Assign explicit Z-order values to all miniwindows to ensure critical UI elements (like health bars) are not obscured by background elements.

  • Mouse Hotspot Cleanup

    recommended

    Verify that 'WindowDeleteHotspot' is called before creating new hotspots to prevent the hotspot table from bloating over time.

  • Text Wrapping Logic

    recommended

    Confirm that custom chat windows or status panes correctly handle word-wrapping for long strings to prevent text truncation.

  • Font Fallback Validation

    optional

    Verify 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/5
  • TCP Keepalive Activation

    critical

    Enable TCP keepalives in the world configuration to prevent firewalls from dropping idle connections during periods of inactivity.

  • MCCP Compression Verification

    recommended

    Ensure Mud Client Compression Protocol (MCCP) is enabled to reduce bandwidth usage, especially for users on limited or high-latency connections.

  • Character Encoding Match

    critical

    Verify 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

    recommended

    Confirm the command stack size and input buffer are large enough to handle complex macros or pasted script blocks without truncation.

  • SOCKS/Proxy Configuration

    optional

    Test connectivity through a proxy if required by the deployment environment to ensure the client respects system-level network rules.