Existing players used to logging in with their character name and moo password must signup for a website account.
- Hivemind 13s
- JanekSembilan 34m
- Ociex 33s Brownies for the win.
- Fay 15m
- PsycoticCone 23m
And 14 more hiding and/or disguised
Connect to Sindome @ moo.sindome.org:5555 or just Play Now

[May '26] Improvements & Bug Fixes
A list of fixes and improvements!

Starts Here!
Performances and stuff

Made a change to a code block in a verb that I think was getting people stuck in the 'PERFORMING' state, preventing them from performing some more.

Hopefully, it should be fixed and will allow people to perform to their heart's content.

Please report any wonkiness that may have been introduced.

XCHANGE NOT WORKING PROPERLY

There was a bug in the final step of the xchange code that was sending arguments in the wrong order, causing gender to not be updated. I've fixed this. Got a single player to fix manually that I know of, when I catch them online.

BLOODY MESS TB

Fixed a TB with bloody messes where certain data not being present caused an issue.

MORE GARAGE FLIGHT PATHS FIXED

You can now fly out of these in a fly string without the flight computer complaining.

- NLM - Parking Garage
- VS - Parking Garage
- Belgrave - Underground Parking
- Cordoba Mallplex - Parking
- The Praetorian - Underground Parking

NETWORK CLEAR TB

Fixed a TB in the network clear code for security networks when trying to delete a key that doesn't exist.

ONE SHITBERG BLOCKING TWO EXITS

I've updated the code so that when sewer flooding water hits a shitberg and causes the shitberg to block a different exit, the original block is cleared first.

PARTIALLY COVERED ROBOT PARTS AND EVAL

If you eval a robot now, you'll see partially covered robot parts right after fully visible ones. Partially covered ones will not give your a condition, as they are partially covered and thus you can't fully evaluate them. This should avoid confusion that players have reported with not seeing parts that are not fully covered.

@BUGS UPDATE

Every bug submitted prior to February 18th, 2026 has been resolved. Only 14 bugs remaining.

EMP DAMAGE AND SIC

The SIC cyberware had no emp resistance, meaning it could be damaged and disabled by an EMP. We actually don't want this. It's only happened once ever, that we know of. I've given it much better emp resistance (to damage).

This should not impact disabling it temporarily / deadzoning it with an EMP. Just permanent damage to it.

Don't wany immies getting their SICs damaged, or people using EMPs in lieu of going to the ripper doc when they need their SIC gone.

JUMPING ACROSS ROOFTOPS WHEN THERE ARE MULTIPLES

You can now jump across 1st/2nd/3rd/4th [direction] edge when there are multiple rooftops in a direction.

If there are not multiples, the normal 'jump across e edge' style works. Otherwise it forces you to add an nth modifier.

PARAGLIDERS LIMIT JUMPING TO +10 ROOMS

You can only jump UPWARDS with a paraglider to another rooftop if that rooftop is within 10 z-index rooms of your starting location.

LOOK EDGE UPDATED

If you look at an edge, the messaging for the rooftops you see in that direction is now expanded. It uses to just be 'rising above' but now it will be 'extremely far above', 'very far above', 'far above' and 'a bit above'. This should give you some additional context.

FIRE ESCAPES & JUMPING & LOOKING

I've updated the fire escapes in game such that they are NOT targets you can typically jump to from a rooftop. This should prevent the roof that overlooks the Ashlin Crown building from having 15 rooftops you can jump to.

You can still attempt to jump FROM the fire escape to a nearby roof, and I've left the fire escape that is LEVEL with the garage as a valid jump location but excluded all the others to make this a more manageable jumping experience.

JUMPING BUGS IN GENERAL

This is a lot of change to jump, please @bug any issues, weirdness, stuff like that so I can fix/adjust.

AMMO PRODUCTION KITS FIXED

Ammo production kits had a bugged property that was causing them to trace back when trying to make certain types of ammo. This was then compounded by a bug in the error handling code for these kits.

Both have been fixed, and ammo kits should just work now for anything you know how to make. If you run into any issues, raise a new bug so we can investigate.

RIOT GEAR CAM + CHANNEL 777 FIXED

This had been broken for a while due to the changes to security networks several years ago and this camera not being ported over. I've moved it and it should be working as expected now, and showing what's going on in RiotGear on channel 777, with the view rotating between different view points once a minute while games are going.

BAILING WHILE DRIVING

If you uncontrol/exit the vehicle/dismount while driving a vehicle, the vehicle will continue forward for 1 room and then either roll to a stop or crash due to the lack of driver. It's a coin flip that decides which outcome.

I've tested this and the messages are mostly right, though there might be a tad bit of wonkiness about you continuing to drive smoothly or something even if you've uncontrol'd or dismounted.

I don't think this outcome will come up much so it may be a non issue.

I had to edit vehicle movement so if anyone see's any weirdness please @bug it.

DUPLICATE STOP MESSAGES IN TRAFFIC

This should hopefully be fixed now. If you see dupe stop messaging in traffic, @bug it and include the messages.

RIPPING SKILLSOFT WARES FROM CORPSES

This was broken. It would say it succeeded but then not actually rip, and it would stay in the corpse. I've fixed it.

CHEFS ISLAND / PREP COUNTER RECIPE MASKS

Updated how we pull recipe masks so that ones without full configuration (like tacos) show up correctly when you craft [something] using chef.

Hopefully fills in the gaps people were seeing where they bought the groceries but didn't see available recipes for the items.

DUPLICATE COMBAT MESSAGES IN VEHICLE COMBAT

I think I managed to get rid of some of the duplicate combat messages where you saw the attacker and the defender messages one after the other.

FLYING THROUGH THE DOME WALLS AND OTHER WEIRD DYNAMIC ROOM ISSUES

I've tracked down a lingering and super annoying dynamic room issue where we were calling a verb (match_exit) to see if we had any real exits pointing in a direction, but which had the side effect of creating a dynamic exit if one didn't exist. This side effect exit would then be used, but blocked because it did something silly like fly you through the dome walls into the badlands.

However, if you attempted to fly in that same direction again, in some situations, it would use the same exit that was just created, without all the checks for if it was valid and not doing something silly (which we only did on dynamic exits that were just created).

I've resolved this with a read only check. I've tested, and had a few players test, and flight and other stuff seems to be working fine and the bug is gone.

This likely fixed a bunch of random bugs that people have seen rarely over the years.

It might also have caused issues that I can't foresee, so if you notice something, please @bug it right away.

JUDGES BACKING UP CRITTERS

Judges will no longer jump in on the side of critters when a PC attacks a critter in front of a judge (or vice versa). This was a weird edge case that we don't see much since rats don't normally show up on Gold, but nonetheless, fixed.

WE DID IT! THERE ARE NO OPEN BUGS! FUCK YEAH!

Total Bugs Submitted: 2094 Total Unresolved Bugs: 0 Total Unresolved Public Bugs: 0

AUTOMATED TRACEBACK ENHANCEMENTS

We log all tracebacks to a channel that a coder can monitor, and rewind if needed. This is helpful for looking at historical tracebacks, and seeing how often something happens, but it's just the raw traceback and it isn't always that helpful.

I've added some new code that, when we catch an error and log it, it will kick off a process that attempts to enhance the traceback with additional info, such as:

- object the TB occured on
- object the verb is defined on
- info about the object
- contents of object
- location of object
- information about the location
- info about the verb & the contextual lines of code around the line with an error
- info about the verb that called the verb that had the tb (and so on, all the way up the stack)
- timing of the error

I'm offloading all this data to the SQL db so it doesn't bloat the moo. And that means we can do some additional things easil such as checking to see if we have already seen this TB before, and if so, instead of saving it again it updates the existing record, and updates the count of times we've seen it, and the last seen time.

This will make it super easy to identify frequent TBs that we need to look into.

This data also means that I can set an LLM to review all the TBs automatically and try to identify the root cause and a fix, similar to what I've been doing with @bugs.

This is part of being more proactive when it comes to fixing issues, since we've solved for all the bugs (at least for now).
@TYPO IS NO MORE. LONG LIVE @BUG

Typos no longer get submitted through a separate system. Typos are submitted via @bug (you can still use @typo, it's now aliased to @bug). I've updated @bug with a new category id (10) for 'Typo'. Please use this moving forward when submitting typos.

I've also removed all the admin facing typo specific triage tools as they are now unused.

This change will also let the automated scanner identify and triage typos for fixing.

AUTOMATED TRACEBACK TRIAGE

I've implemented automated traceback triage (manually kicked off by me, while I monitor it for now) similar to the bug triage I've already implemented.

This takes a more offensive approach to identifying bugs. Yesterday I implemented code that enhances tracebacks that we detect (but that are not surfaced to the player) with extra data that is then stored in the SQL db, on top of logging them to a channel.

Now, I've implemented a series of MOO verbs that allow an LLM which is connected to our dev server to pull these TBs one by one, investigate them, decide if they still exist, mark them as resolved if they are already fixed, and automatically submit a bug with the issue + root cause + suggested fix.

This should surface tracebacks as bugs for us to fix, without a coder (me) having to manually review old TBs in the logs, and make it faster for us to resolve them because we have enhanced tb info that is not in the raw logs.

FACTION SCORE CHECK BUG FIX

Fixed a TB that can occur when an NPC without a valid group (or an invalid group obj) is checked for faction standing/score, which doesn't exist.

PUSHABLE VEHICLE REQUIRES IOBJ NOW

It was possible to do 'push [vehihcle] to' without an indirect object, which caused a TB and you'd get stuck 'pushing' forever.

GM FOCUSED PROCESS IMPROVEMENTS

I've been focused on making GM lives easier the past few days. I won't go into huge detail on every change but some highlights below.

- Every puppet now generates a full log of everything the puppet saw that is saved to disk automatically. Full admin have a command to list previous puppet logs for admin or for NPCs. Support GMs can view logs they are told about. This should help with auditing, consistency in puppets, and training. No more 'how does Zenigra talk?' as you can just go review some historical logs from the admin / puppet combo that does that NPC best

-When an admin adds a note including an NPC they puppeted in the past few hours the puppet-log from that interaction is added to the note automatically as a reference. Should surface the context GMs need when they are viewing notes, without adding to GM overhead

- Every gridmail sent/replied to/forwarded by an admin is attached to a note context buffer. That context is added as part of the next note left by that admin, automatically. This should dramatically cut down on admin copy & pasting gridmails + responses into notes and streamline the entire process.

- @note-context verb added so admin can review/edit the context they are including in their notes

- Context is mostly just references to existing stuff, like a gridmail id, so that when we render the note we render the gridmail right after, so admin don't have to go digging for the context for what they need

(Edited by Slither at 11:29 am on 5/8/2026)

AUTOMATED DRAFT HISTORY SCANNER

When a player without an approved history submits a draft history, we submit that to GPT and ask it to review. It will return approved or not approved + comments. It only does the basics, but it provides that feedback immediately, prior to the player submitting their history for admin review. It does not stop the player submitting it, even if it doesn't pass the GPT test.

There will be a message to the player when the scanner finishes running with any feedback, and a recommendation to approve or revise.

It checks the basics that listed as required in 'help writing-history' such as being 18+, birthdate, and generally explaining skills.

GMs are also notified of the results of the scan. This should help new players get feedback right away, and GMs to spend less time on the tedious parts of validating histories, and more on genuine feedback or approving.

(Edited by Slither at 9:34 pm on 5/8/2026)

FILLING FROM DRUMS AND CANS

If you're filling something from a drum or can you can't run the fill command multiple times anymore, which was causing a TB.

PROGIA MESSAGING APP INPUT HELP UPDATED

Due to confusion I've updated the app help for the messaging app to clarify that when you send a text message via the 'input write [number]' command you should include your message in quotes:

input write 555-1234 "Sup? How's it going you a dumb baka laka this is a quotes string with prepositions and stuff" with prog

The quotes are needed because otherwise if you include 'is' or 'with' or another moo recognized preposition in your message, it will break the verb execution and not work.

USING - TO TALK INTO YOUR PHONE NOW SHOWS WHAT YOU SAY TO YOURSELF

I realized tonight that because using - doesn't echo the text back to you, that this text doesn't end up in logs! That's a shame. You miss out on capturing RP if it doesn't log.

Well, it does not. This doesn't change how others see you talking, it just now shows you what you're saying echoed back to you like this:

-Cool.
You speak quietly into your phone: "Cool."

XHELP Message

"Love the progia change! Any chance we can get the same thing for xhelp as well?"
You now have this, you'll see the xhelp message you sent.

XHELP Part 2

If you type 'xhelp' without a message, it'll show you your last xhelp message.

TBS WITH HOLO ADS

Made these not target each other so that they stop TBing when one of them unrezes.
LOSING INCOMING OR OUTGOING MESSAGES ON PROGIA

There was an issue where when viewing your incoming messages, it would delete your outgoing and vice versa. Should be fixed.
FIXED DESC FOR JACK RABBIT BACK ROOM

Fixed the description.
CYBERWARE INSTALL REQUIRES 'OPERATE' NOW

Instead of 'heal' it is now 'operate' for all cyber installs. This was partially done, but was requiring heal for some.
EMOTE NOW SUPPORTS MANY QUOTED STRINGS

Previously, you couldn't have more than two quoted strings in an emote. This has been refactored into oblivion and now you can include many quoted strings in emote.

Still, you should use pose instead.
GRID PROGRAM PARSER UPDATE -> REQUIRES LOGIN COMMANDS

Added like 10 commands that required you to be logged in but didn't actually require it in the program run/parser so you'd get a TB if you ran it while not logged into an account. This should prevent the running and TB.
AERO FLEE INTO DYNAMIC ROOMS

There was a bug that prevented aeros from fleeing into dynamic rooms (like up from a rooftop). This likely was the cause of a few different flee issues with vehicles over the years. I've updated the code to support fleeing properly through these rooms either with 'flee [direction]' or just 'flee'.
WEBCLIENT AUTO LOGIN GUEST LOOP

It was possible to get stuck in a loop where any time you loaded the webclient you logged in as a guest even if you didn't intend to. Mostly happened to new players which is especially annoying. I think I've fixed it.
REMOVED OLD ETIQUETTE PAGES

The etiquette pages have been removed. We have much better updated help files / expectations files available than those old things.
G NODES SEARCH IS NOW CASE INSENSITIVE

Case insensitive, cause that's how it should have been from the start.
GLOBALLY ACCEPTED ROBOT RIGGING COMMANDS

I've added a list of globally accepted rigging commands that robots can now do (some were already possible on some but not all bots:

{"enter", "exit", "@look_place", "@lp", "@temp_place", "@tp", "emote", "pose", ".", "to", "whisper", "go", "gl", "glance", "examine", "shout", "watch", "ex", "exam", "say", "look", "l", "inventory", "i", "out", "o", "enter", "\\", "stop", "get", "drop"}

If adding any of these commands turns out to be a bad idea or people are being a nuisance with them, I will restrict them as needed.

(Edited by Slither at 9:07 pm on 5/11/2026)

RIGGING COMMANDS SORTED ALPHABETICALLY

I've made the commands show up when you request them, in alphabetical order so they are easier to read.
ROBOT =HELP FORMATTING

Changed the columns from 40 to 60 spacing so it reads much easier.
ROBOT COMMANDS UPDATE CONTINUED

I was a biiiit overzealous when I made it so all robots could get/drop/inventory. Some are configured to not have inventories at all. I've removed the commands from these ones (quadrupeds mostly). The rest still have these commands. Should prevent the TBs some of y'all were seeing.
ROBOT COMMANDS CONTINUED #3

These commands are now available: "watching", "address", "addressing", "pay", "speak", "speaking", "@trust"
ROBOTS @ACCESS & AUTO ACCESS COPY

I've made it so when you use a controller it should auto copy your @access settings to the robot. Robots also now have @access though it will get overwritten if someone else uses it or if you use the controller again.
ROBOTS REQUIRE VOCODER TO SPEAK

I've updated the code so pose/emote/shout/whisper/to along with say (which was already covered) now require a vocoder installed in the bot in order to speak. If anyone notices any issues with this, let me know.
WEBCLIENT LARGE BUFFER PAUSE/UNPAUSE PERFORMANCE ISSUE

There was a weird performance issue due to pause/unpause of the buffer where it would lag for a long time due to doing a bunch of unneeded work. I've changed how it does this to hopefully solve that issue.
FIXED ANOTHER PROGIA TEXT LOSS BUG

There was a further issue in the progia text messaging that was caused by a variable being reused, which led to text losses. I'm sorry about that. The issue should be fixed now, hopefully for good. I just tested all the combos I could think of with a player and it looks good.
$CU:SIN RETURNING EARLY

I made this verb call, which we call 3.2 million times -a minute- when there are 45 people online, return early when a sin isn't needed. This seems to have dropped the CPU usage by ~15%. It's somewhat hard to tell because random things are always happening in game, but it's a solid improvement.
REMOVED SECONDS_LEFT FROM $CU:SIN

At the direction of DistantOrigin and lisdude (maintainers of ToastStunt), who I shared my adventures in $cu:sin optimization with, they suggested I remove the seconds_left() check as it is not really needed anymore, with modern CPUs and how fast they are.

Removing this dropped our CPU usage even further. We were at 35% or so as the baseline with 45 people on. We're down to 6-8% CPU usage now with 40 people online.

Freaking wild. The MOO should feel more snappy and have more room to grow now.
ROBOTS CAN SHOWER AND DRY

Title says it all.
The Sly

Updated the description of the room.
SKYWALK EDGES UPDATED

Removed some skywalk edges that were saying you land in a mix room but were actually dropping you in a different room much higher up. This was not an intentional landing area. Jumping off the skywalk without a paraglider == death.
TERM SCANNING WHILE MOVING FIXED

There was a bug where you could scan a room or device with a term, then instantly leave the room and the scan would continue as if you hadn't moved.

This has been fixed, the terms will now check to see if you're still 1) in the room you're scanning or 2) in the same room as the device you scanned / it's in your inventory still.

If there's any weirdness with these checks please file a bug.