Resources

100 MOO resources for MUD players

MOO (MUD Object Oriented) systems provide a persistent, programmable environment for virtual world development. This resource guide focuses on the technical infrastructure, core databases, and programming patterns required to deploy and maintain a modern MOO server using the LambdaMOO lineage and its contemporary forks.

100 MOO resources for MUD players illustration
Placeholder illustration shown while custom artwork is being produced.

Server Software and Modern Implementations

  1. 1

    ToastStunt Server Fork

    intermediatehigh

    The current standard for high-performance MOO servers. It provides 64-bit support, improved networking, and built-in SQLite integration.

  2. 2

    LambdaMOO 1.8.1 Release

    beginnerstandard

    The classic server source code. While dated, it serves as the baseline for understanding the MOO VM and bytecode execution.

  3. 3

    Stunt Server

    intermediatemedium

    An intermediate fork that introduced many of the features now found in ToastStunt, useful for legacy compatibility with older databases.

  4. 4

    Dockerized LambdaMOO

    intermediatehigh

    Containerized deployment configurations for running MOO servers on modern cloud infrastructure like AWS or DigitalOcean.

  5. 5

    MOO-JSON Support

    advancedhigh

    A patch for ToastStunt that allows native parsing and generation of JSON, enabling API integrations with external web services.

  6. 6

    SQLite for MOO

    advancedmedium

    Implementation details for using the ToastStunt SQLite built-in functions to handle large datasets outside the standard object hierarchy.

  7. 7

    WAIF Support

    advancedhigh

    Lightweight objects that do not consume object numbers. Essential for high-density data structures like inventory items or map tiles.

  8. 8

    TLS/SSL Encryption Patches

    intermediatemedium

    Instructions for implementing secure connections via OpenSSL within the server layer to protect user credentials.

  9. 9

    Binary String Handling

    advancedstandard

    Documentation on using binary strings to handle non-textual data, necessary for custom protocol implementations.

  10. 10

    Task Scheduling and Preemption

    intermediatestandard

    Configuration of the server's task limits to prevent infinite loops from crashing the driver during verb execution.

Core Databases and Frameworks

  1. 1

    LambdaCore

    beginnerhigh

    The foundational database containing the absolute minimum objects (#0 through #90) required to boot a functional MOO environment.

  2. 2

    JHCore (Jay's House Core)

    intermediatehigh

    A more feature-rich core that includes advanced building tools, a robust mail system, and improved security defaults.

  3. 3

    EnCore (Educational MOO Core)

    beginnermedium

    Specifically designed for virtual classrooms, featuring web-interface hooks and collaborative editing tools.

  4. 4

    The MOO Programmer's Reference Manual

    beginnerhigh

    The definitive guide to the MOO language syntax, built-in functions, and the standard object hierarchy.

  5. 5

    Object #0 (The System Object)

    advancedhigh

    The root of the MOO hierarchy; understanding its 'do_login_command' and 'do_command' verbs is critical for server security.

  6. 6

    The Generic Room (#3)

    beginnerstandard

    The parent object for all spatial locations. Learn to extend its 'announce' and 'look_self' verbs for custom environments.

  7. 7

    The Generic Player (#6)

    beginnerstandard

    The template for all user accounts. Customizing the 'tell' verb is necessary for implementing custom UI or logging.

  8. 8

    Feature Objects (FUP)

    intermediatemedium

    A design pattern for adding commands to players without polluting the inheritance tree, using the 'features' property.

  9. 9

    @dump and Database Portability

    intermediatestandard

    Techniques for exporting specific object trees and verbs into text files for version control or migration between servers.

  10. 10

    Quota Management Systems

    intermediatemedium

    Implementation of the $quota_utils object to restrict the number of objects and bytes a user can create.

Programming and Development Tools

  1. 1

    MCP (MUD Client Protocol)

    advancedhigh

    A protocol for structured communication between the MOO and clients like Mudlet, allowing for GUI elements and file transfers.

  2. 2

    Mudlet MOO-Specific Profiles

    intermediatehigh

    Pre-configured Lua scripts for Mudlet that handle MOO-specific ANSI sequences and local editing prompts.

  3. 3

    Local Editing with @edit

    beginnerhigh

    Configuring the MOO to send verb code to a local text editor (VS Code/Vim) via the client rather than using the in-game editor.

  4. 4

    MOO-Vim Syntax Highlighting

    beginnerstandard

    Vim configuration files providing syntax highlighting for the .moo file format and verb code blocks.

  5. 5

    The 'fork' and 'suspend' Keywords

    intermediatehigh

    Critical syntax for managing non-blocking operations and background tasks in the MOO's single-threaded environment.

  6. 6

    Verbs vs. Properties

    beginnerstandard

    The architectural distinction between executable code (verbs) and data storage (properties) and when to use each.

  7. 7

    E_PERM and Permissions Handling

    advancedhigh

    Understanding the 'caller', 'player', and 'this' variables to prevent unauthorized verb execution and data leaks.

  8. 8

    The $network Utilities

    advancedmedium

    Core objects for handling outbound connections to HTTP servers or other MOOs using 'open_network_connection'.

  9. 9

    Built-in Function (bfun) Overriding

    advancedmedium

    Techniques for wrapping standard functions like 'move()' or 'create()' with custom logic at the database level.

  10. 10

    Tick and Seconds Limits

    intermediatestandard

    Monitoring 'ticks_left()' and 'seconds_left()' to optimize complex algorithms and avoid 'Task ran out of ticks' errors.