Skip to content

Releases: Mudlet/Mudlet

4.8 - Drag and drop packages, custom cursors, and amazing maps

02 May 17:19
Compare
Choose a tag to compare

This is an amazing release that adds drag and drop packages, custom cursors, draggable labels and more! Mudlet is now more powerful than ever for building stunning, modern interfaces for MUDs.

Drag and drop packages

Thanks to Edru, who massively improved Geyser and Userwindows in the last update, you can now drag and drop packages into Mudlet to install them. Pretty simple!

Credit: Eraene's DarkTheme

Along with this comes a sysDropEvent, so you can code a custom action when a file is dropped into Mudlet. If you're a package author, remember you can make use of the sysInstall event to notify that your package has been installed. Enjoy!

Carrion Fields added

This game has put together a seriously impressive Mudlet package and we're honoured to have them added to Mudlet officially! Double-click on CF in the Connection screen to play :)

Carrion Fields is a unique blend of high-caliber roleplay and complex, hardcore player-versus-player combat that has been running continuously, and 100% free, for over 25 years.

Choose from among 21 races, 17 highly customizable classes, and several cabals and religions to suit your playstyle and the story you want to tell. Our massive, original world is full of secrets and envied limited objects that take skill to acquire and great care to keep.

We like to think of ourselves as the Dark Souls of MUDs, with a community that is supportive of new players - unforgiving though our world may be. Join us for a real challenge and real rewards: adrenalin-pumping battles, memorable quests run by our volunteer immortal staff, and stories that will stick with you for a lifetime.

Adjustable Containers

Edru didn't just stop with drag and drop - adjustable containers are in as well! What does it mean? It means labels/miniconsoles that you can move around and reposition just by dragging! No code needed.

Try this code in Mudlet:

testCon = testCon or Adjustable.Container:new({name="testContainer"})
testLabel = Geyser.Label:new({x=0, y=0, height="100%", width="100%", color="green"},testCon)

Search within the script

Dicene also added a cool feature - you can now hit Ctrl+F to search within the script only, not your entire Mudlet profile!

He didn't just stop there either - you can now toggle whenever you'd like to search within variables, default off so it's quicker:

CP437 encoding now supported

Thanks to SlySven, the CP437 encoding is now supported. Along with a custom font, Medievia makes use of this to draw amazing custom maps :)

CP437 encoding with a custom font

Check out a few more screenshots.

Custom cursors

Yep, custom cursors are here! Curious? Download, drag, and drop this demo package into Mudlet to try all the cursors out :)

Big thanks to Edru for adding these in.

New API features

gcms added MXP as another format that you can get data / events from, just like GMCP. Check it out!

demonnic did a pass over the table functions - table.contains() can now check within multiple nested tables, and table.collect(), table.n_collect(), table.matches(), table.n_matches() to make working with tables easier.

Thanks to Edru, you can now manipulate the syncing of a module with enableModuleSync(), disableModuleSync(), and getModuleSync(), and add/edit the Scripts as you see them in Mudlet with enableScript(), disableScript(), setScript(), getScript(), permScript(), and appendScript().

Edru also improved on the userwindows - you can now choose whenever they should be popped out or docked at start, and if docked, which area should they be in. Autodocking while dragging can now be disabled, too!

A few more improvements are also present - see the full changelog below.

Geyser:show() fixed

As mentioned two months ago, we've fixed an issue where you could still :show() the child of a hidden container. If your UI relied on this broken behaviour, make sure to update it!

Script editor sizes

Alias/trigger/script editors are no longer huge by default, and they'll remember their sizes as well. Thanks to dicene for covering this off!

Polish translation ⭐

Big thanks to mwarzec for translating the entirety of Mudlet into Polish! In his own words, it was possible thanks to:

home.. sweet home.. and no reasons to go outside..

Did I miss 4.7?

We skipped 4.7 because that was the April Fools version ;)

Credits

Thanks to all coders who made this release amazing! atari2600tim, Damian Monogue, Edru2, gcms, Ian Adkins, Jim Tryon, Kebap, keneanung, Mike Conley, Richard Moffitt, Slobodan Terzić, Stephen Lyons, and Vadim Peretokin.

Thanks to all translators: DarkApocalypse , Dawid Chomaniuk (pd.chomaniuk), Jelle Z. (jelle619), Leris, Marco "M0lid3us" Tironi (wiploo), mwarzec, vingi, and thomazleventhal for their work in this.

Changelog

added:

Read more

4.6 - Geyser, Geyser, Geyser!

08 Mar 21:01
Compare
Choose a tag to compare

Geyser is the go-to way for making awesome interfaces in Mudlet and it's received a lot of improvements in this release. Read on!

Geyser in Userwindows

Thanks to Edru2, it is now possible to put labels, miniconsoles, and the mapper inside userwindows! Userwindows in Mudlet are pop-up windows that you can drag around with your mouse, resize, or even move to another monitor. Previously, only miniconsoles could go into a userwindow.

Here's a demo of the chat capture EMCO working right inside a userwindow!

Sounds interesting? Check out the docs on how to get started.

Tooltips for labels and gauges

Continuing their roll, Edru2 added tooltips to labels and Geyser objects! You can now add a tooltip easily with mylabel:__setToolTip("tooltip here"), check out some examples.

Stylesheet for the current profile only

Edru2 has also added setProfileStyleSheet() - an easy to use, drop-in replacement for setAppStyleSheet() that only affects the current profile and not all of the other ones as well. Super handy!

If you're a UI author, it is strongly encouraged to switch over to this new feature. You can easily handle old Mudlets that don't have this feature yet with:

local stylesheet = [[_my stylesheet here_]]
if setProfileStyleSheet then
  setProfileStyleSheet(stylesheet)
else
  setAppStyleSheet(stylesheet)
end

Explicit formatting for Geyser labels and gauges

Previously, if you wanted to format the way a label looks like, your only option was to use the format string every time you echo'd something to a label. No longer! Now there are explicit :setBold(), :setUnderline(), :setItalics(), :setStrikeThrough(), :setFont(), :setFontSize(), and :setAlignment() functions available thanks to demonnic's work on this.

Geyser child show fix in next update

Okay, that was a ton of Geyser improvements. Ready for one more?

In Geyser, when you hide a container, all of its children get hidden as well. Makes sense, right? However, there is a way you can still get a child to show - if you call :show() on it explicitly. This means that you can get a child of a hidden container to show up! This obviously doesn't sound right, and it affects things like anitimers working correctly.

We've fixed it - but in QA testing, we've discovered that a few UIs have been built that rely on this broken behavior to work: that is, getting a child to show up even though their container is hidden. As we don't want to introduce an update that fixes-but-really-breaks things, we've postponed this change until the next 4.7 release. Meanwhile, if you're a UI author, test this Windows / macOS / Linux version of Mudlet to see if your UI is affected and if you need to fix it.

All fonts unlocked

The setting for picking a main window font was previously only limited to monospace fonts, as those are the ones that we've optimised our custom-made text display for. As part of our internalisation work, we've added emoji and non-English letter support to the display as well - which now makes it good enough to be used with all fonts!

Non-monospace fonts in Mudlet still aren't perfect, and not all fonts are designed to be used for their letters, so beware. On top of that text games are still optimised for monospace fonts - those are easier to align text and columns with!

IRE Composer improvements

atari2600tim took it into their own hands to improve the IRE Composer - a pop-up window for GMCP that allows you to edit a fair bit of text at once and send it back to the game. It now won't eat backwards slashes \ and it's more resilient as well.

New function: Geyser.Color.find_color_name()

Demonnic added Geyser.Color.find_color_name(color) which allows you to use "Orange", "orAnge", "ORANGE", etc and get back the proper name from the color table. This will also allow you to match multiword colors, such as "OrangeRed" and "orange_red" as "oranGERED" or "oRANGE_red", etc. This new function is also now used by Geyser.color.parse and its descendants in order to make Geyser color parsing more robust!

New function: unzipAsync()

Have a zip, need to unzip it? The new unzipAsync() function by Vadi will do that just for you! It also won't freeze Mudlet up while it's unzipping because it's asyncronous and multithreaded.

Notepad: now for all languages and emoji's

The notepad now will correctly store and load contents in utf8, allowing for all languages and emoji's to show up. Thanks to SlySven for making this work!

Mudlet $410 bounty for better screenreader support

We have an outstanding bounty of 410 USD to add screenreader support to our super quick, custom-made game text display widget - so visually impaired users can get game text read out to them. Interested in making some cash? Dive in, and join us on Discord to talk about it!

Are you on Mudlet 4.5.1-de?

Unfortunately due to a publication error, Mudlet 4.5.1-de will not automatically update to 4.6.0. Go to mudlet.org/download and manually install the new version. Don't worry - all your profiles will stay.

Credits

Thanks to all coders: atari2600tim, demonnic, Edru, Faenriis, mpconley, shacknetisp, SlySven, and vadi2 who made this release possible!

Thanks to all translators Gandalf07, Leris, Marco "M0lid3us" Tironi (wiploo), Vadim Peretokin (vperetokin), vingi, and Ömer Albulak (albulak) for translating Mudlet into their own language.

Changelog

added:

  • Geyser objects (as well as the usual labels, miniconsoles and mapper) can now go into userwindows
  • unzipAsync() function
  • setLabelToolTip() and Geyser equivalents :setToolTip() functions

improved:

  • tab order in connection screen now makes better sense (a11y)
  • all connection screen input fields now have their names read out for a screenreader (a11y)
  • Mud Client Media Protocol: Client.Media has been renamed to Client.Media.Default per protocol change
  • notepad now works with utf8
  • IRE Composer now handles \
  • blinking text will now show up as italics (like in MUSHclient), as opposed to normal text like before
  • all fonts can now be selected in main window settings

fixed:

  • labels being really slow over the mapper window
  • gmod not re-enabling modules properly on reconnect
  • possible crash if you managed to close a profile without closing Mudlet while settings window was open
  • module priorities not to get lost

4.5 - first 2020 edition

17 Feb 19:46
Compare
Choose a tag to compare

Mudlet emerges from the vacation hibernation to deliver the next update!

FieryMUD in Mudlet defaults

Welcome to the world of Ethilien ... and welcome FieryMUD to Mudlet!

Credit: FieryMUD

Ethilien, a world once ravaged by gods run amok. Amid this world, on the eastern continent of Caelia, lies the classical power struggle of good and evil, righteous vs demonic.

Only after being spared through the might of the all-father, Metamorpho, creator and progenator of Ethilien, has Caelia began to recover from the evils caused during the rift.

However, under the cover of darkness do new evils arise to bring upheaval and strife as whispers of a mysterious and once forgotten clan bring hope of surviving the chaos to ensue.

FieryMUD is now accessible out of the box on Mudlet :)

Want to add your game to Mudlets list of defaults? Check out the requirements. It's absolutely free to do :)

hreplace()

Joining creplace and replace is hreplace() by demonnic! As the h implies, this allows you to use hex codes in your colour echoes.

Check it out!

hreplace("#EE00EE\[ALERT!\]: ROBOTS!")

deleteLabel()

Ever wanted to be able to delete a label? SlySven has made it so! deleteLabel() is now available as a function.

Note that if you intend to show the label again at some point, it is much more efficient to hide/show it instead rather than recreate it all the time.

getImageSize()

You can now retrieve the height/width of an image so you can create a label of the appropriate height - particularly handy if you download an image from the internet, for example! vadi2 added this.

Turkish translation

Turkish has been added as a possible translated language in Mudlet - thanks to Ömer Albulak for stepping up to translate!

Can you help translate Mudlet into Turkish? Or another language? Join in. Great way to kill time if you commute by public transport every day, by the way!

A couple of (new) functions

Strictly speaking, these aren't new, but got out missed out in our documentation. The following friends join the list: creplace(), dreplace(), and unzip().

In future plans...

As you know, our current focus is on improving the first-time players experience with Mudlet!

Another important area of development for Mudlet is better accessibility - so blind players can use Mudlet. Since everyone on the team is already busy with the roadmap, we are thinking of putting up a bounty on this to encourage developer(s) to join in and help us on this front. Watch for more news on this front!

Credits

Thanks to all coders: Delra, demonnic, keneanung, mpconley, SlySven, stridera, and vadi2.

Thanks to all translators for their work on this as well!

Looking for contributors

Got a passion for Mudlet and text gaming? Help us work on the dream :) We'd love more people who are talented with design, documentation, programming, or translation to join our team!

Changelog

added:

  • Fierymud to the default list. Check it out!
  • hreplace() as an option (so you can use hex codes)
  • Turkish language as an option in Mudlet. Help us translate it!
  • deleteLabel() to delete a label (hiding/showing is much more efficient though)
  • getImageSize() for getting the dimensions of an image (such as one you download from the web)

improved:

  • sendMSDP() argument checking - thanks to Delra for this one!
  • outdated 3Kingdoms mapper removed - generic one is better at this point

fixed:

  • IRC window will now close when the last profile is closed
  • downloading a Mudlet map via Client.Map for the for the first time works
  • setModulePriority() can now be called right after a module is installed

Infrastructure:

  • sped up cases where colour is used in Mudlet with the new QColorConstants
  • fixed compilation with the 3D mapper disabled (needed for Mudlet on Raspberry Pi)
  • internal label code simplified not to require a Host anymore
  • streamlined all of the c/d/hreplace functions to share code

4.5.1 is a patch release adding the missed getImageSize() function and updates autocompletion tooltips.

4.4 – MSP, mapper dot option, stopwatch improvements, and selection fix

07 Dec 15:13
Compare
Choose a tag to compare

Added a new option for customising the mapper's "you are here" location marker, added notepad autosave, re-added stopwatches overhaul and fixed a possible crash when copying text in this update!

MSP (Mud Sound Protocol)

Thanks to Tamarindo from StickMUD, Mudlet now supports MSP! This allows the game to ask Mudlet to play sounds automatically (say, when you enter a room or start a fight). This is different from playSoundFile(), a function you can use in triggers/aliases to play sounds.

If your game already supports MSP, try enabling it today! If you're a game admin and you only allow specific clients to enable MSP, add Mudlet to the list :)

Tamarindo also developed a more modern replacement for MSP (last updated in 2001) called MUD Client Media Protocol (MCMP) - something that is more fitting for 2020. If you're interested in adding media to your game today, consider adding this.

Customisable room marker

SlySven added a feature to customise the room marker - there's now several different styles as well as an option to create your own!

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 world counterparts which made their use not very intuitive.

Credits

Thanks to all coders: aaronjoslyn, CriusMacOldenly, demonnic, keneanung, mpconley, SlySven, and vadi2.

Thanks to all translators: finalcn, Garagoth, Leris, Marco "M0lid3us" Tironi (wiploo), Shoryu Shin (shoryu49), and wendeli alves (wilcoxjvkb).

Changelog

added:

  • custom look'n'feel for the mapper red 'you are here' dot in settings
  • support for more than 3 mouse buttons for the event engine
  • overhauled stopwatches with a ton of new features
  • portugese (brazilian) language for translation
  • MSP (Mud Sound Protocol)!

improved:

  • notepad content is autosaved every 2mins (previously, only ever saved on profile close)

fixed:

  • crash on selection
  • temporary aliases are now removed like everything else with resetProfile()
  • font size in composer no longer huge

infrastructure:

  • support for 64bit Discord libraries on Windows (Mudlet on Windows does not yet do 64bit, but it does on Linux and macOS)
  • Mudlet now uses latest Qt 5.13.2 on Windows
  • Travis CI configuration modernised

4.3 - Fixed selection

10 Nov 16:03
Compare
Choose a tag to compare

This short update fixes text selection in Mudlet, improves the generic mapper script, and a few things in the background.

Fixed text selection

Crius MacOldenly from Accursed Lands has taken it upon themselves to rewrite text selection in Mudlet, and the result is really good! It now behaves as you'd expect.

Credits

Thanks to all coders: CriusMacOldenly, demonnic, keneanung, SlySven, and vadi2 for contributing to the code!

Thanks to all translators: Leris, Marco "M0lid3us" Tironi (wiploo), and vadi2 for helping translate Mudlet.

Changelog

added:

  • 'show moves' alias to generic mapper script
  • support for a 'Public Test Build' version of Mudlet (coming soon)

improved:

  • table.is_empty() now gives a better error message
  • text selection redone
  • emoji rendering is a bit better (still working on it)
  • showColors() now appends the clicked colour instead of replacing text in the input line

infrastructure:

  • modernised cmake files

It might look like we haven't done much for you in this release, as compared to the previous ones - but fear not, there's been plenty of work in the background that'll come to fruition in the future :)

Github monthly pulse

4.2 - overhauled stopwatches, secure passwords storage, ANSI colours for scripting and more

13 Oct 11:52
Compare
Choose a tag to compare

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.

We know quality of the last few updates hasn't been amazing, and quality is something we pride ourselves in. We've worked extra hard this time to test everything! :)

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

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.

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

Enjoy!

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

Credits

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.

Changelog

added:

  • 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()

improved:

  • 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

fixed:

  • 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

Mudlet 4.1 – quality improvements all around

08 Sep 10:44
Compare
Choose a tag to compare

This is a quality release bringing improvements to Mudlet editor, Geyser, while adding MSSP, HTTP POST/PUT/DELETE, and more. Enjoy :)

Mudlet editor improvements

dicene pulled his sleeves up and added a fair bit of great improvements to the code editor!

  • Alt+E will now remember the view you last used, instead of always going to the trigger view.
  • Alt+E will now also toggle between the editor and the main window - as an alternative to Alt+Tab or using the mouse
  • Ctrl+Tab and Ctrl+Shift+Tab can now be used to jump around the main parts of the Mudlet editor - this helps a lot with keyboard navigation!
  • Function autocomplete is now an option in settings

And while not strictly an editor feature, you can now select a specific profile tab - just like you can select a specific browser tab - with Ctrl+#. So Ctrl+1 will open the first profile, Ctrl+2 the second, and so on.

MSSP

Tamarindo from StickMUD added support for Mud Server Status Protocol (MSSP) in Mudlet! This means that for games that support it, the mssp table (do lua mssp to see it) will have all sorts of data that the game reports about itself.

Are you an admin running a game? Add MSSP support! Are you a player on Mudlet wanting to use it? See here how to do that.

As well as MSSP, Mudlet will now accept JSON for the Client.GUI string - this is something game admins can use to setup a Mudlet interface. Thanks again to Tamarindo for adding that!

Improvements for custom UIs

demonnic added some neat features to Geyser labels: you can now align text in them to the left or right of the label, as well as format it with strikeout text! insertLink, echoPopup, and insertPopup now have c/d/h variants for colouring text too.

vadi2 managed to crack the problem that was affecting Windows releases - if you created opened mapper with your Geyser interface together, the latter would look a bit weird until you resized it. No more! Both will open up just fine now.

Additional web APIs

This one is for coders as well: Mudlet has already supported HTTP GET, and now it supports POST, PUT, and DELETE too! With these you can make Mudlet packages that interact with web services - we look forward to seeing what you come up with :)

Mindful of the privacy aspects of this, as always, all HTTP requests are now logged in the Centra Debug Console:

Credits

Big thanks to abbradar, demonnic, dicene, keneanung, macjabeth , mpconley, SlySven, vadi2, and wsdmatty for making this Mudlet update possible! Have you got an itch to scratch about Mudlet? Join in.

Changelog

We've added a ton of improvements in this release, including some neat table functions by macjabeth, so look below for the complete changelog:

added:

  • Alt+E / "Script editor" will now open the same view you had last, instead of Triggers view at all times
  • Alt+E now toggles between the Mudlet editor and the main window back and forth
  • calcFontSize(window_or_fontsize, optional_font_name)
  • Client.GUI is now accepted by Mudlet in JSON format as well (this is for game admins)
  • Ctrl+Tab and Ctrl+Shift+Tab can now be used to jump around the main parts of the Mudlet editor
  • Geyser.Label:echo can now align things to 'left' and 'right', and use 'strikeout' text
  • insertLink, echoPopup, and insertPopup now have c/d/h variants for colouring text
  • MSSP data is now available in Lua! Not all games support this, but those that do, you'll be able to get additional data about the game in the 'mssp' table
  • postHTTP(), putHTTP(), and deleteHTTP() - and logging of all requests in the Debug console so you know what scripts are doing
  • table.keys(), table.n_filter(), table.n_flatten() for working with tables
  • Ctrl+1,2,3,etc now changes between profile tabs (this won't break your custom keybindings if you have those)

improved:

  • code editor's autocompletion now has a toggle in settings
  • default map save format is now 20 (up from 18). This means maps saved by Mudlet 4.1 can't be read by 2.1 (3.x is OK!) - at this point enough people should be off
  • insertPopup and echoPopup now accept "main" as an argument
  • "default_host" profile is now gone: even faster Mudlet loading!

fixed:

  • 'Copy as image' now correctly works for Chinese and other 2-character-width languages
  • changing formatting in a miniconsole will now take effect right away
  • clicking on the timestamp will once again select the entire line (remember you have ctrl+clicking on a line too)
  • setBold and other formatting functions will now work on miniconsoles
  • setting a 0 width font (a weird font, basically) won't crash Mudlet
  • UIs / Geyser no longer look funny when you first open them :)
  • userwindows will now close when you close their profile

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

04 Aug 08:46
Compare
Choose a tag to compare

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 120x30 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 colours, 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 colour

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

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 😄\n") 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.

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()](https://wiki...
Read more

3.22 - international names, exporting packages, bugfixes galore and ;)

11 Jul 09:52
Compare
Choose a tag to compare

This month we help international players, we warn about deprecation of the semicolon, ease up exporting a package, speedwalk through non-English games, and bring lots of bugfixes to you.

Also, in case you're not on Twitter, we're working on setting up a Patreon!

Mudlet works for Windows users like Iksiński, Müller, and 张三

Linux and macOS load Mudlet fine, even on computers where the user's name is not written in plain English. Unfortunately, Windows had issues with these usernames, and many Mudlet players worldwide noticed. They can finally rejoice now as vadi2 has fixed the problem:

With this, we're another step ahead on our road to Mudlet 4.0 which is all about bringing the joy of text gaming to everyone in the world, regardless of their name or culture.

Default command separator will change soon

Hey ;) it's summer outside; can you feel it?

Unfortunately, with the command separator set to; as default in Mudlet right now, sending the above line isn't easy! Mudlet would break up winky faces and legitimate use of the semicolon character. New players have to adjust it in preferences first.

This will change soon!

Starting with version 3.23 next month, Mudlet will let all new profiles only separate the commands if double semicolon ;; is written. This will help to avoid the pain, while still allowing you to use the command separator if needed.

Can you change it back to ;? Yep. But try out ;; first, you just might like it.. ;)

What if your scripts make use of expandAlias() and thus rely on ; to work? Well, our first recommendation is to never use expandAlias, use functions instead - not only because of this very problem.

expandAlias() is also much slower than creating a function and calling them directly, so consider removing it. You can find help in building your Lua functions in Mudlet's community in our forums or Discord chat for example.

If you really need expandAlias() for good reasons, we've added getCommandSeparator() for you since version 3.18 from March - Now, instead of hardcoding the separator to ; you can specifically use the separator which your player has chosen. Remember, everyone can change it in their Mudlet preferences.

Will there also be a setCommandSeparator() function, then? No, because adding this would just recreate the problem and even intensify it: You'd then have different packages each change the separator for the entire profile, as they see fit, which would make players unhappy.

Package Exporter improved

We are still experimenting on the best functionality for Mudlet's tool to export all your necessary triggers, alias, scripts, and maybe even other pictures, sounds, etc. into a package to share with other players.

Recent improvements by SlySven and Kebap include a bugfix, so you can now also include a whole folder of arbitrary files into your package. This would silently fail until now. In the future you will always see a success or failure message after the export has completed.

You will also always see the filename of the package and the location you have chosen to export to. Furthermore, Mudlet will present a clickable link to the folder. This way you can easily grab the exported package and continue working with it as you see fit.

Remember there is a long list of packages available which have been uploaded to our forums in recent years by other players just like you. Maybe you can find something interesting for your game there as well?

Improved texts for translators

As we're working through translating Mudlet into many languages, Kebap has been improving the quality of many texts a lot which the translators (and you!) get to read.

Help us to translate Mudlet into your language :)

New profiles saved right away

When you created a new profile, entered the server/port, connected to it and then went back to the connection window - you'd find that the profile had forgotten the information. Entering it again would make it actually save.

Now, it will save the first time. Like it should.

Code editor scrolls again on ↓

Pressing the key didn't work for scrolling the code editor. It would indeed move the cursor down, but you would not be able to see it anymore. It would vanish into the invisible realms beyond.

This is now fixed! The code editor will again stay focused on your work.

Text-to-Speech now works on Linux

You remember that you can get Mudlet to talk to you, right? We reinstated this functionality with Mudlet 3.17 in February. Imagine making a trigger to say something! Read parts from the game or announce your own texts. Get started here.

You can now let Mudlet speak on Linux, too. Just like in macOS and Windows.

Speedwalking with non-English directions

Are you building a Mudlet mapper for a game that doesn't use English directions? We've added a new function for you: translateTable() will translate a table of 'ne, e, se, sw' directions to the player's chosen interface language. Try it out and give us feedback.

Credits

Thanks to all coders: dicene, Kebap, keneanung, LiamLeFey, SlySven, and vadi2 for making this release possible :)

Thanks to all translators: beckham894, Leris, lostsnow, Marco "M0lid3us" Tironi (wiploo), Vadim Peretokin (vperetokin), and vingi for bringing Mudlet into their own languages :)

Changelog

added:

  • new function: translateTable() - given a table, translates it to your language
  • mudlet.translate - translations of directions into the chosen interface language

improved:

  • texts and tooltips around Mudlet
  • package exporter will confirm success or announce failure
  • package exporter will show package name and (clickable) folder

fixed:

  • new profiles save their connection information instantly
  • Mudlet loads correctly on Windows where the username has a non-ASCII character in it
  • colorizer trigger has the correct position of 'foreground' and 'background' labels
  • text-to-speech now works on Linux
  • package exporter will include sub-directories correctly

Want to have a peek at how much work went into this release?

3.21 – Start offline, shrink trigger editor & more!

16 Jun 23:53
Compare
Choose a tag to compare

Three, two, one! Counting down to the next Mudlet version, which lets you open a game offline, or shrink the trigger editor window for example.

Open profile offline

It's a small thing, but one that has been requested over the years - and one that LiamLeFey has stepped up and added to Mudlet!

You can now open a profile in offline mode - that is, without connecting to your game straight away. This is very useful, if you need to edit or review your scripts in solitude.

Small trigger editor

SlySven added an awesome feature for users on small screens: The new triangle button hides the advanced options, so you can see more patterns:

Video demonstrating trigger options collapse/uncollapse

This feature also auto-activates if you drag the slide to only show just a few trigger patterns. Give us feedback on what you think about this!

Italian translations improved by 27%

Marco Tironi (wiploo) has recently put in a ton of work into translating Mudlet to Italian language and it is now almost finished at 87%! Take a look:

If you want to know about other languages or read a more detailed status of Mudlet translation, look at our recent news on mudlet.org website. For example, the website is now also available in German language.

Qt 5.12

This is a bit of a "behind the scenes" upgrades, but keneanung has put in a lot of work to upgrade the Qt version used by Mudlet in Windows and Linux from 5.10 to 5.12, as well as updated a lot of third-party components used by Mudlet. This'll help us use newer functionality in creating the Mudlet app for you.

Credits

Thanks to all coders: Delra, djholtby, keneanung, Leris, LiamLeFey, SlySven, and vadi2 in this update!

Thanks to all translators: beckham894, eckol, keneanung, Leris, Marco Tironi (wiploo), and vadi2 for doing amazing work!

Changelog

added:

  • Load your game's profile in offline mode

improved:

  • Simplified texts in Mudlet for easier translation
  • Sped up getRoomIDbyHash() functionality
  • Maximum fire length increased from 99 to 999
  • Mudlet is now built with Qt 5.12 on Linux and Windows, up from 5.10
  • Limit for MXP links raised to 2,000 per console
  • MXP now supports line and default modes
  • Nicer reactions of ansi2decho() when getting anything other than text to display
  • Trigger editor can now collapse automatically to be smaller

fixed:

  • Custom exit lines changing colour on map formats under version 20
  • Room deletion caused a crash in a rare case on Windows
  • Room numbers are no longer padded with zeroes in the mapper
  • If you installed a package manually first, that the server offers as well, the server couldn't upgrade it anymore
  • You can add special exits to the first room in your map again

What's been happening behind the scenes in Mudlet for the last month? Quite a bit! Have a look at the stats:

Note that issues aren't only error reports but also feature requests, etc.

Take a look for yourself on Mudlet's development presence on Github.