Resources

100 Mudlet resources for MUD players

Mudlet is a cross-platform, high-performance MUD client leveraging Lua for automation and the Qt framework for UI development. Unlike legacy clients, Mudlet prioritizes script-based logic over simple command substitution, allowing for complex automapping, dynamic UI elements via the Geyser framework, and event-driven responses to server-side GMCP (Generic Mud Communication Protocol) data.

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

Core Scripting and API Fundamentals

  1. 1

    tempTimer(seconds, code)

    beginnerhigh

    Executes Lua code after a specific delay. Use this for staggered spell casting or delayed status checks to avoid server-side spam filters.

  2. 2

    tempTrigger(pattern, code)

    intermediatestandard

    Creates a one-time trigger that expires after firing. Essential for handling transient server responses like 'The door opens.' without bloating the permanent trigger list.

  3. 3

    cecho(window, text)

    beginnerstandard

    Outputs colorized text to a specific console or miniwindow using the '<color_name>' tag format. Used for creating custom combat logs or status alerts.

  4. 4

    expandAlias(command)

    beginnermedium

    Programmatically triggers an existing alias. Useful for nesting complex logic where multiple alias-based macros need to be executed in sequence.

  5. 5

    send(command, false)

    beginnerstandard

    Sends a command to the MUD. The boolean 'false' parameter prevents the command from being displayed in the main buffer, keeping the UI clean during background automation.

  6. 6

    matches[n] Table

    beginnerhigh

    Accesses regex capture groups within a trigger. matches[1] is the full string, while matches[2] and onwards contain specific variables captured via (.*) or (\d+).

  7. 7

    scripts Node Management

    intermediatehigh

    Organize logic into the 'Scripts' section rather than inside triggers or aliases. This allows for global function definitions and persistent table storage across sessions.

  8. 8

    disableTrigger / enableTrigger

    beginnermedium

    Toggles trigger groups based on game state. For example, disable 'Auto-Loot' triggers when inventory is full to prevent error loops.

  9. 9

    raiseEvent(eventName, args)

    advancedhigh

    Dispatches custom events that other scripts can listen for. This decouples modules, allowing a 'Combat' script to notify a 'UI' script without direct function calls.

  10. 10

    display(variable)

    beginnerstandard

    A debugging tool that prints the contents of a Lua table or variable to the console in a readable format. Essential for troubleshooting GMCP data structures.

Geyser UI Framework and Layouts

  1. 1

    Geyser.Gauge

    intermediatehigh

    Creates visual bars for HP, Mana, or Stamina. Link these to GMCP vitals for real-time visual feedback that bypasses text parsing.

  2. 2

    Geyser.Label

    intermediatestandard

    Creates static or dynamic text boxes. Use labels for custom 'Target' displays or to show the current room name and exits prominently.

  3. 3

    Geyser.Container

    intermediatemedium

    A logical grouping for UI elements. Placing labels or gauges in a container allows for moving or resizing entire UI blocks simultaneously.

  4. 4

    setLabelClickCallback

    intermediatemedium

    Attaches a Lua function to a label click event. Use this to create clickable 'Hotbars' for spells or common navigation directions.

  5. 5

    Geyser.HBox / Geyser.VBox

    advancedstandard

    Auto-arranging containers that align elements horizontally or vertically. Prevents UI overlap when adding new gauges or buttons.

  6. 6

    setMiniwindowSize

    intermediatestandard

    Dynamically resizes a window. Useful for 'pop-out' maps or chat buffers that expand when hovered or clicked.

  7. 7

    echoLink

    beginnermedium

    Inserts clickable text into the main buffer. Format: echoLink(window, text, code, hint). Useful for 'Click to Loot' or 'Click to Identify' prompts.

  8. 8

    setBackgroundColor

    beginnerstandard

    Changes the background color of UI elements. Use this to flash a label red when health is low or green when a buff is active.

  9. 9

    openUserWindow

    intermediatemedium

    Creates a separate floating window outside the main Mudlet interface, ideal for multi-monitor setups or dedicated chat logging.

  10. 10

    setWindowWrap

    beginnerstandard

    Configures text wrapping for miniwindows. Ensures long chat messages or combat logs don't scroll horizontally off the screen.

Mapping and GMCP Integration

  1. 1

    gmcp.Char.Vitals

    intermediatehigh

    The standard GMCP path for player stats. Accessing gmcp.Char.Vitals.hp directly is faster and more reliable than parsing 'HP: 100/100' via regex triggers.

  2. 2

    centerview(roomID)

    beginnerhigh

    Forces the Mudlet visual mapper to focus on a specific room ID. Essential for keeping the map synced with player movement.

  3. 3

    getPath(fromID, toID)

    advancedhigh

    Calculates the shortest path between two rooms using A*. The returned table can be fed into a speedwalk function for automated travel.

  4. 4

    addRoom(roomID)

    advancedmedium

    Creates a new room in the mapper database. Use this in conjunction with gmcp.Room.Info to build a map automatically as you explore.

  5. 5

    setRoomUserData(roomID, key, value)

    intermediatemedium

    Attaches custom metadata to a room. Store info like 'shop_type', 'trainer_level', or 'mob_spawn_rate' for later search and retrieval.

  6. 6

    registerAnonymousEventHandler

    advancedhigh

    Listens for specific server events like 'gmcp.Room.Info'. This is the preferred way to trigger map updates without using text-based triggers.

  7. 7

    mmp.customwalk

    advancedmedium

    A hook to override the mapper's default movement commands. Use this to handle special exits like 'climb tree' or 'enter portal'.

  8. 8

    getRoomIDbyName(name)

    intermediatestandard

    Searches the mapper database for a room name. Useful for 'Go To' aliases where the user types the destination name instead of an ID.

  9. 9

    speedwalk(path, delay)

    beginnerstandard

    Executes a sequence of directions. Use a small delay (e.g., 0.5s) to prevent being kicked for flooding the server with commands.

  10. 10

    gmcp.Room.Info.exits

    intermediatemedium

    A table of available exits for the current room. Use this to auto-populate a compass UI or to validate movement attempts.