In this update1
Full notes
Full Cryptr update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Gameplay
- UI and audio
- Performance
- Maps
- Fixes
- Balance
Cryptr changes
Update 5
Someone refunded Cryptr with the note "frame rate too low." I went looking for the heavy content that was costing the frames and did not find any. What I found instead were three configuration bugs, and one of them meant the game was very likely putting your PC on the highest settings it owns whether or not your PC could run them. That is not your hardware. That was me.
So this update is mostly repair work, and I would rather say that plainly than dress it up. The other half came out of finally sitting down and playing every shipped dungeon end to end, with a test harness and then by hand, which turned up levels that literally could not be completed.
The short version
The game now reads your actual graphics card instead of guessing, and the Windows build is compiled properly for the first time. If it ran badly out of the box, try it again.
Several dungeons could not be finished at all. They can now.
Co-op got its first real two-process test pass, and it found a bug that was kicking guests out of live dungeons.
Performance
The game was reading your graphics card wrong, and could put your PC on a preset it cannot run. It was guessing your card's speed from how much memory it reported, which is a bad signal in two separate ways: an old 8 GB card looked identical to a modern one, and a laptop with built-in graphics reports a slice of your system RAM as graphics memory, so an ordinary laptop could look like a high-end desktop and get put on Ultra. It now identifies the actual card. If you were hit by this, Options has an Auto-Detect button that will re-pick for you and tell you what it found.
The Windows build was compiled the slow way. Cryptr was shipping on the older of Unity's two compilers, which leaves a large amount of CPU performance on the table. It now ships on the faster one. Nothing about the game changes, it just gets more frames out of the same PC, and the gain is biggest exactly where you want it: crowded fights with a lot going on.
Dynamic resolution, for when a fight gets heavy. New toggle in Video. With it on, Cryptr quietly drops the internal resolution a little when the frame rate starts to slip, and puts it back the moment the pressure is off. It only ever moves between 60% and whatever Render Scale you set, so it can never go sharper than you asked for or blurrier than the picture can carry. A horde spawning should cost you a bit of crispness for a few seconds instead of costing you the frame rate right when you need it. On by default on lower-end systems, off on machines that do not need it.
Cryptr sets itself up for your PC on the first launch. It works out what you are running and picks a matching preset: quality, frame rate, resolution scaling and the heavier effects, all together, before you ever open the menu. Swap a graphics card or a monitor later and it notices and re-tunes, unless you have already set things by hand, in which case it leaves your choices alone.
Low and Medium actually ask less of your GPU now. Both skip shadows cast by small local lights, and Low also drops the expensive shadow softening. Sunlight and the main shadows are untouched, so nothing goes flat.
Texture memory scales with the preset. Every preset used the same texture budget regardless of your hardware. Low now uses less (and half-resolution textures), which is what the weakest machines actually need, and High and Ultra get a much larger budget: on a card with plenty of memory the old limit was forcing textures to blur out and pop in for no reason.
Changing Quality no longer overrides your V-Sync or frame cap. Switching preset was quietly resetting both. In the worst case it turned V-Sync back on, which made a frame cap you had set stop working entirely.
Levels load faster. Collision data for scenery is now prepared when I build the game instead of every single time you load in.
A big download saving. Navigation data across the game went from just over 1 GB to about 60 MB with no change to how anything plays. Several levels were storing pathfinding for an entire kilometre of terrain the fight never visits: the farmstead alone carried 631 MB of it, and the Infernal Deep finale shipped a 192 MB navigation mesh that is now 1 MB.
A note on Ultra, because I think you should have the numbers I have. I benchmarked the shipped build on an RTX 5090 at 1080p in the Sky Citadel: Low 110 fps, Medium 96, High 66, Ultra 54. Ultra costs roughly twice what Low does, and it is the setting the old detection code was handing to cards a fraction of that speed. Ultra is not broken, it is just genuinely expensive, and now the game only recommends it to hardware that can pay for it.
Dungeons that could not be finished
I built a harness that plays every shipped dungeon, and then played them myself. This is what it found. None of these are subtle, and all of them are fixed.
Every boss dungeon was impossible to finish. The game was counting things that were not even in the level toward "defeat the boss", so the objective wanted 96 kills in a room containing one boss. It could never tick over no matter how many times you killed the actual boss. Boss objectives now count only the boss.
Several dungeons were eerily quiet, and it was a bug. In the Sky Citadel (floors 1 and 3), the Ice Dragon arena and the Infernal Deep finale, you could walk the whole level and nothing would ever come for you. The spot you spawned at was cut off from the rest of the map as far as the monsters' pathfinding was concerned, so they could not reach you and you could not reach the objective. The Infernal Deep finale was the worst of them: the Broodmother was sitting half a kilometre from where you spawned, which made that boss simply unbeatable. It is a real fight now.
Three dungeons had objectives nobody could walk to. The deep crypt's ritual altars, the soul relay's receiver, and both dragons in the Ice Dragon arena were sitting in rooms with no way in. You could clear everything else and the objective would never move. Every objective in every dungeon is now verified reachable from where you spawn.
Monsters stood still in four levels. Overgrown Ruins 1, the Catacombs ritual floor, the catacombs boss arena and the desert town had no navigation data at all, so enemies could not chase, allies could not follow, and pets just stood there. All four are rebuilt.
Overgrown Ruins 1 was missing most of its fight. Fifteen of its nineteen spawn fountains were cut off from the rest of the level, so the horde they were meant to send never arrived and the level could not be cleared. All nineteen are in play.
The farmstead defence barely showed up. Two of the five spawn points the horde attacks from were stranded, so most waves never walked onto the field. The same problem hid three of four spawn points on Sky Citadel floor 4.
Finishing Ancient Caverns did not count. Clearing it recorded the wrong dungeon, so the Infernal Deep sector never advanced and the next node stayed locked however many times you beat it.
Two Crucible objective totems sat below the arena floor and could not be attacked. Raised.
No more fake victories. A dungeon whose objective was wired up wrong used to show you the green DUNGEON CLEARED card and send you home having fought nothing. It now reports the problem and returns you to the Tower instead of pretending you won.
A failed spawn returns you to the Tower instead of soft-locking. If a hero could not be placed in a dungeon, you used to be left with no body and no way out.
Carrying the cursed idol is survivable again. The idol pulls every enemy in the level onto whoever is holding it, and constant incoming damage kept restarting the stagger, which pinned the carrier in place. Since carrying also stops you fighting back, a swarmed carrier could neither move nor swing: one run sat in one spot for 89 seconds and took 13,000 damage. A carrier still staggers, but keeps their feet.
Combat
Attacks no longer miss enemies standing right in front of you. When a swing went out the game asked the physics system what was inside the arc, and got back a list with a hard size limit. It was asking about everything: walls, floors, crates, doorway triggers, scenery. In a bare test room that is fine, because there is nothing else to find. In a properly decorated room the list could fill up with scenery before it ever reached an actual enemy, and those enemies silently fell off the end. The result was a swing that clearly connected and did nothing, seemingly at random, and always worst in the busiest rooms. The game now only asks about things it can actually hit. If you have ever sworn at a whiffed hit in a crowded room, that was this.
Ranged enemies have stopped getting in each other's way. A caster checked whether anything was between it and you before committing a spell, and counted its own allies as an obstacle, so a pack of archers or mages standing shoulder to shoulder would mostly stand there while whoever had a clean lane did the shooting. They see past each other now and all of them fire. Grouped ranged enemies are noticeably more dangerous than they were, which is how they were always meant to read. I am watching this one and will tune it if packed caster groups turn out to be too much.
Bosses no longer notice you through walls. The Ice Dragon would wake while you were on the far side of the arena and charge in a straight line, clipping through the wall and down the spiral to reach you. Bosses now have to actually see you before the fight starts, and they stay in their own arena instead of chasing you out of it. The boss health bar stops appearing before you have met the boss.
The Broodmother fight could stall out. Getting close enough to swing at a boss that large did not register, so you could stand inside her taking damage without ever landing a hit. Reach is now measured to a creature's body rather than its centre, so big bosses can be fought at the range they look like.
Your summons no longer take damage from your own attacks. Elemental minions were being caught by their summoner's swings and spells. Only enemies can hurt them now.
Two classes could not be played at all. The Dwarf Berserker and the Dark Wizard were selectable but had no body wired to them, so picking either dropped you straight back to the hub. Both work, though they currently share their base class's model.
Talents
I put every node in all ten talent trees through the real game: buy it at max rank, respec, buy it again, and measure what actually changed. 1,920 checks across 13 classes.
Talents you refund now actually come back off. A handful of talents that boost stamina recovery (Resolve, Evasion, Endurance) were stuck on once bought: refunding left the bonus in place, and it quietly grew again every time you levelled up or changed your build. Eight nodes were leaving residue behind. Now none are, and the whole set is checked on and off automatically every build so it cannot come back.
Two Knight talents were secretly the same talent."Bastion" and "Last Bastion" shared an internal id, so buying either silently applied both and lit both frames. They are separate nodes again.
The Berserker's Maim now does something. It was firing an effect the game had no handler for, which made it a dead point next to Rend. It leaves the target taking more damage now.
Co-op
Co-op had no automated coverage at all, for a structural reason: the networking layer can only be host or guest in one process, so a single test can never watch replication happen. I built a harness that drives two real game processes instead, which is also the truer test, and ran it a few dozen times.
Guests were being kicked out of live dungeons. Some enemies could spawn in a state where the networking layer choked on the first update about them, and it responds to that by dropping the connection. So a guest would get thrown out mid-run and the game would blame the host's connection, while the host was perfectly fine. It was happening in roughly one run in four. Seventeen consecutive clean runs since the fix.
Nobody ends up staring at a black screen. A guest who had not picked a class before the host travelled could arrive in a dungeon with no camera at all: nothing rendering, with the HUD and leftover hub menus floating over the top. It now always gives you a view.
Joining a run in progress no longer drops you into an empty world. A friend who joined after the host had already descended into a procedurally generated dungeon would land in a void with enemies floating in it, because the layout was built once and never rebuilt for latecomers. The host now replays the run to you when you arrive.
Drop-in guests no longer pilot a random hero. Joining mid-scene used to hand you a generic bodiless placeholder with a live camera until you picked a class.
Classes you build in the Class Forge are playable in co-op. A guest picking a custom class was silently rejected and bounced back to the picker forever, because the host had no copy of your recipe to spawn from. Your class now travels with you.
The tutorial is solo only. Hosting a co-op game and entering the Trial Grounds pulled the whole party in, and a lagging or dropped guest could stall the host through a series of 30 second waits and leave rooms sealed. Hosts reported not being able to finish the tutorial at all. The Trial Grounds are now a solo space.
Wiping twice in one sitting works properly. After a party wipe, hosting a second session in the same launch left a later wipe with no retreat, so the party stayed stuck on the floor.
The results card credits casters and archers. With AI allies in the party, which is the default, the end-of-run scoreboard showed Damage 0 for spell and bow classes. It was failing to tell you apart from your bots.
The Tower, menus and the Level Editor
Coming home no longer makes you pick your class again. Returning to the Tower opened the class picker and did not re-spawn your hero, so every dungeon-to-town trip meant choosing all over again.
Pressing Enter on the main menu no longer eats your keyboard. It was opening the in-game chat box over the title art, after which every keystroke went into the chat line instead of the menu, which looks exactly like a frozen game.
Playing on a controller no longer breaks aiming. With no mouse plugged in, the game threw an error every single frame the moment you aimed.
Menus in two levels would not respond to the mouse. The Sky Citadel third floor and the desert town were on an old input handler, so on-screen buttons there could not be hovered or clicked at all.
Sound was being mixed from the wrong place. Two listeners could be active at once, so positional audio was computed from an arbitrary one of them.
A stray "Open E" prompt is gone, along with the broken script behind it that was failing every frame in about a dozen levels.
The farm's building list reads like a place now. The panel used to list buildings by their raw asset names ("SM MF House 03"). It says Farmhouse, Barn, Shed, Chicken Coop, Windmill, Water Mill and Well now, numbered where there is more than one, and the header matches the level's actual name.
Spell effects across the game were rendering as flat cards. Magic orbs, impacts, weapon trails and auras were being drawn with a solid surface material instead of a particle one, so an effect that should have been a soft glow came out as one big opaque texture. 65 effect materials fixed.
The Necromancer's aiming marker was a placeholder. It was a ring drawn in code. It now uses the same authored spell art as the bolt you fire and the rain you channel.
Bonus levels can be added to and removed from your own level list. Levels that ship with the game, like Helm's Deep, could only be opened as a starting point. There is an Install button now, after which you can rename, play, publish or delete it like anything you built yourself, and delete keeps it deleted.
The level browser no longer offers buttons that do nothing. Levels supplied by mods showed Delete and Rename, which quietly had no effect. They are marked "(mod)" now and offer Duplicate, which makes an editable copy that is yours.
Saving a level cannot overwrite a different one whose name happens to reduce to the same folder, and a level with a missing or outdated environment block no longer loads as a pitch-black, unplayable room.
Sharing two classes with the same name from the Class Forge no longer overwrites one with the other.
Telling me when something goes wrong
Almost everything above was found by me, late, by playing. That is a bad way to find out. So Cryptr can now tell me directly, and all of it is one switch you can turn off.
Report a problem without leaving the game. Hit Escape and there is a "Report a Problem" section in the pause menu. Pick what went wrong (stuck in the level, combat not landing, something looks wrong, bad performance, a co-op problem, or something else) and press Send. No typing, no email, no alt-tabbing. The game attaches its own log and a snapshot of what was happening at that moment, so I get the detail without you having to describe it. If you have ever been wedged in a wall and just quit instead of writing it up, this is for you.
Crash reports reach me automatically. If the game hits an error it sends an anonymous report, instead of the crash file sitting on your PC where I will never see it. It is deliberately restrained: the same fault is only ever sent once from your machine, it is capped at three a day, and it uploads a few kilobytes rather than your whole log. Your Windows user name is stripped out first.
The game can tell me when it dies badly. If Cryptr closes the way it should, nothing happens. If it vanishes outright (a driver fault, a crash the game cannot catch), it leaves a note behind and sends a short anonymous summary next launch: how long the session ran, how far you got, and how well it performed. That is the difference between me guessing at a crash and being able to fix it.
All three are the same toggle, under Options then Diagnostics, and there is a button there to open the crash folder on your own PC if you would rather send things yourself. No personal details, no chat, no save data.
Known issues
Co-op still needs a two-machine test. Everything above was proven with two game processes on one PC, which covers the networking, spawning, replication and scene changes. What it cannot cover is the Steam lobby and invite plumbing, because both processes share one Steam client. That is the next thing I am doing.
There is no host migration. If the hosting player's game crashes or their connection drops, the session ends for everyone. Guests at least get a clear "Lost connection to the host" message now instead of a silent bounce to the menu.
Some environment surfaces look simpler than intended. A mass fix for magenta materials flattened a batch of custom effects (animated grass sway, flowing lava, translucent ice, snow-blended rock) down to a plain lit surface. Texture and shape carry over, the motion does not. Being restored pack by pack.
Colorblind Mode corrects the 3D world only. HUD elements are not recoloured by it yet. That needs a larger change and is planned rather than patched.
The Paladin's two-handed grip is still being fine-tuned and can sit slightly off in the hand.
Thank you
This patch exists because of three things: one refund note that said the frame rate was too low, one long review that took the trouble to describe what was wrong instead of just leaving, and a run of my own where a dungeon would not finish and I finally stopped assuming it was me. The first two are the hard ones to leave, and they are the most useful thing anyone can give me.
If something feels off, use Report a Problem in the pause menu. It takes two clicks and it lands on my desk with everything I need.
Source
Changelog.gg summarizes and formats this update. How we read updates.
