The Icesus Mudlet Package

An official, GMCP-driven HUD for Mudlet. Install one file and get the same panels the browser client uses: vitals, EXP, identity, casting, cooldowns, status effects, an enemy bar, exits, and a channel feed. No triggers to write, no Lua to copy.

Mudlet running the Icesus package: top banner with character identity and a green EXP bar, ASCII map and room description in the main console, an enemy panel and channel feed on the right column, and HP / SP / EP / PSP gauges plus the exit list at the bottom.
Combat in the wilds of Vaerlon. EXP bar across the top, vitals strip across the bottom, an enemy panel and channel feed on the right.

Install

Recommended

Easy path: download the .mpackage

  1. Grab Icesus.mpackage from the latest release.
  2. In Mudlet: Toolbox → Package Manager → Install, point at the file.
  3. Connect to icesus.org on port 4443 (TLS) or 4000 (plain).

You should see a green line on load:

Icesus package v1.0.0 ready.

Direct from source

If you want to track master and tweak the script, clone the repo and import package/Icesus.xml via the same Package Manager → Install dialog. Mudlet imports the XML directly — no .mpackage step.

git clone https://github.com/Icesus-mud/mudlet-package.git
# In Mudlet: Toolbox → Package Manager → Install
#   → pick mudlet-package/package/Icesus.xml

Hot-reload works: edit the script in Mudlet's IDE and the HUD rebuilds itself cleanly.

The HUD is GMCP-driven end-to-end. If vitals stay blank or the enemy panel never appears, the most likely cause is GMCP not being negotiated — check that GMCP is enabled in the profile's connection settings. Everything else (the gauges, the panels, the casting bar) follows from there.

What you get

Three regions of HUD wrap the main console. The console itself is untouched, so existing prompts, logs, and triggers keep working.

Top banner

Identity row

Name, level, race, and guild from Char.Base.

Carry summary

Money, divine favor, and carry weight % from Char.Status.

EXP gauge

Full-width forest-green bar with current EXP and percent-to-next.

Bottom strip

Vitals

HP / SP / EP gauges, plus PSP if your character has any. Slim glass pills with a vertical gradient. HP pulses red below 25 %.

Location & exits

Current room, area, a SAFE chip when applicable, and open exits as short cyan letters (n e s w u).

Right column

Momentum buttons

Clickable BERSERK / EXECUTE-style labels that light up when Char.Status.momentum or Char.Status.special_momentum are set. Click sends use <name>.

Casting / busy bar

Fills over Char.Casting.progress / cps. Repaints amber for non-spell busy activity (camping, smelting, fishing) so every wait gets a visual signal.

Status effects

Colour-coded badges per effect — bleeding, stunned, poisoned, burning, frozen, blessed, cursed, death-sickness — from Char.Status.effects.

Cooldowns

Pills with name and seconds, gradient red → cyan → green as the cooldown ticks down. Truncates names when the row gets crowded.

Enemy panel

One bar per opponent from Char.Status.enemies, using the server's 12-tier shape buckets so it never claims more precision than consider would. Cleared by Char.EnemyDeath.

Channel feed

Every channel, tell, and whisper from Comm.Channel echoed into a side miniconsole, with timestamps.

The HUD reserves 360 px on the right, 92 px at the top, and 64 px at the bottom. The main console fills the rest.

Which GMCP packages it subscribes to

The package registers anonymous handlers and tells the server which modules it wants via Core.Supports.Set:

Char 1
Char.Base 1
Char.Vitals 1
Char.Status 1
Char.Cooldowns 1
Comm 1
Room 1

Char 1 covers Char.Vitals, Char.Maxstats, Char.Casting, Char.ExpGain, and Char.EnemyDeath. The other modules are listed explicitly so the client's intent is visible on the wire and survives any future server-side gating.

The full Icesus GMCP reference is in the repo at docs/gmcp-reference.md, mirrored from the mudlib's doc/help/gmcp.doc. Read the Mudlet GMCP guide for an explanation of each module and what it can drive.

If you'd rather build your own

The package is one file under a single icesus Lua table. Editing it in Mudlet's IDE replaces the running HUD cleanly, so it doubles as a working starting point if you want to fork it. The visual language — palette, gauge gradients, fonts — is ported from the browser client, so a fork can stay coherent with the rest of the cluster or diverge as far as you like.

If you'd rather wire panels by hand from scratch and learn how each GMCP module works in isolation, the Mudlet GMCP guide walks through the modules one at a time without assuming the package is installed.

Bug reports and contributions

Source, issues, and pull requests live at github.com/Icesus-mud/mudlet-package. The repo also includes a headless dev harness (tools/mudlet-dev/) that runs Mudlet under Xvfb against a small GMCP replayer, so contributors can iterate on HUD layout and screenshot the result without touching a real desktop. See CONTRIBUTING.md for details.

Ready to install?

Download Icesus.mpackage