Update log
Updates are organised around the protocol version, because the server matches it exactly — when the protocol changes, older clients can’t connect at all. That axis answers two questions at once: what changed in the game, and whether you need a new client.
Categories
Section titled “Categories”| Tag | Meaning |
|---|---|
| New system | A new gameplay mechanic |
| Balance | Changes to numbers, the economy, or drop rates |
| New items & assets | New weapons, armor, models, music |
| Fix | Bug fixes |
| Performance | Runtime efficiency and load times |
| Client | Desktop client only; nothing to do with the game server |
Protocol v84 — client v0.54.0 (current)
Section titled “Protocol v84 — client v0.54.0 (current)”The live server currently requires v84.
New systems
- A rowable boat, sold by Rica (2026-09-16) — use a Rowboat from your
bag while standing in water to board, and again to leave; the boat isn’t
consumed. It costs 1g, cheaper than horse reins (1g 50s) since it only
works on water. Where you can row follows the same rule as where you can
fish: any water deeper than 0.1m floats it, sea or river alike; row into
water shallower than that and the hull grounds itself on the next check,
putting you ashore automatically. Rowing moves at 1.25x walking speed with
a 1.2m turning radius (wider than a horse’s). The boat floats on the
surface, so you don’t pick up the wet debuff, and combat doesn’t throw
you off — unlike a horse — though the existing mounted-state restriction
on casting skills still applies.
Player.mountedused to mean only “on the horse”; it now distinguishes horse and rowboat as two mount kinds. This bumped the protocol to v84. See Mounts.
New items & assets
- Dungeon corridors now use cave and masonry theme sets, with new floor puddles and drip sound effects (2026-09-18) — corridor walls and floors pick a fixed limestone, mossy rock, or brick-and-tile material set based on the dungeon id and floor depth, with new weathering decals on walls and worn rubble/crack textures on floors; brick floors locally show broken edges down to the dirt underneath. Puddles that appear on the floor now come with a matching drip sound, inaudible past 10m. Also fixes flickering on masonry floors at certain angles and underground fires that were invisible in some corridors. A visual and audio update only — gameplay is unchanged.
Performance
- Bridge textures recompressed and static assets now pre-gzipped
(2026-09-17) — the main wooden bridge model’s textures were re-encoded as
JPEG, cutting the file size by 44% (about 72% less transferred once
gzip’d); the build now also generates
.gzversions of GLB, JS, CSS, and WASM files ahead of time so nginx can serve them directly instead of compressing on every request. In practice, assets load faster when entering the game or changing scenes.
Client
- agent-client updated to v0.54.0, matching protocol v84 (2026-09-19).
Protocol v83 — client v0.53.0
Section titled “Protocol v83 — client v0.53.0”Performance
- Terrain files are now served straight from hash-verified source files
instead of pre-baked transfer bundles (2026-09-17) — nginx now serves the
game’s actual terrain source files directly at
/api/terrain/files/{path}; since those paths can change content, responses rely on content-hash verification instead of HTTP cache headers, and a new/api/terrain/manifest/{x}/{z}endpoint hands clients the file list and hashes on a cold load. This retires the pre-baked snapshot files and generator introduced in v81. This bumped the protocol to v83.
Fixes
- Mounts no longer snap to the exact target position when arriving at a waypoint (2026-09-16) — horse arrival now follows the same arc-based approach used mid-path instead of teleporting the last stretch, so movement looks smoother.
Client
- agent-client updated to v0.53.0, matching protocol v83 (2026-09-17).
Protocol v82 — client not yet released
Section titled “Protocol v82 — client not yet released”Performance
- Grass data is now stored as per-cell counts instead of individual blade positions (2026-09-16) — the server now stores only a count of short grass, tall grass, and flowers (0-255 each) per 1×1 m cell instead of each blade’s position, rotation, and scale; the client regenerates the same-looking blades from a seed derived from the cell’s coordinates and kind, so placement stays stable across reloads and neighboring-cell edits. Existing terrain files need an offline migration; the format moved from GR03 to GR04. This bumped the protocol to v82.
Protocol v81 — client not yet released
Section titled “Protocol v81 — client not yet released”Performance
- Terrain data now downloads individually over HTTP instead of riding inside the WebSocket payload (2026-09-16) — the WebSocket message now only carries a tile’s coordinates and content-hash versions; the actual height, ground material, tree, grass, and landscaping data is fetched over versioned HTTP URLs with long-lived immutable caching. The same change let nginx serve up to 1 GiB of shared cache and merge concurrent requests for the same URL. This bumped the protocol to v81.
Protocol v80 — client v0.52.0
Section titled “Protocol v80 — client v0.52.0”Performance
- World event delivery was rebuilt around shared interest sets, and redundant work was trimmed out (2026-09-15) — the server’s “who can see whom” logic was rewritten, and reconnecting or changing floors now sends a full terrain snapshot to resync instead of patching incrementally. Nothing should feel different in normal play; it’s a server-side efficiency change. This bumped the protocol to v80.
Fixes
- Respawning in a bed no longer briefly shows the wrong floor (2026-09-15) — fixed the order respawn sync cleared dungeon depth and applied the new floor, which could flash the pre-respawn floor for a moment.
- Your health bar no longer flickers back up after getting hit (2026-09-15) — fixed a stale, out-of-order damage message occasionally overwriting a more recent, lower health value.
- Monsters that can’t path back to their spawn point no longer get stuck juddering in place (2026-09-15) — a blocked return path now retries on an interval and only falls back to idle once it genuinely can’t find a route, instead of stalling on the same blocked path.
Balance
- The four Skeleton Crypt floor keys dropped from 0.1 kg to 0.001 kg (2026-09-15).
- Ogre and female orc death sounds turned down by 10 dB (2026-09-15).
New items & assets
- Skeleton-type monsters got dedicated hit sounds instead of sharing a generic impact sound (2026-09-15).
Client
- agent-client updated to v0.52.0, matching protocol v80 (2026-09-16).
Protocol v79 — client v0.51.0
Section titled “Protocol v79 — client v0.51.0”New systems
- Characters now have a mana (MP) bar, and Guardian Ward costs MP instead of satiation (2026-09-14) — a blue MP bar sits under the HP bar for every class, even without any MP-spending ability yet. Max MP is calculated from class, WIS, and level, and regenerates naturally every 16 real seconds, starting 10 real seconds after your last spend; existing characters were topped up to full MP the first time they logged in. MP syncs only to its owner. Guardian Ward used to cost satiation — it now costs 2 MP, and can’t be cast below that. This bumped the protocol to v79. See Combat.
Fixes
- Clicking to move onto a blocked spot no longer gets you stuck (2026-09-15) — clicking somewhere unreachable used to leave movement half-started, waiting on the server’s position correction; it now cancels cleanly and snaps straight to your actual server position.
Client
- agent-client updated to v0.51.0, matching protocol v79 (2026-09-14).
Protocol v78 — client not yet released
Section titled “Protocol v78 — client not yet released”New systems
- Standing in the rain long enough now gets you wet, and it sends NPCs indoors (2026-09-13 – 2026-09-14) — full-intensity rain takes 10 in-game minutes (75 real seconds) of continuous exposure to trigger the Wet debuff, half intensity takes twice as long; going indoors, into a dungeon, or dying resets the accumulated exposure, and the effect is identical to wading. Wick and Signe both pack up and head into the inn once it starts raining on their outdoor spot.
- Rain now leaves puddles, reflects nearby light, and can strike lightning (2026-09-13 – 2026-09-14) — the ground gradually puddles as rain accumulates and dries out after it stops; raindrops and splashes pick up nearby torchlight and firelight; and above a rain-intensity threshold the sky occasionally flashes with thunder following, toggleable in Settings.
- Western Valdran now has seasons — wet winters, dry summers (2026-09-14) — only rain chance around the village of Aldermark varies by season; the yearly average wet-time there dropped more than 40%.
- Admins got a
/weathercommand to force or clear server-wide rain (2026-09-13).
This bumped the protocol to v78. See Weather.
Protocol v77 — client not yet released
Section titled “Protocol v77 — client not yet released”New systems
- The Skeleton Crypt dungeon opened — 20 floors, boss is the Skeleton Knight (2026-09-13) — the tier-4 gear dungeon; its final chest guarantees a Breastplate and Great Sword, with a Plate Helmet and Plate Gauntlets each at 30%. Floors 5/10/15/20 each need their own Skeleton Crypt key to open the sealed stair room. Killing the Skeleton Knight awards a new title, with a separate one for a solo kill.
- Reconnecting now restores Double Slash’s remaining cooldown (2026-09-13). This bumped the protocol to v77.
Fixes
- Equipping a torch while wielding a two-handed weapon now stows the weapon automatically instead of getting rejected outright (2026-09-13) — off-hand equip requests used to always fail while a two-hander was equipped; a torch is now the one exception, and it puts the two-hander back in your bag first. Other off-hand items like shields still can’t be equipped that way.
- Your own nameplate, title, and health bar no longer disappear behind walls or terrain (2026-09-13).
Protocol v76 — client not yet released
Section titled “Protocol v76 — client not yet released”New systems
- Ability targeting now prioritizes the monster under your cursor, and out-of-range attempts get their own rejection message (2026-09-13) — currently only affects True Aim, which is still hidden and unavailable (see v74–v75 below). This bumped the protocol to v76.
Protocol v74–v75 — client not yet released
Section titled “Protocol v74–v75 — client not yet released”New systems
- Radiance and True Aim abilities were added, but stay hidden for now (2026-09-13) — Radiance is a self-only light toggle usable with any weapon, lasting 120 seconds once lit; True Aim is a bow skill that guarantees a hit on the marked target for 5 seconds, on a 10-second cooldown. Both are fully supported server-side and on the wire, but they’re deliberately hidden from the skill list and quickslots, so players can’t use them yet. This bumped the protocol to v74, v75.
Protocol v71–v73 — client not yet released
Section titled “Protocol v71–v73 — client not yet released”New systems
- Guardian Ward and Double Slash shipped as default class abilities
(2026-09-13) — Guardian Ward is a Knight’s default defensive skill
(Sword or Mace + Shield required), giving +10% Guard to yourself and
party members within 20m on the same floor for 60 seconds, on a
45-second cooldown. Double Slash is a Rogue’s default dagger skill,
splitting your next basic attack into two independent 100%-damage hits,
on a 10-second cooldown. Both drag onto the existing 1–0 quickslots.
Shields also got their own
armorType: shieldclassification, and the Goblin Sword and Small Sword were folded into the Sword weapon type. This bumped the protocol to v71, v72, v73. See Combat.
Protocol v70 — client v0.50.1
Section titled “Protocol v70 — client v0.50.1”New systems
- Regional weather — it only rains under a cloud cell, and cells sit still (2026-09-12) — the world is baked into four climates (wet coast, rain shadow, alpine, temperate), each cut into sectors that independently roll when it rains, for how long, and how wide. The ground under a rain cell dims, gets rain and sound; everything outside is untouched, and cells never drift — they just fade in and out over time. This bumped the protocol to v70. See Weather.
Fixes
- Getting your path blocked while mounted no longer snaps you straight back to where you started (2026-09-12) — the server now backs the horse up a few steps first (playing a reverse walking animation) to find clear room, then replans a route to your original destination, streaming authoritative position and rotation the whole time. Only triggers while mounted, outdoors on the ground, and out of combat. This also bumped the protocol to v70. See Mounts.
New items & assets
- A successful enchant now plays about 5 seconds of light effects visible to everyone on your floor (2026-09-13) — a weapon enchant traces golden filaments and a halo along the blade with the character holding it raised; armor radiates golden rays from the chest. Moving, fighting, interacting, or mounting/dismounting cuts it short. Purely visual — it doesn’t affect the enchant’s odds or outcome. See Enchanting.
Client
- agent-client updated to v0.50.1, matching protocol v70, and now treats the weather sync message as noise it ignores outright, so it never wakes the LLM (2026-09-12).
Protocol v69 — client v0.49.0
Section titled “Protocol v69 — client v0.49.0”New systems
- Item locks arrived, to stop yourself dropping or selling something by accident (2026-09-10) — the bag panel has a new Lock button next to Select; turning it on shows a padlock on every slot in your bag and equipment, and clicking one locks that item. A locked item’s yellow padlock is always clickable to start unlocking, whether or not Lock mode is on, and unlocking requires typing UNLOCK in capitals to confirm. A locked item can’t be single- or batch-dropped, sold to a shop, put into a player trade, or listed on a stall — batch actions refuse the whole request if even one item in them is locked. A locked weapon can’t be picked by an enchant scroll, and locked armor is excluded from the random enchant-armor target; if every candidate is locked, neither the scroll nor the whetstone oil is consumed. Equipping, unequipping, and normal use are unaffected. Locks are preserved through storage-chest deposits/withdrawals and reconnecting; items that existed before this shipped start unlocked. This message bumps the protocol to v69. See Item locks.
- Ground drops and pickups of ordinary items now get an audit log
(2026-09-10) — successful single and batch drops/pickups are written to a
server-side
item_auditrecord with the character, item type and enchant, the actual quantity moved, the drop/pickup location and floor, and who dropped it; failed requests leave no record, and coin pouches keep their existing pickup log. This is for operators auditing the game — there’s no in-game UI for it. - The
/giveadmin command now takes a quantity (admin only) — the syntax is now/give <item_id> [count], defaulting to 1 with a cap of 10,000 per use. - Arrows now fly straight over fences (2026-09-10) — range checks for ranged weapons no longer treat a fence as a wall; walls, closed doors, and furniture still block a shot the same as before, and fences still block movement and melee attacks. See Combat.
Balance
- Dungeon monster respawns now speed up with how many players are alive in the same 5-floor band (2026-09-09) — floors 1–5, 6–10, and 11–15 are tracked separately: 1 survivor in the band keeps the original 5-minute timer, 2 gives 4 minutes, 3 gives 3 minutes, 4 gives 2:30, and 5 or more gives 2 minutes. Bosses are unaffected by this speed-up.
Fixes
- Fixed smoothed paths occasionally cutting straight across a fence edge when routing around a fence tip (2026-09-10).
- Fixed character names and titles getting clipped when their text label canvas was reused (2026-09-10).
Client
- agent-client updated to v0.49.0, matching protocol v69 (2026-09-11).
- Fixed the agent-client’s fallback movement getting stuck in front of known obstacles (2026-09-10).
Protocol v68 — client v0.48.0
Section titled “Protocol v68 — client v0.48.0”New systems
- Player consignment stalls arrived — buy a Peddler’s Stall from Rica (2000
copper, 20 silver) (2026-09-09) — using it from your bag spreads the same
table an NPC merchant lays out with
/lay_stall; using it again folds it back up, and the item itself is never consumed. Once it’s up, price bag items onto it — up to 12 listings at once — and customers just pay the marked price straight off the table, no haggling, no confirmation step. Listed goods stay in your bag as a soft reservation: the listed quantity can’t be sold, dropped, used, equipped, or put on a trade table, and you carry its weight the whole time. The Peddler’s Stall item holding the table up can’t itself be listed, sold, or dropped, or the table would have no way to fold back up. Every sale burns a 5% sales tax off the seller’s take — the buyer still pays exactly the marked price — because player-to-player trade otherwise bypasses buying from a merchant, the economy’s main gold sink. The owner has to stay within 10 meters of the stall or it packs itself up automatically; changing floor or logging out does the same. The sign board takes up to 32 characters and always carries the owner’s name underneath (no hiding who wrote it);/mutehides and blocks setting it, and a/blocktarget’s sign is hidden only from the blocker. NPCs never buy from a stall — an NPC’s wallet is a server-controlled faucet, and letting it buy would mint gold. This batch of messages bumped the protocol to v68, and also removed the never-functional “click someone else’s stall to open a trade window” path — the merchant class is operator-only, so no player stall ever existed to click, and this route never actually fired. See Player trading for the full rules.
Fixes
- Fixed stall purchases occasionally failing, and the client panel not closing when the stall it was watching packed up (2026-09-10).
Protocol v67 — client not yet released
Section titled “Protocol v67 — client not yet released”New systems
- Removed the bonus fish v66 had just shipped, replacing it with a pre-rolled trophy fight: trophy status is decided at the bite, and landing one means holding high tension for the whole fight (2026-09-09) — trophy status is rolled the moment the fish bites: a flat 20% chance hits directly (doubling the size roll too), and even on a miss the size roll can still clear that species’ trophy-size threshold on its own. Junk never becomes a trophy. Trophy status is announced on the first fight beat and stays fixed through landing, but species and exact size are still only revealed once it’s landed. A trophy only drains stamina while Running at 80 tension or higher, and its tension moves at only 40% of the normal rate, so that narrow high-tension band stays playable on human reaction time; an exhausted trophy lands the same as any other catch — only a snapped line or a timeout comes back empty-handed. This batch of messages bumped the protocol to v67.
Balance
- Trophy encounters now happen roughly once every six bites (2026-09-09) — after accounting for the flat 20% of bites that are always flotsam, a fish bite has about a 20% chance of being a trophy, which works out to roughly 16–17% of all bites (about an 84% chance of at least one trophy in ten bites). Rolling one only means it’s possible to land — you still have to win its high-tension fight.
- Trophy fights now time out at 40 seconds, with a new risk for letting
the pressure slip (2026-09-09) — an ordinary fight still throws the
hook at 60 seconds; a trophy’s fight throws it at 40. Once a trophy’s
tension has crossed 80 for the first time, every full second it spends
continuously below 80 while still Running rolls a 1-in-3 chance of losing
the hook on the spot (a 3-second average, not a fixed countdown); pushing
back above 80, or letting the fish rest, resets that timer. The initial
pressure buildup and the exhausted reel-in are both exempt. A successful
trophy always awards exactly one
trophy_*fish — a separate stack sharing the ordinary species’ icon, at twice the weight and three times the base price, still edible and still grills into the ordinary cooked fish. Catch XP and species titles are only granted once, same as any ordinary catch.
Protocol v66 — client not yet released
Section titled “Protocol v66 — client not yet released”New systems
- Bold play past tension 80 could win a bonus fish of the same species on landing (2026-09-08) — the server tracked how much of a fish’s Running time was spent with tension at or above 80, and that “bold share,” squared and capped at 25%, was the chance — broadcast live to the player — of landing a second fish of the same species. A bold share of 25% / 50% / 75% / 100% worked out to roughly 1.6% / 6.3% / 14.1% / 25% bonus chance; tension decays on its own, so only sustained high-tension play built up the share, and a strong human fight landed around 70–85% (12–18% bonus chance). Junk and coin pouches (rarity 0) never doubled, and the bonus fish granted no extra XP. This batch of messages bumped the protocol to v66. (Superseded the next day by v67’s pre-rolled trophy fight.)
Balance
- Raw fish now stack by species instead of taking a separate bag slot per catch (2026-09-07) — size and trophy status only ever lived in the catch announcement, never on the item itself, so there was no reason to keep same-species, same-trophy-status catches in separate slots. Grilled fish already stacked this way.
Protocol v64–v65 — client v0.47.0
Section titled “Protocol v64–v65 — client v0.47.0”New systems
- Mounted turning now starts its arc from the server’s current position instead of waiting to catch up to the predicted one (2026-09-08) — releasing the turn key cancels the remaining arc, and any queued movement is cancelled too, so turning tracks input more closely. This batch of messages bumped the protocol to v64 and v65.
- Added the Scroll of Estate Return, sold by both Rica and Wick (2026-09-08) — priced the same as the regular Scroll of Return, 800 copper (8 silver). Using one consumes it and teleports the character to safe outdoor ground on their own homestead, even from a dungeon or mid-combat; it avoids buildings, obstacles, and water deeper than 0.1m, preferring a spot near the center of the earliest-claimed plot and falling back to other owned plots if none is found. It is not consumed if you have no estate, are dead, have a pending trade, or no safe spot can be found, and it cannot send you to a plot owned by another character on the same account.
Balance
- Horse Reins dropped in price from 5 gold to 1 gold 50 silver (2026-09-08).
Client
- Mounted turning gained left/right turn animations, and idle and running rider poses got more natural upper-body, hand, and rein motion (2026-09-08) — a sharp turn now plays a matching turn animation, the rider’s upper body tracks the horse’s head horizontally but clamps to ±30° so the whole torso doesn’t swing around, and the rein curve held in both hands updates live to follow the hands and horse’s head.
Protocol v63 — client not yet released
Section titled “Protocol v63 — client not yet released”New systems
- Horse mounts arrived — buy Horse Reins from Rica (2026-09-08) — reins launched at 5 gold (repriced in the next version, see above). Using the reins from your inventory mounts or dismounts; they aren’t consumed and can be reused. Mounted movement outdoors is twice normal speed (base 6 m/s becomes 9 m/s, with existing hunger-based slowdowns still applying); dying, entering combat, walking indoors, or entering deep water auto- dismounts on the next movement tick. Turning follows a fixed-radius arc instead of snapping instantly, and mount state is session-only — you start dismounted after reconnecting. This new message bumped the protocol to v63. See Mounts for details.
Protocol v62 — client v0.46.0
Section titled “Protocol v62 — client v0.46.0”New systems
- Estate editor tabs consolidated — fences and storage chests now share one “Objects” tab (2026-09-08) — storage chests used to open a separate floating placement bar; now they share the same tab in the Landscaper’s Toolbox panel as fences, which now reads Ground, Road, Objects, House. The request to enter placement mode was also unified into a single message, with the server authorizing per-tab access. This batch of messages bumped the protocol to v62.
Protocol v61 — client not yet released
Section titled “Protocol v61 — client not yet released”New systems
- Estate storage chests arrived — buy a Wooden Storage Chest from Aldwin (2026-09-07) — the chest is a furniture item; using one straight from your inventory opens the placement UI. It can only be placed on an estate you own with no back taxes, and inside a building it’s placed on whatever floor you’re currently standing on. There’s currently one capacity tier, 50kg, and no limit on how many chests an estate can hold. The storage UI reuses the trade window’s two-column layout — chest on the left, your bag on the right — with both sides showing the resulting weight live; bound or untradeable items, and chests themselves, can’t go in. An empty chest can be picked back up: it returns to your inventory if there’s room, or drops on the ground if not. Chests are left behind, openable by anyone, if the estate lapses. A house holding a chest can’t be demolished until every chest on every floor has been emptied and recovered. This batch of messages bumped the protocol to v61. See Estates for details.
Protocol v60 — client not yet released
Section titled “Protocol v60 — client not yet released”New systems
- Estate Architect Rowan started selling 5 fixed house scrolls, so you can build a house on your own estate (2026-09-07) — Medium Two-Story House Scroll (2 gold, preview at Rica’s shop), Small House Scroll (1 gold, preview at Karl’s home), Small Two-Story House Scroll (1 gold 50 silver, preview at Aldwin’s home), Large Two-Story House Scroll (5 gold, preview at the Aldermark Inn), and Medium House Scroll (1 gold 20 silver, preview at Rowan’s home). The Landscaper’s Toolbox gained a fourth “House” tab: picking a house scroll from your bag opens a translucent preview, and clicking to confirm has the server re-check distance (within 30m), dry ground, slope (no more than 1m of height difference across the footprint), and no overlap with existing houses before consuming the scroll and spawning the house. The same tab lets you click your own house to demolish it — no materials are refunded. This batch of messages bumped the protocol to v60. See Estates for details.
Protocol v59 — client v0.44.0
Section titled “Protocol v59 — client v0.44.0”New systems
- Landscaping brush radii now support fractions, so a one-cell-wide ground brush lines up cleanly with the grid (2026-09-07) — brush and path widths used to convert to a whole-meter radius only, which left the narrowest one-cell brush slightly off the terrain grid; this new message bumped the protocol to v59. See Estates for details.
Fixes
- A monster’s death animation no longer gets cut short by a stale attack
rejection (2026-09-06) — previously, as soon as the server reported a
monster gone (
invalid_target), the client removed its model immediately; now it waits for a death or dying state before removing it, so the kill animation plays out. - NPC sleep poses (e.g. Rowan’s) now resolve from the server’s furniture placement id instead of nearest distance (2026-09-07) — picking furniture by proximity could grab the wrong piece and produce the wrong pose or height; sleep animations and offsets now come straight from the assigned placement.
- Several house navigation issues were fixed (2026-09-05 to 2026-09-06) — clicking an interior point from outside a house now stops at the entrance first; a closed door in the way of a route is opened automatically before continuing to the destination or object; window clicks only target the floor you can actually see; stair collision and indoor pathing were cleaned up as well.
Client
- agent-client updated to v0.44.0, matching protocol v59 (2026-09-07).
Protocol v58 — client not yet released
Section titled “Protocol v58 — client not yet released”New systems
- Estate landscaping is live — buy a landscaping toolbox from Rowan, the Estate Architect (2026-09-06) — the reusable toolbox opens a landscaping panel from your bag that bundles three tabs: Ground (the existing splat brush), Path (the existing road tool), and Fence (the existing fence placement flow). The toolbox comes with two base materials built in — Meadow Grass and Rocky Trail — and six more landscaping palettes are sold separately; each permanently unlocks its material the first time you use it, so you never buy it twice. Painting only ever affects your own land — a brush or path that overlaps someone else’s or unclaimed ground only applies to the part inside your plot. Terrain edits clear grass and trees under the existing rules, but repainting the ground doesn’t grow them back. This new message bumped the protocol to v58. See Estates for details.
- Rowan, the Estate Architect, moved into Aldermark’s town square (2026-09-06) — wooden fences, the landscaping toolbox, and landscaping palettes used to be sold by Aldwin; they now belong to Rowan’s shop, while Aldwin focuses on deeds and the tax account.
Balance
- World drop rates for both enchant scrolls cut by a tenth (2026-09-06) — the normal rate went from 1% to 0.9%, and the reduced rate for effective-level-8-and-under prey went from 0.5% to 0.45%, to ease accumulating scroll stockpiles.
Protocol v57 — client v0.43.0
Section titled “Protocol v57 — client v0.43.0”New systems
- Wooden fences — place and recover fence sections along your estate’s borders (2026-09-06) — wooden fences are a stackable furniture item, so even a hundred-plus takes one bag slot; buy any quantity from Aldwin, the same NPC who sells land deeds. Double-clicking one in your bag opens placement mode: the whole estate shows a faint, terrain-following 1m dotted grid. Hovering the ground previews the real fence model on the nearest cell edge — green means you can place it, orange means you can recover it, red means you can’t touch it. Click an empty edge to spend one fence and place it; click a placed fence to remove it and refund one to your bag, and the next click is ignored until the server answers. Right-click moves without leaving placement mode; left-click places or recovers. Esc or Done exits, and the mode stays active at zero fences left so you can still recover what’s down. Outside the mode, right-clicking a placed fence within 5m re-enters it, even with an empty bag after relogging. Placing requires one of the edge’s two neighboring cells to be your own plot with no unpaid tax (edges on the outer boundary are allowed too); water deeper than 0.1m or a height difference over 0.5m blocks it. Recovering only works for the plot’s current owner, even while overdue. This batch of new messages bumped the protocol to v57. See Estates.
Client
- agent-client updated to v0.43.0, matching protocol v57 (2026-09-06).
Protocol v56 — client not yet released
Section titled “Protocol v56 — client not yet released”New systems
- Aldwin’s screen split into a dedicated Real Estate screen with a land tax
account (2026-09-05) — clicking Aldwin no longer opens a general shop; he
won’t buy, sell, or haggle over anything else. The left side shows your
deed; below it, your tax account balance, next due date (in-game date plus
a live countdown), the amount coming due, and whether you’re overdue.
Clicking your carried gold deposits into the account, clicking the account
balance withdraws — amounts accept
1g20s30c-style input or a plain copper number, and deposits/withdrawals commit in the same database transaction as your character’s gold and bag. Tax is auto-collected at midnight on the first of the in-game big month, the first payment is waived, missing your last login for 8 consecutive due dates (roughly 30 real days) counts as unpaid regardless of balance, missed dates add to a running overdue count, and depositing the full arrears plus one month instantly restores good standing and waives the next payment. Existing estates only start accruing tax from the month this feature shipped — nothing is billed retroactively. The decay penalties shown on screen are a design baseline only — building and furniture restrictions, ruin rendering, and actually reclaiming a plot (deleting the house, mailing furniture back) after 6 consecutive misses are not implemented yet. This new message bumped the protocol to v56. See Estates.
Protocol v55 — client not yet released
Section titled “Protocol v55 — client not yet released”New systems
- Homestead claims — Land Registrar Aldwin sets up shop on Aldermark’s town square, selling land deeds (2026-09-05) — a Land Deed costs a flat 50,000 copper (5 gold), no haggling; buying and carrying one has no level requirement, but using one requires character level 10+. Double-clicking a deed while standing on the plot you want shows a terrain-following grid for your current 32×32m cell and a “Claim this plot?” confirmation; the server checks claim conditions as soon as the preview opens, showing a red grid with the rejection reason and hiding the claim button if they aren’t met, and refreshes the current cell and eligibility about 0.35s after you stop moving. Confirming re-checks every condition and registers the plot while consuming one deed in the same transaction; cancelling or failing never consumes the deed. Each account can own one homestead estate, expanding to up to 16 cells by claiming ones that share an edge with it — a disconnected second plot needs a different account. Crown land (near towns and dungeon entrances, meant for auctions, tournaments, and merit grants) shares the same claim flow but has no acquisition path yet. This new message bumped the protocol to v55. See Estates.
- The world map now shows land ownership colors and tooltips (2026-09-05) — zoomed in, crown land and reserved land (towns, dungeon entrances, the sea) show as filled color blocks while homestead plots show only grid lines; owned plots are filled blocks, with your own in an accent color; plots up for auction get a flag icon with a countdown; unpaid, neglected, and ruined plots fade the ownership color by stage; owner and estate name labels appear at high zoom.
Protocol v53 — client not yet released
Section titled “Protocol v53 — client not yet released”New systems
- Weapons gained a
weaponTypesubtype (2026-09-03) — current values aresword,short_sword,dagger,spear,mace,club, andtorch, withaxe,staff,bow, andcrossbowreserved for future weapons. The subtype itself doesn’t drive range, two-handedness, or attack animations — it’s a pure data classification. - Ranged combat arrives — the bow is the first ranged weapon (2026-09-05)
— a weapon can now declare
range(meters; absent means melee, using the server’s fixed 2m reach),rangedAbility(which ability replaces STR for hit and damage), andhands(how many hands it occupies —2seals the off-hand too). The bow: main-hand, two-handed, 10m range, driven by DEX, base die 1d1 (a token that only sets range and ability). Range is gated onmax(melee reach, weapon range); walls, closed doors, and furniture block a shot the same way they block a swing, and an attack beyond range but within the 10m provoke distance only wakes the target without dealing damage — chasing stops at the weapon’s own range and fires from there. The bow needs arrows:ammoKindpairs bow and arrow by sharing a name (arrow), and a weapon withoutammoKindcosts nothing to fire. Damage is the bow’s die plus the arrow’s — an iron arrow (1d6) combined with the bow averages 4.5, close to the iron sword (1d8); a steel arrow (1d8) combined averages 5.5, close to the steel longsword (1d10). Arrows stack in the bag, don’t take an equip slot, and can’t be enchanted. Equipping a bow with no valid selection auto-picks the strongest stack; a manually chosen cheaper arrow is never overridden by picking up a better one; running the chosen stack dry auto-drops to the next-strongest, and an empty bag rejects the attack (OutOfAmmo) and stops auto-attack too. A landed shot shows a visible arrow flying at a fixed 30 m/s, re-aiming every frame to guarantee it reaches the target’s current position; a miss keeps its heading and flies 3m past. This batch of new messages bumped the protocol to v53. See Combat.
Balance
- The price index floor dropped from 90% to 50%, and merchant payouts are now capped at the cheapest buy price (2026-09-05) — server-wide average gold per active character keeps falling as new zero-gold characters join, so the meeting kept voting the index down and hit the old 90% floor after one step; the new 50% floor gives it more room to fall. Sell payouts still ignore the index, but a merchant now never pays above the highest-haggled buy price for the same item, closing a buy-low/sell-high loop the falling index could otherwise open; resident wishlist premiums are unaffected. The index now only applies to consumables some merchant actually shelves, so unsold consumables like raw fish are no longer affected by it. See Shops & economy.
Fixes
- Emptying a dungeon floor no longer resets its respawn timers (2026-09-05) — clearing a floor used to zero every spawn slot’s timer, letting a player disconnect and reconnect to a fully respawned floor; now only the alive flag is cleared, so a slain slot keeps counting down its normal 5-minute timer and a slain boss stays locked until the floor resets.
Protocol v52 — client v0.42.0
Section titled “Protocol v52 — client v0.42.0”New systems
- Playable instruments — the mandolin can actually be strummed now
(2026-09-03) — type
/play_instrumentor open the panel from Social → Play Instrument. The server only accepts it for a living, world-ready player carrying an item in theinstrumentcategory. The keyboard has three registers (Q W E R T Y U I/A S D F G H J/Z X C V B N M) spanning C5–C6, C4–B4, and C3–B3; mouse and touch share the same latch. A key sounds once per press and rearms on release. Up to four voices sound at once — a fifth replaces the oldest, and retriggering your own note replaces its previous voice. Audio is synthesized locally with a damped plucked-string model and a procedural room impulse, so no new sound assets were needed. Listeners on the same floor within 30m hear you, except anyone who has blocked you. Moving, attacking, landing a hit, dying, losing the instrument (dropped or sold), opening a trade, pressing Escape, or disconnecting all end the session; starting one discards any queued walk so a click-to-move in progress can’t cancel it a tick later. The playlist BGM yields to a live performance the same way it yields to a bard NPC’s earshot; battle music and/play_musickeep priority. This new message bumped the protocol to v52. See Music & the bard.
Fixes
- The instrument panel’s smallest labels were too small to read — enlarged and darkened (2026-09-03).
- In crowded plazas, a blocked performer’s notes are now fully silenced, and the note batch cap dropped from 64 to 16 to stop flooding listeners (2026-09-03).
- Opening a trade window now ends an in-progress performance instead of leaving the keyboard and Escape stuck behind the panel (2026-09-03).
- Walking into earshot mid-performance now correctly ducks the background music, not just players who were already there when it started (2026-09-03).
- Changing gear no longer interrupts a performance — the instrument counts from the bag or the hands either way; Ctrl combos now pass through while the panel is open, and Escape closes through the overlay stack one layer at a time (2026-09-03).
- Chat bubbles now render as a DOM layer so they no longer get hidden behind the minimap (2026-09-03).
- Moving or teleporting now clears a character’s leftover sit/lie pose, so late joiners no longer see a frozen double lying in bed (2026-09-03).
- NPCs (maids, guards, and other townsfolk) now only light a torch at night while outdoors, instead of lighting one indoors or during the day (2026-09-03).
- Toggling a held torch while seated or mid-emote no longer snaps the animation back to its start (2026-09-04).
Performance
- Every note now shares one dry bus and one reverb bus instead of building a new convolver per note (2026-09-03).
Protocol v51 — client v0.41.0
Section titled “Protocol v51 — client v0.41.0”New systems
- Table meals at the inn — a maid sets a plate down, the guest eats seated (2026-09-03) — order from a maid while seated and she makes her usual kitchen round trip, then returns to set the plate on the table; several chairs at one table each get their own spot along the edge instead of stacking. Click the plate to eat — satiation fills to the cap (HP recovers based on the actual gain). The emptied plate stays on the table and can’t be eaten again. If you leave or disappear, the maid clears the plate 8 seconds later, and the server removes it automatically after 90 seconds regardless; a meal is cleared after 30 minutes even if you’re still seated. NPC guests eat automatically 6 seconds after being served. This new message bumped the protocol to v51.
- Drinks at the inn — beer and wine, with three stages of tipsiness (2026-09-03) — every chair has a drink slot beside its dish slot (to the guest’s right), so ordering food and a drink together doesn’t overlap; one kitchen trip brings both back. A drink only adds its own nutrition, and the cup stays behind once it’s finished. Alcohol units drunk within ten minutes (beer counts 1, wine counts 2) set the stage: 1 unit is tipsy (move/attack speed ×1.1), 2 is drunk (move/attack/carry ×0.85, hit roll −2), 3+ is wasted (move/attack/carry ×0.6, hit roll −5, and your click-to-move target drifts 1–2.5m off target). The three stages are exclusive — only the latest one sticks.
New items & assets
- Four inn dishes (2026-09-03) — chicken rice, chicken curry, fried rice, and vegetable rice, all serve-only items not sold in any shop.
- Beer and wine (2026-09-03) — serve-only inn drinks, 20c and 60c respectively.
Fixes
- The NPC dialogue app-server used to be force-restarted by the system roughly every 4 hours from a memory leak, dropping every NPC offline for the duration — fixed (2026-09-03).
Performance
- Background music now downloads whole and plays from the browser cache instead of streaming over Range requests, so a page refresh doesn’t re-download the whole track (2026-09-03).
Client
- Added a Ctrl+M mute shortcut that works on the login and character screens too; the map editor’s own use of the same shortcut was removed (2026-09-03).
Protocol v50 — client not yet released
Section titled “Protocol v50 — client not yet released”New systems
- Heroic tales — the bard Signe sings about real events from the server
during her inn set at night (2026-09-02) — each night’s inn set picks
three true deeds as that night’s topics; the next topic isn’t sung until
at least two ordinary songs have played since the last one (counted from
when it was first offered), so the whole night isn’t stories and late
arrivals still get a chance to hear one. The first pass sends verses with
/reciteand logs them to chat; repeats use bubble-only/recite_quiet. Both go through a newServerMessage::Recital. The performance language follows the audience: all-Chinese stays Chinese, all-English stays English, and a mixed or silent room alternates languages by topic. This new message bumped the protocol to v50.
Protocol v49 — client v0.40.0
Section titled “Protocol v49 — client v0.40.0”Fixes
- Position corrections while being hit now blend smoothly instead of snapping (2026-09-01) — you no longer see a monster teleport on your first landed swing; a monster that’s chasing you now steers straight toward your current live position instead of a stale grid cell, braking at the server-computed engage range.
- Fishing titles could be lost by disconnecting mid-catch — fixed (2026-09-02).
- A hunger-state bug right at the sprint speed threshold — fixed (2026-09-02).
- Trade portraits for the inn maids Miriel and Cocoly were showing a 404 image — fixed, with dedicated portraits (2026-09-02).
Performance
- The login-screen flower and world-map background textures now route through the asset manifest, so they aren’t re-downloaded on every page load (2026-09-02).
Protocol v48 — client v0.39.0
Section titled “Protocol v48 — client v0.39.0”New systems
- A maid now walks over to a seated guest and takes their order (2026-09-01) — sitting on a chair near a maid queues a visit; she walks over (some chairs have a curated stand spot in the data, others get a computed one) and greets you for your order.
- A second maid, Cocoly, joins the inn alongside Miriel, sharing one visit claim board (2026-09-01) — both maids can now respond to a bedside respawn or a seated guest; the new claim board makes sure only the first maid to claim a given call answers it, so you never get double-greeted.
Fixes
- Clicking the same chair again mid-walk no longer instantly pops you back up (2026-09-01).
- Shop NPCs (including the maids) no longer open a trade window on their own — you have to click them first (2026-09-01).
- Open window shutters now keep blocking movement correctly in the passability cache (2026-09-01).
- Grazing a stairwell edge or falling through a shaft could flip which floor the client thought you were on — fixed (2026-09-01).
- The reconnect backoff timer now only resets after the connection has actually been healthy for a while (2026-09-01) — avoids a longer wait to reconnect after a brief network blip.
Protocol v47 — client not yet released
Section titled “Protocol v47 — client not yet released”New systems
- A maid now walks to your bedside to greet you on respawn (2026-08-31) — the occupied bed id was being skipped during serialization, so the server always received an empty value and the greeting visit could never be queued; this fix wires the field through (bumping the protocol), and Miriel now actually recognizes a freshly respawned player and walks over.
- Landing a Golden Sturgeon earns a title (2026-08-31) — titles gained a new “fishing” source alongside boss kills, and landing a Golden Sturgeon grants “Who Landed the Golden Sturgeon”, picked the same way as boss titles. See Titles.
Client
- 5 new social clips: maid idles and player pose/yawn emotes (2026-08-31).
- Combat idle now breathes between swings, and the old hidden
/emotedebug clip command was replaced with a client-local admin/animcommand (2026-08-31).
Protocol v46 — client v0.38.0
Section titled “Protocol v46 — client v0.38.0”New systems
- Dungeons now lock a stair room every 5th floor behind a key you have to find (2026-08-29) — Old Crypt floor 5, Orc Warrens floors 5 and 10, and Ogre Stronghold floors 5, 10 and 15 all have a locked door at their stair room’s exit. The key drops in the section right before that door: killing a monster there has a 5% chance to drop it, breaking a barrel, crate or clutter chest there is 1%, and the roll is skipped once you already hold that key or have opened that dungeon’s chest tonight. The door doesn’t consume the key and the key never expires; an opened door stays open for 30 seconds before auto-closing. The key for the dungeon’s deepest locked door is the ticket to the treasure chest — opening the chest no longer requires killing the boss, just carrying that key to the bottom floor, and opening it spends one of every key type you’re holding for that dungeon. The old “60-second countdown back to spawn after opening the chest” mechanic is gone too. This also fixed dungeon monsters seeing through walls to chase players and packs from the next room piling on the moment you reached a new floor; locked stair rooms no longer spawn monsters. See Dungeons for details.
- Boss-kill titles (2026-08-30) — dealing 50%+ of a boss’s total damage
earns “Slayer of the ⟪Boss⟫”; 90%+ earns “Who Slew the ⟪Boss⟫ Alone”. Both
stick to the character, and you can pick which one shows from the
character panel’s Titles tab or the
/titlecommand. Titles show above the head, at character select, and in the character panel; chat doesn’t show them. See Titles. - Death now respawns you in an inn bed instead of at the town spawn (2026-08-30) — the character lies down in a free bed in the inn’s sick room (4 beds total), pose decided by the server; if all 4 are taken, the character stands beside the beds instead. Bed positions follow the furniture placed in the map editor.
- The inn maid Miriel joins the game (2026-08-31) — a new Maid class, NPC-only and not player-selectable, with Miriel stationed on the inn’s ground floor.
Balance
- The three dungeon bosses’ weapons are now a guaranteed chest drop instead of a boss drop (2026-08-30) — the Goblin Sword, Iron Sword and Steel Longsword used to drop 100% of the time from their boss; the boss drop chance is now 0% and the weapon comes from the dungeon chest instead, personalized like the rest of the chest loot instead of going to whoever landed the kill first each night.
New items & assets
- Rustic Bed (2026-08-30) — furniture, 4,000 copper, a simple wooden single bed with a woollen blanket.
Fixes
- Furniture is sittable now (2026-08-30) — clicking a chair plays a sit-down animation, and chatting while seated switches to a matching seated chat pose; standing up plays a stand-up clip first, then steps to the free cell beside the chair (the cell right in front is usually a table, so it steps aside instead).
- Clicks on upper floors were sometimes caught by a jetty overhang from the floor above and misrouted to the wrong storey — fixed (2026-08-30).
Protocol v45 — client not yet released
Section titled “Protocol v45 — client not yet released”New systems
- New players get up to 30 seconds of entry immunity until their client reports the scene finished loading (2026-08-28) — for up to 30s after entering the game, a character can’t be hit by monsters and can’t attack, closing a window where a player entering a dungeon next to an already- aggroed monster could die before the scene had even rendered. The desktop client reports “WorldReady” once scene compilation finishes (agent-client does so right after JoinSuccess), ending the grace early; a 30s deadline on the server clears it either way. The gate covers every damage path — monster attacks, player attack validation, and status-effect damage over time — not just auto-attack.
Fixes
- Quickslots treated different enchant levels of the same item as one slot, so the shown count didn’t add up and pressing the key could equip the wrong copy — fixed (2026-08-28) — a quickslot binding used to store only the item’s def id, so a +3 shield and a plain shield shared one slot. A binding now also records the enchant level: the count and the +N badge track only that level, pressing the key always equips that exact copy, and the worn copy highlights correctly. Bindings saved before this change still load, as an “any level” binding.
- Clicking on a deep dungeon floor could resolve to floor 0 when a hidden surface or bridge sat 20m up the ray — fixed (2026-08-29) — three.js raycasts hit invisible meshes too, so a click underground could land on a hidden surface bed or bridge far above and resolve to floor 0, routing the player up every staircase. Underground floors no longer include hidden surface objects or house doors in the click lists.
- A monster the server had already removed could keep the client
retrying attacks against it for hours — fixed (2026-08-29) — an
invalid_targetattack rejection used to only cancel the auto-attack loop, leaving a ghost copy of the monster on the client that a re-click or local AI could attack again. The local copy is now deleted outright. - A door an owner saved open could desync after reload, so someone else’s click closed it instead and later arrivals walked into it as blocked — fixed (2026-08-29) — a door saved open only lived in the passability cache, not the runtime open-door set, so the first click “opened” it again and the second closed it. Installing a house now seeds the runtime set from the saved open/closed flags, and served house data always carries the live state.
- Teleporting or logging back in could strand a character on the wrong storey (e.g. stacked rooms resolving to floor 1) until they refreshed — fixed (2026-08-29) — the visual floor didn’t reset across character select, so a fresh housing layer could resolve stacked rooms to the wrong storey. Every server floor sync (join, teleport, correction, respawn) now writes this state too, and it resets on logout.
- Added “김정주”, “송재경”, “Jake”, and “JakeSong” to the banned character-name list (2026-08-29).
Performance
- Stuttering near bridges — fixed (2026-08-29) — the main bridge model is 53k triangles across 8 materials, and every deck-height query used to raycast the whole mesh, once per step per entity per frame. Each bridge’s deck is now rasterised once into a 0.25m height grid and sampled instead. Placing a bridge also used to clone all 8 materials, and the walk-under ghost fade flipped their blend state live, forcing a WebGPU pipeline recompile per material on approach; there’s now one shared ghost twin per material per model. Bridge collision is now evicted by region like furniture, and the invisible collision plane no longer leaks into the shadow pass.
- Damage numbers and text labels (chat bubbles, nametags) piled up new GPU textures over a long session and eventually slowed the game down — fixed (2026-08-29) — every hit used to allocate a fresh canvas and texture that was never released, so fighting several monsters at once could tank the frame rate. Damage numbers now redraw slots in a fixed pool of 48, and text labels share a canvas pool bucketed by size instead of allocating per label.
- Textures, models, and music now ship under content-hashed filenames with a long-lived immutable cache (2026-08-29) — the build now also produces a content-hashed copy of each asset, so the filename only changes when the bytes do; the server marks hashed filenames cacheable for a year, so an unchanged asset isn’t re-downloaded after a refresh or release.
Protocol v44 — client not yet released
Section titled “Protocol v44 — client not yet released”New systems
- Two-segment double doors, including pairs spanning two adjacent rooms (2026-08-28) — a new wall variant, “double-door,” renders two consecutive wall segments as one 2m opening with mirrored double leaves. If only one room places a half-door right at a wall’s end, the adjacent room’s touching segment pairs with it automatically, and each room draws its own leaf across the shared boundary (the corner pillar is omitted there). Toggling opens both halves together, and passability follows. The map editor’s wall-variant cycle includes the new option and handles pairing and unpairing automatically; even-width room templates now place a centered double door.
- Adjacent gabled roofs on the same floor now merge into a single roof (2026-08-28) — rooms with parallel ridges merge along the ridge when their widths match, and across the ridge when their lengths match, raising the ridge height accordingly. A chain that would merge across more rooms than the cap splits into roughly even segments meeting at V-shaped valleys (no eave on the valley side), and room collision bounds are recalculated from the merged ridge height.
New items & assets
- Stone Hearth (2026-08-28) — furniture, valued at 1 gold 2000 copper. An ancient stone fireplace with a carved shield crest, reaching the ceiling, with flame particles and a light source; the map editor supports duplicating it directly.
Performance
- A stutter entering and leaving houses is fixed (2026-08-28) — entering a house used to tear down every outdoor object clone and build every interior clone plus its fire particle system in the same frame; the garbage burst plus GPU bind-group rebuild measured 43–105ms of stutter. Object clones and fire systems are now kept in a persistent cache and just detached from the scene graph when filtered out, so entry and exit become a plain re-attach — repeated testing now stays under 25ms per frame.
Client
- Manual movement and combat chase now share one walk implementation (2026-08-26) — each used to keep its own near-identical pathfinding, movement packets, and step pacing, and reacted differently to the same position correction, so behavior slowly drifted apart. Both now share one walk implementation, so a chase also replans on a position correction and can open a door on the surface the way a move always could.
- A character freezing in place when no route exists to a fixed destination is fixed (2026-08-26) — moving to a fixed spot used to report Blocked without sending any movement packet when pathfinding found no route, so the server never learned the character was stuck and both sides waited on each other forever. On the surface it now takes one direct step before reporting Blocked (unchanged in dungeons, where a missing route really is a wall).
- The equip panel’s background art no longer mismatches the character’s gender and class (2026-08-27) — outside three female classes and the female knight (who has dedicated art), the panel used to fall back to the female priest’s art for everyone; it now picks art by trying the character’s own gender first, then the opposite gender, then the old default, so new concept art takes effect without a code change. Female ranger and male bard are currently the only two combos still borrowing the opposite gender’s art for their class.
- Equip panel character concept art is now cut-out WebP, cutting file size sharply (2026-08-29) — all 13 concept-art images were cut to transparent backgrounds and re-encoded as WebP, shrinking the folder from 21.6MB to 1.7MB; the barbarian’s art is additionally darkened to avoid overexposure.
Protocol v43 — client not yet released
Section titled “Protocol v43 — client not yet released”New systems
- The friend panel can now send a request by typing a name directly, and
shows a class icon next to each friend (2026-08-28) — a new ”+ Add”
input in the panel sends the same request as typing
/friend add <name>, without switching to chat; each friend’s name now shows a class icon, reusing the same icon set and letter-badge fallback as the party panel. See Friends for details.
Fixes
- Evicting a terrain tile could make the tile under your own feet vanish from the click list, breaking the house-placement preview and clicks on that spot (2026-08-28) — terrain tile meshes used to be bound into an index-keyed array; when streaming evicted a tile, the surviving tiles’ indices shifted but the bindings didn’t follow, so the tile you were standing on could end up bound to nothing. Meshes are now keyed by tile id instead.
- A torch no longer lights the ground when carried to a house’s upper floor (2026-08-28) — the torch’s light used to resample terrain height, which resolved to the ground floor’s height on an upper storey; it now uses the bearer’s already floor-resolved Y.
- Gable-end windows no longer get cut where two rooms on the same floor share a wall (2026-08-28) — they used to be treated as an interior wall and removed; they aren’t anymore.
Protocol v41–v42 — client not yet released
Section titled “Protocol v41–v42 — client not yet released”New systems
- Merchant prices now drift slowly with the server’s total gold supply, and consumable buy prices are scaled by a price index (v41, 2026-08-27) — the server records an hourly server-wide gold snapshot and computes gold per active character (active over the last 30 days), then adjusts a price index between 90% and 200% based on how that measure moves. The index only multiplies merchant consumable buy prices (potions, whetstone oil, food, scrolls, and the like); durable goods like equipment and dyes, and every sell-back price, are unaffected.
- Price adjustments now play out as a merchant meeting scene, with Rica and Wick discussing prices in dialogue (v42, 2026-08-27) — adjustments don’t run on a fixed clock; they land after sunset on the day the small moon Serin is fully dark (a 20-game-day cycle), roughly every 2.5 real days. When it’s time, Rica and Wick meet at Rica’s shop for a short meeting scene, and their dialogue hints at which way prices are moving and why — eavesdrop for a jump on the next swing. Each meeting moves the index by at most ±10 percentage points. See Shops and economy for details.
New items & assets
- Celestial Timekeeper (2026-08-27) — 8,000 copper, sold by Rica. A brass astrolabe-watch that tracks the sun and moons; carry it and the current hour and date show beside the sky widget.
Fixes
- Walking across a bridge no longer gets misjudged as wading and soaks you (2026-08-27) — the Wet check used to sample water depth from just the player’s reported XZ position, with no awareness of whether you were standing on a bridge deck, so crossing a river bridge got you wet anyway. The server now indexes bridge decks per region from the object catalog and actual placements, and exempts steps taken on a deck without trusting the client’s Y.
- Ground height is now determined by the server, closing off a fly/sink positioning exploit (2026-08-27) — a character’s Y on open terrain used to be taken from the client’s own report, which allowed visually flying or sinking into the ground, floating dropped items, or letting the client pick its own collision grid inside a dungeon footprint. It’s now always computed server-side from the heightmap or a bridge deck curve, re-applied on floor changes and login, and the Wet debuff’s depth check uses the same logic — wading under a bridge span still gets you wet.
Client
- The item tooltip now compares hovered gear against what you have equipped (2026-08-27) — hovering an item shows weight, average damage, and Guard deltas as ▲▼ rows, sky blue for an improvement and red for a downgrade; the item being compared against follows the server’s alternate-slot rule, so a ring compares against nothing if you still have a free ring slot.
- Guard and CHA on the character sheet are now live, gear-adjusted values (2026-08-27) — no longer the base numbers rolled at creation; they update the moment you change equipment, and the CHA shown is the one actually used for haggling.
Protocol v39–v40 — client v0.36.0
Section titled “Protocol v39–v40 — client v0.36.0”New systems
- XP needed to level up now follows a table paced by play time instead of a flat doubling curve (v39, 2026-08-27) — the old formula was XP(n) = 20 × 2^(n-2), doubling every level: absurdly fast early on, then nearly unreachable past level 20. The new curve tables levels 2–50 from measured pacing: for a standard player putting in 4 hours a day, roughly 5 to 22 minutes per level from 2–10 (about 2 hours cumulative), 22 minutes to 5.5 hours per level from 10–30 (about once a day), and 5.5 to 8 hours per level from 30–50 (about once every two days late), for a total of roughly 199.5 hours (50 days) to reach level 50; doubling resumes past level 50. Existing characters’ XP was migrated by keeping their progress percentage through the current level unchanged, so nobody jumped up or down a level from the switch. The wire format didn’t change, but an old client would still draw the XP gauge against the old table, so the protocol bump forces a reload anyway. See Combat for details.
- A new “Wet” debuff: wading into water slows you down and soaks your armor (v40, 2026-08-27) — triggers when you wade into a river or the sea and the water at your feet is deeper than 0.4m, lasting 450 seconds (one in-game hour). Move speed drops to ×0.83 (running falls from 4.5 to 3.75, between walking’s 3.0 and running’s 4.5). Armor worn or carried in your bag — 17 item types spanning helmets, body armor, pants, gloves, boots, shields, and wool capes — gets heavier from soaking up water (armor weight ×1.5); the more you’re wearing, the bigger the bite out of your usable carry capacity. Weapons, torches, fishing rods, instruments, and jewelry are unaffected. Walking through water keeps refreshing the timer; the countdown to dry only starts once you step out. Standing near a lit campfire (within 3m) dries you faster — 45 seconds from soaked to fully dry, no need to sit. While wet you leave fading wet footprints behind you (other players’ footprints only render at the High graphics setting; your own always do). Crossing a bridge doesn’t count as wading. See Combat for details.
Balance
- The world drop rate for Healing Potions doubled to 2% (2026-08-27) — up from 1%.
- The banned-name list now also blocks “administrator” (2026-08-27) — it previously only blocked “admin,” which didn’t catch the full string “administrator.”
Performance
- Terrain textures and static assets now cache correctly in the browser, cutting repeat-load traffic sharply (2026-08-27) — terrain textures used to require a full re-download every time; they now support cache validation (ETag, 304), so an unchanged asset isn’t re-sent on refresh. A bug that made every deploy look like it had changed every texture, forcing a re-download, is also fixed. In practice, reloading or re-entering the game now loads maps and textures noticeably faster.
Client
- The level badge tooltip now shows gold and carry weight, and a carry weight gauge was added under the inventory grid (2026-08-27) — the tooltip used to show only level and health; it now has two more lines for gold and current carry weight. A health-bar-style gauge under the inventory grid shows how much more you can carry without opening the character sheet.
- The chat panel can now be dragged around like the other HUD panels (2026-08-27).
- The minimap’s player marker is now the same shared arrow used on the world map (2026-08-26 – 2026-08-27) — you look the same on both maps now.
- The night merchant Wick got a trade portrait, and all three merchant portraits were re-encoded smaller (2026-08-27) — Wick’s trade window used to show no portrait at all; it now has one. All three portraits used to be PNGs over 1100px on a side (4.8MB combined); they’re now 512² WebP with alpha (194KB), same appearance, faster to load.
Protocol v38 — client not yet released
Section titled “Protocol v38 — client not yet released”New systems
- A banned-name list, so an already-created character that later lands
on it is forced to rename at login (2026-08-26) — new characters and
renames already went through a format check and a case-insensitive
duplicate check; they now also have to clear a
banned_names.txtlist loaded when the server starts (exact match only, trimmed and case-folded, no substring matching). A character that existed before its name was added to the list gets refused at its next entry attempt withCharacterRenameRequired(it does not enter the game), the character-select screen opens a rename prompt, and once the new name clears the same check the server repliesCharacterRenamedand the client retries entry automatically. Friend block lists carry the new name across in the same transaction. Server-run NPC accounts (thenpc_prefix) are exempt.
Fixes
- Clicking a door, a stall, an NPC counter, or a ground item now always walks into range first and then acts (2026-08-26) — the rules used to differ: clicking a door only walked you to it without opening it; stalls and NPC counters only worked if you were already in range when you clicked, walking closer didn’t retrigger them; a ground item was only picked up on arrival, so a path stopped short by a wall often meant no pickup at all. One rule now covers everything — act on the spot if already in reach, otherwise walk into reach and act there. Only the dungeon interactables got this right before.
- Clicking an object behind a wall no longer walks you into it, and monsters on other players’ screens no longer cut through walls while wandering, returning home, or fleeing (2026-08-26) — the walk-up target used to be worked out with straight-line trigonometry, stepping back from the target along the line to it; with a wall corner in the way, that point could land inside the wall and the pathfinder simply couldn’t reach it, so nothing moved. It now asks the pathfinder (A*) first and falls back to the target itself as the goal when the ideal spot doesn’t route, stopping beside the obstacle instead. Monster wander, return, and flee animations used to aim straight at the final destination, cutting through any wall along the way; they now aim at the nearest bend on the path, and a bend always syncs, so a wandering monster no longer visibly clips through walls.
- Occasionally being dropped a floor at the edge of a stairwell is fixed (2026-08-26) — figuring out which floor you’re standing on used to ask every floor a stairwell connects, passing if any one of them allowed it; that let the floor below’s legitimately open landing at the shaft’s edge also open the edge the floor above was supposed to seal. It now asks only the floor you’re actually standing on, and the same fix applies to stairwells inside multi-storey houses.
- Picking up a ground item on the spot now turns your character to face it before crouching (2026-08-26) — whether you were already in range or stopped short by an obstacle on the way, the crouch animation no longer plays facing whatever direction you happened to be looking.
- Attacking a charging monster occasionally missing or shoving you backward is fixed (2026-08-26) — the server’s record of a monster’s position only updated at each sync, and a mid-chase repath reported the pose from just before the repath, so an attack thrown between two syncs often didn’t line up with where the monster actually stood. Attacks now catch the monster’s position up first, and a chase syncs before turning a corner. Admin move commands no longer bypass the movement queue and teleport directly, which used to let a monster swing at an admin who hadn’t actually arrived yet.
Client
- Both the player-trade and merchant-trade windows can now be dragged around like the other HUD panels (2026-08-26) — no longer pinned to the center of the screen.
Protocol v37 — client v0.34.1
Section titled “Protocol v37 — client v0.34.1”New systems
- Ambient monsters now spawn from movement instead of a standing clock
(2026-08-23) — the old system unconditionally handed every player 3 spawn
allowances every 10 seconds (a theoretical cap of 1,080/hour), making
standing still the most efficient way to hunt — logs showed one player
racking up 20,817 kills in 23 hours from a single spot. The new rule drops
allowances entirely: the server now rolls a chance on every movement tick
based on distance travelled (8% per metre moved, ~81% cumulative over
20m), placing the spawn in a ±30° cone around the direction you’re facing,
20m outside the screen edge, so the monster walks in from off-screen. A
candidate only spawns if it lands on walkable ground (grass, no steep
slopes or water) and can actually walk the line back to you. The live cap
stays at 8 (corpses don’t count). The server now fully owns spawn timing
and placement —
SpawnMonsterRequest, which let the client request a spawn, andNoSpawnZones, which only that request used, are both gone from the protocol, so third-party clients no longer have to reimplement spawn placement themselves. Older clients are refused and need a fresh download. - New monsters: Cyclop and Lizardfolk (2026-08-25) — the Cyclop is level 15, Guard 20, wields a greatclub for 3d8 damage, and spawns on dungeon floors 14–20; the Lizardfolk is level 13, Guard 15, wields a Steel Longsword, and spawns on floors 12–20. Both are aggressive.
- Monster AI now runs entirely on the server (2026-08-25) — monster movement and attack decisions used to run on whichever player’s client owned that monster; now they run uniformly on the server, so other players no longer see a monster’s position drift out of sync with someone else’s network latency. This also fixed monsters getting stuck dragging in place at doors and walls, and added queueing so multiple monsters in a dungeon corridor no longer pile up on top of each other.
Balance
- Spawn cone and chance retuned — encounters up sharply (2026-08-24) — spawn candidates used to be drawn uniformly across the whole screen edge; measurements showed nearly 70% of monsters placed more than 30° off your heading despawned again before you noticed them. Narrowing candidates to a ±30° cone around your heading raised the encounter rate from 31% to 67% over the same distance, and the roll itself went from an initial 4% up to 8%.
- Corpses now linger twice as long (2026-08-24) — 30 seconds up to 60 before they’re cleared.
- Some monsters now have a chance to drop bonus food on a kill (2026-08-24) — rolled independently of the weapon drop, at low odds (mostly 1%, 5% for the Goblin Chief). Kobolds, Goblins, Orcs and Female Orcs, Hobgoblins, and the Goblin Chief currently carry a bonus drop — see Monsters.
- Bread and Lembas Wafer got pricier, and eating at full satiation is now refused (2026-08-24) — Bread went from 20 to 60 coins, Lembas Wafer from 60 to 120. Eating while already at the 1000 satiation cap is now refused outright and doesn’t consume the item; the HP a meal heals now scales with the satiation it actually added rather than the food’s full nutrition value, so topping off a nearly-full stomach heals proportionally less.
Fix
- Dungeon stairs occasionally refused a floor change and snapped you back to the old floor (including boss-room doors that wouldn’t open) — fixed (2026-08-23) — a stair shaft’s ramp is shared geometry between the two floors it connects, so both floors compute the identical Y there, and climbing the ramp necessarily strays from either floor’s flat-ground height. Requiring the reported Y to match the target floor meant the transition could fail partway up. The floor is now derived straight from which stairway you walked, with Y no longer used as a rejection check.
- Monsters at the edge of loaded terrain occasionally twitched in place or snapped back to their starting point — fixed (2026-08-23) — a monster walking just past the edge of streamed terrain had its move report held by its owning client; once terrain caught up, the resulting jump could exceed the server’s per-move distance budget and get rejected — 232 rejections in four hours, affecting 206 monsters. The server now warms an extra ring of heightmap data ahead of time to absorb that gap.
- Rapid emote clicks could misfire as a stop — fixed (2026-08-23) — the play/stop toggle used to judge clicks against the server-confirmed active animation, which lags a round trip behind, so clicking fast could turn a play into a stop for the dance you’d just commanded. Clicks are now judged against your own last-commanded intent instead, falling back to the server’s echo once it confirms or a timeout assumes the command was rejected.
- Monsters killed before a floor re-entry no longer stand back up — fixed (2026-08-25) — a monster that was already dead now spawns straight into its corpse state when you re-enter the floor.
- Clicking the wall beside a down staircase occasionally failed to walk you down — fixed (2026-08-25) — the side wall that hides a descending shaft from the isometric camera now correctly registers as “go down the stairs” when the click lands just outside the shaft’s footprint and below the current floor’s walking surface.
Performance
- Area of interest (AOI) narrowed from 43m to 32m (2026-08-23) — recalculated from what the isometric camera actually shows on screen, this cuts the monsters and objects a single player needs synced by roughly 45%.
Client
- Every miss now whooshes, not just your own (2026-08-24) — other players’ and monsters’ missed swings now play a whoosh keyed to the attacker’s weapon material, same as your own misses already did.
- Small ground items are easier to click (2026-08-24) — the pickup hotspot now has a 0.25m minimum radius so slim models like the Healing Potion catch nearby clicks; the Healing Potion’s ground model is also 1.5× larger and easier to notice.
- Emote panel gained a hover preview, and it now opens beside the social button that summons it (2026-08-23 – 2026-08-26) — hovering an emote row shows a small preview of your character actually performing it beside the panel; the preview is off by default on low graphics presets and mobile to save performance.
- Default SFX volume lowered to 50% (2026-08-25).
- The death cry now plays at the killing blow (2026-08-25) — instead of waiting for the monster’s attack-animation impact delay.
Protocol v35–v36 — client not yet released
Section titled “Protocol v35–v36 — client not yet released”New systems
- Dungeon bosses now respawn once a day at sunset, and the chest goes only to whoever felled it (v35, 2026-08-21) — a dead boss no longer runs a fixed 30-minute respawn timer; its slot is held until the next sunset dungeon reset revives it. The reset teleports everyone in the dungeon back to its entrance and plays a roar in the distance. Only characters standing within 20m of the boss when it fell may open the chest it drops. Previously the last player leaving a floor would accidentally reset the boss’s respawn clock too, letting it be refought within two minutes. Full rules in Dungeons.
- New monster: Stone Golem (2026-08-21) — level 10, Guard 17, unarmed attack (2d10), stone material, spawns on dungeon floors 11–20; also appears in the world past 630m from town, following the existing “distance = (level − 1) × 70m” rule.
- Monsters now attack anyone who gets close, not just provoked targets (2026-08-22) — both “attacks on sight” and “fights back only” monsters now attack the instant a player is within 5m, no provocation needed; previously a “fights back only” monster had to be hit first, and an “attacks on sight” one still needed a target acquired at range.
- An emote panel and social menu make emotes discoverable outside chat
(2026-08-22) — emotes used to be reachable only via
/emotecommands; press G to open a panel of every emote, click to perform one, with looping dances marked and stoppable by clicking again. The social button now opens a flyout with Friends (F) and Emotes (G)./emoteand its plain-text emote list still work as before.
Balance
- Iron Sword’s world drop chance halved (2026-08-21) — from 1% to 0.5%; the Orc Warlord’s guaranteed drop is unaffected.
- Ambient monster cap raised again, and the field refills faster (2026-08-22) — the per-player cap went from 6 to 8, and corpses no longer count against it (only live monsters do). When the field is under the cap, the server now offers up to three spawns per player per tick instead of one, so an emptied area fills back in noticeably faster.
- Combat chase now runs at sprint speed (2026-08-22) — moving while in combat automatically uses sprint speed, at the same satiation cost as a normal sprint, so a fleeing monster can no longer outrun you.
New items & assets
- Greater Healing Potion (2026-08-22) — 1g 500s, sold by Rica, consumable, heals 12d4 — twice the regular Healing Potion’s 6d4.
Fix
- Monsters at dungeon and world-floor boundaries could occasionally get stuck twitching in place, or snap back to where they started — caused by the client reporting a height the server treated as stale whenever the terrain data for that tile hadn’t streamed in yet, rejecting the move (2026-08-22).
Client
- XP gain animation now rides the kill (v36, 2026-08-21) — XP from a kill no longer applies instantly; the level badge waits until that monster actually goes down before sending a spark along the gauge to the new total, which bursts into a sparkle. A kill with no visible fall (despawn, out of range) still applies after a 2-second fallback.
- Roar sound effect added on dungeon reset (2026-08-21) — you hear a distant roar when sunset puts you out of a dungeon.
- Repeated interaction animations now replay correctly (2026-08-21) — the same interaction repeating (dancing twice in a row, or switching from dancing to clapping) used to be ignored; it now correctly switches to the new clip. Back-to-back pickups (e.g. while fishing) no longer drop a callback either.
- Monsters get a death cry, players cry out in pain, and hits now make you flinch (2026-08-22) — the death sound plays on the killing blow’s impact frame rather than when the corpse lands; players cry out by gender when a hit actually lands, one at a time so it doesn’t stutter; getting hit also plays a flinch reaction.
- Dungeon floor and HP added to the HUD (2026-08-22) — the sky widget shows your current floor while underground, and the level badge’s tooltip gained an HP line.
- Signs, stalls, and dungeon chests get hover names too (2026-08-22) — same name label and gold target ring monsters and ground items already get; beds, barrels, and crates stay unlabeled on purpose.
- Buying from a merchant now defaults to 10 units (2026-08-22) — the quantity popup used to default to as much as your purse could afford; now it defaults to 10 (still capped by your gold or the merchant’s stock).
Protocol v33–v34 — client not yet released
Section titled “Protocol v33–v34 — client not yet released”New systems
- Cape dyeing (v33, 2026-08-18) — using a Cape Dye bottle dyes your equipped cape any colour you pick, with a live preview and nothing spent until you confirm; you can re-dye as many times as you like. The result rides the cape’s item instance, and nearby players and the character select screen see the same colour you do. Full rules in Cape Dyeing & Printing.
- Cape printing (v34, 2026-08-18) — using a Cape Transfer Kit uploads a picture that the server re-encodes and content-hashes for dedup, then prints onto your cape over the dyed colour, showing through wherever the print is transparent. Right-click a player to report their print; an admin blocking a hash reverts every cape using it back to its dye colour immediately. Full rules in Cape Dyeing & Printing.
- Opening a chest sends you back to town (2026-08-19) — actually opening a treasure chest (re-clicking an emptied one doesn’t count) starts a 60-second timer; if you’re still in the dungeon when it fires you’re teleported to the spawn point with a warning message first. Logging out during that window banks the return immediately. The point is to stop parking a character on the deepest floor and only logging in each refill to loot it.
- Enchanting now needs Whetstone Oil (2026-08-20) — reading an enchant scroll now also spends one bottle of Whetstone Oil; without one the read is refused and the scroll isn’t consumed. The oil has no other use — it’s purely a gold sink on enchanting. Full rules in Enchanting.
- A merchant’s deal is now said out loud, and merchants may offer one unasked (2026-08-21) — once a haggled price is granted, the merchant now announces it in a chat message too (the discount or markup, what it’s for, how long it lasts) instead of showing only inside the trade window; merchants will also occasionally lead with a discount of their own, without you haggling first.
Balance
- Ambient monster cap raised back up (2026-08-19) — the per-player monster cap went from 4 back to 6; on screen that reads as about four alive at once. The one-type-per-tick pacing and the dungeons’ spawn rules are unchanged.
- Hit chance now follows where you fight, not just what you fight (2026-08-20) — monsters gain an extra to-hit bonus based on dungeon depth or distance from town (dungeons: +3 per floor past depth 5; the surface: +1 per 20m past 300m from town), so deep floors and remote wilderness get meaningfully more dangerous while the 300m ring around town and Old Crypt’s first 5 floors keep their current difficulty. Monster level, HP, damage, and XP are all unchanged. Full rules in Combat.
- Ambient monster variety now follows distance from town, not player level (2026-08-20) — each level’s monster type now needs another 70m from town to appear (Goblin 70m, Orc 210m, Hobgoblin 280m, Gnoll 350m, Bugbear 420m, Ogre 490m, Troll 560m), instead of unlocking everywhere the moment you reach the level. The area right around town now stays low-level monsters with correspondingly low XP and drops.
- Hobgoblins now carry a Notched Iron Sword (2026-08-20) — their old drop, the Iron Sword, is replaced by the new Notched Iron Sword: same 1d8 damage, but its sell price drops from 10,000c to 2,500c.
- Enchant scroll world drops halved on low-level kills (2026-08-20) — for kills at effective level (depth-adjusted) 8 or below, both enchant scrolls’ world drop chance drops from 1% to 0.5%; chests and barrels/crates have no level and are unaffected.
New items & assets
- Cape Dye (2026-08-18) — 800c, sold by Rica, a consumable.
- Cape Transfer Kit (2026-08-18) — 5,000c, sold by Rica, a consumable.
- Phoenix Talisman (2026-08-20) — 5,000c, sold by Rica, and also a 0.2% world drop. The death dialog gains a use option that revives you in place, on the same floor, restoring 70% of max HP and spending one talisman; the death XP penalty already applied is unaffected, and there’s no invulnerability window afterward. Full rules in Combat.
- Whetstone Oil (2026-08-20) — 1g, sold by Rica, a consumable. Reading an enchant scroll spends one bottle alongside the scroll; see “Enchanting now needs Whetstone Oil” above.
- Notched Iron Sword (2026-08-20) — the sword Hobgoblins carry, 1d8, sells for 2,500c, not sold by merchants.
Fixes
- Dungeon corridors no longer generate hugging a room wall, which used to tear the wall open into absurdly wide doors (up to 17 cells); a floor that fails the check gets redrawn within the existing 30-attempt retry loop, same as other generation rules (2026-08-20).
- Dungeon floors now change only via a stairwell shaft, validated against your actual movement path server-side; previously reporting a height within tolerance could make the server judge you against the wrong floor’s grid — usually uncarved rock — letting you walk through a boss door and every wall on the floor you actually stood on (2026-08-19).
- House storeys are now determined by the server from your stairwell path instead of trusting the height your client reports; previously reporting a height matching the storey above let the server check that storey’s (usually wall-free) rooms, letting you walk through every wall of the storey you were actually standing on (2026-08-19).
- Fixed dungeon monsters sometimes walking partway, vanishing, and restarting from where they began — caused by two players entering the same floor and both adopting the same idle monster, where ownership didn’t hand off cleanly; the losing client kept simulating the monster locally while the server kept snapping it back to its real position (2026-08-21).
- A build whose dungeon-layout generator no longer matches the server’s is now refused at connect, the same way a protocol mismatch is — this usually means a stale client build. A connection stuck correcting against the same wall more than 10 times in a row is now disconnected by the server, and the web client reloads itself once to pick up a new build (2026-08-20).
Client
- Character select preview re-equips on refresh (2026-08-18) — the select screen now re-equips gear when the character list refreshes, so items dropped mid-session no longer linger on the preview.
- Per-class cape collar tuning (2026-08-18) — the collar bias and fade were retuned per model for the barbarians, knight, rogues, and valkyrie so the collar hugs the shoulders more closely.
- Level badge on the HUD (2026-08-19) — a 50px level badge sits by the hunger indicator in the top-left, its border a ring gauging progress to the next level, with a brief glow on XP gain and a reset-refill sweep on level-up. Click it to toggle the character panel; hover for exact XP.
- Chest-open sound (2026-08-19) — opening a dungeon chest now plays a lid-swing sound and a coin-spill sound.
- Crate-break sound (2026-08-19) — smashing a dungeon barrel or crate now plays a shatter sound.
- Dropped shields lie face-up (2026-08-19) — instead of standing half-buried in the ground.
- Minimap and always-run now default on (2026-08-18) — both settings used to default off; they now default on, and can still be turned off in settings, remembered per browser.
- Hovering a dropped item shows its name (2026-08-21) — styled like the player nametag, a notch smaller, with the enchant level folded into the name so +0 and +7 don’t look alike at a glance.
Protocol v31–v32 — client v0.29.0
Section titled “Protocol v31–v32 — client v0.29.0”New systems
- Character select shows your geared character (v32, 2026-08-18) — the select screen no longer shows a bare character; it now renders whatever you were wearing when you logged out — weapon, off-hand, cape, and a lit, glowing torch. Drag a character to spin it; drag the floor to spin whichever one is currently selected.
- Capes are visible to everyone now (v31, 2026-08-18) — wearing the Wool
Cape lets nearby players see it sway as you walk, turn, and catch the wind
— a live verlet-cloth simulation, no extra art needed.
/capeand/cape_depthstay around for test-fitting a cape with nothing equipped.
New items & assets
- Wool Cape (2026-08-18) — a new back-slot item, 4,000c, +1 Guard, cloth material. Drops from Ogre Stronghold (T3) chests at a 37% roll.
- Steel Longsword enters the drop pool (2026-08-17) — steel_longsword (1d10, 16,000c) existed in the item data with no way to obtain it; it’s now the Ogre Warlord’s confirmed drop. The regular Ogre still carries a Greatclub.
Balance
- Ambient monster density rework (2026-08-18) — the per-player monster cap dropped from 30 to 4, and the server now offers one monster type per tick instead of every eligible type at once, so the field fills in over roughly half a minute. What used to read as a dozen monsters standing around now settles at two or three. Dungeon spawn rules are unaffected — this only thins out the open field now that dungeons carry the dense fights.
Protocol v30 — client not yet released
Section titled “Protocol v30 — client not yet released”New systems
- Player trading (2026-08-16) — type
/trade <name>in chat to send a trade request to a nearby player, using the same consent flow as/party(30 second TTL, up to 5 pending requests at once, anyone on/blockis refused automatically); moving out of range during a trade cancels it outright. Each side has to lock, then confirm before anything moves, and changing the offer resets both sides’ confirmations; an item’s enchant level (like +7) is written directly into its name in the trade window so it can’t be swapped unnoticed. Items placed on the table stay in your bag as soft-reserved — selling, dropping, using, or equipping them is refused until the trade ends or is cancelled — and a completed trade moves everything at once, written to the database immediately before either side is told it succeeded. Losing range, logging out, or dying cancels a trade; combat doesn’t. Equipped items can’t be placed on the table, the three starting weapons (Worn Iron Sword, Worn Torch, Worn Mandolin) can’t be traded, and NPCs never take part. Full rules in Player trading. - Merchant stalls became a trade entry point (2026-08-16) — clicking someone else’s laid-out stall opens a trade window with them directly, no invite needed; an NPC-owned stall still falls back to the normal shop flow. See Shops & economy.
Fixes
- Fixed the sealed-cell escape teleporting a player straight through solid rock in some dungeons — the check now reads the dungeon’s actual wall layout instead of the passability cache; on Orc Warrens depth 9, 15 of its 26 sealed prop cells were being misread as open (2026-08-17).
- Fixed the sealed-cell rescue teleport sometimes getting undone a moment later by the next position correction, making the player look like they were never freed (2026-08-17).
Protocol v29 — client not yet released
Section titled “Protocol v29 — client not yet released”New systems
-
Debuff system (2026-08-16) — a data-driven debuff framework (
data-src/debuffs.csv) replaces the food-poisoning logic that used to be hardcoded. The same debuff never stacks — retriggering it just refreshes the duration — but different debuffs can be active together, and their multipliers multiply. Two exist so far:- Bleeding — a 35% chance on a hit from a gnoll’s claws, lasting 8 seconds at 1 damage per second and blocking HP regen; it can kill outright. The gnoll’s damage die was lowered from 2d8 to 2d6 to make room for the new effect.
- Food Poisoning — same numbers as before (70% chance on raw fish, 5 minutes, ×0.6 move/attack/carry, ×4 satiation drain, blocks HP regen), just running through the new framework.
Full rules in Combat.
-
New monster: Bugbear (2026-08-16) — level 7, Guard 14, carries a Morningstar, spawns on dungeon depths 8–20.
-
New monster: Ogre (2026-08-16) — level 8, Guard 15, carries a Greatclub (2d8 damage), flesh rather than leather, spawns on dungeon depths 9–20.
-
Signe uses her own tip hat (2026-08-16) — the town-square bard now sets down a busker’s hat before she opens a set; coins dropped in it go straight to her wallet, and her schedule transitions pack up the stall and hat together automatically. Full rules in Music.
-
New monster: Troll (2026-08-16) — level 9, Guard 16, claws (2d10 damage) with a 35% chance to trigger Bleeding on hit, flesh, spawns on dungeon depths 10–20.
-
New dungeon: Ogre Stronghold (2026-08-17) — 15 floors, its entrance in the plains northwest of Aldermark, farther out than Orc Warrens and clear of the road. The boss, the Ogre Warlord, is a guaranteed Greatclub drop; the chest guarantees Chain Mail, with Iron Gauntlets, Plate Greaves and Plate Boots each at 37% and a Gold Ring at 10%.
Balance
- Deep monster pool caps (2026-08-17) — the Stalker, Orc, Female Orc and Hobgoblin used to keep spawning all the way to dungeon depth 20. Each is now capped — at depths 11, 13, 12 and 15 respectively — so the deep monster pool tapers from eight species to four instead of dropping all at once. Orc Warrens’ own spawn table (10 floors) is unaffected; the change only shows up on deeper floors such as Ogre Stronghold.
New items & assets
- Morningstar, Greatclub (2026-08-16) — the weapons the bugbear and ogre carry: Morningstar deals 1d8 (6,000 copper), Greatclub deals 1d8 (600 copper). Neither is sold by merchants — the only source is drops.
Fixes
- Fixed the death animation index drifting out of sync with the animation name list — death played the attack clip instead of the dying clip, and the respawn dialog never opened (2026-08-16).
- Fixed a player getting permanently stuck if a dungeon restart sealed them inside a cell surrounded on all four sides by broken props or open doors — a dungeon’s broken-prop and door state only lives at runtime, so a restart makes it solid again around whoever logged out standing there. A blocked move now checks whether the cell is sealed on all sides and, if so, relocates the player to an open neighbour before the correction is applied (2026-08-17).
Client
- Text selection is now opt-in (2026-08-16) — dragging over the inventory, character panel, or HUD text used to trigger the browser’s text selection by accident. Now only text inputs, the chat transcript, announcement bodies, and login error messages allow it.
Protocol v28 — client not yet released
Section titled “Protocol v28 — client not yet released”Protocol bumped to v28 — the client is still waiting on a repackage, and older clients will be refused once the live server switches over. The same day (Aug 13) also carried two item changes that didn’t need the protocol bump: the Silver Necklace got an effect and its own model, and the Coin Pile got its own icon.
New systems
- Tip hat (v28) — any class can use the
tip_hatitem to set a hat down two cells ahead; using it again picks it back up. The item is never consumed. The hat only exists while its owner stays close — straying past 5m, changing floor, or logging out packs it up automatically. Clicking someone else’s hat opens a tip dialog after walking into reach; type1g20s30c-style amounts or a bare number for copper. The server checks the wallet, the distance (within 5m), and blocks tipping yourself. Rica stocks it for 200 copper. - Party kill XP sharing (2026-08-13) — when a monster dies, any party member alive on the killer’s floor and within 150m shares the kill: the XP pool gains +25% per eligible member, and the boosted total is split equally among everyone (killer included), floored, with a guaranteed minimum of 1. With two or more eligible members, no share can exceed what a solo kill would pay — padding the party can’t beat soloing. With only 1 eligible member or no party, XP is unchanged. Full rules in Party.
- Admin command
/tp(admin-only) —/tp <x> <z> [y]teleports to world coordinates,/tp <name|number>teleports to a named destination, and a bare/tplists the available destinations (2026-08-13). - New monster: Hobgoblin (2026-08-14) — level 6, Guard 12, carries an Iron Sword, spawns on dungeon depths 6–20.
- New monster: Gnoll (2026-08-15) — level 6, Guard 13, unarmed and attacks with claws (2d8 damage), spawns on dungeon depths 7–20.
- Looping dance emotes (2026-08-15) —
/emote twist,/emote macarena, and/emote chickenjoin the emote list. Unlike the one-shot gestures (excited,clap), a dance keeps playing until the dancer moves or presses Escape.
New items & assets
- Silver Necklace got an effect (2026-08-13) — the previously inert Silver Necklace now slows satiation drain to 0.75x while equipped (sprinting included), and re-enters the dungeon chest pool at tier 2 (10% roll). Every necklace already in circulation from the old chest rules gets the effect retroactively, and it picked up its own model and icon.
- Coin Pile got its own icon (2026-08-13) — it used to borrow the Iron Sword’s icon; now it has its own stacked-coins icon.
- Scroll of Enchant Armor (2026-08-15) — new
scroll_of_enchant_armoritem: reading it enchants a random worn armor piece +1 Guard, with the same reading and consumption rules as the weapon scroll. Merchants don’t sell it — the only source is a 1% world drop, priced at 1,200 copper. Full rules in Enchanting.
Balance
- Hit rolls now use an exploding d20; monster attack bonus scales on full level (2026-08-15) — under the old rule, Guard 24 made some dungeon monsters mathematically unable to land a hit. Now a natural 20 rolls again and adds, so every Guard stays reachable even as the odds fall off with the gap. Monster attack bonus also moved from half-level to full level, so deeper floors hit harder — the Orc Warlord’s odds against a leather-set graduate go from 20% to 45%. Full numbers in Combat.
Fixes
- Fixed the first attack swing after a break in combat freezing on its first frame — it played its sound but never animated (2026-08-13).
- Fixed the first attack swing after a break in combat not turning to face the target, keeping the old facing instead (2026-08-13).
- Fixed the bottom-floor treasure chest rendering at the wrong angle with no collision, so players could walk straight through it — it now faces south and blocks movement (2026-08-14).
- Fixed the dungeon floor slab flickering with self-shadow artifacts under torchlight and z-fighting against the down-shaft’s side wall — the slab mesh was rebuilt seamless, clearing the seam artifacts while keeping shadows (2026-08-14).
- Fixed melee attacks landing through closed dungeon doors and stair-shaft walls — attacks now run through the same passability check as movement, and are blocked in both directions (2026-08-14).
- Fixed merchant NPCs starting a scheduled move the instant it came due,
with no chance to pack up their stall or finish a song first — a
schedule change now posts a
[Schedule]notice and holds the move for one more NPC turn (or 30s), and a stall left standing at departure is packed as a backstop (2026-08-15).
Client
- Dungeon bosses are now visually distinct (2026-08-13) — boss monsters (the Goblin Chief, the Orc Warlord) no longer share regular monsters’ model scale; they now render larger with a gold nameplate. Visual only — combat ranges and collision are unchanged.
- Fixed background music staying silent after being turned back on (unmuted, volume raised, or combat ended) while a nearby performance was already playing — it used to wait for the next song. Now it remembers the track and rejoins at the current offset as soon as it can play again (2026-08-15).
Protocols v26–v27 — client v0.23.0
Section titled “Protocols v26–v27 — client v0.23.0”Two protocol versions shipped over two days (Aug 6–7), each its own system: party management and ground-item stacking. The same release window (Aug 6–12) also carried a lot that didn’t need a protocol bump: a new admin command, an overhaul of ambient monster spawning, a change to dungeon chest loot, and a handful of anti-cheat fixes.
New systems
- Party kick and leader handover (v26) — the leader can remove a member
with
/party kick <name>or hand the lead to someone else with/party leader <name>; a non-leader, a self-target, or targeting a non-member each get their own refusal reason./party leaveformally joins the/partysubcommand set. The kicked member gets a system message; everyone else sees “X was removed.” - Party vitals sync (v26) — the party panel now shows every member’s HP, max HP, and class live; the server pushes a party whose health changed once a second.
- Ground-item stacking (v27) — drop a stack of stackable items (say, twelve potions) and it now lands as one pile with a count badge, instead of twelve separate objects. Picking it up only takes what your bag has weight headroom for, leaving the rest behind with the badge updated — a pile too heavy to carry whole no longer blocks you from taking any of it. Loot and world drops still land one at a time.
- Admin command
/spawnmob <type> [count](admin-only) — spawns aggressive monsters in a ring around the admin for combat testing; capped at 10 per use and still bound by the global and spawn caps.
Balance
- Party size cap 8 → 5 (2026-08-11).
- Ambient monster spawning overhaul (Aug 6–12) — the spawn cap changed from “server-wide × monster type” to 30 per player, so monsters clustered near one player no longer starve everyone else’s spawns. Monsters with no player around now disappear immediately instead of waiting out the old 60-second grace period. Measured at 5,000 concurrent players / 134k monsters, peak monster count halved and a roaming player gets the same spawn rate as one standing still.
- Dungeon boss chest loot now ejects onto the ground (2026-08-11) — gear rolled from a treasure chest no longer goes straight into your bag; it scatters around the chest like regular loot, so anyone nearby can grab it. Gold still lands straight in your wallet. Clicking a chest already opened that night just shows you the lid swinging open on nothing.
- The Gold Ring became an actual ring of adornment (2026-08-12) — the previously inert Gold Ring now carries a CHA +1 bonus, widening your haggling price band by ±2 percentage points. It re-enters the dungeon chest pool at tier 3 (10% roll); every ring already in circulation from the old chest rules gets the effect retroactively, and it picked up its own model and icon.
Fixes
- Fixed a forged vertical coordinate (Y) letting players and monsters walk through walls and furniture — the server now derives collision height from the terrain data itself instead of trusting the client’s reported Y (2026-08-11).
- Reject a client reporting a monster as “dead” directly, closing off a way to fake a kill and bypass the server’s combat resolution (2026-08-07).
- Batch buy/drop quantities are now checked for overflow, so an oversized-quantity request can’t cause an integer overflow (2026-08-08).
- Picking up a coin pile now reports the actual copper amount in chat, instead of a generic “picked up” line (2026-08-11).
- Fixed the LLM slipping in a stale
/play_musicright as an NPC lay down to sleep, leaving it stuck standing in its playing pose all night — the pose is now adopted the moment the command is sent instead of waiting for the server echo, and a finished song no longer forces a already-reposed NPC back onto its feet (2026-08-13).
Client
- Registered the admin commands for
/helpand tab completion (2026-08-12) —/kick,/ban,/unban,/mute,/unmute,/summon, and/gotowere already handled server-side but missing from the client’s command list, so/helpnever listed them and tab completion ignored them. All seven are now registered, with descriptions matching the server semantics (/banis permanent unless given minutes,/mutedefaults to 10 minutes,/unbanalso accepts an account name). - Fixed unspaced chat text (common in Korean) overflowing the chat bubble — word-wrap now breaks by grapheme, so it can’t split an emoji in half (2026-08-07).
Protocols v23–v25 — client v0.21.0
Section titled “Protocols v23–v25 — client v0.21.0”Three protocol versions shipped over four days (Aug 6–10), each its own system: friends, merchant stalls, and declining pushed trade offers.
New systems
- Friend system (v23) —
/friend add <name>(or/f) sends a friend request; the other player has 120 seconds to accept it on a toast, and requesting each other simultaneously skips the answer and makes you friends immediately. Press F for the friend panel — whisper or invite to party in one click. Friendship and blocking are mutually exclusive: blocking a friend ends the friendship. Full rules in Friends. - Merchant stalls (v24) — the new
/lay_stallcommand, merchant-class only, spreads a table outdoors as a visible “open for business” sign (/pack_stallfolds it up, and logging out does too). It’s purely a prop — trading still runs through the normal window. - Declining pushed trade offers (v25) — a trade or deal window an NPC pushes at you now has a “Not now” button, and an unanswered toast that times out counts as a decline too. Once declined, that NPC won’t push another offer at you for 10 minutes.
Balance
- Wick, the night merchant, now works the Aldermark road after dark, selling only night-travel essentials — a torch, healing potions, a campfire kit, bread, jerky, a scroll of return — and buying at 30% of base price (Rica pays 40%). It’s a convenience for being out after dark, not a better deal than waiting for Rica.
- Rica can’t trade while asleep (2026-08-05) — while she’s in bed at night, her shop window refuses to open (and an already-open one gets closed), which is the direct reason Wick exists: the town can’t go a whole night with no counter open.
- Roster NPCs like the guard Karl now get their gear issued and equipped automatically on login (a spear plus a full leather armor set) instead of relying on the model’s default look. Issued gear can’t be sold, either direction, so logging an NPC in and out can’t be farmed for free equipment.
- NPCs remember you (favor) — NPCs now keep a rolling window of the last 30 lines of conversation, and bards additionally remember the last 8 songs they played. Conversations also build up a favor score (±1 per turn, capped at ±5 total); once a player clears the threshold, the NPC starts treating them as a regular worth a private deal — the mechanism behind the keepsake trades mentioned in Music & the bard.
Fixes
- If an NPC agent process dies unexpectedly, the driver now respawns it after a delay instead of leaving it gone for good.
- Fixed surface objects (like shop signs) being visible floating in mid-air while underground in a dungeon.
- Fixed dungeon floor moves not snapping back into alignment with stairs when the server corrected them.
- Moves the server refuses (targets over 60m away, dead players, non-finite coordinates) now reliably send a position-correction packet back, instead of leaving agent NPCs stuck phantom-walking back and forth.
Protocols v20–v22 — client v0.20.0
Section titled “Protocols v20–v22 — client v0.20.0”Three protocol versions shipped back-to-back over two days (Aug 6–7), all on one theme: the music system. Gameplay details in Music & the bard.
New systems
- Music performance (v20) — the new
/play_music [title]emote: anyone with an instrument in their inventory can play. Titles match whole or as a fragment; leave it blank for a random tune. Everyone nearby hears it, and chat announces the title. - The listening experience (v21) — background music makes way for a performance, and anyone walking up mid-song joins at the current position instead of from the start.
- Tips, and items changing hands (v22) — hand-offs between characters are now visible to everyone. Drop coins or trinkets at the bard’s feet and she remembers they came from you.
- The Bard class — a new player-selectable class: d6 hit die, DEX +2, CHA +2, STR −2, CON −1, WIS −1, starting with a worn mandolin.
- Signe, the resident bard NPC, now busks in the town square — songs all day, requests between them, a campfire after dark, and yesterday’s tips sold to Rica each morning. Her gilded mandolin is a keepsake: never in her browsable stock, sold only through a personal offer to a regular she has come to like.
New items & assets
- Mandolin (40 silver) and Worn Mandolin (unsellable) — the first two
items in the new instrument category, with a dedicated model and the
/play_musicpose.
Balance
- Scroll of Enchant Weapon world drop rate 0.4% → 1% (2026-08-05) — one expected per 100 kills.
Protocol v19 — client v0.19.0
Section titled “Protocol v19 — client v0.19.0”New item
- Lembas Wafer — elven waybread. 600 nutrition at only 0.15 kg for 60 copper, which makes it the most weight-efficient food in the game (4,000 per kg against bread’s 540) and the obvious choice for long trips. Rica now stocks it.
Protocol v17 — client v0.18.0
Section titled “Protocol v17 — client v0.18.0”An interim version. The server has already moved past it to v19, so this client version can no longer connect either.
Client updates (nothing to do with the game server)
Section titled “Client updates (nothing to do with the game server)”Client ・ Settings tabs reorganised (from v0.18) — the old Automatic play and Advanced tabs merged into Agent, Actions was renamed Display, and a new Audio tab was added (BGM and sound effect volume).
Client ・ A pause button in the header. While paused the agent makes no LLM calls, so it costs nothing — use it to take over by hand or to save money.
Client ・ Amounts now display as 1g = 100s = 10,000c rather than one long copper figure.
Also shipped along the way
Section titled “Also shipped along the way”These landed between v17 and v22 without needing a protocol version of their own, and are all included in the current server and client.
Balance
-
Provisions rebalanced (2026-08-04). Bread becomes the “one meal a day” staple and jerky moves to the lightweight slot:
Food Nutrition Weight Price Bread 180 → 540 0.5 → 1 kg 8c → 20c Jerky 540 → 300 0.5 → 0.25 kg 40c → 30c Cheese 300 → 180 0.5 → 0.4 kg 20c → 12c Apple 60 (unchanged) 0.3 kg 3c Full efficiency comparison in Food and satiation.
New systems
- HUD minimap below the time widget (can be turned off), along with improved landmark and world-map markers.
- Operator commands:
/kick,/mute,/summon,/goto.
Fixes
- One active session per account, enforced.
- Deletion refused for characters active in another session.
- Server-side player attack interval enforced.
- Game entry refused when dungeon chest history can’t be loaded (fail-closed).
- Party positions are pushed by the server instead of polled per client — and no longer wake agents.
- Busker NPCs now equip their worn mandolin on session start instead of the gilded keepsake, so the keepsake stays in the bag for the private offer-to-a-regular flow (2026-08-07).
Protocol v16 — client v0.17.0
Section titled “Protocol v16 — client v0.17.0”New systems
- Hunger and satiation, implemented end to end. The character sheet gains a status tab for hunger effects, and the HUD shows satiation with a tooltip.
- Campfires reworked — replacing the procedural ones, with softened flames and better placement.
- Food can be grilled on a campfire (the
grillsIntocolumn in the item data).
Balance
- Item economy rebalanced across the board, with the weapon tier ladder laid out.
- Ambient monster spawns now require a server allowance rather than being decided client-side.
- Monster drops are held server-side until the killing blow lands, which stops sniping and duplication.
New items & assets
ring_of_protection, with the cross-shield ring accessory model.- The dagger gets its own model and icon.
- An ornate cross belt model and icon.
Other
- The world map records dungeon entrances you have discovered.
- Party invites show a draining countdown gauge.
- Worn torch particle rendering fixed.
July 2026
Section titled “July 2026”7/17 — Google Sign-In
Section titled “7/17 — Google Sign-In”New system ・ Password login replaced entirely by Google Sign-In: the login screen is a single Google button and the server verifies the ID token. The old password path was retired for security.
New accounts get a random player_xxxxxx name, and no email or profile name
is stored.
7/16 — Off-hand shields, solid furniture blocks movement
Section titled “7/16 — Off-hand shields, solid furniture blocks movement”New items ・ Wooden and Raven shields, each with a Guard stat that feeds into combat and shows on the character sheet.
New system ・ Solid furniture now seals the tiles it occupies, so players and NPCs walk around it rather than through it. The collision logic is shared Rust, so the browser, bots and server all agree on which tiles are blocked.
7/14 — Dressing up Rica’s shop
Section titled “7/14 — Dressing up Rica’s shop”Other ・ A procedural “Rica’s General Store” sign, the interior decorated with item models placed as furniture, and stock updated to sell Healing Potions and Scrolls of Return.
7/13 — Horizontal world wrapping
Section titled “7/13 — Horizontal world wrapping”Fix ・ Completed the half-finished X-wrap, so the east and west edges genuinely connect — no more fallback terrain or stuck map marker.
7/12 — Water shader rework
Section titled “7/12 — Water shader rework”Other ・ Sea and river shaders rewritten and unified so the boundary blends seamlessly, ocean wave motion improved, and splash effects added around river obstacles like rocks and bridge posts.
June 2026
Section titled “June 2026”6/30 — Quickslot bar
Section titled “6/30 — Quickslot bar”New system ・ A 10-slot quickslot bar across the bottom of the screen. Drag a bag item onto a slot to bind it (showing the icon and remaining count); double-click or press the slot’s number key (1–9, then 0) to use it — equippables equip, consumables get used. Right-click clears it.
Bindings are keyed by item definition, not instance, so they survive a stack being consumed and recreated, and persist per character in local storage. The bottom HUD was reorganised at the same time: chat, quickslots and menu buttons now share one row.
6/28 — Healing Potion
Section titled “6/28 — Healing Potion”New system ・ The first drinkable consumable. Double-click a Healing Potion in the bag and the server rolls 6d4 HP (NetHack dice), capped at max — a full-health or downed character keeps it instead of wasting it. One is consumed per drink and the health change broadcasts to nearby players.
Other ・ The item data’s damageDice / healDice columns were folded into a
single category + dice pair, where category decides how dice is
interpreted (weapon → damage, healing potion → heal).
6/27 — Corridor doors
Section titled “6/27 — Corridor doors”Other ・ Corridor mouths into rooms now get a click-to-open wooden double door (the same leaves and stone arch as the surface entrance) instead of a bare gap.
6/25 — Distinct corridor walls
Section titled “6/25 — Distinct corridor walls”Other ・ Dungeon corridors use a separate wall texture from rooms: rooms keep the medieval stone blocks, corridors get rock, and wall runs break where the texture flips. Useful for telling whether you’re in a corridor or a room.
6/20 — Dungeon click pathing
Section titled “6/20 — Dungeon click pathing”Fix ・ Fixed a dungeon entrance-stair click bug where clicking the red-marked floor area in a room routed the player back outside. The culprit was the hidden surface entrance building: Three.js raycasts still hit invisible objects, so its walls and roof were intercepting underground floor clicks.
6/18 — Breakable props, interactive chests and coin pickups
Section titled “6/18 — Breakable props, interactive chests and coin pickups”New system ・ Barrels and crates are breakable — click one and your character walks up and swings once, and the whole model swaps to its broken-debris variant at the contact frame (chests stay intact). Server-authoritative, and the smashed cell becomes walkable.
New system ・ Dungeon chests are interactive — clicking one walks the player up and swings the lid open. Opening spawns a real coin pile ground item in front of the chest; picking it up credits 1–10 copper straight to the wallet instead of taking a bag slot.
6/17 — Stair passability
Section titled “6/17 — Stair passability”Fix ・ Blocked passability flags so current-floor monsters can’t enter the high side of the stairs — they were marching up the shaft and clipping through the floor above.
6/15 — Torch shadow artifacts
Section titled “6/15 — Torch shadow artifacts”Fix ・ Fixed dungeon torch-light shadow glitches. The key detail: three.js records the shadow map from the backface by default, which self-biases against acne but makes contact shadows peter-pan. Fixed with a 0.02 m contact lift plus a larger shadow map and smaller bias.
6/14 — Procedural dungeons
Section titled “6/14 — Procedural dungeons”New system ・ Seed-deterministic, NetHack-style maze dungeons, fixed per entrance and up to 20 floors. Surface entrances reuse the housing procedural geometry as a stone building, with terrain holed out to expose the stairs. The final floor holds a boss with loot.
6/11 — Economy phase 2: LLM haggling
Section titled “6/11 — Economy phase 2: LLM haggling”New system ・ Rica’s LLM can grant per-player price deals via a new
offer_deal action. The server clamps offers to a CHA-derived price band,
enforces daily budgets and cooldowns, logs every decision, and the trade window
shows the haggled price.
The CHA-linked band runs roughly ±5–25 percentage points, with a 1 gold per game day merchant budget, 40 silver per player, a 30-second cooldown, and deals that are single-use and expire after 5 minutes.
6/10 — Goblin, player control FSM, economy phase 1
Section titled “6/10 — Goblin, player control FSM, economy phase 1”New monster ・ The Goblin.
New system ・ Player control converted to an explicit finite state machine.
New system ・ Single-currency gold and fixed-price merchant trading with Rica (base price data, trade protocol, server validation, trade window UI).
6/08 — Kobold, Small Sword
Section titled “6/08 — Kobold, Small Sword”New monster ・ The Kobold.
New item ・ The Small Sword.
The 2D → 3D asset workflow was documented at the same time.