Existing players used to logging in with their character name and moo password must signup for a website account.
- Raven 13m I lost myself, in the dark charade.
- Bumpkin 2m
- Sulfurado 3m
- Vanashis 1h
- zxq 24m Blackcastle was no ordinary prison.
- Pladdicus 16s uh
- Balreskan 2m
- BigLammo 12m https://youtu.be/3qTLAdQbr-A
- Sambyotic 49s
- Terrible_the_duck 40m
- Diamond 4h After Winter, must come Spring.
- Sivartas 2h
- Maru 49s
a Kard 13m
- Ociex 5s Brownies for the win.
- Mikael 1s
- Acupa 2m
a Mench 12m Doing a bit of everything.
- NightHollow 9m
And 22 more hiding and/or disguised

[Oct '25] Improvements & Bug Fixes
Rolling thread of updates from October 2025

MOO SQL UPDATES

I made some updates to the C code that governs pooled SQL connections to fix a small memory leak and also guard against pooled connections being timed out for inactivity to fix some of the TBs people were seeing. I'm hoping this is resolved. Any changes to the server code are inherently dangerous and can cause issues in the future so I try to make these as seldom as possible. I hope we don't see any issues as a result, and instead see more reliability. I'll be keeping a close eye out for issues.
RINGS AUTO HIDING NO MORE

There was some code that made certain rings auto hide when dropped because they are small. This was confusing to me, and to others, and it was causing trouble because it wasn't well implemented and broke when you tried to throw an item.

I've just removed the code that does this.

Npc Wants
Made it so that failed requests (NPC doesn't want anything, or you've hit weekly cap) won't count towards the limit.
SHROUD CHANGES

Shrouds no longer cover the feet and we've updated the description of shrouds to better reflect their actual coverage. The worn description now clearly indicates that the hem ends just above the ankles, leaving footwear visible.

White masked shrouds are included in the change and have also been updated to have the same stat debuffs as traditional shrouds.

Please remember that because you can see footwear doesn't mean a person wearing black boots and a shroud is the only person wearing black boots and a shroud. Use it as part of a reason to identify someone, not the only reason.

GRID REMOVE DEADZONE

Updated the help text for this command to make it clear you can't give SIC to a room (like a sewer) that doesn't ever (without an amp) get SIC.

UNREMOVABLE SHROUDS FIXED

I've fixed the issue introduced when shrouds were changed, where you couldn't fully take them off due to the code thinking you were still wearing it on your feet. If anyone see's an issue, please @bug and xhelp.

STRIP ASCII & SIC KEYS

I've updated the code so that we do NOT strip ascii from SIC keys, as this was resulting in people with this option on not getting the full SIC key.

This change to not strip ascii should only impact the display of SIC keys and nothing else. If anyone notices weirdness, please @bug and I will fix.

SCAVENGERS & DISGUISE

There was a bug where if someone was visibly disguised Dashiro type NPCs would still try to process and fail to pay the disguised person. I've fixed this so it is back to the expected behavior of needing to not be visibly disguised.

DRUG EQUIPMENT IN APARTMENTS THAT GET RESET

This installed equipment in apartments that are reset will get tossed into the market now instead of sticking around in the apartment after it is reset and re-rented.

STEALTH & BLEEDING OUT

I added a message when someone bleeds out while hiding about them falling out of the shadows as they die. I think this should clear up the issues around people feeling that someone who bled out in the shadows was not released from the stealth state, but if people still see it happening, submit a bug.

PDS OUTBREAK & COMMANDS

I added a fork in the code so that when an outbreak of PDS happens it returns control to the calling verb right away instead of waiting for some stuff in the outbreak code. This should hopefully fix the issues people were seeing where someone triggers a PDS outbreak and that causes someone elses command to lag, or their own. If it is still wonky please submit a new bug report.

USING & TO TRIGGER MACROS INSTEAD OF ~

You can now use & instead of ~ to trigger a macro. ~ still works just fine, & is just an alias. I don't think this will interfere with anything, but if it does, let me know and I'll fix.

This change was made as it was requested for accessibility reasons.

DH / DROP HANDS UPDATE

This wasn't running the same checks that 'drop' was to make sure you don't drop stuff in coffins. I've added that check.

I also updated both DH and drop to use :notify instead of :tell so the error responses are not shown on transcoder chips if those are in use.

MAG LEV ENTRANCES & GRID HACKING

Fixed a bug where people on the list to get in for free via grid hacking were not getting in for free.

FEE CHARGING EXITS & GRID HACKING EXPANDED

I've expanded the number of fee charging exits that can be hacked via the grid, so that there are several more in game that are hackable. I didn't touch any that were for player run businesses as I don't want to take money out of player pockets. However, there are now 5+ additional exits beyond mag-levs that a decker can hack themself or another person onto to gain free entry for a period of time.

GPT CHATTER UPDATE

Updated GPT to be less prone to changing the details of rumors it hears. Please let me know how this goes and if further tweaks are needed.

INSPECTING A WEAPON

When you inspect a weapon it will now show you the skill the weapon uses. In many cases it is obvious, but there are some where it is not. Now it will be :)

ARMSTECH INSPECT

When armstech's inspect a gun, if they have enough skill (not a ton needed) they will see the caliber of the gun.

BGBB RECENT ACTIVITY

When you load the BGBB main page, there is now a new section at the top for recent activity. You can click through the recent activity and see all the new threads / posts from that past 7 days.

NUMEROUS POSE BUGS FIXED

I've revamped pose to fix some of the bigger issues people report:

- You can now use more than two quoted strings in a pose and they will show up correctly
- If you include a period outside of a quote in your pose, the name, pronoun, etc will be capitalized properly for everyone
- Made the code much more resilient to including punctuation after a quoted string, so that the quotes are not removed.
- Fixed an issue where @voice would show up in all quoted strings instead of just the first
- Fixed issue with double quote marks showing up in some cases
- Fixed an issue with double punctuation showing up sometimes

I fully expect there to be some bugs but hopefully they are edge cases. Please flag any issues you see via @bug.

Before anyone asks, yes, I'm going to look at making things like .flash properly translate to flashes instead of flashs. But it is late and I need bed :)

The code has undergone a fairly large revamp and I've tested as best I can but it's going to be you all doing weird stuff that I haven't accounted for.

MORE POSE UPDATES

Fixed an issue so that a pose like this:

.wave at me and .tell me, bouncing, "Hi!"

Shows up like this:

You wave at you and tell you, bouncing, "Hi!"
NPC in room: Fengshui waves at him and tells him, bouncing, "Hi!"
[POSE-ECHO] Fengshui waves at him and tells him, bouncing, "Hi!"

It ain't perfect, but if you properly use yourself instead of me, it works better:

.wave at myself and .tell myself, bouncing, "Hi!"
You wave at yourself and tell yourself, bouncing, "Hi!"
NPC: Fengshui waves at himself and tells himself, bouncing, "Hi!"
[POSE-ECHO] Fengshui waves at himself and tells himself, bouncing, "Hi!"

NO MORE POSE WOES

Pose have been overhauled to work much better, and to remove the need for the hacky work arounds like .watche to make it 'watches'.

I recommend turning on the pose echo @option and testing for yourself as some of your muscle memory may need to change as a result!

Here is the fully updated help file:

POSE

Pose is one of the most powerful and expressive tools in the game. It lets you write actions in first person, and automatically transforms them into the correct second- and third-person forms for everyone else in the room. It handles pronouns, conjugation, and even name substitution.

If you’ve ever used EMOTE, POSE works similarly – but smarter.

GETTING STARTED

Type your action exactly as you would do it:

.look around the room.

Others will see:
Quinn looks around the room.

You will see:
You look around the room.

THE DOT (.) AND VERB CONJUGATION

Any word prefixed with a period (.) will be conjugated automatically for your audience.

Example:

.kick Chuck before you .grin.

You see:
You kick Chuck before you grin.
Chuck sees:
Quinn kicks you before he grins.
Others see:
Quinn kicks Chuck before he grins.

This works for almost all English verbs, including:
- Regular verbs: .grin, .nod, .kick
- -es verbs: .watch, .flash, .kiss, .fix, .buzz
- -y verbs: .try, .play
- BE verbs: .am, .are, .be, .is
- Irregulars: .do, .have, .lay

Examples:
.flash a grin
You flash a grin.
Quinn flashes a grin.
.watch closely
You watch closely.
Quinn watches closely.
.am ready
You are ready.
Quinn is ready.
.do it
You do it.
Quinn does it.
.lay down on the floor
You lay down on the floor.
Quinn lies down on the floor.

PRONOUN AND NAME SUBSTITUTION

Pose recognizes exact player names and substitutes the correct pronouns automatically.

If a player’s name appears in your pose, they’ll see "you" and "yourself", while others see the player’s name and gendered pronouns.

Example:
.wave at Kira and .smile.

You see:
You wave at Kira and smile.
Kira sees:
Quinn waves at you and smiles.
Others see:
Quinn waves at Kira and smiles.

QUOTES AND SPEECH

You can include many quoted sections in a single pose.

This works:
.grin, "Hey there!" before saying, "How are you?"

This also works:
.grin, "Hey there!" before saying, "How are you?" before saying, "I'm good!"

Please keep in mind that poses, in most situations, should be quick, punchy, and not take too long to write. If you write very long poses you risk slowing the RP down.

SPECIAL TOKENS

/all /everyone /everybody
These tokens expand to a list of all players in the room.

Example:
.nod to /all
-> You nod to Razor, Silver, Seven, and Tax.
-> Others see: Quinn nods to Razor, Silver, Seven, and Tax.

POSE ECHOING

Want to see how your poses look to others? Use:

@options pose

This toggles pose echoing on and off. When enabled, you’ll see a grey [POSE-ECHO] line after each pose showing how it appeared to others. This is helpful when learning or testing your poses.

LOUD AND SOFT POSES

You can pose loudly or softly using:

pose loudly
pose softly

Loud poses are bright and attention-grabbing, used for shouting or boisterous actions. Soft poses are quieter and more subdued.

Use loud poses sparingly. Being loud means you are being noticed.

EDGE CASES AND LIMITS

- Pronoun resolution is simple: it applies to the most recently
mentioned player.
- Pose handles most English conjugations, including:
* -sh, -ch, -x, -s, -z endings (+es)
* consonant+y -> ies
* -o endings -> es
* am/are/is/be/do/have/lay irregulars
- BE verbs (.am, .are, .be, .is) now work automatically.
- No more need to type "watche" or other manual fixes.
- If you see odd behavior (like duplicated quotes), check punctuation
and quotes first.

TIPS AND BEST PRACTICES

- Write naturally; do not manually add "s".
- Use ".am" instead of "I am" for consistency.
Example: .nod and .am ready.
- Use "/all" to address everyone in the room.
- Turn on pose echo while learning.

SEE ALSO

@tutorial
help emote
help speaking
Pose Workshop Log: http://sindo.me/SJxK2GQTN
POSE EXAMPLES

Some examples of what works:

Core -es endings

-sh → +es

Pose: .flash a grin

You see: You flash a grin.

Others see: Fengshui flashes a grin.

-ch → +es

Pose: .watch carefully

You see: You watch carefully.

Others see: Fengshui watches carefully.

-x → +es

Pose: .fix your tie

You see: You fix your tie.

Others see: Fengshui fixes your tie.

-s → +es

Pose: .kiss the ring

You see: You kiss the ring.

Others see: Fengshui kisses the ring.

-z → +es

Pose: .buzz around the room

You see: You buzz around the room.

Others see: Fengshui buzzes around the room.

-y rules

consonant + y → ies

Pose: .try again

You see: You try again.

Others see: Fengshui tries again.

vowel + y → +s

Pose: .play a quick riff

You see: You play a quick riff.

Others see: Fengshui plays a quick riff.

-o minimalist (→ +es)

echo → echoes

Pose: .echo the last word

You see: You echo the last word.

Others see: Fengshui echoes the last word.

go → goes (covered by -o rule)

Pose: .go north

You see: You go north.

Others see: Fengshui goes north.

Irregulars

do → does

Pose: .do it

You see: You do it.

Others see: Fengshui does it.

have → has (special-cased)

Pose: .have the right idea

You see: You have the right idea.

Others see: Fengshui has the right idea.

be (is/are) via verbspec (sanity check in systems that use it)

Pose: .is ready

You see: You are ready.

Others see: Fengshui is ready.

lie/lay irregular (keep as-is)

Pose: .lay down on the floor

You see: You lay down on the floor.

Others see: Fengshui lies down on the floor.

Punctuation & quotes

Trailing period retained

Pose: .flash a grin.

You see: You flash a grin.

Others see: Fengshui flashes a grin.

Quoted text with comma/then another aux

Pose: .watch "closely," then .grin

You see: You watch "closely," then grin.

Others see: Fengshui watches "closely," then grins.

Question/exclaim punctuation stripped from aux, reattached

Pose: .watch?

You see: You watch?

Others see: Fengshui watches?

Colon/semicolon after aux

Pose: .watch: "Now."

You see: You watch: "Now."

Others see: Fengshui watches: "Now."

Multiple aux verbs in one pose

Two -es verbs chained

Pose: .watch Seven and .flash a grin

You see: You watch Seven and flash a grin.

Others see: Fengshui watches Seven and flashes a grin.

Mix of -y and -es endings

Pose: .try again, then .kiss the ring

You see: You try again, then kiss the ring.

Others see: Fengshui tries again, then kisses the ring.

-o followed by irregular

Pose: .echo the words and .do it

You see: You echo the words and do it.

Others see: Fengshui echoes the words and does it.

Speech placeholders work with aux

(Sanity: aux verbs should conjugate; quotes replaced per listener as usual.)

Speech with pronoun sub later

Pose: .flash and say, "I saw (1) earlier."

You see: You flash and say, "I saw Seven earlier."

Others see: Fengshui flashes and says, "I saw Seven earlier."

/everyone expansion doesn’t break aux

(Ensures token expansion didn’t regress aux conjugation.)

/everyone with aux before/after

Pose: .watch /everyone and .go quiet

You see: You watch Razor, Silver, Seven and Tax and go quiet. (names vary by room)

Others see: Fengshui watches Razor, Silver, Seven and Tax and goes quiet.

.be ready. →
You: You are ready.
Others: Fengshui is ready.

.is ready. →
You: You are ready.
Others: Fengshui is ready.

Negation works too: .aren't ready. / .isn't ready. → are/is + n't in the right place.

.is ready. →
You: You are ready.
Others: Fengshui is ready.

.nod and .am ready. →
You: You nod and are ready.
Others: Fengshui nods and is ready.

FIXED SMALL BUG IN POSE CODE

Fixed a small bug in pose code. We were treating any word ending in …ses as a +es class and dropping “es”. So an emote like 'brow' caused the first person version to be 'You rais your brow.'

MOVING AROUND IN DYNAMIC SPACE

This applies to driving, flying, and possibly walking/escorting (very edge case-y but MIGHT be the cause of some of the market issues people see).

I've fixed several race conditions in the code that were likely sources of people being shunted off into $nothing when moving quickly through rooms in dynamic space (Badlands, Airspace, etc).

The bugs were mainly geared around the way these rooms clean themselves up, and the way someone might initiate a move into a room and THEN that room cleanup was triggered.

I've added more guards and locks to prevent the race condition from happening. I can't say 100% that this is completely fixed but me and a player drove around for like 2 hours super fast and didn't get shunted into $nothing.

What happens now that it is fixed: In the somewhat rare situation where a room is recycled while you are attempting to move into it, you'll get a message saying the room is not valid anymore. In those cases you'll need to simply try to move through it again (it will likely be fully recycled by then, and dynamic space will spawn a new room).

I did see one issue where the exits weren't completely cleaned up but we couldn't replicate it. In that case you'd need to leave the room and come back in a bit after the room you are in recycles (which recycles the exit in it).

Or you could just go around the bad exit by like, going north then southeast, if you were trying to go east. This seems really rare and I added more debugging to help me identify the problem if it happens again.

Again, can't say this is 100% fixed but… hopefully!

AEROS STALLING AND FALLING OUT OF THE SKY

When you try to move to a room that doesn't exist or is being recycled it was stalling the aero/car. I changed this to STOP instead of STALL which doesn't cause aeros to fall out of the sky through no fault of the players.

If anyone notices weird shit with this please @bug it, but this should be a much more forgiving experience for players flying aeros that encounter an error with dynamic space that causes them not to move.

THERMO GOGGLES + CYBERWARE DISPLAY UPDATE

I've gotten rid of the header/footer and funky display stuff for thermos. I think it makes for a cool visual effect but it breaks colors among other things. When wearing these you will see something that resembles a normal room look, but with thermo details replacing the normal look details.

I've also added the room title, because that is OOC info anyway intended for you the player, and I don't see why thermos shouldn't have that.

Otherwise, they function the same, just a less specialized display that causes issues.

GAZE / GAZES

I've fixed an issue with pose/socials related to the new code where the e was being dropped of words like gaze.

TERMS IN THE ROOM TB

Fixed a TB that occurred when you tried to use a portable term in the room you were in (not in your inv, not held).

PROPER NOUNS IN POSES

I've made an update that I don't think will break anything, which will make it so that words that have a . in front of them in a pose, such as .flash will NOT get matched as proper nouns if a player in the room has that name.

So for example if there was a player named Punch in the room, and you did a pose:

.punch the air.

Your pose would show up incorrectly or capitalized.

Now you can do:

.punch the air and .cackle madly at Punch.

And it will show up correctly.

Don't think this broke anything but if you see weirdness in poses, @bug it.

SPACE AFTER FIRST . IN POSE

If you put a space after the first . in a pose:

. look around

It was causing issues. The code seemed to try to autocorrect this, but it wasn't playing well with my recent changes. I dunno if there is anyone out there adding a space but… that no longer works and will return an invalid pose message as the correct for is:

.look around

It's possible there was some coded reason for supporting this, but I don't see it, so it is removed.

LETTER GAME DEMAND

I've increased the demand for letters which allows more to go into the game without impacting the price. Twice as many can now come into game.

NEW KASHFLO SHUTTLE

There's a new mag-lev style shuttle that leaves from Freesky and goes to KashFlo. We'd like to thank Bubbles and Mono for getting this over the line, and 2024 Glitch and Slither for getting it 70% done and then forgetting about it for almost 2 years. :P

So yep! If you want to catch a ride to Kashflo, hop aboard the Lucky Star. 10k chy to scratch your CP gambling addiction. Have fun!

PERFORMANCE COMPOSES FIXED

Broke this yesterday. Fixed now.

PLAYER CREATED STOCKINGS

Stockings will now, when finalized, get a layer of 0 so they can be worn under other things.
100RADS COURIER DELIVERIES FIXED

Fixed the issue of 100rads charging for entry when delivering a crate.

ROBOT POSING FIXED

Fixed the issue where robots couldn't pose.

WEBCLIENT SSL UPDATED

Updated the webclient SSL.

WEBCLIENT HEALTH OVERLAY UPDATED

Updated the health overlay on the webclient to show in local time instead of UTC.

CRATES IN KOTM

If you have a crate in KOTM, you will see it in your KOTM inventory now.

GRID FORUM SEARCH

g topics search will return search results across all forums that match your search criteria (title, subtitle, posts). Please see 'help grid-forum-search' for more details, but TLDR: this search works best with several keywords. It uses vectors and some other stuff to be faster, and thus common words / stop words are removed. The results are returned in a prioritized manner, with a maximum of 50. I'm not planning to paginated this. 50 results is the max you will get.

For example:

g topics search Seven -> 50 results
g topics search Seven Ecks -> 50 results
g topics search Seven Ecks Red Ike -> 16 results
g topics search Seven Ecks Red Ike Ari -> 2 results

Enjoy delving into the vast history of the Grid Forums :)

(Edited by Slither at 6:15 pm on 10/12/2025)

KOTM NOTIFICATIONS -> DRUG PRICE CHANGES

I've made the drug price changes in KOTM obey the notifications toggle, so if they are off, you don't see this notification.

BRLANG NODE CONTENT SEARCH RESTRICTED TO PUBLIC NODES

Restricted this command to public nodes only, so you don't see results for private nodes. Not making this show private nodes you are on the ACL for as the complexity of that query / additional time it takes via joins isn't worth the additional functionality.

(Edited by Slither at 2:54 pm on 10/13/2025)

GRID ENABLED COMMANDS & VARIABLES

If you are writing a brlang program that deals with commands on a device or room, and the command takes arguments, you should now be able to use a variable in place of those arguments, across the board.

This change should allow you to compile programs that use request input and variables prefixed with @ to send data to commands in all cases.

This does mean that the requested input data must end up matching the validation shown when you list commands available on a device or room. If it doesn't, the command will fail.

For example if it requests an amount between 1-10000 and your variable is @amount, the program WILL COMPILE even if you didn't define @amount in your code. It will also execute even if when you request the input you put 'asdf' instead of an integer. The program will simply fail.

Be careful using variables :)

PERFORMANCES GETTING CUT OFF

There was a bug where some stored performances would have the ends of their poses cut off. It was happening due to the final text being a single quoted string that wasn't getting appended to the overall pose due to the way we were looping over the tokens.

This was happening prior to the pose changes I made recently, but it was surfaced during that. I believe I have found the culprit and fixed it. Tested with a player, and didn't see any issues, but if anyone's performances are negatively impacted as a result of my change please @bug it.

FORCE & VEHICLES

There are two force verbs, one is for forcing someone into a vehicle, one is for forcing someone out of a vehicle (from the outside) by pulling them out of a window or unlocked door. They have different prepositional strings in the middle, and are actually different verbs.

This is causing issues with nth matching due to an edge case in how we match verbs. I've renamed the force person from vehicle.

It is now: pullout [person] from [vehicle]

This means it will work with multiple of the same vehicles in a room.

SHORTDESC ON ENTRY/EXIT OF ROOM FOR NPCS & DISGUISED

Previously, for a reason I'm unsure of (length? how long it takes to calculate?) we did not show a shortdesc when an NPC entered or left a room, or when someone in a disguise (shroud, mask, etc) entered or left a room.

I've enabled this for everyone in all circumstances. It's possible there was a reason it was not enabled for NPCs, and I'll keep an eye on it.

I think the value of having these messages when someone enters/leaves is enough to deal with a slightly lengthy entrance/exit message, as it conveys a lot of info (like if the person is carrying a gun, corpse, etc).

FORCE INTO VEHICLE / PULL DUDE OUT OF VEHICLE & TRUST

There is now an '@trust person to force' which will allow the person who is trusted to auto succeed at forcing someone into a vehicle and using pullout [dude] from vehicle.

SECURITY GEAR BUG IC & OOC

There was a bug with security gear that has been in place since the system was overhauled 4-5 years ago. This bug made it so if you had a legacy camera / sensor / device that was set up before the new system, using the 'clear' command on the device might not FULLY reset the device, leaving it in place on the legacy hubs/devices it was connected to previously, while also telling you that it was fully cleared.

I have no way of telling how many times this happened, or how many devices may ICly have been impacted, because of the way the network code was designed and how the devices may have then been scanned to a new network.

I've fixed the clear code, and updated it so that if it detects a new style network or an old style network, it will let you clear it. Devices that were saying fully cleared before, may now allow you to clear them again.

I can't manually fix these, because I can't meaningfully detect devices that are in a bad state because there is no way to tell if a device was cleared or if it was just never setup on a new style network.

All I can do is make it visible if a device has old style network connections to hubs/devices, so you can make a determination ICly if it needs to be reset again.

So here's the deal. If you look at a security device (cam, hub, etc) you previously cleared and see:

A discreet green LED indicates it's linked to a legacy system.

That means that device still has old connections that were not properly cleared. It could be routing to an old hub or tv somewhere else in the game. If that's the case, and you care, you should have the device cleared again and then reinstalled into your network.

In terms of ICness of this issue, treat it as an IC issue that was caused due to buggy security equipment updates that have now come to light.

I'm not overly familiar with the newer camera/networking code, so if anyone notices any further issues around this, please flag via @bug.

(Edited by Slither at 10:58 pm on 10/13/2025)

(Edited by Slither at 10:58 pm on 10/13/2025)

(Edited by Slither at 10:59 pm on 10/13/2025)

MINOR POSE BUG

Fixed a minor pose bug with targeting people in some situations not working.

WEAPONS & ATTACK MESSAGES

I've updated the way that weapon attacks get their name, to use the name of the weapon being wielded and not the nickname attached to the attack. Attacks can be inherited (such as with a wakizashi using katana attacks) which in certain cases was causing the weapon messages to literally say 'katana'. This should now be fixed.

My only worry is that it was as it was for a reason, so if anyone see's anything weird, please @bug it.

BIOMOD GOOD INSTALL SCRIPT

The script when a biomod is successfully installed has been updated to not include the forced speech / smiling that it had, leaving it up to the doctor to handle that as they see fit.

GRAPPLE / MOVEMENT BUG FIXED

There was a tricksie bug in grapple that I have been able to resolve. Here's how it happened:

'shadow bob'
(mark that we want the next movement to be a SNEAK since we're stealthily following someone)
'grapple bob'
(grapple succeeds)
's'
(move south in a sneaky way, never intended while someone was grappled)
(person grappled does not move because stealth is a different code path)

I have fixed this, and you can't shadow while grappling anymore, and your shadow will be cleared (though you will still be following visibly if you're grappling someone).

This… may have been the cause of a lot of the grapple issues we've seen. Time will tell, but this specific issue is at least, resolved!

GRAPPLING / SEWERS / FLUSHED AWAY

If you are grappling someone in the sewer and you, the person you are grappling, or both of you, are flushed away in a torrent of sewage, the grapple will be broken. There is messaging showing this. This replaces the previous situation where the grapple was maintained despite one or both people being flushed away.

TATTOOS AND MISSING LIMBS

Tattoos no longer show up on missing limbs.

If you update your clone after getting a tat, you'll clone with the tat. It's genetic ink. This is how it's always been. If you lose a limb that had a tattoo on it, the tattoo will NOT show up when you type @nakeds or when you look at yourself. However, the tattoo IS STILL THERE genetically. So if you clone, you'll clone with your limb that had the tattoo, and thus the tattoo will return.

CORPSES & MISSING LIMBS

Corpses with missing limbs will now no longer show tattoos on the limbs that are missing.

USING MINE IN POSES

Using mine as in .take Bob's hand in mine.

Will now work as expected.

GRID MAIL SESSION EXPIRED BUG

Some people were seeing 'session expired' when sending a gridmail but their term was still logged in and it was confusing. This was because of the way 'player' works in the context of MOO. The person sending the gridmial was getting the 'logged out' message of the terminal they were sending the message to, because it generates a notification that the session has expired due to a check for if the term is still logged in (that is receiving the mail).

I have fixed this issue. You shouldn't see it anymore.

Thank you to Bubbles for figuring it out and pointing me in the right direction!

UPDATES TO POSE CONTINUE

We’ve rolled out another round of updates to the pose system that make character actions read more naturally in complex sentences and multi-character scenes.

What changed:

Better handling of possessives. The system now understands when something belongs to another character and whether that ownership is attributive (your hand) or elliptical (in yours). This makes poses like '.place my hand in Seven’s.' or longer poses that include speech and multiple actions read correctly for everyone present.

Improved contextual awareness. The parser now recognizes when a name has already been mentioned earlier in a pose and still treats later possessive uses properly, instead of reverting to a generic 'your' or 'his/her.'

For a pose like this: .place my hand in Seven's.

First-, second-, and third-person perspectives all read naturally. You’ll now see 'You place your hand in Seven’s,' Seven will see 'Slither places his hand in yours.' and others will see 'Slither places his hand in Seven’s.'

(Edited by Slither at 2:05 pm on 10/20/2025)

@BUGS UPDATE -> 303 BUGS CLOSED SINCE 06/01/25

We've closed 303 @bugs since 06/01/25. Some of these were old and marked as closed, many were fixed, some we didn't have enough info to resolve. That's an average of 60 bugs closed a month (though that is inflated because I did some major cleanup of old bugs in the past month).

The good news is we are currently closing more bugs than we receive (at least in the past 3 months).

We have 255 total open bugs, and 155 total open public bugs.

SQL DB UPGRADED

Upgraded our SQL database to the newest version available. Should be faster overall and less expensive.

RARE E-NOTE BUG FIXED

ToastStunt offers a generate_json builtin which we make use of for e-notes. This has an mostly undocumented side effect of trying to convert moo binary strings like ~0A to json. I can't seem to find a way to NOT do this, but it has the impact of turning something like Price: ~1.5k into Price: \u001.5k which is a UTF representation of some binary I guess.

This breaks parse_json builtin because it's not valid. So, I've added a wrapped that replaces ~ with '~ ' anytime it finds it to prevent this rare issue in e-notes (and a few other places).

I also went into the database and fixed the 6 files that had ~'s in them which would have been causing them to not show up on e-notes, cause TBs, or render improperly.

I've also flagged the issue to the ToastStunt devs for discussion.

NAKED MSGS CYBERNETICS & ROBOT PARTS WITH TWO SLOTS (LIKE EYES)

I've updated the code that deals with turning two cybernetics/robot parts that are the same (like right eye and left eye) into a single naked msg. Robots specifically had an issue where it was parsing incorrectly and rendering broken messages when they had two eyes with the same naked msgs.

I also found and fixed an issue with an off by one index which was likely causing some issues in some nakeds.

Testing showed this working right, but it is possible the fix has introduced wonkiness elsewhere, so if you see any issues looking at yourself/others/robots please @bug them.

SEWER FLUSHING & STEALTH / SITTING

I've updated the flushing code in the sewers to properly deal with stealthed and sitting people. If you are flushed while hiding or sitting, that status will now be cleared as you are washed away. This should hopefully fix any lingering issues with people being in weird states after being flushed in the sewers.

PREVENTED SITTING IN COFFINS

I've prevented sitting in coffins. You are already lying down, after all.

PREVENTED SITTING IN CHARGEN

Also you can't sit in chargen anymore.

(Edited by Slither at 9:27 am on 10/23/2025)

FORCE PLAYERS TO STAND WHEN APARTMENTS ARE RESET

I've updated the apartment purge code to force any sitting players to stand before tossing them in coffins.

FLYING INTO NOTHING

I've further refined the code for dynamic rooms and their cleanup mechanisms to prevent flying into nothing. I can't say I've 100% fixed it, but it should be less common, if not fully fixed. I've got debugging in place to help me better understand the issue if it keeps happening. If you encounter issues flying / moving through dynamic space please @bug with as much detail as possible.