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.

Core Scripting and API Fundamentals
- 1
tempTimer(seconds, code)
beginnerhighExecutes Lua code after a specific delay. Use this for staggered spell casting or delayed status checks to avoid server-side spam filters.
- 2
tempTrigger(pattern, code)
intermediatestandardCreates 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
cecho(window, text)
beginnerstandardOutputs colorized text to a specific console or miniwindow using the '<color_name>' tag format. Used for creating custom combat logs or status alerts.
- 4
expandAlias(command)
beginnermediumProgrammatically triggers an existing alias. Useful for nesting complex logic where multiple alias-based macros need to be executed in sequence.
- 5
send(command, false)
beginnerstandardSends 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
matches[n] Table
beginnerhighAccesses 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
scripts Node Management
intermediatehighOrganize logic into the 'Scripts' section rather than inside triggers or aliases. This allows for global function definitions and persistent table storage across sessions.
- 8
disableTrigger / enableTrigger
beginnermediumToggles trigger groups based on game state. For example, disable 'Auto-Loot' triggers when inventory is full to prevent error loops.
- 9
raiseEvent(eventName, args)
advancedhighDispatches 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
display(variable)
beginnerstandardA 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
Geyser.Gauge
intermediatehighCreates visual bars for HP, Mana, or Stamina. Link these to GMCP vitals for real-time visual feedback that bypasses text parsing.
- 2
Geyser.Label
intermediatestandardCreates static or dynamic text boxes. Use labels for custom 'Target' displays or to show the current room name and exits prominently.
- 3
Geyser.Container
intermediatemediumA logical grouping for UI elements. Placing labels or gauges in a container allows for moving or resizing entire UI blocks simultaneously.
- 4
setLabelClickCallback
intermediatemediumAttaches a Lua function to a label click event. Use this to create clickable 'Hotbars' for spells or common navigation directions.
- 5
Geyser.HBox / Geyser.VBox
advancedstandardAuto-arranging containers that align elements horizontally or vertically. Prevents UI overlap when adding new gauges or buttons.
- 6
setMiniwindowSize
intermediatestandardDynamically resizes a window. Useful for 'pop-out' maps or chat buffers that expand when hovered or clicked.
- 7
echoLink
beginnermediumInserts clickable text into the main buffer. Format: echoLink(window, text, code, hint). Useful for 'Click to Loot' or 'Click to Identify' prompts.
- 8
setBackgroundColor
beginnerstandardChanges 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
openUserWindow
intermediatemediumCreates a separate floating window outside the main Mudlet interface, ideal for multi-monitor setups or dedicated chat logging.
- 10
setWindowWrap
beginnerstandardConfigures text wrapping for miniwindows. Ensures long chat messages or combat logs don't scroll horizontally off the screen.
Mapping and GMCP Integration
- 1
gmcp.Char.Vitals
intermediatehighThe 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
centerview(roomID)
beginnerhighForces the Mudlet visual mapper to focus on a specific room ID. Essential for keeping the map synced with player movement.
- 3
getPath(fromID, toID)
advancedhighCalculates the shortest path between two rooms using A*. The returned table can be fed into a speedwalk function for automated travel.
- 4
addRoom(roomID)
advancedmediumCreates a new room in the mapper database. Use this in conjunction with gmcp.Room.Info to build a map automatically as you explore.
- 5
setRoomUserData(roomID, key, value)
intermediatemediumAttaches custom metadata to a room. Store info like 'shop_type', 'trainer_level', or 'mob_spawn_rate' for later search and retrieval.
- 6
registerAnonymousEventHandler
advancedhighListens for specific server events like 'gmcp.Room.Info'. This is the preferred way to trigger map updates without using text-based triggers.
- 7
mmp.customwalk
advancedmediumA hook to override the mapper's default movement commands. Use this to handle special exits like 'climb tree' or 'enter portal'.
- 8
getRoomIDbyName(name)
intermediatestandardSearches the mapper database for a room name. Useful for 'Go To' aliases where the user types the destination name instead of an ID.
- 9
speedwalk(path, delay)
beginnerstandardExecutes a sequence of directions. Use a small delay (e.g., 0.5s) to prevent being kicked for flooding the server with commands.
- 10
gmcp.Room.Info.exits
intermediatemediumA table of available exits for the current room. Use this to auto-populate a compass UI or to validate movement attempts.