SotA

The New Britannia Herald

Sunday, August 2, 2026

Work Log Podcast

Episode

Pet trainings that did nothing, and tester reports nobody read

A Sunday spent rebuilding the taming skills from the root, where an audit found that four of the five pet training passives had never affected a pet at all. Also the nightly automation that had quietly stopped reading tester reports and said it was fine, a single oversized item that could make a whole container unreadable, and an avatar that would stop dead with the forward key held down.

In this episode

  • The taming tree rebuilt, and three passives that did nothing
  • The automation that stopped reading tester reports
  • One big item made a whole container unreadable
  • The avatar that froze with the forward key held
  • NPC voices, wrong names and gestures that never played

Transcript

Good evening to thee, citizens of New Britannia. Lord British before thee, with an accounting of what thy makers were about upon the Sabbath. The taming arts are rebuilt from the root, and three of thy pet's trainings, it pains me to report, were never training anything. The machine that reads thy testers' reports had ceased to read them, and said not a word about it. A chest holding one very large plan would open empty and stay so. And every letter with a tail in this realm, every p and y and g of them, has been walking about with its tail cut off. We begin with the tails, because it is the smallest thing we mended all day and thou hast been staring at it for months.

So. The bottom of a p. The bottom of a y, a g, a j, a q. In the teleport list, in your backpack, in your mail, in the character roster, those were being sliced off flat. A row in a list clips its text so a long name can end in three little dots, and the box it clips to was measured against the font's own idea of how tall a line is. That idea is short. Short by a fraction of one pixel. And the fraction is at the bottom, which is precisely where a letter keeps its tail. We now measure against what actually gets drawn, at every text size. Nothing else moved. Your letters simply have their feet back.

Now to the real business, and I want to start with something that went wrong on our side, because it is the item I am least comfortable with.

We have a nightly pass that reads what our testers write. A tester files a report on a task, the automation reads it, judges it, closes what passed and turns what failed into a bug with a human's name on it. That pass had gone two nights doing absolutely nothing, and reporting success while it did it.

The cause is almost too tidy. It shares one lock with another job that runs every fifteen minutes, so the two can never act on the same report at the same moment. And its start time sat on exactly the quarter hour that the other job ticks on. They raced for that lock every single night. The last night, it lost by four seconds, gave up, and exited with a success code.

That is embarrassing but survivable. The second half is not. The tool that collects reports was handing the judge only the newest comment on a task. And the marker we write to record a report as handled names one comment. So a tester posts a checklist, works it line by line, marks his passes and his fails, and then two minutes later posts a short follow-up. The follow-up is the only thing our machine ever sees. It answers the follow-up, writes down that the task is handled, and the checklist underneath becomes invisible to every run that will ever look at that task again. On one of them we replied, and I am quoting us here, please run through the Expected list. To a man who had posted the Expected list, filled in, two minutes earlier.

A tester noticed. He said, quite politely, that it looked like we were only answering his most recent comment. He was right, and he was right about something we could not see from the inside. So we swept all eight hundred and seventy-three tasks in the project and found ninety-six comments that had never been marked as read, spread across fifty-six tasks, forty-nine of them carrying a PASS or a FAIL line. Every one of those has now been read and answered on its task.

Most of them had reached our bug tracker anyway, because the human doing triage that day read the task rather than trusting the tool, which I find quietly reassuring. Eight had not. Those eight were real, and they had been sitting in the dark for weeks. A whole scene where creatures never leave their spawn points and no pet or summon can be called at all. Dungeon map reveals that clear themselves when you log back in. Merchant items that do not come back to your inventory when you cancel a sale.

And my favorite of the eight, kobold archers in three separate locations who had been given a rather refined speaking voice. Well spoken. Cultured. Not a growl among them. A tester wrote that down weeks ago and our machine filed it precisely nowhere.

The nightly now waits up to ten minutes for that lock, and checks twice, because the scan between the two checks takes minutes on its own. Its start time moved off the quarter hour. A second run four hours later picks up anything the first one misses. Every run writes a line to its log before it is capable of failing, so a missing line means the schedule never fired at all, which we previously could not tell apart from a run that died on its feet. And the collector now hands over every unread comment as one report, oldest first, with a separate marker for each, so a partial answer can never bury the rest again.

Right. Taming. This is the big one, and I will say up front that it is an experiment on the test shard, so do not panic. We are trying something.

The taming tree splits in two under Tame Creature. One branch holds Heal and Resurrect Creature. The other holds Summoning, Combat Training, the pet trainings and the specialization. Five of those innates now cost four times the experience per level that they used to, which brings them in line with the equivalent pet skills over in the Focus tree, and those have been priced at four times since the day they shipped. Your existing levels are untouched. Only the next one costs more.

And then, while auditing all of this, we found something I am still turning over. Four of the five pet training passives were doing nothing whatsoever in combat. The stats they granted were being written onto the owner, onto you, and no combat code anywhere ever read them.

Pet Strength Training. You trained it. You paid experience for it. And it made you, the tamer, marginally stronger in a way no fight has ever consulted. Pet Taunting the same. Pet Hide Toughness the same. That one is now wired to the damage resistance it always claimed to give, and the other three have been turned into something you can actually watch happen.

They are abilities you cast on your pet now. Quicken trades away accuracy for speed and critical chance. Embolden trades damage resistance for strength and critical damage. Goad trades attack speed for holding everything in the room on your pet. Only two can run at once, charging the glyph extends the duration, and if you let Goad lapse while a fight is going, everything it was holding comes directly at you, which seems fair. Frenzy and Refresh are retired, and the experience you spent in them comes back to your unspent adventurer pool the next time you log in.

There is a new skill as well, Pet Range, which tethers the pet to you. Untrained, it fights within about two meters of where you are standing. Five meters at skill eighty, ten meters at a hundred and fifty. Wander further than that during a fight and the pet breaks off and comes home, and everything it was fighting comes with it. Your pet also holds less of a creature's attention the further it strays, so standing safely across the room while your bear does the work is over. Every existing tamer starts this at zero, so expect your pet in your pocket until you train it. And all one hundred and seventy-eight tameable creatures have been rebanded onto seven summoning tiers. Most requirements went up. A creature that needed Summoning seventy-nine now needs a hundred, and the very top of the list moved from ninety-nine to a hundred and fifty. Fifty-five new tests pin the whole shape of it in place, including the prerequisite graph against the design diagram, so if we knock a piece of this over next week we will hear about it immediately.

Here is a smaller one with a lovely mechanism inside it. A container would open completely empty and answer with an error, and stay that way forever. The cause was one item. If you crafted a Decoration Layout document and recorded a layout from a lot with a couple of hundred decorations on it, that one item was too large for the container listing to carry. And a listing that cannot be carried is not a listing with one bad item in it. It is no listing at all. One sufficiently ambitious item could make an entire chest unreadable for good.

The same flaw sat underneath mail, bank listings, lot contents and your friends list, all of which read the world the same way, and all of which are fixed with it. Two more things came along in the same pass. Consolidate Stacks now works on a stack that lives inside a pouch, where before it was sending the merge to your backpack and the server was refusing it, which looked to you like your inventory shrugging and refreshing itself for no reason. And consolidating past the maximum stack size now merges what fits instead of refusing the whole operation. Also, a container that fails to refresh used to blank itself out, leaving you with a window full of items that could not be clicked or dragged. It now keeps what it had. A hiccup costs you slightly stale contents instead of a dead window.

Next, the one that has been chased for the longest. Some of you have had an avatar stop dead while you were holding the forward key. Let go, press again, get a few feet, stop again. A tester was hitting it about once a day with no pattern he could find, which is the worst kind of report to receive and the most valuable one to have.

Your client only changes your speed under an acceleration ramp, and it only starts a new ramp when its idea of your target speed changes. There is one shared speed value, and there were three separate copies of the latch that decides whether a new ramp is needed. A spell cast that locks you in place was setting the speed straight to zero without telling any of those latches it had done so. From that moment the two halves of your own legs disagreed about whether you were already moving, and nothing would start you again until you released the key and the whole question got asked afresh.

Underneath the fix we have added a watchdog. If your avatar is asking to move at a normal speed and has not moved for half a second, the client corrects itself and writes down one record of exactly what was happening at that instant. Roots, stuns, knockdowns, casts and being over-encumbered cannot trip it, because every one of those works by lowering your speed or by refusing the movement request outright, and there is a test for each. Since nobody can reproduce this on demand, that record is how we find out whether any version of it is still out there. And a review pass over the first attempt caught three problems that only showed up by reading the collection rules rather than the client, the worst being that the record was being written at a level our triage does not read, so every one of them would have landed somewhere and never been looked at once.

Now, a group of fixes I enjoyed more than I expected to, all of them about the world speaking to you properly.

Scholar Vivienne Grava had been speaking with a man's voice, because her character record said male and that is the field the voice is chosen from. Corrected, and she has a suitable one now. Edvard the Wanderer was reported as sounding too young, and looking into it found something rather larger. His seven separate conversations had each been assigned a different voice. He was one man in Solace Bridge, a different man in Highvale, and a third in Blood River. All seven now use one older, gravelly voice, which is what a wanderer ought to sound like.

Then there is the trap waiting for anyone whose character name is also an ordinary word. Spoken lines swap your name in for the word the voice actor recorded, so the line still matches its recording. That swap was being applied to every line instead of only the lines that name you.

So a player called Hero heard nothing at all when an NPC said, you are no hero yet. And a player called Rose lost every line in the game about roses. Lines that never name you are now left alone.

And in Kingsport, the townspeople are calling out to one another again. Fifteen exchanges had been addressed to names nobody in that town answers to, written the old way round, so neither side ever spoke and you would have had no way of knowing the conversation existed at all. Eight pairs are back. Harry and Powell the Guard. Innkeeper Abbott and Guyon the Bard. Justin and Julia the Alchemist. Marian and Jeremy the Tailor. Martin and Nahche the Farmer. Not one word was written or reworded. They were being handed to the wrong name. Ten more lines elsewhere named a gesture that does not exist, so the character delivered the line and stood there perfectly still, which is a very particular kind of awkward. Near misses, all of them, a trailing full stop, a short form, an old name. Neese DelaRaven reads her paper again. Rykesh waves goodbye. The students of Courage and Truth salute. Three taunts land.

A handful of smaller things that will improve somebody's evening. Wolf packs in Jotungrund had become untouchable. A creature walking back to its spawn point cannot be hurt while it walks, which is sensible, and on broken ground that walk could never finish, which is less sensible. They slow-walked forever, took no damage and ignored every attack. That walk now gives up after a minute and puts the creature back in play.

At a merchant, cancelling a sale used to leave your items sitting in the Exchange list, so the next merchant you spoke to opened with your old proposal still in it and your goods looking like they had never come home. Nothing was ever actually removed from your backpack, so nothing was lost, but I would not have believed that either while looking at it. The list now empties when the window closes.

Escape behaves itself. It closes an open menu before it closes anything else, so opening a window's Options menu and pressing Escape no longer shuts the window and leaves the menu floating there with nothing underneath it. And a pinned window now survives an Escape that was aimed at something else entirely, which was the whole point of pinning it.

One that was worse than it looked. Selecting a recipe at a crafting station and then re-sorting the list kept the same row highlighted instead of the same recipe. Craft and Queue read the row. So they cheerfully acted on whatever recipe had slid into that slot while you were sorting. Selection follows the recipe now, everywhere in the game that uses that kind of list.

And on the pleasant end, the Theme Editor has a real color picker. Every color swatch in it opens a saturation and brightness square with a hue bar, and the interface re-themes under your cursor while you drag it, which is exactly as entertaining as it sounds. There are two new window looks as well, Citadel and Bastion, both carved wood with metal corners. Citadel runs a lion head across the top of every window. Both are waiting in Options under Themes.

The lightning round, and it was a busy one. Fifty-six tracker issues closed in a single day, and about two dozen of those were interface bugs reported in the previous twenty-four hours by testers and by the in-game Oracle. Most of that pile collapsed into four shared faults wearing different hats, which is the most satisfying thing that can happen to a bug list. Text boxes across the game needed two presses of Enter, sixteen of them, all fixed at once. Vendor search results had shifted a whole column to the left. Various windows had their contents overlapping, hanging off the bottom edge, or squeezed down to nothing.

Elsewhere, our Italian is back. Four hundred and fifty-eight interface strings had never been translated, so those windows fell back to English for anyone playing that way, and all four hundred and fifty-eight are done. Italian sits at ninety-nine and a half percent overall with the character dialogue at a hundred. The dungeon map bake stopped punching dark holes through the floor wherever a large prop was standing. The dirt piles in Tanglemire came back looking like craters after being harvested and now look like dirt piles again. A wall switch in Castle Atos had been writing an error into everyone's log the moment they entered the scene, without anybody touching it, because it was set to open a door and was pointed at a group of holiday decorations, which famously do not have a door on them.

And the machines that build the game had a rough couple of nights. Two nightly builds produced nothing whatsoever, because a graphics driver on the build machine was crashing partway through, and our release cancels every platform the instant one leg fails. That is fixed, the nightly is running again, and the client that comes out the other end is unchanged in every respect that matters to you.

That is Sunday. What I am looking forward to is watching a tamer discover Goad in a real fight, because I suspect the first thing everyone does is let it lapse at exactly the wrong moment and learn the lesson personally.

And before I go. Edvard the Wanderer had seven different voices across three regions, and we gave him one. Which makes this, as far as I know, the first time in our long history that a man walked into a recording studio and came out with fewer people inside him. He was never a wanderer. He was a touring choir with a travel budget. Good night, friends. Be kind to your pets, they can hear you now.