Week of September 7, 2026. This is an archive page; back to the current week.
2026-09-13 · 79 items
The New Britannia Herald
The shard locked its doors and the stronghold refused to fight
Headlines
- Pets and creatures in Duanor and Jade Valley stop walking through houses: a navmesh tile that cannot fit every decoration now drops only the ones it cannot fit.
- The "Equipping Avatars" loading pause is fixed properly this time: item data that took 10 to 38 seconds to prepare on every world entry now takes 69 ms at startup.
- A bug we closed in August was still firing every day. The fix had guarded the wrong null. The real one is guarded now, and the stale housing record behind 60 days of scene server errors is gone.
- Creatures and townsfolk could stop appearing for the rest of a play session, in every scene the player visited. One error inside the client spawn queue ended it for good, and the queue is started once at boot. Fixed, along with the three smaller leaks of the same shape found next to it.
- Nightly release failure fixed and fenced. The publish script lost its upload destination to a helper file that reset its settings; the fix plus four new gates, a release failure ledger of all 38 failure modes since July, and a per-run log that names repeats.
- Whisper an AFK player and you now get told they are away; /afk takes an away message
- A second review of the Cabalist Stronghold found the scene was sending every visitor into a random town scenario, which switched the entire fight off. Fixed, along with a 24-hour celebration that was expiring after three.
- Lot deeds upgrade in place now. No unclaiming, no packing the house into storage, no rebuild: pick a better deed at the lot sign and everything stays put.
- Testers sign in to the tracker with their in-game password.
- Spells and skills work again at the river's edge: wading stopped refusing everything but Water magic.
- Sell individually on player vendors: one listing of 1,000 potions can now be bought five or ten at a time.
- A besieged town’s Cabalist could heal back to full when players left the town. Fixed on every town siege, found while finishing the second review of the Cabalist Stronghold.
- Chaos and QA both spent hours refusing logins today because one build number was handed out twice. The release pipeline is being rebuilt so a half-finished release can never move a shard.
The Herald
- The New Britannia Herald for 2026-09-12 is up: A player found a staircase in his dungeon that did not exist, and pulling on that thread took two thousand eight hundred invisible walls out of ninety-eight dungeon rooms. The crash dropping people to the desktop in busy towns had a second cause hiding under the first, and the test shard went back several builds while the real fix was written. Also a new Cabalist stronghold east of the Obsidian Trial, dungeon entry that no longer freezes for the better part of a minute, and the arrow keys finally made safe. Listen or read the transcript (13 min). Subscribe in any podcast app: /blog/podcast.xml
Community
- Filed two tracker entries from the nightly forum sweep: a Shield-tree Charge skill bug with a duplicated stun tooltip and double Resist Crowd Control application, and a wishlist request to let the Oracle chat box show two lines for review before sending.
Performance
- Added profiler markers to the weather, rain and sky update code, so captures from the profiler client show what rain and weather upkeep cost in each scene.
Tools
- The unattended bug loop can now work a queue from the oldest report forward, not just the newest. The old backlog was unreachable before this: the queue always started at the most recently filed bug, so reports from the low hundreds never came up. Paired with a retry pass it puts 267 open reports back in the queue starting at the oldest.
- The Redmine issue helper now fills in the required Votes field when it files a Player Wishlist idea; the tracker refused those filings with "Votes cannot be blank".
- A skill-icon test had been failing on the branch since Powerful Swing got its own art: the list of icons deliberately shared between skills still named Defensive Positions, which no longer shares with anything. Dropped the stale entry so the list matches the skill data again.
- The in-game Oracle no longer files a bug report with nothing in it. A report whose title or summary only records that the player has not said what is wrong yet is refused, and the Oracle asks what went wrong before filing.
Client
- The observatory telescope no longer shows parts of its own body in the magnified view at certain angles. It stays fully hidden while you are looking through it and reappears when you walk away.
- Fixed the "Equipping Avatars" loading pause for real. The first fix on September 12 left a 10 to 38 second pause on builds 195 and 196, because the item classification cache re-read each classification's item list once per item while it was being built. The cache is now built once while the game starts up (69 ms for all 627 classifications), and while a scene is loading, item load callbacks run in 50 ms slices so the loading screen keeps moving.
- Creatures and townsfolk could stop appearing partway through a play session, and once it happened it lasted until the client was restarted and followed the player into every scene they travelled to afterwards. The people and creatures a scene starts with still arrived normally, so what was missing was everything after that: nothing respawned, nothing wandered into view, and creature waves never came. The client runs one queue that feeds every spawn, it is started once at boot, and an error inside it ended that queue for the rest of the session. A spawner removed from the world while it still had a spawn waiting in the queue was enough to trigger it. The queue now drops that entry, survives any error, and reports how long each spawn took.
- Busy towns now fill in faster once the loading screen goes away. Spawns were paced at one every 0.33 seconds no matter how many were queued, and Etceter asks for 80 of its 89 residents and creatures the moment you arrive, which worked out to roughly 26 seconds of the town populating around a player already standing in it. A queue above the alert depth now spawns in short bursts with a ceiling on how long a burst may take, so it cannot cost a frame. Below that depth the pacing is unchanged.
- Quick Craft (no experience) now applies to salvaging. Ticking it before a batch salvage skips the timer between items, and Producer experience and the two pooled salvage-proficiency awards are suppressed for that run to keep the tooltip promise. Ordinary salvage without Quick Craft is unchanged.
- The client now checks a prefab before it builds an equipped item from it. If the prefab arrived with its scripts missing, which is the condition behind the heraldry tabard crash on builds 194 and 195, that one piece of the outfit is skipped and logged instead of taking the game down, and the body part it would have covered stays visible. NPC weapons and placed decorations log the same condition and still appear. The bundle layout rule from the tabard fix also missed prefabs that nest another prefab, seven of them on the last build (the FarEast lamps, four runestones and Wymond's token); those now ship beside whatever uses them. Not on chaos until the next client build.
- The launcher now records the language it is showing the first time it runs, so a fresh install starts the game in that language. Before this the language went unrecorded and the game fell back to the Windows display language, which is why a launcher showing English could hand over a game running in Japanese. A language picked later in the launcher or in the game Options window is kept and is not written over.
- Fixed the Shogun Guard Tower pagoda roof refusing decorations. The crafted tower would not take a chandelier anywhere under its roof, and the ornate tower took one only in a patch about two metres across at the centre of its lowest roof, refusing the rest of that roof and the three roofs above it. Both now read as a ceiling across the whole underside of every roof; the plain tower already did and is unchanged.
- Valiant Warden draws its crystal shards again. The art the shards are built from was imported in a form the shipped client discards, so on a real client the ring of shards never appeared around either the protected party member or the Warden, and the client wrote an error into its log every session. Both meshes now import in the form the effect needs.
Pathfinding
- Packed player town lots no longer lose every pathing obstacle on a patch of ground when two decorations overlap in a way the navmesh cutter cannot handle. The tile now drops only the decorations it cannot fit and keeps every other house, fence and decoration solid. Duanor and Jade Valley hit this on every load. The retry that nudges cuts apart was also only trying six positions per axis because of an operator-precedence bug, and now covers its full range.
Build
- Fixed the failure that took down the nightly release on Sept 13. The client publish script pulled in a helper file for one function, and the way it did that reset two of its own settings to the helper's defaults. The patch upload lost its destination and copied the build into a folder under itself, 57 minutes and a completed server swap in. Same mistake sat in the promotion script, where a QA promotion or rollback would have moved the tester shard instead of QA. The helper is now a plain function library that cannot touch its caller, the publish script builds its upload destination in one place and refuses anything that is not a remote path, and a 3-second self-test proves that before any build starts.
- Added four release gates so the failures of the last four days cannot repeat. One reads the PowerShell syntax tree and fails any script whose helper file would overwrite the caller's variables. One scans committed scripts for the invisible bytes git diff cannot show: a lone carriage return (which split a comment into code on Sept 11), a NUL (the release orchestrator carried two, so git had treated it as binary and no change to it had ever appeared in a review), and Windows line endings in a shell script. One asks the shard host whether the smoke-test bot is installed before the release moves anything, instead of after the channel had already flipped. One kills a stranded Unity worker before each client build attempt, which is what killed the Sept 12 morning release. Each runs at commit time, in the release preflight before the four-hour client builds, in the deploy job, and nightly.
- Started a release failure ledger: one row per distinct way the release has failed since July, 38 so far, with the root cause and the guard that now stops it, or the open gap where nothing does yet. A commit that adds a release guard without its row is refused. The deploy script now writes one line per run to a local log, and a small report names any failure signature seen twice, so the answer to "has this happened before" no longer depends on Jenkins logs that rotate away.
- The chaos shard turned players away at login for about two hours this afternoon. The server had moved to a client build that never finished publishing, so the launcher saw nothing to patch and the server refused the build players had. Both shards are back on the build their channels actually serve.
- The builds page now refuses a single-platform channel flip on a shard channel. A shard serves one client build to everyone, so moving one platform on its own locked the other platforms out of the game three times before (mac for eight hours in one case). Promote and Roll back, which move all three platforms and the server together, are now the only way onto a shard channel.
- Build numbers now come from a counter on the patch host that only goes up. A release reserves its number, with the commit it was built from, before any client build starts, and a release that fails burns its number instead of handing it back. That is what went wrong today: number 197 was given out twice, to two different builds.
- Every job in a release now shows the same build number. The release job, the Windows client job and the Mac client job each had their own counter (209, 239, 200) with the game build number a fourth number entirely, which made a broken release hard to follow. One reserved number now names the release everywhere.
- The nightly automatic release is paused. Releases run on demand until the pipeline is rebuilt so that a release which fails partway can never leave the server asking for a client build that was not published.
- A release now puts everything in place before anything players see changes: all three platform clients are uploaded and checked first, then the server moves, then the three channels flip together. A failure anywhere before that last step puts the server back, so players stay on the build they were already running.
- The health check that watches logins now signs in as the build the patch channel actually serves. It used to connect without a build number, which the server always accepts, so it reported everything healthy through two shard lockouts today.
- A new watchdog compares, every two minutes, the build each shard will accept against the build its channels serve. Those two disagreeing is what locks everyone out, and until now nothing looked at it: the alert names both ways out.
- Every platform gets its full-install download rebuilt after a release again. Folding the three separate publish steps into one had left Linux and Mac out, which would have sent their first installs down the slow path.
- First release on the new pipeline failed in about a minute, on a build farm detail rather than the game: a step that reads repo scripts ran on the second Linux agent, which keeps its own older copy of the source. Those steps are now pinned to the agent whose copy is kept current. Build number 250 was spent and the next release takes 251, which is the point of the new counter.
- Build jobs now clear a stale git lock left behind by an aborted run. One abort used to wedge every later build of that job until someone deleted the file by hand.
Sieges
- Dead siege attackers and Cabalists now record that they are despawning before their body begins to dissolve, instead of after. In the old order a fade time of zero dropped the removal entirely and left the corpse standing.
- A siege corpse that changed hands between clients partway through its dissolve used to snap back to fully visible and fade a second time, with two removals queued against it. It now finishes the fade it started.
- Reviewed the Cabalist Stronghold a second time and fixed what it found. The scene still carried the Forest gate’s scenario manager, so entering it picked a random town scenario and the client resolved scene number 0: no Cabalist spawned, no meter, no kill credit. The manager and the 2,114 inactive objects it toggled are gone, and the three exit volumes that lived inside one of those scenario sets are back at the scene root.
- The stronghold’s terrain was stored as a text blob with 16 bytes of line endings already stripped out of it, so a fresh clone got a corrupt terrain. It is tracked properly now. Sixteen throne seats that sat on a flat plane over ground running from 23 to 30 metres were each put on their own ground height; six of them were up to 3.9 m underground.
- The 24-hour Light of the Eight celebration was being written into the database with a 3-hour expiry, because the number was clamped a second time on the way in. Fixed, with a test. The stronghold row also used to disappear the moment its quiet window ended, which let the previous cycle’s town clears count twice and opened the next stronghold after one town instead of five.
- Four smaller stronghold fixes: ending it with the game master command now retires it and announces the withdrawal instead of quietly holding the whole shard for an hour; a kill the server could not credit now still announces the fall and starts the celebration; the town sieges stand down once the cycle has its clears, so the last town can actually finish; and the eight Cabalists and their liches no longer despawn at ordinary range while their leader stays loaded.
- A Cabalist holding a besieged town could heal most or all of his health bar back mid-fight when players left the town, because the player whose game took over running him rebuilt him from his base stats for a moment. Fixed for every town siege on chaos, and for the Cabalist Stronghold.
- The Light of the Eight celebration now raises healing you receive from other players too, not only your own heals, food and potions. Its buff shows how long the celebration has left and no longer says you cast it, and its description mentions the experience bonus.
- The Cabalist Stronghold fight now explains itself: a chat line on arrival says Vitium cannot be hurt while his Cabal stands, and another says so when the last of them falls. His focus drain only starts once his shield is gone, his army’s rings stand clear of the eight thrones, and a Cabalist killed in another instance of the stronghold no longer stays standing in yours.
- Vitium was retuned before anyone has fought him: 120,000 experience (an ancient dragon pays 100,000), a proper stun wall so one player cannot hold him still, and the Obsidian liches in the empty thrones now fight at a fifth of full siege power so a well-won town cycle does not earn the easiest final fight. His loot lost four rows copied from Dolus, and his achievement now pays a trophy like every other boss.
- Stronghold housekeeping: the game master test switch now works before the feature is turned on, a stronghold that has closed sends anyone who logs back in there to the overworld, only one celebration can start per cycle from the Cabal instead of one per lieutenant, and the last of the old Forest siege scene (catapults, siege weapon landmarks and quest hooks) is gone from the map.
Chat
- Whispering a player who is AFK now gets a reply. The away player's client answers with a system line on the sender's side, either "is away from the keyboard and may not see your message" or the text they typed after /afk, which now takes an optional away message of up to 120 characters. One reply per sender per five minutes, no reply to another AFK reply, none to blocked senders, no whisper sound, and /r still targets the last real whisper. Player request relayed from the wishlist.
Server
- Reopened a scene server bug that was closed in August and never stopped firing. The fix that closed it guarded a different null from the one actually throwing, so the shard kept logging a pair of unexplained errors every time a scene started. The real case is a lot with no storage attached to it, and the resolve now names the lot, scene and character it failed on instead of throwing anonymously.
- Three failure cases in that resolve are now treated as permanent rather than transient. One of them was answering "try again later" to a condition that reads the same data every time, which is what put the original error on a 30-second loop; it would have done the same thing again from one branch further down.
- Selling a lot to another account no longer strips the house off it. The house, its deed and every decoration stayed with the lot instead of dropping into the buyer Property Manager as loose storage, and the lot no longer reverts to the plain house an empty row lot shows.
Housing
- Retired the stale housing record behind those errors. A lot was given up in August while a decoration was still being moved, and the leftover record had been logging two errors on every scene start for 60 days. The owner's house, deed and stored items were never at risk and were not touched, and a chest that had been left checked out to a single character is usable again.
- Lot deeds can now be upgraded in place, at the lot sign, without unclaiming first. Picking a better deed keeps your house, your decorations and the roles you have handed out exactly where they are, and the days of tax you paid in advance move to your account credit rather than vanishing. Requested by Duke Olahorand, and more recently by Lazarus Long.
- The deed upgrade ladder now refuses to move backwards on a claimed lot. The price table allowed a few swaps that cost more and gave less, and one of them would have started charging rent on a tax free lot from its original claim date, which the next tax sweep reads as months of arrears.
Tester
- Testers can sign in to the issue tracker and the tester hub with the account name and password they use in the game. The directory password issued to them still works, and access is still granted the same way, by ticking tester on the account.
- The in-game /verify board had always sent the game password to the tracker and been turned away, because for a returning player that password is held in a different store from the one the tracker reads. It now gets through, so the task list opens without a second sign-in.
- The /verify board keeps the sign-in from the login screen when the tracker cannot be reached, so a brief tracker outage no longer makes testers type their password again. When the tracker does refuse a sign-in, the message now says to use the account name and password they play with, or that the account has no tracker access yet.
- Signing in to the tracker and the tester hub with the in-game password is now live. The tracker has its own signing identity on the test server, separate from the guild and town portal, so either can be revoked without affecting the other.
Combat
- Standing in shallow water no longer blocks spells. Since the Water magic bonus learned to see ankle deep water, every river shoreline refused anything that was not a Water spell; wading now refuses nothing, Water keeps its 20 percent there, and only actual swimming still refuses casting. Reported by joescorpio.
- Killing an Amanita or a Conocybe mushroom no longer plants a lasting root visual on nearby targets. The poison damage from Amanita and the poison plus healing debuff from Conocybe still apply; the misleading tentacle effect that suggested you were being rooted is gone.
- Magic weapon enchants now hit at the level you trained them. Shock Weapon was firing its on-hit effect as though the caster were untrained, so a wand landed a few points of Air damage instead of the tooltip range and stunned on about 5% of hits where the tooltip said 13%. Ignite Weapon and Chill Weapon carried the same fault.
- Immolations flames now burn for the whole length of the buff. The fire used to stop after about ten and a half minutes while the buff kept running, which on a high Fire Magic character meant most of an hour with no fire showing.
- Fixed a pet that got stuck when its handler stood above it. A pet that had come back and settled at your feet a floor below you still counted as away from you, so it stopped attacking and was pulled to you again about every twenty seconds, on staircases, upper floors, balconies, dungeon ledges and steep hillsides. The leash now lets go on the same two measurements it starts on, height judged on its own allowance, so a pet within about six metres of your height settles and fights.
Vendors
- Sell individually on player vendors. When listing a stack, a seller can tick Sell individually and set a price for one, and shoppers then buy any number from it. Selling 1,000 potions in fives used to take 200 separate listings, which is every slot a vendor has. It now takes one listing, and the commission is charged once for the stack and shared across its sales.
- Buying part of a stack closes that listing and puts the rest back on the shelf as a new one, the same way a price change already works. A cart filled before another purchase is refused and the window refreshes, so nobody is charged a total they did not see. The seller gets a letter for each sale naming how many sold.
- Follow-up to Sell individually after a code review. The commission taken from a partial sale now depends only on how many have sold, so a seller who takes the rest of a stack back pays the same whether it sold one at a time or all together. Before, single-item sales took the commission early: 110 potions bought one by one from a 1,000 stack cost the seller 110 gold in fees against 13 for the same 110 bought together. If the rest of a stack cannot go back on the shelf after a sale, it now goes to the seller's bank, and taking a listing back just before someone buys part of it still returns what is left.
- The Sell individually listing dialog now says when the price each makes the stack's total higher than a listing may ask, instead of calling it too low. The price box and the tick box lock once the listing is sent, and zone vendor search results show the price of one for a stack sold a few at a time.
Images
Content
- The Life statue in the Oracle Colossus first-area puzzle now shows its activation effect at the same range as the other seven element statues; the Life effect was being drawn on a short-distance layer that hid it while its neighbours lit up.
- A Darklamp offhand no longer paints black patches across the ground while you harvest. The lamp still lights the area; its spot light no longer casts dynamic shadows of the world, matching every other hand-held light in the game. Ornate Brass, plain, Syndcon and Dragon variants all covered.
- Placed platforms in a player-owned town now clear the grass and small foliage under them, so blades stop poking up through the top of a stone or marble platform.
- The overworld hover preview for the Kobold Expeditionary Camp tile now lists Cotton and Pine, instead of skipping the resource line entirely.
- The Ancient Xenossian Caduceus Wand hangs on a wall the same way as every other display wand: the ornamental face out into the room, no more slewing at it from outside the wall to get it to accept.
- Lieutenant Corliss, the crafting trainer at Solace Bridge Outskirts, was standing in a male guard body while speaking in a woman's voice. Her dialogue is written for a woman, so she now uses a female guard model from the same set as the rest of the bivouac. Lieutenant Tilton next to her is unchanged.
- Gathering nodes were paying producer experience twice. A node grants its own flat experience once, and every meticulous bonus pass drops an Adventure And Producer Experience item on top; the node number was also being multiplied by the pass count, so a seven-pass copper vein read 105,000 experience in chat beside 60,000 in items, against the 75,000 the same vein pays on live. The node number is flat again and bonus passes keep paying through the items they drop.
- The deck of the Shogun Guard Tower now takes ordinary floor decorations. It was treated as a display surface, the kind of spot that only holds small tabletop items, so a telescope aimed at it stayed red on all three towers.
- The Titan of Truth is spelled Boreas in the last six spoken lines that still called him Boreus: Logan Howard and Miriam Healy in Aerie, Miles Shepherd and Miles Shepherd Kardan in Midras, and both of Grannus's farewells in Valhold. A conversation translation is stored under a hash of the English line, so the earlier attempt at this correction dropped those six lines back to English for every player not reading in English and had to be pulled; this time the German, Spanish, French, Italian, Japanese, Portuguese, Russian and Chinese records were moved to the new keys with it. Typing "boreus" still finds the answer.
- Closed a gap in the Highvale tutorial palisade. A collapsed stretch of the wall walkway had lost its outer railing, and players who climbed the ladder could step through the opening, drop down the outside of the wall and reach the wagon without opening the front gate. The railing line is now continuous across the collapse; the walkway, the ladder and the items on it are unchanged.
Tests
- A test that guards how specialization payouts work went red without anything breaking: the check it watches for moved into a shared method when specialization slots became stored data, so the test was looking for a line that no longer exists. It now watches the method the rule actually lives in, and the reading that still counts a maintained mastery as a specialization.
Login
- Fixed a login hang where the client sat on "Connecting" and kept retrying with no message. The password is sent to the server inside an encryption envelope that holds at most 86 characters, and a longer one made the client fail before the login request was even built. The login screen now checks the length first and tells you to shorten it, and the account tool refuses to set a password the client cannot send.
UI
- Hiding the interface with F9 no longer shuts you out of the options menu. Escape opens it while the interface is hidden, and closing it again leaves the interface hidden, so Exit to Menu is reachable without turning the whole interface back on first.
- Fixed the Cabalist power meter vanishing during a siege for players who had dragged their compass low on the screen. The meter followed the compass down past the bottom edge of the display; it now moves above the compass when there is no room below it.
- The catchphrase bar now stops at the edge of the screen while you drag it, so it can no longer be pushed off the game window and left somewhere you cannot grab it. Releasing the mouse outside the window no longer strands the bar out there either.
2026-09-12 · 184 items
The New Britannia Herald
Invisible stairs, a crash we chased twice, and a stronghold raised in a day
Headlines
- Guild and town pages can now mirror new threads, events and guild chat into a Discord channel the leader owns; the portal gained a home dashboard, directory search and sign-out-everywhere.
- Player dungeon entry no longer freezes for up to 50 seconds: the navigation load stopped scanning the whole scene once per room.
- The arrow keys stop killing the client. A fix that shipped two days ago only recognised one kind of text box; every field you type a number into was still crashing the game, and a fourth report arrived on a build that already carried the fix.
- A report of a control point stuck on wave 7 came back with two fixes: the wave counter now keeps counting at every point, and Superstition Canyon joined the points whose waves never end.
- Animal Lore now pays off in the field: study a beast and it is easier to tame for the next five minutes, by up to 10% depending on how much the study told you.
- Chat item links work on Universe again and now open the real item tooltip, built from a server-held copy of the item rather than text the sender wrote.
- Player towns got a chat channel of their own: residents hear it from anywhere, /town sends into it, and the server keeps everyone else out. Next build.
- The game side and the web side of running a guild or town from the website both landed, dark: ranks, removals, guild text and town roles, every change made by the game with the player's own permissions. Switch-on after the next build.
- The tabard crash was the bundle split, not stale files: scripted prefabs now ship beside what references them, and the build checks it.
- The /builds/ release board rolls a channel back from the same Promote button, reason required; chaos went back to build 192 with it.
- Seven stranded bug fixes landed. Overnight automated workers wrote seven finished fixes and their tests, then timed out waiting for the shared Unity editor before committing any of them. All seven were verified and committed today: dungeon exits marked on arrival, the Verdantis quarry pen, the Upper Fortus rock pockets, gazebo roofs, fish recipe counts, the printing press page limit, and bench collision.
- The Cabalist Stronghold got built in a day. A new hex east of the Obsidian Trial, a scene where every Cabalist the realm failed to kill that cycle waits at their own throne, a new master over them called Vitium, the Hollow Eye who cannot be touched while any of them stands, and a day-long celebration for the whole shard when he falls.
- Patching was quietly coming off the origin server, not the CDN. The CDN is now the only path, and the release tools refuse to publish a channel that would fall back.
Content
- Fixed a Highvale Outskirts quest reminder that outlived its questline. The task to tell Esmeralda about the Room of Mirrors now counts as finished once she has released the geistesser bonds, and the Journal line, her quest marker and the map highlight all read the same rule instead of three slightly different ones.
- Fixed the scavenger at the Blood River Massacre searching bodies in two disconnected halves. He played his searching animation, stood still for about five seconds, and only then did the body under him turn to one side and settle back. The body now reacts while he is reaching into it. Same timing for every scavenging NPC.
- The Human Battle Encampment has four ways out to Novia, but only the north and south ones were marked. The east side now carries its own point of interest, so walking out that way marks it on the compass and the scene map the way the other two do.
- The north exit of West Ravenswood, the stone archway on the northeast side of the map, now gets a point of interest on the compass and the region map the first time a player reaches it. The scene has two exits to the overworld on that side and only the southern one was marked.
- Four window sills inside the Gothic Mansion Three-Story village home refused decorations, two on the second floor and two on the third, all along the front wall. They take items now, and match the Pristine and Golden Gothic Mansions, which are the same building and were fixed earlier. (#1450)
- Fixed a thin line that ran across the top edge of the ground grass in Pax Lair. The grass cards were sampling their own bottom row around onto their top edge, so solid green showed up where the artwork fades out. The same grass is painted in forty other towns and roads, which get the fix too.
- The eight ship doors inside the four large pirate galleon homes now offer the Always Open option. They used to shut themselves five seconds after being opened, and the game withholds that option from any door that closes itself, so owners saw it on the gun ports and nowhere else. The ship's wheel still swings back to centre on its own.
- Valhold no longer reads "No Quests" while you are carrying the Amulet of Testimony back to its owner. The town advertises the quest for the whole of that stretch now, and the same gap is closed for any scene whose quest step is marked by a search area on the ground rather than by an NPC.
- Fixed a blacksmith in Highvale Outskirts who spelled his shiver out loud, letter by letter, instead of saying it as one shivered word. He will sound cold instead of confused the next time the voice pack is refreshed on the servers.
- Fixed a broken sentence in Arabella's response to the Oracle keyword on the Isle of Storms. Her line now reads "The Oracle guides everyone's path in New Britannia" instead of the older "The Oracle is guides everyone's path in New Britannia".
- Fixed Arabella on the Isle of Storms telling players to gaze into the mirror again on goodbye, even after they had already used it. Her farewell now only mentions the mirror while the mirror step is still open.
- Mountain troll corpses on the Island Challenge map generate loot again. The scene stored one of its spawner references by a path that had gone stale after a rename, so the per-scene loot allow-list bake missed the mountain troll bundle entirely and the server refused every body-loot roll in that scene. The bake now resolves the reference by its stable id first, so a scene-side rename no longer empties the allow-list; effect on players lands with the next report rebake and deploy.
- Brittany Graveyard read "No Quests" on the Novia map entrance for every player who had spoken to Owen, for the whole of his phonograph recipe questline, because the questline's last step counted as finished the moment the questline started. The entrance now shows Quests Active while the faded recipe is being carried back to him.
- Repaired the five stale spawner prefab paths a repo-wide pass turned up (four in Island Challenge behind the empty mountain troll corpses, one lich in Dragon Dungeon 01). The game already spawns by the stable id; the stored path is a label that had not followed a rename, and the scene validator repairs it in memory without saving. No behavior change on top of this mornings bake fix.
- The client log line for a refused loot roll now names the scene the player is in, alongside the bundle and the spawner it already carried. The mountain troll case had to be placed on Island Challenge by hand; the next one will say so in the log.
- Fixed the small chest on the wall shelf in the Brittany Fields bank. It was placed at an angle to the wall behind it, so one back corner sat inside the stonework and the lid passed through the wall when the chest was opened. The chest now sits square on the shelf and its lid opens clear of the wall.
- Added the missing dialogue keywords for three Hidden Vale townsfolk. Lauren in Kingsport now answers to Wycliffe, Norman and Halmar, the three people she sends you off to find, and Abela and Bridget Helvig in Braemar now answer to Ravensmoor.
- Fixed the Titan of Truth's name in most of the places players read it. Boreas was spelled "Boreus" in eight quest journal entries, the Xenos Register book, the place name shown on screen in Xenos, and two companion remarks. His name in NPC conversation is still wrong for now: renaming it there breaks the translation lookup for every non-English player, so those six lines wait for a fix that re-keys the translations with them. (requested by Tiina Onir)
- Fixed the kobold boss in Mysterious Swamp, K'Racket the Exiled. He shared his animation set with King Korabar, a kobold who only ever stands and talks, so almost every slot on it played the same standing idle: his attacks showed no swing, and his body stayed upright after he was killed. He now uses the ordinary kobold swing, cast and death animations, and keeps his own idle and talking poses.
- Fixed the dock on the Huge Pirate Galleon water lot home. It was being shrunk along with the ship, so it sat too low over the water and had slid out of line with the hull. The dock is now full size and sits at the same height as the dock on every other galleon home.
- Six books on the Fine Oak bookshelves showed a broken front cover: a piece of one cover, the join between two covers running across it, a strip of a neighbouring spine, and a symbol cut off at the edge. The books had been pointed at a cover sheet laid out on a different grid to the one they were built for, so the window they read fell between covers instead of on one. One book on Fine Oak Bookshelves - Full (B), one on Full (C) and four on Full (D) now show a complete, centred cover.
- Images:
- The ground floor of the Stucco Two-Story w/ Alcove row home now takes hanging decorations. Its ceiling offered no surface to place against, so chandeliers and lanterns were refused across the whole storey; both the left-alcove and right-alcove versions are fixed, and the stairwell opening is still left clear.
The Herald
- The New Britannia Herald for 2026-09-11 is up: The world-entry freeze that has been stopping clients for weeks was found in a wait with no timeout, and the client now takes the older path around it. Town sieges got a full review that found the server starting wars it had been told not to start, and killing a Cabalist finally pays the person who killed him. The guild and town website went from a plan document to a running site in a single day. Listen or read the transcript (16 min). Subscribe in any podcast app: /blog/podcast.xml
Combat
- Fixed a focus reading that would not hold still: a creature whose upkeep cost more focus than its owner had left the focus number jumping between zero and a negative value on every spend and every regeneration tick, and everyone nearby saw the same jumping on that player's nameplate. Such a character now reads zero focus and stays there. What a creature costs to keep out is unchanged.
- Levers that open gates can be shot from the far edge of bow range again. The reach for a shot at a lever was measured from your feet up to the lever itself, so a lever mounted on a wall lost you part of your range, and it also skipped the small allowance every other target in combat gets. Between the two there was a band at the end of bow range where an arrow would drop a creature standing at the gate while the gate lever refused. Walking up to a lever, and every other object you reach on foot, is unchanged.
- Pressing the weapon key while sitting in a chair or on a bench now stands your character up and draws the weapon from the one press. It used to do nothing at all, with no message saying why, so you had to stand up with a movement key first and then press it again.
- Dead attackers and their Cabalist in a town that had just been besieged are cleaned up on their own after the siege ends, instead of lying on the ground until the shard is restarted. Their bodies are still lootable through the rout fade, as before.
- Follow-up on the siege corpse fix: a dead attacker or Cabalist whose seat has already been torn down now dissolves over the normal death fade before it is removed, the same exit every other corpse takes, instead of vanishing in a single frame. Bodies stay lootable until the despawn timer runs, as before.
- The armor wear formula holds any single hit to 15 durability on one worn item. That ceiling was applied by a guard that also wrote an error to the client log every time it fired, and a plate wearer under Absorb Impacts fires it on every cloak, ring or necklace proc (the skill drops armor durability effectiveness to -100%, which the formula treats as tenfold wear). 39 of those errors in two weeks became a bug report blaming jewelry. The ceiling now lives inside the formula, the verbose combat text prints the figure the item really loses, and nothing is logged. Wear rates are unchanged; whether unspecialized Absorb Impacts should wear gear ten times faster stays a heavy-armor proposal question. (#7379, verify #7405)
- The control point wave counter no longer stops at wave 7. At the points without endless waves the number froze there while the fight carried on re-fielding that wave every thirty seconds, which read as a broken encounter; one report had a point sitting on wave 7 for fourteen minutes. The counter counts at all six points now, and the leaderboards still rank the two timer-driven points no deeper than wave 7, since the waves there repeat rather than growing.
- Superstition Canyon is the fourth control point to keep escalating past wave 8. Its roster is its own, eight Oracle elves and three red spiders on the common wave clock, and the scene carries no moving hazard that a deep run would switch on for good. Vertas Pass and Vauban Pass are the two left.
- Superstition Canyon’s last wave fields all eleven of its enemies now, 32,522 health and 48,000 kill experience against ten enemies and 29,565 before. Arachnairn Deathbringer turns up every run instead of about ten runs in eleven.
- A deep control point wave that has been wiped out no longer waits out its clock when one of its spawn points cannot deliver its enemy. Fifteen seconds after the field empties the wave counts as cleared, and the shard records how many enemies the wave fielded against how many it meant to.
- Breakable props are measured to the prop itself now instead of to a point inside it, so a Rotting Pumpkin smashes from any side you walk up to. Its body sits 0.44m off the point the reach was measured from, which put one corner 1.37m away against a 1.3m reach and answered "Unable to move to object. Please move closer." while you stood against it (requested by Wilfred).
- The same measurement reaches large breakables. A 5x8m breakaway wall in a player dungeon had a 1.5m reach taken from its centre, so its whole outer edge could not be broken and you had to walk back in toward the middle. Glyphs and auto attacks now measure to a breakable the same way a walk-up smash does.
- The Lich Mage in the Spectral Mines throws a fire attack that leaves a burn on you for a few seconds. That burn used to sit in the effect row as an empty square with no name. It now shows a fire icon and reads Burning when hovered.
Client
- Phonographs no longer count against a lot's light placement limit. Each one carries a small light aimed at its own cylinder, and the decoration counter was treating that as a placed lamp, so a silent phonograph in the corner cost a light slot. All five phonographs now count as ordinary objects and still light up while playing.
- The metal grate floors in K'rul no longer fade out with distance. A grate floor now draws all the way across a room from either side, where before it thinned away into a gap and filled itself in only as you walked onto it. The machinery turning below the grating was always visible, which is what made the missing floor stand out.
- Spider webs in Hilt Fortress stopped casting a solid shadow. They were shadowing as though they were whole sheets rather than threads, so casting Light with a web between the camera and your character stamped dark cutouts across the web and the wall behind it. The same webs in the Halls of Artifice and The Epitaph got the same fix.
- Torches in the Compendium of Pain and Suffering no longer disappear in a single frame when a room changes. The flame burns down, the light dims and the torch shrinks away over about a second, then comes back at full size and lit when the room brings its torches back.
- Birds on the Novia and Episode 2 world maps now fade out with the daylight instead of chirping through the evening and the night. The bird loops on both maps were wired into general environment audio, which the time of day never touches, so they played at the same volume at midnight as at noon; they now sit on the same day channel every other outdoor scene already uses.
- Lights no longer switch off and back on when you turn the camera while standing still. The distance that decides whether a light is drawn was measured from the camera, which swings up to forty metres around your character when you look about in third person, so a light near the edge of its range dropped out and returned on camera heading alone. It now measures from your character. Reported in Spindelskog, where the shafts of moonlight through the trees made it obvious, and fixed everywhere.
- Fixed the launcher starting a second copy of the game when Play was clicked again while the first copy was still loading. The launcher now remembers the game it started and refuses another launch until that game is closed.
- Bodice Bottoms no longer leave a male character with pale legs. The bare lower legs the garment exposes were rendering at the lightest skin regardless of the tone the player picked, while the face, arms and hands followed the character; they now take the same skin tone as the rest of the body. Both the plain and the increased durability versions of the item are covered.
- Reagents and other items the game takes out of your bags on its own now come from the loose stack in your main pack before a stack sitting inside a bag you are carrying. Keeping mandrake in a quiver for casting and more in the pack for crafting used to drain whichever of the two happened to be added first, which for most characters was the quiver.
- Sound from inside an NPC building placed on a lot now answers to the volume sliders. The curtain on the second floor of the combat shop played its pull sound at a fixed level whatever Master or Ambient were set to, because the building is spawned after the point where a decoration hands its sounds to the mixer those sliders drive. The building hands its own over now, so every emitter inside one follows the sliders.
- Fixed the Barn Owl pet tearing its wings through its own body in flight. A patch of folded wing feathers on the owls back was attached to the wrong bones, so every wing beat dragged it out through the flank and the belly; it now stays flat against the shoulder. All three owl colours are fixed, and the Raven and Eagle pets were already correct.
- Fixed a lot set down on paving stones counting the lights inside its house as outdoor lights, which filled the outdoor light meter early and then refused outdoor lights that still fitted. Indoor lights are counted from the surface they stand on again, and picking the lot up and replacing it is no longer needed. (#2084)
- Entering a player dungeon used to freeze the client for 15 to 50 seconds while the room navigation loaded, and worse on plots with a lot of deco. It no longer does. The load now trusts the bounds baked into each room and skips a scene-wide sweep the old code was doing once per room to work out something the bake already knew.
- The guide wisp used to snap forward every few seconds while you were running. It now slides ahead smoothly at any speed.
- The retry that puts you back on top of the decoration after a refused move now catches decorations that use their own authored layer, so a cancelled drop no longer leaves you inside the piece and pushed through the floor.
- Fixed a ten to twenty second freeze on the "Equipping Avatars" step of the loading screen. Building the internal item-classification cache used to force every referenced item archetype to load one at a time on the main thread; it now reads the archetype ids directly from the classification records without loading their assets.
- A nearby NPC no longer keeps talking underneath a conversation you have just opened with someone else. Their voice cuts out the moment the new speaker begins.
- Fishing was refused at the shore with a "you are swimming" message even when the fisher was ankle deep or on dry rocks. Wading is now a valid fishing stance, the same way it is for water spells; deep water still refuses fishing.
- Fixed the mounted rider animating out of step with the mount: the rider's walk cycle ran at half the animal's rate and only caught up near a gallop. Rider and mount now change gait at the same speeds on horse, stag, reindeer and lion.
- Fixed pets and other NPCs walking through the walls of a placed Fancy Storage Shed. The shed never took its walls out of the lot walking routes, so a follower cut straight through them; the walls now block, both doorways stay open, and the inside is still walkable.
- Snow no longer falls inside houses. A house only stopped precipitation with a surface over its roof, which caught rain but not snow: flakes travel with the weather as you walk and drift sideways for several seconds as they fall, so they arrived under the roof and kept coming down in the room after the storm outside had passed. Weather effects now switch off while you are indoors and any flakes still in the air are dropped with them, while a doorway or a window still counts as outdoors so you can watch the storm from an opening.
- Talking to an NPC who had a weapon in hand no longer closes the conversation window the moment it opens. With conversation close-ups on, the camera drops you out when the NPC you are talking to gets into a fight, and that test used to fire on the combat state that also puts a weapon in an NPC hand, so an idle practice swing or an alert stance ended the conversation on its first frame. Reported against Tarian in Tenebris Harbor, who draws a staff periodically.
- Chest clothing and armour now cover the wooden female mannequins. A female mannequin drew its own wooden body at the same time as the gear you dressed it in, so close-fitting chest pieces - tuxedo jackets, doublets, gambesons, band shirts, robes and leather chest armours, about seventeen in all - had the wooden chest coming through the front. A chest piece is built to take the place of the torso, the way it does on your own character, and all eighteen female mannequins now let it. Nothing about the clothing art changed.
- Townspeople and animals on the Noreach docks stopped walking off the pier into the sea. The harbour floor is walkable ground three metres below the pier deck and two metres under the water, and the wander picker read it as ordinary ground beside the pier, so a resident or a dog would step off the edge, fall in, get put back on the pier and set off again. Wander destinations more than two metres below where a creature was placed are now refused, while steps, kerbs and terraces are still fair game.
- The river running through Jaanaford was laying a shadow over its own bed. The water surface was set to cast a shadow and river water draws as a clear surface, so what it threw was a solid one: the whole channel sat in shade at midday, the gravel went flat grey, the boulders standing in the river lost their lit tops, and the edge of the shade ran along the bank with nothing above it to explain it. The surface no longer casts, so the bed and the rocks take the sun like the ground either side of them. The waterfalls are unchanged.
- Cots stopped answering "out of reach" when the ground beside them is tight. A cot cuts its own footprint out of the walkable ground, which left the standing spot beside it about a third of a metre clear of that cut, and a click was refused from every angle including standing on the cot. Beds now place you on that spot when it cannot be walked to, the way chairs, instruments and the camera decoration already do (#1649).
- The build 194 and 195 crash on drawing a Heraldry Tabard had a second cause under the first. The stale-bundle cleanup from earlier today was in build 195 and the crash came back unchanged, so the leftover bundles were never it. The real cause is the bundle split itself: the tabard model landed in one bundle and fifteen of the sixteen tabard items in another, and on Unity 6.6 a prefab that loads across bundles arrives with its scripts unbound, which is fatal the moment it is instantiated on a character. The same shape had been quietly breaking placed street lamps with signs since build 190 (no light, no moths, no swinging sign). The build now keeps every scripted prefab next to whatever references it, copies it where needed instead of sharing it, and fails the bundle pass if one ever crosses a bundle again. 14 new tests. Fix lands in the next client build.
- Fixed the character sinking through the floor while fighting along a wall. Foot placement lowers each foot onto the ground under it, and when the check came back with nothing because the foot was pressed into the wall, it took the foot and the whole body down half a metre. The Grusk Factory hallways showed it at the same spots every time. A check that finds nothing now leaves the foot where the animation put it.
- The /stuck command now works while you are swimming. It was refused in deep water and gave no message saying so, which left anyone who fell off a dock into water they could not climb out of with nothing to try. Every other spell and skill still stops at the deep water line, and wading in the shallows is unchanged.
UI
- Fixed a skill tree that could open blank at a trainer and stay blank until you clicked another school and came back. The window was marking a tree as drawn before the drawing finished, so a tree that came up empty was never redrawn; it now only counts a tree as drawn once its skills are on screen, and takes another go at an empty one within a second.
- Picking an item up off the ground now puts a short banner in the middle of the screen with the item name and icon. Before this the only sign was a line in the Loot channel of the chat log, so a player who took something by accident could not tell what had gone into their bags. Looting corpses, chests and resource nodes is unchanged.
- The Performance window (opened with
/fps) opens wider by default. The bottom row of stats (Textures, Budget, Reduced, Graphics) was previously clipped on the right because the fourth column was added without bumping the window width; the new default rect fits the whole row, and any stored window rect from an older build clamps up automatically. - Bec de Faucon in the Polearms skill tree drew the same picture as Defensive Positions above it, so the two tiles were identical and only the names told them apart. It has its own icon now, a bec de faucon head on the same olive shield the rest of the Polearms tree uses. Reported as #1333.
- Juxtapose's skill tree icon carried the plain grey border that passive skills use, so a castable Chaos spell read as a passive. It now carries the purple border Chaotic Step and Tabula Rasa carry, under both the Classic and Modern skill icon sets.
- The immersive book viewer now settles centred once the opening animation ends, instead of drifting off toward one edge of the screen.
- Light Settings on a light placed on your own lot now closes the moment you walk off the yard. The prior fix relied on a lot-boundary reading that stays pinned to zero for the lot the game brings you into at scene load, so on that lot the window would stay open even walking to another lot. The window now measures the yard boundary itself.
- An open book now closes when you hand it to another player. Reading a book and then trading it away used to leave the pages on your screen after the book was in the other player's pack. Mail, sheet music, signs and maps close the same way, including ones opened from inside a bag you trade away. Moving a book between your own bags, the bank or lot storage still leaves it open.
- The Resistances section on the character sheet and the pet sheet now shows Puncture, Bludgeon, Cut, Confusion and Mesmerize Resistance as percents, the way item bonus lines and buff text have always shown them. Those five are stored as fractions and printed as plain decimals, so a Daemon Trident with 15% Confusion Resistance read 0.2 on the Stats tab and a 3% one rounded to 0. The hover tooltip on each row now reads the same as the row. The other ten resistance rows and the Attunements rows are unchanged. Only Confusion Resistance has a source in the game today, so the other four rows stay hidden until something grants them.
- The Poison Weapon skill tooltip was showing only its description, with the current-level and "At Level" effect blocks empty. It now states how long an applied poison coat lasts at your current skill level and twenty levels up, read from the poison itself so the number matches the coat the game applies.
- Timestamps in chat and timestamps on NPC dialogue are two settings now. Options > Interface > Chat & Conversation carries Show Conversation Timestamps under the chat row it splits off from, so a clock can sit on your chat log and stay out of an NPC's lines. Requested by Astirian.
- Whatever you have chat timestamps set to today is what the new row starts on, so nothing on screen changes until you use it. The conversation window and the custom NPC story window follow the new setting; a dialogue line mirrored into your chat window follows the chat one.
- Item links now work in Universe chat. Universe was the one channel that dropped the item on the way out, so the message arrived carrying the item name in brackets with nothing behind it and hovering it did nothing for anyone, the sender included. Guild, party, private, local and Traders chat were never affected.
- The skill requirement on a recipe card reads blue when you meet it. It used to be the same green an ingredient turns when you are carrying enough of it, so on a card where every other line is green, teal or red the requirement read as one more ingredient in the list. A requirement you do not meet is still red, and the hover over the card matches. Requested by Astirian.
- Ingredient lines on a recipe card sit closer together. Every line was carrying spare space above and below it, so an eight-ingredient recipe ran 335 pixels down the page where it now takes 227, and the requirement line keeps a small gap above the block so it reads as a heading for the list. The recipe list at a crafting station took both changes as well. Requested by Astirian.
- Hovering an item someone linked into chat now shows the real item tooltip: icon, rarity colour, stats, durability, enchantments, and the comparison against what you have equipped. Until now the hover showed a plain text copy of the tooltip the sender's game had drawn, which the sender's client wrote and nothing checked. The message now carries a short reference to a copy of the item the server took when it was linked, after confirming the sender actually owned it; a link keeps working after the sender logs out or sells the item, and expires after 24 hours. Links in older scrollback keep their old text tooltip.
- Fixed the R key doing two jobs at once while decorating. With a decoration in hand, R is the extra rotate that lays an item flat or stands it up, and it is also the combat bar glyph combo key, so in combat one press turned the item and opened combo mode together. The held decoration now owns the key until you put it down. No keybindings were changed. (#1747)
- Hovering a book or letter written in runes that belongs to somebody else drew the red "Private Property" warning in runes too, so the warning could not be read. The warning now uses the ordinary tooltip letters, and the title joins it there while the warning is showing.
- A conversationalist NPC standing inside a placed Prison Cage can be clicked through the bars again. The cage art is an open lattice, but its collision was five solid boxes, so the cursor stopped on an invisible slab in front of the NPC; the cage still blocks movement and its door still takes its own click.
- The bank no longer refuses your first deposit without saying anything. Opening the bank asks the server for your slot limit and for the bank contents at the same time, and a drop attempted before both arrive cannot be weighed, so it was turned away in silence and only a retry worked. It now says "Your bank is still loading. Try that again in a moment." in chat.
- Fixed a trade window that could stop responding after a drag of more items than a trade can hold. A trade change that fails now says so in the chat log and leaves the window working, so the offer can still be revised, accepted or cancelled.
Images
- Barn Owl pet mid wing beat, before and after the fix. On the left the folded feather patch balloons out of the flank and hangs past the belly.

- The same eight-ingredient recipe card before and after. On the left the requirement line is the same green as the ingredients below it and every line carries spare space; on the right it is blue and the list under it is one block.

Web
- Guild website: a second review round looked at load, partial failures, data flow and operations, and eighteen findings were fixed. Chat polling can no longer starve the site (one request in flight per tab, back-off, short budgets, pooled connections, a per-address cap at the front door); guild chat history is fenced to the guild record so a re-used name cannot read a former guild's chat; town pages hide banned and hell-banned accounts the way rosters do; removed images can no longer be kept online by an unreviewed copy elsewhere. On the box, the web server's worker could read the app's secrets through a shared group (closed, rotation is the owner's call), and certificate renewal never told the web server to reload, which would have taken the site offline about a month after the first renewal.
- Guild leaders and town governors can mirror their community's site activity into a Discord channel they own: paste a webhook on the Manage page and tick new board threads, new calendar events, and for guilds the in-game guild chat lines (posted every ten seconds in batches). Only Discord webhook links are accepted, the saved link is shown masked, Discord formatting and mentions in player text are neutralised, and a webhook that fails twenty times in a row switches itself off.
- Portal round-up: the signed-in home page lists each of your communities with its next three events and three latest threads; the Guilds and Player towns directories have a search box; the account page has a Sign out everywhere button; guild chat history now follows a renamed guild, so lines said under the old name stay on the page.
- Wrote the live-cutover runbook for the portal (freeze, broker and login mirror on the production host, env flip with a session epoch bump, write paths switched on one a day, logging headroom, verification list). It is a document only; the move itself waits on the owner's go-ahead.
- Public guild and town pages now pass the same content check as public board posts: saving a page with the Public visibility, or restoring an older public revision, runs the text through the classifier first, and a flagged or unreachable check hands the editor back with the reason instead of saving. Members-only and officer pages are unchanged.
- Took stock of the guild and town portal after the build-out: an inventory of everything still open (owner decisions, items waiting on the next server build, a dozen smaller pieces such as a tenancy reconciler for the admin page and shadowing for hell-banned posters) with an order of work, added to the plan document; the plan and ops pages no longer say nothing is built.
- Shipped the bot client build that carries the guild chat bridge mode to the game host, alongside the character-rename and admin-message modes it already served. The bridge itself stays switched off until the next server build carries the matching server-side changes.
- Brought the guild and town portal documentation up to date with what is running: the July plan and the docs index now say the site is live on the chaos data as of 2026-09-12 and point at the list of what remains, the design addendum describes the chat bridge as built (one supervised bot process inside the game-host broker, no provisioned bot accounts), and the reseed runbook gained the step that signs portal sessions out and retires page-sets whose guild or town is gone after a data refresh.
- The guild portal broker gained a guild activity feed read from the game's own interaction log: rank changes, invites, kicks, joins, leaves, message-of-the-day and listing edits, newest first and paged 50 at a time over the log's 30-day window. Names are character names only; the officer page that shows it is the next piece.
- Guild website: posts and threads from an account the game has muted are now shown only to their author and the guild's officers. Nobody else sees them, thread counts leave them out, the Discord mirror and in-game pings skip them, and the chat page shows a sender's own line straight from the send so a muted sender is not tipped off.
- Guild website: turning on pages is refused with a plain notice for a guild with fewer than two members, and for a guild whose name reads the same as another guild with pages once capitals and accents are ignored, since the game treats such names as one chat channel. Before, a one-member guild could turn pages on and a bot guild got a bare error page.
- Guild website: every published image on the Images page now carries the same Report control as threads and posts, and the report lands in the studio queue with a link straight to the picture.
- Added a tenancies page to the portal studio: every guild and town with pages here, what each holds (pages, threads, images, events), when it was last active, and a live check against the game with a switch to turn a page-set off or back on. Nothing on the page deletes content.
- Added a nightly reconciler for community pages: at 04:20 UTC it checks every enabled page-set against the game and turns pages off (content kept, one audit row each) for a guild or town that no longer exists. A page-set the game records could not answer for is left alone, and a broker outage skips the whole pass. Deploy installs the timer; it goes live with the next portal deploy.
- Guild officers and leaders on the guild and town portal now have an Activity page: the guild's joins, leaves, invitations, applications, rank changes and settings changes from the last thirty days as the game records them, newest first, in local time, with an Older link for earlier pages. Members without officer rank do not see it.
- The portal's public pages (the guild and town directories, guild and town overviews, public guild and town pages) now tell browsers they may be kept for a minute when the visitor is not signed in; every page seen while signed in, and every other route, stays uncached.
- Added contract tests for the guild and town portal: 260 web-tier tests drive the real Flask routes through a scripted database and broker and assert the status code every principal gets (anonymous, member of another guild, member, officer, leader, hell-banned member, site admin, and resident, steward and governor for towns) over the overview, roster, chat, pages, board, calendar, images, activity, admin and account routes, plus the CSRF, banned-session and broker-outage rules. 41 broker route tests cover the secret gate, health shape, ping queue, chat send budget and refusals, live-ring merge, towns directory filter, moderation and the report webhook. Two broker bugs surfaced and are fenced pending a fix: the report webhook never posts because its mention-disarming replacement is rejected by the regex engine, and town pages never mark anyone online because the presence set and the town data carry the user id in two different types.
- Closed out the day on the guild and town portal documentation: the operations page gained sections for the studio tenancies list and nightly reconciler, hell-banned shadowing, image reports, the officer activity feed, opt-in refusals and the anonymous page cache, plus a record of the verify evidence gathered on the chaos data (query plans for every database read, roster timing, outage behaviour). The remaining-work inventory marks the eleven items that landed today as done with their commits and lists the two broker bugs the new contract tests uncovered.
- Fixed two broker bugs the new contract tests turned up: town pages and the towns directory never lit the online mark for anyone (ids were compared as two different types), and the report webhook would have failed on every report once a webhook is set (a bad escape in the mention filter). Both are live.
- The Sieges board counts held slots rather than running sieges, and prints when the next siege can start. A resting realm and a broken one used to render identically.
- Struck the two fixed broker bugs off the portal plan and the ops page, so the remaining-work list matches the code again.
- Running a guild or a town from the website is coded end to end and switched off at every layer. Officers and the leader get Set rank and Remove on the Members page and boxes for the guild description and message of the day; governors and stewards get a Set role control per resident on the town page. Each change is queued, sent to the game on the player's behalf with that player's own permissions, and the page then shows the game's answer, including its refusals, word for word. A change the game never confirmed is checked by reading the roster back rather than sent again, so nothing is ever kicked twice. Switch-on waits for the next chaos build.
Items
- The Cabalist Corpus Hood carried a -500% armor durability penalty where the other Cabalist hoods carry -5%, so everything worn with it wore out about seven times faster and tripped the client's excess-wear guard on every hit taken. It now reads -5%, and a new test sweeps every wearable for a durability penalty deep enough to hit that floor. Found in the chaos logs: 38 excess-wear errors over five days, all from the same hood.
Tools
- Fixed a stale regression fence that had gone red on the migration branch after window and HUD placement moved to per-account storage. The saved-placement behaviour it guards is intact; the test now checks the current call site.
- Voice chains are now measured before they ship. Every effect chain in the voice pipeline gets run over a fixed test signal and checked for how much level it loses or gains, and a chain that throws away more than three decibels fails the guard. The Oracle chain fails it at nine, which is how her audio got past a public vote and out to players.
Build
- The nightly scene-report bake now warns once per spawner whose stored prefab path no longer matches its id, and the report gate checks that Island Challenge lists the mountain troll loot before archiving, the exact omission behind the empty corpses. Goes live with the next Jenkins re-seed.
- Promoting a build from qa to chaos now ships the nightly server-report bake with the server, the same way a direct deploy does. Since the Promote button went live on September 11 a promotion moved the server binary and left the old report behind, so fixes that live in that report (the mountain troll loot, the siege loot list) stayed off chaos. The report combine is rehearsed before the channel pointers move, so a bad set refuses with nothing touched. Goes live with the next Jenkins re-seed.
- Build 194 quit to desktop the moment the game drew a character's gear: at spawn, and again whenever another player wearing certain items came into view, so a busy town killed the client within seconds of zoning in (reported by Gravidy in Etceter; ten crash reports from three players in one afternoon). The bundle layout had changed in that build and the player packaging step copied the new bundles in without removing the old ones, so 1.3 GB of superseded files shipped next to their replacements and the client read the wrong one. The copy now mirrors the build output instead of merging into it, with a test pinning the rule (#7450). Correction, later the same day: build 195 carried this change and crashed the same way, so the superseded files were not the cause. The real one is in the Client entry below (the bundle split put the tabard model and the items that use it in different bundles). The mirror stays as cleanup.
- The nightly server-report bake had failed every night since the Unity 6.6 editor bump. Opening the overworld scene needs a real graphics device, and without one the editor now crashes where it used to just log an error, so every deploy kept shipping the last good bake from 2026-09-10. The bake moved onto the build farm machine with a GPU, and it now refuses to start anywhere else instead of crashing forty minutes in. (#7453)
- Regenerating the build farm jobs quietly removed the scoped permission behind the Promote button, which then reported only that the build server had refused the trigger. The permission is now declared in the job definition, so every regeneration restores it instead of wiping it.
- The repaired bake ran green: 21 report tables, every count at or above its baseline, and no texture errors where the last good run logged eleven. It takes 37 minutes now against 19 headless, which is what a real graphics device costs. The nightly moved an hour earlier to 21:00 Central, since the bake now shares a machine with the midnight release.
- Recorded chaos builds 190 through 195 in the patch-notes build ledger (Windows for all six, Linux for 190, 191, 192 and 194). The patch host only keeps the last few builds, so the ledger in the repo is the durable record the patch notes are generated from.
- Committed the two Unity 6.6 serialization fields (a default light-baker setting and an empty shader compiler-settings list in the graphics settings, plus a cull-mode value on the default TextMesh Pro font material) that the Editor had been rewriting on every save since the 6.6 move. They showed up as two stray changes in every working tree; now they do not.
Launcher
- The launcher has a Server dropdown. Windows players can switch between Chaos and QA without a second install or a hand-written batch file; the launcher repatches to that server build and points the game at it. QA carries the next build before it reaches Chaos and may be reset without notice.
- Launcher build 39 is out for Windows, Linux and Mac. Installed launchers pick it up on next start.
- A crash report from a session that had already finished quitting is now labelled a post-exit crash rather than a crash. The quit runs to the end, the save stamp lands, and the process then faults on its way out instead of exiting; until now that report carried the same label as a crash that cost someone their session, and sat in the same row when we read through them.
- The launcher also stops wiping the shader cache after one of those. It still wipes after every other bad exit, where a poisoned cache is a real possibility, but a quit that finished does not leave one behind, and the wipe cost a slower next start plus a line telling the player their last session had not closed properly when it had.
- Launcher build 40 is out for Windows, Linux and Mac. Installed launchers pick it up on next start.
- Patching has been running at a third of its normal speed since this evening, and the cause was one field missing from the channel pointer: every file was coming from the origin server instead of the CDN. Measured on the same 4 MB range in the same minute: origin 3.0 MB/s, CDN cold 6.3 MB/s, CDN warm 32 MB/s, against a 13 GB patch. The publishing tool on the patch host was an older copy that predates the CDN field, so it dropped that field every time it rewrote a pointer, and the next publish carried the loss forward. The CDN is now the delivery path rather than an option: the publish mirrors the build to the edge and stamps the pointer every time, a failed mirror stops the release, a rollback refuses to run against a publisher too old to keep the field, and a new check reports any platform that has slipped back to the origin.
- A first install now downloads the game as one large file on Mac and Linux too, not just Windows. Those two platforms had never had that bulk download built, so every new Mac or Linux install was pulling roughly 13 GB one file at a time. All three platforms are on build 196 at the content network, and the archive is stored rather than compressed, since the game data is already compressed: 3.7 times faster to package for about a tenth more size on a download a player does once.
Dungeons
- Entering a player dungeon no longer freezes the client. The room loader worked out each room's navigation bounds by gathering and rasterizing every collider and terrain in the whole scene, once per room, on the main thread. Two hang reports on build 192 caught it at 16 and 50 seconds; the worst was a plot with 22,019 decoration loads. The rooms are baked with bounds that already fit, so the scan is gone.
User Interface
- Pressing an arrow key while the cursor sat in a text box could kill the client outright, with no error and no dialog. A guard shipped for this on build 190 covered ordinary text boxes and the chat box, but it recognised only one kind of box, so every field you type a number into still handed the keys straight to the engine: lot tax days, a deco light's range and brightness, a vendor's minimum price, the GM and tester windows. Four crash reports across three machines and three graphics cards, the last one on a build that already carried the fix.
- A window that closed while the cursor was still in one of its text boxes used to leave the keyboard trapped there. You could not walk, could not use a hotkey, and had nothing left on screen to click away from. Hiding a window does not release the cursor in UI Toolkit, so the client now checks every frame and takes it back. Two windows had already worked around this one at a time.
Infra
- Typed the six chat log fields (event, channel, sender, message id, source, guild id) in the OpenSearch logs index template, now version 8, with the same text plus keyword shape the dynamic mapping already gave them, so the retained daily indices report no conflict. Applied it on the chaos log cluster; the live template had still been at version 4, so the harvest, fishing and client memory telemetry typings from versions 5 to 7 went live with it.
- Groundwork for running a guild or town from the web: four server-side off switches for the coming portal write-back, all default off, and one shared lock for every bot shim on the game host. The lock the plan assumed did not exist: the two admin panels each locked a file in their own private temp directory, so two shims could log in at once. All three services now lock the same file.
- The portal's guild actions will travel over the chat bridge's existing held-open login as new commands rather than through a second bot process, and town role changes get a batch mode that joins a town once and applies every queued change in one visit. Nothing is wired to the web yet; that is the next piece.
Server
- Banning a player-owned town's governor is meant to be an admin-only action, but the exemption compared the account's whole flag set against the single Admin flag, so every real staff account (which also carries Player and Dev flags) was refused, and the refusal went back with a success code so the client showed nothing. The check is now a bit test and the refusal carries a real error code. Rides the next chaos build.
- The guild activity log request had its officer-or-leader check commented out on the server, so any guild member's client could pull the full log; the game's own windows only offer it to officers, so nobody saw it in play. The check is back and reads the member's current rank at request time, so a rank change that just landed is honoured. Rides the next chaos build.
- New ChatItemLink collection behind the chat item links, one row per linked item with a 24-hour expiry, and two new game ops to publish a link and to look one up. Ownership is checked at publish; a lookup needs no check because only published ids exist.
- The Slack mirror of Universe and Traders chat, the chat moderation model and the internal chat log now read a linked item as its bracketed name rather than the link payload. Before today that payload was up to two thousand characters of compressed text per item, and the moderation model was being asked to weigh it.
Sieges
- Chaos looked like it had stopped running sieges. It had not: a player cleared all five overnight, and a freed town keeps the slot it gave up empty for eighteen hours, so the realm was correctly quiet until that evening. Nothing said so, which is the part that was actually broken.
- That wait is now a live number rather than a config edit and a restart, and zero finally means zero instead of quietly meaning eighteen hours. The chaos shard runs two hours, so a town freed in the afternoon is followed by another siege the same session.
- The server now writes one line when every siege slot is spoken for, carrying the time the first one comes back.
- Planned the Cabalist Stronghold: once the shard clears its town sieges, the old siege road scene returns on its own hex beside the Obsidian Trial, holding every Cabalist not killed that cycle and a new leader, Vitium, the Hollow Eye, who cannot be hurt while his Cabal stands. His fall opens a day-long celebration for the whole shard. Plan approved after three review passes; the roadmap has the epic.
- Authored Vitium, the Hollow Eye: an Ebon Dawn sorcerer who found the Obsidian Eye’s mask in the Epitaph, put it on, and now claims the empty seat at the centre of the Cabal. Level 125, a halberd, a teleport pull, death rays at half health and a real enrage at a fifth, and he drops the Mask of the Waiting One. He does not appear anywhere yet.
- The stronghold is a town-siege record of a new kind rather than a second system, so the power meter, the boss health checkpoint, the kill credit and every backstop carry it unchanged. It opens when no town siege is running and enough towns have been cleared since the last one: a shard with fewer opted-in towns than the quota would never have reached the first draft of that rule.
- The shard now opens the stronghold itself: when no town siege is running and enough towns have fallen, the Cabalists the cycle did not kill gather at their leader’s seat and the whole realm is told. Town sieges stop while it stands. Killing one of his Cabal clears that Cabalist from every instance at once; the leader cannot be recorded as fallen while any of them is still standing. Switched off until the client half ships.
- Built the fight: the Cabal stands at its own thrones, an Obsidian lich rises in the seat of every Cabalist the realm already killed, and their master cannot be touched while a single one of them is still on his feet. Each of them fights at eight times his usual health. The whole thing runs offline from the console with no server.
- The stronghold now announces itself. One line goes out to the whole shard when it opens, naming how many Cabalists still stand with Vitium, another when it withdraws unbeaten, and a third when he falls.
- Killing Vitium lights the Light of the Eight for the next 24 hours: every player online gets 5% weapon damage, 5% spell damage, 5% healing received and 5% maximum health, on top of the experience bonus. Nothing in it touches harvesting or crafting.
- Built the stronghold scene. Sixteen seats ring the throne: eight for the Cabal, and eight that put an Obsidian lich in the chair of any Cabalist the realm already killed that cycle, so exactly one of each pair stands up when the fight opens.
- Put the stronghold on its own permanent hex just east of the Obsidian Trial. It shows on the map at all times and reads Dormant with the Enter button off until the shard has cleared its town sieges, and the camp on the hex lights up when it opens.
- A review pass over the stronghold before it reaches chaos found four defects and fixed them: the Cabalists at the thrones were standing at their plain town stats because the power component was never placed on a seat, and an Obsidian lich would have risen in each throne the moment its Cabalist died there rather than only for the ones the towns killed. The record now remembers who came separately from who still stands.
- Two smaller ones from the same pass: a stronghold the server closed on its own after a lost kill report let town sieges restart at once instead of resting the shard, and the test switch that opens a stronghold by hand could not be reused with the same Cabal twice.
Tooling
- The crash report reader was losing nearly every report in a pull: a report's metadata file ends without a newline, so the marker that starts the next report arrived stuck to it and went unseen, leaving the first report holding everyone's logs and the rest empty. Two build 192 hang reports had been filed under the wrong cause because of it. Fixed, with tests that run the reader through a real shell.
Audio
- The Oracle is audible again. Her voice was re-cut twelve decibels louder after a player reported having to max both the NPC Dialog slider and their speakers to hear her on the Isle of Storms, where Arabella standing a few steps away came through at a normal level. The echo chain her voice runs through was throwing away about twelve decibels and putting back three, and nothing in the pipeline measured the result, so the vote that chose her voice compared four equally quiet candidates against each other. Her 521 lines were regenerated and are live on the voice CDN now, same voice and same chamber echo, at the level of the characters around her. Reported by chrisjwhite.
Pets
- A pet set to Aggressive stopped swinging at enemies it was standing next to, waited a few seconds, then started again. A creature decided whether it could reach its target by measuring from the nearest patch of walkable ground beside the enemy rather than from where the creature itself stood, so an enemy standing on a dock plank, a rock or a stair step read as several meters away. Every attack was refused, and the target was then dropped from the threat list for five seconds at a time. A creature already close enough to hit something now attacks it whatever the ground underneath says, and the change covers wild monsters as well as pets.
Taming
- Studying a beast with Animal Lore now makes that beast easier to tame for the next five minutes. The bonus scales with how much the study actually told you, from +2.5% on the shallowest reading up to +10% on the deepest, and a creature too far above your skill to read gives nothing at all.
- The Animal Lore window gained a Taming aid row showing the size of the bonus and the seconds left on it. The bonus belongs to the individual creature you studied, so a second wolf standing beside the one you read is no easier than before.
Guilds & Towns
- Guilds and player towns have had pages on the web companion for a while, and nothing in the game pointed at them. The guild tab of the Social window now carries Guild Page, Message Board and Calendar buttons, and under them the next two public events from that guild's calendar, each in the viewer's own local time and each clickable through to the event.
- Player towns get a Town Page link in four places: the governor's console, the town directory, the lot sign and the lot list the town guide opens. The lot sign one is deliberately not governor-gated, since a public page is for the visitor standing at the sign too. Every surface stays hidden unless that community actually has a page, and a template scene never offers one.
- The calendar on the web stays the one place events are written; the game only reads it. Times are shown by instant and field set rather than copied punctuation, so a German client renders a German date order for the same moment instead of an English one. A portal that is unreachable looks exactly like a community with no page: the window opens as it always did, with no strip and no error text.
World
- A player reported that the secret door in the stone T-intersection hall opened but would not let him through: he stepped onto an invisible stair in the doorway and stopped against an invisible ceiling, sealing off the rest of his dungeon. The invisible surfaces that tell the game where a decoration may go were built as solid colliders, so they blocked movement too. 2,842 of them across 98 dungeon pieces no longer collide with players or creatures. Nothing moved, so a room already standing in someone's dungeon is exactly where it was, and decorating works as before.
- Three of those surfaces in the same room were named for steps the room does not have, sitting up to 0.59 m above a floor that is flat. They were the invisible staircase in the doorway, and they now sit on the stone. A new Editor check measures every decorating surface in the dungeon kit against the art behind it, and a standing test fails any piece whose surfaces are solid to a player.
- Arriving in a dungeon now marks the exit you came through on the compass and the map straight away. A point of interest was only found by walking into its volume, and every dungeon arrival point sits inside the volume of the exit behind it, so the way back out stayed unmarked until the player wandered off and came back. Ruins of Ravensmoor was the reported case; every dungeon entrance behaves the same way now (#2199).
- Opened the fenced pen at the foot of the quarry scaffold in Verdantis Foothills. Four wall panels closed a ring under the climbable tower, and a player who dropped through the decking landed inside it with no way out: a simulated player body at the reported spot could reach 20 square metres and never the spawn point. The west panel is gone and the body now reaches the whole quarry floor. The scene's baked navmesh still carries the old island until it is rebaked, so click-to-travel inside the old pen does not resolve; walking does (#1483).
- Filled the two rock pockets between the boulders at Upper Fortus where a player could drop in and not climb out. The artist's fix for this report was made in Perforce after the git cutover and never reached this tree, so it was redone here with two colliders. Measured with a simulated player body: 18 trapped standing cells and 11 trapped drop landings before, 0 and 0 after, and none of the reference walks around the spot got shorter (#1351).
Gathering
- A missed swing on a gathering bonus pass now pays nothing for that pass. A node used to hand over one pull more than the swings landed, and missing the twelfth swing of a full chain paid the same twelve pulls as landing it. Yield is now one pull for the opening pass plus one per landed swing, capped at twelve, and the harvest bar closes on Missed! with the bonus count the node actually paid. Ignoring the meter or gathering with the mini-game off is unchanged. Reported by Joe.
Guilds-Towns
- Player-owned towns have their own chat channel. A resident hears it from anywhere in the world, the way guild chat works: the governor, anyone given Resident or Steward, and anyone holding a lot in the town. A Town box joined the chat tab filter, each of a player's towns is an entry in the channel picker, and /town (or /town <name> for a player with lots in several) sends into it. The server refuses the channel to anyone else, re-checks residency on every line and every five minutes, and moderates town chat the way it moderates guild chat. Not on chaos until the next build.
- Two things the town chat spec had wrong, fixed in the build: there was no free chat-type bit (the spec asked for a fresh one), so town chat reclaims a retired one with a one-time clean-up of saved chat tabs; and the town list reaches the client after the friends list lands, the way the guild name does, instead of inside login. Three database indexes came with it, including the long-planned one that answers "every lot deed in this town" without a scan; each is a one-line command per host, recorded in the migrations ledger.
- The game side of running a guild or a town from the web landed, switched off. Four guild operations (kick, set rank, description, message of the day) and one town operation (set a resident's role) now exist in a form the portal can call on a player's behalf. Each one loads that player's own account fresh, refuses if the account is an admin, checks they are actually in that guild or town right now, and then runs the exact same rule the in-game button runs, so a web refusal is the game's refusal. The town permission checks were first lifted into one pure rule with 16 tests of their own, including the one that matters most: a locked town refuses everyone, the portal included.
- Guild officers will be able to invite a player who is offline. An invitation sent from the website is kept by the game and shows up as the normal invitation window a few seconds after that player next logs in; the officer's Invitations page lists every invitation and what became of it (waiting, delivered, accepted, declined, withdrawn, or expired after five log-ins with no answer) and can take a waiting one back. Accepting joins the guild through the same path an in-game invitation uses, and a player who joined another guild first shows as declined rather than as a false success. Landed with the rest of the write-back, switched off until the next build.
Release tooling
- The /builds/ release board can now roll a channel back. A build below the one a tier serves used to grey out its Promote button as a hard refusal, and a rollback meant three per-platform pointer flips plus a server swap by hand. The row now reads "Roll back chaos", the dialog says what a rollback does, asks for a written reason, and the same one-job promotion runs backwards: all three pointers move down, then the shard is rebuilt at that build's commit with its login gate stamp restored.
- The promotion migration gate now notices direction. On a rollback it scans the commits being undone instead of an empty forward range, and refuses when a database migration was applied to the shard in between, unless the operator acknowledges that the older server still reads the data.
Chaos shard
- Chaos rolled back from build 195 to build 192 on all three platforms, server included, after 194 and 195 proved unstable. First use of the scripted rollback path.
Crafting
- Fixed the ingredient count on crafting recipes that accept a family of materials, such as the fish processing recipes that take either a normal or a large fish. A player carrying one Black Trout and ten Large Black Trout saw a count of one on Process Trout, because the count stopped at the first material that covered the recipe; it now weighs every material the recipe accepts and reports the largest number held of any one of them (#2090).
- The printing press no longer copies a multi-page book onto blank paper, a bulletin board flyer or a holiday card. Those blanks hold one page and their reader has no page turn, so the extra pages landed on an item that could not show them. A one-page blank now accepts only a one-page source; blank books still take any book, and cards that already carry a long book are left as they are (#2087).
Decorating
- All four roofs of the Ornate Shogun Gazebo take ceiling decorations. Only the lowest tier carried an exterior-ceiling surface marker, so the paper lantern strings and chandeliers were refused on the three upper roofs. The upper tiers now carry the same marker (#1366).
- Decorations authored with several collision boxes on their root (benches, piers, palisade sections, cash registers, snow figures) are now measured by the union of those boxes when the game decides what they rest on. The support probe used to read whichever box came first in the component list, which on the slatted park bench is a 13 cm leg 1.27 m from the pivot, so a stacked bench was judged by a spot a metre to one side of it. 588 of the 12,985 decoration prefabs carry more than one root box; the 6,496 with one are unchanged (#2121).
2026-09-11 · 235 items
The New Britannia Herald
The freeze is run to ground and the sieges stop ignoring their own switches
Headlines
- Recalling chat history with the arrow keys could take the client down with it. The fix closes the same hazard in every other one-line text box in the game.
- The world-entry freeze (#6893) is found: an untimed presentation wait inside the DirectX 11 flip-model swapchain. The client moves to the BitBlt path, from the launcher for deployed builds and by default from the next one.
- Every master restart had been starting sieges while the page said off; the scheduler now waits for the tunables poll
- Courage Club rounds stop stalling. Opponents were being placed inside the sealed alcoves around the arena floor, behind a wall that does not lift for that round, where nothing could reach them. Ten spawn points across the four multi-opponent rounds did it, the named boss rounds included.
- Taming's Summoning skill now levels at the normal rate. It had been authored at one eighth speed, which worked out to 27 casts per level at skill level 100. It now takes about 3.
- Two more control points stopped having an end. Sanctus Spine and Brightbone Pass now keep escalating past the eighth wave the way Eastreach Gap has since August, with the enemies multiplying, growing and speeding up as the number climbs. Both also field their whole last wave now, so the named enemy turns up every run instead of ten runs in eleven.
- Guild and town portal re-scoped, box provisioned, sign-in, rosters, pages, chat history, a moderated message board, town pages, image uploads and a calendar live. A census of 896 guilds and 439 towns, a dedicated 24 GB box, a working game-account sign-in at guilds.catnipgames.net, guild rosters with presence, leader-run pages with per-page visibility, a members-only guild chat page that refreshes every five seconds, a message board whose public posts pass the chat moderation model first, pages for all 439 player towns with a governor opt-in, re-encoded image uploads on a cookieless host, a calendar with RSVPs and feeds, an applications inbox and opt-in in-game notes, all the same day. Guild chat became members only on the server, and the browser reply path is coded, waiting on the next server build.
- Five maps stopped stretching. Jaanaford, Vertas, Elad's Lighthouse, Etceter and the Soltown Catacombs were measuring a metre differently across the page than down it. All five now use one scale both ways.
- The large pale panels Mac players were seeing in the Eastmarch sky were the exit markers of the town itself, drawing when they should have been gone. They are removed as the town loads now.
- The tester handbook is public: how to test on Chaos, readable without a login, linked from every page header.
- Book pages are printed on aged paper now, in both the window and the 3D Immersive View.
- Creatures in player dungeons can walk through doorways again. Every room is its own patch of walkable ground and the joins between them were landing 0.7m off it, so anything that could not teleport was stuck in the room it spawned in.
- Bug pass. Closed 10 reported bugs from the tracker.
- Game downloads moved to a CDN. Patching now pulls from a mirror with servers worldwide instead of our single box, so a release day no longer bottlenecks on one connection.
The Herald
- The New Britannia Herald for 2026-09-10 is up: The whole project was lifted onto a new version of the game engine in a single day, against the written advice of the team, on my say-so. Fishing became a contest you can lose, after testers reported landing every fish they hooked. Sixteen gigabyte Macs get their texture memory back, the game window remembers where you left it, and nightly builds now soak on an internal shard before they reach testers. Listen or read the transcript (17 min). Subscribe in any podcast app: /blog/podcast.xml
Community
- Filed three items from the overnight forum sweep to the tracker: an addon-store dependency ask for the Lua API, a Recall/Gate learnable-spells suggestion, and a chaos-shard bug where ferocious wyverns don't show the Pet Lore option.
Editor
- Opening the project logged 40 warnings about plugin import files saved in a format Unity no longer accepts. The editor was rewriting them in memory every launch and throwing the result away, so the same 40 lines came back every time. Re-saved all 40 through the editor. None of them changed which platforms a plugin ships to, and the test that guards Mac plugin architecture passed before and after.
Tools
- The unattended bug-fixing loop now gives its workers instructions that are correct on the Mac as well as the Windows box. Three steps had been written with Windows-only paths and a Windows-only script, so a worker running on the Mac could write a scratch file it then could not find, or be sent to a tool that does not exist there.
- New map calibration tool measures a scene map against its own art with no Editor open. It reads the scene's baked navigation mesh and lays it over the picture, and it reaches the underground sheets the Editor check cannot, because that one works by pointing a camera down at the scene.
- The server health dashboard keeps two SQLite sidecar files next to its database while the API is running, the write-ahead log and its shared-memory index, and neither was ignored. Every checkout that had ever started the collectors listed them as untracked; both are ignored now alongside the database itself.
Tools
- The developer portal had grown to 38 tool tiles in one flat grid, each carrying a paragraph of description. It is now six categories with a filter box on top: type a few letters to narrow the list, arrow through what is left, press Enter to open. Press / anywhere on the page to jump into the search.
- Every portal tile now leads with a one-line summary and an access badge saying who can get in. The full description moved to a panel that appears on hover, with a chevron that pins it open for touch and keyboard. The eight tools that write to the running shard are marked as such.
- Five portal tiles carry live numbers: players online, the server health roll-up, the build the shard is running, and the open tester-verification and bug counts.
- Six pages that were already live but had no portal tile are now listed: the tester hub, patch notes, leaderboards, the Novia world map, the Lua addon docs and the Lord British Lives page. Tiles can be pinned to a row at the top, and the whole grid has a compact list mode for people who would rather scan 44 rows than 44 cards.
- The detail panel on a portal tile now draws above the tiles below it. It was opening behind the next row of cards, which left most of it unreadable.
UI
- The row of keywords along the bottom of the NPC conversation window stays on a single line again when the window is narrow. Before, the row split onto two lines with the scroll arrows still there for paging, and the hide/show toggle ended up on a third line under everything. A keyword that no longer fits its share of the row ends in an ellipsis and reads in full on hover; the arrows on either side page to a keyword the row cut off on the right.
- The crafting table window on a non-English client no longer shows an English "All Items" entry on the Your Inventory pane -- the category dropdown reads in your client language now, matching every other filter on the same window. (#7158)
- Speech bubbles over a character's head now keep italic text instead of dropping it, so an NPC line written with italics reads the same in the bubble and in the chat log window. Colours, links and item links are still removed from bubbles.
- Fixed the border scaling value in all eleven UI stylesheets. The setting was written without a unit, so the style parser rejected it and fell back to the default. The build log only named the Crucible theme because a warm build reimports only what changed; the same fault was in every skin and in the Classic theme every player starts with.
- Recalling chat history with the up and down arrow keys could crash the client. The keys were being handled twice, once by the chat code and once by the engine's own text editor, and the engine was left working on a line that had already been replaced under it. Chat takes those keys itself now, so the engine never sees them.
- Holding an arrow key in chat walks through the history instead of stepping once per press, and the cursor now lands at the end of the recalled line, so what you type is added to it rather than in front of it.
- Up and down in the other single-line text boxes, rename and search fields among them, are ignored rather than passed to the engine. Multi-line boxes such as the book editor keep their line navigation.
- Saved interface layout is now kept per game account. Window positions and sizes, per-window transparency, column widths, the skill bar and the movable HUD pieces used to be shared by every account that logged in on the same computer, so a window moved under one account came up in that spot for the next one. Placements already saved carry over to each account until that account moves the piece itself.
- The merchant Exchange stops the window from dragging narrow enough to cut off its columns. The window opens at the same size it did, but the smallest it will now go still shows Item Name, Type, Weight and Price side by side.
- French client no longer shows English on the Options window Commands tab: the "Bind a key to Toggle Cursor..." hint under the Hold Cursor Toggle checkbox now reads in French, and typing a nonsense filter no longer stacks Unitys built-in "List is empty" text under the localized "Aucune action ne correspond au filtre." message.
- The Options window settings-search row and the six new Interface tab section headings now read in French on a French client. Twelve English lines had shipped without French translations when the search feature landed. The other seven target languages are still uncovered by these strings and fall back to English until a matching pass is run for each of them. (#7144)
- The captions, reel hint and callouts on the new fishing meter now read cleanly against water and dark scenes. Every label was picking up the theme's light gray text and the hint sat at a dimmer opacity on top of that, which read as faint at 12 px over the world; the labels are now bright white with the same dark halo the meter columns carry, and the hint runs at full opacity so it matches the captions above it.
- The Clean Strike and Rich Find callouts on the harvest swing meter now show a solid white letter body instead of just a dark outline over the world. The label was inheriting a near-black fill from the panel, so the outline was the only part of the letters that read; it now paints white and bold at a readable size, with the dark halo still around it. Requested on tester-verify #7028.
- Right-clicking an item inside an open bag no longer offers to open that same bag. The entry played the container sound and then did nothing, because the bag was already on screen. It still appears, and still works, when the item is inside some other bag.
- The character sheet Masteries section now shows each mastery as a percent with a plus in front, the way the skills window, item bonus lines and buff text have always shown it. The sheet was the only place in the game writing it as a plain decimal, so a school worth +144% read as 1.4 on the Stats tab.
- A school you had only just specialized in used to read as 0 in that same Masteries section, because the old one-decimal rounding swallowed a mastery the character sheet stores as one hundredth. It now reads +1%.
- Hovering a shield while holding a weapon in your off hand now shows the shield's Damage Resistance and Damage Avoidance in the "If you equip this:" column. Those figures live on the item itself rather than on its enchants, so the column had never gathered them and the main reason to carry a shield was missing from the comparison. Two shields compared against each other also show their Durability Multiplier. Reported by rinaldi.
- Maximum Durability no longer appears in the item comparison column. It records what masterworking and enchanting spent on an item, so as a difference between two items it described two crafters rather than the swap. It still shows on the item panels. Armor Damage Resistance left the column for the same reason, and the resistance it produces is now printed as its own figure. Reported by rinaldi.
- Each equipped item in a comparison tooltip now carries a caption naming the slot it fills: "Main Hand", "Off Hand", the ring slots, and so on. With a weapon in each hand the two panels sat under one heading with nothing saying which was which. A two-handed weapon holds both hands from a single slot, so its panel reads "Main and Off Hand". Reported by rinaldi.
- A two-handed weapon compared against a sword and shield pair now reads both halves. The comparison used to stop at the first item that produced weapon figures, which dropped the shield's protection whenever the weapon was found first.
- The Durability Multiplier line on an armour or shield tooltip no longer prints a stray second number beside it. The figure in brackets was the item's Damage Avoidance total, copied from the line above, so a piece with avoidance enchants showed an avoidance point as though it were durability. Nothing an item carries changes how fast it wears, so the line now shows the multiplier alone. The multiplier itself has not changed.
- Dropdown menus measure their own entries as they open now and widen to fit them, so a menu can no longer break a word in half. The Dungeon Builder Build tab piece type filter was the reported case: Encounter read as 'Encoun' over 'ter', with the open menu 14 pixels narrower than its widest row needed.
- Three earlier passes at that filter set the width from a fixed estimate measured in an Editor test harness. That harness resolves different styling than the running game does, so each estimate passed its own test and still shipped short. Measuring the real menu on the real panel removes the estimate entirely, and it holds at any interface scale, on any skin and in any language.
- Entries that are whole sentences still wrap between words rather than stretching the menu across the screen. The change covers every dropdown in the game, not only the two on the Build tab.
- The health and focus bars on the status frames are thicker, seven pixels to ten, and the current and maximum figures now sit inside the bar instead of riding above its top edge. The thin bars had been put back in August after a tester found the taller ones too heavy, and a player reported them as too thin to hold their own numbers. Ten is the middle ground. Your own frame, the target, pet, party and companion frames and the plates over characters heads all carry it, and the frames themselves did not get taller.
- A wearable opened in the 3D preview window is now drawn in its own colours. Putting the garment on the preview figure never wrote the item colours, so a preview could show a piece in whatever colours the window was left holding instead of the dye on it or the tones the piece is made in.
- The friends list in the Social window now opens at the top. Closing the window and opening it again brought back the same scrolled position, so players had to scroll up to find who was online.
- The NPC conversation window now opens beside the chat window instead of on top of it. On the default window layout it covered the right half of the chat window, and since both windows are see-through the chat text stayed readable underneath the conversation text, with the same NPC line showing twice because dialogue is also copied into the chat log. A new player hit this in their first conversation (#1870).
- Add-ons that redraw their own icons and text every frame kept drawing through a zone change, so they sat on top of the loading screen. That drawing now stops while a zone is loading and while the loading screen is up, and on the login and character-creation screens, then starts again once the new zone is ready.
- Book pages are printed on aged paper now. Both the normal book window and the 3D Immersive View use the same texture, a little darker and warmer than the old page, which was close to plain white and tiring to read. A player asked for this.
- The flat book window had carried a parchment veil that did nothing: the texture behind it is white with an alpha ceiling of 51, tinted down to 0.28, so it covered under 6 percent of the page and lightened it instead of ageing it. Both views now share one paper, laid over the old cream rather than replacing it, so a texture that fails to load falls back to the old page instead of to white.
- Pressing Escape to close a window while placing a decoration no longer cancels the placement. Picking a decoration out of a bag and then closing that bag handed the item back, which ended the placement; that hand-back now waits until the decoration is down. Containers that genuinely go away, such as a chest you walk out of range of, still take the item back.
- Hiding the interface with F9 no longer hides the quit confirmation. Closing the game window, pressing Alt+F4, or letting the launcher close the game for a patch used to put the "Are you sure you want to quit?" prompt up where it could not be seen or clicked, so the close looked like it did nothing. The prompt now stays on screen and answers the mouse with the interface hidden.
- Chat text can be selected with the mouse and copied. Drag across a line to highlight it and press Ctrl+C to take it to the clipboard, with the colour codes stripped; double-click picks a word and triple-click takes the line. Selection covers one message at a time, so copying a run of scrollback is still
/copy. - Item tooltips stopped advertising a salvage yield on items that cannot be salvaged. Devilcult's Flaming Skull Mask is a restricted reward with salvage switched off, and its tooltip still listed an eternal pattern as the reward for salvaging it, so players carried it to crafting tables that would not take it.
- Raw cooking ingredients now sort into the Crafting tab in the backpack. Apples, bananas, lemons, coconuts, tomatoes, lettuce, onions, peppers, pumpkins, eggs, pecan nuts, brown cap mushrooms, cinnamon bark and eight more were listed under Consumable alone, while wheat and chicken from the same shelf already sorted under Crafting. All 21 still appear under Consumable and can still be eaten raw.
- Phonographs now open one song list window each. Opening a second phonograph used to take over the first ones window, so only one could be on screen and a single press of Play started the song on both; two windows now sit side by side and each drives only its own phonograph.
Images
Server
- The Dungeons leaderboard now labels a dungeon by the name its builder gave the entrance. A dungeon on a lot in a player-owned town used to read as whichever town sorted first on the shared base scene, so a Parrots Roost dungeon named "Taste of Flame" was published as "Exile Island". Dungeons whose owner never named them still fall back to the town and lot.
- Both control point leaderboards name a point the way a player says it. A row reads Sanctus Spine or Eastreach Gap now, instead of the scene name behind it, and the besieged-town column and the control point column share one reader so they cannot drift apart.
- Guild chat is now members only on the server. Joining a guild's chat channel used to go unchecked, so a client that knew a guild's name could listen in; the join now requires membership, and a player who leaves or is removed stops hearing the channel at once. The same change adds the operation the guild website uses to send a line into guild chat on a member's behalf: the server re-checks membership, mute, ban and admin standing and a rate of 8 lines per 5 seconds against the sending player's own account before anything goes out, and the line is attributed to that player's character. Chat log lines carry a message id and a source field, and a moderation redaction now writes its own log line. Rides the next chaos server build. Tester task #7289.
- Fixed a placed container that could stick on "in use by another player" for everyone after several players used it at once. Closing a container while something else was still writing to its contents left it checked out for the rest of that player's visit; the release now retries until it goes through, and no longer needs the holder to leave the area.
Content
- Fixed the end of the Oracle storyline: telling the Oracle a new age has begun handed the conversation to Arabella the first time and then stopped working for the rest of the visit, so the Oracle would say goodbye and Arabella would stand there without starting anything. The hand-off now fires every time you say the line. (#2065)
- Fixed the right-click menu on tamed wyvern pets so Animal Lore now offers the Study Creature entry the way it does on wolves, bears, and every other tamed animal.
- The Obsidian Keep (City) player home no longer lets rain through the ground-floor ceiling under the stairs. The earlier patch closed most of the opening in the roof over the stairwell shaft, but a narrow strip along its east edge was still open, and rain kept dripping through it onto the low ceiling below. The rest of that opening is now sealed too.
- Japanese players now see the rotating loading-screen quips in Japanese. The 34 flavor lines had shipped in English only; the loading tip pool that appears with them was already localized.
- Duke Founder (City) home rain no longer falls through the ceiling. The v02 house model had a rain-blocking shape wired up on the roof with an empty mesh, so rain fell straight through into the great hall on every floor. Repointed the shape at the models outer shell, and rain now stops at the roof the way it does on every other house.
- Full-size boars stopped squealing like piglets. The grunt they make while eating and milling around was built from clips authored for the small boars and was playing back at the small boar pitch on every boar from the Wild Boar up to the Razorback Destroyer. Those clips now play lower on the larger animals. Squeakers and Small Wild Boars are unchanged.
- The town maps for Port Mirren, The Brave Coast and Estercove were framed on the main island alone, so the water lots on the small islands around it had no map under them and the north dock lot fell off the edge of the sheet entirely. All three towns shared one picture; each now has its own, drawn wide enough to take in every island in the town, and all of their lots sit on the map.
- Speak with Demig is no longer advertised on the overworld once Demig has died at Korabars throne. The camp nameplate had been re-lighting for characters who had already finished the Path of Courage story arc; it now stays clear once the quest line has moved past that step.
- Fixed a wall in the Ornate Triple Connection Marble Dungeon Foyer that took no wall decorations: facing north, the stretch to the right of the archway refused paintings, torches and banners because its decoration surface was authored about two centimetres behind the stonework. It now sits on the wall like the room's other seven.
- The short stone posts along the railings of the large stone bridge were drawn but had nothing solid behind them, so a player could walk into one and end up standing inside the stone. They now block movement the same way the rest of the railing does, on the bridges at Ruined Keep, Brittany Wharfs, Etceter, South Boundless Forest, Shaminian Hills and The Crags.
- Fixed the rumpled yellow and gold rug: it now reads Rumpled Rectangle Rug (Yellow and Gold) instead of a leftover working name, shows a picture of that rug instead of a large brown one, and its surface matches the model, so a decoration placed on it rests on top of the folds rather than having them come up through it by about four centimetres.
- Wymond in Jotungrund now hands over a Frost Giant token for every giant killed. His repeat award was set up as a one-time reward, so the server turned down every claim after the first for a day and a half while he went on playing the award line.
- Fixed a duplicate in the offline single player game: recruiting a story companion such as Charlotte Grey, Robert Villines, Kardan Marbane or Samael while standing in their scene left a second copy of them at their usual spot until you left and came back. The check that clears the scene copy now runs for story companions, not just for the three offline companions in Ardoris, Resolute and Aerie. The online game was already correct.
- Decorations can now be placed in the guard alcoves and along the side walkways of the main bridge on the Swamp Island Metropolis town templates. Only the central roadway carried a placement surface before, so anything aimed at an alcove was refused; the deck is now covered from one parapet to the other.
- Fixed the Viking Three-Story Stronghold (Town) drawing its outside walls twice. Past close range the house switched on a merged lower-detail copy of itself while the timber trim and the columns were still drawing, so the two surfaces overlapped and the walls looked warped from a few steps back. All three exterior pieces now switch together: 53,231 triangles up close, 36,592 at the first step out.
- The ground-floor wall torch in the three-story Kobold rowhouse was facing the wrong way and hanging half a metre off its wall, which threw its flame and its light out into the middle of the room and left the ground floor with a glow the upper floors did not have. The torch now hangs on the wall, in the same spot it occupies in the other Kobold rowhouses.
- The Odd Container (Flotsam) no longer disappears while you carry it around in decoration mode. It was being culled from view once it got roughly 15 to 30 metres from the camera, depending on field of view and the Level Of Detail slider, which is well inside the distance you can push a decoration to, so there was no way to see where it would land.
Build Pipeline
- Audited the last Windows build log and found a shader that shipped broken. Eight shader compiler workers crashed on one particle shader, the editor restarted them and carried on, and the half-compiled shader went into the asset bundle anyway. The build returned success. The shipped copy is 2.17 MB against 2.36 MB for the same shader compiled earlier in the same run, and the missing part is the lit forward pass.
- Client builds now fail when the shader compiler dies. The exit code could never catch this because the editor returns success, so the new check reads the finished build log for a shader error, a compiler IPC failure or a dead worker, and names the shaders that would have shipped degraded. Tested against the build that caused it before anything else was changed.
- Build logs got a digest. The Windows log runs to 152 MB and 57 percent of it is upload chatter from the shader cache, so every build now writes a few-KB summary of each warning family plus a stripped copy of the log at 8 MB. An audit that took a day of searching is now a six-KB read.
- A shader test written to catch exactly this had never run. The nightly test filter matches on namespace, and that fixture sits outside it along with 88 other test files, about 10 percent of the suite. The two shader fixtures are now named in the filter; measuring the other 87 is its own job.
- Ran the shader tests that had never run and narrowed what goes into the nightly. Three pass and are now in, including the one that checks no shader failed to compile. One counts warnings against a fixed baseline and gives a different answer on different machines, so it stays out rather than reddening the nightly for reasons nobody can act on.
- The bundle shader protection tests are in the nightly too, after a run showed all seventeen pass. That set guards the machinery that keeps a shader in one asset bundle from losing the variants materials in other bundles need, which is next door to the shader that shipped degraded. Twenty-one previously unrun tests now run every night for about a minute.
- The internal builds page is now a release board. One row per build across all three platforms, showing the commit it was made from, how long it has soaked on the QA shard, and a link to what changed since the build players are on. Promoting a build to chaos is one button.
- Promotion runs as a single job now instead of four separate manual steps. It checks the build is complete and signed on all three platforms, runs the database migration check for the range the shard is about to cross, moves all three channel pointers, re-reads them, and only then moves the server. A step that fails puts the pointers back rather than leaving a release half moved.
- The release board reads a durable record of which commit each build came from, and that record was readable only by the administrator account. Every row rendered without a commit and every promotion refused, which looked like the page working while it answered from half its data. The records are readable by the page now, and new ones are written the same way.
- The first real run of the promotion job found two faults a dry run from a desktop could not. The script is saved with Windows line endings, so the commands it sent to the patch host carried stray carriage returns and the shell there rejected them. And the progress check followed the build servers own public address, which strips the credentials on purpose, so a finished promotion would have shown as still running forever. Both fixed, and the whole path now runs green end to end.
Client
- Search All My Stuff was showing every container row as "(0/limit)" no matter how many items were inside. The window now reads a real count from the server, so a chest holding five items reads (5/300) and an empty one reads (0/300).
- A pet set to follow can not walk onto a lift, so it used to be left at the bottom while you rode up and had to be recalled by hand. It now comes to you as soon as you step off the lift, and a pet that could walk around to you still walks.
- Fishing minigame stopped drawing after a player left for the character-select screen and came back in. Closing the whole client and reopening had been the workaround; the meter now stays alive across the round trip and shows on the very next cast.
- Wall sconces, wall lamps and wall torches can now be hung on the fence and wall pieces players place themselves. Aiming one at the face of a fence, hedge wall, stone wall or castle wall section used to be refused with "Something is already in the way", so those walls could not be lit.
- Enemies no longer show speech bubbles over two of them at once during a fight. A creature that spoke again before its last bubble finished used to queue the new line behind the old one, so the words over its head could run a sentence behind its own voice and stay up longer than the game had reserved. A creature now replaces its own previous bubble, and the quiet gap after a speaker is measured from the bubbles actually shown rather than from an estimate made before they existed. Everything said still reaches the chat log in full. (#5811)
- Closed an open gap along the middle of the Rottweiler pets belly. It ran about 18 cm front to back, and from underneath you could see through it into the far side of the body, which showed as a pale slit when the model was rotated. All four Rottweiler bodies were repaired, including the white and the still versions.
- Large rugs would not place in the Edelmann Benefactor village house. That room’s floor rises about 7.6 cm from one side to the other, and a decoration is held flat instead of tilting to follow the floor, so the far corners of anything wide ended up inside the floor and the preview stayed red. Placement now allows for how far the surface rises under an item’s own footprint, everywhere in the game, and where a decoration lands when you drop it is unchanged.
- Choosing a recipe you are short of materials for now leaves the item you placed on the crafting table where you put it. It used to clear the table first and report the missing ingredient against an empty one, so a repeat enchant or repair made one reagent short pulled your item back into your pack and you had to drag it in again.
- Fixed flickering sliding doors in the Shogun Four-Story Palace (Town Home). Every pair of sliding panels in that home sat in exactly the same plane and overlapped its partner by about 25mm, so the strip where they met swapped between the two panels as you moved. Each pair now has one panel set 6mm deeper, the way a sliding door runs in two tracks. The top floor doorway was the worst of them and the one players reported.
- Cancelling a decoration move no longer drops you through the ground. Moving a decoration you are standing on takes it out from under your feet, and releasing it over a spot the game refuses used to put it back around you, where the collision pushed you down through the terrain and walking or jumping left you under the world. The refused move now puts you back on top of the decoration at the same time it puts the decoration back.
- Windowed mode gives back the full width you picked. A resolution as wide as your desktop came out 24 pixels narrower than that, so a 1920x1440 pick opened a 1896x1440 window on every launch. The 24 pixels were reserved for side borders that measure about one pixel on Windows 11 and none at all on macOS. The reservation is gone. A window is still shortened by the height of its title bar so you can still grab it, which is what that allowance was always for.
- The Video tab says how big your game window actually is. A line under the Resolution box appears whenever the window on screen differs from the resolution in the box, which in windowed mode it can, by the height of the title bar. The box itself still shows the size you chose.
- Checked the report that the Unity 6.6 client runs worse than the 6.5 one against the telemetry the client relays: same player, same GPU, same scene, same quality level, build 189 (the first 6.6 client) against builds 186 to 188. Across the ten paired cells the median frame rate was 8 percent higher on 189, CPU and GPU frame time were lower, five-second stalls fell from 1.7 per thousand minutes to none, and zone loads were flat, including the scene activation step that carries the one 6.6 known issue. Three cells did get worse, one of them clearly: a 2080 Ti in a player town lost 10 percent of its median and 30 percent of its 1 percent low. Thirteen hours of data so far; the same comparison re-runs in one command.
- The one measured difference between the builds is memory. The 6.6 client holds 1.5 to 1.9 GB more native memory than the 6.5 client on every player machine seen, already by the end of the first zone load, with the managed heap and texture residency unchanged. The published 188 and 189 build trees have the same 1,876 files and every asset bundle is the same size, so it is the runtime and not the content. On a 16 GB machine that is the difference between fitting and paging, which shows as stutter while the frame counter reads the same. Filed as #7248 with the candidate causes; the comparison tool and its report are in the repo under docs/performance.
- Five maps were measuring a metre differently across the page than down it, so the player arrow and the point of interest icons drifted as you walked. Jaanaford, Vertas, Elad's Lighthouse, Etceter and the Soltown Catacombs were measured again against their own map art and now use one scale both ways.
- Vertas was stretched sideways by 16 per cent, and the Soltown Catacombs were drawn at twice their proper height. Jaanaford had inherited Kiln's numbers wholesale and had never been measured against its own picture; its two painted waterfalls now sit under a pixel from where the arrow puts them.
- The Jaanaford map was drawn by hand and never surveyed. Its three bridges are painted 20 to 50 metres from where they stand and the island in the middle is drawn wide, so the arrow still will not sit on a painted bridge. Redrawing that sheet is filed on its own.
- Basement decorations placed hard against a wall, a floor edge or a doorway sill could be taken away on the next visit and sent to the bank, with a chat line saying the item was found outside the allowed basement area. The game measured the item in one spot while it was being positioned and in a slightly lower spot after it was set down, and the second check allowed nothing for the difference; it now allows exactly that much, so a decoration you were permitted to place stays where you put it.
- Found why the Unity 6.6 client holds more memory: the cleanup that runs at every zone change stopped returning anything. On the 6.5 builds that sweep released memory on about one zone change in seven, 95 times out of 635. On the 6.6 build it released memory zero times out of 115, while taking the same time to run. So a client that travels ratchets up by roughly a gigabyte per zone and never comes back down, and a client that stays in one place does not grow at all: one session sat on the same number for 110 minutes. About a gigabyte of the gap is there before the world even loads, at character select.
- Two suspects cleared along the way. Unity 6.6 reserves four gigabytes of address space at startup for its new object-id table, which looks alarming in the log and is not the problem: it is reservation rather than real memory, it works out to 16 bytes per loaded object, and the 900,000 objects a city client holds come to about 14 megabytes. The memory allocator is unchanged too, and both builds ship identical game files. The next client build adds a breakdown command that reports how much memory each kind of asset is holding, so the next step is naming which one.
- Decoration pets and conversationalists set to patrol no longer work their way down a shoreline into the water. The check that keeps them on solid ground measured the drop from wherever the pet was standing at that moment, so on ground that shelves into the water in small steps none of them was ever a big enough drop to refuse, and the pet walked down the shelf a step at a time. It now measures from the spot the decoration was placed on, and a pet on the dock at Berans Reach stops on the bank half a metre above the water instead of reaching ground four metres under it.
- Fixed books that would not sit on a Book Display Stand. The Dirae Prophecy and 121 other books leaned into place and then finished about 4 cm in front of the stand’s ledge and 2 cm above it, because the placement re-seated them on their own bottom edge after the stand had already posed them; the offset grew with the book, which is why a copy shrunk to 75% would seat when the full-size one would not. A book put on a stand is now left exactly where the stand asks for it.
- Two large pale rectangles hanging in the sky over Eastmarch on Mac clients were the marker surfaces carried by the boxes that mark where you walk out of a town to the overworld. Eastmarch has 20 of them around its boundary, the largest 977 by 145 metres with its top 85 metres above the ground, which is why they cleared the treeline when you looked out across the water.
- Those surfaces are now removed as the town loads instead of being switched off a moment afterwards, so there is no window in which one can draw and nothing left for a later change to turn back on. Windows clients are unaffected, where the surfaces were already hidden, and they still show in the editor for scene work.
- The Shogun Three-Story Keep (Village) dropped its wooden support posts once you were more than about 125 metres away, while the rest of the building kept drawing, so from a distance the ground floor colonnade was missing and the first floor balcony sat over open gaps you could see through. The posts are now drawn as far out as the building they hold up.
- Decorations can no longer be placed past a lot property line. The check that decides whether a decoration is on the lot was measuring the lot position instead of the decoration position, so it approved every placement wherever the item actually sat. A decoration already stored outside the line is now moved back to the front of the lot and set on the ground when the lot loads, which is what left a training dummy hanging outside the property line in a player-owned town. Half a metre of slack past the line is still allowed, and a decoration stacked on another decoration is still judged by the item it sits on.
- Fixed a Practice Dummy staying put after its decoration was removed. The dummy places a live creature on the spot, and a creature that was already standing when you arrived in the scene was not tied back to the decoration that put it there, so picking the decoration up or sending the lot to storage with the Property Manager left the dummy behind. Practice Archery Targets worked the same way.
- Fixed a following pet losing its way at the line between two neighbouring housing lots. A pet that crossed from one lot to the next could stop finding a route and then pop back to its owner every few seconds for as long as the owner stood there. It now keeps the walkable ground of every lot it is standing in, so the crossing is an ordinary walk.
- Windows on the Lord of the Isle Mansion (Castle) no longer block sunlight. The glass was drawn with the iron frame and stone trim as one piece that cast a solid shadow, so rooms behind a sunlit window stayed dark; the glass now casts no shadow while the frames still do, and the solarium glass roof was changed the same way.
- Pets no longer climb on top of placed decorations on a housing lot. A pet that ended up inside a decoration's footprint used to rise to the top of it and stay there, so cats stood on chests and dogs stood on crafting stations; a pet's footing now comes from the same map its pathfinding uses, and it stays on the ground beside the decoration. Gazebos, stables, awnings, decks and rugs are unaffected, so pets still walk onto and inside those.
- Windows on 37 village, row house, tudor and inn player houses cast shadows again. Their crossbars are painted into the glass, so the whole pane used to cast one solid rectangle and shadow casting had been switched off to hide it; the shadow pass now casts from the opaque part of the window texture, so the bars land on the floor and the panes between them let light through.
- Reward windows that let you pick one item now describe an indestructible tool as indestructible. Hovering a Prosperity Tool in the pick-one window read "Durability: 100/100" because the window lists items you do not own yet and the wording was taken from an owned copy. It now comes from the item itself, so a merchant listing and any other preview of an unowned item read the same way your bag will.
- Fixed a cloak hanging down through the mattress while a character was lying on a bed. Worn cloth only ever collided with the wearer's own body, so nothing held the cloak up; it now rests against the character while lying down and moves normally again on getting up.
- Falling snow and rain no longer jump when your character jumps. The weather effect sits above the player and used to copy their height exactly every frame, so leaving the ground carried the whole column of falling snow up and dropped it again on landing; it now eases onto a new height, which moves the column 0.50 m over about a second and a third for a 1.5 m jump instead of 1.5 m in under half a second. Walking uphill still carries the weather along, and arriving in a scene still places it straight away.
- Fixed the pirate pants with the boot and peg leg: taking a separate pair of boots off used to take the pants' own boot and peg with them and leave the character with nothing below the trousers. The boot and the peg now stay put, and a bare foot no longer shows through a boot that is still being worn.
- Fixed the camera zoom going short after a house ladder. The mouse wheel counted each step from where the camera was actually sitting, which indoors is pressed up against the nearest wall, so zooming out inside a building stopped a notch past that wall and saved the short distance. Climbing to the roof then read it back and the view stayed in close. The wheel now counts from the distance you asked for, and zooming in still counts from where the camera is so it moves on the first notch. (#2177)
- Fixed the cinematic conversation camera on very tall NPCs: it framed the top of your avatars head along the bottom edge and the NPC from the waist up, because the shot was always built at the same distance whatever the height difference. It now backs away until both faces fit. Ordinary conversations are unchanged.
Client
- Cleared five warning families from the client build. An unused variable in the deed code that only the server reads, a stale serialization attribute on combat runes that no longer redirected anything, a pathfinding line that made one of the code analyzers crash and stop checking, a false positive on the shutdown tracker, and a stylesheet value missing its unit.
- Tracked down five animator transitions the engine was discarding. All five are the same authoring slip: an exit time was filled in but the checkbox that enables it was left off, so Unity dropped the transition. The one that matters is the avatar sing pose, whose discarded transition is its only way back to idle.
- Two players working at the same crafting table no longer stand inside each other. A table has one standing spot and every crafter was moved onto it, so each player saw the other stuck through their own avatar. While you are crafting, another player standing on top of you now fades out of your view and comes back when they move off or you close the table; the fade is on your screen only and name tags are left alone.
- Water in 26 scenes held its daytime brightness all night. The swamp island player towns were the worst of them: the water there read as a flat glowing sheet under a black sky, about four and a half times as bright at midnight as an ordinary scene's water, which is brighter than an ordinary scene gets at noon. Those scenes now dim after sunset like everywhere else and keep the colour an artist gave them while they do it. Serenity Isle now sits within a few percent of every other scene at midnight. Daylight and sunset are unchanged.
- The night dimming had been skipping any scene whose artist had picked their own water colour, on the reasoning that darkening an already dark colour twice would bury it. That holds for the colour and not for the brightness, so those scenes now take the hour's brightness without its colour. Two dials went on the tester console alongside it, an off switch and a floor on how dark hand-tuned water may get, because 26 shipped scenes move at once and how dark a swamp should read after dark is a question better answered standing in one at midnight.
- Chat history got its first tests, and two long-standing bugs came out with them: the saved list kept the oldest line as its fiftieth entry instead of the fiftieth-newest, and the 200-line memory limit it was built with had never been applied.
- Fixed moondial rings pointing the wrong way. Each ring works out where its sun, moon or planet actually is, but that direction was being applied as though the moondial were facing due north, so any moondial turned away from north had every ring off by however far it was turned, and clicking one to play its turning animation pushed the rings further out of line. The rings now hold to the real sky whatever direction the moondial faces. Already-placed moondials will look different after this, because they are pointing where the sky is. The original report put this down to resizing the moondial; resizing was never the cause and does not move the rings. (#2003)
- Clothing shown on the plain Wooden Female Mannequin was being assembled from the male version of each garment's art, so a Cabalist Robe left the mannequin's arms poking through both sleeves. It was the only one of the 36 wooden mannequins with its gender recorded wrong. It now uses the female art, so the robe matches what the posed female mannequins show and what a female character sees wearing the same item.
- Found the freeze that has hit players on world entry and in town since build 181 (#6893). The two hang dumps from build 188 put the main thread inside the Unity engine, waiting without a timeout for the previous frame to be presented, with no game code on the stack. That wait belongs to the DirectX 11 flip-model swapchain; on every affected machine (four so far, three different NVIDIA driver versions, all on the same September Windows 11 update) the wait never returned. The client now uses the older BitBlt presentation path instead: the launcher passes the switch for every deployed build, the next build carries it as the default, and the boot log names which model a session ran. Testing task #7196.
Fishing
- Fishing got a second difficulty pass. The target zone on the tension meter drops from 0.13 to 0.08 of the track at Fishing 0 and widens faster with skill, 0.0009 a level instead of 0.0007, reaching 0.205 at the skill cap instead of 0.235. The tension bar is much quicker: reel and free-spool acceleration both go to 3.5 and the bar tops out at 1.2 track lengths a second, so releasing the reel now pulls away as hard as holding it reels in and a straight tug is a stalemate. The bobber dips 1.25 m on a bite instead of 0.75 m.
- The line budget drops from 24 seconds out of the target zone to 8, and recovery while the bar is on the fish goes from 0.02 a second to 0.7 to pay for it. Sweeping the real fight code found the shorter line on its own was unwinnable: at an 0.08 zone with the faster bar, even perfect play sits outside the zone about 80 percent of a fight, so a perfect-play bot lost 99 percent of the hardest fights and an average-reflex player caught nothing at all at Fishing 0. With recovery turned up the perfect-play fence is green over 2,000 seeds, and an average-reflex player wins 79 percent of common fights at Fishing 0 against a 68 percent break-even, rising to 100 percent by Fishing 50.
- The fishing line no longer recovers while the tension bar is inside the target zone. Line spent outside the zone is gone for the rest of the fight, so the eight seconds of out-of-zone time are one budget for the whole fight rather than something you can work back.
- Measured over 2,000 simulated fights rather than by eye: a perfect angler at Fishing 0 now lands 78% of common fish and 11% of the rarest, where the old recovery rate landed everything. From Fishing 100 up every common fish is still landed. A player re-reading the meter five times a second wins 0.1% of common fights at Fishing 0, 82% at Fishing 100 and 98% at 200, so skill and the water-type skill carry a lot more of the result.
- Fights end sooner because more of them end on a snapped line. The hardest fish at Fishing 0 runs 9.8 to 19.0 seconds where it ran 12.3 to 41.3, and the common band did not move. Clean Catch stopped being automatic, paying on 25 of 32 test fights at Fishing 100.
Documentation
- Chased the water bug into a longer-standing surprise worth writing down: the game draws no reflection on water at all. The call that renders one was commented out years ago, so what looks like a reflection is a flat colour, and the tint the time of day drives is the whole of it. The rendering notes said reflection quality decided that. It does not, and they now say so.
Combat
- Fixed the Wand of Wild Lightning wiping out Air specialization. That wand switches Lightning to a chaining version, and the chaining version had never been given the air resistance debuff the ordinary one applies, so specializing in Air did nothing for the spell while the wand was equipped. It now takes 10 points of Air Resistance off the target for 30 seconds and stacks with Air Magic Mastery, the same as without the wand.
- Effect icons on a target could open a tooltip with nothing in it, no damage line and no resistance line. Spells authored in two versions mark the second one to stay out of the skill tooltip so the tooltip does not read everything twice, and the buff bar was reading that same mark. An effect already on a target is not a repeat of anything, so those lines print on the icon again. Icons that already showed something are unchanged.
- Slimes now divide on the swing that takes them below half health. The check was reading the slime health from before the hit landed, so it judged the previous swing: a slime divided a swing late, and one carried from above half health to dead in a single blow never divided at all. Swords finish a slime in fewer swings than maces, fists or arrows do, which is why the split looked like it skipped edged weapons.
- Fixed hidden players showing up in plain sight for anyone who walked into the scene after the hide was cast. The arriving player saw them standing in full view and out of their combat stance, while the hidden player believed they were still hidden, and it stayed that way until they cast the hide again. The concealment now rebuilds properly for a late arrival, for Camouflage, Silent Movement, Vanish and Shadow Form alike.
- The Potion of the Master Air Mage now grants 11.46 Summon Air Elemental Power for its hour, up from 0.098, which puts it level with the Fire, Sun and Water potions. Its magnitude was still the one written for the Lightning cast range stat it buffed until August. That stat scaled as a percentage of a base, so the same number landed far too small once the potion was moved onto a raw summon stat. Reported by wishdragon.
- The control point at Sanctus Spine keeps escalating past wave 8, the way Eastreach Gap has since late August. Every wave past the eighth fields more kobolds than the last, at higher level, moving faster and standing larger, and a deep wave waits to be cleared before the next one arrives.
- Sanctus Spine picked up escalation second because of what escalation repeats. Past the eighth wave the fight re-fields that point’s last authored roster forever, and all six control points end on eleven spawn seats, so the deep-wave load is the same everywhere and only the roster differs. Sanctus has the hardest of the six and the only one that overlaps no other point.
- The last wave at Sanctus Spine now fields all eleven of its enemies. It was authored with eleven and allowed ten, and the controller picked which one to leave out at random, so roughly one run in eleven finished without the named kobold LuRK KRul Scout appearing at all. That wave went from 52,131 health to 57,344.
- Checked what the shard has already survived before switching a second point on. Recorded runs at Eastreach Gap reached wave 21, wave 34 and wave 102, the last of those past every cap in the escalation curve, with no server error in those windows. One fault did turn up: a character can carry 96 effects at once and a deep wave fills that, after which the player’s own buffs start getting refused. Filed.
- Brightbone Pass keeps escalating past wave 8 as well, the third control point to do so. It fields the same 49 undead as Eastreach Gap in the same order, on the common wave clock rather than Eastreach’s slightly slower one, so it is a second place to fight the hardest roster rather than a new fight, and a run at either is worth comparing against the other.
- Brightbone Pass’s last wave fields all eleven of its enemies now too, so Skelrin Nayer turns up every run instead of about ten in eleven. Eastreach Gap still has that fault and is now the point where it matters most, since it is the busiest of the six.
- Stunned creatures now play their own stun animation. A stun only produced a stun pose if the attack happened to name one, which almost none of them did, so a stunned satyr stood in its idle or kept cycling idle animations for the whole stun. Reported for satyrs; the fix covers every creature whose animations include a stun pose.
- Specialization benefits now come from the two schools held in your specialization slots. Training a school's mastery to 80 without holding its specialization also granted that school's benefits, which let a bard read other players' Vigor bars while both of their specializations sat in other schools.
- The Clink guards no longer walk up and greet a player who is hiding. Six guards there start a conversation on sight, and they did it while the player was stealthed, leaving the stealth up through the whole greeting and putting the guard's hello in chat. They now ignore a hidden player and hold the greeting until the player drops stealth.
- Lightning Storm now speaks its Words of Power when cast. It was the only castable Air spell with no phrase attached, so it produced no chat line and no bubble over the caster while its neighbours in the tree all spoke. Its phrase is Quaes-Wast-Jura-Gaus, built to pair with Chain Lightning's Wast-Motus-Jura-Gaus.
- Shooting a lever with a bow now pulls it while Auto-Attack is turned off. Levers have always been shootable with Auto-Attack on, but a hand-aimed shot had no target to hit, so the arrow went past and nothing happened. An enemy in your aim still takes the arrow.
- Dig In's Shield Specialization block bonus now lands every time the stance goes up. It had been rolled against a chance equal to your Shield Mastery level, so a character who held the specialization but had not levelled the mastery almost never received it. The size and the duration of the bonus are unchanged, and it still does nothing for a character without the specialization.
Tooling
- Hang dumps from the client watchdog can now be read end to end without a debugger: Unity ships the player symbols with the editor, so the main thread of a frozen client resolves to real engine function names. The recipe, and the worked example from #6893, are in the crash symbolication doc.
Sieges
- The master server now remembers the shard identity it settled on, keyed by host and instance, so a restart that happens to enumerate a different network adapter first can no longer rename the shard and strand every siege written under the old name (tracker #7169; that is how the chaos board came to show seven sieges on a shard that allows five). A configured identity still wins outright, adapters with no hardware address are skipped, and the chaos launcher's own pin, which had never once applied, was removed. The identity row is a net under the config pin: chaos still needs its identity pinned by hand to the value its rows already carry.
- Every master restart had been starting sieges while the Tunables page said off: the scheduler's first tick ran one second after it was built, the master's first tunables poll five seconds after, and in between the registry held the shipped siege.enabled of 1 (four sieges started 2026-09-10 00:24, two more 09-11 02:48, each followed a minute later by the scheduler noticing it was off). The master now polls the tunables once before the scheduler exists, and the scheduler starts nothing until that poll has landed; the cleanup passes still run regardless.
- Since build 188 the killing blow on a Cabalist paid no experience, sent no defeat announcement and credited nobody, even though the town was freed: the zero health report the fight sends at the moment of death was ending the siege a few milliseconds before the kill report arrived, and the kill was then refused as coming from a creature the town no longer had (seven clears out of seven since the build, every one uncredited). The uncredited ending now waits ten seconds for the kill report, which ends the siege itself on every ordinary kill, so the town lifts sooner and the killer is paid and named again. Verify task #7200.
- The Cabalist's home no longer snaps back to the town entrance. A creature's AI rebuilds its leash from its seat every time it is re-enabled, and it is re-enabled whenever a player comes back within range; his seat stands at the gate he walked in through for the life of the room, so every walk-away-and-return quietly made the gate his home again and the next leash sent him pathing or teleporting back out to it, which is what testers saw on build 189 (#6591, #6849). The seat now answers with the shrine once he has reached it, and the fight re-tethers him and his rings every second. His body and his followers' bodies also stay where they fell when the siege lifts, so he can finally be looted (#7001). Verify task #7201.
- Five smaller siege findings from the review, all server side: the shrine a Cabalist walks to in a player town is now chosen for the Cabalist rather than before he is picked, so the preference for the virtue he opposes can actually fire; a forced ending (the dead-boss backstop, a game master's end-siege) now rests the town instead of freeing it for the very next tick; a town cooldown of zero on the Tunables page now means zero rather than the shipped week; a new siege on a town every room already knows about reaches every room's roster; and the master checks once at start that the siege collection still carries its unique key and expiry index, since a reseed recreates it bare and nothing in the running server creates them.
- The Town Sieges board on the dev portal now reads the switches out of the config the master actually runs (the copy the launcher assembles at each start) with the durable file as the fallback, treats an empty shard identity as not pinned rather than unreadable, and draws two cards it was already being handed: the shard's identity and whether it is pinned, and any sieges stranded under a former identity, which is the answer to a count that looks wrong.
- Siege creatures watched from a distance stood frozen with their arms out, and the Cabalist did not take a step until somebody walked up to him (#7092). Their seats spawn regardless of distance, so they are the only creatures that exist beyond the range at which a creature's animator and mind are switched off, and one culled before its animator had ever run froze in the rig's rest pose. Siege creatures now keep animating and thinking from two and a half times the ordinary range, and any creature evaluates its animator once before it is first culled. Diagnosed from the code, not yet watched on chaos; verify task #7204.
- The Cabalist's marker now shows crossed swords on the compass strip and on the town map (#7140). The location declared that icon all along, but the compass and the map draw a texture and nothing on either surface reads the declared icon kind, so testers saw the plain pin. A 32-pixel crossed-swords glyph in the style of the other discovery icons is assigned in the global tweaks, with the plain pin as the fallback. Verify task #7205.
- The review's new EditMode fixtures (shard identity, tunables ordering, the dead-boss grace, home and corpses, distance culling and the marker) all pass on the Editor: 200 tests across the 25 siege and spawn fixtures that read the changed files, one guard fixed after its first run for reading past the end of a short file.
- The devotional census ran on the chaos shard for the first time. Every siege the shard had ever started carried no shrine position, so a Cabalist in a player-owned town walked to the town crier instead of a devotional; the tool on the box predated the field that records positions, so a fresh build went over first. The run took 29 seconds and recorded a position for 656 of the 1,415 devotionals standing on 215 lots. From the next siege on, a player-town Cabalist has a real shrine to walk to.
Build & Deploy
- A server-only deploy used to decide which client build the shard accepts by reading one platform. Flipping Windows and missing Linux stamped the shard anyway, and Linux and Mac players were then refused at login until someone noticed. It now reads all three platforms and refuses when they disagree.
Security
- Write actions on the internal builds page now need your own account rather than the shared team login, and an action nobody can be named for is refused outright. The record of who did what is readable from the page instead of needing a shell, and repeated failed logins are now rate limited and briefly banned.
- Our build server treated anyone who could log in as a full administrator. It now grants permissions per job, so the account behind the release button can start that one job and nothing else. The existing admin account and the automated push hooks are unchanged.
Patcher
- The patcher can now pull game files from a CDN edge instead of the patch server. A channel can name a mirror base, and the launcher fetches every game file from there while the version pointer and the signed manifest still come from the patch host. Clearing the setting puts everyone back on the patch host within a minute, with no launcher update needed.
- The patch server now counts how many bytes it actually sends, split by what was being sent: game files, manifests, version checks, launcher downloads. We had never measured this, so sizing the patch delivery for launch was guesswork. Totals roll up once a day and show on the internal builds page.
- The first-install packaging job can now publish to a second CDN and, more importantly, seed the live channel rather than just the test shards. It also learned to keep the archive each channel is actually pointing at, so seeding one channel can no longer delete the download another one still needs.
- Tested delta patching through a CDN end to end. Patching a 32 MB game file with about 100 changed bytes moved 18,439 bytes, and the patched file matched the target build exactly. The concern was that a CDN might answer a small partial request by sending the whole file, which would have turned every patch back into a full download. It does not.
- First-install downloads are now packaged for Mac and Linux too, not just Windows. Until now a first install on those platforms fetched the whole game file by file from the patch server, which is the slowest path we have.
- Publishing a build can now copy its files to the CDN before the version pointer flips, so players never arrive at a version the CDN has not finished receiving. If a publish would send players to a CDN missing the new build, it now refuses to go live instead.
- Wired the CDN mirror into the release pipeline, so each published build can be copied to the CDN before its version pointer flips. If the CDN copy fails while players are already being served from it, the release now stops rather than pointing everyone at a build the CDN does not have yet.
- Split the largest asset bundles so none exceeds the size a CDN will cache. One bundle had reached 530 MB and was being served straight from the origin server on every request; four more were close behind. Splitting renames those bundles, so the next patch is a larger one-off download, after which patching returns to normal.
- Game downloads now come from a CDN rather than our own server. Patching, repairs and first installs all fetch from the mirror, with the patch server kept as the fallback. Players should see faster downloads, especially outside North America.
Patch server
- Added per-address request and bandwidth ceilings to the patch server, then removed them the same day: the request ceiling was sized for what a patching client was expected to do rather than measured, and it rejected real downloads. See the later note on the 429 errors.
- Pulled a request limit off the patch server that was rejecting real downloads. It was added earlier today sized for what a patching client was expected to do, not what one actually does: a build is around 938 files and each needs its own request plus a small index file, so a normal patch briefly asks for hundreds of things a second. Players patching between 16:12 and 16:57 would have seen a "429" error and stalled progress. Patching is back to normal and the limit is gone.
Creatures
- Fixed opponents in the Courage Club arena spawning inside one of the sealed alcoves around the arena floor, behind a wall that does not lift for that round. Nothing could reach them and the round never finished. Ten spawn points across the arena's four multi-opponent rounds were landing that way, including the named boss rounds.
- Took another look at the Kobold Mage report that came back not fixed. The mages are working. Naryad Woods holds nineteen Kobold Mages and every one of them carries Strength and nothing else, so the Damage Resistance the test asked for could never show up there. Across the world 61 of the 89 Kobold Mages are that kind; an Elder Kobold Mage or better carries both buffs.
- The other half of that report, a mage buffing a kobold at full health while a wounded one stood nearby, is how it is meant to work. Each buff runs a minute and a mage will not cast one on a kobold that already has it, so the kobold that charged in first takes the damage and is out of the running by the time you notice.
- Two tests now hold which Kobold Mage tier carries which buff, and they fail with a note saying the testing instructions have to be updated alongside them. The instructions were the thing that was wrong here, so the checklist for the retest keys on the creature name a player can read rather than the scene.
Launcher
- Launcher build 38 carries the ability to fetch game files from a CDN mirror. Older launchers read the same version file and simply ignore the new setting, so nothing changes for anyone until the mirror is switched on deliberately.
- Launcher build 38 is out for Windows, Linux and Mac. Installed launchers pick it up on next start. It adds the ability to fetch game files from a CDN mirror, which is switched on separately.
Taming
- Summoning, in the Taming tree, was set to convert pooled experience at one eighth the rate of an ordinary skill. A tamer could summon all day and watch the number barely move: 27 casts per level at skill level 100, against 1.35 for Tame Creature in the same school. It now runs at the standard rate, about 3 casts per level at 100. The experience is moved out of your pool rather than created, so the pool drains in step with the skill climbing.
Build
- The chaos build's bundle-skip signature now walks a per-asset dependency cache instead of asking Unity for the recursive dependencies of 78,000 files in one call. On the dev Editor the resource pass's dependency step went from 169 seconds to 71 seconds on a cold cache and 4.7 seconds warm, so the two nightly bundle passes should each lose a few minutes. The old batched call was also the loudest trigger of a Unity 6.6 bug: the new Data Store shared-memory pool logs Failed to free block errors whenever a burst of artifact reads exceeds its 1 GiB. The old call still runs in the shadow for the first nightlies and wins on any disagreement. The build-health notes now describe the noise, and a Unity bug report is drafted for submission.
Crafting
- Recipe names in the book and at the crafting station read as one flat grey for anyone with real skill. Grey meant any recipe you could not fail, and the success chance tops out at 100%, so 84% of the 3,299 recipes went grey at skill 100 and 97% at skill 120. Grey now means a recipe you could still not fail with 50 fewer skill points, so a grandmaster reads about half a page in colour instead of none of it. A brand new crafter sees no grey at all, where a starting recipe used to be greyed before they had learned anything. Reported by gravidy.
- A planter that overlaps another object no longer takes water, and the plants in it stop growing until it is moved clear. Sowing into an overlapping planter has been refused since August; watering and growth were not covered, so planters packed tightly together still filled and ripened on the usual schedule. Harvesting is unchanged on purpose, so a planter that is already overlapping can still be emptied and nothing you have grown is lost.
- Growth that a stacked plant had already made is banked rather than lost: the clock is wound back to the moment the planter was stacked, so a plant left in a stack overnight carries on from where it stopped once the planter is moved, and waiting for a crop to ripen inside a stack does not work. A plant hover now says when a planter is not growing and why.
Guilds & Towns
- Re-scoped the guild and town web portal plan around the owner brief: opt-in by a guild leader or town governor, in-game guild chat readable and answerable from the browser after logging in with game credentials, rosters with online status and last login, per-page privacy settings and a message board. The addendum records that guild chat is already logged server-side and needs one new server operation to reply, that town chat does not exist in the game so town pages get a portal-native board, and that the existing Twitch-drops login layer is reused rather than rebuilt.
- Ran the first census for that plan on the restored live data: 896 guilds, 345 of them with two or more human members and 135 of those active in the last six months; 439 real player-owned towns, 196 with a governor or steward active in the same window; about 17 percent of all accounts registered through Steam and have no usable password, which makes Steam sign-in a launch requirement. Hosting came out at one dedicated 8 vCPU, 16 GB, 240 GB box for the public site plus under a gigabyte on the game host.
- Provisioned the dedicated box for the guild and town portal, the public half of the re-scoped plan: 8 vCPU, 24 GB and 450 GB, a size above the sizing in the addendum on every line. The baseline is key-only SSH, a firewall open on 22, 80 and 443, fail2ban, swap, unattended security updates, nginx and PostgreSQL 16, rebooted and re-verified. No portal code on it yet; the two DNS names, the vhosts and the backup tier come next.
- The guild and town portal site now has a working sign-in at guilds.catnipgames.net: players use the same account name and password as the game, the password is checked once by the game sign-in service through a signed request and is never stored on the site, wrong passwords and unknown accounts get the same message, and five failed attempts lock the account name and the address for fifteen minutes. Both site names carry a certificate, the upload host is a separate cookie-free name with a strict content policy, and the database and nightly dump are in place. Nothing beyond sign-in is open yet.
- The portal box now backs up off-site every night: the backup host pulls the site database dump, the app and its configuration, and the upload tree, and once a week restores the database into a throwaway copy and checks the account and table counts against what the box recorded. The site database is the only copy of what players will write on their pages, so this landed before any of that content exists. The backup channel is a locked-down account that can run exactly two commands.
- The portal site now reads guild data from the game: a public guild directory listing the guilds that are looking for members in the in-game guild finder, a public summary page per guild with its description and member count, and, for signed-in members of that guild only, the roster with character names, rank, join date, last day seen and a dot for who is in the game right now. The reads go through a new read-only broker beside the game database that only the portal box can reach; it names members by character, never by account name, drops banned and test accounts, and hides presence for accounts under a shadow ban. After signing in, the front page names your guild, your rank and any town you govern or hold a role in.
- Guild leaders can now turn on pages for their guild on the portal site. Turning them on creates a public Home page and members-only About and Rules pages; the leader and officers edit them and can add up to twenty more, each with its own visibility (everyone, members, officers, or a hidden draft), and every save keeps a version that can be restored. Text is plain with simple formatting, and anything that looks like web code is shown as typed rather than run. Players also got a setting for whether guild members see their online dot and last-seen date on the roster, or nobody does. Authority follows the game: a leadership change in game moves page control with it.
Gathering
- Fixed planting spots that would not take water. A plant carrying more recorded waterings than its crop currently allows was refused every further watering permanently, with no message, while the soil kept showing dry and the Water Plant option kept appearing. Watering now goes by the growth stage the plant is in, so a spot whose current stage is unwatered accepts water. Plants with ordinary watering histories behave exactly as before.
Tester
- Refreshed the tester roster against live account state. Four testers who were granted the in-game tester tools after the last capture still read as not having them, and two testers added since were missing from the file entirely. The roster is what restores those grants after a database reseed, so the stale rows would have taken the tools back off four people at the next one.
- The tester handbook is now public at catnipgames.net/blog/guides/testing/ and listed as Testing in the header of every work log page. It had lived on the tester hub only, behind a sign-in, so players on Chaos without tester status could not read it. Requested by Wilfred.
- The public page is the same handbook that opens in game with
/guide: same authored text, same generator, same drift test pinning both copies, so the two cannot disagree. It gained a first section covering what the handbook never had to say while it was tester-only, which is that an existing game account and its usual password get you onto Chaos, that the patch notes are the list of what changed in your build, and that/oraclefiles a bug report with no tester status needed. - What to test right now sits beside it: a short list of the systems most worth an hour, kept by hand so it can change without a client build. The verification task board stays where it was, since those tasks are written for testers and some of them cover work that has not been announced.
Web
- Guild website: members of a guild can now read their guild's chat history on the site, the newest lines from the last hour, day, week or two weeks, with new lines appearing every five seconds while the page is open. The reader signs in to the log store with an account that can only see guild channels, so whispers cannot reach the page even by mistake, and lines from muted or banned senders are left out. Replying from the browser is the next step. Tester task #7286.
- Guild website: the reply path is in place and switched off until the server build that carries it is live. A relay process on the game host holds a bot login open and passes lines between the site and guild chat; the site's chat page has a send box that reports the game's answer when a line is refused (muted, no longer a member, too fast). Sends are off by a switch until then, and the page says so.
- Guild website: every guild with pages on now has a message board. Members start threads and reply, officers and the leader pin, lock and remove, and a thread is for members, for officers only, or public. Public posts pass the game's own chat moderation model before they appear, and were refused in testing when they offered gold for real money; members posts appear at once and are checked afterwards. Anyone signed in can report a thread or post, reports land in a studio queue with a takedown that hides the item everywhere, and authors are shown by character name. Tester task #7297.
- Guild website: player-owned towns have pages now. A Player towns list shows all 439 real towns with region and governor, each town has an overview with its message of the day, governor and stewards and resident count, and residents see which of the town's owners are online. A governor can turn on editable Home, About and Rules pages and a Town Hall board for the town, with stewards editing and residents posting, on the same footing as guilds. Names with an apostrophe made a broken link on the site before; fixed on the way. Tester task #7300.
- Guild website: guilds and towns with pages can upload images. PNG, JPEG or WebP up to 3.5 MB are shrunk to 2048 pixels and re-encoded with all metadata dropped, then served from a separate cookieless host with a locked-down content policy. Officers, leaders, governors and stewards publish at once; a member's image waits until an officer approves it. An image link pastes into any page or post, and only links to the site's own image host render as pictures. Tester task #7302.
- Guild website: guilds and towns with pages have a calendar. Officers, leaders, governors and stewards add events with a start, an optional end and place, details, who may see them and an optional weekly repeat; members answer yes, maybe or no and see who is going. Times are entered and shown in each reader's own timezone. Every calendar has a public feed, and signed-in members get a personal feed link that includes members-only events for a calendar app to subscribe to. Tester task #7304.
- Guild website: three smaller pieces. Officers see the guild finder's pending applications on the site (answering stays in the game). Players can opt in to a private in-game note when someone replies in a board thread they posted in, at most one an hour. And every guild and town has a small public data file the planned in-game link-outs can read: whether it has pages, its links, the next public events and the latest public threads.
- Guild website: a staff census page next to the report queue lists what the site holds (communities with pages, threads and posts, images, events, open reports, takedowns, accounts and sessions) and whether each part of the game-side broker is up. Numbers only. Within hours of the town pages going live, a governor had already turned on pages for their town.
- Guild website: a review pass over the day's code found and fixed twenty problems the same evening. Two mattered in production: every board reply had failed on a query formatting error, and any image over 64 KB was refused before the upload code ran. The rest closed gaps in who sees what: page history had shown account names, the studio queue trusted a sign-in snapshot for its staff check, a player banned in game kept a working session, town pages ignored the hide-my-presence setting, removed posts stayed readable by officers, and a sign-out could be forced from another site. Server side, an admin guild rename would have silenced guild chat for everyone online, and the chat relay's long wait would have failed before it ever connected; both fixed before the build ships.
Chat
- Fixed the leading slash going missing when more than one chat window is open. Pressing / seeded the box and the next character typed swallowed the slash, so a command like /time went out as ordinary chat. Players with a single chat window never saw it.
- The cause was the window z-order, not chat. Raising a window rewrites its sort order, which detaches and re-inserts its panel and drops the text cursor; with two chat windows the raise is unavoidable, with one it never happens. Both places that hand focus back now restore the cursor with it, so a half-typed line survives a window coming forward or a popup closing.
Player Dungeons
- Creatures in a player dungeon could move around the room they spawned in but stopped at every doorway, so the only ones that ever left were the ones that teleport. Each room carries its own patch of walkable ground, and the join to the next room was being dropped about 0.7m off it, close enough to look right and far enough to connect nothing: two of every six joins measured were attached to nothing at all.
- The joins now land on the walkable ground of the room they belong to, and the step that works out which parts of a dungeon connect to which now runs after they are made. A creature will follow you through a doorway and along a run of rooms again.
- Four kit pieces had no walkable ground at all, so a dungeon routed through one was cut in half: the Ancient Stone stairs, the Icy Cave Stone ramp, the Marble Green stairs and the 4m Dungeon Stone hall. All four rebuilt, and a test now fails if a new kit piece ships without one.
- Added /verbose dungeonlinks, which lists every doorway in the dungeon you are standing in and says whether its join took. Housing lots have had the same report since the lot-line fix, and it is the difference between answering this in a minute and loading the dungeon in the editor.
2026-09-10 · 69 items
The New Britannia Herald
The engine moves, the fish fight back, and Chaos learns to wait
Headlines
- Checked how far behind our Unity editor has drifted: seven patch releases. Three bugs we had worked around by hand are fixed upstream, four we still carry are not, and two new regressions arrived in the same window.
- Fishing can be lost. The reel meter target zone is a third of its old size after testers landed every fish they hooked, the fish moves twice as fast, and the bobber gets properly pulled under.
- Mounts lean now. Riders and mounts tilt forward off the line, rock back on a stop and bank through turns, with the rider's upper body held closer to upright than the animal underneath. On for testers in the next chaos build.
- Textures were coming out soft on 16 GB Macs. Those machines had half the texture memory they needed, and now have 2048 MB instead of 1024 MB.
- Unity 6.6 marked 15,980 model import-settings files as changed on every machine at once. Proved the rewrite is byte-identical across machines, 0 of 15,980 differing, so it lands once and gets discarded everywhere else instead of merged through a tool that hangs at that scale.
- Windowed mode remembers its size and its position between sessions.
- Builds now go to a QA shard first and reach Chaos only when signed off - the same build is promoted, never rebuilt. Fixed four ways a QA deploy would have hit Chaos by mistake, two silent QA failures that report healthy while every login fails, and three guards a promotion cannot ship without.
Client
- Surveyed the seven Unity 6.5 patch releases between our pinned editor (6000.5.4f1, from July 15) and the current 6000.5.11f1, and wrote up what each one would buy us. Three defects we had already worked around by hand turn out to be fixed upstream: the engine read/write-lock assertion that can run to six figures of log lines in a long editor session, the editor crash on entering Play Mode, and a text-generator crash on fallback fonts with a missing source file.
- The same write-up is explicit about what a version bump would not fix, so nobody expects it: the terrain bundle-writer crash, both font-atlas generation crashes, the cloth coefficient remap and the audio playback workarounds are all still open in 6000.5.11f1. Two regressions arrived during that window and need measuring first, one of them
Resources.UnloadUnusedAssets()running significantly slower in player builds. - Settled a question left open in July. The dungeon set models import with zero LOD groups on Windows as well as on macOS, so the behaviour is not platform-specific: 825 renderers and 266 LOD-named nodes, and not one group generated. A control scan of 400 other models found two that do carry LOD groups, so the measurement holds rather than the query being wrong. The dungeon pieces need a re-export or authored LOD groups.
- Unity 6.6 turns out to have shipped on August 31, which under Unity's support model ends the 6.5 patch line, so the 6.5 release we are looking at is probably the last one we get. Weighed 6.6 as the target instead. The API port is close to free: its headline removals are all in the InstanceID to EntityId transition we already completed for 6.5, and the replacement call is already used 149 times across 64 files.
- Recommended against 6.6 anyway, for reasons that are about serialization rather than APIs. A minor version bump rewrites serialized asset formats far more broadly than a patch bump, the project-wide reserialization that implies is still blocked on the Perforce cutover, and 6.6 stops getting patches as soon as 6.7 lands. Taking it would mean paying that cost twice in about a quarter. The plan is the 6.5 patch now and 6.7 when it arrives.
- Opening a book in the full screen reading view no longer makes it jump sideways on the last frame of the opening animation. The camera pivot was being re-anchored to each animation state in turn; it is now placed once and held.
- Login no longer waits on itself while loading the options window. The prefab was being fetched synchronously while other front end loads were still in flight, roughly once per client boot across builds 183 to 185 on all three platforms. It is now requested with everything else during preload.
- Cleared the errors the Unity 6.6 import left behind, so the project compiles again. Most were the same root cause in vendored plugins: an old numeric identifier conversion that 6.6 turns from a warning into an error. The tempting shortcut would have been to silence it, but the replacement throws outright when called, so silencing it would have compiled and then crashed at runtime. Removed the conversions instead.
- Also cleared the warnings that were safe to clear, and deliberately left the ones that were not. One in particular is a real defect rather than noise: two fields on the rune animation data claim the same saved name, so older rune assets can load into the wrong one. That needs a decision about which field keeps the existing data, so it is written up rather than guessed at.
- Turned the mount movement lean on for the next chaos build. Mounts and riders tilt forward when you set off, rock back when you stop, and bank into turns, while the rider's upper body stays closer to upright. It went in last week switched off; this flips it on so testers meet it.
- Filed a testing task for it. Testers get one fixed amount of tilt rather than a slider, because the shard has no way to retune this one from the server side: the value is compiled into the client, so moving it means a new build. Wiring it up for live tuning is the follow-up if the feedback lands on "close, but not quite".
- Only your own mount leans in this build. Other players ride level until the tilt is driven from the movement data that already crosses the wire, which is separate work. The testing task says so up front so nobody spends a session reporting it.
- Macs and other machines that share memory between the processor and the graphics chip were running out of room for textures, so the game kept swapping in lower resolution versions of them. A week of client telemetry showed a 16 GB Apple M4 dropping detail in 100% of 1,472 readings across ten scenes, up to 687 MB at a time, while every machine with a separate graphics card dropped none across 4,000 readings. The share of system memory those machines set aside for textures is now double what it was: 2048 MB at 16 GB, 3072 MB at 24 GB, unchanged at 512 MB below 12 GB and unchanged at 4096 MB from 32 GB up.
- The game window now comes back at the size you left it. In windowed mode the saved size was discarded whenever the client could not read a refresh rate for the display, and once that happened it stayed discarded, so every launch afterwards opened at roughly desktop size. The size also only reached disk on a clean quit, so a crash or the launcher closing the game for a patch lost it.
- Windowed position is saved now as well. The window goes back where you left it at launch, clamped to the desktop you have today, so a monitor that is no longer plugged in cannot leave it off screen.
- Startup logs the window size that was on disk, the size the client asked for, and the size the operating system actually granted. A window that comes back wrong can now be diagnosed from a player log instead of guessed at.
Content
- Corporal Heloise's Solace Bridge Outskirts heirloom task now closes when the player hands an heirloom to Heloise, not when one is sold to Hartley across the swamp. Selling to Hartley used to mark Heloise's task complete on the side, and handing to Heloise set a flag her entry did not watch.
- Removed eight leftover vendor greetings, one each from the public and sales vendors in Ardoris, Etceter, Jaanaford, Kiln, Kingsport, Owls Head, Solania and Vertas. Each vendor had two copies of the same line and the older copy was attached to nothing, so no player could ever have seen it. Before deleting each one the check confirmed that a live greeting remained, since removing the wrong copy would have left a vendor nobody could open.
Tooling
- Five audit scripts still pointed at a Unity editor version we stopped using in July, and would have failed outright on any machine that had cleaned the old one up. They now read the pinned version out of the project the way the test runner and compile checker already did, so the next editor bump is a one-file change instead of a six-file one.
- Installed Unity 6.6 alongside 6.5 on the Linux build node and the Mac agent, ahead of moving the project onto it. Both keep their existing editors, so a rollback is one setting. Verified each one actually launches and reports the right version rather than trusting the installer, and confirmed the build licence carries over without re-activation.
- The Mac install lied. Unity Hub reported every build module installed successfully while the editor was missing four of the five, at 10 GB against the 21 GB the old one takes. A second targeted pass placed them properly. Wrote up both that and the interactive architecture prompt that silently blocks a headless install, since the third machine has the same trip hazards ahead of it.
- Pointed the Linux and Mac build agents at Unity 6.6 now that the project itself has moved, and swept the version references that follow: the provisioning script, the audit tools that hardcoded an editor path, and the setup docs that told a new developer to install the old one. The two Windows agents still read the old editor and are the remaining piece.
- Removed the old Unity 6.5 editors from the Linux build machine to match the Mac, so anything still pointing at the previous version now fails outright instead of quietly building on it. About 70 GB came back. Checked first that nothing was mid-build and that the build licence lives outside the editor folder, then confirmed 6.6 still starts and still holds its licence afterwards.
- The nightly release job went red on the first build after the Unity 6.6 move. The Linux client build was still launching the old editor, which had been deleted earlier that day, so it failed instantly and cancelled the Mac and Windows legs with it. Repointed every build node at the new editor and confirmed all five.
- The cause was a check that lied. Asking Jenkins for the controller's own settings returns an error rather than a document, and an empty answer reads exactly like "no setting here" - so the one node that actually runs the Linux builds got missed while the agents that do not run them were updated. Written up in the runbook with the label routing that makes the controller the real Linux builder.
- The localization drift check had been red on every commit that touched client scripts, with its ratchet set at 51 while the code carried 60 strings built as untranslatable text. All 60 turned out to be GM tools, debug-only diagnostics, or dead commented-out code, so the baseline moved to 60 and the check passes again.
- Cut eleven strings out of the untranslatable-text count. Four sat in a commented-out block in the chat code that had been dead since it was written, and seven were duplicate copies of one GM clipboard confirmation, now declared once and shared. The ratchet moved from 60 down to 49, below where it had been stuck.
- Moved the "future improvements" lists on the mount design docs out of private notes and into the committed documents themselves, numbered. The numbers get used in conversation, so they need to mean the same thing to everyone reading the repo rather than to one machine.
- That surfaced a duplicate. Two of the lean plan's remaining phases restated what had become numbered improvements, which is the same problem one layer down, so the phases now point at the numbers instead of repeating them.
- Standardised the status wording on the mount design documents to one set of seven terms, so a list of plans can be read at a glance instead of seven different phrases that all roughly meant "not started yet".
- Gave the design plans a front page. They were reachable only through a link buried among about 150 unrelated engineering documents, which is exactly as findable as it sounds. The new index groups them by type, sorts each group so nothing moves as plans are added, and shows each one's status and what it is carrying forward.
- Renamed the design plan index so the filename says what it is instead of being a generic folder readme sitting among 150 unrelated documents.
- Unity 6.6 changed the serialized format of the model importer, so the editor reimports every model in the project and rewrites its import-settings file on the way through. That marked 15,980 of the 15,992 model settings files as changed at once, on every machine running the new editor, which looked like a 16,000-file merge. It was not one. Compared one machine reimport against the version another machine had already committed, file by file, and 0 of 15,980 differed. The rewrite is deterministic, so it gets committed once and discarded everywhere else.
- Checked what the 15,980-file diff actually contained before trusting it, and it came to four things: the format version stamp, two new 6.6 fields written at their defaults, a "u" suffix the new serializer appends to one packed hex field, and long values the editor no longer wraps onto a second line. That last one accounted for all the skeleton-path and rotation churn, where the values are identical and only the wrapping moved. No number was re-rounded and no asset reference was dropped.
- Wrote down how to handle the next importer version bump. Merging a wave like this is the one route that will not complete: the Unity YAML merge tool is configured for these files and hangs without output, so 16,000 conflicting files stall there. The documented route is to discard the local copy first and fast-forward with the editor closed, with a check that proves the local copy is redundant before anything is thrown away.
Tools
- Eighteen skills-window layout tests have been re-greened; a static constructor threw the moment a test built the window on a panel, which had kept the header-shrink rules and the tool-slot geometry from being checked since the specialization bar arrived (#7086).
- A regeneration of the code-string localization records had been adding verbatim duplicate copies of records whose duplicate-text marker just started applying to them. The guard now compares records by id alone, so a record cannot look deleted just because it gained the marker.
Combat
- A summon or tamed pet whose owner is standing where nothing can stand, such as on top of a tall stack of stone cube decorations, is no longer teleported to the owner every twenty seconds by the leash breaker. The earlier pass on this handled the pet recall path; this pass covers the leash breaker itself, which was the twenty-second cycle that remained. The pet is now either sent to its home spawn point or left standing on the ground where it already is, until the owner steps back onto ordinary walkable ground.
Fishing
- The fishing reel meter can be lost now. Testers on chaos build 187 landed every fish they hooked, so the target zone dropped to about a third of its old size: at Fishing 130 it covers a fifth of the tension track instead of 59 percent of it. The fish swims nearly twice as fast at the easy end, changes direction every 1.2 seconds instead of every 2.5, jumps further and dashes more often. Reported by Vesper and Justyn.
- The fight budget moved with the smaller zone. The fish tires after 8.5 to 11 seconds of good tracking instead of 9 to 20, the line survives 24 seconds out of the zone instead of 15, and holding the bar on the fish now gives 2 percent of the line back each second. Bites are offered 1.7 times as often as on a passive cast instead of 1.5, which covers the fights that are now lost. Common fish are still landed almost every time; the losses sit on rare and trophy fish.
- The bite is easier to see. The bobber used to reach its dip depth in a single frame, which looked much like the decoy shakes between bites. It is now pulled 0.75 metres under over about a quarter of a second, more than twice as deep as before, and worries up and down while it is held there. Reported by Vesper and Zealot.
Client
- Zone-in frame rate returns to normal right after every load. A stranded loading override left the client running at the loading-screen frame rate for up to ten seconds after the world was already visible, on any load that bounced or recovered instead of finishing normally. Fixed at the root; the watchdog log line that used to clear it is gone.
- The refusal that fires when you try to move your house onto a spot with a yard item still under the footprint now names the item in the popup. With one to three items in the way the popup lists them by name; four or more falls back to the previous generic text, and the offending items are still tinted red in the world while the ghost stands on them.
Tools
- Forty-six of the forty-seven fishing numbers are on the in-game /tweak console for testers, grouped by bite, hook set, bobber, target zone, difficulty, fish, bar, fight and clean catch. The list is generated from the shard tunable definitions, so the ranges and the help text cannot drift apart from the values the shard actually runs. Requested by Vesper.
UI
- Book chapter headings and the large decorated first letter now show the same manuscript red on all seven UI skins. The colour had been declared as a per-skin token but never defined in any skin sheet, so every skin except the default one fell back to the default value.
Design
- Costed out a rideable bear on paper. The mount system keys animation off a shared rider pose rather than a per-mount id, so if a bear can sit on the pose the big cats already use, the whole job is art and data with no engineering. That is the same trick the rideable chicken uses, sitting on the stag's pose.
- The awkward finding: the bear ships no riding animations, only creature ones. That turned out to be survivable, because the chicken mount was built the same way from ordinary walk and run clips. The bear also has a rear-up and a drop-back-down that should read well as climbing on and getting off.
- The plan argues mostly about order. Measuring a bear's back against the big cat saddle height is about half a day and decides whether any of the rest is worth doing, so it goes first, before an artist touches anything. Nothing is built and no bear, saddle or price has been picked.
- Wrote up a mount with no mount: the player holds an open umbrella and floats a foot or so off the ground, drifting as though the umbrella were towing them. Approved as a concept, nothing built yet.
- It turns out most of the pieces are already in the game. The open-umbrella emote exists for both characters, four umbrellas are already held items including a dyeable one, and the umbrella prop has its own open and close animation.
- The coconut halves settled the design question. They are already a mount with no model, driven by what you are holding, so the umbrella can follow the same route and hang off a hand instead of being bolted where a saddle would go.
- One thing got cut. The first sketch had the body start moving half a second after you pressed a key, so the umbrella appeared to pull you. Delaying movement reads as an unresponsive mount, so instead the arm reacts the instant you press a direction and the body eases up to speed behind it. Same look, no lag.
Build & Deploy
- Fixed four ways a deploy aimed at the QA shard would have hit the Chaos shard instead. The deploy script resolved its target host without being told which shard it was deploying to, so it fell back to Chaos every time: the "patch incoming" broadcast went to Chaos players, the post-deploy smoke test connected to Chaos and reported a pass while QA went untested, and the log build stamp overwrote Chaos with the QA build number. The shard argument is now required rather than defaulted, so a future step cannot pick the wrong shard by leaving it out.
- Two silent failures on the QA shard fixed before they could bite. The cluster was never told where its login mirror lives, so it used the Chaos shard's internal address - a machine that does not exist on the QA box. That fails invisibly: the cluster reports all seven processes up, every registration check passes, the automated login probe passes, and only a real player login fails. The start script now tests the mirror before starting. Separately the QA login door defaulted open; QA now starts testers-only.
- Nightly builds now go to the QA shard first instead of straight to Chaos. Chaos moves only when a build is signed off, and the promotion reuses the exact build that soaked on QA rather than rebuilding it. Three things had to change before a QA release was even possible: the QA patch channel refused the build flavour Chaos requires, so one build could reach either shard but never both; the build numbering read only the Chaos channel and would have refused every nightly once Chaos fell behind; and neither build job had a way to say which shard it was targeting.
- Build numbers now come from a durable ledger rather than from whatever the patch channels currently say. Channel pointers move backward - rolling a bad build back is the routine operation on a test tier - and numbering from them would have re-issued a number that was already published, which the republish guard would then refuse every night until someone cleaned up by hand. The ledger records every number ever issued and survives both a rollback and the retention prune.
- Fixed a way the new QA nightly would have quietly broken first-time installs on Chaos. The full-install download on the CDN kept only the newest build per platform, so a QA build would have deleted the archive Chaos was still pointing at - every new install would fall back to fetching about 16 GB file by file, with no error anywhere. The cleanup now keeps whatever any live channel still references.
- Retrying a failed promotion used to break the rollback button in a way that only showed up when it mattered. Flipping a channel to the build it was already on archived that build as if it had been replaced, so the one-click rollback then pointed at the current build - it would flip, report success, and change nothing while players were still locked out. A flip to the version already live is now a no-op, with a test guarding it.
- Patch notes would have started omitting whole builds once Chaos stopped updating nightly. The notes for a build are generated against the previous build in the ledger, which under the new model is a QA build nobody could install - so the notes for a promotion covering four nights would have listed one, and a short page looks exactly like a quiet week. The range is now measured from the last build that actually reached players. Regenerating all 116 existing builds produces byte-identical pages.
- The build ledger can now record that a build was promoted, not just where it was first published. Re-recording a build under a second channel was silently ignored because the code stopped as soon as the commit matched, so a build promoted to Chaos would have kept saying QA forever. The ledger is the only durable record of what happened to a build number, and "soaked on QA and never shipped" needs to be distinguishable from "went to testers".
- Deploys now refuse to restart a shard onto a build whose database migration nobody ran. No deploy path had ever run one, which was survivable while Chaos updated the same day a change landed - the person who wrote the migration was the person watching the deploy. A build that soaks for days and is then promoted by someone else breaks that. The check compares what the shard is running against what is about to land on it and lists every migration in between, with the exact command to run.
- The migration check reads its answer from git history rather than a column somebody has to keep up to date: the commit that added a ledger row is the commit its migration shipped with. Tested against real history, it finds exactly one required migration across a 400-commit range and fails loudly rather than reporting all-clear when handed a commit it cannot resolve.
Documentation
- Wrote up the QA shard and the promote recipe. The box has been running since the start of the month but appeared in one tracked file with no bringup notes, and the directory holding the only copy of its hand-assembled configuration drifts further from anything reproducible on every deploy. The page covers both tiers, the QA client, the four-step promotion, and the emergency recovery step that was in nobody's head.
- The October release plan still said the QA shard did not exist and that only Chaos could be deployed to. Rewritten against what is actually built, with two decisions written down rather than left as assumptions: a third tier is deferred rather than designed for, and the separate release branches are deferred too since a build is already identified by its commit and its ledger record.
Tester
- Testing tasks now show a third state. A task said either "not on chaos yet" or "chaos build N or later", which was fine when those were a day apart; now that a fix soaks on an internal shard first, "fixed and in internal testing" is a real state a task can sit in for days, and it used to be indistinguishable from a fix nobody had started. The line still keeps tasks out of the Live-only list, since a tester still cannot test them. Requested by nobody in particular, but testers would have noticed the silence first.
- Fixed a check that would have started holding tasks it should not. The sweep refuses to mark a task ready when a tester has reported it failing more recently than the fix was written - reasonable when a fix reached Chaos the same night, backwards once builds soak first. A tester on the older build reporting "still broken" is correct and says nothing about the fix. The comparison now measures against when Chaos actually started serving the build.
- The tester handbook promised that a fix "never stays hidden for long", which stops being true when a build soaks before it ships. Rewritten to describe all three states and to say plainly that soaking first means a build arrives a few days later and in better shape. Also re-exported the web copy of the handbook, which had drifted from the in-game text on an unrelated line.
Security
- The security preflight can now be aimed at the QA shard, which it could not be at all before. That box holds a restore of real account data behind public DNS and is about to start taking an automated nightly build, so it needed a written-down expected posture the same as every other machine. Measured off the box rather than copied from the Chaos shard: QA is genuinely smaller, with no log cluster, no search index and no virtual machine.
- The shard check is now one function taking the shard as an argument rather than a copy per shard, so the two cannot drift apart. Checks a shard does not need are skipped when its posture says so, which fixed two problems: one missing section was a hard error that killed the run part-way through, and a run that stops early looks exactly like a run that passed. The other produced two permanent warnings that only meant "this is not the Chaos shard", and a warning nobody can act on is one everyone learns to scroll past.
2026-09-09 · 164 items
Headlines
- The bard bar is switched off: gone from the window list, from Options, and from the Skills window, and closed for anyone who had it open. Nothing was deleted, so it can come back holding what it held.
- 3D dungeon maps rebuilt watertight. Every dungeon map surface rebaked with shared vertices and stitched rectangles: the streaks across floors, the slanted sheets beside corridors and the pit under the dragon skeleton in The Rise are gone (#3140).
- The male tavern bartender in player-owned towns walks again. His prefab carried a walking speed of zero, which pinned him on one spot and had him filing 422 identical warnings in four hours.
- Hide Helmet and Hide Cloak get controls you can see: a Worn Gear row in the deck builder that cycles Follow Character, Shown and Hidden, a way back to your character setting on the head and cloak slot menus, and Show Helmet and Show Cloak rows in Options.
- The Edit Deck glyph count stopped showing a limit the game does not have. There is no maximum deck size, and "18 of 23 glyphs" made a larger deck look broken.
- Lord Delbert Enmar stopped handing out a journal entry that has read [deprecated] for years. It is the first of two live grants of a dead entry, both found by marking the dead entries obsolete so a stray one announces itself.
- Lots are no longer sold between players in NPC towns, and four ways around the lot auction are closed.
- Fishing is a mini-game now: watch the bobber, hook the dip, keep the tension bar on the fish. The fish got away is a real sentence again, and a clean land pays extra experience.
- Twenty-eight spell and creature effect rigs got their sound back: the delay list was shorter than the source list, so the effect system skipped the sound on every reuse after the first.
- Every pet moved at the same top speed, because that is how we made small ones keep up in September. A sheep is a sheep again: all 71 tamed animals, summons and companions are back at their own speeds, and a slow pet borrows only as much speed as walking beside you needs.
- Skills window hover text stopped blinking. Reported three times over a month as tooltips drawing behind the window. The draw order was measured sound twice and was never the fault: the tooltip was rebuilding itself four times a second, and the line behind it showed through the gaps.
- A gathering node's experience now scales with how far its Meticulous Collection chain ran, and a finished node prints a line saying what it paid.
- Cleared all 146 NPC conversation topics that were offered with no answer behind them, by writing the answer, removing the topic, or deleting the unwritten stub it lived in.
- Sieges end when the Cabalist falls again, including when nobody could be credited with the kill. One town had been besieged since August 30 by a boss who died on arrival every time the room opened.
- Pets cross property lines again. Every lot in Owl's Head turned out to be a navigation island: the crossings joining a property to its town were placed 2.3 cm to 37 cm off the walkable ground, so none of them joined anything and a following pet stopped at the fence.
- Search boxes on every vendor list that lists goods, including the two tabs you list from, where the catalogue of orderable items had no way through it but the scrollbar.
- Decoration layouts stop floating gustballs: the 717 ground-clearing decoration types no longer skip the surface check when they were saved on a floor.
- The settings window can be searched. One box under the tabs narrows every page, tells you which other tabs match, and understands the words players type instead of the label - "fov", "fps", "gamma", "hotkey".
- The Interface settings page is grouped: the General heading that had swallowed 32 unrelated settings is six named sections now, alphabetical inside each.
- Helmets stopped taking heads with them. Dragging a helmet you were wearing out of your pack and into a crafting table left a dressed body with no head, no hair and a pair of floating eyes until you changed zones. Putting the body back underneath a piece is now the same shared step on every route an item can leave a slot by.
- The note keyboard prints your own keys instead of assuming 1 through 8.
- Fifty books nobody could ever reach are now sold in shops or found in the world, including seven lost miners' letters in the Crag Mines.
- Alchemy bombs throw straight from your bags in a fight. Reported by a player who could not use one at all, and the bag double-click turned out to be the only surface that refused.
- The automated bug loop had been reading reports without ever seeing the screenshots attached to them. Forty-one of the sixty most recent open in-game reports carry an image, and on a visual bug that image is usually the only record of what the player saw.
- Quick Deposit no longer stops half way when you close the chest and move on to the next one.
Combat
- Siege creatures now leave bodies that can be looted. The Cabalist holding a besieged town and every cultist in his three rings were killable but not lootable, because the town's loot list had never been told about the creatures a siege brings in with it. Their drops are now listed for every town a siege can land on, the game's own towns and player-owned towns alike. (#7001, reported by Joe Z)
- Ice Fist, Ice Arrow and Field of Ice handed a target debuffs that ran out at different times from one cast: the slow lasted 1:17 while the attack speed and dexterity debuffs lasted 1:06, and Field of Ices water resistance debuff outlasted the chill that carried it. Every debuff an ice spell applies now expires with the chill.
- The floating words for a missed, dodged, parried or blocked attack are now drawn at a larger size, the same size the word Cover has always used. They previously shared the base size with the rest of the combat text, which left them smaller than the damage number appearing beside them for the same hit. A dodge also plays its sound again; it had been wired to the wrong outcome and was the only defensive result in combat that happened in silence.
- Calling your pet to you no longer drops it back into a hazard. The recall picks its landing spot from a ring around you, and that ring now skips anything inside a damaging field such as lava, a fire vent or a spike floor, so one press gets a burning pet out instead of six. Fields that only buff or slow, like shrine blessings and attunement circles, are still fair game, and if you are standing in the middle of the hazard yourself the pet still comes to you.
- Poison potions can now be placed in a combat deck. Dragging one onto a deck slot used to do nothing and say nothing, while the same potion worked from the utility bar. All ten are covered: the plain Poison Potion, Stinging, Deadly, Numbing, Corpion, Aether Corpion, Spider, Chaotic, Festering and Shadow Poison.
- The Cabalist holding a besieged town no longer stands in the middle of the town devotional. The earlier fix only moved him when a body would not fit where he was standing, and the middle of a shrine is just wide enough for one, so he kept ending up down inside the stone where he could not move and was awkward to hit. He is now kept clear of the whole shrine and settles on open ground beside it.
- Fixed a second siege problem reported alongside it: once the Cabalist reached the shrine, the spot the game treated as his home could revert to the town entrance he arrived through, which dragged him and his army out past the edge of the map where nothing could move. The shrine is now his home, so pulling him off it brings him back to the shrine.
- Knockdown now keeps a target on the ground for about five seconds. The duration formula was grouping its terms wrongly and produced a twentieth of a second, so the falling animation played and the enemy was up and swinging before it finished. The wild dog and kobold brawler knockdowns share the same timing and now hold a player down for the same length, with the usual jump-to-recover and crowd control resistance still applying.
- Revenant Stance now takes hold the moment its cast ends. It used to wait a further second while the caster was already free to act, so a player who changed their mind and took another stance in that second saw it come up and then get pushed back off when Revenant Stance finally landed. The two second cast is unchanged.
- Alchemy bombs now throw straight out of your backpack during a fight. Double-clicking one used to refuse and tell you to add it to your combat deck, even though the same bomb thrown from a deck slot or the utility hotbar already worked. The shared 20 second lockout across all four bombs is unchanged, and every other consumable still waits for a slot.
- Dying with a bomb's aiming circle still up used to leave the aim armed, so the first click after respawning threw the bomb at whatever was under it. Death now cancels your own reticle. Bomb tooltips also stopped saying "Double-click to consume" and now read "Double-click to throw, in or out of combat".
Content
- Marked four dead journal entries obsolete so a stray one is impossible to miss. The game wraps an obsolete entry in a loud marker naming its number, which turned up something worth chasing: two of the four are still handed out, one by Lord Delbert Enmar in Owls Head and one by Sid in the Lich Dungeon. The entries were already empty placeholders, so the grant is the real bug and now it announces itself.
- Lord Delbert Enmar no longer writes journal entry 68 into your journal when you ask him about the undead in Owls Head. That entry has read [deprecated] for years and was marked obsolete earlier today. His spoken answer is unchanged, and his bandit and Ravensmoor topics keep their journal entries, which are both live. Sid in the Lich Dungeon still hands out entry 267.
- Split the NPC dialogue lines that were wired to several conversation topics at once, so every topic now owns its own copy of the answer it gives. This was a storage change with nothing to see in game: 95 shared lines became 168, across 52 NPCs. The Oracle in Ardoris was the extreme case, with one polite refusal to gossip serving eighteen different subjects.
- Started clearing NPC conversation topics that had no answer written for them. Raising one already fell back to the NPC saying they did not know, so nothing was broken, but the topic was offered as though there were something to hear. Burnside and Guard Captain Hamtooth in The Clink no longer bring up the throne of bone, Kingsport or Brittany, and four guards in Valhold and Estgard no longer offer prophecy. Also removed four conversation files that were empty authoring templates nothing referenced.
- Removed three Blood River NPC conversations that were never written. Ariana, Rorium and Young Elf each had the standard list of conversation topics and not one answer between them, only a single bark line repeated across all three. Nothing in the game referenced any of them, and the depot history shows no one had added content since the files were created in 2015.
- Pintar in Ardoris now has something to say when you ask him about the Oracle, and Blackpond in Owls Nest now answers about the Avatar with a line that had been filed under Lord British by mistake. Blackpond also got a new, shorter answer about Lord British to replace it. Three other NPCs stopped offering topics they had never had an answer for.
- Gave six NPCs an answer for a topic they had been offering with nothing behind it. Jack the Lamplighter and Kendra Trueshot in Owls Head can now talk about the ships that stopped reaching Kingsport, a subject four of their neighbours already discussed. The prison guard in The Clink now acknowledges a thank you and a refusal, Ellery in Ardoris has something to say about outlanders, and Guildmaster Cai Lau about the Oracle.
- The children of Harvest can now tell you that Grannus lives in Valhold and that they like fishing in the Abundis River. One shared conversation covers all fourteen of them, and their counterparts in Estgard already answered the Valhold question, so Harvest had been the odd town out. Min Liang Tan in Ardoris now has a word about Warlord Banting, and Myra the Farmer in Owls Head will finally tell you about her job.
- Finished clearing NPC conversation topics that had no answer written for them. There were 146 at the start and none are left. Most were in authoring templates and unwritten stubs that nothing referenced, twenty two were topics quietly removed from NPCs who had nothing to say on them, and ten were given real answers. The last was Commander Kormag at the Kobold Expeditionary Camp, who listened for questions about a weapon that features nowhere in his story.
- Thomas Strongbeard in Owls Head now answers the players Flynn Gilson sends him. Flynn in Braemar asks you to find out why his ale shipments stopped, and Thomas had a reply written for exactly that moment, recognising Flynn by name and pointing you on to Abbott in Kingsport. It was attached to nothing, so it never played, and the generic reply he gave instead is the one deliberately reserved for people Flynn did not send. The journal note that came with it had been unobtainable too.
Player-owned towns
- Squared the town documentation with the change that made a town read its governor and size from the database: the committed editor asset is now the factory default a build ships with, not the source of truth, so a stale copy of it no longer makes a running town wrong. The runbook keeps the manual refresh for seeding that default, and the tracker item asking for the old refresh to be automated is closed as unnecessary.
Client
- Fixed the big cat mounts freezing mid-stride. A ridden Black Panther, Jaguar, Lion or Snow Leopard could stop animating and slide along the ground while its footstep sounds carried on, most often after a jump. The mount you are riding now always animates, whatever the camera is doing.
- Fixed decoration pets placed on docks walking off the edge, dropping into the water and snapping back to the dock. A patrolling pet was picking spots on the lake bottom underneath the dock, five metres down, because the check that keeps its wander spots on walkable ground only measured sideways. It now also refuses a spot that sits well below the surface the pet is standing on, so a pet on a dock patrols the dock, and a dock too small to patrol leaves it standing and playing its idle animations.
- Fixed the automatic AFK flag never coming on after a scene change: the idle timer was measured from the start of the current scene while its record of your last activity came from the scene before it, so travelling could suppress the flag for as long as you had spent in the previous scene. Reported as the flag not working with the Options window open, which turned out to be unrelated.
- Moving a house now notices decorations stacked on top of other decorations, not just the item at the bottom of a stack, so a building can no longer be parked clipping through the upper half of a pile of yard deco.
- The message that refuses a house move because something is in the way can be closed with its OK button or with Enter again. It was reopening itself as fast as you dismissed it, which left Escape as the only way out.
- Filled in the rest of the corpse loot refusals. A body someone else already has open, one that has started fading, one whose loot has not finished arriving, and a click made while your character is already busy each show a short message above the hotbar now instead of the click doing nothing. A corpse out of reach still shows nothing, so the character walks up to it as before.
- The floating For Sale banner over a lot sign now turns to face the camera up and down as well as side to side. Held strictly upright it flattened out as soon as you looked down at the lot from above, and the asking price became unreadable. It tips about its own bottom edge, so it still cannot drop back into the sign board.
- A mount set to Lock To Inventory can be summoned again. Locking a mount used to refuse the summon with a line about not having the required item, while the mount sat in the pack; the lock now only hides items a cast would actually use up, and a summoned mount stays in the pack the whole ride as it always did.
- A Potion of Regeneration drunk at full health used to put a "0" over your character every ten seconds for the full hour it lasts, which looked like the potion healing you when it was not. The wasted-healing number now appears once when a heal lands with no room for it, and one-shot heals still report theirs as before.
- Fixed sound effects cutting out on and around a heavily decorated lot. Footsteps, weapon hits, containers and doors went quiet while the world ambience kept playing, because decoration that makes a continuous sound was competing for the same fixed pool of simultaneous sounds as the game's own effects and taking all of it. Placed decoration now ranks below those effects, so it cannot crowd them out however much of it is on a lot. Reported by Furious Farmer.
- The Achievements journal now names its categories in the language the game is set to. Combat, Crafting, Bestiary, Fishing and the other twelve were reaching the category list as English regardless of the player's language, and the tier count under each achievement was too; all of it is translated in the eight shipped languages now, and the A-Z sort orders by the translated name. Achievement names and their descriptions are still English everywhere, on a separate pass.
- Cancelling out of the Magic Mirror on the Isle of Storms now leaves your appearance alone. Toggling gender while the mirror was open used to apply that switch, and reset most of your other choices, even if you backed out with Cancel instead of Finish.
- Setting a decoration down beside another one no longer joins the two into a single group. Building blocks pushed up against a neighbour were attaching themselves to it, so picking up one lifted both; placement now reads only what is genuinely underneath an item.
- Options now carries a Catchphrases volume slider on the Audio tab. It scales spoken catchphrases from you and from other players, takes effect while a phrase is playing, and covers the Preview and Play buttons in the Catchphrases window. The Player Catchphrases on/off toggle is unchanged.
- The moss hanging from the giant banyan trees in North Celestial Wetlands keeps its detail when you stand under the canopy. The strands share a texture with the leaves, and the game had been allowed to serve a reduced copy of it, so the strands read as smooth tubes while the bark on the same trunk stayed sharp. Reported by a player standing under one of them.
- Images: the same banyan strands with the reduced texture and at full detail.
- The message the Kobold Expeditionary Camp arena shows when it will not start a wave battle now has a record in the localization database, so it can be translated. English wording is unchanged; before this every other language would have kept reading the English line permanently.
- The Video options tab has its own V-Sync checkbox now, sitting under Frame Rate Limit. Until now "No Limit" handed the pacing back to the display, so the game waited on the monitor refresh and a 60Hz screen sat at 60 frames per second with no way to say otherwise. V-Sync starts on, which is what everyone has been running; turn it off with No Limit picked and the client draws as fast as the machine allows.
- The railings on the stone bridge at Solace Bridge Outskirts were loading at half the resolution the artwork was drawn at, which left them noticeably softer than the road surface and the wall face right beside them. They now load at full resolution, along with the same railing stonework used on nine other bridges, a door, the city kit and the BlackStoneBluff houses.
- Your character keeps its head when a worn helmet leaves your pack. Dragging a helmet you had on straight from the backpack list into a crafting table, a vendor window or your bank took the head, hair and beard with it and left a dressed body with a pair of floating eyes until you changed zones. Reshaping a helmet was the usual way to run into it, since a helmet has to be out of your pack before it can be reshaped. Taking the helmet off from the character sheet first was never affected. Taking a piece off and putting the body back underneath it are now one shared step, run on every route an item can leave a slot by, so the hood on a cloak worn under a helmet comes back too.
Creatures
- The Hacked Watcher and the four Hacked Spiders backed off to five metres before attacking, then swung anyway with an attack that only reaches two. Their attack was advertising a minimum range it never wanted, which was also the only thing keeping the Watcher airborne until flight got its own setting. The minimum is gone, so all five now close to contact, and the Watcher still never lands.
- Undead spellcasters and archers taunted almost never in a fight. A creature only spoke a queued combat line while it was walking toward you, so anything that held its ground and cast or shot stayed quiet for the whole fight, and the first line it failed to speak blocked every later one for the rest of its life. Skeleton mages, lich mages and lich archers now taunt on the same rhythm as the melee undead that always worked.
- Pets and companions have their own speeds back. A change on 1 September raised all 71 tamed animals, summons and companions to the same top speed so small pets could keep up with a running player, which flattened the lot of them and had chickens sprinting faster than the person they were following. Solace1369 reported it. Each creature is back at the speed it was built with, and the keep-up allowance now lives in the follow code: a pet slower than you may travel faster than normal only while it is beside you, capped at your speed plus a quarter, and it drops back to its own pace the moment it stops following.
- Pets follow you on and off a player property again. A property has its own walkable ground, joined to the town around it at a few crossing points along its edge, and those crossings were being placed on the collider surface rather than on the walkable ground itself. Measured on four Owl's Head lots, the town side of every crossing sat between 2.3 cm and 37 cm off, which is far enough that none of them joined anything: every property in the town was an island, so a pet walked to the fence, stopped, and waited to be teleported. Crossings are now placed on the ground they have to join, and the town side is looked up rather than assumed to be the first navigation graph, which 53 of the 411 baked scenes contradict. (#6674)
NPC speech
- A bark could play its voice line while its overhead text and chat log line were held back, so you heard a creature speak and saw nothing. The words and the voice are now decided together, above the turn-taking rule that arbitrates who speaks. A line nobody can see is dropped before it takes a turn, so it no longer costs a creature you can see the line it would have had.
Server
- Changing the asking price of an older listing on a player vendor no longer fails with "the item you are trying to sell is no longer in your inventory". Those listings predate a field the server uses to find which vendor they sit on, and the price dialog refused every time; repricing one now also repairs the rest of that vendor.
Content
- The two castle gates in Ardoris now play their closing sound as the leaf reaches the frame. They swing for twice as long as an ordinary door and were using the ordinary door timing, so the closing sound arrived when the gate was still more than half open and had finished before the gate shut. Other doors in Ardoris are unchanged.
- Vendors and other items placed inside a Shogun Crafting Pavillion can be used again by a player standing just outside it, instead of answering "You have to be inside to reach that." The two Shogun crafting pavillions were the only open-sided player homes whose roof was not marked as an outdoor roof, so the reach check read their open floor as a house interior. Walled homes still keep their interiors out of reach from outside a window.
- Solania Catacombs: freed a stuck spot in the passage to the Spectral Mines exit. A boulder beside the passage had collision that was gentle enough to walk up and too steep to walk back down, so anyone who crossed the top dropped into a pocket against the cave wall and could not move in any direction. The pocket is now filled to the level of the ramp, and walking into the boulder from the passage floor still stops you as before.
- Sealed the crack at the foot of the cliff on the east side of the rocks in Brightbone Pass. Walking east across the top of the rocks now stops you against the cliff face instead of dropping you into a gap you could not climb out of.
- The lyric book Songs of the Sundered Blade is on the Ardoris bookseller's list. The book, the shop stock and the merchant were all correct all along; the shard was running stock data baked before the book existed, so Simone von Eglinger offered everything except that one item. Chaos build 186 loads current data and the book is there for 50 gold.
- Chasing that one book raised a bigger question nothing in the project could answer: can every book actually be reached by a player? A new audit walks the loot graph the way the server gates it, adding merchant stock, quests, conversations, world placements, store shelves and recipes, and iterating because a book inside another item is only reachable if that item is. Of 819 book archetypes, 724 should be obtainable. 67 were not.
- Fifty of those 67 books are now obtainable. General booksellers carry a new shelf of fables and parables, plus the three Blade of the Avatar volumes, Hearts of New Britannia, and Age of Storms 5 through 8, which finishes a series that stopped at volume 4. Seventeen letters that belong to one place were written and never placed: seven of the ten starved miners' letters in the Etceter Crag Mines now turn up in the mine, and the rest at Solace Bridge, Blood River, Hilt, The Clink, the Solania Catacombs, the Tower of the Shuttered Eye and the Forest Road siege. Most come off bodies, so expect to hunt.
- One finding from the audit worth stating plainly: books almost never drop from creatures. Nine of 724, cross-checked against the creature balance data, which independently found seven. Books reach players by being placed in the world (487 of them) or bought. Seventeen books are left unobtainable on purpose, twelve of them developer and early-release leftovers.
UI
- The you-are-here arrow on the map now carries a dot at its middle marking the exact spot you are standing on. The arrow covers about two metres of ground at normal zoom and its tip, which reads as the thing being pointed at, sits about a metre north of your real position, which is what put the marker off a trail a tester was standing on in Vauban Pass. The map picture and its calibration measured accurate to six centimetres, so the picture was never the fault.
- The encumbrance warning in the top-right corner now pulses when you press a movement key at the load that stops you picking anything else up. It was armed off a state that needed four times your carry capacity with your focus nearly gone, which loading up never reached, so the warning never pulsed for anyone.
- The Filter box on the Controls tab of Settings now finds an action by the key bound to it as well as by the action name. Typing F1 lists whatever F1 runs, typing ctrl lists every Ctrl combination, and typing ctrl+a narrows to that one. Matching is whole-key, so F1 leaves F10, F11 and F12 out of the list, and an unbound action, which reads None on its button, is not dragged in by a search for none.
- The Edit Deck glyph count no longer reads as a capacity. It showed "18 of 23 glyphs", but 23 is the ceiling on a deck's minimum size and has never limited how many glyphs a deck can hold, so building a bigger deck looked like a bug. It now reads "18 glyphs". No maximum was added and there still is not one. Reported by rinaldi.
- The Clear button on the Edit Deck window's Linked Equipment strip now reads "Clear Linked Equipment". Sitting next to "Link What I Am Wearing" in a window full of glyphs, the old one-word label could be read as clearing the deck. It only ever cleared the gear linked to the deck. Requested by rinaldi.
- Both new labels shipped translated. They kept their string ids, so German, Spanish, French, Italian, Japanese, Portuguese, Russian and Chinese carry the new wording in the same build instead of falling back to English until some later translation pass.
- Dragging a window that sits on top of your health bar no longer drags the health bar with it. The player, pet, target and party frames are moved by pressing on them, and windows are moved the same way, but neither side knew about the other: one press on a window that happened to overlap a frame armed both drags, and the frame travelled along and stayed wherever you let go. A press that lands on a movable window now belongs to that window alone. The check is deliberately narrow, so pressing anywhere else on a frame still picks the frame up, and because the frames still carry the trigger colliders of their old layout, a hovered object that is itself part of a frame is not treated as a window standing in front of it (#6964).
- The Skills window's Change... button showed its hover text in flashes. It appeared, vanished for an instant and came back, about four times a second, for as long as the pointer rested on the button, and the school line behind it showed through every gap. The window was rebuilding that tooltip on its quarter-second refresh, and the game reads a rebuilt tooltip as a new hover: it hides the open one and shows the replacement a frame later. The button now takes one tooltip and keeps it.
- Re-attaching the same hover text to a control no longer replaces it, so nothing that refreshes on a timer can make its own tooltip blink this way again. That also settles the dungeon master console's reward button, which reattaches its hover text twice a second.
- Fixed an automated check that guards the Options window's Reset Positions button. It was reading the wrong file after the reset logic moved, so it had been failing on working code.
- Groundwork for searching the settings window: every row on all eight tabs is now indexed by its label, its section heading, the buttons on it and the choices in its dropdowns. A test checks that no control is missing from that index, so a setting added later is findable without anyone remembering to register it.
- The settings window has a search box. It sits under the tabs and searches all of them: typing narrows the page you are on to the settings that match, the line underneath says how many matched here and which other tabs have some, and a tab with nothing to show is dimmed. A setting is found by its own name, by the heading above it, by the buttons on its row, by the choices in its dropdown and by the explanation under it, so "show hotbar" finds "Show Utility Hotbar In Combat". Requested by Solace1369.
- The settings search also understands the words players type instead of the label: "fov" finds Field Of View, "fps" finds Frame Rate Limit, "gamma" finds Brightness, "windowed" finds Full Screen, "hotkey" points at the keybindings. Writing the check that keeps those shortcuts pointing at real settings turned up sixteen Controls toggles that the search could not reach at all, now fixed.
- The Interface settings page is grouped. The General heading at the bottom had grown to 32 unrelated settings; they now sit under Chat & Conversation, Inventory & Items, Map & Navigation, Character & Progress, Gameplay and Screen & Session, alphabetical inside each one. Nothing was added, removed or renamed, and nothing you had set has changed. Asked for on the forums by Jack SinAssist.
- A conversation topic you had already asked about was drawn in the same two colours the game uses for a button you are not allowed to press, so covered topics read as switched off and players stopped clicking them. Asked topics now keep the full-strength button frame and take a colour of their own, sitting between a fresh topic and a disabled control in every interface skin.
- The bottom row of the conversation window ran underneath the window's corner resize handles. The right edge of the button that ends a conversation started a resize drag instead of a click, and the name at the bottom left lost its edge the same way. That row now sits clear of both corners.
- Quick Deposit into a chest on a lot could stop part way through a press. A chest is writable only while it is open to you, and a press moves one stack at a time, so closing the window or walking on to the next chest left the rest of the deposit refused and the pack re-read from the server. The press now holds the chest open until it is finished. Reported by Gravidy.
- A move refused because the container closed under you now says that. It used to answer "That is not yours to move.", which was the wrong thing to say about your own reagents going into your own chest.
The Herald
- The New Britannia Herald for 2026-09-08 is up: Vacant lots in NPC towns will now be sold by auction, with a cut of the price going to the player who left. A loading screen that hit an error can no longer hang forever, and the reason we were blind to those hangs was that our own logging server had been kicking most clients off at boot for a week. Also: every rider in the game spent Tuesday morning frozen in the saddle, and that one was our fault. Listen or read the transcript (16 min). Subscribe in any podcast app: /blog/podcast.xml
UI
- Skill tooltips now put a small gap between the effect lines, so "Range: 3", "Hits 2 Targets" and "Cooldown: 12s" read as separate effects instead of one block. A single long effect that wraps onto a second line stays tight, and both the current-level and next-level columns are spaced the same.
- Fixed an auto-hiding chat window pushing itself in front of a window the player had just opened. The fade closes the chat box, so an arriving whisper or party line, or the mouse passing over the box mid-fade, counted as the player opening chat and moved it to the top of the window order, leaving an inventory or map window stuck underneath and unable to take a click. Chat now comes forward only when it is asked for: Enter, the slash key, the window selector, Whisper, or a click on the box.
- Edit Deck slots now show a silver padlock when the slot is unlocked and a gold one when it is locked. The two padlock icons had been the same colour and differed by about two pixels of open latch, which was too small to read at 1080p.
- The name plates above characters fade between a night colour and a daylight colour as the sun moves, and they were stopping about two thirds of the way up at every hour of every scene. Names read dimmer than intended and gold pledge titles came out a darker mustard. Full daylight now reaches the bright end of the fade; the night end is unchanged. (#6781)
- The harvest swing meter now holds its reward text, "Clean Strike!" and "Rich Find!", on screen for two seconds. Starting the next swing used to wipe it after a few frames, and a hit on the last swing of a node lost it to the meter fading out.
- Recipe book: a recipe with a long name no longer runs off the side of the page. Cards now take the width of the page and keep the success chance and the ingredient counts inside the card frame, text that will not fit ends with an ellipsis, and the page no longer grows a sideways scroll bar. Hovering a card still shows the whole recipe.
- Recipe book: the Table of Contents button stays on screen while a search is typed, and pressing it now empties the search box so the contents is what you land on. The page arrows in the footer gained hover text reading Previous Page, Next Page and Last Page. Reported by rinaldi.
- Two-character Chinese and Japanese item names can now be searched for in Search All My Stuff. The window used to refuse anything shorter than three characters, which left most Chinese and Japanese item names unsearchable; searches in other scripts still need three characters. Vendor search still matches English item names only, so a Chinese item name typed into a vendor search finds nothing yet.
- Quests in Norgard put their marker on the overworld compass again. The Path of Courage is authored under scene scenarios, and both the nameplate lookup and the scene routing graph read only the scene-level task list, kept one flag variant per task, and dropped exits whose baked target named a scenario, so "Enter Caverns of Skrekk" showed nothing from Novia. Every scenario's tasks are read now, every variant is routed, and a two-hop objective (the caverns behind the Skrekk entrance, Valhold Palace behind Valhold) lights the entrance nameplate. Reported through the in-game Oracle (#3732); verify task #7061.
- The Edit Deck window has a Worn Gear row: a Helmet button and a Cloak button, each cycling Follow Character, Shown, Hidden. Follow Character shows the character-wide answer in brackets so you can see what following would give you.
- Right-clicking your head or cloak slot now offers "Follow My Character Setting" when the deck you are wearing has an answer of its own. Hide Helmet and Hide Cloak have been per deck since August, and until now a deck that had diverged could not be put back. Requested by Barugon.
- Options, Interface now carries Show Helmet and Show Cloak. These are the character-wide answers every deck starts on, and with a deck equipped they had no way in at all, because the right-click toggles write the deck instead.
Audio
- Turning off "NPC Attack Barks" in the Audio options now also silences the shout an enemy gives at the moment it charges you. The option previously covered only the lines an enemy said once the fight was underway, so the opening cry still played. Kobolds made it obvious, since their opening shout is a wordless shriek, but the gap applied to nearly every hostile creature that talks.
- The on-screen note keyboard prints the key you have bound to each note instead of always printing 1 through 8. The eight note keys are the same bindings as Hotbar 1 through 8, so a rebound hotbar takes your notes with it, and the keyboard had been telling those players to press a key that does something else.
- A note key with nothing bound to it now draws blank and dim, with a tooltip naming the Hotbar binding to set, and readying an instrument puts one line in chat naming any notes that have no key on them. Clicking a blank key with the mouse still plays it.
- In combat a number key used to both play its note and fire the hotbar card behind it, and the card put the instrument away, so what a player saw was the key not playing. The hotbar has the number row in a fight and free play has it out of one.
Tools
- Catchphrase audio is now levelled when it is created, so a new phrase plays at the same loudness whichever voice it was bought in. Phrases bought before the change keep the volume they were recorded at.
- New /verbose plotlinks readout: for each property loaded around you, which of its edge crossings attached to the ground at both ends, which joined nothing, and the navigation areas either side. A crossing that joins nothing writes no error and looks identical to one that works, which is why the property-line problem went unexplained for so long.
- The automated bug loop now reads the screenshots attached to a report. It was only ever fetching the description and the comment thread, so a screenshot the player sent with their report was invisible to it. On a visual bug that picture is usually the only record of what they saw. Two passes over one report about the sun washing out a character had both concluded there was no screenshot to work from. There was, and it ruled out what both passes had guessed. Of the sixty most recent open reports filed in game, forty-one carry an image.
- Tweak values can now be set from the chat line: type the value address and a number to set it, the word reset to put it back, or the address alone to read it. The tweak window is still there and unchanged. The point is that a scripted client can only send chat, so until now none of these hundred-odd values could be moved without a person clicking, which made a before-and-after screenshot comparison impossible to do twice the same way.
- Wrote down what a new settings row owes the search box, so the next one added is findable without anyone having to remember a step.
User Interface
- The bard bar is switched off. It is gone from the window list, from Options, Interface, and from the Bard page of the Skills window, and it closes for anyone who had it open. Nothing was deleted: each character's arrangement and their own Show Bard Bar setting are still stored, so the bar would return holding what it held. Bard abilities and sheet music still go on the regular hotbar, and the on-screen instrument keyboard still turns on from Options, Interface.
World
- The male bartender in player-owned towns had his walking speed set to zero on his prefab, so he stood on one spot permanently instead of moving around behind his bar. All 33 of the other player-town NPCs carry a normal speed, his female counterpart included. He now moves like they do, and he backs away from a threat like they do.
- An NPC handed a movement speed outside the valid range used to be clamped to a full stop, which pinned it in place and left its behaviour tree re-issuing a move it could never complete. That one bartender put 422 identical warnings into the log across four hours. An out-of-range speed now clamps to the minimum walking speed, an NPC authored with no speed at all refuses the move instead of accepting one it cannot finish, and the warning reports once per NPC.
Rendering
- Three projector shaders now project again. Projector/Diffuse, Projector/Scaled and Projector/Multiply were still written against the old fixed-function pipeline, which Unity 6 ignores, so the cookie was drawn with the receiving surface's own texture coordinates and the projection never landed. All three were rewritten as vertex/fragment shaders that work out the projector coordinates directly.
- Cleared 102 of the project's 124 shader warnings. Thirty-four macro definitions that Unity 6 now supplies on its own are wrapped so they stop colliding, and the leftover fixed-function water, skybox and demo shaders that nothing in the game referenced were deleted outright, along with the demo scenes and materials that only fed them. The swamp water shader stays as it is, since it is in more than 45 live scenes.
- Fixed a typo in the amber/blue anaglyph image effect that had been there since it was imported: a stray comma made the horizontal alignment offset take the vertical value.
- Ran down what actually makes a character turn into a flat bright-and-dark shape when the sun is behind them. It is not god rays: the client draws none. Sun flares are switched off in every scene look, the old sun shaft effect is stripped from the camera at startup, and the ray script from the sky package is attached to nothing at all. The glow is the sun disc on the sky dome itself, spread across the frame by the bloom pass, which is added before the tone curve and gives distant bright surfaces no discount at all. Two new dials expose that discount so the alternative can be compared side by side instead of argued about.
- Fixed two copy-paste faults in the camera setup. One of the twenty volumetric fog values was never handed to the camera, so that dial had done nothing since it was added; it happens to match the built-in default, which is why nobody noticed. The other was a cleanup step that checked the wrong variable before removing a deprecated blur pass, so the pass would only ever be removed when an unrelated component was present too. A new test walks all twenty values and fails if one stops being used.
Images
- Settings search, filtering the Interface page and pointing at the other tabs that match:
- The regrouped Interface settings page:
Oracle
- The Oracle's guides are current to September 9. The knowledge base last caught up on September 1, and the week since carried around 250 player-facing changes, so the recent-change guides were rewritten and the topic guides were updated where the week changed a durable fact rather than just adding a line to a list. Corpus is 59 guides and 830 searchable sections.
- The fixes guide split in two. August 15 to September 9 in one document came to 24,577 characters against a 24,000 cap that silently drops the tail of a document while its sections keep turning up in search, so a guide can look healthy and be unreadable. Recent Interface Fixes now takes windows, tooltips, skill descriptions, books, graphics, sound, loading and localization; Recent Fixes keeps how the game plays.
- She can now answer about town lot auctions, devotional pins on the town map, the V-Sync option, the Catchphrases volume slider, casting Water magic while standing in a river, the carry weight Dexterity limit and the harvesting cap. The auction answers never repeat what another player has bid as their maximum, and they say the test clocks are about an hour rather than the three days intended, so a tester is not sent to report the short clock as a bug.
- Live-firing the deployed guides caught the Oracle inventing an interface. Asked how to bid on a lot she described clicking a button and filling a prompt the guide had never mentioned, which is exactly the answer a tester follows and then cannot find. The window does have those controls, so the guide now names them from the client itself, and it says plainly that the only maximum bid shown to you is your own.
Maps
- Rebuilt the 3D dungeon map surface for all 59 dungeons (tracker #3140). Testers in The Rise saw light and dark streaks across floors, tall slanted sheets beside a corridor, and the dragon skeleton reading as a pit. The bake had been giving every rectangle its own four corners, each sampled from whichever grid cell it landed on, so neighbouring rectangles disagreed along their shared edges: 38 percent of the top vertices in The Rise sat mid-edge of a neighbour with a vertical crack, and half the rectangles tilted across a ledge, one by 20 m. The surface is now built from one shared vertex per grid point per level, rectangles carry every corner their neighbours end at and fan from their centre, and the skirts run along the same edges.
- The Rise before and after: 2,638 vertices sitting inside an edge of a neighbour down to 0, 416 skirt edges off the floor down to 0, tallest stray sheet 19.7 m down to 2.6 m. Ledges inside one surface (the two legs of a switchback ramp) get their own wall, the pocket the dragon skeleton carves out of the floor is filled in, and diagonal walls lose their saw teeth. A new offline audit reads every baked map in about 25 seconds and fails on any crack over a millimetre; it passes all 60 assets today, with a single hairline left in two of them.
- The bake review sheet gained a close-up render per dungeon through the real map material, and two latent faults went with the rework: the top-down previews rendered black in a fresh Editor session because the capture shader had two brightness values nobody set, and a cap of six height layers per floor had been folding levels 20 m apart into one surface in The Rise. Not on chaos yet; tester task #7063.
- Dorwald, Littlecreek and Magna Planitia came off the overworld map. All three are player-run villages that have never had a lot claimed in them, and the other twenty carry between 2 and 94 claimed lots each. The village buildings are gone from Hidden Vale and Quel and those hexes no longer open a town. The towns were not deleted, so anyone who has visited one can still reach it with a teleport scroll for now.
Testing
- A test suite covering the tester value explorer had been failing for seventeen days without anyone noticing. The rule is that any value which reaches every creature in the scene has to say so in its own description, since that line is the only warning a tester gets before flipping it. A switch added on 23 August did not say it, and the suite it broke is not one you would think to run after a change to creature name tags. Fixed the description; all seventy checks pass again.
Decorating
- A saved decoration layout applied to a lot without its house left gustballs hanging in mid-air while everything else beside them was correctly held back. Items that clear grass or reshape the ground under themselves were waved past the "is there anything under this" check entirely, on the grounds that they sit in the ground by definition. That waiver now only applies where it was meant to, on open ground, so a gustball saved on an upstairs floor stays in your bags like the sack of sugar next to it. 717 decoration types carry the flag; 141 of them only ever go on the ground and are untouched, and the other 576 are now checked wherever they were saved on a floor, a deck or a porch. Reported by rinaldi.
Images
Documentation
- Corrected the notes on what the Mac development machine can and cannot do. They said the Unity Editor was Windows only. It has not been for a while: the Mac runs its own editor against the same checkout and the automation reaches it. The stale line cost an afternoon, because it is the first thing anyone reads and the last thing anyone re-tests.
Fishing
- Started the fishing reel-meter mini-game, built the way the harvesting swing-meter was. First chunk is the pure math and its EditMode fixture: the bite chance a mini-game cast rolls against, the hook-set window, the target zone size (the harvest wedge curve mapped onto a vertical track, 39 to 72 percent from skill 0 to 200), difficulty from a catchs drop-weight share and its Fish Length, and the per-frame fight model with a simulated perfect angler as the gate on the numbers. The first draft lost 5 of 32 legendary fights for that angler; the shipped set lands 256 of 256. Nothing a player can see yet.
- Fishing reel-meter mini-game, second chunk: its own localization table with a reserved id block, and two Options rows on the Interface tab beside the harvest meter ones: Disable Fishing Mini-Game (off by default; on, a cast runs the classic passive thirty-second bob loop exactly as today) and Fishing Meter Size (Normal, Large, Extra Large). Inert until the cast reads them.
- Fishing reel-meter mini-game, third chunk: forty-six FishingMiniGame tweak values with a matching fishing.* row on the live Tunables page for every one of them (switches, bite multiplier and cap, hook-set window, bobber cues, zone curve, difficulty, fish movement, tension bar, stamina and line drains, fight timeout, Clean Catch), all five copies emitted from one table so the client, both registry mirrors and the portal catalog cannot drift. Inert until the cast reads them.
- Fishing reel-meter mini-game, fourth and fifth chunks: the layout math that maps the fight onto the vertical meter (the bars top and the target zone share one placement with the hit test, so a zone drawn upside-down is caught in EditMode), and the bobber cues on the fishing line: a dip sinks the bobber below the waterline on a bite, decoy shakes jitter it sideways, and clearing the cues puts it back only if one actually moved it. Local to the caster in this version.
- Fishing reel-meter mini-game, sixth and seventh chunks: the classifier that turns the rolled catch into a fight (rarity from its drop-weight share in the loot table, size from its Fish Length, the hardest fish in the bag wins, junk never fights), and the meter itself: a code-built UI Toolkit overlay right of the reticle with line strength, the tension track with the fishs target zone and the tension bar, and fish stamina, plus a callout and a reel hint. A rebindable Fishing Reel action joins Options, Controls with no default key; the meter reads Jump and the left mouse button while a cast is live. Nothing drives it yet.
- Fishing reel-meter mini-game, eighth chunk: while a mini-game cast is live, Space is the hook set and the reel rather than a jump or a cancel (movement keys still cancel), a click is the hook set rather than a free attack, a held left button no longer drags the world item under the reticle, and the reticle tooltip steps aside as it does for the harvest ring. Nothing sets the flag yet.
- Fishing reel-meter mini-game, ninth and eleventh chunks: the shared cast bar learns "The fish got away." and can run as the fight clock captioned "Fish on!" without announcing success when it runs out, and one FishingCast log line per finished cast (bites offered, hook sets hit and missed, fight length and difficulty, outcome, clean catch, line left, end reason) with its fields typed for the log dashboards and a shard-wide volume switch. Nothing emits it yet.
- Fishing reel-meter mini-game, tenth chunk: an execution frame around the cast so every exit path releases what it holds. A cast the player object was deactivated under used to keep reporting itself running and refuse every later cast until relog; it is now stopped and cleared, and a scene change stops a running cast so the meter and its input suppression never stick. The cast itself is unchanged.
- Fishing reel-meter mini-game landed on unity-6.5. After a cast the bobber shakes as a decoy and dips on a bite; a "Reel!" callout opens a short window (1.2 s at Fishing 0, 2 s at 200) to set the hook with Space, a click or a new rebindable Fishing Reel action. The catch is rolled at the hook set, so the loot tables pay what they always paid, then a three-column meter (Line, Tension, Fish) runs the fight: hold to reel the blue bar down, release to let it drift up, keep it on the yellow zone to tire the fish, let it wander off and the line drains until it snaps ("The fish got away."). Rarer and bigger fish get a smaller zone and swim harder; Fishing skill widens it. Landing with at least 60 percent of the line left pays a Clean Catch experience bonus (1.5x the per-catch base) and casts with the meter on bite 1.5x as often, capped at 75 percent per bob. A hooked fish left alone is lost; bait, rod wear and pooled skill experience are spent as on any cast. Options, Interface gained "Disable Fishing Mini-Game" (the old passive cast, RNG call for RNG call) and "Fishing Meter Size"; 46 fishing.* live tunables and a shard switch. Verified in the Editor on the offline client with a scripted reel input: bite, hook, a 9 s land with Clean Catch, an untended loss at 15.8 s, the opt-out, a movement cancel and a zone change mid-fight. Tester task #7074; not on chaos yet.
- Server: fishing species and achievement counters are now credited when the catch reaches your pack, not when it is rolled, so a fish lost in the reel-meter fight no longer counts as caught. Every other loot source credits exactly as before. Lands with the next chaos server deploy.
- Docs closeout for the reel meter: a system page (player experience, implementation map, gotchas such as roll-first, credit-at-claim, the four-wait fence and the single cleanup site, tuning tables and the simulator numbers, telemetry), a correction to the harvest meter page (its cooperative-thread destroy leg never fires on a scene change), a balance log entry with the break-even table, the roadmap row, and the Oracle guide to fishing now explains the meter in player terms.
Localization
- Fixed the code-string localization generator, which had refused to run since a lot-auctions column header was minted as a blank string on September 8: the generator treats an empty text as an error and aborted the whole pass, so no commit adding a code string could produce its record. The header is now a null entry the window already renders as blank, and the generator runs again.
Housing
- Lots are no longer sold between players in NPC towns. A listing could be reserved for one named player at the lowest price the rules allow, which made selling a lot and giving it to a friend the same act, and a lot sold that way never came free for the auction. The lot sign in an NPC town now shows no sale section at all. Player-owned towns are unchanged: the governor there already decides who holds land.
- A listing left standing on an NPC-town lot is withdrawn on its own within a minute, and the owner gets a message saying so. Nothing on the lot is touched, and a sale somebody had already paid for still completes. Until now such a listing would have frozen the owner out of decorating their own lot with no buyer able to release it.
- Three more ways an NPC-town lot slipped past the auction are closed. Moving a bound deed to another lot recorded no reason for the vacancy, so the lot it freed was skipped. A lot's size was read from what was placed on it, so a lot claimed and left bare had no size the auction recognised, which exempted exactly the lots being held empty. And the note saying why a lot came free lasted ten minutes and is only read while a town is running, so giving one up while the town sat empty went unrecorded.
Sieges
- Fixed a teleport scroll that hid the sieges. Open a Teleport To Zone scroll on the overworld and besieged towns read Besieged Player-Owned Town; open the same scroll from inside a scene and the same town read as a plain Player-Owned Town, with nothing to warn you where you were about to land. The summary was reading an empty table: the shard told a besieged town's own scenes and the overworld map about a siege and told every other scene nothing at all, so a client standing in a dungeon had nothing to look up. Reported from Upper Fortus.
- Every scene now carries the list of besieged towns, at most five shard-wide, and the meter behind a siege still goes only to the town being fought over and its overworld map. The siege record is rewritten on every hit, so a busy town pushes about every two seconds; sending that to every scene on the shard would have been five pushes per two seconds into every room, carrying numbers nothing outside the besieged town reads. Five new tests pin both halves of that split.
- Attackers holding a besieged town now arrive in a burst of smoke and dark light instead of fading into view. The burst is placed on the ground where the attacker appeared rather than attached to it, so it does not follow the creature away or vanish with a corpse. The point is the reinforcements: a besieged town refills itself constantly, and a fresh attacker walking up behind you used to look exactly like one that had been standing there all along. The hard part was telling an arrival from a replay. Siege minions are spawned as scene objects whose instantiate events are held in the room and replayed to everyone who joins later, so keying the effect off "an instantiate arrived" would greet a player walking into a besieged town with sixty-five bursts at once. The spawning client stamps the server time onto the spawn and every receiving client asks how old the stamp is: a replay reads as minutes old, a real spawn as milliseconds. Every ambiguous answer resolves to silence, including the negative age that a clock wrap produces. The opt-in sits on the spawner rather than the creature, because the Ebon Dawn prefabs the siege rings draw from are the same ones control points and ordinary encounters use. There is an off switch and a console command to flip it live, and a rolling per-second cap on how many bursts one client will draw (#6610).
- Town sieges now end when the Cabalist is killed, including when the shard could not credit the kill to anyone. A boss who died without a player the server could name left the town besieged for good, because the one write that ends a siege rides the experience path and that path needs somebody to pay. AibohphobiA had been besieged that way since August 30: the record stood the boss back up on his stored health in every room the town opened, he died on arrival, and the town reported a number the record already held. Ten days, 150 meter updates, no ending.
- A siege record now has three ways to end besides a credited kill. The client stops standing up a Cabalist the record says is already down, the server treats a report of zero health as the ending and credits nobody, and the scheduler releases a town whose boss is down or whose siege has stood for a week. The first two are proof that a fight finished. The week is a backstop, and it logs a warning if it ever fires.
- The shard was showing seven besieged towns against a limit of five. On September 2 the master server came back under a different name: it derives its identity from whichever network adapter it finds first when nothing pins one, and that boot found a different adapter. Every siege read and write filters on that name, so the scheduler saw an empty board and started five more on top of five that were already running. Those five rows were unreachable by anything afterwards, the end-siege command included, since it filters the same field.
- The shard now warns when it derives its own name instead of reading a pinned one, and says so once at startup when live siege rows belong to a name it does not answer to. The sieges board scopes its rows the same way the server does and lists stranded ones separately, so a count that looks wrong says why.
- The town cooldown knob on the tunables page had no reader anywhere in the server. Both it and the setting it shadowed shipped a week, so turning it moved nothing while the page and the sieges board both drew it as the live number. It is wired up now.
- The compass now names the sky over a besieged town. The siege repaints the sky through a weather slot that has no name of its own, so the compass fell back to naming whatever the weather would have been underneath, and a town that was visibly dark and overcast was described as Clear. It reads Darkened Skies now.
- A siege ring seat stopped throwing when the fight is torn down underneath it. The spawns are queued and resolved a frame or more later, and the encounter rebuilds its rings when a siege ends, so a queued spawn could reach a seat that no longer existed and take an exception instead of an answer. It cost the ring a creature each time it happened.
- Guarded the new ending against being used as a weapon. Since a report of zero boss health now ends a siege, a client could have walked into an untouched one and freed the town for nothing, five times over. A zero report is refused unless the record shows a fight actually happened.
FX
- Spell and creature effect sounds that went silent after the first cast play again. An effect rig lists the audio sources it plays and a delay for each; on twenty-eight rigs the list of delays was shorter than the list of sources, and the effect system skips any source it has no delay for. The sound fired once from the engine on a freshly created rig and never again once the rig came back out of the pool, so the first Fireball of a session had a sound and the rest did not. Sixteen of the twenty-eight were player spell rigs: Fire and Ice Blast attacks, the bard Atonal Aria and Concussive Canticle rigs, Blessing, Gust, Lightning and Shield of Air, plus the unicorn rainbow attack and the scarecrow crows. Rigs whose sound is already fired by their own sound controller keep a do-not-play marker instead, so nothing doubles up, and unticking play-on-awake on those closes a case where a buff rebuilt by a zone change replayed its cast sound. Two judgment calls are flagged for a listen on the test task: the blessing sound now plays on every blessing rather than once per session, and the two bard lasting rigs carry a clip left over from the Death magic rigs they were copied from (#6971).
Gathering
- A gathering node now pays producer experience in proportion to the bonus pulls its Meticulous Collection chain made. A chain that ran to x11 used to pay the same experience as one that stopped on the first pass, so eleven extra pulls of material trained the skill by nothing extra.
- A node that paid bonus pulls now prints one line when it finishes, naming the materials and counts, the passes it ran and the experience it paid. The harvest bar's running list of what you have pulled counts stacks now, where a stack of five read as one.
Vendors
- The two vendor tabs you list from now have a type dropdown and a search box, one pair over each of their two lists. My Orders had neither, and the pane it needs them for is the whole catalogue of things a buy order can be placed for. Reported by shawnbutts and Gravidy.
- A category picked on one vendor tab was narrowing the others. Choosing Weapons on My Listings hid everything else on Buy, on Sell and in the order catalogue, while those tabs still read All Items in their own dropdown. Each list answers only to its own controls now.
- Vendor Items, the window that lists everything you have for sale across every player vendor, gained the same dropdown and search box. When a search empties the list it now says nothing matches rather than saying you have nothing listed.
2026-09-08 · 212 items
The New Britannia Herald
Town lots go to auction and the loading bar stops lying
Headlines
- Town lots are getting an auction: when one comes free in an NPC town it goes up for bids in gold, with a cut of the sale going to the player who left it.
- The loading screen can no longer freeze forever on an error: a load that throws returns to the overworld with a message, and the town-load reads that could throw are guarded.
- The title screen was rendering flat out on machines whose driver ignores vertical sync, and Windows had begun flagging the client for the memory that cost. It is capped at 60 now, alongside fixes for three other things the front end was accumulating after a lost connection.
- Swept every one of the 2,302 NPC conversation files looking for data that would trip up a planned Conversation Studio change, and cleaned up the 19 duplicate keyword rows and one bad file reference that needed no writing decision.
- Every NPC line in the game got a spelling pass: 1,019 corrections across 539 conversation files, including 409 British spellings switched to US English and 125 place and character names that had been spelled two ways.
- Creature area attacks were warning you about the wrong patch of ground. Ice Field, Ring of Fire and the troll ground pound drew their red ring around the creature while the attack landed on its target; the ring now marks where the blast actually falls.
- Old player vendor stock can be bought and reclaimed again: 23% of every listing in the database was refusing both, silently, because of a field that post-dates the record it lives on.
- Dragging a decoration finally tracks the cursor. The grab offset was being spent on the placement ray's starting point, so a book taken hold of 19 cm above its pivot came to rest a third of a metre away, and a prop the game was highlighting could still refuse the click that moves it.
- Books and the quest journal got a names-and-doubled-words pass, 51 corrections, including a journal task that had been handing players a password the game does not recognise.
- The avatar sink that six separate bug reports were all describing turned out to be one thing: the collision capsule never sat on the feet, and the foot placement that covered for it only ran while you stood still.
- Mounts move again: the movement lock meant for Judgment was holding every rider in the saddle.
- Gathering nodes stop paying past their limit. The cap only counted swings you landed on the meter, so a chain that mixed landed swings with skipped ones ran on past the end and paid an extra experience reward every pass, reaching Meticulous Collection x13 on a copper vein. It counts passes now.
- The siege power meter was invisible in every besieged town. It was drawn in the compass own band and the compass painted straight over it, so the red bar never showed. It now sits below the compass text and travels with it.
- Two copies of the siege boss Temna could stand in one town at once, and walking out as the player running the town deleted him for everyone still fighting him. Both came from the same place: the boss losing track of the seat he stands on.
- An overloaded character no longer drops to 1 Dexterity. The encumbrance penalty had no ceiling; it now leaves you 30% of your Dexterity however heavy your pack, and the Dex row on the character sheet spells out what the weight is costing you.
- Devotionals are on the town map. Every shrine in Novia and in player-owned towns now has a pin named after its virtue, and clicking it sends the wisp.
- The tutorial dummy now stands where the tutorial says it does. Anais has always told new players a training dummy was nearby; it was 24 meters behind them, and the skill she asks you to use hit nothing.
- A new Journal Studio panel for the 1,482 journal entries: search across all their text, see how many conversations hand each one out, and edit or create them without hunting for an NPC first.
Client
- A save or load dialog opened after the SavedGames folder had been removed under the client (a launcher migration, an antivirus quarantine, a cleared AppData folder) could throw a directory-not-found exception. The dialog now shows an empty save list in that situation and lets the next save recreate the folder, instead of crashing (Redmine #6890).
- The map used to keep the last player-owned towns rotation. Once a town governor had turned their town from its default facing, opening the map anywhere the player went afterwards - the world map, other scenes, other towns that had never picked an orientation - kept the same rotation until the client was restarted. It now goes back to the facing each scene was built with.
- Anaiss Isle of Storms tutorial step that asks for the first combat hotbar skill no longer completes when the player uses the first slot of the utility hotbar. Only a combat hotbar press advances the step now.
- French clients now see the character right-click Unlock Status Movement entry translated (bug #6801).
- The refusal message shown when a player without the required quest walks into the Kobold Expeditionary Camp arena now shows once and stays quiet on repeat crossings until the popup clears, instead of flooding chat and stacking popups.
- A creature corpse that refuses to be looted now says why. A refusal from party loot rules, or a corpse another party earned, or a corpse another player already opened, used to give the click no feedback at all; a short line now appears above the hotbar naming the reason.
- Player-owned town scenes stop re-running their plot lookups every frame. The server had begun publishing a town.s live tier and square footage as room properties in a recent build, but the client did not know those keys yet and kept them on a "handle later" list forever, dragging basement, waygate and house-name checks along with them. The client now recognises the keys, and adds a defence so the next new room-property cannot cause the same loop. #6927
- Entering a world scene no longer loads the whole in-game HUD in one blocking step. On a first world entry after launch that was the last blocking load of the sequence, and on one tester machine it stopped the client dead every time: the window froze as the loading bar finished and the server dropped the session after 135 seconds of silence. The HUD is now fetched while the client keeps running, so a slow load reads as a slow load with the bar still moving.
- The last stretch of a zone load now writes a separate log line for each of its steps, and the saved-window restore that reopens your containers, books and maps reports how many windows it opened and how long it took. Before this, everything in that stretch reported as one step, which is why eleven frozen sessions could only be narrowed to a range.
- The title screen no longer runs the graphics card flat out. The frame rate there was held down only by vertical sync, and some drivers report that they do not honour it, so on those machines the client sat at the login screen rendering as fast as it could and its memory use climbed for as long as it was left there. The title screen and the character appearance editor are now limited to 60 frames a second. A lower Frame Rate Limit setting still wins, and nothing changes in the world.
- A zone load that failed partway through used to leave the client with no frame rate limit at all for the rest of the session, including after it got back to the title screen. The limiter now notices that no load is running and puts the limit back.
- Losing the connection at the login screen used to cost a little memory every time. Each failed attempt started two connection probes and only closed them if the check ran all the way through, so a client stuck retrying accumulated them. They are now always closed, and the retry loop backs off properly instead of, in one case, trying again every single frame.
- This morning we added a once-a-minute memory report for a client sitting at the main menu, and it turned out it could never fire. The component that writes it lives on the in-game heads-up display, which is destroyed the moment the title screen appears, so on a cold start it had never been created at all. The report now comes from a component that lives for the whole session.
- Prototyped a movement lean for mounts. The mount and the rider's lower body tilt into the direction they are accelerating, while the rider's torso and head stay closer to vertical. The tilt follows acceleration, so a rider leans into a start, straightens out while cruising, and rocks back on a stop.
- The lean is off by default. Whether the split reads better than tilting the whole rider is a question for eyes rather than tests, so it ships behind a switch and every mount looks exactly as it did until someone turns it on. Tuning covers the pitch and bank ceilings, how hard the rider has to accelerate to reach them, the smoothing, and how upright the torso is held.
- Added 17 tests over the lean arithmetic: the ceilings, the decay back to level once a rider stops accelerating, frame-rate independence so a slower machine does not lean further, and the rotation identity that the two-bone torso correction depends on.
- Wrote up what a hovering flying carpet would take. Hover height is art authoring rather than code, and the collider stays on the ground, so a carpet would follow terrain the way a horse does. The real expense is a new rider pose: all four poses in the game today straddle a four-legged animal, and a carpet needs the player sitting.
- Crown Shop model previews are now framed the same on every resolution. The preview measured the model in world units but held and centred it using positions on the HUD, which the interface scales by the game window height clamped between 768 and 1200. A model filled 68% of the frame on a 768-tall window, 96% at 1080, and 107% at 1200 and above, where it was larger than the frame and the edges were cut off. Both halves of the arithmetic now work in one space, and a model fills 88% of the frame at any height.
- Mount previews stopped flashing on and off. All 27 mount model prefabs have their skinned meshes culled by a box baked into the prefab rather than by the pose the animal is in, and the preview camera is only 10 degrees across, so that box could leave the view while the mount was still on screen and the mesh stopped drawing until it came back. The preview now keeps exact bounds for as long as the window is open.
- Mounts no longer fade themselves in when the preview window opens. The mount animation controllers start in the state that drives the summon dissolve, the effect that fades a mount in underneath a player, so a shop preview played it for no reason and began on a frame of nothing.
- Crown Shop pet previews show the pet. A pet item points at the flat marker the game places on the ground, and the real animal is spawned from that marker in the world; the preview window switches the spawner off, so the preview showed the bare marker card. It now previews the creature the marker would have spawned. 282 of the 287 decoration NPC items are covered. Three carry no creature reference and keep what they had, one is a mirror rather than an animal, and the Oracle Flyer marker names itself as its own creature, which is a content fix reported separately.
- The tutorial hint about musical instruments no longer appears at every login. It was firing on the equipment restore that runs when you enter the world, and on other players' instruments coming into view; it now shows once, the first time you equip an instrument yourself.
- The wooden pier on a full water lot now accepts decorations. On lots a town governor had placed, the plank walkway at the front of the lot and the arm reaching out over the water both refused every item with "nothing here will hold this item", while the deck a step behind them worked normally. Open water past the pier is still refused.
- Fixed the world-entry fix from earlier in the day: the request that asks for the heads-up display artwork ahead of time was still being served the old blocking way whenever a loading screen was up, so it never kept the game running the way it was meant to. That request now stays in the background, which is what the one machine that freezes on every world entry needs in order to tell us anything.
- Fixed the opening screen sitting inside a black border after switching to full screen with the keyboard shortcut. The game kept rendering at the size the window had been, leaving bars that were widest along the top and bottom, and only a restart cleared it. It now re-asks for the monitor resolution when it finds itself in full screen, and the windowed size you picked is kept for when you switch back.
- A pet inside a placed Upscale Stables now has to use a doorway. The stable puts its outside walls back into the lot walking area, with the big double door, the large side door, the small person door and every stall door left open, so a pet no longer crosses the building walls in a straight line. Stall dividers inside are still crossable.
- The flags on stone town and lot walls were turning to a heading exactly opposite the wind, so they agreed with each other but faced the other way from the pennant flags and windmills beside them. The offset that aims them was measured off the wrong axis when they were first hooked up to the wind; remeasured against the mesh, it was 180 degrees out. They now stream the same way as everything else in town, and a test ties their heading to the pennant heading so the two cannot drift apart again.
- The wind turbines at the Harvest wind farm now turn to face the wind. Their rotors and tail vanes were attached beside the yaw platform instead of on top of it, so the blades spun in place at whatever heading they were built at while only an unseen part of the mast followed the weather.
The Herald
- The New Britannia Herald for 2026-09-07 is up: No game code went in on Monday, and forty-four tracker items closed anyway. Japanese language support came off the board after a reader sat down and read it, specializations became something you choose at a trainer instead of something the game guessed, and nineteen separate house and decoration complaints were proved fixed. A tester also died repeatedly to confirm that dying no longer costs you skill experience. Listen or read the transcript (14 min). Subscribe in any podcast app: /blog/podcast.xml
Community
- Filed two player wishlist suggestions from the forums: shapeshifting into animal forms via Moon Magic (Werebear/Werewolf), requested by Jumentum, and a small chance to recover the gem when un-socketing an Imbued Gem, requested by Patosh.
UI
- Fixed the two option checkboxes on the rebuilt glyph collection window: the "Show empty consumables" caption was drawn on both sides of its checkmark on the Glyphs tab, and left an old label showing behind "Show combos I cannot make" on the Combos tab. Both now draw once, on the left of the checkmark, matching the "Show consumables" toggle above them.
- The Crown Shop tester debug row had a hardcoded "Show future store items" checkbox that stayed in English on a French client. The label now runs through the localization pipeline and reads "Afficher les futurs articles de la boutique" for French clients (Redmine #6802).
- Opening a second book while another was already in the Immersive 3D reader used to stack both books on the screen at once. Only one book can be in immersive at a time now; a second book opens in the flat window until the first closes, then moves into the immersive view on its own. Reported by Ythak.
- French Options window: the restart note under the language dropdown now reads in French, matching the rest of the Language tab.
- French, German, Spanish, Portuguese and Russian clients no longer see an English "List is empty" line in the empty area of a search or list window when the results were nothing. The framework default that carried the untranslated text is now suppressed; the windows that had their own translated "no matches" copy still show it (#6798).
- The Bank window no longer lets you drag it narrow enough to cut off the Refresh button; it stops at the point that just holds Buy More Space and Refresh alongside the gold readout.
- Catchphrases window column headers now sort the phrase list and the voice list. A first click sorts ascending, a second reverses it, and sorting stays in effect while a search or gender filter is active.
- Reading a book in the immersive 3D reader no longer lets a page click reach the world behind it, so a click on the left page can no longer drop the player into decoration mode on the item the book was covering.
- The Specializations line at the top of the Skills window updates as soon as you change specialization, instead of only when the window is closed and reopened.
- Inventory windows on non-English clients now translate the category tabs (All Items, Container, Consumable and so on), the folded "Filter:
" row above them and the column headers over the item rows. Translations for the tab names and most column headers already existed in the localization files, so a French, German, Spanish, Italian, Japanese, Portuguese, Russian or Chinese client picks them up as soon as the fix ships (#6799). - Quantity prompt arrow keys nudge the amount again, no matter whether the number box, a button or the slider has focus. Left steps down, Right steps up, matching the on-screen
<and>buttons. - The Magic Mirror stops applying the edits you made in it when you press Cancel. Before, changing gender partway through would carry the rest of your staged edits over even after you cancelled out.
- Take All button on containers no longer runs off the right edge of the plate at minimum width. The item count text now gives up its room to the button when the row is tight, instead of holding onto its own width and pushing the button out one letter at a time as the count gained digits.
- Soothing Rain tooltip lists the radius once instead of once per effect. Spells whose effects cover different areas still print each distinct radius on its own line.
- Trainer skill tooltips now label the price. The cost line under "Cost To Learn:" reads "100 gold" instead of a bare "100", so it is clear what currency the trainer wants.
- In a town under siege the Cabalist power meter was drawn in the same band as the compass scene-name line, and the compass painted over it, so the red bar was invisible every time. The meter now sits below every line the compass draws and follows it when the compass is dragged or when a scene fills in another line. The two were also left on the same draw layer, where the winner was decided by whichever registered first, so the meter took a layer of its own.
- The Dex row on the character sheet now explains itself. Hover it while you are over capacity and it shows your Dexterity before encumbrance, what you are carrying against your capacity, and the points the weight is costing you. It reads the penalty back from the effect that applied it, so the tooltip cannot disagree with the number beside it. Inside your capacity the tooltip is unchanged.
- Fixed dragging skills onto the hotbar from the Skills window in List view. The rows now hand over the same skill icon the tree tiles do; school headers still fold and the training marker still cycles.
- Fixed the immersive book losing its controls: reading a book in the 3D view, dropping to the flat window and going back to the 3D view left the book with no buttons along the bottom, and clicking the sides of the page stopped turning pages. The control bar and the page clicks now survive that round trip every time.
- The inventory search box now measures
dur<70%against the same number the Durability column prints. Gear that has been repaired at a crafting station carries a lower maximum than it was built with, and the filter had been dividing by the original one, so a blade reading 64/80 was treated as 64 per cent and stayed on screen. Filters without a percent sign still compare the number on the left of the slash. - The 3D preview of a worn item now tilts around the middle of the preview window instead of around the characters feet. Zoomed in, an up or down drag used to swing the avatar out of the window; it now keeps whatever you are looking at centred at any zoom, and zooming after a tilt holds the same framing. Reported by gravidy.
- Fixed two things in the achievements journal. The category highlighted in the list on the left now always matches the deeds shown beside it, including after the window is narrowed to the category dropdown and widened again. Achievements that come in tiers now show how many tiers you have earned, for example "3 of 4 earned", instead of showing no earned mark at all until the last tier lands.
- Books opened in the immersive 3D view no longer read from behind the chat window. The immersive view now holds the screen while it is up, stepping the other interface windows aside the way it already did with the action bars, and every window comes back when you leave it. Popups and confirmations still draw on top of the book.
- A chilled target now shows the extra melee damage it takes one time rather than once per cold spell. Ice Fist, Ice Arrow and Ice Field each printed their own row for it, so three chills read as three bonuses adding up, when only the strongest chill on a target has ever counted.
Housing
- The corner of a lot in Celestis that showed a red no-placement area and refused every decoration is flat again. Three uneven patches on that lot were levelled to its authored height of 93 m, taking the height variation across that ground from 0.88 m down to 0.37 m, inside what the placement check allows. Reported by Retlaw (tracker #6864).
- New Editor audit walks every scene that carries built-in housing lots and measures the ground under each one. First run covered 51 scenes and 6,171 lots: 111 lots in NPC towns have uneven ground inside their own footprint, the worst a Keep lot in Brittany Estates with 2.15 m of fall across it. Nothing levels that ground at runtime outside player-owned towns, so what shipped is what players get.
- The audit measures the surface you stand on rather than the raw terrain, which matters more than expected. Ardoris row lots along the canal first read as having 14 m of fall across a 10 by 15 m plot; the canal bed does drop that far, and every one of those lots is floored by a sea wall. Real figure is 11 cm.
- Every lot in all 12 player-owned-town templates came back inside the flatten budget, so the game can level all of them when a lot is claimed. The audit also ships a levelling pass for the town lots that need it, dry run by default, using the same maths the running game uses. It has not been pointed at anything yet.
- Levelled the ground under 42 housing lots across 18 towns. Each pad is built the same way the game builds one in a player-owned town: the lot footprint set to the lot marker's own height, with a four-cell blend out to the surrounding ground. Coordinates per lot below.
- Owl's Head: levelled 6 lots. town lot at 178, 86, 272 (0.35 m of fall); city lot at 126, 86, 310 (0.33 m of fall); city lot at -30, 86, 214 (0.32 m of fall); village lot at -183, 64, -74 (0.32 m of fall); town lot at 178, 86, 242 (0.32 m of fall); village lot at -51, 70, 79 (0.31 m of fall).
- Xenos: levelled 5 lots. village lot at -340, 65, 359 (0.61 m of fall); keep lot at 187, 73, -188 (0.56 m of fall); village lot at 75, 38, 120 (0.47 m of fall); village lot at -161, 68, 218 (0.41 m of fall); city lot at -246, 42, -286 (0.32 m of fall).
- Spite: levelled 5 lots. castle lot at -171, 75, 245 (1.43 m of fall); city lot at -37, 53, 138 (0.81 m of fall); town lot at -75, 38, -13 (0.79 m of fall); town lot at -247, 65, 160 (0.49 m of fall); village lot at -349, 65, -28 (0.32 m of fall).
- Kiln: levelled 3 lots. village lot at 87, 34, 86 (0.63 m of fall); village lot at -189, 60, 113 (0.50 m of fall); village lot at -175, 60, 89 (0.50 m of fall).
- Bramble: levelled 3 lots. village lot at 87, 34, 86 (0.63 m of fall); village lot at -189, 60, 113 (0.50 m of fall); village lot at -175, 60, 89 (0.50 m of fall).
- Yew: levelled 3 lots. village lot at 87, 34, 86 (0.63 m of fall); village lot at -189, 60, 113 (0.50 m of fall); village lot at -175, 60, 89 (0.50 m of fall).
- Braemar: levelled 2 lots. village lot at -115, 28, 31 (0.73 m of fall); village lot at -96, 28, -113 (0.33 m of fall).
- Brittany: levelled 2 lots. village lot at 436, 28, -92 (0.47 m of fall); castle lot at 25, 30, 48 (0.40 m of fall).
- Brittany Alleys: levelled 2 lots. row lot at 9, 44, 20 (0.45 m of fall); village lot at 219, 44, 482 (0.30 m of fall).
- Brittany Wharfs: levelled 2 lots. castle lot at 378, 45, -13 (0.52 m of fall); town lot at 251, 45, 20 (0.29 m of fall).
- Jaanaford: levelled 2 lots. village lot at -189, 60, 113 (0.63 m of fall); village lot at -175, 60, 89 (0.50 m of fall).
- Ardoris: levelled 1 lot. row lot at 72, 54, -306 (0.40 m of fall).
- Soltown: levelled 1 lot. village lot at -115, 28, 31 (0.74 m of fall).
- Brittany Fields: levelled 1 lot. village lot at 32, 46, 108 (0.66 m of fall).
- Brookside: levelled 1 lot. village lot at 34, 44, -34 (0.52 m of fall).
- Port Graff: levelled 1 lot. row lot at 46, 25, -43 (0.31 m of fall).
- Aerie: levelled 1 lot. city lot at 223, 32, -34 (0.38 m of fall).
- Northwood: levelled 1 lot. village lot at 34, 44, -34 (0.52 m of fall).
- The other 68 uneven lots were left alone, and most of them for a reason worth knowing: their ground is already flat and something built on it is not. Ardoris Plot_155 has 150 heightmap cells level to the millimetre and still measures 1.21 m of variation, all of it from a few samples on an object standing in the lot. Levelling terrain there would change nothing.
- Started work on auctioning town lots. When a lot in an NPC town comes free, instead of going straight back to whoever is standing on it, it will go to auction: bids in gold, and the player who left the lot takes a cut of what it sells for. This first change is the record that holds an auction and the arithmetic behind bidding, with a switch that keeps it off until the rest is built.
- A bid on a lot names a maximum rather than a price. Your whole maximum is held, the server raises you a step at a time only as far as it has to, and whatever you did not need comes back when the auction ends. That is the part that lets you bid once and log off instead of sitting at the screen waiting for a late bid.
- The auction lifecycle is in on the server: a lot given up, foreclosed, lapsed or removed by a dev in an NPC town now opens an auction, bids are held, auctions close on their own clock, and a winner who never claims the lot loses the gold and the lot runs once more with them barred. Still switched off while the window is built.
- Writing the gold-conservation test first paid for itself twice. It found that a server dying at one exact moment during an auction close would have stranded the winner leftover gold permanently, and that a GM taking a lot back would have refunded the winner a second time. Both fixed, and the test now kills the database at each write in turn and checks the books balance every time.
- The auctions window is in. Every town lot up for auction on one list: where it is, how big, what it stands at, who is winning and how long is left, with a button to spend a teleport scroll and go and look at it. Type /auctions to open it. The lot sign and the region map say when a vacant lot is being competed for, so nobody walks across a town to claim ground that is already spoken for.
- Raising your own bid only costs the difference. If you have 100,000 held on a lot and raise to 150,000, the game takes 50,000, not 150,000, and the box says so before you confirm. Raising your own bid also does not extend the auction clock: nobody was outbid by it, so there is nothing for anyone to answer.
- Player-owned towns stopped re-running the house-name sweep every frame. The server has published two new town-size room keys since September 1, the client copy of the shared parameter file had not been updated to know them, and every unknown key is treated as a lot id, so the two keys were queued for "later" on every frame for the rest of each town visit. The keys are stripped now, the shared file matches the server again with a test that keeps it that way, and the town plot decoration drain that ran a whole town in one frame during the loading screen takes the same 100 ms per-frame budget as the rest of the deco work (a905b60f8f).
- Decorations could be placed at the arched opening at the far end of the Elven Four-Story City Home third floor with most of the item hanging outside the building, reported by a tester after the alcove was opened up for decorating last month. The floor there now stops offering a spot at the wall rather than a little past it, and the space just outside the arch turns away anything whose body would stick out. The stair corner on the same floor reached about 0.1 m into its two outer walls and was trimmed back the same way.
- Lot auctions are switched on for chaos testing, on build 183. Giving up a lot in an NPC town now starts an auction instead of dropping the ground back to first-come. For the test pass the clocks are set to an hour rather than the intended 72 hours, both for the bidding and for the winner's claim window, so a full run can be watched end to end in an afternoon. Two verification tasks are up for testers: one for bidding, outbid refunds and the win, one for what happens when a winner does not claim.
- Dragging a placed decoration now keeps the red and green preview under the cursor. The game recorded where on the item you grabbed it and then spent that offset on the placement ray's starting point, which turned the up-and-down part of the grab into sideways drift: a book taken hold of 19 cm above its pivot, with the camera 30 degrees above the table, came to rest 0.33 m from the cursor, wider than the book itself.
- A decoration the game highlights under your cursor can now be picked up on the first click. The click ran a stricter test than the highlight did, so an invisible camera-collision volume in front of a prop blocked the grab while the prop still showed its name, which felt like having to hunt for a spot that would take the drag.
- Clicking a decoration that stands in front of one you are not allowed to move no longer picks up the item further back instead.
- Caught a missing database index before anyone bid. The auction table was documented as getting its indexes automatically at server start, and it does not: the index pass is a separate tool the deploy never runs. The first auction would have created the table with no unique constraint on the lot, which is the one rule stopping two auctions running for the same piece of ground. Indexes built by hand on chaos and the migration log corrected to carry the commands.
- The last window sill in the Pristine Gothic Mansion w/ Widow's Walk that would not take a decoration now does. It is the deep window on the third floor front wall. Its placement shelf reached about 8 cm past the inside face of the wall, so an item set down in the middle of the shelf ended up inside the stone and was refused. The shelf now stops at the wall, leaving the 9.4 cm that is actually clear of it.
- The Golden Gothic Mansion w/ Widow's Walk carries the same four bad window sills as the Pristine version and never received the fix that landed for it in August. All four front-wall sills in the Golden house now accept decorations, two on the second floor and two on the third.
- A new editor test measures all eight of those sills against the house collision shell and fails if a placement shelf reaches behind a wall. That is the mistake that made the first fix a partial one, and it now breaks the build instead of reaching a player.
- Placed holiday light strands lost their bulb colours. A multicolour strand showed light green, purple and orange bulbs where it should have shown red, green and blue, and the single colour strands rendered close to white. Every strand now emits its own bulb colour at a brightness the tonemapper can hold.
- The bulbs were painted correctly the whole time. Their emission was set to 1.977 and reached the ACES tonemapper at roughly 5.6, and above about 1.0 that operator stops holding a saturated colour: a hot red comes out orange, a hot green pale yellow-green, a hot blue purple. Modelling the chain over the old value predicts RGB (255,140,74), (225,249,186) and (127,31,254) for the three bulbs, against (241,155,78), (210,231,169) and (137,38,241) measured from a screenshot of a placed strand. The strands glow less at night now, which is what buys the colour back.
- A Crown Shop preview turned out to be no guide to how a decoration looks in the world. The preview camera renders forward with no post effects, and the prop shader has no forward pass, so a preview falls back to flat texture colour with no glow and no tonemapper over it. That is why the previews passed while the placed strand failed. Written up in the post effects doc as a trap.
- New EditMode fixture HolidayLightsEmissionTonemapTests models the pre-exposure and the tonemapper in C# and fails if any strand bulb stops reading as the colour it was painted. Every emission value from before this fix fails it. 10 passed, 0 failed.
- Wall and ceiling decorations in the Cloud Imperium Navy Airship command room counted against the external limit instead of the internal one, reported by Ythak. The enclosed bow cabin around the ship's wheel had its floor on the inside of the model's interior and exterior split but its walls on the outside, and its ceiling was covered by nothing at all, so aiming up found the open deck above. Both side walls and the ceiling now count as inside, sit flush against the surface you see instead of 40 cm behind it, and take a decoration anywhere rather than on a few narrow bands; anything already hanging there keeps its old count until it is picked up and set down again (bug #6873).
- Walking away from an ice hot tub used to lose its steam at about 50 meters while the tub itself held full detail out to 160. Two of the tub's five effects had no hide distance set and fell back to a short default. All five now hide at 110 meters, just before the tub stops drawing, so the decoration goes quiet in one piece.
- An effect on a placed decoration that sets no hide distance of its own now takes the farthest one that decoration does set, instead of a flat 50 meters. 122 decoration prefabs were in that state, the Aether Orb, Chaos Heart, Frozen Tear and Vexlyn's Spark among them, and each came apart the same way as you backed off. Decorations where no effect sets a distance are unchanged.
Server
- A loot rollup that came back with no match on the shard used to log only the error code, so a NoMatchFound line pointed at nothing. The line now names the bundles it tried to expand, the destination bag, and the context that asked for the roll.
- The cause was a field that post-dates the record it lives on. A listing stores the plot its vendor sits on, but that field is omitted when unset, so listings written before it existed have no such key and read back as empty. Both vendor handlers took empty as "the owner just picked the vendor up" and refused, silently, on 65,232 of the 284,903 listings in the database.
Editor
- Saving a scene reports duplicate entity IDs, and that report now names the objects that actually collided. It used to print the active scene and the generic component type for every object, so a collision between two objects came out as the same line twice with no way to tell them apart. Each finding is now one entry listing every member with its own scene, full hierarchy path, concrete type and source prefab.
- One duplicate in Celestis had no trace in the scene file at all. A nested prefab was redeploying itself in the Editor when its version number moved, and the redeployed copy carries the same ID baked into the source prefab while existing only in memory. The report now says outright whether each object is stored in the scene file or was created after load.
- Added an Entity ID Census report listing every scene object that shares an ID, the prefab each ID came from, and whether the ID is inherited from that prefab or set in the scene. It is read-only and rewrites nothing: those IDs are what player town lamp settings, mystery box and wishing well cooldowns, and control point leaderboards are stored against.
- Two sources of noise in the same report are gone. Unset IDs were counted as duplicates of each other on top of already being reported as unset, and the check compared objects across every open scene when the IDs only need to be unique within one, so opening a second scene invented collisions.
- The three new fixtures for this work had to move into preview scenes. The EditMode test runner opens an untitled scene while it runs, and Unity refuses to create an additive scene while one is unsaved, which also means an older fixture using that call has never been able to run since it landed.
- Ran the census against Celestis: 952 entities, zero duplicate IDs. The seven groups the scene file appears to contain are override rows that name objects inside source prefabs, so one entry repeats per nesting path. Counting them in the file gives the wrong answer.
- Pointed the census output at the folder it actually writes to, so the first report run no longer shows up as untracked files.
- A regression fence guarding the ID manager had never been able to run. All six of its tests died in setup because the test runner opens an untitled scene and Unity refuses to create an additive scene while one is unsaved, so the guard has looked present and never executed since it was added. It builds in the active scene now and passes.
- Added a whole-project ID census that opens every scene in turn and ranks them worst first, so the backlog can be measured rather than guessed. It runs headless with the Editor closed, and refuses to start in an open Editor because it would discard whatever scene you have loaded.
- New optional guard against creating duplicate IDs in the first place, off by default with a dry run setting to watch it first. It only acts when a newly created object collides with one already in the same scene, so undoing a delete keeps its identity, and it never touches objects a nested prefab regenerates on its own.
- Ran the entity ID census across all 447 scenes for the first time: 280,312 objects, 92 duplicate ID groups, and those sit in only 17 scenes. The duplicate backlog people have been working around is much smaller than assumed, and what is left is mostly test scenes, biomes and player owned towns rather than shipped world scenes.
- The forest scene long believed to produce around 700 ID errors on every save has none. Those errors were the false duplicates caused by source prefabs being counted alongside their own scene instances, fixed at the start of September, and nobody had re-measured since.
- The census now covers all five ID groups the save check validates, not just scene entities. Spawn points, waves, controllers and waypoint collections keep separate numbering, so the count is grouped per family: a spawn point numbered 5 and a waypoint collection numbered 5 are not a clash. That pass also surfaced 8,322 objects with no ID set at all, spread over 302 scenes, which is now the larger question.
- Fixed a source file that a scripted edit had written two null bytes into. It compiled and passed every test, but git classifies a file containing a null byte as binary, which silently loses diffs and merge history on it.
- Fixed the commit check that guards NPC conversation keywords against blocking work on machines without Python installed. Windows ships a placeholder that looks like Python to the check but only prints an install advert, so the check treated it as a working install, got no result back, and refused the commit instead of stepping aside as it was written to do.
- Repaired a journal test that had been failing since the first of September. It expected one journal entry to hold text that had moved to a different entry when the Helpful Automaton entries were renumbered, so it reported a byte mismatch that read like an editor bug. It now reads the entry text from the file and compares only that one entry, which also covers the case where several entries share a line.
- Added Journal Studio, an editor panel for the game's 1,482 journal entries. It searches every text an entry carries plus its id, lists them with the number of conversations that hand each one out, and edits or creates entries from one form. Until now a journal entry could only be reached through the conversation that opens it, so an entry nothing opens yet was not reachable at all.
- Journal Studio reports per-language localization state for the selected entry: current, stale, or missing, judged only on the fields that were actually sent for translation. It also flags when the English text has been edited since the last export, which is the case the revision numbers alone read as up to date.
Housing
- Examining a wishing well on a lot listed for sale used to answer with a red error line and a popup that showed a raw error code. It now shows the same plain "this lot is listed for sale, cancel the listing before making changes" message the game uses for every other placed item on a listed lot. The sale freeze itself is unchanged.
Client
- Fixed five recurring client errors turned up by a sweep of the chaos logs. Levelling a skill that is not a combat rune, Pick Pocket among them, reported an error every time even though the skill went up correctly. Traps and trigger volumes threw when something without a character controller stepped into them. Renaming a property could leave the window waiting forever instead of answering. A save and load file list kept throwing twice a second once its folder went away. Loot bag failures now name the bag and the loot bundles instead of only an error code.
- A zone load that hits an internal error now returns you to the overworld with a message instead of freezing the loading bar. The load sequence had no exception backstop: a throw from any per-frame read killed it silently and left the bar parked on whatever number it last wrote, below the three timeouts added in August. Reported as town loads stuck at 64 and 76 percent by .knightrider and lebu520 (d8ac0dc4a7).
- The two reads inside the equipment wait that could throw in towns are guarded: the placement check now waits for a start position before measuring lot distances, skips a lot removed mid-load, and stops dereferencing a missing scene connection. The spawn wait on nearby lots gets a 90 second ceiling so a bounced load never spawns a character late into the wrong scene. Every load now records which band it is in (scene-io, join, equip, shader-warmup, npc-spawn...) so a fault or a stall names its step.
- The main-thread watchdog now runs for the whole session instead of retiring at the front end, and past 45 seconds of silence it writes a minidump and an error log into the same crash folder the launcher already uploads. Seven crash reports from one tester machine on September 7, all Windows application hangs, ended one to three frames after "Equipment load complete" with nothing to say which call was blocking: the old watchdog had just stopped, and Windows writes no dump for a hang. Stall lines now carry the load phase and the last step breadcrumb (the HUD show, the camera reset, each shader warmup batch, the equipment wait every five seconds), the crash triage groups such a report as a hang at that step, and a GM console command exercises the whole path (c188fb0145).
- The logging server no longer disconnects a client that sends more than 100 log lines in 15 seconds; it drops the excess past 300 and only disconnects past 1,000. The boot telemetry added on August 29 put most boots over the old limit in their first 15 seconds, so between 56 and 74 percent of sessions were kicked at boot every day since August 30, and a kicked client then threw away every log line for the next four to five minutes, which is exactly the first zone load. The client now budgets its own plain lines at 80 per 15 seconds, keeps a bounded backlog across a disconnect instead of clearing it, and reconnects in 20 to 30 seconds (9d92add1bf).
Combat
- "Prevent Movement While Casting" now covers Judgment's beam. Turn the option on and pressing a movement key during the beam no longer walks the caster out from under it and puts the beam out. The option worked for the one-second cast that opens the spell, but the beam itself was still walkable, and taking a step ended it. Reported against #6841.
- Fixed the warning ring for creature field attacks. Ice Field, Ring of Fire, Meteor Shower, a troll's ground pound and a frost giant's stomp all drew the red ring around the creature casting them while the attack itself landed on the creature's target, so stepping out of the ring did nothing. The ring now sits where the attack lands. Roars and blade sweeps really do go off around the creature and are unchanged. Across the 91 creature area attacks that draw a ring, the split moves from 89 centred on the caster and 2 on the target to 78 and 13.
- Ice Field's damage now stops when the ice patch does. A tester reported damage still landing about fifty-seven seconds after a field that only stood for about twenty. The field hands a target one long application rather than re-applying every pulse, and nothing was trimming that application when the patch expired. The water resistance loss a specialist's field applies had the same problem and nobody had noticed it. Damage taken while standing in the field is unchanged.
- Two Ice Field test fixtures had been red for a week without anyone noticing. A change on August 31 added a fourth effect to the spell's sub-rune and inserted it second, which shifted the damage and the resistance shred down one slot. Both fixtures read those slots by number. They read the right ones again.
- Buffs that survive a trip no longer replay their cast sound on arrival. An earlier fix held the sound back only for the instant the effect was spawned, and a spell rig can start its audio well after that: a sound on a child object that is switched on a moment later, a rig that was never pooled and sets itself up a frame late, or a sound controller that plays two frames in. Dash was the one players heard, at full volume, on every scene change and every in-scene teleport. The quiet now travels with the effect until it ends, so a restored buff comes back silent while an aura with a continuous hum keeps its hum.
- Being over your carry capacity no longer empties your Dexterity. The penalty is one point per five pounds of excess and it had no ceiling, so a character carrying 1,644 pounds against a few hundred pounds of capacity was looking at more than 200 points of penalty and landed on the hard floor of 1. Every other encumbrance penalty was already bounded. This one now keeps you at 30% of your Dexterity however far over you are, and the number is a shard-wide tunable.
- Two more encumbrance fixes alongside it. Carry capacity is worked out at the end of a character state pass, so for the first passes after a scene load it read as zero and a loaded character briefly showed a Dexterity of 1 and a movement penalty they had not earned. And the penalty used to be measured against the capacity from before whatever you just equipped, so the Dexterity on your sheet trailed a step behind the gear that moved it.
- Leaving a besieged town and coming back no longer resets the Cabalist to the town edge. He now stands at the shrine he was holding, still on the health the last raid left him, and his creatures stand with him. A siege nobody has fought yet still arrives at one of the ways into town and walks to the shrine.
- Water magic now recognises shallow water. Standing ankle deep in a river or pond gives the 20 percent water bonus and follows the water casting rules, where before only rain counted and the game read the riverbed under your feet as dry land.
- Fixed summons and pets getting stuck in the air when their owner stood on a tall stack of decorations. A player thrown onto a stack of large stone cubes left their summon hanging above them, falling and being lifted again until the player stepped down. Creatures now stay on solid ground and pick their owner back up when the owner returns to walkable ground.
Content
- Andred, the forlorn skeleton outside Lost Vale, will speak in a skeletal voice once the follow-up voice publish lands on the CDN. Previously he spoke in a plain human voice because his conversation record carries no skeletal words in its name or role.
- Anais on the Isle of Storms has a short "Got it,
." reply. It used to always print your real character name, even if you had just told her a different one. It now repeats the name you gave her, matching her other name replies. Bug #6796. - Two Anais tutorial lines on the Isle of Storms restored their missing words. Her bark when a player wanders off now reads "Time to prepare for the next task, outlander!" instead of "Time to for the next task, outlander!", and the closing line at the end of the Skills lesson reads "well chat about the Virtues and ethical choices!" instead of "well chat the Virtues and ethical choices!".
- Victor in Castle Atos and the other Junior Treasure Hunters (Bella and Memores in Aerie, Ardoris, Brittany, Castle Atos and Resolute) are recast onto real child voices. The July fix moved them off a Southern man to young British adult voices, which testers still heard as adults; new clips have to be generated and published before the change reaches a live build.
- Surveyed all 2,302 NPC conversations for data problems ahead of a Conversation Studio display change, and fixed the three that needed no writing decision. Seventeen conversations listed the same keyword two to four times, for 19 duplicate rows in all; the surviving copy in each case is the one the game was already using, so no dialogue and no translated line moved.
- Corrected an NPC conversation file that pointed at a scene folder the include file does not live in. Nothing loads that file today, so no NPC was affected, but a bad include stops the whole conversation from loading rather than just the missing piece, so it was worth clearing while the survey had it in view.
- The banker in Ardoris had two lines of dialogue that no keyword could reach, so no player could ever see them. One repeated the answer he already gives when asked his name and has been removed. The other, about everyone from peasants to the Shogun serving others in different ways, now answers when you ask him about service.
- A spelling pass went over every line an NPC speaks. All 4,606 conversation files were checked word by word against a US English dictionary, every candidate was read in context, and 1,019 items were corrected across 539 files: 503 British spellings, 304 misspellings, 125 names spelled two ways, 66 doubled words, 15 shift-key capitalization slips and 14 then/than and to/too mixups. The corpus was genuinely mixed on the biggest one, carrying 266 uses of traveler against 409 of traveller.
- Places and people that had been spelled two ways now match across the world. Estgard guards said they hailed from Norguard while everyone else said Norgard, the kobold storyteller in Grusk was Vispop in the same line that called him Vishpop, and Skarde spoke of Skindelskog while standing in Spindelskog. Aerie sent adventurers to Blood River Outkirts.
- Deliberate oddities were left alone. Kobold speech, animal noises, dropped-g country speech, thee and thou dialogue and stutters are all untouched, and so are the typed shortcuts that let a player who asks a Braemar townsperson about "norguard" still get an answer. Travellers' Docks in Etceter and Travellers' Nest in Harvest keep their spelling because that is how they are signed on the map.
- The Dara Brae town crier's Irish greeting had been stored as double-encoded UTF-8 and showed up as stray characters. It now reads Céad míle fáilte. A new ConversationSpellingPassTests fence pins the whole pass in both directions: no spoken line carries a corrected spelling, and the deliberate aliases and place names are still there.
- Repaired three NPCs who each had two answers filed under one conversation topic, where only one of the two could ever play. Keith in Kingsport now gives both halves of his answer about the mayor instead of starting mid thought, Guildmaster Erin Hargrove keeps both versions of her answer about trade, and Geoff the spice trader in Owls Head had two answers filed under a topic that did not match them, so his thoughts on the Mainland and on the Oracle now answer to those words.
- Counted the conversation topics owned by more than one answer properly and found 17 rather than 4. The first count grouped each NPC together with the shared files they pull in, which hid every case in an NPC that borrows dialogue from elsewhere. Several of the 13 still to fix lose the better line: one guard introduces herself with a full description in the version nobody sees, and answers with a misspelling of her own surname in the version everyone gets.
- Norgard now reads the same way everywhere a player can see it. Twenty-one keyword labels still said "norgard" in lower case, and picking a keyword puts its label in chat as the player's own line, so that text reaches the screen. Kobold Camp, Skrekk, Valhold and Ferig's Camp all showed it.
- The "where is" list turned out to be display text rather than a hidden matcher. When an NPC does not recognise a place it recites the first location of every record it knows, so the stored key is read out loud. Braemar's key for Norgard was stored in lower case and is now capitalized. A player choice in Owl's Head that read "Let's talk about somethnig else" was corrected too.
- The keyword match lists were deliberately left alone. They hold 127 entries for "norgard" and 57 for "norguard", none of which reaches the screen: they are what a player is allowed to type, and matching ignores case, so the variants only make the game more forgiving of a typed mistake. Place and organization names keep their British spelling, including Travellers Alley, Travellers' Nest, Travellers' Docks and Grey Squadron.
- Restored the second answer on a dozen NPC conversation topics where two answers had been written but only one could ever be heard. Cedric, Dreamer Jay, Eliandra Lockheart and Geoffrey Pledger in Ardoris, Anna in Kingsport, Oskar Jarnsmid in Estgard and Meredith in Solania now give one of two replies. Eliandra also gave her surname as Lockhart when asked her name, which is not how it is spelled anywhere else.
- The merchants in Ardoris had answers about prophecy and about the Oracle filed under a topic for dying, so neither could be reached and asking about dying returned nothing. Both answers now respond to the subject they were written for. Christoph Schneider gained a second thought when asked about art.
- The in-world books and the quest journal got the same treatment as the dialogue, narrowed to names, doubled words and encoding. 51 corrections. Thirty were names spelled one way when an NPC said them and another way in writing: Ravensmoor, Krishach, Villines, Drumplemouth, Rhoswen, Preben, Zeferino, Tanglemire, Miloslava, Gertrud, Abtreek, Vishpop, Hildegund, and in the books Shogun Siranto, Etceter, Zyrina and Torgin.
- One of those was handing out a password that does not work. A journal task told the player to mention "Juxhru" to the taskmaster in Grusk, but the word the conversation listens for is Juxhro. Anyone following the journal exactly was saying a word the game does not recognise.
- The encoding audit came back clean, which is worth saying because two things in there look like damage and are not. The 87 instances of an i-with-diaeresis in the journal are the name Anaïs spelled properly. The accents, Greek letters and box-drawing characters scattered through Books.xml are all inside the backer credit lists, where they are handles players chose for themselves, so they stay exactly as written.
- Repetition was left alone where it is the point: stammering dialogue, "Row row row your boat", and "had had" as a past perfect nineteen times over. So were names that only look like a typo of someone else. Sir Grophal of Norgard is not Grophas the guard captain of Etceter, and Fridai is an Old English weekday on a work roster, not the character Frida. A new BookJournalProofreadingTests pins the deliberate cases alongside the corrections, so a later sweep cannot quietly undo an author's choice.
- Corporal Rhoswen in Solace Bridge Outskirts had her name spelled Rhoswan by two residents talking about her. The dialogue sweep had left those alone because it could not tell a misspelling from a second character, and the quest journal, which names her in the same quest, settled it.
- Her own answer had a typo in it as well. Ask Rhoswen about her name and she explains it means "white rose" and finishes "Shows no matter whan you plan for, the universe always has something else in mind." That is the only response behind her name keyword, and it now reads "when".
- Moved the Isle of Storms tutorial practice dummy from the far wall of the white room to the open floor a few paces from Anais. Her lesson already told players a training dummy was nearby, but it stood 24 meters behind them, far enough that the skill the tutorial asks you to use found no target. It is now 5.6 meters away. Requested by Bzzt.
- Every run of two or more spaces in NPC dialogue and the quest journal is now a single space. 2,492 of them, 2,462 across 492 conversation files and 30 in the journal. All were sentence gaps someone typed twice; nothing in either file was using spacing for alignment, and the longest run in the whole corpus was four spaces sitting in front of a paragraph break.
- The edits stayed inside the text an NPC speaks, 2,148 of them in plain responses and the rest across barks, on-death lines, unknown-keyword replies and query answers. No keyword matcher, player choice line or "where is" location key had a double space to begin with, so nothing a player types or matches against changed. Both fences grew a test, so a run of spaces coming back now fails the build.
- Fixed the Isle of Storms "Lock Your Gear" tutorial step, which showed its on-screen hint but added the wrong journal entry, so the task never appeared in the task list and there was nothing to complete. The step now adds its own task, and locking a worn item or one in your backpack clears it and writes the follow-up note.
- The Variant Oracle Flyer decoration had no animal attached to it, so its item preview showed a blank green placement card and placing it on a lot put that card on the ground. It now carries the variant Oracle Flyer model in both places.
- Decorations can now be placed on the steps of the stairways in the Village Stone 5-Story Basement. The steps had no decorating surface of their own, so an item aimed at one was refused with "This item cannot sit on that surface" or dropped onto the landing below where it could not be seen; every step across all three flights of all four stairways now has a surface flush with its top. Landings, stairwell walls and stairwell ceilings are unchanged.
- In the Lord of the Manor Keep city home, the wall behind the left third-floor stairwell now takes wall decorations across its full width. Only the four metres directly behind the stairs accepted anything before; the rest of that ten-metre wall answered with the lot boundary refusal, while the matching wall on the other stairwell worked all the way across.
- Widened the collision on the large swamp trees in swamp metropolis player towns. They already stopped you, but only at a thin core in the middle of the trunk, so you could walk several metres past the visible bark and stand inside the tree. Four tree types now block at the bark, sized off each trunk at the height a standing body occupies.
Tools
- The crash report reader now opens the metadata file that ships beside each report. It carries the CPU model and the Windows error log, which turned seven reports previously written off as undiagnosable into a diagnosed client hang. It also stops treating a cancelled web request during a recall as if it were a crash.
- The client now reports a memory reading while it is sitting on the main menu. It already sent one every minute during play, but outside a game scene it sent nothing, so a client growing at the menu left no trace at all. The menu reading goes out under its own name so it cannot skew the per-scene frame rate averages.
- Ten numbers on the client performance report had never been given a type in the log store, including the two memory figures, so every average and percentile over them quietly came back empty. They are typed now, which is what lets us plot a memory curve rather than eyeball raw records.
- The unattended bug-fixing pass can now be told how sure it has to be before it commits. It was all or nothing: either a worker had to point at the exact line producing a report before touching anything, or the check came off entirely. A run now sets a bar, so a pass can ask for fixes it can defend without demanding proof that only running the game would give.
Images
Interface
- Checked a report that windows no longer move from their left edge. That is the current design: since the 30 August change every edge of a window resizes it, and the title bar moves it. A test comment that still named the removed left-edge move code was corrected.
Overworld
- Finished a town removal on the Mistrendur overworld. Belly of the Snake was taken off the map in July, but only the town assets went; the map scene kept the hex tile pointing at the deleted template, the town marker standing over it and the marker's siege camp. The marker read the dead link and hid itself on every load, logging an error each time. All three leftovers are gone, and a test now checks that every overworld tile template still resolves and that markers and siege camps stay paired one to one.
Economy
- Player vendors carry a lot of stock that was listed years ago, and a large share of it could not be bought by anyone or taken back by the player who listed it. Buying gave "no longer available" and the item stayed on the shelf; reclaiming gave "failed to reclaim" and the listing stayed put. Both work now, and one reclaim repairs the rest of that vendor's shelf as it goes.
Oracle
- The Oracle now answers questions about reports that are already closed. She used to say she had no information about them, even when the report was sitting on the tracker; a check meant to stop her answering from memory was re-asking every tracker-sourced answer, and the second answer was the denial. Tracker lookups now count as a real source, and a closed match comes back named, linked, and described as already fixed.
- Report search no longer has an open-only setting the Oracle could pick. Asking for open reports dropped a closed one even when the search was its own report number, which is exactly the case players ask about most. Every search now covers open and closed, and each result carries its own status.
Balance
- A gathering node now stops paying at its limit however the chain is played. The limit only counted swings landed on the gathering meter, so a pass the player let go by cost nothing against it, and a chain that mixed the two ran on past the end and paid an extra experience reward every time, reaching Meticulous Collection x13 on a copper vein. It counts gathering passes now, so twelve is the most one node pays. A clean run is unchanged and still finishes on x11.
- Landing a swing at the end of a long gathering chain no longer cuts it shorter than ignoring the meter would have. One hit below the limit, a landed swing ended the chain while a skipped one handed it back to the meticulous roll, so the last stretch of a well-played chain rewarded not playing it.
Crafting
- The picture of the station at the top of the crafting window was cut off at the top and bottom, leaving a thin strip out of the middle of the bench. It was a fixed 64-pixel band with the artwork scaled to cover it, which threw away about 63 percent of the image. The band now takes its height from the picture's own proportions and scales to fit, so the whole station is visible: 281 by 130 pixels at the default window size instead of a 375 by 64 crop.
- Resizing the crafting window used to come entirely out of the item list, because the station picture was the one block that refused to shrink. It now gives up its own room first, down to a floor, and shrinks rather than crops, so a short window keeps its item rows and its Craft, Salvage and Repair buttons.
Images
Sieges
- A player in besieged Blackrock Cove reported two copies of the Cabalist Temna standing at once. The boss stands on a seat the town builds while it runs, and a player who walked in after him could end up holding him without that seat knowing, so the moment they took over running the town for the room they stood up a second boss. Creatures now keep the name of the seat they were spawned from and are handed back to it when it turns up, which also restores the kill credit a mis-seated boss was losing: he could be killed without paying experience and without ending the siege.
- Walking out of a besieged town while you were the one running it for everyone else deleted the Cabalist and his whole army for the players still fighting them, and whoever inherited the town then stood a fresh boss up on his last checkpoint. Leaving now hands the fight over instead of tearing it down. A siege that actually ended still empties the town.
Animation
- Reading a letter no longer drops the avatar through the floor. The collision capsule was authored with its bottom a hand's width above the feet, so the avatar came to rest about 9cm under the ground in every state, and the foot placement that hid that only ran while you were idle. The capsule now rests on the feet, and foot placement runs during every animation you perform standing up.
- The same sink was behind five other reports: the sit and beg emotes, mining, casting Light and Heal, summoning a pet, and standing in combat stance. All of them ran animations with foot placement switched off, so all of them showed it. Seated, prone and inverted poses keep foot placement off, which is correct for them.
- Dismounting put the local player's feet 38cm into the ground until the next thing that resized the collision capsule. The dismount path set the capsule centre to a fixed value that did not match the height it set alongside it. Both now derive from the height.
Pets
- Pets set to Follow now walk through the Obsidian Wolf Cave in Deep Ravenswood with you. The passage bends partway along, and the walkable ground pets path over had a gap across the bend, so the shortest route a pet could find ran 102 metres back out of the cave and around the hill to the far entrance. It is now 5 metres. Reported by Brickbat.
Server Operations
- The chaos shard message of the day can now be changed without a server deploy. chaos-motd.ps1 reads and rewrites it through the log server, and the new text reaches everyone connected right away, including players sitting on the login screen. Before this, changing that one line meant swapping the whole server cluster.
- The message of the day tool warns when the live text and the copy in source control have drifted apart, because a full server deploy installs the source copy over whatever is live. A -Persist switch writes the live text back so the next deploy keeps it.
- The players page grew a Set MotD box, so the message of the day can be changed from the browser as well as the command line. It is seeded with whatever the shard is serving right now, and it asks for confirmation before the new line goes out to everyone.
- Game masters can now set the message of the day from inside the game with /setmotd, without a command line or the admin page. The new text reaches everyone connected straight away, including players sitting on the login screen.
- The message of the day tools are live on the chaos shard. The command line and the Set MotD box both read and rewrite the running shard now, so the login-screen line can change without a patch. The in-game /setmotd arrives with the next build.
Mounts
- Mounts stopped moving in the latest chaos build. You could summon a mount and get in the saddle, and then the movement keys did nothing until you dismounted.
- A mount is summoned as a channelled spell, and that channel keeps running for as long as you are riding. Yesterday the "Prevent Movement While Casting" option was taught to hold you still for any running channel, so it held riders still for the whole ride. The option is on by default, so it reached everyone with a mount. It now only holds you still for the spells that walking really interrupts, which is Judgment and Dig In.
- The chicken mount was invisible when you rode it. Every mount is spawned hidden and faded in by its own animator as it arrives under the rider, and the chicken's animator was copied from an unused reindeer one that has no fade in it, so the bird never came back. It fades in now the way the horses and stags do. A new test checks all 29 mount archetypes for both halves of that fade.
- The chicken mount was also missing from two of the lists the client builds its item tables from, so item search could not find it by name. Both carry it now.
Tester Tools
- The filter box on the in-game task board searches the whole project again. It holds 100 tasks at a time out of several hundred, and a word that matched even one of those stopped it looking any further, so most matches stayed hidden. Reported by gravidy.
- Typing in that filter box on one tab and switching to the other left it doing nothing at all. Switching tabs now runs the search again for whatever text is still in the box. Reported by joescorpio.
Maps
- Devotionals now show on the town map. Open the map in a town that has one and each shrine is a pin named after its virtue, such as Devotional of Love in Ardoris. Clicking a pin sends the guide wisp to it.
- Devotionals placed in player-owned towns get pins too, drawn from the list the server keeps of what stands in each town, so they show from the town entrance instead of only once you have walked close enough to load the decoration. That list is rebuilt about once an hour, so a devotional placed just now appears later.
2026-09-07 · 2 items
The New Britannia Herald
The game speaks Japanese and dying no longer costs you anything
The Herald
- The New Britannia Herald for 2026-09-06 is up: No game code was written on Sunday, and twelve fixes still crossed the finish line because testers went and proved them. A sheathed weapon stops burning, an emote no longer ends a conversation forever, the compass agrees with the sky, and a crypt chandelier can finally be put out. One new report came in from the forums, about a lump of terrain that will not hold a decoration. Listen or read the transcript (12 min). Subscribe in any podcast app: /blog/podcast.xml
Community
- Nightly forum sweep filed a Shock Weapon balance idea (requested by Barugon) and two untriaged bugs: airship wall decorations counting as external instead of internal, and pets on Follow routing around a point in the Obsidian Wolf Cave at Deep Ravenswood.