HOME / CHANGELOG / v2.11.0

Release notes

v2.11.0

PUBLISHED: 19 July 2026

Release Scope

ItemValue
Release date2026-07-19
Compared fromv2.10.0 (6e5a97da56adb185095b56dd64fc28e07ae6b59e)
Reviewed through7fe05f88689acb6ac74afde545a133dd86932864
Commit rangev2.10.0..7fe05f88689acb6ac74afde545a133dd86932864
Commits reviewed196
Files changed395

Overall Release Summary

v2.11.0 turns the systems introduced in v2.10.0 into a more structured endgame and world-combat loop. NPCs now have clearer combat identities, beast-family actions, readable difficulty tiers, real casting wind-ups and channels, bounded pursuit, and better guard and ally rules. The world around those systems has also been substantially refreshed: Vashj’s Mistbound Keep, Gadgetzan and Tanaris, Illium, Arctic Wastelands, Mount Hyjal, Ashen Caldera, Shadowforge City, Inner Mind, Deep Elem Mine, Lordaeron, Booty Bay, and the Astral Plane all received material navigation, encounter, or presentation work.

The release also introduces two complementary quest structures. Kingdom Campaigns provide authored, multi-stage personal progression, beginning with the level 52-57 Mistbound Keep campaign. World Hunts replace the old Global Quest start and purchase model with a cooperative, world-wide roster that survives copyover and awards contribution-based caches. Both systems now use a shared reward-cache policy instead of maintaining separate loot-box designs.

This is also a progression release. Remort experience requirements now rise deliberately after level 50 and continue through level 60, while cache rewards can grant useful progression XP up to level 58. A stopped-copy migration tool supports the associated quest-point economy reset by capping legacy QP at 50, issuing fixed compensation where required, and verifying every migrated player authority before it can be promoted.

The sections below consolidate the material outcomes from the NPC combat, beast family, mob tier, Kingdom Campaign, World Hunt, reward-cache, migration, and area-refresh planning documents. They describe the implementation present at the reviewed commit; deferred concepts are listed separately and are not part of the v2.11.0 feature claim.

Player-Facing Changes

NPC combat identities and beast families

  • NPC combat selection now uses explicit tactic, engagement, casting, family, and guard policies instead of relying on broad random legacy branches.
  • Mobs can use authored openers such as Backstab and Pounce before normal combat begins, then choose only contextually valid active-combat actions.
  • Bounded pursuit allows explicitly configured trackers and guards to chase targets without making every aggressive mobile a permanent global hunter.
  • NPCs now distinguish targets they can detect from observers who should not see hidden or stealth-breaking feedback.
  • Guard identity is centralized around guard specials. Guard jurisdiction, movement blocking, assistance exclusions, pursuit, Shield Slam access, and law behavior no longer depend on unrelated flags accidentally implying that a mobile is a guard.
  • allied and nofight are distinct builder dispositions and appear as clear room-list markers. Allied NPCs are protected from players and their controlled followers while remaining available for authored NPC conflict.
  • Data-driven NPC combat profiles supply validated bundles of class, creature, and role actions. Overly broad inherited signature kits were trimmed to stop ordinary accessible mobs gaining inappropriate abilities.
  • Ranger pets and configured wild beasts gained family actives: Infected Bite, Web Spray, Shell Shield, Thick Fur, Silverback, Sonic Screech, and Lightning Breath. These use a shared family cooldown and coexist with Ferocity, Tenacity, and Cunning specialization passives.
  • Ranger pet status now exposes family, specialization, and active ability, and pet ability [target] orders the current companion to use its family action.
  • Reflection behavior was clarified and corrected: the Silver Aura effect reduces incoming damage and returns bounded Energy damage without recursive reflection or lethal recoil.

Casting, channels, and interruption

  • Player and NPC spellcasting now share the same spell contracts and queued execution boundary instead of using a separate instant-cast NPC subsystem.
  • Thirty-six substantial spells now have visible casting wind-ups, including Fireball, Frostbolt, Lightning Bolt, Starfire, Soul Fire, Mind Blast, Healing Touch, Holy Light, Prayer of Healing, Polymorph, Fear, and major summons.
  • Arcane Missiles, Crackling Jade Lightning, Drain Life, Penance, Mend Pet, Blizzard, Rain of Fire, Hurricane, Hellfire, and Tranquility use unified multi-pulse channel handling.
  • Kick, Jab, Earth Shock, Silence, and other interruption paths can stop active casts or channels with clearer caster, victim, and room feedback.
  • NPC Mage, Cleric, Undead, Druid, Shaman, Warlock, Priest, and Paladin casting profiles select valid offensive, defensive, healing, and room targets through the shared spell machinery.
  • NPC casting now produces visible preparation/release messages and combat sounds, giving players an opportunity to understand and interrupt dangerous spells.
  • Exact spell-name lookup is preferred before prefix matching, reducing cases where casting a complete spell name selected another similarly prefixed ability.
  • Rockbiter Weapon defaults to the currently wielded weapon when cast without an explicit object target.
  • Mana potions correctly identify potion use and restore mana through the intended restoration path.

Mobile difficulty tiers

  • Mob difficulty is now independent from numeric level. Builders can assign Normal, Veteran, Elite, or Epic tier while preserving the prototype’s level for progression, spell selection, and authored programs.
  • Veteran, Elite, and Epic instances receive centralized scaling for health, damage dice, armor, Accuracy, Expertise, and configured school resistance. Normal remains an exact compatibility path.
  • Tier labels appear consistently in room listings, direct look, scan, consider, and staff inspection so enhanced encounters are visible before combat.
  • Tier choice maps visibly to the existing adaptive loot profiles: Normal uses default loot, Veteran uses armed, Elite uses elite, and Epic uses boss.
  • Lady Vashj is now an Epic level-54 campaign boss. Vashj’s lieutenants and objectives use explicit Veteran and Elite tiers to make the dungeon’s escalation readable.
  • Builder medit tier, tier preview/check surfaces, mob-tuning inspection, and deterministic calibration reports support consistent authoring and testing.

Kingdom Campaigns

  • quest now supports authored Kingdom Campaign actions: request/list, accept, info, continue, pause, abandon, complete, and durable reward claims.
  • Campaign state is versioned per original/remort life and survives saving, reconnect, copyover, stage completion, and remort lifecycle transitions.
  • Friendly Kingdom questmasters are side-neutral campaign anchors rather than requiring a matching legacy kingdom side.
  • Objective events support authored room visits and mobile kills, with exact area, target, and expected-tier validation.
  • The first campaign, Vashj’s Mistbound Keep, is available for levels 52-57 and contains four stages: scouting the approach, breaking the Naga occupation, defeating the Elite Snap Dragon, and defeating Epic Lady Vashj.
  • Stage rewards include Treasury, Artisan, and adaptive Armory caches. The finale offers an explicit choice among Rare Armory, Artisan, or Treasury rewards.
  • Campaign XP is based on a frozen next-level requirement and apportioned across authored stage basis points, so the campaign remains meaningful on both original and remort lives without inventing XP after the level boundary.
  • Campaign output is wrapped to 79 visible columns and now presents difficulty, stage, objective, location, progress, reward choices, claims, and the next valid action more clearly.
  • State changes use checked saves and rollback on failure. Invalid definitions, duplicate sections, incompatible claims, or ambiguous cache state are quarantined or surfaced for staff review rather than silently rewritten.

Cooperative World Hunts

  • The familiar gquest/gq entry point now runs cooperative World Hunts. Legacy GQuest purchases, enhancers, player-funded starts, manual completion, and claim actions are retired.
  • Players can use gquest join, info, time, check, progress, quit, and hist. The output uses consistent World Hunt color, section spacing, progress messages, timing, next-action guidance, and [Hunt] target markers.
  • A three-active-minute Waiting phase freezes account-deduplicated seats and a five-level band. Running then freezes 12 targets for one player, 16 for two, or 20 for three or more.
  • Targets are sampled world-wide from loaded mobile prototypes after VNUM deduplication. Rosters allow no Epic targets and at most two Elite targets.
  • SAFE and NO_QUEST rooms, controlled or summoned mobs, guards, services, shopkeepers, trainers, questmasters, allied/nofight/no-XP mobs, pets, and denylisted prototypes are excluded from selection and credit.
  • The roster seed, target VNUMs, seats, contribution, elapsed active time, history, and outstanding delivery authority persist in data/world-hunt-state.json through atomic JSON replacement.
  • Copyover restores the exact Hunt and shared progress. Invalid JSON, unsupported authority, unsafe file metadata, or impossible state fails closed while retaining evidence.
  • Grouped, nearby joined players can receive contribution credit from an approved kill. Duplicate kills of an already completed VNUM do not advance shared progress.
  • A structurally removed or newly forbidden unfinished target pauses the Hunt instead of silently changing it. Staff can request one policy-valid live replacement while preserving all other progress and the original seed.
  • Join and progress announcements use the global GQuest news path. Joined character names use the legacy obfuscation behavior rather than publishing exact names globally.
  • Hunts complete automatically on the journaled terminal kill. Eligible players must have contributed and be online at completion; delivery creates a bound, source-tagged cache with an exact durable award identity.
  • Contribution tiers are Participation, Bronze, and Silver; pace is Fast, On-time, or Slow. Treasury awards range from 300-450 gold at Participation through 1,200-1,800 gold at Silver, include 1-3 QP by contribution, and grant 700 or 1,400 progression XP. Artisan awards grant fractured essence, possible bonus gold, and the same rarity-based XP.
  • The World Hunt clock uses 18-minute Fast, 30-minute On-time, 45-minute timeout, and 90-minute cooldown boundaries, based on active event minutes rather than wall-clock downtime or paused-invalid time.

Shared reward caches

  • Personal quests, Kingdom Campaigns, and World Hunts now share a generic reward-cache rarity and object-configuration policy.
  • Cache rarity follows a Warcraft-style ladder: Normal (white), Magic (green), Rare (blue), Epic (purple), Legendary (orange), and Mythic (red).
  • Armory caches call adaptive ObjGen at opening time and support an immutable item-count contract. Normal produces Magic1 equipment, Magic produces Magic2, and Rare produces Rare equipment. Generated rewards are character-bound.
  • Artisan caches currently grant fractured essence; a versioned artisan-flasks static-table hook is reserved for the later flask system.
  • Treasury caches grant authored gold and QP values. Kingdom Treasury revision 2 raises the Normal/Magic/Rare gold ranges to 300-450, 600-900, and 1,200-1,800 respectively.
  • Every cache grants progression XP by rarity: 700 for Normal and Magic, 1,400 for Rare, and 2,100 for Epic and above. Cache XP advances characters only as far as level 58.
  • Epic, Legendary, and Mythic Armory hooks are reserved for versioned static drop tables in addition to adaptive Rare equipment; no undeclared static items are rolled in v2.11.0.
  • Cache opening is atomic. Currency, essence, XP, generated items, object consumption, save failure, and reconciliation either commit together or roll back without duplicating or losing the authoritative claim.

Progression, crafting, client, and usability changes

  • Remort XP requirements now scale sharply after level 50 with per-level multipliers of 5, 10, 15, 20, 40, 80, 100, 200, 400, and 800 through level 60. Existing remort saves are adjusted to retain their progress within the new level band.
  • Remort characters can now gain XP through level 60 (Legend) rather than stopping at the earlier Hero boundary.
  • GMCP/MSDP experience totals and percentages use the nonlinear level floor and next-level requirement, so clients should continue consuming reported values rather than deriving a fixed curve.
  • Random disenchanting now uses the same extraction chance model as focused disenchanting. Success returns the selected shard; failure destroys the item and returns one fractured essence.
  • areas [name] lists player-accessible adventure areas, observed mobile level ranges, mapped entrances, and a marker for areas matching the player’s level.
  • look, area listings, weapon presentation, and long quest/campaign output received clearer color and visible-width wrapping.
  • Room protocol data now includes a boolean mappable/MAPPABLE field so clients can respect ROOM_NO_MAP without guessing from missing tiles.
  • Liquid object serialization, link-dead socket addresses, spell reflection, mobile chute rooms, mana restoration, and several area navigation defects were corrected.

World And Encounter Changes

  • Vashj’s Mistbound Keep: Vampire’s Keep was renamed and calibrated as a level-54 dungeon, received an entrance waystone, formatted room prose, tiered Naga encounters, an Elite guardian, and Epic Lady Vashj.
  • Gadgetzan and Tanaris: rebuilt as a coherent desert city and surrounding region with corrected coast mapping, relocated world entrance, refined room descriptions, and safer neutral-guard behavior.
  • Troy / Illium: rebuilt as the Illium warfront with refreshed navigation, encounters, and presentation.
  • Arctic Wastelands: refreshed for midgame progression with a revised map, encounters, and reward review.
  • Mount Hyjal: refreshed as a player destination with updated content and navigation.
  • Ashen Caldera: the old volcanic area was rebuilt with new layout and encounter content.
  • Shadowforge City, Inner Mind, and Deep Elem Mine: received material area refreshes, cleaner layouts/descriptions, and updated encounter populations.
  • Lordaeron: room descriptions, ambience, and entrance presentation were improved.
  • Booty Bay: navigation and population were polished, the Blackwater Card House added local blackjack tables, and bruisers were made explicit guards so they cannot become World Hunt targets.
  • Stranglethorn Vale: received further route, population, beast-family, stealth, tier, and campaign-adjacent corrections after its v2.10.0 debut.
  • Astral Plane: the hub was recalibrated and documented so its exits and area connections are easier to understand.
  • Alliance training rooms, Draenor City, Gadgetzan, Illium, and other retained areas received focused prose, map, reset, and saved-format cleanup.

Builder, Administrator, And Operator Changes

  • NPC combat profiles are loaded from data/npc_combat_profiles.json with validation, review gating for ambiguous matches, audit tooling, and explicit migration scripts.
  • Mob tier base-stat calculators and tuning simulators separate authored bases from effective runtime stats and provide level 1-60 calibration outputs.
  • Area-builder assessment, VNUM discovery, formatting, tile-palette, ASCII-map, SVG-map, and validation tooling was expanded and exercised across the refreshed areas.
  • Kingdom Campaign definitions are strict, versioned JSON in data/kingdom_campaigns.json; reward contracts remain versioned records in data/kingdom_rewards.dat. Unknown, missing, duplicate, wrongly typed, or oversized data fails validation.
  • World Hunt schedule/family policy lives in data/world_hunts.dat; target exceptions live in the revisioned data/world_hunt_denylist.dat. The policy deliberately does not author fixed target rosters.
  • Staff gained Kingdom Campaign definition, player-state, claim, validation, and safe retry diagnostics plus World Hunt journal, catalog, seat, debt, resolution, manual-policy-start, and invalid-target replacement controls.
  • Checked pfile saving now supports transactional Kingdom state, caches, migration receipts, and failure rollback without overwriting the last good authority.
  • Docker build packaging explicitly verifies and includes campaign, reward, World Hunt, loot, race, and skill configuration files.
  • nlohmann::json is vendored under src/external/nlohmann/ and is used for strict authored campaign and durable World Hunt state decoding.

Migration And Production Cutover

v2.11.0 includes a non-networked src/low world-hunt-migrate mode for the quest-point and legacy-enhancer transition. It is intentionally not an online command and does not stop services, create backups, contact MariaDB, or promote data on its own.

Migration version 2:

  • caps legacy character QP at 50;
  • gives each affected character one immutable Normal Treasury Migration Compensation Cache containing 300 gold, 0 QP, and the standard 700 XP;
  • records the open-beta-veteran recognition marker for every processed character;
  • can reverse an explicitly approved exact legacy enhancer into at most one deterministic Rare Armory compensation cache;
  • binds receipts to the reviewed commit, image identity, stopped-copy identity, source checksums, object audit, cache identity, and completed result;
  • supports scan, manual manifest approval, apply, verify, failure recovery, and idempotent reruns.

Production must remain stopped while the approved migration is applied to an owner-controlled copy. Backups of player files, area/obj_save.txt, and the database are required before promotion. Full commands and rejection rules are recorded in docs/world-hunt-migration-tooling.md.

Codebase Changes

  • Added dedicated Kingdom Campaign definition, state, pfile, event, command, reward, cache, XP, configuration-policy, and reconciliation modules.
  • Added dedicated World Hunt state, JSON authority, catalog, coordinator, command, reward, delivery, cache, migration, and runtime adapter modules.
  • Added a generic reward-cache policy/runtime boundary used by multiple quest producers while preserving producer-owned durable claim authority.
  • Added reusable account identity, controlled-NPC ownership, natural-target, mobile-reset, movement-cost, reset-cadence, checked-save, guard, ally, hunt, mob-cast, mob-tier, mob-base-stat, mob-tuning, and output-wrap policies.
  • Reworked the common spell queue so player casts, player channels, and NPC casts share lifecycle, cancellation, silence, target validation, release, and cleanup semantics.
  • Extended player and object save formats for Kingdom state, exact claims, source-tagged caches, World Hunt migration receipts, nonlinear remort XP, and safe load-time reconciliation.
  • Added extensive unit, static, live-boot, reconnect, copyover, corruption, migration, cache atomicity, failure-injection, Docker collision, backup/ restore, and isolated runtime fixtures.
  • The tag delta changes 395 files with approximately 105,000 added and 17,500 removed lines. Much of that volume is the vendored JSON header, regenerated area serialization, new test fixtures, and area content rather than a single monolithic runtime component.

Consolidated Planning Decisions

The following source documents informed this release and are summarized above:

  • feature/mob-combat-overhaul.md
  • feature/npc-combat-profile-catalog.md
  • feature/npc-caster-special-catalog.md
  • feature/ideas/epic-mobs.md
  • docs/design/epic-mob-tier-traceability.md
  • docs/design/mob-tier-calibration.md
  • docs/guard-law-behavior.md
  • docs/kingdom-campaigns.md
  • docs/reward-caches.md
  • docs/world-hunt-catalog.md
  • docs/world-hunt-local-playtest.md
  • docs/world-hunt-migration-tooling.md
  • the Mistbound Keep, area-refresh, and Lady Vashj assessment records under .ai-skills/low-area-builder/ and .ai-skills/low-loot-supervisor/

Their v2.11.0 decisions are consolidated here as follows:

  • Numeric mob level remains a progression and spell-selection input; tier is a separate, visible encounter-difficulty axis.
  • Explicit profile/tier authoring is preferred to automatic bulk migration of legacy areas.
  • Player and NPC casting share mechanical spell contracts; bespoke encounter scripts remain available for authored boss behavior.
  • World Hunts use random live-world prototype selection with strict exclusions, not authored routes or a fixed target catalog.
  • Durable state is human-readable JSON and fails closed. Reward object display data is never allowed to replace the producer’s durable claim authority.
  • Kingdom Campaigns, World Hunts, and personal quests share cache policy but retain their own eligibility and delivery authority.
  • Production quest-point conversion is an explicit stopped-copy operation, never an implicit boot migration.

Deferred Beyond v2.11.0

  • Dungeon instances and the broader instance design remain ideas only.
  • Epic, Legendary, and Mythic static item tables are reserved hooks and do not yet contain release drop pools.
  • Artisan flask tables and the wider permanent gold/QP spending economy remain future design work.
  • Reward values are intentionally data/policy-tunable; additional live balance passes are expected without another cache-system rewrite.
  • Mob-tier caster balance still needs richer spell-rotation simulation and broader live-group evidence before automatic tier migration is appropriate.
  • Additional Kingdom Campaigns and automatic production World Hunt policies require separately authored and reviewed content.

Release Review Items

  • data/world_hunts.dat currently contains only manual-test@1, marked ManualOnly True. The system can be exercised by an Immortal, but no Hunt will schedule automatically in production until an enabled non-manual policy is authored and reviewed.
  • Tiered Ranger-pet eligibility is internally inconsistent at the reviewed commit: tamebeast accepts otherwise eligible Veteran and Elite prototypes, but pet revival rejects every non-Normal source prototype. Do not advertise persistent tiered pets until that lifecycle is either supported end to end or non-Normal taming is rejected consistently.

Validation Summary

  • Clean host build and link with make -C src.
  • Focused Kingdom definition, state, objective, XP, command, reward, cache, reconciliation, delivery, reconnect, and copyover fixtures.
  • Focused World Hunt state, JSON journal, selector, coordinator, reward, cache, delivery, migration, corruption, backup/restore, and evidence-isolation tests.
  • Legacy GQuest retirement behavior and exact reward-delivery verification.
  • NPC combat profile, beast-family, guard, ally, pursuit, casting, tier, tuning, and area static tests.
  • Manual single-player 12-target World Hunt completion, copyover persistence, target replacement, progress messaging, and reward-cache opening.
  • Isolated Docker image build and cold boot with the complete tracked release configuration.