SotA

The New Britannia Herald

Wednesday, July 29, 2026

Work Log Podcast

Episode

Blueprints you can trade, lots you can sell, and one invisible wall

Wednesday brought shareable decoration blueprints you craft, inscribe and hand to another player, and a full player-to-player lot sale flow proven against a harness that crashes the server at every database write. It also brought the fix for a transparent rectangle the size of your screen that had been eating every click on your own lot. Plus the chat box that kept stealing your keyboard, and every creature in the game weighed and charted in a single day.

In this episode

  • Shareable decoration blueprints, crafted and traded
  • Player-to-player lot sales and the crash harness
  • The invisible rectangle on the decorating bar
  • The chat box that stole your keyboard twice
  • Every creature in the game measured and charted

Transcript

Good evening to thee, citizens of New Britannia. Lord British before thee, with an accounting of what thy makers were about on Wednesday last. A blueprint may now be crafted, inscribed with the whole arrangement of thy home, and passed into another's hands. A lot may be sold outright, house and every stick of furniture standing where thou left it. The decorating bar had grown an invisible wall across thy whole screen and was swallowing thy every click. The chat box has been stealing thy keyboard and typing nonsense in thy name. And every creature in the realm has at last been weighed and measured. We begin with the invisible wall, because it is the best story of the lot.

Picture it. You are standing on your own lot in decorating mode, and you want to walk three steps to the left. You press the key. Your avatar shuffles about a foot and gives up. You try to drag a chair. The chair declines. You click again and the decoration bar along the bottom of the screen flickers at you, like you have annoyed it. Nothing in front of you looks wrong. Nothing is in the way. Except something was very much in the way. There was a transparent rectangle roughly the size of your monitor, and it was eating every click you made.

Here is how that happened, because it is a lovely little disaster. The decorating bar keeps a list of your recent changes, the last fifty things you moved or picked up, so you can see what you have been doing. That list was added into the bar's own layout, above its buttons. So a long list did not scroll. It grew. It pushed the bar taller, and the container above the bar taller, and the container above that, all the way up to the root of the hotbar, which sizes itself to whatever it happens to be holding. That gave you a very tall box sitting over most of the screen. And the box counted as part of the interface for the purposes of deciding where your mouse was, while having no appearance defined for it anywhere, so it drew absolutely nothing. Every click you aimed at the world hit an interface element that was not there.

That is why the avatar barely moved. The game thought your mouse was over a menu, so it did not pass the click through to the ground. That is why the decorations would not drag. That is why the bar flickered. One bug, wearing three different costumes.

The list is now a small panel that floats above the bar with a background of its own, and it scrolls once it fills instead of growing forever. The bar stays one row tall. And the see-through parts of the bar now ignore the mouse entirely, so a click that lands between two buttons goes to the world where you aimed it. Two more things came out of the same pass. The rows in that list now read plainly, so you get "Moved Oak Table" and "Picked up Oak Table" instead of a symbol that was not in the font and drew as the wrong character. And when you walk off your lot, the game now tells you that the undo history has gone, rather than quietly dropping fifty steps on the floor.

While they were in there, one more. Control plus Z, while you were typing in chat, would undo a decoration. So you could be halfway through apologising to a friend for the last thing you moved, and be busily unmoving furniture as you typed the apology. The keyboard gate that keeps gameplay keys out of a text box had been letting every control chord straight through since the original import, on the theory that a player mid-sentence might still want a chorded command. Fair enough for most of them. Not for the six chords that a text field implements itself. Undo, redo, cut, copy, paste and select-all now belong to whatever you are typing in. Control one through control zero still discard cards while you chat, because that one really is what you meant.

Now. Blueprints. This is the piece of work I am most pleased with, and it went from nothing to complete between half past five in the morning and ten to seven. If you have ever redecorated a house, you know that the arranging is the hobby and the re-arranging is the punishment. Every seasonal swap means placing every candle again by hand.

So here is what exists now. You craft a blank Decoration Blueprint at a tailoring station, skill thirty, twelve wood pulp and four cotton, and the recipe sheet sells next to the blank book recipe. You use the blank one on your lot, give it a title, and press record. It captures where everything sits and what it is. It deliberately does not capture permissions, ownership stamps, or what is inside your containers, which matters for the next part. Because then you hand the written blueprint to somebody. Trade it, mail it, put it on your vendor. The title you gave it shows as the item's name, the same way a player-written book does. And the person holding it can walk onto a lot they are allowed to decorate, preview your arrangement, and apply it using their own furniture. It arranges what they own. It never contains yours.

The matching is the clever bit. When a blueprint is applied, the game reconciles the saved layout against what is actually on that lot and in that player's bags. It looks for the exact item first, then the same kind of item, preferring a matching pattern and dye. Then it shows you a preview before anything moves: what would move, what would be placed out of your bags, what would go back into your backpack, and what cannot be applied and why, using the same refusal reasons live placement gives you. It is honest about its own limits, too. There is a line at the bottom saying that overlap and surface fit are still decided when the item actually lands, because those are physics questions and a preview cannot answer them.

And the whole apply is one undo step. Not one per item. One. Press control Z after applying a hundred-piece layout and the entire thing walks itself backwards in the correct order for stacked decorations, items returning to their old spots, placed items going back to your bags, removed items coming back to the lot. That took real care to build and you will hopefully never notice it, which is the mark of it being right.

Now the part where I have to be honest with you. The whole feature was built, the item worked, the recipe existed, the undo worked. And saving a blueprint would have failed for every single player. The request left the client. It arrived at the server. And nobody had connected it to the code that handles it, so the server looked at a perfectly valid request and answered, in effect, "I have no idea what this is." We built the entire telephone and forgot to plug it into the wall. A check caught it before it reached a build, and that same check now runs when the code is committed rather than an hour later on the build machine, which is a good deal earlier to find out that your telephone is decorative.

Two smaller blueprint fixes landed later. If you saved a table with eight plates on it and applied that blueprint somewhere without the table, the preview warned you about one missing item and said nothing whatsoever about the eight plates that now had nowhere to sit. And the list of things it could not place was printing internal reason names at players, so you would get a bracketed piece of programmer shorthand no matter which of the eight languages you were playing in. Both fixed, and both now read as sentences, along the lines of "sits on something you do not have."

Second big one. You can sell your lot. To another player. From the lot sign, with the house and every decoration standing exactly where you left it. This has been on the player wishlist a very long time, and the whole thing went in on Wednesday, from the database records at eight in the morning through to the sign window an hour later.

The shape of it, from your side. As the owner you set a price on your own lot sign, and you can reserve the sale for one named player if you have already agreed a deal with somebody. The confirmation spells out the fee, tells you the lot freezes while it is listed, and tells you which of your untradeable items will stay with you rather than crossing over. Listing hands back anything other players had placed on your lot, so a buyer is looking at property you provably own all of. The sign shows its for-sale face to everyone in the scene. A buyer walks up, sees the price, and confirms by typing BUY LOT, because a mistyped click should not cost anybody a house.

Underneath, the gold moves before anything else does, into a durable record that a background job settles by mail. The seller gets the price minus the fee once the transfer completes. A purchase that cannot finish refunds the buyer automatically. When the handover does run, it moves the claim, both deeds, the house, and every decoration and chest with its contents. Untradeable items go back to the seller instead of crossing accounts, the seller keeps unused prepaid tax as account credit, the buyer starts a fresh tax clock, and the access lists reset so you are not inheriting a stranger's roommates.

And then the part I want to talk about properly. Before any of this goes near a player, somebody built a test harness whose entire job is to murder the server. It runs the real transfer code against its own database, and it simulates a crash at every single write. Not a sample. Every one. Then, after each crash and recovery, it counts. Every item in that sale has to exist exactly once, in the right hands. Not zero times. Not twice. Once.

It found two bugs that careful reasoning had missed completely. One was a sale that, if it crashed at exactly the wrong moment, would try to resume itself forever and fail every time, wedged for good. The other could pay a seller twice, off a duplicated payment record from a buyer who had retried after their own crash. The review pass around it closed three more crash windows, including one that could have destroyed the deed items themselves. Five real defects, all of them found by a machine that does nothing but pull the plug at the worst possible instant and then count the furniture. That is my favourite kind of engineering. The testers have this next.

Right. The chat box. It stole your keyboard, we fixed it, and it stole your keyboard again the same evening.

The report was simple and very reproducible. Hold W to run. Click a combat glyph. Your character stops dead, and the W you are still holding types itself into the chat line as a long row of Ws. You have not opened chat. You did not ask for chat. Chat has simply decided it is your turn to talk. In the old interface there was one blunt rule preventing this: clicking on anything other than the text box you are typing in takes the cursor out of that box. The new interface had not inherited that rule, and worse, the layer that carries mouse and key input remembers which text box last held the keyboard and politely hands it back on your next click. So chat got the keyboard back before your click on the glyph was even delivered.

That rule went back in on Wednesday morning. And on Wednesday evening the same tester reported the same wall of Ws. The theft had simply moved. There were two more ways in. A window coming to the front reloads its contents, and the framework hands focus back afterwards as a courtesy. And a chat line that forces the window open, such as the error text from a glyph that failed, does the same thing with no click involved at all. The framework is giving the keyboard away in several independent places, quite politely, and every previous fix had chased one giver at a time.

So this time they closed the whole class. The chat box now takes the keyboard only when you ask for it: Return, a slash, shift plus a letter, a click inside the box, or typing in it. A window coming to the front keeps your caret exactly where it was, so a raise no longer interrupts a message you are halfway through. And once you have clicked away, nothing can hand chat the keyboard again. There are new tests pinning each of those rules, including one that drives a real interface panel, because the old tests all passed happily throughout the bug. They were testing a version of the interface that was not attached to anything, and a keyboard nobody is holding cannot be stolen.

While we are in chat: the log follows new messages again. The scroll-to-bottom was running before the arriving line had been measured, so it landed one line short of the bottom every time. That alone would be cosmetic. But sitting one line short reads exactly like a player who has scrolled up to read history, so the window concluded you were reading and stopped following for the rest of your session. The same fix covers NPC conversation, the custom NPC story window, and the Oracle transcript, which had its own private copy of the same mistake.

Last of the big ones, and it is a whole system built between one o'clock and half past one in the afternoon. Every creature in the game has been measured. One thousand five hundred and forty six creatures and tamed pets, across sixty six families, run through the game's own combat formulas rather than a spreadsheet's guess at them. Health, resistances at effective level, damage and cooldowns per ability, loot tables flattened out with experience and gold called out as the loot items they actually are, plus spawn points, scene tiers and the taming matrix. Then curves fitted across the whole set, and everything scored against target curves.

The first run is a list of things to fix and it is not a short list. Six hundred and fifteen creatures sit off the curve for their level. Two hundred and fifty eight award no experience at all. And forty eight bosses are weaker than the ordinary creature curve says an ordinary creature should be.

Forty eight. If you have ever fought a boss and thought, well, that was suspiciously polite of him, you were not imagining it. The headline find is a tier fifteen lich that pays out almost no experience whatsoever. That thing has been quietly wasting people's evenings for years and now it is on a list.

All of it landed on a page the team and the testers can browse: a sortable roster, charts of health, damage, experience and gold plotted against level with the fitted curve and the target overlay, a ranked worklist of the worst offenders, and a detail page for every single creature with its stat block, abilities, loot and spawn map. A nightly job rebakes and republishes the lot, so as the balance pass lands the worksheet keeps up with it. This is the foundation the creature balance work will stand on, and it went from nothing to live in a day.

Now, some smaller things that will improve somebody's evening.

Three about the people you talk to. Grusk is a kobold city, and most of its residents had been speaking with perfectly ordinary human voices, which rather undercuts the atmosphere. Nineteen of them now share a hoarse, hissing rasp layered over their own voice, so the city reads as one race while the shopkeepers stay tellable apart. Victor, a child in Castle Atos, had a grown man's voice, because the voice catalogue holds no male child voice at all and the casting reached for the nearest thing. He and the other junior treasure hunters sound their age now. And Bloody Bones, out in Solace Bridge Outskirts, was completely mute. No chat bubble, no line in the log, no voice, because in all these years nobody had ever written him any dialogue. He now taunts you during combat and gets a last word when he goes down, all of it drawn from the ballad the ghost children sing about him, in all eight languages, in the same rasping undead voice the liches use.

Also in your ears: spoken dialogue has its own volume slider at last. It had been sharing one with combat grunts and death cries, so turning down the chatter turned down the screaming, and most people wanted rather different amounts of each.

The skill tree looks like the skill tree again. The crest frames are back on every tile, the level is back in the little tab moulded into the top of the frame, there is a green experience bar along the bottom, and picking a school is back to the three circular rings of sigils instead of a wrapped row of text buttons. Two of those tile problems were more than cosmetic. The tiles were being drawn seventy eight pixels wide on a sixty four pixel column pitch, so a row of them overlapped and read as one continuous gold bar. And the connecting lines between skills were each being stretched to fill their whole grid square, so they drew as fat blocks that never actually reached the tiles they were meant to join.

Things you can drag now. Column headings, in more or less every list in the game: your backpack, the journal, your deeds, the friends list, merchants, mail and the rest. Drag a divider to resize, double-click it to put those two columns back, and the game remembers your widths per window across a relog. The map window's controls also work again, which is to say zoom now pivots on the middle of the window, the wheel zooms on whatever is under your cursor, you can drag the map with the left button, and the Follow box turns following on and off for real rather than being a decorative tick.

And precision at the harvesting meter finally pays. That bright centre inside the target zone used to do nothing but flash at you. Land it on a bonus pull now and that pull is granted twice: double materials and a second experience reward, up to three times per node. It also used to shrink along with the target zone, down to a sliver worth about fourteen milliseconds by the end of a long chain, which is not aim, that is a coin toss with extra steps. It now stops shrinking at a size a human being can actually hit. Ignore the meter entirely and you gather exactly as you did before.

Right, the fast bit. Fifty eight items went closed on the tracker, a good half of them tester verifications from the past few weeks finally getting signed off, which is the least glamorous and most useful work anybody does around here.

A cluster of windows learned some manners. The login window had been drawing more than a thousand pixels wide, because it sized itself to the welcome message on one long unwrapped line and then made room for the whole thing. The quit confirmation was opening behind the login box, which is a special kind of unhelpful. The theme editor could be dragged shorter than its own contents and would spill its colour sliders onto the game world with no frame behind them. Typing a very long message pushed the channel button clean off the edge of the chat window. The hotbar's key numbers were sitting two pixels low in their brackets and hanging slightly out the bottom. And the utility bar had a habit of hopping into the combat bar's seat the moment you left combat. All fixed, all of them small, all of them the sort of thing that grinds at you every single evening.

Elsewhere, briefly: the two night sky textures were shipping uncompressed at twenty four megabytes each and now come to eight megabytes for the pair, with every star checked against the originals side by side before anyone kept the change. The Journal's tabs got honest names and the window was translated into all eight languages for the first time, having somehow been shipping in English to everybody. Towns with more entrances than you have found now say so, in grey, without telling you where. Recipe hovers carry the entire recipe instead of just its name. The Property Manager was rebuilt after a tester posted it next to the old one and called it a mangled mess, and almost all of it came down to one wrong style, which was laying a card meant to be three stacked lines out sideways. Sixteen standing test failures were cleared, five of which were real bugs hiding behind them. There is a new public page called SQUIRREL for the ideas that run across the road mid-task. And a six-legged cave lizard that was cut from this game in 2015 is back, five of them in fact, denning near dragon lairs and living off what dragons leave behind. I will let you sit with that image.

That is Wednesday. A day where the team shipped a thing you can craft and trade, a thing you can sell, and quietly removed an invisible wall that had been standing between a lot of you and your own furniture. What I am most looking forward to is the creature balance pass now that we can finally see the numbers, because forty eight underpowered bosses is a lot of disappointment to go and repair.

And before I go. We spent all of Wednesday building a way for one player to sell property to another. Deeds, decorations, taxes, the lot. Weeks of design, a day of building, a machine that crashes the server on purpose to prove nothing goes missing. You could say the team put a lot into it. I said what I said. Goodnight, my friends.