Mudlet 3.0.0 epsilon! (preview #5)6 min read

It’s been a while since the last Mudlet update, but here we are again! It’s great to see that many people still value a free, open-source, and cross-platform desktop client and continue to make it their choice for playing MUDs to this day.

As we’re getting into making releases again, please forgive us if this one is a little rusty. The idea of this release is to get back to a regular schedule and get closer to the 3.0 Mudlet final.

Since the last delta release, a lot of work has gone into improving the mapper, with our contributor Stephen Lyons doing the lion’s share of work. This release and the tidiness of Mudlet’s forums would not be possible without him.

Mapper improvements

A lot of the mapper code has been improved and optimized to run faster, both when speedwalking and when editing maps. In addition to performance improvements, a whole host of functions have been added to the API to ease scripting and allow you to get more done with less work!

The mapper is now more strict on area names and now allows unique area names only, as having duplicate area names was problematic for scripting and UI dropdowns. Along with this, map auditing has been introduced, which auto-corrects duplicate area names and a few other things. Upon loading Mudlet on an old map for the first time, you might see this:

Don’t be concerned about it, it’s just Mudlet cleaning up the map for you. You can see a more detailed report of the audit in the errors.txt file that is mentioned at the bottom of the message.

The mapper widget’s area list has been improved and now updates more dynamically to any map changes. To make map editing easier, the room selection widget is now editable, allowing you to exactly select the rooms you’d like to modify at once.

Many mapper functions now also allow using names in other than English, as part of the work that has went into making Mudlet more friendly to MUDs in other languages.

clearRoomUserDataItem(roomID, key) has been added: given a roomId number and a user data key removes that key/value pair from the user data for that room. Returns true if data was removed, false if not and nil if the room does not exist for that roomId number.

searchRoomUserData(key, value) has been improved: given a string “key” and “value” returns a list of the roomIDs which contain that value for that key, now returns a sorted list of room numbers.

searchRoomUserData(key) has been improved: given a string “key” returns an ascending sorted list (lua table with monotonically incrementing integer keys from unity) of the unique values stored against that key in all rooms.

createRoomID(startingRoomNumber) variant of createRoomID() has been added, allowing you to specify where should Mudlet start searching from for an available room ID when creating a new room

setDoor() has been improved to return true on success or nil+false on error

new functions for storing userdata in areas and the map itself, however they require upgrading the map format in order to store that data (meaning any Mudlet before 3.0.0-epsilon won’t be able to get this data):

searchAreaUserData((string)<key>[, (string)<value>])

setAreaUserData((number)<area Id>, (string)<key>, (string)<value>)

clearAreaUserData((number)<area Id>)

clearAreaUserDataItem((number)<area Id>, (string)<key>)

getAreaUserData((number)<area Id>, (string)<key>)

getAllAreaUserData((number)<area Id>)

setMapUserData((string)<key>, (string)<value>)

clearMapUserData((string)<key>)

clearMapUserDataItem()

getMapUserData((string)<key>)

getAllMapUserData()

OSX resizing fixed

Mudlet 3.0.0-delta had an issue where the main window would resize whenever text got too big for the input line. This has now been fixed.

HTTPS support

IRE maps are now downloaded over HTTPS, and the downloadFile() function now supports downloading over HTTPS as well. loadMap() has also been improved to handle importing IRE XML map files in addition to Mudlet map files, so should the URL change in the future, you can still load maps in without waiting for a Mudlet update.

Colour parsing

You can now trigger on grey (light white) and cyan colours – colour triggers previously did not differentiate between them properly. Additionally, a few colours weren’t rendered exactly right when coming in from the MUD – this has now been fixed as well.

Strikeout support

Scripts can now set text to be striken-out via the newly-added setStrikeOut() function, both in the main and console windows. Labels have already supported this feature through CSS formatting.

Onto 3.0 final

In order to release the 3.0 final, we need to clear off the last remaining issues that we’ve introduced since 2.1, and any issues found during testing of 3.0.0-epsilon. Please report any problems you find to our forums or directly on the bugtracker, and a big thank you for taking the time to do so! We strive to ensure that Mudlet is always in good quality.

Credits

Big thanks to Stephen Lyons, chrio, Chris Mitchell, Eric Wallace, keneanung, and Zahatric for making this release possible. We look forward to more regular releases in the future!

Note: a previous version of this article incorrectly referred to downloadMap() – the proper function is downloadFile().

8 Comments

A bug was discovered where epsilon will crash when creating a new profile (https://bugs.launchpad.net/mudlet/+bug/1633786). It creates it anyway, so when you start Mudlet up again, the profile will be there. We’ve got it fixed and a new release will come in three weeks time.

Nehmrah
on October 28, 2016 at 4:14 am

Look into the sound player functions for 2.1 – 3.0 for some reason sound doesn’t function in 3.0