This update now stores characters’ passwords securely, improves selection (but more work to do there), adds ANSI colours to cecho and friends, and fixes the font spacing in the error console.


Selection is not yet fixed, but better

Selection in Mudlet has gotten worse in the last few updates – we apologise for that. We’re working on fixing that to work as you’d expect, and this update thanks to SlySven and vadi2 brings the following: selecting left to right works better, selecting to the end of line doesn’t overselect other text and finally, selecting just one letter is possible.

Improved selection

Improved selection

There are still issues with selection, however: selecting many things up and down doesn’t work well for example. We’re working on fixing this, look for improvements in future updates.

Remember you can hold Ctrl while selecting to select entire lines at once!

Overhauled stopwatches

SlySven put in a lot of work to improve stopwatches: they can now persist across sessions, be deleted/recreated as needed, adjusted on the fly, be given names and more. See all of the new functions in the API.

While stopwatches worked as expected, their functionality was very limited. Additionally, they worked differently from their real worl counterparts which made their use not very intuitive.

Note: the new stopwatches caused a fair bit of compatibility with the old stopwatches, and we did not intend that. They’ve been removed for the time being in the 4.2.1 update.

Secure passwords storage

Mudlet previously stored passwords in an unencrypted binary file. While it wasn’t a text file, and thus not so easy to look at, it still wasn’t ideal. vadi2 fixed this in this update, and integrated the QtKeychain open-source library to enable Mudlet to store passwords securely on Windows, macOS, and Linux.

The drawback of storing the password on the computer itself, however, is that if you use cloud sync for your profiles – the password won’t the syncronised. You can go to Special Options in settings and change the password to be stored within the profile to make that work, if you’d like the password to be portable but visible in plaintext.

This piece of work was a necessary step towards custom locations for Mudlet profiles – necessary for cloud sync and portable Mudlet, so look for more in this area :)

You can now also toggle to view the characters password in case you’ve forgot it thanks to SlySven’s improvement.

ANSI colours

SlySven worked to make ANSI colours – ones you see in preferences – be available right in your scripts! This means you can create coloured cechoes (and more) with the exactly same colours you’d see in the game. Nice!

showColors() with the new ansi colors. Use showColors(“ansi”) to show only the ANSI ones

In the same vein, as you notice from the screenshot that demonnic worked to make showColors() sort colours! It now is a lot easier to pick out the exact colour you’d like.

Dark mode on macOS

Mudlet now automatically goes into Dark Mode if you’ve got that enabled on your macOS:

Screenshot of Mudlet 4.2 in dark mode on macOS


Error console font

The error console font used to be… strange in the last few releases. We apologise for the lapse in quality here, and it is now fixed.

Generic mapping script

We’ve spent time improving the generic mapping script as well, making it easier to use and understand:

Doing map basic will show the room name and exits that have been captured, so you can tell if the script is working.


Thanks to all coders: demonnic, keneanung, Leris, Loon-Toon, SlySven, and vadi2 for making this update possible!

Thanks to all translators: 王AQ (Anselmus), Marco “M0lid3us” Tironi (wiploo), Leris, and vadi2 for keeping translations up to date.



  • Geyser.Gauge:echo() can now do Geyser formatting
  • generic mapping script: if you start the first area in your map without a name, the message asking for the name is now more understandable
  • added getConnectionInfo() function
  • character login passwords can now be stored by Mudlet securely in the credential manager, and are put there by default. There is still a toggle to go back to storing them unencrypted within the profile – this is handy if you want to use cloud sync
  • ANSI colours are now available for use in cecho and others! They are automatically synced with preferences. See showColors()


  • setRoomEnv(), Geyser.Gauge:setValue(), table.is_empty() give you an understandable error message if you don’t give them right arguments, instead of technical gibberish
  • generic mapping script: ‘map basic’ is now much more simplified and understandable, and tells you if it captured room name and exits correctly
  • code editor will now indent with two spaces, and not tabs, when you press Tab (this sounds weird but it’s a lot better)
  • ‘About Makers’ is now a lot easier to translate
  • generic mapping script: ‘clear moves’ alias now tells you how many commands were removed
  • you can now reveal the character password in the Connection screen by pressing a little icon
  • GUI.Client, Client.Map downloads will now follow redirects as necessary
  • Mudlet’s .dat map files can now be loaded from Client.Map as well
  • default font size for new profiles is slightly bigger and looks nicer
  • stopwatches got a giant overhaul, tons of new functionality
  • showColors() now sorts colours nicely


  • error and debug console fonts are no longer spaced weird
  • grey area between trigger error and trigger patterns is fixed
  • you can now select a single letter/character (“grapheme” in technical terms)
  • trigger highlights can now highlight non-English text fine