Client Patch Notes
What's new in the CKMud desktop & Android apps.
CKMud — Patch Notes
Newest first. (Older entries are kept in PATCH_NOTES_ARCHIVE.md.)
2026-08-01
✍️ Both platforms — Live error checking in the script editors
- Lua plugins are checked as you type. The plugin editor now compiles your Lua in the background (without running it) and shows a status line: green "✓ Lua — no syntax errors", or red with the exact problem and line number (e.g. "script:3: 'end' expected"). No more saving, reloading, and hunting for why a plugin won't load — you see it the moment you make the typo.
- TinTin scripts get a brace checker. Unbalanced
{ }is the #1 thing that silently breaks a#if/#whilebody. The editor now flags it live with the line, e.g. "line 3: '{' opened here is never closed" — on desktop in the status strip, on Android in the editor's title bar.
📱 Android — Line numbers in the Lua plugin editor
- The Lua plugin editor now shows line numbers down the left margin, and they stay aligned with your code even when long lines wrap or you scroll. Handy for jumping straight to the line the error checker just pointed at.
🔧 Both platforms — See which script engine you're running
- Diagnostics now reports the active scripting engine (Settings → About on desktop; the exported log on Android). If the fast native Lua 5.4 engine ever fails to load and the client falls back to the reduced engine, you'll now see a clear warning instead of silently losing features.
🔒 Security — Tightened down password security and keys
- We tightened how the client handles your passwords and sync keys. As a precaution we recommend rotating your sync key: Tools → Profile → Sign in (if needed) → Rotate token. Imported scripts are also more locked down — downloads from a shared package stay in your plugins folder and must use https.
2026-06-17 · Android 777 · Desktop 1.0.140
🌐 Both platforms — Mudlet import fixes
- Packages with a "-" (or space) in their name now import correctly. If a Mudlet package's internal name contained a hyphen — e.g.
CK2-1— the generated safety layer produced an invalid line and failed to compile. That silently stopped every trigger and alias in the package from activating (only the standalone command alias survived) and could leave you unable to sendquit. The generated config name is now always a valid identifier, so the whole package arms correctly. tempLineTriggeris now supported. Scripts that grab the next few lines after a header (CK's Status scrape and similar) were erroring with "attempt to call a nil value" and getting auto-disabled after a few strikes. Added the MudlettempLineTriggercompatibility function.
If you already imported an affected package, re-import it after updating so the corrected files regenerate.
2026-06-17 · Desktop 1.0.137
🖥 Desktop — Tools window polish
- No more cut-off window. The Tools window (and other movable dialogs) now always fit inside the app window, so the Save/Cancel controls aren't pushed off the bottom of the screen. No more resizing it every time.
- Save / Cancel moved to the top. In the alias / trigger / timer editor, Save and Cancel now sit in a header row that stays put while the form below scrolls — they're always within reach.
- "✓ Saved" confirmation. Hitting Save now flashes a brief ✓ Saved next to the button so you know the change was written.
- Folders remember their state. Folders you collapse in Tools stay collapsed after you close and reopen the window.
- Cleaner list. The left-hand list now shows just the script's name (or keyword) instead of dumping the whole command body under every row.
- Type right after switching tabs. Clicking a different character tab now puts the cursor in the command line automatically, the same as switching back to the window from elsewhere.
2026-06-16 · Android 776 · Desktop 1.0.131
🌐 Both platforms
- Folders for your scripts (new). Triggers, aliases and timers can now be organised into folders. Open one in Tools, type a name in the new Folder box (or tap a folder chip), and your scripts group under collapsible 📁 headers. Make as many folders as you like.
- Select & move (new). Tidy up in bulk: pick several triggers, aliases or timers and move them all into a folder at once. On desktop click ☑ Select; on Android long-press an item to start selecting. Then choose Move to… — an existing folder, no folder, or a brand-new one — and confirm.
- Folders in Plugins, done right. The Plugins window now shows real folders — including folders nested inside your character's folder — with short, readable file names instead of long paths. Rename and delete your own folders, rename plugin files, and select multiple plugins to move them into a folder in one go. Your character's own profile folder is protected, so it can't be renamed or deleted by accident.
- Smarter package import (new). Importing a Mudlet or CMUD package now walks you through it: choose whether it loads for this character only or for all your characters, and whether simple triggers become native, editable triggers or stay packaged as a plugin — each option explained in plain English. Don't like the result? Just delete it and re-import the other way.
- Mudlet triggers become real triggers. Simple "send" triggers from a Mudlet import now turn into native CKMud triggers you can open and edit in Tools, instead of being locked inside a plugin file.
- Everything syncs, folders included. Profile Sync now carries your script folders and your plugin folders (nested ones too) across to your other devices, along with the scripts and files themselves.
- Speedwalk (new). Type a prefix character plus a run of moves to walk it all in one go — e.g.
.5n2e3ssends 5 north, 2 east, 3 south. The prefix defaults to.and you can change it in Settings. - Cleaner numbers. Power Level and Zenni stay abbreviated (e.g. 22.4B) so they're easy to skim, while tokens, event points and your attributes now show as full numbers with commas so you can read them exactly.
- Far more speaker colours. Chat names are now coloured from across the whole wheel instead of a small fixed list, so with hundreds of players online the colours stop repeating. You can still pick your own per-person colour any time.
🖥 Desktop
- The Triggers / Aliases / Timers editors gain the Folder field, a 📁+ Folder button, collapsible folder headers, and the ☑ Select → Move-to flow.
- Rage gauge (new). A fourth vital bar — PL · Ki · Rage · Fatigue.
- Move the bars + hide the hotbar. Flip the vital bars between the top and the bottom (just above the input box), and collapse the hotbar strip out of the way — both remembered per character.
- Customisable dock panes. In docked Stats / Tracker panes you can now resize each pane (⊕/⊖), collapse whole sections, hide individual rows (⚙rows), and set the text size per pane (A− / A+) — so you see only the stats you care about, at the size you want.
- Make dock windows by hand (new). Dock mode no longer needs a script to get started — the empty dock has ➕ New window and ➕ New chat window (all channels combined), the ⚙ menu has ➕ New empty window, and the ↗ beside any channel breaks it out into its own window. Chat lines keep their colours. (You can also still add command / toggle buttons to any pane via ⚙ → Buttons….)
- Floating window mode (new) — full CMUD-style MDI. Turn on Settings → Floating windows (MDI) and the terminal, your capture/chat windows, and the stat panels (Stats / Tracker / Affects) each become a free-floating window. Title-bar controls: ✎ rename (any window), ⤒ bring to front, ⤓ send behind, — minimise, ▣ maximise, × close (clicking a window also raises it). Move by dragging the title bar (overlap allowed); resize from any edge or corner — the cursor turns into the Windows-style resize arrows, no visible handles to hunt for. A− / A+ in the title bar set that window's text size, and each window's ⚙ sits right next to its name. Drag toward a screen edge or corner to snap-tile (half or quarter; dragging no longer force-maximises — use ▣ for full). Add windows from the + window menu (top-right). Lay it out like your old CMUD profile; the layout is saved per character.
- Chat fills your floating windows. Channels (OOC, Clan, Tell, …) now route into floating capture windows just like dock mode — make a window, tick the channels in its ⚙, and they pour in (colours intact).
- Button panels in floating mode. A window's ⚙ → 🔘 Buttons… builds a panel of one-click command buttons and on/off toggles; the buttons wrap to fill the window. Toggles now show green ● when ON and red ○ when OFF (this colour change applies in docked panes too).
- Build a Stats window your way. A floating Stats window's ⚙ lets you tick which sections show (Combat / Attributes / Wealth), and ↗ breaks a section out into its own window — so you can have a tiny Combat box, a separate Wealth box, and so on. Saved per window.
- Keybindings (new). Settings → Keybindings lets you bind a key — or a combo like Ctrl+1 / Shift+F2 — to an action: press Add keybinding, tap the key you want, then choose a custom command, a saved alias, or a timer (a timer key toggles it on/off). Your bindings are listed there with a delete (✕) on each and a Reset all. A bound key always fires and never types into the command line, so bind keys you don't type as text — the numpad, F-keys, or Ctrl/Alt combos work great (unbound keys type as normal). Keybindings travel with Profile Sync.
- + New script moved up next to the Error log so it never gets clipped.
📱 Android
- Long-press to select across Triggers, Aliases, Timers and Plugins, then move into a folder with a quick "Move N here?" confirmation. Timers keep their Start/Stop button.
- Opacity added to the speaker-colour picker, matching desktop.
2026-06-15 · Android 1.667 · Desktop 1.0.111
🌐 Both platforms
- Celestial Compendium (new). A built-in item & mob guide — open Compendium and look up anything in the game without leaving the client. Search by name, narrow it down by type, tier, slot, zone, bosses or legendaries, and tap an entry to see its stats, bonuses, special effects, and what drops it (or what a mob drops). Names show in their real in-game colours and rare gear is clearly marked. Available while you're playing on ckmud.
- Multi-pattern triggers (new). One trigger can now watch for several different lines at once — add as many patterns as you like and pick whether it fires when ANY of them appears or only when ALL do. One trigger, one action, as many lines as you need — no more building a separate trigger for every message.
- Plugins are per-character. Plugins left loose in your main plugins folder are shared by all your characters; ones you make with New script go into the character you're currently on; and you only see your own character's plugins in the list, not other characters'.
- Profile is ckmud-only. Sign-in and Profile Sync only show up while you're on ckmud — not on other MUDs.
- Cleaner channels on other MUDs. On a different MUD you only see your own custom channels; ckmud's built-in ones stay out of the way.
📱 Android
- Compendium screen tidied up — easier to read, with a clear search box and an always-visible Close button.
- The in-app updater works again.
🖥 Desktop
- Compendium opens from the top bar with full details for every item and mob.
- Smoother command line. Up arrow recalls your last command on the very first press now. When the typing box comes back into focus — after a menu closes, you click back in, or you un-minimize the window — it highlights everything so you can retype or clear it instantly. And un-minimizing puts your cursor straight back in the box.