There was a bug when renaming files and putting a slash in the name, making the file potentially inaccessible. You can no longer pick a new name with a slash.
I fixed another object that was recycled because it wasn't marked as a generic. Fixing several bugs.
PHOTOS CAPTURE PRONOUNS PROPERLY NOW
Photos will now capture pronouns like %n %p etc in descriptions properly when taking a photo. This fix is not retroactive, there will be photos where this is broken forever. But new ones should have the proper pronouns.
The immy hologram has been broken since we switched to the new lore system. I have gone through and gutted the old code which was making an external call to the wiki and parsing stuff -- and replaced it with an entirely MOO coded system. It works much the same way from a player standpoint -- but the code is much simpler, and obviously, it's working now.
If you were in a room near where someone was knocking (not the other side of the door) you would sometimes hear the voice of the person who was knocking attached to the message.
I have fixed this.
LOUD ACTIONS SHOWING VOICE OVER PROGIA
If someone did a loud action like banging our whatever and you were on the phone, sometimes that would include an @voice as well. I've resolved that.
EDGE CASES & FURTHER ISSUES
If you encounter more issues with this, please @bug them, as I have fixed the issues I've encountered, but I may not have spotted them all.
There is a new data store (think of it like an in-moo database) for general-purpose advertisement systems, allowing easily integrating of all sorts of advertisements, advertisement types, costs, lengths, and a wide array of other possibilities. It also has an optional approval system, which can be used for GM or player-based approval pipelines for advertisements.
Using the aforementioned new advertisement model, we have introduced holo-ads to the back of Chex vehicles. A terminal will be made available ICly for players to submit advertisements for this system.
Unlike SICads or other kinds of ads, these allow you to submit a three-part advertisement: an introduction, a body, and an outro. This will appear on the back of Chex vehicles when there are passengers there.
Advertisements using this system require GM approval. If it is denied, you get the money refunded to your bank account (you need one to submit this ad).
I fixed a few errors that were showing in the console.
WEBCLIENT INSERT KEY
If you hit the insert key on your keyboard while in the webclient, it will pop up a little window where you can enter a command. If you hit enter it will send that command to the MOO the same way it would if you were in the text input field.
You might realize right away how useful this is, or you might be scratching your head asking WTF.
The reason this is useful is for situations where you have a bunch of text typed out, perhaps a pose, and you need to check who is in the room, or what the name of the person is (perhaps they are shrouded or something). You can hit insert, type look, hit enter, see the results, while still having all your text typed out.
Maybe this won't be super useful for players, but I'm going to be using it all the time heh.
WEBCLIENT PAUSE/RESUME SCROLL
Hitting the 'end' button on your keyboard will pause and resume scrolling. This using to be command/control + . but that stopped working in some browsers.
WEBCLIENT CURSOR ON TEXT INPUT
If you need to bring the focus/cursor back to the text input box, you can hit the 'home' key on your keyboard.
We have created the necessary infrastructure to have JSON responses from our AI service. This allows us to specify a structure of fields that we want the AI to send us and it is capable of sending a JSON back.
JSON is a format that allows us to use this data in the MOO, so this opens up even more possibilities for us on the code side.
Bartenders now have AI logic to answer for where the party's at. The answer will be based on the facts of the NPC, Withmore Slang, WIthmore City Lore and a few other data packages that we pass to ChatGPT to help embody the NPC. It might not be perfect, report any inconsistencies!
Also, they answer in two parts!
This isn't technically released yet, as I'm still testing it, but posting here so people aren't surprised when I update the production webclient.
The webclient was running some outdated dependencies, like a fair amount of them. I've spent the past few days updating the dependencies and the code surrounding them. This should result in essentially NO change to your end user experience.
However, it is possible there are some issues. It's also likely that the updates will improve performance of the webclient as all its libraries are up to date, including jQuery.
At some point this weekend I will likely cut us over to the new webclient, which will result in the webclient being down for a bit. While it's down you can use the pubclient.sindome.org if you need to. I'll give plenty of warning in game when I make this change.
I'll also be prepared to revert the changes if something goes wildly wrong.
We have increased the temperature from 0 to 0.5 which should be more apt for more creative answers. We have also attempted to improve the prompt, some bartenders were starting to lie about where the party was at. We're still monitoring the system until we finally hit a happy spot.
Show users on clinics. Admin only.
CLINIC USER PRUNER
Clinics users will be validated and removed if invalid (reaped, new char) as part of autopruner.
CYBERWARE HOSTS
This prop will be auto pruned as part of the autopruner run (reaped, new char).
PUPPET ANALYTICS
This will be pruned so that it only keeps 30 days of data. Saving us about ~3 megs.
MARKET SALE DATA
This prop on players will be pruned to only include 30 days of data.
These updates are mostly transparent to users in that you should not notice and meaningful change to how the client works. However, we have updated a lot of our dependencies for the application and are using in many cases newer versions of code the client relied on. This does offer some performance enhancements as well as seeming to resolve an issue where in some browsers the connection to the moo would get closed when you were off window, at least it did for me!
Further updates are coming, mainly to the server that runs the WEBCLIENT which is using an outdated OS version. I'm going to be rolling a new server and cutting us over in the next few days. During that time there will be a bit of downtime and I will ask people to use the pubclient so as to not be totally unable to connect.
I have patched a bug in the server code (after letting it run on our dev server for 6 months) that fixes the cause of the crash last night. The reason I let it run so long on the dev server is 1. I am not a C coder and wanted to make sure it wouldn't break something and 2. I forgot I hadn't ported it to prod and didn't realize it until we ran into the issue again last night.
WEB CLIENT SERVER UPDATE
The webclient is now running on a brand spanking new EC2 instance running the most up to date Ubuntu OS. It's also running the most up to date version of Node, with the most up to date packages I can manage at the moment.
Everything is very up to date with the exclusion of socketio which powers the websockets that the client uses. That's using a slightly out of date version because of some major changes made in newer versions that I will need to really dive in and recode stuff because of. That's a project for another day.
It took me 30+ hours to get all the dependencies up to date because of the amount of breaking code changes in them that I had to figure out. But this should put us in a good place with stable code for the foreseeable future.
URL SHORTENER
This server died as some point recently, and I have brought it back online. No idea why it died. AWS does this sometimes. I've enabled stop protection to hopefully prevent this happening again, but who knows.
Based on the feedback thread, I've updated the key combos for the webclient for end/insert/home so that they will only trigger when those keys are hit on their own, if you hit them with shift/control/alt (for instance to select all text on a line) then it will NOT trigger.
WEBCLIENT KEY COMBOS ADDED TO OPTIONS PAGE
You can view the available key combos on the webclient options page now.
These changes will NOT take affect until the next scheduled webclient restart.
We have modified the advertisement module to now also have a new modality: maximum exposure. Together with the old system, this means that we can create advertisements that expire based on time, based on how many people saw the ad, or both.
CHEX ADVERTISEMENT EXPOSURE-BASED
Since Chex taxis aren't the most used system, we have shifted them to an exposure-based advertisement system. This means that your advertisement will only time out after an X amount of people have seen it, making sure that you get your money's worth, however long it takes.