Planet Mud-Dev

September 13, 2014


Mudlet 3.0.0 alpha!

Mudlet 3.0.0-alpha is here! This is an alpha release – that is, a preview of what Mudlet 3.0 will look like. Please be aware that there may be bugs and other issues in this preview release – we are publishing it so we can locate any such issues. If you run into anything, please post them on the thread on our forums.

Documentation is still in progress of being updated for all new features.

Now, onto what’s new!

What’s new

Variables view

svo 056 300x187 Mudlet 3.0.0 alpha!
Display for variables in Mudlet is in! You can now see, and edit, and search your variables.

This feature covers tables, so you can explore them by expanding them, both indexed and key-based ones. Functions are visible as well – since those are variables in Lua, although you cannot see their contents or edit them.

As there are a fair bit of Mudlet and Lua functions that come with Mudlet, a feature to toggle hiding certain was was added. Press Show Hidden Variables to view hidden variables. You can also set variables you don’t want to see to be hidden by checking the hidden variable checkbox.

Double-click word selection

You can now double-click in the main window or a miniconsole to select a word! You’ve also got the option of choosing what characters will the selection stop on – in case you don’t want to select quotes and such:

Selection 057 300x45 Mudlet 3.0.0 alpha!

Mapper room exits window

Mappers room exits window has been reworked, now allowing you to create and select the door type on an exit, lock exits so they aren’t used in speedwalking, and set a weight on them to make them more or less desirable to take when pathfinding.

Custom exit lines

Custom exit lines creation improved a fair bit and is much easier to work with. Creation of custom exit lines is much easier  – you can undo any point you create using the right-click menu, as well as change the properties (line type, colour, and an finishing arrow).

Workspace 1 067 Mudlet 3.0.0 alpha!

Adding a line – you can now easily undo the last step or finish creation

Editing existing lines has also been improved, you can add/remove points on an existing line without having to redo it from scratch:

Workspace 1 068 Mudlet 3.0.0 alpha!

Editing an exiting line allows you to add/remove points along the line

Custom Line Properties  064 Mudlet 3.0.0 alpha!

Editing properties of an existing line


Database scripting fixed

A series of issues with the database (db:) functions have been fixed. Thanks to Jor’Mox especially for assistance in identifying the issues. If you have previously added a version of DB.lua as a script in your Mudlet profile, delete it, so you use the latest version that comes with Mudlet.

GMCP issue on IRE muds

An issue where if too much data came from GMCP on IRE MUDs would cause Mudlet to disconnect / get garbled / crash has been fixed. The workaround for that was to enable the ‘Force compression off’ option – you can now re-enable it.

Looping aliases

A common mistake Mudlet newbies made that crashed Mudlet was create an alias that calls itself – so once used, it would call itself infinitely. Basic protection has been put in place now where if you’re putting something into the ‘substitution’ field that matches your alias pattern, Mudlet will auto-revert your change and not allow you to go through with it.

Mac installer

The Mudlet Mac installer has been revamped to offer a modern an aesthetic experience:

Selection 069 300x201 Mudlet 3.0.0 alpha!


Native MSDP support has been added to Mudlet! MSDP data is available in msdp. and sendMSDP() allows you to send commands back to the MUD.


Under the hood, Mudlet has been upgraded to Qt 5.2. You should not see any adverse effects of this, but do mention to us if you do. Qt5 offers some pretty exciting opportunities for Mudlet that we’ll be taking of in the future.


  • Any variant of a direction – numeric (“1″), long (“north”), short (“n”) can now be provided to mapper functions.
  • HTTPS is now supported by for downloads (this means downloading from Dropbox will work again).
  • Fixed a GMCP command being sent when GMCP isn’t enabled at login.
  • Mudlets profile tabs are now re-orderable: you can now click and drag them around to change their position.
  • A button for the module manager has been added to the toolbar as well, so you can access it you aren’t use the menu.
  • Keyboard navigation is now available in the connection window: you can use the arrow keys to select and Enter to connect to a MUD.
  • An issue where error messages that contained tabs in them were pretty difficult to highlight as the text would move around has been fixed.
  • Various mapper functions have been optimized to be quicker when you’ve got very large maps.
  • Gauge-related functions now allow <center> and other alignment tags to work properly in gauge text.
  • createMiniConsole() can now be called for existing consoles to resize & move them.
  • db:aggregate(field reference, aggregate function, query) has been added, allowing you run an aggregate function on field(s).
  • db:query_by_example(database, example) has been added, allowing a new way of querying the database.
  • getAreaExits(areaID) has been added, allowing you to retrieve a list of exits going into an area.
  • getExitStubs1(roomid) has been added, similar to getExitStubs() but the results are indexed from 1. getExitStubs() has been fixed to return nil when the roomID doesn’t exist.
  • Geyser.Label:addChild(cons, container) has been added, allowing you to create nestable labels.
  • Geyser.Label:setOnEnter(function)Geyser.Label:setOnLeave(function) have been added, allowing you to run functions when a mouse enters and leaves a labels area.
  • installModule()uninstallModule()reloadModule(), and getModulePath() have been added, allowing you to control the module system from scripts.
  • resetRoomArea(roomID) has been added, allowing you to clear the area a room belongs to.
  • setAppStyleSheet(stylesheet) has been added, allowing you to override the OS (Windows/Mac/Linux) look of Mudlet. This, in tandem of Mudlets already already customisable in-game interface, allows you to completely customise Mudlets entire interface to your desired look. As an example, try setAppStyleSheet(“QScrollBar { background-color: red }”) to set the background of scollbars to red. Have a look at some examples you can use and documentation.
  • shms(seconds, bool) has been added, given a number of seconds, returns the hours, minutes and seconds.
  • showColors() has been improved to be clickable, allow filtering and an an optional column number: showColors(columns), showColors(filterColor), showColors(columns, filterColor).
  • stopSounds() has been added to stop all currently playing sounds.
  • table.deepcopy(table) has been added, allowing you to create clones of tables.
  • A set of crashing bugs, although relatively uncommon, have been fixed. Note that some crashes on that list weren’t present in Mudlet 2.1, they were introduced during the course of development.

Last but not least, have a look here as well as here (navigate to newer pages) for a list of changes that went into making of 3.0 – which is pretty big!


Development-wise, things did get stale throughout the last year, but now we’re back in full swing! Mudlet’s code hosting has been moved to Github (pull requests welcome), and we’ve setup continuous integration builds for the C++ code and started on unit testing for Lua code.

Big thanks to Ahmed Charles, Chris Mitchell, Damian Monogue, Heiko Köhn, Jor’Mox, keneanung, phasma, Phoenix, Stephen Lyons, stratum nine and Vadim Peretokin for enabling the 3.0 release!

by Vadi at September 13, 2014 02:55 AM