100 MUSH / MUX resources for MUD players
This guide provides a technical roadmap for MUSH/MUX developers and administrators, focusing on engine selection, softcode architecture, and the implementation of narrative systems essential for roleplay-centric environments.

Engine Selection and Server Infrastructure
- 1
PennMUSH Source Repository
intermediatehighThe primary repository for PennMUSH. Use this for the most feature-rich engine with built-in JSON support and extensive function libraries.
- 2
TinyMUX 2.12 Source
intermediatestandardOptimized for performance and stability. Best for high-concurrency games that require a lean memory footprint and traditional MUX flavor.
- 3
RhostMUSH Engine
advancedhighA highly configurable engine that offers advanced security features and compatibility layers for both PennMUSH and TinyMUX softcode.
- 4
Stunnel for SSL/TLS
intermediatehighEssential for modernizing MUSH connections. Use Stunnel to wrap the telnet port in SSL, allowing clients like Mudlet to connect securely.
- 5
SQL Integration (PennMUSH)
advancedhighConfigure the mush.cnf to link with MySQL/MariaDB. This allows softcode to query external databases for web-to-game synchronization.
- 6
Flatfile Database Backups
beginnerstandardImplement a cron job to trigger '@dump' and move the resulting flatfile to off-site storage to prevent data loss from server failure.
- 7
Hardcode vs Softcode Analysis
advancedmediumDetermine if a feature (like a custom combat parser) should be a C-level 'hcode' module or a softcode system based on performance needs.
- 8
Port Mapping and Firewalls
beginnerstandardStandardize on port 4201 or 6666; ensure iptables or ufw allow both the game port and the HTTP port for web-based help files.
- 9
Unicode/UTF-8 Support
intermediatemediumEnable UTF-8 in the engine configuration to allow players to use extended character sets for foreign languages or decorative symbols.
- 10
NetMUSH 3.0 Compatibility
advancedstandardWhen porting legacy systems, use the compatibility flags in RhostMUSH to support older NetMUSH-style function syntax.
Softcode Development and System Patterns
- 1
Global Command Objects
beginnerhighDesignate a 'Master Room' (typically #2) to hold objects with 'COMMAND' flags, ensuring global availability of +help or +who.
- 2
The u() and z() Functions
intermediatehighUse u() for calling code on attributes and z() for executing code on remote objects to keep logic modular and reusable.
- 3
Iterative List Processing
intermediatestandardMaster iter(), map(), and filter() for handling space-delimited lists, which are the primary data structure in softcode.
- 4
Switch/Case Command Parsers
beginnermediumUse the switch() function within a command attribute to handle multiple arguments and sub-commands efficiently.
- 5
Setq/Getq Registers
intermediatehighUtilize the 10-30 available registers (q0-q9, qa-qz) to store temporary variables during complex calculations to reduce db lookups.
- 6
Object Inheritance (Parenting)
beginnerhighUse @parent to create archetypes (like a generic 'weapon' object) and inherit attributes to child objects for easier mass updates.
- 7
Attribute Trees
intermediatemediumOrganize data using backtick notation (e.g., STATS`STRENGTH) to create clean, searchable namespaces on character objects.
- 8
Regular Expression Matching
advancedmediumApply regmatch() and grep() for advanced string parsing in user input, essential for complex chargen or combat logs.
- 9
Softcode Security Flags
advancedhighApply the WIZARD, TRUST, or INHERIT flags carefully to objects to prevent unauthorized execution of restricted functions.
- 10
Side-Effect Functions
intermediatestandardUnderstand the difference between functions that return strings and side-effect functions (like create() or set()) that modify the DB.
Social and Narrative Systems
- 1
Chargen Frameworks
intermediatehighBuild a multi-room character generation sequence using 'AENTER' attributes to guide players through stat allocation and bio entry.
- 2
Plus-BBS (Bulletin Boards)
intermediatestandardImplement a global +bbs system for out-of-character announcements and in-character news, using object-based storage for posts.
- 3
Scene Management (+scene)
advancedhighCreate a tool for logging roleplay sessions, allowing players to start/stop scenes and automatically save the output to a web archive.
- 4
Consent and Privacy Flags
beginnermediumDevelop a system for players to set 'RP Preferences' (e.g., +consent/combat) to ensure safe and collaborative storytelling.
- 5
Dynamic Room Descriptions
beginnerstandardUse the @desc attribute with embedded functions to change room descriptions based on time of day or current weather variables.
- 6
IC/OOC Channel Separation
beginnerstandardConfigure the built-in 'comsys' to separate narrative channels from technical support or social chatter channels.
- 7
Currency and Economy Trackers
intermediatemediumBuild a 'Wallet' object parented to characters that tracks balance and allows for +pay and +buy commands via softcode.
- 8
Virtual Room Parenting
beginnermediumUse a single 'Parent Room' for all grid locations to provide uniform 'look' commands and global exits to a central hub.
- 9
Automated +finger Overrides
intermediatestandardCustomize the +finger command to display IC stats, faction membership, and last-seen timestamps via a global command object.
- 10
Grid Mapping Tools
advancedmediumImplement a +map command that uses the loc() function to determine player coordinates and display an ASCII representation of the area.