Mudlet: Over two years in making, here is 4.0 for you!

2 years and 4 months or in tech speak, nearly 2,000 commits later – Mudlet 4.0 is here! We’ve achieved our stated goal to make Mudlet playable internationally; from Spanish to Chinese games :)

There are still minor improvements to do, such as translating the splash screen text, but internalisation is work that will never stop and will be always ongoing.

Mudlet Patreon

We’ve opened up a Patreon! All funds raised will be spent on improving the project, so if you like Mudlet, help us out! We’ve got a Special Offer in Patreon until August 25th: a hand-made, engraved Mudlet wooden pen.

10 year anniversary!

We’ve just had our 10 year anniversary! Our goal, just like everybody’s in this genre, is to keep it alive, innovate in it, and bring new players in – and we’re aiming for the next 20 of the same.

Internationalization improvements done for 4.0

Comparing the 3.0 to the 4.0 release, we have put in a ton of work to make Mudlet internalization-friendly:

Character display

Mudlet can now display Spanish, Italian, Russian, Chinese and other text fine:

Text selection also works correctly for Chinese and other languages where every monospace character doesn’t strictly occupy the space same space as 1 Latin character. Chinese characters, for example, occupy 2.

Server encoding

As expected, you can now choose everything from UTF-8, GBK, to KOI8 and more as an available server encoding:

Spellchecking

Spellchecking: yep, it’s here! Works for multiple languages; can be set to be for the profile only or shared Mudlet-wide, and you can use the Lua API with it, too!

utf8.* Lua string functions

All data your triggers, scripts, and everything else is encoded in utf8 – no matter what server encoding. Since Lua’s standard string library works just Latin only, we have added utf8 equivalents of relevant functions so your string.match can work with Russian, Chinese text.

Triggers, aliases, etc work for international text

As mentioned above, we’ve updated alias matching and trigger matching to work with international text! OK in all fairness, this change was the easiest of them all as it was a simple switch.

Windows users with non-Latin usernames

This issue was not a simple switch, unfortunately. An issue specific to Windows, if your account on the computer had non-Latin characters such as öäå, Mudlet would not load correctly. This is now fixed; everyone can run Mudlet!

Finally, the interface

And of course – the pièce de résistance – you can now play Mudlet itself with many different languages!

The interface is fully translated into:

German – big thanks to Leris for doing the bulk of the translation

Italian – big thanks to wiploo from Clessidra.it for doing the bulk of the translation

Russian – big thanks to vadi2 for doing the same

Custom profile icons

Now specifically back to features introduced from the last 3.22.1 update to 4.0, we have done the following:

You can give your custom profiles – a custom icon! Size it to 120×30 for it to look good.

Tabs in display

Mudlet is now a lot better with tabs! This is for compatibility with older games, where they’re used for formatting and in-game source code editing.

If you’re building new code and would like to align text, use spaces instead: they’ll give you complete control of how the text will look like in the end, unlike tabs.

make.mudlet.org/snapshots

Mudlet’s Continuous Integration (CI) process is highly automated: every improvement or feature is checked for compile errors on multiple platforms and a test Mudlet version just for that change is automatically created for Windows, macOS, and Linux. This means you can even improve Mudlet’s code online, without installing anything, and get your own build of Mudlet to test the change!

We’ve previously put up those test versions of Mudlet on transfer.sh and as Appveyor artifacts, which were sometimes flakey, so our very own TheFae has improved the situation and custom-built https://make.mudlet.org/snapshots for us! Every build has handy links to the relevant Github commits and if available, the PR as well.

If you’d like to setup a copy of this website for your own needs, feel free! Just like Mudlet, it is open-source as well :)

Proxy support

You can now connect to your game using a SOCKS5 proxy!

Copy profile settings

You’ve worked hard to create your perfect, personal profile: the correct command separator, perfect colors, and just the right font size – and now you want to try a new game. Copying the existing profile will bring over all of the scripts so what do you do? Yep, we’ve got a button for that.

Improved menubar

We’ve added the Disconnect and Package Exporter buttons in the menubar, and made Discord be the primary “help with Mudlet” button. This brings it to feature parity with the toolbar, so you can pick which one you’d like to have.

IRC will stay as there are systems out there that make good use if it.

Emoji now in color

On macOS, Linux, and Windows 10 Mudlet will now show emoji in color!

Windows 7 and 8 unfortunately aren’t supported due to a Windows limitation.

Note that very few games support emoji’s out there – but you can always use echo(“Cool 😄

”) in your scripts!

Mudlet – now in C++17

This is pretty techy news, but Mudlet is now made in C++17! Modern C++ is nothing like the traditional language you’ve heard of, and this update brings awesome things like structured bindings. Are you interested in trying it out? Mudlet is open for your PRs :)

Translation 🌟

Big thanks to Marco “M0lid3us” Tironi (wiploo) from clessidra.it for putting in a ton of effort into the Italian translation – it is now complete and has a 🌟!

The Russian translation has also been updated to the 🌟 level as well, joining the German translation on the podium. Can you help us with your language?

Credits

This is a huge update. Big thanks to demonnic, imgbot, keneanung, Leris, SlySven, and vadi2 for making it happen!

Thanks to all translators (12!) in this update: beckham894, Cyber Nerd (cybernerd.us), Guilherme Campos (guicampos), hjdhnx, keneanung, Leris, lostnow, Marco “M0lid3us” Tironi (wiploo), Matthieu (Jack_potta), Shoryu Shin (shoryu49), vadi2, and vingi.

Hotfixes

4.0.1: Secure connections work again normally. There were unexpected problems connecting to a game over secure SSL/TLS connections, as well as using downloadFile() for adresses starting with https:// – Thanks for the fix to keneanung and to cml and Conskill for reporting this to us on Discord and Github.

4.0.2: Fixed Mudlet crashing on Windows when viewing large scripts/triggers/aliases, etc. in code editor window.

4.0.3: Fixed secure connections even more.

Changelog

We’ve added far too much to list in the post, so have a look through the detailed changelog below:

added:

Copy profile (settings only) – handy for bringing over existing preferences to a new profile

Disconnect button in the menu of the Connect button

Discord is now the preferred way to get help; Discord is now available as a button. IRC is still there, people use it in their systems

getBorderSizes() as well as getBorderTop(), getBorderRight(), getBorderBottom(), and getBorderLeft()

package manager, module manager, and package exporter all have buttons in the menubar now

Patreon supporters tab! See https://patreon.com/mudlet

setBorderSizes(top, right, bottom, left)

SOCKS5 proxy support for connecting to games / HTTP downloads

tempTimers now have a repeating option (keep firing until you kill them)

you can now give your profile a custom icon in the list

improved:

60-200ms faster profile load and lower memory use (code formatter is now loaded on demand)

C++17 is now used for making Mudlet. If you like the sound of that, come join us ;)

command separator for new profiles is now ;; (remember you can now copy settings from existing profile)

couple of long tooltips for map copy are now trimmed

emoji’s will now be displayed in color in Linux and Windows 10 (macOS already had them, Windows 7 not possible; Windows limitation)

faster text rendering of normal characters (plain ASCII)

feedTriggers now works independent of your encoding

full path to the sound file is now shown as a tooltip in the trigger editor

introduction texts for triggers/aliases/etc are now more thorough

Mudlet updater and code editor texts are now possible to be translated

Reconnect button and reconnect() will now connect to the last server, even when you use connectToServer()

fixed:

‘About’ button in menubar won’t show text when you’ve turned that off

Chinese Linux users can now type in Chinese in Mudlet

clicking on a search result will now correctly take you to the location in the code

creating a new trigger won’t show an error about no patterns in it right away

Ctrl+Delete works in the input line to delete by word, as well as other shortcuts

permGroup() will properly create folders

spellchecker now works for everyone, including Windows users with special characters in their name

tabs now show correctly in Mudlet

text selection works right for Chinese text

Here’s a snapshot of all the work that went just into Mudlet’s code alone (this excludes work done on the snapshots service):

It’s a lot! Want to improve something in Mudlet? Join in!