100 SMAUG resources for MUD players
SMAUG (Simulated Medieval Adventure Urban Game) is a highly evolved Merc/Diku derivative known for its complex internal systems like clans, councils, and a robust Online Language Construction (OLC) suite. This resource focuses on the technical nuances of deploying SmaugFUSS—the maintained version of the codebase—on modern Linux environments and managing its extensive built-in feature set.

Modern Linux Compilation and Environment Setup
- 1
SmaugFUSS 1.9 Repository
beginnerhighThe primary maintained fork of SMAUG 1.8. This version includes critical fixes for modern GCC compilers and 64-bit architecture compatibility.
- 2
LCRYPT Linking Requirement
intermediatestandardModern Linux distributions require explicitly linking the crypt library. Ensure your Makefile includes -lcrypt in the L_FLAGS variable to avoid undefined reference errors during the build.
- 3
GCC Warning Suppression Flags
intermediatestandardTo handle legacy C syntax in SMAUG, add -Wno-format-overflow and -Wno-unused-result to the Makefile C_FLAGS to reduce build noise and prevent build failure on strict environments.
- 4
Startup Script Permissions
beginnermediumEnsure the 'startup' and 'diststartup' bash scripts are set to chmod 755. These scripts handle the auto-reboot loop and log rotation essential for production stability.
- 5
Directory Structure Validation
beginnerstandardSMAUG requires specific subdirectories in /dist/ (e.g., clans, councils, deities, boards, players) or it will fail to boot. Use 'mkdir -p' for all directories listed in the README.
- 6
System.dat Initialization
intermediatehighOn first boot, use the 'set' command on the console or an admin character to configure the system.dat file, which stores global MUD variables like the max level and experience rates.
- 7
Port Binding Configuration
beginnerstandardChange the default port in the startup script rather than hardcoding it in the source. This allows for easier testing environments on the same machine.
- 8
Area.lst Management
beginnermediumThe area.lst file in the /area/ directory controls the load order. Ensure a newline exists at the end of the file or the final area in the list will fail to load.
- 9
Memory Leak Detection with Valgrind
advancedhighRun the binary through Valgrind to identify leaks in custom code, specifically targeting the 'fread_string' function which is a common source of heap issues in SMAUG.
- 10
Hotboot Implementation
intermediatehighSMAUG supports hotbooting (copyover). Ensure the EXE path in the code matches your actual binary location to allow code updates without disconnecting players.
Political and Social System Management
- 1
Makeclan Command
beginnermediumUse 'makeclan [name]' to create a new clan. This generates a .clan file in the /clans/ directory; manual editing of these files is required for setting specific hall vnums.
- 2
Council Configuration
intermediatestandardCouncils are for administrative groups. Use 'makecouncil' to create bodies that can vote on player-submitted changes or manage specific game aspects.
- 3
Deity and Favor System
intermediatemediumConfigure deities using 'makedp'. Each deity requires specific 'favor' requirements (e.g., killing certain mobs) to grant unique spells or skills to followers.
- 4
Clan Bank Variables
advancedstandardModify the 'clan_data' struct in mud.h to add banking variables if you want to track clan wealth beyond the stock 'gold' field.
- 5
Induct and Outcast Logic
intermediatemediumThe 'do_induct' and 'do_outcast' functions in clan.c handle membership. Customize these to add level requirements or race/class restrictions for specific clans.
- 6
Clan Hall Room Vnums
beginnerstandardSet the 'board' and 'recall' vnums in the .clan file to ensure members return to their specific headquarters upon death or using the recall command.
- 7
Nation System Setup
intermediatemediumSMAUG includes a 'nation' system for racial groupings. Use 'makenation' to create racial alliances that affect how NPCs react to different player races.
- 8
Order and Chaos Alignment
beginnerstandardThe 'order' field in clan files determines if a clan is lawful or chaotic, affecting their ability to ally with other clans and their NPC guards' behavior.
- 9
Clan Salary Implementation
advancedmediumBy default, clans do not have salaries. This requires a modification to the 'gain_exp' or 'update_handler' to distribute gold from the clan treasury to members.
- 10
The 'War' Command
beginnerhighThe 'war' command toggles clan PK status. Ensure 'perm_pk' is set in the system variables if you intend for a full-time player-kill environment.
Online Language Construction (OLC) and Area Building
- 1
Medit (Mob Editor)
beginnerhighThe primary tool for NPC creation. Use 'medit [vnum]' to modify stats, flags, and programs. Always save using 'foldarea' after edits.
- 2
Oedit (Object Editor)
beginnerhighUsed for item creation. Pay close attention to 'value' fields, which vary based on item type (e.g., Value0 for a weapon is the condition, Value3 is the damage type).
- 3
Redit (Room Editor)
beginnerhighUsed for environment construction. Use 'redit flags' to set room properties like 'dark', 'no_recall', or 'private'.
- 4
MobProg Scripting
intermediatehighSMAUG uses a trigger-based scripting system. Use 'mpedit [vnum]' to add scripts that fire on events like 'greet_prog', 'death_prog', or 'speech_prog'.
- 5
Vnum Range Allocation
beginnerstandardUse the 'vassign' command to allocate a block of vnums to a builder. This prevents different areas from overlapping and causing data corruption.
- 6
Foldarea Command
beginnerhighCritical command to save changes from memory to the .are files. Using 'foldarea [filename]' saves a specific area; 'foldarea all' saves everything.
- 7
Reset Command Syntax
intermediatemediumSMAUG's reset system controls how mobs and items respawn. Use 'reset [room_vnum]' to view current resets and 'reset add' to place new entities.
- 8
Instazone Logic
intermediatestandardSMAUG allows for 'instazones' where resets happen when the first player enters an empty area. Configure this in the area header via OLC.
- 9
Findobj and Findmob
beginnerstandardEssential diagnostic tools to find where specific items or NPCs are located across the entire world map.
- 10
Area Verification (Loadup)
intermediatemediumWhen booting, watch the logs for 'Fix_exits' errors. This indicates broken links between rooms that must be corrected via redit.