Checklists

SMAUG checklist for MUDs

This checklist outlines the technical requirements for moving a SMAUG or SmaugFUSS codebase from a local development environment to a live production server. It focuses on compatibility with modern C compilers, file system integrity, and stock system security.

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

Environment and Compilation

0/5
  • GCC Compatibility Flags

    critical

    Verify the Makefile includes -fcommon if using GCC 10+ to prevent multiple definition errors during linking.

  • Crypt Library Linkage

    critical

    Ensure -lcrypt is present in the linker flags and that the production server has the libcrypt-dev headers installed.

  • Directory Structure Validation

    critical

    Confirm that all subdirectories (area, player, clans, councils, deities, boards, system) exist and are writeable by the MUD process user.

  • Binary Stripping

    optional

    Run 'strip smaug' after compilation to reduce binary size, provided a debug build is not required for core dump analysis.

  • Startup Script Verification

    recommended

    Test the 'startup' shell script to ensure it correctly handles log rotation and automatic restarts upon crash.

Data Integrity and Area Files

0/5
  • VNUM Range Audit

    critical

    Run a global check to ensure no loaded areas have overlapping VNUM ranges in their .are files.

  • Limbo Area Verification

    critical

    Confirm that limbo.are is loaded and that essential objects like VNUM 2 (coin) and VNUM 3 (corpse) are present and functional.

  • Prototype Reset Check

    recommended

    Scan all area files for 'P' (Prototype) flags on mobs and objects to ensure players cannot interact with unfinished assets.

  • Hardcoded Path Audit

    critical

    Grep the source code for absolute file paths (e.g., /home/user/smaug/...) and replace them with relative paths or mud.h defines.

  • Area Load Order

    recommended

    Verify area.lst contains all intended areas and that there are no trailing blank lines which can cause load-time hangs.

Security and Permissions

0/5
  • Stock Immortal Account Reset

    critical

    Delete or change passwords for all stock implementor characters (e.g., Thoric, Circe) inherited from the base distribution.

  • Command Table Audit

    critical

    Review the 'trust' level required for commands like 'shutdown', 'reboot', and 'force' in the command table initialization.

  • OLC Permission Lockdown

    recommended

    Verify that 'vassign' ranges are correctly set for all builders to prevent unauthorized modification of core game areas.

  • Shell Command Restriction

    critical

    Ensure the 'sh' or 'system' call command is disabled or restricted to level 65 (Implementor) to prevent shell injection.

  • Pfile Encryption Check

    critical

    Verify that player file passwords are being hashed using crypt() rather than stored in plaintext.

Systems Configuration

0/5
  • Clan and Council Initialization

    recommended

    Verify that the 'clans.dat' and 'councils.dat' files load without errors and that stock clan halls have valid VNUM destinations.

  • Deity System Validation

    optional

    Confirm all deities in 'deities.dat' have valid favor requirements and that 'devote' functions as intended.

  • Class and Race Balance Load

    recommended

    Check that all .class and .race files in the system directory are readable and that base stats align with the intended difficulty curve.

  • Board System Cleanup

    optional

    Clear all stock developer notes from the 'boards' directory to provide a clean slate for the player base.

  • Weather and Time Sync

    optional

    Check system.dat to ensure the starting time and weather patterns are initialized correctly for the world map.

Network and Logging

0/5
  • Port Configuration

    critical

    Verify the MUD is listening on the intended public port (default 4000) and that the firewall allows incoming TCP traffic.

  • DNS Resolution Toggle

    recommended

    Decide whether to enable DNS lookups in mud.h; disable if the server experiences lag during player login attempts.

  • Log File Rotation

    recommended

    Configure a cron job or external script to archive the 'log' directory to prevent disk space exhaustion.

  • Max Players Limit

    recommended

    Check the MAX_PLAYERS define or system.dat setting to ensure it matches the server's RAM and CPU capacity.

  • Hotboot Functionality

    recommended

    Test the 'hotboot' command to ensure the MUD can update code without disconnecting current players.