DarkMistsCompanion

User Guide  ·  A non-intrusive UI & utility companion for Dark Mists MUD

Getting Started

DarkMistsCompanion (DMC) is a Mudlet Lua framework that enhances your Dark Mists experience with custom UI panels, real-time tracking, and gameplay utilities. DMC is mostly non-automating. Some optional modules (such as Enchanter Assist) can automate repetitive command sequences that you explicitly start and stop. It does not make autonomous gameplay decisions on your behalf. It organizes information, makes navigation easier, and provides tools to help you play more efficiently.

Quick Start: Type dmc in-game at any time to see the main help index. Use dmc help <topic> for in-depth help on any module.
Available topics: es  ·  makearmor  ·  walk  ·  skillups  ·  sb  ·  ch  ·  who  ·  affects  ·  infobox  ·  spam  ·  dmid  ·  map  ·  statroll  ·  showdmg  ·  cmud
CommandDescription
dmcShow the main DMC help index
dmc help <topic>Show in-depth help for a module
dmc uiToggle between full and minimal UI mode
dmc ui onForce full UI mode on
dmc ui offSwitch to minimal UI mode
dmc settingsToggle the movable settings panel
dmc settings show|hideShow or hide the settings panel
dmc infoboxShow, set, or clear the profile info box
dmc spamView or configure spam prevention settings
dmc showdmgToggle inline damage estimates on combat messages
dmc showdmg onEnable damage estimates
dmc showdmg offDisable damage estimates
dmc showdmg color <color>Set the damage message highlight color
dmc showdmg mode <avg|range|both>Set display to average, range, or both

Interface Overview

DMC adds several persistent panels to your Mudlet layout. Each panel updates automatically in response to game events. Most panels live in a tabbed container — click the tab labels to switch between them.

Tabbed Windows

The main tabs — Chat, Affects, Who, Player and Destinations — share one tabbed container with a fixed header strip. Click a tab label to switch pages, or drag a label along the strip to reorder the tabs.

Pulling a tab out

Drag a tab label out of the strip to give it its own movable window; double-click a pulled-out tab to put it back in the strip.

  • The window has a thin frame with a taller top band. Drag the top band to move it, drag a side or the bottom edge to resize it, and use the - / x buttons to minimise or close it.
  • The tab's title is shown at the left of the top band.
  • Pulled-out tabs are remembered: they come back undocked after a reload, with their frame and title restored.
  • The container's right-click menu offers Save / Load for its geometry and lock styles, if you want to lock the frame in place.

Tab font

The tab label size is a setting: Appearance → Tab font size in the Settings Panel (dmc settings). It applies immediately, and the tab strip grows with the font so labels always fit.

Score Panel

The Player Status tab shows a live snapshot of your character's key statistics and refreshes mostly when you use the score command or when relevant events are received.

Sections

SectionWhat it shows
Character Level and age (years and hours)
Attributes Base and modified STR / INT / WIS / DEX / CON. Modified values appear green when buffed or red when debuffed.
Vitals HP / Mana / Moves with current regen rates
Condition Hunger and thirst levels with descriptive labels (Full → Dying)
Wealth Gold and silver — on hand, in bank, and in house account
Location Current room name, room ID, and available exits
Status Ready / Resting / Sleeping / In Combat
Combat (In combat only) Target name and target health %

Status Bars

Horizontal gauges initially positioned at the bottom of your Mudlet window showing your vitals at a glance. An enemy health bar appears automatically when you enter combat.

Gauges

HP  ·  Mana  ·  Moves  ·  Experience  ·  Enemy HP (combat only)

CommandDescription
sbShow status bar help
sb showMake all bars visible
sb hideHide all bars
sb toggleToggle bar visibility on/off
sb infoPrint current vitals to the chat area
sb recreateRecreate the bars (useful after layout changes)

Damage Messages

Appends an inline damage estimate to every combat hit line. The estimate is derived from the damage verb (e.g. wounds, mauls, PULVERIZES) and shows either the average, the full min–max range, or both depending on your mode.

Enabled by default. All options take effect immediately without reloading.

CommandDescription
dmc showdmgToggle damage estimates on/off
dmc showdmg onEnable damage estimates
dmc showdmg offDisable damage estimates
dmc showdmg color <color>Set the damage message highlight color
dmc showdmg mode avgShow only the average damage value
dmc showdmg mode rangeShow only the min–max damage range
dmc showdmg mode bothShow min–max damage range with average

Settings Panel

The movable settings panel is available from the Button Bar > Settings menu or with dmc settings. It is organized into Appearance, Status Bars, Windows, Enchanter Assist, ShowDMG, ItemTracker, and Utilities pages. Valid changes are saved immediately.

Appearance includes pending Light/Dark theme mode, Full/Minimal UI mode, window font, font size, tab font size, and safe screen-border percentages. Status Bars includes enabled state, total height, and editable foreground/background RGBA colors. Status Bars are always movable. Windows includes Affects refresh and text lengths, original-line deletion, Who original-line deletion, Chat History message limit, and SkillUps history limit.

Enchanter Assist includes materials, recovery, enabled, and automatic-run controls, plus a session reset action that preserves configuration and attempted history. ShowDMG includes damage message mode and color. ItemTracker includes dark/light mode link colors. Utilities includes Spam Prevention, Stat Roller leniency and display settings, and MakeArmor sleeper, container, and default threshold. Settings marked with * require Reload UI before the change is applied.

Control groupAvailable settings
AppearanceTheme, UI mode, window font, font size, tab font size, border percentages
Status BarsEnabled, total height, foreground/background RGBA colors
WindowsAffects, Who, Chat History, and SkillUps display limits
Enchanter AssistMaterials, recovery, workflow controls, and session reset
ShowDMGDamage messages, mode, and color
ItemTrackerDark/light mode link colors
UtilitiesSpam Prevention, Stat Roller, MakeArmor

Profile Info Box

The Mudlet profile info box is a small text area on the profile screen that you can use for custom notes. DMC exposes it through dmc infobox, so you can set or clear the text without leaving the game.

  • dmc infobox <text> sets the profile info text
  • dmc infobox clear clears the profile info box
  • If you only run dmc infobox, DMC shows the usage summary

Chat History

The Chat tab keeps a scrollable log of all communication channels, color-coded by type. Up to 100 messages are retained per session. Both sent and received messages are captured, each with a timestamp.

Captured Channels

ChannelColorDescription
say / emote-say Yellow Local room speech, including emoted says
tell / mptell Green Private tells and mental projection tells
yell / yell panic Blue Yell messages — normal and panic variants
gtell Purple Group communication
ooc Blue Out-of-character channel
newbie (in-game & Discord) Green Newbie help channel
house White House / guild channel
mpsay / mental blast Blue Mental projection broadcasts
Format: Each line shows a timestamp, sender name (or "You" for outbound), and message. Sender names appear in blue.

Filtering

The header above the log has single-letter toggle buttons to show or hide each channel. Click a letter to toggle that channel on or off — multiple channels can be combined. Hover any letter to see which channels it controls.

ButtonChannels
ALLAll channels
SSay
YYell
TTell
GGroup Tell
OOOC
NNewbie
HHouse
All re-enables every channel. Filters reset to All whenever the UI reloads, and only affect this window — the main console is never filtered.

Who Window

The Who tab displays the online player list, captured automatically from the server's "who" output. Because the game does not push this data on its own, the window tracks when it was last updated so you always know how current it is.

  • Player count and seconds since last refresh are shown in the header
  • Click [Refresh] to issue a fresh who command immediately
  • The age counter ticks up on every prompt — a quick glance tells you how stale the data is
  • Player entries are displayed with the original server formatting and colors preserved

Affects Window

The Affects tab shows all currently active spells and status effects on your character. Like the Who Window, it captures a snapshot from the server and tracks how old it is.

  • Click [Refresh] to re-issue the affects command and update the list
  • Click [Clear Expired] to remove affects whose duration has elapsed
  • The age counter updates every 2 seconds so you can see at a glance when the data was last fetched

Minimap

An interactive Geyser map widget showing your current position in the Dark Mists world. Displays room name, room ID, and area name alongside the graphical map.

  • Updates automatically as you navigate between rooms
  • Double-click a room on the map to walk there
  • Map data is loaded from the bundled map.dat file (15,000+ rooms)

Button Bar

A docked menu bar at the top of your screen providing quick access to all DMC features via dropdown menus — no need to remember commands.

Menu Structure

MenuItems
Modules Walk, Enchant Assist, Make Armor, Skill Ups, Item Tracker
Settings Toggle UI mode, Light/Dark theme, Status Bars, Advanced & Dev tools
Help General, World, Character, Interface, and Scripting help topics

Session Timer

A small ⏱ M:SS (or ⏱ H:MM:SS) display on the button bar that tracks how long you've been logged in to the current world session. Resets automatically on login or reconnect and stops on disconnect. Hover for a "Session timer" tooltip.

Utility Modules

Enchanter Assist

A formula discovery assistant for the alchemy skill. EnchanterAssist systematically tests combinations of material essences to help you discover new alchemy formulas. It tracks every combination already tried, manages resting automatically, and saves all progress to disk so sessions survive disconnects and reloads.

Important: Enchanter Assist sends commands to the server in sequence. Only activate it when you are in a safe location with your alchemy materials at hand.

How It Works

  1. Set the number of materials per attempt with es 1 through es 5 (default: 5).
  2. Run es run for a single attempt, or es auto to run continuously.
  3. When your mana or moves drop below 20 %, the module rests automatically (via bedroll sleep or mana potions) and resumes when you recover.
  4. Every attempt — success or failure — is recorded and saved. Progress survives reconnects.
  5. When a formula is discovered, an audio alert plays and the formula name becomes a clickable link to view its details with alc info <formula>.

Effect Colors

During a brew, enchantment result lines are color-coded to indicate what category of affect the material combination produces:

ColorAffect Category
CyanSaves / Added Affect / Invisibility
Light BlueAttributes (STR, INT, WIS, DEX, CON)
OrangeResources / Burn Proof
Purple–AC (better armor) / Flying
BlueSlow or Haste
GreenResource Regeneration
RedHumming / No-Remove
GoldAdded Value
SilverImmunity / Resistance
BrownNon-metal / Half Weight
OliveCurse
PinkGlowing
Muted grayDouble Weight
Warn orange+AC (worse armor)

Commands

CommandDescription
esShow Enchanter Assist help
es runRun one trial cycle
es autoToggle continuous auto-run mode on/off
es stopStop after the current attempt finishes gracefully
es 1es 5Set the number of materials to use per attempt (1–5)
es statsShow discovery progress for all part counts plus session totals
es missingList materials for which you are missing the essence (excluded from trials)
es resetReset session statistics and missing materials — attempted combinations and configuration are preserved
es set container <name>Set the container to pull items from (default: bag)
es set sleeper <name>Set the sleep item name for bedroll rest mode (default: bedroll)
es set sleepmode sleep|potionUse a bedroll to sleep (sleep), or drain potions to restore (potion) — default: sleep
es set potion <name>Set the mana potion item name for potion mode (default: potion)
es set order seq|randTest combinations in deterministic sequential order (seq) or randomly (rand) — default: rand
es soundToggle the audio alert played when a formula is discovered
es enable / es disableEnable or disable the module entirely

Make Armor

Automated make armor casting with quality checking. Casts make armor on an item, identifies the result, and fades if the total AC is below a configurable threshold. Manages resting automatically when mana is low.

Commands

CommandDescription
makearmorShow MakeArmor help
makearmor <item> [5-20]Start making armor on <item> with optional minimum total AC
makearmor statusShow current status and step
makearmor stopStop the current operation
makearmor sleeper <item>Set which sleeping item to use (default: bedroll)
makearmor container <item>Set container that holds the sleeper (default: bag)

Skill Ups

Tracks skill improvements as they happen and maintains a timestamped history of your recent gains. When a skill improves, a notification appears in your chat area. Skills improved this session are highlighted in a distinct color on the practice screen.

CommandDescription
skillupsShow Skill Ups help
skillups listShow the last 20 skill improvements with timestamps and elapsed time
skillups resetClear the improvement history
Practice screen integration: Skills improved during the current session are highlighted in ■ yellow when you type practice, skills, or spells, making it easy to spot what you have been gaining.

Clickables

Automatically enhances the output of practice, skills, and spells commands: skill names become clickable links and proficiency values are color-coded by percentage. No command is needed — this runs transparently whenever you use those commands.

Quest clickables

Clickable formatting applies to quest lines when your current quest list is shown.

InteractionAction
Click a quest number Sends quest read <number>
Shift+Click a quest number Sends quest drop <number>, then refreshes with quest current

Auction clickables

Clickable formatting also applies to auction list lines.

InteractionAction
Click item ID/name column Sends auc browse <id>
Click buyout value Sends auc buyout <id>, then refreshes with auc list
Click bid value Sends auc bid <id> <current+1>, then refreshes with auc list

Vault clickables

Vault item numbers in === VAULT CONTENTS === listings are clickable.

InteractionAction
Click a vault number Sends get <number> vault

Practice / Skills / Spells output

InteractionAction
Click a skill name Sends help <skill>
Shift+Click a skill name Sends prac <skill> and immediately refreshes the list
ProficiencyColor
0 – 49 % Red
50 – 89 % Orange
90 – 99 % Yellow
100 % Green
Recently improved (this session) Yellow (skill name highlighted)

Essence display (alchemy)

When you view your stored essences, quantities are color-coded relative to the material cap:

Fill levelColor
0 – 49 % Red
50 – 74 % Orange
75 – 89 % Yellow
90 – 99 % Green
100 % (full) Green

Item Tracker

Look up items from the bundled database of 5,000+ Dark Mists items. Results appear as clickable links; hovering over a link shows a floating tooltip with the item's full stat block and details.

CommandDescription
dmid <item name>Search for an item and display its information
Tip: Partial names work — dmid silver ring will match any item containing those words. Click on any result to see the full stat block in a tooltip.

Spam Prevention

Spam prevention is configured through dmc spam. It tracks repeated commands and can deny them after a configurable threshold, optionally sending a fallback command when the limit is reached.

CommandDescription
dmc spam statusShow enabled state, threshold, and fallback command
dmc spam onEnable spam prevention
dmc spam offDisable spam prevention
dmc spam threshold <n>Set the repeat limit before denial
dmc spam fallback <cmd>Send this command when the threshold is hit
dmc spam fallback clearDisable the fallback command

CMud Scripting Layer

CMudWrapper is a CMUD-compatible scripting layer built into DMC. It lets you define persistent aliases, triggers, variables, and classes using familiar CMUD syntax — all saved to disk and restored on each login. Every command is prefixed with #.

In-game help: Type dmc help cmud or #help to view the full command reference inside Mudlet.

Aliases

CommandDescription
#alias {name} {body}Define or update an alias
#alias {name} {body} {class}Define with an inline class assignment
#alias {name}Show an alias definition
#aliasList all aliases (sorted by class, then name)
#alias {classname}List aliases in that class (shows hidden members)
#unalias {name}Remove an alias (multi-word names work bare, without braces)

Alias names may be multi-word — wrap them in braces: #alias {dr f} {drink flask}.

Inside an alias body:

  • %1 %2 … — positional arguments from the alias invocation
  • %-1 %-2 … — rest-of-args from position N onward (multi-word safe)
  • %%1 %%2 … — delayed expansion (survive inner alias calls)
  • @VarName — expands a stored variable
  • | or ; — command separator (configurable with #sep)

Triggers

CommandDescription
#trigger {name} {pattern} {body}Add a trigger using CMUD wildcard pattern syntax
#trigger {name} {pattern} {body} {class}Add wildcard trigger with inline class
#rxtrigger {name} {pattern} {body}Add a trigger using raw PCRE regex
#rxtrigger {name} {pattern} {body} {class}Add regex trigger with inline class
#trigger {name}Show a trigger definition
#triggerList all triggers (sorted by class, then name)
#trigger {classname}List triggers in that class (shows hidden members)
#untrigger {name}Remove a trigger
#action and #rxaction are synonyms for #trigger and #rxtrigger.

Wildcard Tokens (for #trigger)

TokenMatches
*Any sequence of characters
?Any single character
%dOne or more digits (0–9)
%nSigned number (optional + or −)
%wOne or more alpha characters
%aOne or more alphanumeric characters
%sOne or more whitespace characters
%xOne or more non-whitespace characters
%pPunctuation
%tA direction word (north, south, east, west, …)
[abc]Any character in the set
(pat)Capture group — result available as %1%99 in the body
{a|b|c}Alternation — matches any listed value
{^str}Negation — does not match str
&nnExactly nn characters
&VarNameCapture into CMud variable @VarName
~xLiteral character x (escape next char)
~~Literal ~
^ $Line anchors

Variables

CommandDescription
#var {name} {value}Set a variable
#var {name} {value} {class}Set a variable with an inline class (no default)
#var {name} {value} {default} {class}Set a variable with both a default and an inline class
#var {name}Show a variable's value
#varList all variables
#var {classname}List variables in that class (shows hidden members)
#unvar {name}Remove a variable

Reference a variable with @VarName inside alias and trigger bodies. &VarName captures in trigger patterns auto-assign the variable.

Classes

Classes let you group aliases, triggers, and variables together so you can enable or disable them all at once. The current default class is applied to every new definition until you change or reset it. You can also assign a class inline as the last argument of #alias, #trigger, #rxtrigger, or #var — this overrides the default.

CommandDescription
#classList all classes and the current default
#class {name}Set name as the default class for new definitions (auto-creates if new)
#class 0Reset the default class to <None>
#class {name} 1Enable class — reinstalls handles for all members
#class {name} 0Disable class — kills handles for all members
#class {name} {enable}Enable class (text option form)
#class {name} {disable}Disable class
#class {name} {hidden}Hide class members from #alias / #trigger listings
#class {name} {unhide}Unhide a hidden class
#class {name} {remove}Delete the class record and all of its member aliases/triggers
Hidden classes are still fully active — their aliases and triggers fire normally. They are simply omitted from #alias and #trigger listings to keep the output clean.
Listings are sorted by class first, then by name within each class. Class names appear in green if enabled, orange if disabled.

Enable / Disable

Individual aliases, triggers, and variables can be toggled on and off without removing them. Disabled items show in orange in listings; enabled items appear in green.

CommandDescription
#T+ {name}Enable the named alias, trigger, or variable
#T- {name}Disable the named alias, trigger, or variable

Async Delay — #WAIT

#WAIT pauses execution of remaining commands in an alias body and resumes them after a delay or after the next line arrives from the MUD. Shorthand prefixes like #WA are accepted.

CommandDescription
#WAIT {ms}Pause for ms milliseconds, then continue
#WAITWait until the next line arrives from the MUD, then continue
Example: #alias j {#WA 5000|l} — wait 5 s then look.
Example: #alias loot {get all corpse|#WA|l} — loot, wait for the MUD response, then look.

Utility Commands

CommandDescription
#show {text}Echo text inline (use %cr for newlines; variables expand)
#send {text}Send text to the server
#repeat {n} {cmd}Run command n times
#{n} {cmd}Shorthand for #repeat
#sep {char}Set the command separator character (default: |)
#sepShow the current separator
#killallErase all aliases, triggers, variables, and classes — cannot be abbreviated
#helpShow the CMud help page in-game
Warning: #killall is irreversible and wipes all saved state immediately. It is intentionally not abbreviatable — you must type it in full.

Coloring — #CW / #COLOR

#CW and #COLOR colorize output. Used with two arguments they create persistent triggers that fire on every matching line. Used with one argument inside a trigger body they colorize the current line.

CommandDescription
#CW {pattern} {fg bg}Create a persistent trigger that colors every occurrence of pattern with the given color(s)
#CW {fg bg}(Inside a trigger body) Color the trigger match with the given color(s)
#COLOR {pattern} {fg bg}Create a persistent trigger that colors the entire matching line with the given color(s)
#COLOR {fg bg}(Inside a trigger body) Color the entire current line with the given color(s)

The color argument is a single brace-wrapped token containing one or two space-separated Mudlet color names. A single name sets the foreground only (e.g. {red}); two names set foreground and background (e.g. {white black}). Both commands accept an optional third argument {class} to assign the auto-created trigger to a class. Run lua showColors() in the Mudlet script editor to list all available names.

Example: #CW thirsty blue — always highlight the word thirsty in blue.
Example: #CW thirsty {white black} — highlight thirsty white on black.
Example: #COLOR {You are hit} red — color the entire line red whenever it matches.
Example: #COLOR {You are hit} {yellow black} — yellow text on black background.
Example: #CW {You are hit} orange {combat} — same, assigned to class combat.

Export

#export prints stored definitions back out as command lines you can copy or save. The output includes #class declarations first, followed by all aliases, triggers, and variables with their trailing class arguments — so the exported output can be re-imported exactly as-is.

CommandDescription
#exportExport class declarations, then all aliases, triggers, and variables
#export {classname}Export all members of a specific class
#export {name}Export a single named alias, trigger, or variable
#export alias {name}Export a specific alias by name
#export trigger {name}Export a specific trigger by name
#export variable {name}Export a specific variable by name

Import — #IMPORT

#IMPORT loads a bundled preset: a text file of CMud command lines (the same format #export produces). Presets ship with the package and are read from <mudlet home>/DarkMistsCompanion/assets/cmud/{name}.txt.

CommandDescription
#import {name}Load preset name (adds or overwrites its definitions)
#import listList the available bundled presets
  • Preset files contain one #-command per line; blank lines and lines starting with ;; are ignored.
  • A #class {name} {options} header also sets the current class for the lines that follow it (CMUD behavior).
  • Import is idempotent — re-running it overwrites same-named definitions rather than duplicating them.
  • To uninstall a preset, remove its class: #class {name} {remove} deletes the class and all member aliases/triggers.

Cross-Invocation

Alias bodies can call other aliases by name — just write the alias name as a command in the body. Trigger bodies can invoke aliases the same way. Self-recursion (an alias calling itself) is automatically blocked with a warning.

Examples

#alias z {zap %1}
#alias heal {cast heal %1|cast armor %1}

#var target skeleton
#alias kt {kill @target}

#trigger hitme {You are hit by * for %d damage.} {#show ouch!}
#trigger getitem {* drops &ItemName} {#show Dropped: @ItemName}
#rxtrigger hpline {^HP:\s*(\d+)/(\d+)} {#var hp %1|#var hpmax %2}

-- rest-of-args: "attack c blind" → attack1 = "c blind"
#alias attack {#var attack1 %-1}

-- delayed expansion: %%1 stays as %1 for the inner alias to receive
#alias outer {#alias inner {echo %%1}}

-- group combat aliases into a class, then toggle them together
#class combat
#alias atk {kill %1}
#alias fl {flee}
#class 0
#class combat 0     -- disables atk and fl
#class combat 1     -- re-enables both

-- hide internal helpers from listings (still active)
#class internal {hidden}
#alias _helper {some body} {internal}

-- multi-word alias names
#alias {dr f} {drink flask}

-- word and line coloring
#CW Abasdarhon blue              -- highlight the name in blue, permanently
#CW Abasdarhon {white black}     -- highlight white on black, permanently
#COLOR {You are hit} red         -- color the whole line red, permanently
#COLOR {You are hit} {yellow black} -- yellow text on black background, permanently

#sep ;
#alias combo {north;kill rat;get all}

-- wait 5 s then look
#alias j {#WA 5000|l}

-- loot, wait for next MUD line, then look
#alias loot {get all corpse|#WA|l}

-- disable a trigger without removing it, re-enable later
#T- hitme
#T+ hitme

Stat Roller

A character creation assistant that activates automatically during the stat-rolling phase of new character creation. It analyzes rolled stats in real time and helps you decide whether to keep or re-roll without needing to do mental arithmetic.

  • HUD display: Shows your current stat block (STR / INT / WIS / DEX / CON), total, the best total seen this session, a trend sparkline, rolls per minute, and elapsed time.
  • Leniency: Controls how strict the acceptance threshold is — 0 is most selective, 3 is most lenient. This is selected during character creation.
  • Calibration rolls: Sets how many rolls are collected before the HUD switches from calibration to live status. This can be changed in the Settings Panel.
  • Best roll memory: Tracks the highest total seen this session so you can compare new rolls against your best.
  • Keepalive: Sends a blank input at regular intervals to prevent timeout during long rolling sessions.
Usage: The Stat Roller activates automatically at character creation.

Web Tools

DMC bundles several standalone HTML tools alongside the package. Open them in any browser — they are fully self-contained and require no internet connection.

Item Viewer — item-viewer.html

Search and filter the complete Dark Mists item database (5,000+ items). Filter by name, item type, stat ranges, and preset stat profiles (Melee, Tank, Caster, Healer). Results include a full stat breakdown for each item. Supports loading updated database files.

Alchemy Formula Parser — alchemy-formula-parser.html

Convert and analyze alchemy formula data. Useful for processing formula output dumps and visualizing material relationships discovered via Enchanter Assist.

Alchemy Material List — alchemy-mat-list.html

Searchable and sortable material source reference for alchemy. Includes material name, item examples, source locations, and notes so you can quickly find where to farm each material.

Line Formatter — line-formatter.html

Wraps lines of text to a set character length and optionally prepends a prefix (e.g. desc + ) to every line. Supports word-wrap with space-aware breaking and includes real-time line/character stats. Useful for formatting notes, descriptions, journals, etc.

EA Save Converter — ea-save-converter.html

Converts CMUD Enchanter Assist XML trial data (AttemptedSet) into a Mudlet-compatible ea_data.lua file for importing your previously attempted combinations.

Additional Resources for Mudlet

If you are new to Mudlet or migrating from another client, these official docs are a great place to start:

Commands Quick Reference

SyntaxDescriptionModule
dmcShow the main DMC help indexCore
dmc help <topic>In-depth help for a moduleCore
dmc ui [on|off]Toggle or set full / minimal UI modeCore
dmc settings [show|hide]Open the movable Settings PanelCore
dmc infobox [text|clear]Set or clear the Mudlet profile info boxCore
dmc showdmg [on|off]Toggle or set inline damage estimates on combat messagesCore
sbStatus bar helpStatus Bars
sb show / sb hideShow or hide the gauge barsStatus Bars
sb toggleToggle bar visibilityStatus Bars
sb infoPrint current vitals to chatStatus Bars
sb recreateRecreate bars after layout changesStatus Bars
walk <name>Speedwalk to a saved destinationNavigation
walk list [filter]Open the Destinations tab, optionally filteredNavigation
walk add <name> [roomid]Save current (or specified) roomNavigation
walk rem <name>Delete a destinationNavigation
walk area <search>Walk to any area matching searchNavigation
walk stopCancel current walkNavigation
esEnchanter Assist helpEnchanter Assist
es runRun one trial cycleEnchanter Assist
es autoToggle continuous auto-runEnchanter Assist
es stopStop after current attemptEnchanter Assist
es 15Set materials per attemptEnchanter Assist
es statsShow discovery progress and session statsEnchanter Assist
es missingList missing material essencesEnchanter Assist
es resetReset session (preserves attempts & missing)Enchanter Assist
es set container <name>Set container nameEnchanter Assist
es set sleeper <name>Set sleep item nameEnchanter Assist
es set sleepmode sleep|potionChoose rest methodEnchanter Assist
es set potion <name>Set mana potion nameEnchanter Assist
es set order seq|randTrial order: sequential or randomEnchanter Assist
es soundToggle formula discovery soundEnchanter Assist
es enable / es disableEnable or disable the moduleEnchanter Assist
skillupsSkill tracker helpSkill Ups
skillups listShow recent improvementsSkill Ups
skillups resetClear historySkill Ups
dmid <item name>Search item databaseItem Tracker
makearmorMakeArmor helpMake Armor
makearmor <item> [5-20]Start making armor on target itemMake Armor
makearmor statusShow current statusMake Armor
makearmor stopStop current operationMake Armor
makearmor sleeper <item>Set sleep itemMake Armor
makearmor container <item>Set container for sleeperMake Armor
#alias {name} {body}Define a persistent aliasCMud
#alias {name} {body} {class}Define alias with inline classCMud
#alias [name]List or inspect aliasesCMud
#alias {classname}List aliases in a class (shows hidden)CMud
#unalias {name}Remove an alias (multi-word names work without braces)CMud
#trigger {name} {pattern} {body}Add trigger (CMUD wildcards)CMud
#trigger {name} {pattern} {body} {class}Add wildcard trigger with inline classCMud
#rxtrigger {name} {pattern} {body}Add trigger (raw PCRE)CMud
#rxtrigger {name} {pattern} {body} {class}Add regex trigger with inline classCMud
#trigger {classname}List triggers in a class (shows hidden)CMud
#untrigger {name}Remove a triggerCMud
#var {name} [value]Set or inspect a variableCMud
#var {name} {value} {class}Set variable with inline class (no default)CMud
#var {name} {value} {default} {class}Set variable with default and classCMud
#var {classname}List variables in a class (shows hidden)CMud
#unvar {name}Remove a variableCMud
#classList classes and current defaultCMud
#class {name}Set default class for new definitionsCMud
#class 0Reset default class to <None>CMud
#class {name} 1 / 0Enable or disable class (applies to all members)CMud
#class {name} {enable/disable}Enable or disable class (text form)CMud
#class {name} {hidden}Hide class members from listingsCMud
#class {name} {unhide}Unhide a hidden classCMud
#class {name} {remove}Delete the class and purge its member aliases/triggersCMud
#T+ {name}Enable alias / trigger / variableCMud
#T- {name}Disable alias / trigger / variableCMud
#CW {pattern} {fg bg}Persistent trigger: color matching word (one or two colors)CMud
#CW {fg bg}(Inside trigger) Color the trigger matchCMud
#COLOR {pattern} {fg bg}Persistent trigger: color matching line (one or two colors)CMud
#COLOR {fg bg}(Inside trigger) Color the entire current lineCMud
#WAIT {ms}Pause N ms then continue alias bodyCMud
#WAITWait for next MUD line then continue alias bodyCMud
#show {text}Echo text inline (%cr = newline; variables expand)CMud
#send {text}Send text to serverCMud
#repeat {n} {cmd}Run command n timesCMud
#sep [char]Get or set command separatorCMud
#killallErase all aliases, triggers, variables, and classesCMud
#exportExport class declarations + all stored itemsCMud
#import {name}Load a bundled preset (adds/overwrites definitions)CMud
#import listList available bundled presetsCMud
#export {classname}Export all members of a classCMud
#export alias/trigger/variable {name}Export a specific item by kind and nameCMud
#helpShow CMud help in-gameCMud

Tips & Troubleshooting

Important: If anything looks wrong, use Settings > Reload UI first before trying other troubleshooting steps. This reloads the entire interface, clears most fragmented UI panels and stale post-update state, and is usually the fastest fix. DMC modules are designed for safe reloads, so aliases and event handlers are re-registered cleanly without duplicate bindings.

Plugin update issues

  • Spamming Enter while logging in can cancel an update download. Fix: quit the game and reconnect (disconnect/reconnect will not re-trigger GMCP). After reconnect, check that the load message appeared and the UI looks normal.

A panel is blank or not updating

  • Confirm your UI mode is set to "full": type dmc ui on.
  • Force an update by issuing the relevant command — for example, who to populate the Who Window, or any movement command to trigger a prompt refresh on the Score Panel.
  • If status bars are missing, type sb recreate.

Enchanter Assist stops or won't start

  • Hard stop completed: A previous es stop ran to completion. Type es auto to restart.
  • Missing essence: You lack the essence for a material in the current combination. Check es missing — those materials are excluded from future trials automatically.
  • All combinations exhausted: Every combination for the current part count has been tried. Increase the count with es 4 or es 5 and run again.
  • Disconnected mid-attempt: A disconnect aborts the current attempt cleanly. Reconnect and run es auto to resume.

Walk can't find a path

  • Confirm the map is loaded — the Minimap should be showing your current room.
  • Some areas may have map gaps that break pathfinding. Try walk area <name> to navigate toward the general area first.
  • Verify the destination name with walk list.

Clickable skills aren't appearing

  • Clickable formatting only triggers when you send one of the relevant commands — type practice, skills, or spells to see the formatted, clickable output.

Chat History is empty

  • The log is session-only and starts empty on each Mudlet launch. Messages are added as they arrive — no history is imported from before the session began.

Advanced Configuration

DMC stores its settings in darkmists_global_settings.lua inside your Mudlet profile directory. Most settings take effect on the next reload. You can also access common settings through the Button Bar → Settings menu or the dmc settings command.

Note: Restart or reload DMC after editing the settings file manually. The Button Bar settings menu applies changes without a full reload where possible.
SettingValuesDescription
uiMode "full" / "minimal" Full UI shows all panels. Minimal mode hides most panels for a cleaner layout.
theme "dark" / "light" Switches all panels and color tags between dark and light color schemes.
fontSize integer (e.g. 10) Font size used across all DMC consoles and panels.
fontName string (e.g. "Fira Code") Font family used across all DMC consoles.
statusBarColors RGBA strings per gauge Bar and backdrop colors for each gauge: hp, mn, mv, xp, enemy. Format: "r,g,b,a" (0–255).
statusBarTotalHeightPercent number (0–100) Total vertical height of the status bar area as a percentage of the Mudlet window height.
whoWindowDeleteOriginalLines true / false Remove the raw "who" output from the main console after the Who Window captures it.
statRollerLeniency 03 Controls how strict the Stat Roller's acceptance threshold is. 0 = most selective, 3 = most lenient.