github Mudlet/Mudlet Mudlet-5.0.0-ptb-2026-09-13-95cdbf20
Public Test Build

Changes in this build since the previous PTB (Mudlet-5.0.0-ptb-2026-09-08-8b6d40a6)

Added:

- alpha channel support to level colors in map #10584

Improved:

- Stop building unused translated exit names during map audit #10583

- Scripts are told when mute and other settings change #10596

Fixed:

- Saved sign-ins work on unencrypted games, and games learn if sign-ins are kept #10586

- Editing a room's exits redraws the map and marks it unsaved #10610

- Crash when Mudlet exits shortly after starting up #10461

- path to AI-ASSISTANTS.md #10607

Infrastructure:

- Bump 3rdparty/edbee-lib from 9a91551 to 64960cd #10614

- Silence GCC 16 -Wsfinae-incomplete false positives from AUTOMOC #10612

- Update autocompletion data in Mudlet #10356

- Update text for translation in Crowdin #10613

- stop the NAWS width test failing pull requests that did not touch it #10604

Full changelog since last release (Mudlet-5.0.1)
Added:

- alpha channel support to level colors in map #10584

- Games can turn off Mudlet's starter UI with a GMCP message #10278

- Toolbar buttons and menu items for packages #9983

- Speech-to-text backend for scripts and packages #9982

- A mapperButton setting decides what the built-in map buttons do #10196

- Scripts can tell when Mudlet is not the active application #10145

- Czech (Čeština) translation #10198

- Map room symbol font settings to setConfig/getConfig #10166

- Rites of Passage MUD as a default game #10183

Improved:

- Stop building unused translated exit names during map audit #10583

- Scripts are told when mute and other settings change #10596

- Substring triggers skip lines they cannot match #10347

- Line colors are copied only when a trigger changes them #10352

- Profiles with many packages load faster #10329

- Color triggers check single-colored lines faster #10346

- Label the trigger editor's advanced options toggle #10366

- [ImgBot] Optimize images #10318

- Less bookkeeping per line of game text #10295

- Mudlet handles incoming game text faster #10293

- Color sequences reach the parser without allocating #10299

- parse SGR colour sequences without allocating #10267

- Trigger capture groups reach scripts faster #10297

- Faster trigger dispatch on every incoming line #10296

- Triggers match faster on every line #10294

- substring triggers match faster by preparing each pattern's search once #10304

- Every new profile gets the starter interface, with chat capture #10316

- include what we use in profile objects and persistence (3 of 3) #10283

- include what we use in profile objects and persistence (2 of 3) #10282

- include what we use in profile objects and persistence (1 of 3) #10281

- Redesigned settings dialog with search and instant apply #10237

- the starter UI appears at once on a game that already sent data #10266

- Fed2 logo image #10273

- New Crowdin updates #10233

- filters, pause and clear for the debug window #9688

- Fast game output no longer redraws the screen for every message #10195

- Faster still 2D map rendering when zoomed out on very large maps #10200

- Much faster 2D map rendering on very large maps #10175

- Pathfinding no longer slows down as your map grows #10174

- New Crowdin updates #9721

- Game text and color triggers are faster #10171

- shrink mpackage icons #10080

- game text is faster by not rescanning the buffer for links that were never created #10110

- db:create says how to fix a list-form sheet it refuses #10061

Fixed:

- Saved sign-ins work on unencrypted games, and games learn if sign-ins are kept #10586

- Editing a room's exits redraws the map and marks it unsaved #10610

- Crash when Mudlet exits shortly after starting up #10461

- path to AI-ASSISTANTS.md #10607

- Room exits dialog no longer leaks its two column delegates #10582

- Crash after deleting the special exit being edited in the room exits dialog #10447

- Crash opening the editor when the profile's theme is missing #10417

- A map label you pick up follows the mouse again #10492

- Text no longer wraps to the wrong width after resizing or switching profiles #10490

- IRC kicks are shown, server text cannot inject markup, and scripts get the text as sent #10465

- Crash reporting no longer starts up during test runs #10462

- Placeholder text below WCAG AA in dark mode on older Qt #10238

- MSP's Off request now stops the sound it is playing #10481

- The starter interface no longer turns MSDP back on at every profile open #10500

- moving a window over the main output no longer loses text #10336

- Crash closing Mudlet while a profile is still loading #10430

- Crash from an alias that keeps expanding into itself #10424

- Match-all triggers no longer hold onto memory from their biggest line #10345

- Crash when using a scroll box or text box after its window was deleted #10364

- game text no longer vanishes behind a window moved over it #10343

- the mouse cursor stops being a hand after leaving a link #10275

- copy2decho no longer copies the wrong line's text #10274

- script editor reopens where it was left, not centred #10317

- Update window no longer offers a version that is out of date #10322

- re-land the package uninstall and download fixes lost by a stacked merge #10323

- A large burst of game text no longer stops part-way #10290

- MSDP tables keep their shape and unfinished variables stop half-arriving #10199

- an element removed from an adjustable container is no longer deleted with it #10279

- a hidden link no longer overwrites text after lines are removed #10179

- Copy from the trigger pattern right-click menu works again #10334

- Broken CFGUI Source URL #10333

- Auto-login works again on games that offer no GMCP sign-in method #10328

- macOS Lua tests job crashes because deferred package installs re-enter themselves #10321

- Typing on the connection window picks a game again, instead of renaming a profile #10310

- Code formatter no longer fails on Windows #10312

- Profile tab bar clipping and theme switching glitches #10292

- stray 'm' characters in game text on games using reserved ANSI parameter bytes #10288

- MSDP scripts that subscribe on connect work again #10277

- an install that fails now says why instead of failing silently #10005

- A frame emptied by the game no longer keeps a selection over the deleted text #10262

- Selecting a capture group no longer breaks the next selection #10301

- Re-applying a room or exit lock no longer marks the map as changed #10197

- Undefined behavior on profile load, from a flag read before it exists #10253

- The Map button no longer builds a second mapper over a scripted one #10193

- an embedded mapper keeps working after another map view closes #10191

- a pasted link no longer runs a different link's command #10178

- Missing colon on toolbar visibility label #10239

- Missing fonts fall back to the default instead of a random one #10134

- Writing to a console emptied by deleteLine() no longer crashes #10225

- undefined behaviour when the script editor's undo stack is destroyed #10232

- undefined behaviour on every profile load, from resetting the telnet session too early #10229

- trigger pattern highlighter read an uninitialised flag on every pattern row #10228

- undefined behaviour when creating or deleting any trigger, alias, timer, key, script or button #10227

- Lua UI functions no longer crash when a profile has no window #10186

- only the Next button advances the interface tour #10190

- Mudlet Tutorial's give command, hints and intro panels #10163

- MSDP values containing control codes no longer go missing #10143

- Console output no longer slows down as the window gets bigger #10173

- Long profile and character names no longer share one saved password #10147

- Dragging inside the input line no longer scrolls its text out of place #10167

- a skipped _unique no longer freezes the sheet's other constraints #10170

- Reject malformed version numbers instead of misreading them #10151

- phpTable entries holding false can now be updated and deleted #10150

- Turning off NEW-ENVIRON mid-session now stops sending data to the game #10148

- Keep the loaded map when a download is canceled or returns no map #10146

- Databases are still created when a unique constraint names a column that isn't there #10144

- Switching map areas no longer leaves rooms selected off-screen #10029

- Tab detach threshold silently stayed at 50px instead of the intended 80px #10127

- Turning a container's auto save back on saves its layout again #10138

- Variables named with quotes or spaces can now be edited #10131

- Remove two always-true size checks in MXP frame layout #10126

- Rename a shadowed loop variable in the trigger editor's script view #10125

- hidden links still reveal once older text has scrolled away #10119

- getNetworkLatency() no longer reports a busy client as network lag #10108

- Discord button works again in a detached window #10101

- Renaming a variable no longer loses it or runs its key as Lua #10114

- match-all triggers and aliases no longer lose captures after an accented character #10113

- Detached windows follow the toolbar icon size setting #10105

- Label updates got slower as their text grew #10090

- Labels and gauges no longer lose their background color #10081

- Clicking a styled web link no longer opens a mangled address #9974

- Clearer errors when using a database after closing it #10091

- Alt+W and Alt+O doing nothing in a detached profile window #10035

- Undoing the game's word wrapping no longer merges exits, objects or tells #10027

Infrastructure:

- Bump 3rdparty/edbee-lib from 9a91551 to 64960cd #10614

- Silence GCC 16 -Wsfinae-incomplete false positives from AUTOMOC #10612

- Update autocompletion data in Mudlet #10356

- Update text for translation in Crowdin #10613

- stop the NAWS width test failing pull requests that did not touch it #10604

- Speed up Claude Code on the web session startup #10588

- Warn when the wiki manual documents a function twice #10354

- Bump github/codeql-action from 4.37.8 to 4.37.9 #10378

- Cancel superseded CodeQL runs #10573

- Add tests for the mapper's mouse handling #10491

- Add specs for the MXP tags a game styles and links its output with #10482

- Fix the intermittent main window width spec #10444

- Add specs for the windows MXP asks for with #10479

- Add specs for replay playback and named stopwatches #10473

- Add command line tests for multi-line sends, passwords and Tab #10470

- Add settings round trip tests for the preferences dialog #10440

- Add tests for the room exits and room properties dialogs #10434

- Add specs for media playback and the media protocol #10407

- Add specs for telnet negotiation and the protocols on top of it #10406

- Add tests for the script editor's dialogs and tree #10405

- Add tests for the console's search bar #10488

- Configure CI builds from CMakePresets.json #10363

- Speed up CI by having the Intel macOS job build only the binary #10552

- Add tests for the package exporter dialog #10443

- Add specs for selections that do not fit their line #10439

- Add specs for the room and area database #10432

- Add specs for package and module import, export and install #10413

- Add tests for caret navigation, command line keys and the accessible text interface #10412

- Add specs for the mapper, map files and map user data #10398

- Give the map-audit flag a home that does not need the main window #10388

- Run the Lua tests headlessly on a Wayland desktop #10386

- Add specs for trigger kinds, alias patterns and regex captures #10409

- Give the Discord integration a home that does not need the main window #10375

- Add specs for user windows, console colours and overflow events #10420

- Add specs for text decoding and ANSI handling #10400

- Add specs for the Lua API's argument checking #10399

- Add specs for the Lua string, table, date and debug modules #10429

- Fill in pending Lua tests and fix the local test runner #10361

- Make the libmudlet progress audit fail loudly instead of miscounting #10374

- Bump 3rdparty/sentry-native from 22e1073 to 1c935e8 #10377

- Clear out the CodeQL code scanning alerts #10357

- Add specs for the JSON map format #10370

- Add specs for the command line widget #10371

- remove the always-true Qt version check around serialization #10285

- home the debug switch and timestamp formats in core classes #10284

- Stop the editor position test flaking on macOS CI #10358

- Fix a settings test that broke on an optimized icon #10351

- index scroll boxes, command lines and text boxes in the core window registry #10280

- index sub-consoles and user-window docks in the core window registry #10270

- look labels up in a core window registry, not the view's widget map #10264

- Update text for translation in Crowdin #10348

- Fix a settings test that flaked on macOS #10338

- Sign the Qt and other bundled libraries on Windows #10313

- split the Qt Widgets helpers out of utils.h #10263

- Add runnable QA skills for test coverage, fuzzing and performance #10251

- Add release build presets for all three platforms #10289

- stop CodeQL and a shared key evicting the build caches #10265

- Stop FramePacingTest failing CI at random #10261

- Spelling functions no longer crash without a main window #10258

- Slim down the AI assistant instructions #10252

- Route MXP frame redirects through a write-only print sink #10259

- merge release-5.0 back into development #10256

- skip the bundled-font tests when built without fonts #10254

- Bump github/codeql-action from 4.37.7 to 4.37.8 #10236

- Stop two functional tests failing CI runs at random #10247

- fuzzers for the telnet parser and the console buffer API #10221

- Update autocompletion data in Mudlet #10248

- Bump 3rdparty/sentry-native from 033a39c to 22e1073 #10235

- Update text for translation in Crowdin #10226

- Stop the CodeQL scan running out of memory #10218

- Color changes reach the buffer without a window #10185

- Stop the glibc resolver leak flaking the CI leak job #10202

- Save the profile's spell dictionary without needing a window #10154

- Test pathfinding against a full-sized game map #10182

- Match color triggers against the profile's colors without a window #10152

- Run Lua specs without rebuilding the worktree #10149

- split the OSC 8 hyperlink managers into model state and view repaint #10130

- Cover phpTable with specs #10135

- Cover the update checker's wiring with tests #10133

- move logging into the core console model so it works without a window #10132

- Catch memory leaks from Lua argument errors in CI #10124

- Fix null checks CodeQL flagged as missing in functional tests #10123

- Bump github/codeql-action from 4.37.6 to 4.37.7 #10142

- Bump 3rdparty/edbee-lib from 62ca709 to 9a91551 #10141

- Bump 3rdparty/sentry-native from 724479b to 033a39c #10140

- Stop qtkeychain build from dirtying its submodule on macOS #10129

- Let agents open pull requests with the open-pr skill #10128

- Cover the map progress dialog and mapper indicators with tests #10097

- Test the tab indicator and hyperlink repaint wires #10093

- Cover three untested corners of the trigger engine #10096

- Test that a finished video gives its label back #10094

- keep asking for window activation so the key sequence tests stop flaking #10117

- Update text for translation in Crowdin #10120

- Update autocompletion data in Mudlet #10121

- Build Linux and macOS releases with newer compilers #10092

- extract the main console's data model out of the widget #9603

- Make the map download progress test immune to CI stalls #10104

- Remove the Windows CI unzip workaround now that libarchive is fixed #10098

- A new mpkg release no longer breaks unrelated tests #10107

- Free up CI cache space so builds stop starting from scratch #10102

- Run the C++ tests in parallel in CI #10099

- Upload Qt symbols to Sentry on Linux and macOS #10040

Other:

- Remove concurrency limit from Check lua_error strands workflow

Don't miss a new Mudlet release

NewReleases is sending notifications on new releases.