SotA

The New Britannia Herald

Saturday, August 15, 2026

Work Log Podcast

Episode

Every skill description read, every language fixed, armor sets switched on

The team read all five hundred and fifty nine skill and rune descriptions against what those skills actually do, and corrected a hundred and twenty one of them. More than twelve thousand broken conversation keywords were repaired across eight languages, so five hundred and ninety two NPCs stopped answering in English to players who chose otherwise. Matched armor sets finally pay the bonus they were designed for years ago, all four hundred and seventy six achievements got badge art, and player catchphrases went from idea to built in a single day.

In this episode

  • The skill description audit and its hundred and twenty one lies
  • Twelve thousand broken NPC keywords across eight languages
  • Matched armor sets shipped switched off, now switched on
  • Badges for all four hundred and seventy six achievements
  • Player catchphrases built in one day

Transcript

Good evening to thee, citizens of New Britannia. Lord British here, with word of what thy makers were about on Saturday. Every skill description in the realm has been read against what the skill truly does, and a hundred and twenty one were found to be telling tales. The NPCs of five tongues have ceased answering thee in English. A suit of armor matched from head to foot pays a bonus it was promised years ago and never once gave. And every achievement in the game now bears its own badge, struck in metal. Sit a while. We begin with a bleed that never bled.

There is a skill in this game called Rend. It opens a wound, it weakens healing, and it has never done one single thing to an undead. Not the bleed. Not the strike. Not the healing debuff. All three are blocked against skeletons, liches and zombies, and the card describing the skill has never said so. So somewhere out there is a player who has spent years walking into a crypt, opening with Rend, and feeling clever about it. The card says so now. And Rend was not even the only skill in the game with that exact problem. Puncture had it too.

Here is why nobody caught it, and this is the part I did not properly appreciate until this week. A skill card in our game has two halves. The sentence at the top is written by a person, by hand. The numbers underneath it, the range, the cooldown, the durations, are generated straight out of the skill's own data. Nothing has ever compared the two. Not once, in the whole history of the game. So on Saturday the team read all five hundred and fifty nine skills and item runes against a generated fact sheet for each one, and then handed every claim to a second reviewer whose only job was to defend the existing wording. That reviewer threw out thirty seven of them. What survived was a hundred and twenty one corrections across twenty nine schools.

The greatest hits are something. Follow Through offers a lower chance to fizzle on all of your glyphs. Weapon glyphs cannot fizzle. They have never been able to fizzle. So anyone who took Follow Through for a melee bar bought a discount on an event that does not happen. Distract told you it draws a single enemy while the generated line printed directly under that sentence said five. Off-hand Defense has promised damage resistance for years. What it grants is parry chance and parry damage reduction, and it touches resistance nowhere at all, so a dual wielder who took it as mitigation was buying a completely different defense than the one on the label.

Several went the other way, where the skill was better than its own advertising. Banish Undead stops the things it kills from getting back up, which is the whole reason to cast it over anything else, and that appeared in no tooltip anywhere. Break Armor and Break Weapon each have a chance to strip a beneficial effect off whatever you hit, the sort of thing a player builds an entire bar around, and neither one mentioned it. The Water Elemental heals its owner during a fight. Pick Pockets never told you that a successful theft costs you Truth. And Solar Flare has claimed extra damage in daylight for years. The daylight term is real, but it lives in the focus cost, so casting at noon is cheaper rather than stronger. The extra damage is against undead.

Twenty one of the findings were the other shape entirely. The words were right and the data was wrong. Those got filed as their own bugs rather than papered over by rewriting the sentence, and seven were fixed the same day. My favorite is the glancing blow. Our Damage Avoidance tooltip has said for years that a glancing blow deals a third of normal damage, while the code has been dealing a quarter that entire time. So we raised the number to match the promise. A test now holds the constant and the tooltip sentence together, so the next person to change one has to change both.

Now, the NPCs, and I want to start with the small one because it made me laugh. A bark is the idle line a townsperson says as you walk past, and each one carries a chance. The trigger was overwriting its own roll before it read it, so every bark authored to fire one time in ten was firing ten times in ten. That is fixed. I will tell you plainly, some of our crowded scenes are about to get noticeably quieter.

Underneath that sat something much larger. Our conversations run on typed words. You type a word, the NPC answers on the topic that owns it. When two topics in the same conversation answer to the same typed word, one of them stops answering at all. Across our eight languages, more than twelve thousand conversations were sitting in that state. And because of it, five hundred and ninety two NPCs had been placed on a list that forces them to answer in English no matter what language you picked. French, Italian, German, Spanish, Russian. You asked in your own language and got an answer in mine.

Some of these were not near misses. They were plain mistranslations. The French word chosen for outlander was hors-la-loi, which means outlaw. Italian and Japanese both rendered sword as beginning. And Italian, Spanish and Portuguese each had a bare LA sitting in the list of words for where are you from. LA is the definite article. It matched very nearly anything a player typed. Somewhere in Italy is a player who typed "the" and received a lecture about their homeland.

German was the hardest of the eight, for a rather lovely reason. German compounds. Our matcher lets two words coexist as long as a space separates them, which is how English keeps virtue banner clear of everything else starting with virtue. Write the compound as a single word and that trick is gone. All eight languages now read zero collisions. The lists that force English regenerate empty. And the check, which used to need a batch run inside the editor, which is exactly why nobody had run it since July of two thousand twenty four, before the machine translation pass rewrote all the dialogue, now takes about twenty seconds and runs as a gate that names the two topics that clash.

The third story is armor, and it is the one you will feel tonight. Start with the ugly part. A piece of armor at zero durability gives you no protection at all. None. And the only sign of that was a small icon on a different window entirely, so you could walk into a fight in a broken breastplate and think you were wearing something. Broken slots now get a red rim on the paper doll, the item tooltip says the piece adds nothing until repaired, and the character sheet prices the repair for you in Damage Resistance so you know what you are getting back.

And then the good part. Wearing a suit that matches head to foot now earns you ten percent more Damage Resistance out of your armor. That feature was designed years ago. It was given a value. It was given half a tooltip. And it shipped commented out, which is to say it has been in the game the whole time, switched off, waiting. Your torso decides which weight class you are building toward and does not itself count, which was true all along and written down nowhere, so the sheet now says it out loud. It names how many worn pieces are counting, and what the next matching piece would raise you to.

Hovering Damage Resistance or Damage Avoidance now lists every piece feeding that number and what each one adds, and lights those slots up on the paper doll. Broken pieces appear in that list at zero rather than being left out, so a total that looks low explains itself. Three other things fell out while they were in there. The set bonus table had entries for five and six matching pieces that nothing could ever reach, because only four slots count. No item in the game is medium armor, despite the weight class existing in the data. And the block power formula was written out three separate times, once on the character sheet with its own hardcoded numbers, so the figure you read could drift away from the one combat was using. Forty four tests now sit under all of it. That is the first test coverage the armor formulas have ever had.

Fourth. Every achievement in the game, all four hundred and seventy six of them, now has a badge. A painted emblem in a medallion, and the metal climbs as you climb: copper, then silver, then gold, then platinum up each ladder. The eighty four boss kills get a dark thorned plate. The thirty two that grant you a title get a gold laurel. The category color sits on the inner ring, and unearned rows draw dimmed. They show in the journal and on the banner when you unlock something. And here is what I like about how that was done. The art pipeline was built in the morning, the tier plates were picked around noon, and by lunch it had rendered all four hundred and seventy six. A first pilot cropped the emblems too tightly inside the badge window, so the generator learned to keep the whole subject inside the frame, and off it went.

The same day, a much less charming achievement story got closed. Some of you were seeing a red line of server complaint in chat after logging in or changing scenes. That was the server rejecting an entire batch of your achievement progress because one counter inside the batch was unfamiliar to it, and throwing away every other counter in the same batch on the way out. Kills, fish caught, recipes learned, all unrecorded at that moment. It now keeps what it recognises, skips what it does not, and stops shouting about it in your chat window.

The reason it happened is worse and now guarded. Our nightly data bake would accept whatever it produced as long as one file came out of it, so a table that failed to build shipped anyway, and the shard ran for weeks on a file missing every achievement counter. It merges fine. The server boots fine. And every kill, fish, taming, crafting and exploration counter goes unrecorded behind it. The bake now refuses to publish an incomplete set, and the deploy reads the file the shard is actually carrying, off the machine itself, before and after every restart, and tells us what is in it.

Fifth, and this one went from idea to built in a single day. Player catchphrases. You will pick a character voice from a catalog of a hundred and thirty four, type a short phrase, pay for it in cotos, and then fire it off and have everyone within about thirty meters hear your words spoken aloud at your character, with the same distance falloff our NPC dialogue uses. There is a bar of twelve slots you can fill and bind to keys, so a battle cry lands mid fight without touching the mouse. And there is an audio option to turn the whole thing off, for those of you who already know exactly how this is going to go.

The care is in the money and the moderation. Every phrase goes through a moderation pass before anything is made, and the policy there is stricter than chat: a line that could read as playful or hateful gets turned down so you can rephrase. If the moderation service cannot be reached, it refuses everything rather than guessing. Child sounding voices are excluded from the catalog outright. Payment happens only after a phrase generates, so a rejection never costs you a coto, and typing a phrase you already own resolves to the one you have instead of charging you twice. There is a hard thirty day ceiling on generation spend that a new day does not reset, and a moderation takedown sticks, so a removed clip cannot be picked up by the next player who types the same words.

It also broke the afternoon build, and I enjoy this one. The payment code named a kind of data that exists in the editor and exists on the server and is left out of the game client. So it compiled everywhere anybody looked at it, and failed only when the client itself was built, which is the last thing that happens before a release. There is now a commit check that compiles the client the way the build machine does, with the editor-only code taken out. It takes about forty seconds and it turns the commit down. Catchphrases are built and waiting on a deploy, so you have not got them yet.

A handful of smaller things that will improve somebody's evening. Three of them are about your backpack. The inventory window can now tell you which bag a thing is in, with a Container column you can group by, and the search box learned to look inside closed bags without you having to find a checkbox first. Type "in" and a colon and a bag name and it lists what is in that bag. Containers draw a fill bar under the count, gold up to eighty percent, amber above that, red when full. And Recently Looted got its Reset button back after losing it in the rebuild, opens newest first, and now counts a merchant purchase and an item you dragged off a corpse by hand as things you actually acquired, while it stops counting you shuffling your own possessions between your own bags.

Two for the beast handlers. Animal Lore has joined the Taming tree, sold by the trainers once Tame Creature reaches twenty, and it was asked for by Wishdragon. Study a creature and you get its kind, its level, its condition, its attributes, and how well it turns aside weapons and each school of magic. How much it gives up depends on your skill against its level, so a level four wolf tells a beginner everything and a level one hundred and twenty nine beast tells you nothing at all until you have earned it. Polar bears blunt water. Obsidian bears resist fire and death. Boars shrug off crowd control. All of that was already in the game with no way for a player to reach it. And the Obsidian Item of Unlearning now asks what level you want the skill left at instead of dropping it to the floor every time, which Barugon asked for.

Three fixes worth naming on their own. Winning a party loot roll no longer loses the item in silence: a refused handover retries and then tells you, a full pack no longer swallows what you won, and the roll window closes instead of sitting there holding your prize forever. Opening Settings for the first time in a session froze the client for ten and a half seconds, long enough for Windows to grey it out and declare it dead, because the audio tab was waking the entire MIDI subsystem and starting the voice system just to print a cache size. That was reported by nyarkie and it is gone. And the map of Desolis, which has never once lined up with your marker, was calibrated from two reference points that stood three hundred and eleven meters apart one way and ten point six meters the other, so it read your north and south movement seven and a half times too fast. Chiasma reported that in January of two thousand twenty one. It is now accurate to within a third of a meter.

The lightning round, and the largest item in it is the reading. Twenty one deep dive proposal pages went up on Saturday. Water, Sun, Air, Moon, Chaos, Tactics, Bard, Focus, Polearms, Blades, Bludgeon, Ranged, Light Armor, Shield, Heavy Armor, plus parties, conversations, housing, combos, resistances and a second edition of taming. That finishes three whole rings of the skill window. There are now well over nine hundred proposals published with a comment thread and vote arrows on every single card, and the reading behind them filed close to a hundred defects, most of which you have heard about already tonight, because a great many of them were fixed before the page describing them went live.

A hundred and one tracker issues closed. A large share of those came from one tester, rinaldi, working through the interface with the patience of a saint: the Dungeon Builder window, decoration sorting, the light settings swatches that all drew white, the Add-Ons window eating its own buttons, the recipe search that had documented syntax nobody could see, the chat window losing its close button when narrow. Every one of those is a small evening improved.

And the comedy department had a strong day. There was a bright blue slab at the bottom of every waterfall and river pool in the world, which was an editor placement marker leaking into the shipped game. Dolorast Vrul, Greater Daemon, has been menacing you in a friendly female narrator voice and now has the deep, menacing villain voice with the demonic reverb the part always wanted. Storehouse crates were reading their own descriptive text out loud in a cast voice, along with twenty eight other bracketed lines including three of a writer's private notes. Cows were the only large four legged animal still using the default nameplate height, so poor Ophelia in Owl's Head had her name hidden inside her own back. The Toast emote was applying the drunk visual effect, so raising a glass in cheer made the camera swim before you drank anything. And the deeds command was opening the achievements book.

That is Saturday. What I am looking forward to is the moment catchphrases reach the test server, because I have watched this team build careful moderation, careful pricing and a hard spending ceiling, and I am certain the very first thing any of you does with it will be something none of us predicted.

And a terrible one to close on, as is the custom. We spent all day on matched armor. What do you call a fighter who goes to war in one plate gauntlet and one leather boot? Unsuitable. Good night to you all, and mind the sausages.