All Playtest Notes

Fourteen Rules Changes and the First Real Tiles

· playtest, release, combat, art, systems


This build absorbed a full week-plus of backlog in one cut, so it's bigger than usual: fourteen RulesVersion bumps (111 → 125), almost every one of them a fix for something a playtester actually reported, and — for the first time — real tile art instead of flat color. Below is every fix and feature that shipped, what it means for a run, how to test it, and what a still-broken result looks like.

Priority this week

The thing most worth your time is the tile art and lighting, since it's brand new and untested at scale:

  • Descend through all five level themes — warren, catacombs, caverns, drowned, emberworks — and look for black or unpainted squares, a tile that clearly belongs to the wrong theme, or a bad seam where floor meets wall, chasm, or mire.
  • Stand near a wall with an unexplored room behind it and confirm torchlight stops dead at the wall instead of bleeding into the neighbor. Check the same near a chasm edge and at a two-wide doorway right after you open it.
  • Actors are still glyphs on purpose — the sprite rendering system shipped this build, but no actor art has been painted yet. Don't file that as a bug; it's GH #278/#279, still open.

If you've got a spare run after that, confirm the Shockwave and rest-behind-a-wall fixes below are genuinely gone — they're the two most likely to still be lurking in a slightly different form.

Fixed

Splitters actually split now (GH #304). The old rule required a Splitter to survive a hit with at least double its "min HP" remaining — for rat-swarm specifically, that threshold was arithmetically unreachable with a starting short sword, so it could never split on your first encounter with one. Splitting is now unconditional on any non-lethal hit, capped at two generations (one body becomes two, those two become four, then it's done regardless of further hits). Rat-swarm was rebuilt around the new rule: 6 → 18 max HP, min depth 2 → 4, one per room instead of open spawning. Test: fight a rat-swarm, ooze, or shoggoth (all three Splitters) and land a non-lethal hit. Watch for: a lineage splitting more than twice, or splitting on a killing blow.

Summoners that were silent now call their broods (GH #305). The keener and acolyte cap their summon type against a level-wide population count, which meant a floor was often already over the cap from pre-placed, unmet monsters before you ever triggered the summon — so the ability looked broken. Spawns are now attributed to the specific caller instead of counted globally; piper's own cap tightened from 6 to 4 to keep pace. Test: find a keener (calls lemures), acolyte (calls wretches), or piper (calls gnawers) and let it act uninterrupted. Watch for: the ability visibly doing nothing, or an unbounded swarm that never stops calling.

Shockwave bursts before the knockback (GH #317, GH #313). Two related fixes to the same ability. First, Shockwave used to knock a foe back before dealing its burst damage, so an on-death ability (like the Vrykolakas's death-burst) never triggered if the knockback itself wasn't lethal but the burst was — the kill "happened" too late for the trigger to see it. Second, once burst-before-knockback was fixed, killing the front foe outright with the burst could skip the billiards rule entirely, sparing whatever stood behind it. Both are fixed together: the tile a foe would be shoved into is snapshotted before burst damage lands, so whatever's on that tile still takes the slam even if the front foe dies from the burst. Test: line up two foes and Shockwave the front one for lethal damage. Watch for: the foe behind the front one taking no damage, or a death-triggered ability on the front foe not firing.

Rest works through a wall now (GH #314), and while Hidden (GH #298). Rest used to be blocked by any hostile sharing your room, even one standing behind a solid wall with no line of sight — contradicting the Player Guide's own promise that ducking out of sight lets you rest. It's now gated on actual line of sight, not room membership. Separately, a hero who successfully used Hide could never rest at all, because the rest gate ignored awareness and treated a fooled, dormant hostile the same as an alert one. Test: get a hostile in your room but put a wall between you, then press r; separately, Hide near a hostile and try to rest. Watch for: rest still refusing with a clear wall between you and every hostile, or Hide not unlocking rest.

Melee pursuers stop flip-flopping near a pillar (GH #321). An AI chasing you picks its best approach tile fresh every turn, ranked partly by which side of you counts as "the rear" — which flips the instant you turn in place, even without moving. Next to a pillar, the two candidate approach tiles can sit on opposite sides of it, so a pursuer mid-approach would abandon a nearly finished route and loop around the column instead, reading as erratic fleeing. A held approach now only gets abandoned by a strictly better option, not by a pure facing flip. Test: stand near a pillar with a melee pursuer approaching and turn in place without moving. Watch for: the pursuer reversing course or circling instead of continuing its approach.

One step clears the whole pile (GH #336). Stepping onto a tile with several items on it used to recover only one, forcing you to step off and back on repeatedly. A single step now collects everything on the tile in one go, and dropping a potion or scroll merges into an existing same-type stack instead of fragmenting into more ground entries. Test: drop two or three potions of the same type on one tile, walk away, then walk back onto it. Watch for: needing more than one step to clear a pile.

Snare's movement tax can't be dodged by a pickup step (GH #284). The doubled movement cost for moving while rooted was silently skipped whenever the destination tile held a ground item, a chest, an undisturbed grave, or a memory fragment — a free escape hatch from any root, present since a much earlier fix that (correctly) changed how bump-attacks are charged but broke this rule as a side effect. The tax now keys on the move you issued, not what it resolved into. Test: get rooted (Snare, Trip, Gaze, or a stagger effect) next to a tile with a visible item, chest, grave, or fragment, then move onto it. Watch for: the step costing the normal amount instead of double.

Armor's bonus number agrees everywhere it's shown (GH #332). The inventory panel was double-counting an item's enchant bonus on top of a protection value that already included it — a +2 chain hauberk showed +8 in the inventory but +6 in the HUD. All four places a piece's armor bonus is displayed — HUD, inventory row, hover tooltip, and the equip bark — now compute and show the identical number. Test: equip an enchanted or sundered piece of armor and compare the number in the HUD, inventory, hover tooltip, and the "buckles on the X" log line. Watch for: any of those four disagreeing.

The Labyrinth's voice stopped gloating over kills you didn't make (GH #333). Returning to a previously-visited floor whose remembered Mood was higher than the floor you'd just left counted as a genuine "Mood rise" to the voice system, so it fired a kill-flavored gloat line even though you'd only taken the stairs. That bark (and the associated first-time hint) is now suppressed on a floor-restore; a live kill on the current floor still gets the full reaction. Test: raise the Mood on one floor, descend, then return to it. Watch for: a gloating "another corpse" style line firing on the return with no kill involved.

Merchant stock now guarantees a weapon and an armor piece (GH #297). The Merchant used to free-roll four gear slots across wands/armor/weapons/rings with no guarantee any particular category showed up — a stall could offer four wands and nothing to wear or wield. Stock is now guaranteed at least one weapon row and one armor row, with more total rows (6 gear slots, 2 potions, 1 scroll) so there's more to browse besides. Test: visit any Merchant from depth 3 on. Watch for: a stall with no weapon or no armor for sale.

Memory fragments now draw from ten alternates per depth (GH #299), a hundred pages total instead of ten — so a full descent no longer reads the identical lore page at each depth every single run. Test: read fragments across two or three separate runs and compare the pages found at the same depth. Watch for: the same exact page appearing at the same depth on consecutive runs (rare by design, not impossible).

Added / changed

All five level themes ship real tile art (GH #275, #276, #289). Warren, catacombs, caverns, drowned, and emberworks all now render painted floors, walls, cover, and hazard terrain instead of flat color placeholders — this is the priority ask above.

Lighting fixes to go with the new art. Walls now occlude light correctly by casting shadows from a merged wall skin instead of letting torchlight bleed into unexplored neighboring rooms (GH #356); the memory-light effect no longer casts its own shadows and was dimmed slightly (GH #358); bloom no longer haloes torchlight past the edge of the floor (GH #359); a two-wide doorway repaints both leaves correctly when toggled (GH #341).

Separate volume sliders for Music and SFX (GH #346). Previously one shared slider; the Settings panel now has independent controls for each bus.

Numpad cardinals and the wait key are bound (GH #334) — numpad arrows move you, and the wait key works as expected; previously unbound on some keyboard layouts.

The keyboard no longer goes dead on first launch (GH #294) — a first-launch focus issue meant keyboard input didn't register until you clicked somewhere in the window first. Fixed.

You can return to a normal run after loading the weekly challenge (GH #335) — previously loading the challenge seed could leave you stuck unable to start a fresh, non-challenge run.

Also landed

Smaller fixes with no dedicated test procedure, grouped here: the Player Guide's tabs moved to a left sidebar to fix Search clipping (GH #318); dormant conditional abilities are now tagged in the hover inspector (GH #316); GrantAbility potions describe what they do in their tooltip (GH #319); rest-until-healed log spam is coalesced with interruptions flagged clearly (GH #302); the scroll read-target picker no longer appears while a scroll is still unidentified (GH #295); the memory-fragment reading page now correctly suspends gameplay input while it's open (GH #282); an Archer's bolt no longer gets deleted unseen under fast movement (GH #312); ActiveBuff.FromHero joined the state-certification digest as a coverage fix, no player-visible change (GH #283); playtest-mode graves are now scoped correctly and cheat-spawned graves are suppressed from ranking (GH #326); abandoning a run no longer leaves a stray legacy record behind (GH #308); the itch.io page got an ink-and-parchment pass to match the site redesign (GH #337); the Reports page on the website now shows both open and recently-closed GitHub issues with short excerpts (GH #322, #324); and a stuck challenge-fetch spam issue on the website was fixed (GH #340).

Found something? Esc → Report a Bug/Feature, same as always.