Patch notes tell you what changed. This is where
we write down how, and what broke on the way. Long reads, posted when there's a
story worth telling. Newest entry up top.
Entry 003
Workshop journal 003 — 2 Nov 2026
From 0.9.46 to 0.9.69: what changed at the wall
Filed by the Svera workshopRe: v0.9.47 – v0.9.69~4 min read
— three weeks, a lot of builds, and the notes finally caught up.
This site went quiet after 0.9.46 while the game kept moving. The patch log now carries every public
release since then. Here is the short version, and what we are fixing next.
The horde got heavier
Zombies plant their feet, stagger when you shoot their legs, fall and claw back up, and can grab you
(mash F to break free). Wounds tear real chunks out of bodies. The Sower and the Sapper joined the horde,
and the Writhe reaches through your barricades.
The maps, rebuilt
Six maps were reworked, Astris Site 02 became a four-level biolab inside a mountain, and the Compound is
rebuilt every match. A lobby map vote, random rotation and difficulty tiers (EASY to ELITE) decide where you
fight. Siege runs LIMITED (12, 25 or 50 waves) or ENDLESS, with an extraction after wave 30.
Raids, squads and the ledger
Squads raid together, maps link up, and the squad ledger tracks your rank, MMR, headshot % and the rest.
Parties go up to 5, games up to 12. If you drop out alive, your body waits 3 minutes for you to reconnect.
Real sound only
The synthetic voices are gone. What you hear now is real recordings, and the lines nobody has recorded yet
stay silent until someone does.
What we are fixing
The 02 Nov hotfix removed the random 1–2 second freezes. Next: online trading. The trading post, trade desk
and player market could not reach the server, because a settings line cut the server address short. The fix
ships in the next update, and the market becomes fully player-run: every listing on it will come from a real
player.
— we built a front door, then went looking for what was wrong with it.
For most of this alpha, installing Svera Defense meant pulling down a 1.6 GB zip and trusting
yourself to unpack it somewhere sensible. That works the way a plank across a ditch works. This build
replaces it with a proper field launcher — and building it turned up three bugs that had been
sitting quietly in the game the whole time, plus one we wrote ourselves that was worse than the other
three together. All four are below, including the embarrassing one.
A progress bar that isn't lying
Almost every launcher you've used shows a bar that fills at a comfortable, invented rate. It's a
mood light. Ours doesn't, mostly because we're the ones sitting at 3am wondering whether the transfer
has died. The launcher is a torn-paper WPF app — same paper, tape and rubber stamps as the game and
this site — and every number on it is real. The download line is actual byte counts off the
wire: when it says 412 MB of 1.6 GB, 412 MB are on your disk.
Unpacking is where it gets fun. Instead of a spinner and the word Extracting…, the launcher
streams every real file path and size into a live supply log as it writes them, under a counter
ticking the genuine total — 4,326 files for this build. It scrolls far too fast to read, and
that's the point: you can watch the install at the granularity it's actually happening at, and if it
stops you know which file it stopped on.
The cost of telling the truth
Honesty was not free. The first working version reported every entry as it came out of the archive
and ran 35.6% slower than a silent extract of the same zip — minutes of someone's evening spent
rendering text nobody can read anyway. So we measured instead of guessing. Almost none of the cost was
the extraction: it was the reporting standing in the way of the work — the write loop stopping
to hand each filename over, the log re-laying itself out 4,326 times. Now the extractor runs flat out
and the display samples it, coalescing whatever arrives between frames instead of promising to draw
every line. Same paths, same counter, overhead down to 9.9%.
The bug we found in our own launcher
Here's the one we'd rather not be writing up. The launcher decides what to run after an update by
reading an exe field out of the update manifest — a small JSON file it fetches from our
web server — and that field went straight to the shell. Whatever the manifest said, the
launcher ran. Which means the manifest, not the launcher, decided what executed on your machine: a bad
file in that one spot on our server could have named anything on your disk and had it opened, with
your account, on a double-click you thought was play the game.
We didn't find it by reading the code and feeling clever. We found it because a test manifest we'd
typed carelessly named a C++ header file, and the launcher dutifully tried to open it. It
didn't complain. It didn't check. It did as it was told, which is the whole problem. Now the name has
to earn it: it must resolve to a real file ending in .exe inside the install directory.
A path that climbs out of the folder, a file that isn't there, a name that isn't an executable — the
launcher refuses, and offers a clean reinstall instead.
Workshop rule, now on the wall: a name that arrived over the network is
data, never an instruction. It gets validated against the disk before anything acts on it.
This never reached a player build — the launcher in your hands is the fixed one. We're telling you
anyway, because "we quietly patched a hole in the thing that runs code on your computer" is not a
sentence anyone should keep to themselves. If we find another, you'll read about it here.
The far end of the pipe. 4,326 files, one counter, and eventually this.
The screen you couldn't leave
Now the ones that were the game's fault. The server browser had a Back button that could not be
pressed — not styled wrong, not occasionally missing the click, genuinely unpressable. Esc did nothing
either, so once you opened the list your only exit was the taskbar.
We spent an honest hour on the button. The button was fine. The bug wasn't where it looked: the
browser widget never took focus when it came up, so no key event was ever delivered to it at
all. Esc wasn't being swallowed — as far as the input system was concerned that screen wasn't
listening, and every fix we tried was landing on a component that already worked.
The screen takes focus when it opens now, and Esc, gamepad B and the Back button all
back out of it — all three started working the moment focus was right. One cause, three symptoms.
Four players when it should have been twenty
Shorter story, same shape. Hosting capped the lobby at four players while every menu, every
page and every one of our own plans said twenty. One stale default buried deep in the host menu, set
long enough ago that nobody thought to look at it. It's 20 now — the number the rest of the
game already believed.
Why the server browser was empty, honestly
And the one people have been politely asking about. The in-game browser has been returning nothing —
not "no servers today", but structurally nothing, every time, for everyone. Here's why.
Steam's subsystem won't initialise without its appid file sitting beside the executable. Ours
wasn't in the packaged build, so the game did what it's designed to do when Steam isn't available:
fell back to the LAN-only subsystem and carried on without a word. That fallback can only see machines
on your local network, so an internet search run through it wasn't failing — it was answering
correctly, and the correct answer is nothing. The browser was never broken. It was asking a service
that had no idea the internet existed.
The file ships beside the executable from this build on. Straight talk about the rest, though: our
dedicated servers are direct-IP for now, so if you want a game tonight, Direct Connect
is the reliable route — and it stays that way until we've had the browser under load with real players
in it. Better to point you at what works than at what ought to.
What's next
Gamepad navigation in the inventory, quick-med hotkeys, and a smaller patch payload — the launcher
already pulls only what changed, but there's plenty left to shave. Past that: the browser earning its
place over Direct Connect, and more maps in the Bellows spirit. The whole board, in the order we
intend to work it, is on the
operations
roadmap.
Run the launcher. Watch the counter. It's telling you the truth.
Building the Bellows — one night, twenty-five agents
Filed by the Svera workshopRe: v0.2.3 "All Hands Below"~6 min read
— how the submarine got built, and what it cost us in sleep.
The 0.2.3 cut — the Bellows, the flooding, the handling pass, the new turrets — came together in one
long overnight push. We ran it like an operation: the build split into twenty-five agents, each
with one system to own and a hard rule not to touch anyone else's deck. One on water. One on doors.
One on nothing but the way your legs look when you sprint down a ladder. When the sun came up, the
boat floated. Mostly. Here's the honest version.
Why a submarine
Horde defense lives and dies on chokepoints, and every map we'd built so far fought on a flat plane
— you find the best doorway and you farm it. A submarine is the opposite of a flat plane. It's
nothing but chokepoints: bulkheads, stair towers, ladder wells, a hallway exactly one shoulder
wide. And it fights on the vertical — the horde above you on the mezzanine matters as much as the
horde in the corridor, and the fastest route between decks is a stairwell you have to hold,
not just cross. The design brief was one line: the boat is the ninth zombie. Hull quakes shake
the frame and chip your health. Leaks flood the low deck. The geiger crackle in the walls isn't
ambience, it's a warning.
The forward choke, mid-build — one shoulder wide on purpose. The gizmos are the spawner
plumbing you never get to see.
Water that actually rises
The obvious way to flood a compartment is to script it: play a rising-plane animation, done. We
didn't, because scripted water is dead water — it can't respond to anything. The bilge pool is a
real reservoir: every sprung leak contributes an inflow rate, the pumps contribute an outflow, and
the water level each frame is just the integral — dV/dt, summed and settled. Which means
floods are emergent. A hull quake can spring a fresh leak mid-wave, and the pool doesn't jump to a
new height; it starts filling faster, and you feel the timeline shift under you. Stand in the
low deck doing inventory math and the water will make the argument for moving.
The bay from the mezzanine, blockout night. Those two dummies stood in for the whole
squad for about six hours.
Getting a body
This patch the operator got legs. True first person — one full-body character, camera bolted to its
skull — instead of the classic floating-arms rig. It sounds like a cosmetic. It is absolutely not.
The floating-arms trick exists because it hides a hundred perspective sins, and the moment we
committed to a real body we got to meet every one of them live: the camera clipping through your
own collarbone on a crouch, sprint animations swinging the view like a bell, the memorable build
where looking straight down while turning let you see the inside of your own spine. Every one of
those got logged mid-playtest and fixed in the same sitting. What you keep, once it's stable, is
worth all of it — look down and you're there, boots on the deck plate you're defending.
The handling pass
With a body came weight. The movement rework is openly from the Tarkov school: Q/E lean that
squashes against walls instead of poking through them, breathing sway, a landing dip — and mass that
means something. Load up on plates and belts and you accelerate slower, stop wider, and drag your
aim through more inertia. The gun stops being a cursor. On a boat made of one-shoulder corridors,
leaning around a bulkhead frame instead of stepping into the lane is the difference between a peek
and an obituary.
Eight turrets, eight voices
The turret family grew to eight this cycle, and the rule we enforced was distinct voices —
every emplacement has its own report, its own tracer color, its own muzzle signature. Not for
flavor: for information. When the line is holding two decks below you, your ears are the only
instrument you've got, and "the Scorcher is still burning its lane, but the heavy cannon has gone
quiet" is a sentence you can now hear.
Same philosophy hit the arsenal menu: all 45 weapon portraits in the shop were photographed
from the actual in-game models — posed one at a time in a little studio light rig, same angle, same
falloff — instead of renders grabbed at whatever default angle. It took a full agent's night. The
shop finally looks like a rack of real hardware instead of a spreadsheet.
War story: the 1uu doorway
Best bug of the cycle. Playtesters kept reporting that the horde would hit a breach and form a
polite, motionless scrum — thirty zombies grinding into one spot of a doorway while the rest of the
opening stood empty. We assumed avoidance was broken. It wasn't. The pathing was doing exactly what
we told it: every zombie was routed to the breach's target point, and every one of those
target points quantized to the same one-unreal-unit spot — a single 1uu convergence point in
the middle of the frame. One centimetre of floor, thirty claimants. The horde wasn't stupid; it was
obedient. The fix fans targets across the full width of the opening and lets avoidance do the rest —
and now a breach looks like a breach: the whole doorway fails at once, which is much worse for you
and much better for the game.
Blockout honesty: when the wall literally says BOSS SPAWNER, you hold the stairs anyway.
Hardening the wire
Multiplayer got a quieter but bigger pass. The ammo desync — the one where your mag count and the
host's mag count drifted until your rifle clicked on a round the server swore you'd spent — traced
back to one root cause repeated in a dozen places: state being mutated on the wrong machine.
Clients were decrementing ammo locally and the server was decrementing it authoritatively,
and the two ledgers never reconciled. The fix wasn't clever; it was discipline. One machine owns the
numbers. Everyone else renders them. We swept every combat-state write in the game against that rule,
and a whole family of "it works in solo" bugs died in the same night.
Workshop rule, now on the wall: if a value matters to the fight, the
server owns it. Clients predict; they never decide.
What's next
Controller support is the headline of the next drop — full Xbox pad support, end to end, menus
included — alongside the packaged build of everything above. Past that: more maps in the Bellows
spirit (spaces that fight back), and the steady grind down the road to 1.0. The wall between
here and there is mostly polish, and we intend to sand it in public.
That's the whole journal so far — entries 001 and 002. New entries land here
when there's a story worth the paper. For the terse version of every change, the
patch
log has all of it; for arguing with us about any of the above, the
Field
Reports board is open.