Mudlet 3.2 available!
Finally welcoming summer in the northern hemisphere, Mudlet 3.2.0 is here. Mudlet can display text in many other languages now, coroutines are available, and userwindows (stand-alone miniconsoles) have been massively improved!
Encoding in Mudlet
Veteran Mudlet developer SlySven worked to teach Mudlet to display text in Spanish, Russian, and many other Western languages!
Go to Preferences > Encoding to select the encoding you'd like to use.
This is the first baby step in enabling Mudlet to support internalisation. Choosing the encoding will help Mudlet display the letters right, but triggers will not work with non-English text and nor will some Lua string.* functions like string.len(). We'll be adding these features incrementally and it will all be ready in Mudlet 4.0.
Coroutines
Lua coroutines are now available in Mudlet, opening up a lot of possibilities for writing your scripts better - check out the demo in the manual. Big thanks to the core Mudlet developer ahmedcharles for enabling this!
Script loss fixed
If you happened to insert an XML-invalid character such as 0x0 in your script, Mudlet wouldn't be able to load it back in and lose everything that followed it. This has been fixed - credits go to to Buck in Discord for identifying the problem and SlySven for fixing the problem! 0x0 and it's friends will now get saved and loaded just fine.
First time user experience
First impressions matter - whenever you're getting your friend on Mudlet or someone is thinking of checking out this underrated thing called MUDs. Mudlets is now much better - on first launch, a welcome screen is now automatically shown:
We've also made it so the Connections window automatically opens up if you don't have any profiles on autoload, and the last used profile is automatically selected.
There's too much blank space in though, isn't there? MUDs that get onto Mudlet’s default profiles list are ones that make a significant contribution to the open-source Mudlet project, or those that go the extra mile to add a great gaming experience for their players on Mudlet: mapper support and a UI package.
Userwindow improvements
Would you like to make your miniconsoles separate from the Mudlet window? Move them over to another monitor perhaps? Or make dock them inside Mudlet? You can with openUserWindow(), check it out. This release has improved a lot of things for userwindows - they'll now remember their position when you open Mudlet, won't inherit borders from the main window, and will close with the profile. Once you open a userwindow, you can use all the same cecho(), copy(), paste() on it just as with a miniconsole.
Thanks to the modest itsTheFae for his work in making this happen.
Floating toolbars improved
Floating toolbars - those that you can make in the Buttons view and stick buttons in - no longer spazz out when you click on the script editor.
Changelog
- added alert() function in case you need to alert the user for something
- added getServerEncodingsList(), setServerEncoding(), and getServerEncoding() to choose encodings from script
- added tempKey(), permKey(), and killKey() functions
- added ability to choose encodings (UTF-8, ISO*, and many others) in preferences
- added support for coroutines!
- added support for the telnet BELL code to have Mudlet icon flash/blink for 3s
- added loadWindowLayout(), saveWindowLayout(), and a boolean argument to openUserWindow() for controlling the layout of userwindows
- added mudletOlderThan()
- fixed a possible crash if you closed Mudlet profile while it was still playing a sound
- fixed being able to open multiple 'About', 'Module Manager', 'Package Manager' windows
- fixed clicking on floating toolbars interrupting the editor when clicked on
- fixed floating toolbars to close when the profile is closed
- fixed floating/dockable mapper window to close when you close with its profile
- fixed map auditing always complaining about a default area missing
- fixed save profile dialog to ask a proper question
- fixed userwindows inheriting borders from the main display
- fixed white-on-yellow search highlighting to be the normal black-on-yellow again
- fixed a crash if scripts used sysDisconnectionEvent
- fixed script loss when special characters (like U+000B) were used in scripts
- fixed lua-zip error when opening Linux AppImage
- fixed labels placed under the mapper window preventing clicking on the mapper
- improved AND/OR trigger tooltip to mention that matches go into multimatches[][] instead of matches[]
- improved borders settings Preferences - you can now set them to negatives
- improved first-time experience: connection dialog opens automatically and a welcome message is shown
- improved last-used profile to be autoselected when you open the connection dialog
- improved moved map format selection to be in map options
- improved Mudlet to autoload profiles much quicker
- improved performance inside code Mudlet by using multi-arg .arg() instead of chained .arg() calls
- improved userwindows to open in their last position on the screen by default
- improved connectToServer() to also save the parameters for the next time
- improved a bit of MCCP-related code with a cleanup
Credits
This release was brought to you by Ahmed Charles, Florian Scheel, itsTheFae, kbasten, Mike H, Stephen Lyons, and Vadim Peretokin. Depressed by cancelled projects at work? Interesting in contributing to a project and actually seeing your work get used by people? Hop on board!
Random tip: you can use Unicode art in Mudlet! Try doing cecho("°º¤ø,¸¸,ø¤º°`°º¤ø,¸,ø¤°º¤ø,¸¸,ø¤º°`°º¤ø,¸") or cecho("<green>(╯°□°)<dark_green>╯︵ ┻━┻"). You can find more examples over here.
Comments
Debugging in mudlet is an exercise in frustration. Traces are minimal, oftentimes the error messages are misleading or vague, and it's a complete pain compared to what I used to use.
An example:
LUA: ERROR running script vitals (vitals) ERROR: attempt to call a nil value
Okay, where did that happen? In what function? Theres about thirty in the file. What line number? What was the nil value it attempted to call?
It gives me nothing to work on. It's frustrating. How come a mud client that's not maintained and hasn't seen an official release since 2007 (TinyFugue) does this better?
Tinyfugue uses its own scripting language whereas mudlet uses lua. Different programming languages have different advantages/disadvantages.
I haven't been having any issues doing my own development, but I think it's because I have been writing external modules and importing them. I rarely interact with mudlet proper except to hook triggers/aliases into the exposed API.
The best part is, though, mudlet is open source, meaning that you could contribute to the project and see your improvements in the next release.