Mudlet A cross-platform, open source, and super fast MUD client with scripting in Lua

Mudlet 3.0 API changelog

March 24th, 2017

There have been over 100 improvements to the Mudlet’s API in the 3.0 release. Check out te list below:

  • added: addCustomLine() to programatically draw a custom line in the mapper
  • added: getAllRoomEntrances() which returns rooms that have exits to the given room
  • added: getAreaExits() to return the exits leading out of a particular area
  • added: getCustomLines() to return data on all the custom lines attached to a room
  • added: getExitStubs1() which starts indexing from 1, in addition to getExitStubs() which starts at 0
  • added: getModulePath() to return the module’s location that it’s loaded/saved from on your computer
  • added: getModulePriority() to return the module’s loading priority which determines the module loading order
  • added: Geyser.Label:clear() to clear the label
  • added: Geyser.Miniconsole:clear() to clear the miniconsole
  • added: Geyser.MiniConsole:resetFormat()
  • added: installModule() to install a module
  • added: map auditing to detect any errors in maps (autocorrects any errors that it can)
  • added: native MSDP support! Mudlet has an open architecture so you can also add support for your own protocol via http://wiki.mudlet.org/w/Manual:Supported_Protocols#Adding_support_for_a_telnet_protocol
  • added: openWebPage() to open a webpage in the browser
  • added: option to display whitespace or tabs in the editor
  • added: reloadModule() to uninstall and reinstall a module at once
  • added: searchAreaUserData(), setAreaUserData(), clearAreaUserData(), clearAreaUserDataItem(), getAreaUserData(), getAllAreaUserData(), setMapUserData(), clearMapUserData(), clearMapUserDataItem(), getMapUserData(), getAllMapUserData() to store user data at the map and area level, in addition to the existing room-level commands
  • added: setAppStyleSheet() to allow you theming of Mudlet
  • added: setStrikeOut() to strike out text
  • added: shms() to convert seconds into hours, minutes, and seconds
  • added: status bar display for the main display
  • added: stopSounds() to stop all currently playing sounds
  • added: sysProtocolEnabled Mudlet event that is raised when MSDP, MXP, ATCP, GMCP or Channel 102 is enabled
  • added: sysProtocolDisabled Mudlet event that is raised when MSDP, MXP, ATCP, GMCP or Channel 102 is disabled
  • added: table.deepcopy() to make a copy of a table
  • added: uninstallModule() to uninstall a module
  • added: getMudletVersion() to check Mudlet’s version. Prefer to check if a function exists over checking the version wherever possible as a good practice
  • added: you can now use the keyboard up/down/left/right buttons to navigate the trigger/alias/etc editor
  • fixed: added missing icon from replay toolbar
  • fixed: cecho/decho/hecho not allowing <text inside pointy brackets>
  • fixed: colour triggers can now fire on cyan/light grey
  • fixed: db: now reports times in the local timezone instead of UTC
  • fixed: db: setting _unique property to actually take effect
  • fixed: db:close() now allows re-opening the database again
  • fixed: db:create can now create sheets without the unique index
  • fixed: db:eq() now escapes field names when querying the database
  • fixed: db:fetch() sort operator is now applied to all fields
  • fixed: db:set() to work
  • fixed: disabling/re-enabling MCCP from the game no longer breaks output
  • fixed: downloadFile() now supports https:// URLs
  • fixed: duplicate .xml files if you specify an existing file to use when exporting profiles or triggers
  • fixed: duplicate area names in the mapper are no longer allowed
  • fixed: errors window will no longer show errors about WindowResizeEvent at startup
  • fixed: exportAreaImage() now draws doors as well
  • fixed: getExitStubs() to return correctly if no exit stubs are defined
  • fixed: Geyser clickCallback passes all arguments to function, rather than only the first
  • fixed: geyser flash() callback fixed
  • fixed: Geyser.MiniConsole:setBold(), Geyser.MiniConsole:setUnderline(), Geyser.MiniConsole:setItalics() toggles to work
  • fixed: Geyser.MiniConsole:setFontSize changing fontSize of other miniconsoles
  • fixed: insertText() crashing when containing newlines (“\n”) and used outside of triggers
  • fixed: io.exists() can now detect if folders exist on Windows
  • fixed: minimised alias/trigger/etc editor wouldn’t come back if you pressed on Aliases/Triggers/etc buttons
  • fixed: Mudlet randomly resizing on OSX
  • fixed: new rooms default to area -1 in the mapper
  • fixed: permanent triggers that get added from a package/module import no longer end up behind in execution order after existing temp triggers
  • fixed: regex compilation errors in triggers and aliases are now reported correctly
  • fixed: script editor losing your scripts
  • fixed: setExitStub() to allow in/out exits
  • fixed: setExitWeight() won’t accept invalid exits anymore
  • fixed: some profile icons in the connection dialog no longer have a black background
  • fixed: spawn() to read more than the first line of the output
  • fixed: tempLineTrigger() crashing under very specifc conditions
  • fixed: typos in item activation/deactivation messages in the trigger/alias/etc editor
  • fixed: uninstalling scripts now also unregisters the event handlers they had
  • fixed: xterm256 colours not showing up properly
  • fixed: you can now pass numbers bigger than 999999 through Mudlets event system
  • fixed: sound not working in 3.0 previews
  • improved: 2D map selection now has the info label dynamically move out of the way as needed
  • improved: changing areas in the area selection mapper dropdown now centers on the area
  • improved: copying maps across to other profiles automatically reloads the map
  • improved: createGauge() can now specify the gauge orientation
  • improved: createMiniConsole() can now be called multiple times to change the layout of a miniconsole
  • improved: createRoomID() can now take a starting roomID
  • improved: db:add() to return a positive result on completion or nil and the error message on fail
  • improved: db:aggregate() now allows filtering by distinct values
  • improved: db:query_by_example() can now be used with all functions as the query
  • improved: display({}) outputs {} and not {\n}
  • improved: drawing custom exit lines is now more intuitive
  • improved: echo() now uses the current foreground/background colours of the cursor
  • improved: exits interface for the mapper reorganised and has its own icon
  • improved: fg(), bg() accepts “main” parameter and report wrong color names used
  • improved: game profile tabs in the main window are now re-orderable
  • improved: getColumnNumber() can now return the column number for a miniconsole as well
  • improved: getLineNumber() can now return the line number for a miniconsole as well
  • improved: map can now store players position (requires map format 18)
  • improved: map loading speed
  • improved: much faster initial Mudlet loading
  • improved: mudlet.exe now has an icon on Windows and in the Control Panel
  • improved: raiseEvent() now takes boolean and nil arguments
  • improved: replace() can now have a 3rd argument to keep the colour
  • improved: room deletion in the mapper is much quicker
  • improved: room/area deletion speed in mapper
  • improved: searchRoom(), getRoomName(), setRoomName() can now work with non-Latin characters. This is leading up to upcoming work to make Mudlet i18n friendly
  • improved: setExitWeight(), addCustomLine(), setExitStub(), connectExitStub(), lockExit(), hasExitLock(), setExit() can now take shorthand “n”, longhand “north” and numeric 1 arguments for specifying the exit
  • improved: setGaugeText() now works with my text here to align the text
  • improved: showColors() colors are clickable, added showColors(columns), showColors(filterColor), showColors(columns, filterColor) options
  • improved: table.contains() won’t error if passed nil for the table argument
  • improved: various mapper functions now find rooms faster
  • improved: word wrapping now gets rids of leading spaces on wrapped lines
  • improved: you can now double-click on words in the main window and miniconsoles to highlight them (also: you can configure what it should stop selecting on)

Posted in Uncategorized

One Response

  1. Mudlet 3.0 final is here! | Mudlet

    […] A lot of work went into the mapper. Mudlet can now perform automatic quality checks on your map, a lot of the right-click windows in the mapper have been improved, custom exit lines creation has been streamlined, and pathfinding performance across large maps and distances has been improved. For coders, a lot of new functionality has been introduced – check out the API changelog. […]

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.

Subscribe without commenting