Guys, can you point out to me the Git commit (at least the first 8-10 digits of the SHA1) of the code that you started with - I had an issue with room movement in the GUI being weird and it was because I had a - sign in the wrong place. I don't think I released code with it in but I have to wonder and want to check!
I also had improved code for the "room selection" widget which also shows the room names if they are used and which dynamically resizes the widget that shows them so that the height needed to show all the numbers (and the names if required) is
just enough to show and it expands and contracts as needed - does yours do that or have I yet to put that out there?
<aside>{I've worked on multiple revisions of code and I'm sort of losing track of what "normal" people are currently at
}</aside>
As for the Room (and Area and Map) User Data, it might look as though I've broken backwards compatibility a little there, but since it
is legitimate to store an empty string as the "Value" against a "Key" (e.g. using the presence or absence of the key as a flag) it is not possible to return an empty string on the absence of the "Key". I know it messes things a bit but I could not see a different way to do it - and yes it bit me as well,

but in virtually all the Lua functions I get my hands on, if there is a
nil return value there will be a second return as a string explaining the reason for the error. Usually an invalid
type of an argument will cause a Lua error which terminates the current command and puts a error message on the error display of the editor for that profile AND on the central debug console if it is active; on the other hand an invalid
value for an argument, e.g. a non-existent room number for a command that takes an existing room number will go the nil+message route which is a fairly standard way for Lua - it means that following code can recover in ways that it can't if a Lua error is invoked.
As we refactor and standardise the
extensive {the C++ source file for TLuaInterpreter is the largest one in the entire project} range of Mudlet Lua subsystem commands (some of them have really misleading or just plain wrong error messages: e.g. some refer to a completely different command as the code was copied from another one and although made to DO the new thing but the error messages were not revised) you can expect this method of reporting failures to increase.