Existing players used to logging in with their character name and moo password must signup for a website account.
- Fay 5m
- Frozenpizza 2h
- Rowella 13m
- Hivemind 1m
And 13 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.

WEBCLIENT LOGS NOW 100% LOCAL

New webclient logs are now 100% local and do not rely on the styling from the sindome.org website. The styles are 100% included in the log file, and that means they will look just like they did at the time they were made, even if we update the website or webclient styling.

Old logs should remain working.

MOBILE WEBCLIENT BUTTONS

The mobile webclient now has up/down buttons to go through your command history more easily, just like up/down does on web.

NEW COMMAND HISTORY SEARCH

If you type: control+r

You will get a command history search that you can start typing into, and move up and down to review previous commands, and then if you hit enter it will populate that command in your buffer.

You can hit esc or the 'x' button to leave this UI.

The command in your buffer isn't sent, giving you the opportunity to edit it.

If you actually want to refresh the browser window, just hit control +r while inside the overlay and it will execute it (so basically control+r twice).

Not sure how many people would want to do that– but we are using control+r because that's what a terminal search uses, so it is easy to remember for those with the muscle memory.

FRISK AND PLANT ON ROBOTS IS BLOCKED

You can no longer frisk or plant things on robots that are powered off.

VICKI AUTO RESPONSES FIXED

Vicki was broken and likely has been for a while. She wasn't responding to certain things she should and she would TB if you thanked her.

I've resolved this. Try talking to her about meat :)

SPEAKING ON THE PHONE

I fixed an issue where when you spoke another language on the phone and the other person didn't understand it, it would garble the voice message as well. Also fixed an issue with being fatigued while talking on phone not garbling like it should.

TB AFTER MOVING WHILE BROWSING IN MARKETS

If you moved while browsing in the market at the right time, you might get a TB. I think I've resolved that.

EXAMINE ME ON OBJECTS THAT SUPPORT BATTERIES

The battery 'load' verb is on the battery, not the object that supports loading. This makes it hard to tell what items accept batteries. I've added a line to examine on all objects that have a battery property, to show how to load the battery. Should reduce confusion.

WEAPON ENHANCEMENTS FIX

Enhanced weapons were not losing their enhancements due to a bug, they now will. Please be aware, that if you have an enhanced weapon it will not remain enhanced forever now.

BOXS TO BOXES

Fixed the $quinn_utils:pluralize verb to properly handle pluralizing box to boxes.

YOU CANT DO THAT WHILE

Fixed an issue with grapple where if you tried to get something you would see:

You can't do that while You can't do that while grappling someone.

I also resolved a more general issue with the way this worked, for action checks, so it should fix this for some other cases that were broken as well.

If anyone see's anything weird here, let me know.

KO / REVIVE MESSAGES SEEN BY ALL NOW

These messages were routing through the paying attention to code, after a change I made to make you able to see knockouts in a room within a room. I've updated this to add a loud speech source so that ko/revives will be seen by all in a room.

~ TB FROM LANG PARSING

Fixed a bug in the language parser where a misplaced ~ in a message would cause an NPC to tb trying to detect the language you were using.

@STATS RUNNING OUT OF TICKS TB

Fixed an issue where if you have lots of temp effects, your @stats might TB from running out of ticks.

DOUBLE CORPSE RACE CONDITION

If two people neck snapped a KO'd person at the same time it would create two corpses. I added a finalizing_death lock to prevent this from happening. You might still see two neck snaps, but only one corpse will be created.

HOLOGRAM WIKI FIXES

- Fixed a bug where lore pages lacking headers (#) would be treated as if they did not have any content
- Fixed a bug where the final piece of a lore page after the last header was being omitted

FIRE DAMAGE FIX TB FIXED

Fixed a TB where cleaning up fire damage could TB if the fire was completely fixed while the loop was still running (like if someone else was also cleaning and they fully fixed it before your fix finished).

MAJOR WEBCLIENT UPDATES

I've made a ton of webclient updates. Hopefully they are seamless and don't break anything but please @bug any issues and be patient while I resolve them.

ANSI STATE MACHINE

I've implemented an ansi state machine for parsing ANSI/XTERM/TRUECOLOR. This works much better than the regex stuff we were doing before and actually fixes some lingering issues where colors might not close when they should.

I expect some minor issues in game due to fixes we put in place in the MOO to correct for webclient issues, that I will need to debug and change. Please flag these with @bug.
While we don't support TrueColor (RGB) some games do, and this client is for everyone, and now it works correctly for TrueColor, and if we decide to implement truecolor in the future we are in good shape already.

CLIENT OPTIONS

You have many more options now and they are broken out into different sections via tabs in the client options overlay.

FONT FAMILY / SIZE / COLOR

- Input Font Family
- Input Font Color
- Input Font Size
- Output Font Size

SCROLL PAUSE TOGGLE UPDATE

There is a new toggle that auto pauses the scroll when you scroll up and unpauses it when you scroll down. This started out as a mobile specific feature but I actually like it so much that I made it available to everyone.

IMPORT / EXPORT / RESET CLIENT OPTIONS

There is now a new tab in client options for importing/exporting your client options. It saves a small json file that you can use to import into a different instance of the webclient, like mobile, or a different computer, if you want to keep your options consistent.

CLIENT NOWRAP BLOCKS

I have implemented (in the client, not yet in the MOO, so no impact currently) a feature that will let us tag blocks of content as 'nowrap'. This will make the mobile client put this content into a horiztonally scrollable box, which will maintain the formatting instead of wrapping it.

This is most useful for mobile, and other small screen devices.

Like I said, I haven't started using this in the MOO, but examples:

- The Sindome Splash Screen when you connect
- When you view a node in game
- ASCII art SIC ads
- Other things that rely on their visual presentation to convey meaning

There is an option to turn this on and off in the client options.

MOBILE KEYBOARD UPDATE

I've updated the input area to tell mobile keyboards not to do things like auto correct and auto capitalize as these are super annoying with MOO commands. Entry should be much easier.

MOBILE TOOLBAR

The mobile toolbar wasn't sticky, and making it sticky was difficult. It was also difficult to hit the little icons. So on small mobile touch screens I've turned these into buttons that are locked to the input buffer on the bottom of the screen. On desktop small screens they will remain buttons on the bottom.

CLEAR BUFFER ON MOBILE

This will have a confirmation prompt on mobile when you try to clear buffer, in case you fat finger it.

TRANSPARENT OVERLAYS

This option was not impacting enough of the overlays, it now impacts all of them.

FURTHER STANDARDIZATION OF ICONS

I've updated the glyph icons to look and work better for the toolbar.

SINDOME PUBLIC WEBCLIENT UPDATED

I've updated the Sindome Public Webclient to run the latest webclient build.

For anyone who doesn't know, the public client is setup to allow you to connect to any MUD, and it's free for anyone to use.

Also, I updated the server it runs on to a modern EC2 instance as it was running Ubuntu 16, and now it's running Ubuntu 26.

(Edited by Slither at 10:09 pm on 5/27/2026)

CRATE RUNNING LIMITS & TRACKING UPDATED

Previously:

We tracked the most recent crate you ran + a counter. The counter was used to cap how many you could run.

This was flawed.

If you ran a crate at 9am Monday, 6AM Tuesday, 3AM Wednesday, 1AM Thursday, and 10PM Thursday, you would hit your max crates for the day.

This is because we were not tracking the timestamps of the crates. Any run within a 22 hour window after another run would effectively reset your crate timer to the time you requested the crate.

This was annoying and unpredictable.

Moving forward:

We will use a rolling list of timestamps that gets pruned when each timestamp falls outside the 24 hour window.

You can run up to the cap within the rolling window; after that, each run becomes available again as it ages out of the window (for example, if you ran 5 over 5 hours, you regain one slot when the oldest of those runs expires, then the next, and so on).

Since it's a rolling 24 hour window, it means you can effectively run ~35 crates in a week assuming you don't hit the earnings cap. This was already technically possible with the old system, but very unlikely as you would have to time it exactly right. The new system should be much more forgiving, but it also means you may need to spread your crate running out a bit, as 'being able to run crates' has gone from 'you can run 5 crates right now or you can run no crates right now' to 'you can run some number of crates until you hit your daily cap again'.

(Edited by Slither at 10:55 am on 5/28/2026)

details

Updated the 'details' system for staff to make it easier for them to add 'details' to rooms that people can look at.

For example, in some rooms you can look at things mentioned in the description even though it isn't an actual item, and you'll get feedback.

DISGUISE SLIP FIX

When your disguise slips and reveals your face, we were doing a player:tell but the context should have been this:tell, resulting in the potential for the wrong person to see the 2nd person notification, meaning you wouldn't know your disguise slipped and another person in the room would get the wrong message.

FIXED A LINGERING CRATE DELIVERY BUG

Missed a spot in my refactor of crates for freight delivery – fixed now and fixed all the records that were hanging around. Think it only impacted one person. Sorry for the troubles!