Workshop journal 002 — 1 Aug 2026
The launcher, and three bugs that deserved better
— 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.
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 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.