
Meeting Overview
- The Simulator User Group (also referred to by its older name of Server User Group) exists to provide an opportunity for discussion about simulator technology, bugs, and feature ideas is held every other Tuesday at 12:00 noon, SLT (holidays, etc., allowing), per the Second Life Public Calendar.
- The “SUG Leviathan Hour” meetings are held on the Tuesdays which do not have a formal SUG meeting, and are chaired by Leviathan Linden. They are more brainstorming / general discussion sessions.
- Meetings are held in text in-world, at this location.
Simulator Deployments
- On Tuesday, October 28th, the SLS Main channel was restarted without any deployment.
- On Wednesday, October 29th:
- The BlueSteel RC channel should be updated with a new simulator update (Imbu). This “has a couple of performance memory fixes in the simulator. It fixes an issue with region names that contain a ‘.”
- The remaining RC channels will (I believe) be restarted without any update.
SLua Work
- Harold Linden continues to work on the SLua implementation, focusing on some minor API changes, which he initially defined as: “just tons of lingering issues to file off sharp edges on APIs to make them do what people would reasonably expect.” Later in the meeting, he further expanded on the first of these changes thus:
I was looking to clear up one of the big warts of LSL: “keys” are not strictly UUIDs, they’re strings in disguise. That means the UUIDs that vary only in casing are considered unequal, which is very weird if you’re used to more modern UUID APIs. The only cases where people generally want that behaviour is in llMessageLinked() / ‘link_message()’ so you can pass an extra string as ‘id’, but it causes weird unexpected issues elsewhere. In SLua, I’d like to make ‘UUID()’ return nil if the passed-in string is not a valid UUID, like the existing Lua functions do, and make [the] ‘link_message()’ ID field just a string, because people mostly mash arbitrary strings in there. … All APIs that accept key or string in SLua are implicitly a union of ‘string | UUID’, and that doesn’t change.
-
- This approach was welcomed by the majority of scripters at the meeting.
- As a part of this discussion, it was suggested that SL could benefit from an improved llMessageScript, such as llMessageScript(scriptname,data), and Harold Linden indicated that something like this is being planned.
- The other API change Harold is working on is the removal of ‘integer()’, which he views as having been only a temporary requirement, but is now no longer needed as he has “fixed up all the bridges to existing LSL functions to tolerate a Lua number”. As such, he regards it as a nuisance to developers as it is likely to slow scripts and make them hard to optimise, as the Luau optimiser doesn’t know about it.
- Harold also noted that he is not opposed to “adding stuff” to LSL on SLua (e.g. such as a table type), however, given the amount of foundational work that’s considered a higher priority, this is unlikely to happen soon (if at all).
- Rider Linden also noted that such work would not be a small task, and as such, nothing is currently on the drawing board as yet.
- Yardang, one of the SLua regions on Aditi has been down for possibly as long as a week. Rider Linden has requested that anyone testing SLua who notes any if the the associated regions appears to be down to contact him in-world.
- Rider was engaged in a couple of technical debt projects over the course of the past week but is now now working on the official native VSCode plugin for LSL and SLua once more. The hope is to have this deployed in the upcoming week, although it will need further tweaking when the next version of the SLua project viewer is issued.
- The first half of the meeting included a general discussion /catch-up on the above and related work, including:
- The plugin should support linting (check a script for errors without running it) and also downloads the current language definition from the viewer and formats it so Luau-LSP and Selene can use it.
- Wolfgang Senizen has also produced a VSCode plugin + documentation for use with SLua, although notes this will likely be discontinued when the official plugin is made available, and he will shift to contributing code to that project.
- A note that LSL/SLua functions cannot be directly called from outside of the simulator (e.g. via a web page), but “in theory” it might be possible to create an RPC (bot) service of some kind to achieve the same.
- Harold Linden reiterated that LL is working on a new LSL / SLua web portal, which will include documentation and code examples, etc.
- The latter part of the meeting focused on suggestions for future SLua support, and discussions on the use of JSON / LLSD – please refer to the video for details.
In Brief
- Harold and Leviathan Linden have been working on fixes for script scheduling (“do with have to do anything for this script / are we allowed to run it?”), and which should reduce script times on a simulator “a reasonable amount”.
- Additionally, Leviathan Linden is working on fixing more memory leaks within the simulator code, noting that those fixed in the upcoming Imbu release are “small potatoes” compared to what the Lab thinks is out there.
- Leviathan is also hoping to get back to the game_control work in the the near(ish) future, noting, “I have a link to the Linux viewer branch (which is almost deliverable) and I will be building on top of that”.
- Given the lateness of the year and the limited time for further simulator updates, it is unlikely there will be further work on region crossings during 2025.
Date of Next Meetings
- Leviathan Linden: Tuesday, November 4th, 2025.
- Formal SUG meeting: Tuesday, November 11th, 2025.
† The header images included in these summaries are not intended to represent anything discussed at the meetings; they are simply here to avoid a repeated image of a rooftop of people every week. They are taken from my list of region visits, with a link to the post for those interested.