55 commits on gear/world-drops over main d7d809d, not merged yet. Plan, task list and log under
docs/superpowers/plans/2026-10-17-world-gear-*; player guide docs/GEAR-GUIDE.md, owner tuning
guide docs/GEAR-RULES.md.
World gear drops
- 14,959 original items from the vanilla, Burning Crusade and Wrath item databases can now drop, each with its real name, icon and model: green, blue and epic armour and weapons in your class's armour type and weapon skills. Legendaries stay the 8 curated named items.
- Bosses, completed contracts and bounties, Battleground Caches and (rarely) ordinary enemies drop them: about 3 pieces per hero in a full victory at every difficulty, never more than 6. Trash drops scale with the party size, so each party member gets about as many as a solo hero.
- Zone pools: about 70% of drops come from the arena's own loot (its creatures, quests, dungeons and raids), the rest from the world pool of that arena's expansion. A Barrens run drops Barrens gear; a Dalaran run drops Wrath gear.
- Difficulty and the run clock set a drop's power, not the item's original level: one band up per half of the victory timer, up to the difficulty's cap. A Mythic Barrens drop is a Barrens item at Mythic power.
- No drop is weaker than the empty slot it fills, and no world drop reaches a raid piece: see Item power below. A drop is put on for you in a slot with no rank; a rank-only slot is filled only by a piece that keeps all of its health, damage and armor (raid pieces and legendaries), so a world drop that trades those for crit or spell lines waits in the bag marked NEW for you to choose.
- Blue and epic pieces roll a suffix bonus ("of the Tiger"), some carry a class spell line ("Frostbolt's slow lasts longer"), and rare epics a "Chance on hit:" proc (at most 2 per hero).
Item power: raid sets and legendaries on top
Like in WoW, raid gear and legendaries are the strongest pieces; world drops are the road there and the source of build choices. Per slot rank, in stat budget:
| Piece | Empty slot | World green | World blue | World epic | Raid (Tier 1) | Tier 2 | Legendary |
|---|---|---|---|---|---|---|---|
| Power per rank | 0.80 | 0.81-0.87 | 0.81-0.97 | 0.83-0.99 | 1.00 | 1.25 | 1.50 + effect |
| Item level at rank 5 | 80 | 81-87 | 83-90 | 86-93 | 100 | 125 | 150 |
| Difficulty | Normal | Heroic I | Heroic II | Heroic III | Heroic IV | Mythic |
|---|---|---|---|---|---|---|
| Drop bands | 1-2 | 1-3 | 2-4 | 3-5 | 4-6 | 5-6 |
- World power is band power (0.85, 0.864, 0.878, 0.892, 0.906, 0.92 for bands 1-6) times quality (green 0.95, blue 0.81, epic 0.83); a blue or epic adds its rolled suffix (17.5-25%) on top, so a band's epic is still above its blue and its blue above its green. Every slot weighs the same (the weapon was 1.4).
- An empty (rank-only) slot now counts 0.8 per rank instead of 1.0, the bottom of the ladder: any drop beats it. A hero with nine empty rank-5 slots goes from +30% to +24% health and damage (armor 10 to 8) at the realm gear power 2.5; drops, set bonuses, raid pieces and legendaries add from there. Realm gear power 3.125 would restore today's +30% exactly (every tier scales by the same factor, so the ladder order holds); that is an owner setting in /admin, not changed here.
- A full set of the best world epics stays below a Tier 1 set even before the set bonuses. What a world epic offers instead is choice: class spell lines (45% of epics) and procs, which raid pieces do not have.
- Legendary effects doubled: Sulfuras returns 4 damage; Thunderfury 6% less contact damage and 8% shorter mobility cooldown; Atiesh +4% cast haste (times the realm gear power, +10% at 2.5) and 0.3 s protection after mobility; Thori'dal +10% range on Arcane Shot, Multi-Shot and Aimed Shot; Ashbringer +4% crit and 2% health per kill; Warglaives +2% leech and 10% shorter mobility cooldown; Val'anyr heal and shield spells +20%; Shadowmourne +4% crit and +20% Obliterate, Blood Boil and Death and Decay damage. Each stays inside its session cap.
- Drop chances, salvage, the bag and rank costs are unchanged, so reaching rank 5 takes the same runs.
- The realm gear power scales every budgeted line of a world item (crit, guard, per-spell, cooldowns), not only health, damage, armour and haste. Authored spell lines and procs keep their values; the gear sub-caps (crit 6%, each spell effect 15%) still bound gear alone.
Bag, salvage and tooltips
- A bag of 150 pieces per class. Duplicates, worse rolls of an item you own, off-class wins and drops over the cap are salvaged into embers for you, with a receipt; a better roll replaces the worse copy. Salvage by hand in the Gear sheet (two steps for blue and epic, Salvage all greens); worn pieces cannot be salvaged. Embers pay for slot upgrades.
- Saved characters move to the new bag on first load. A piece your class can no longer use (Paladin tier 3 left the Warrior pool) is taken off and salvaged at its full value; the slot keeps its rank.
- Classic WoW tooltips on every item surface (Gear sheet, results, Codex, drop tables, in-run character sheet): name in the quality colour, Item Level, slot and type, white stats, green Equip lines, set bonuses, rank and salvage value. No "+0" lines: a value too small to print is folded into the item's biggest line.
In the run
- A drop prints the stock "You receive loot: [item]." line in its quality colour, in a loot-only chat window placed clear of the HUD and the action bar.
- Character sheet (C): world pieces show their real icons. Click a slot to list the pieces you own for it and equip one (once a second); the hero re-dresses and the stats update at once.
- Party rolls: with two or more signed-in players, a piece another player can use opens the stock WoW group loot window (Need dice, Greed coin, Pass, 20 s timer bar, 3 at once, more queued) with the stock chat lines ("X has selected Need for", "X rolled 57 (1-100)", "X won"). Hover shows the tooltip and an upgrade comparison; Need is dimmed for a class that cannot use the piece; a piece only your class can use is yours at once. Auto-pass on non-upgrades and auto-greed on unusable pieces are account preferences.
- Nothing is lost: open rolls at the end, guest drops, a winner who left and full bags go to an end-of-run roll on the results screen, drawn as the 1.12 group loot frame with its original art.
Results, Codex and admin
- The results screen shows every gear drop of the run as a card (on defeat too) with Equip now or Keep in bag; salvaged and duplicate pieces show their embers.
- Codex Items tab: search every droppable item and filter by class, slot, quality, type, expansion, zone and source; owned items are marked. An item shows its tooltip at any difficulty, where it drops, and its chance per boss, contract, cache and 1,000 kills with runs per drop. Drop Tables shows each zone's pool size.
- /admin Loot rules tab: every drop and stat number (bands, power, chances, quality weights, salvage, bag cap, roll seconds) tunable live without a redeploy, owner-password checked, audited per field, with per-field and per-section reset and a preview of expected drops per difficulty. Every field is explained in place, with live readouts of what a value means, a band explainer and a legendary card.
- /admin tuning: the legendary odds of a qualifying Mythic victory are an owner setting ("Legendary: 1 in N", default 1 in 20,000); the Codex, the gear sheet and the docs read the live value.
Review and playtest fixes
Two browser playtests on a local server and a final edge-case review found these; all are fixed (67ec3b7, a7ffcfb, 1d0e853) and the playtest items were confirmed in the browser.
- One player's unreadable or unsaveable character no longer stalls the room: they sit out the roll, and an award that cannot be saved after 8 tries is forfeited with a receipt line while everyone else's drops, the results and Restart carry on.
- Lowering the bag limit in /admin can no longer lock a bigger bag out; it only bounds new drops.
- Equipping during a run keeps the talents and slot ranks the run started with: a respec or a rank bought mid-run applies from the next run.
- Gear receipts are sent once the run is finished (the results screen is their only reader) and without bag ids, instead of with every snapshot.
- Party rolls: frames that ended close before new ones open, so a burst of drops never leaves a roll without a window; two tabs of one character are one seat.
- The "You receive loot" line never repeats after a server restart; duplicate and upgrade cards show the embers their salvaged copy paid; an owner's plain grant keeps its own band, so a weaker drop never replaces it; saved rolls and receipts survive future fields.
- Results cards wear their quality colour (they were always green); a piece whose own name ends in its suffix ("Gordok Bracers of Power") shows the suffix once; the results roll frame keeps its buttons across updates, so a Need click is never lost; it also fits phones at 340 px.
- A login that fails while reading the character no longer leaves a session behind.
- With two or three party rolls open at once, the extra stock frames now sit beside the first one instead of stacking above it, where the Choose Your Reward panel hid them (a second roll could time out unseen).
- The loot chat window has the stock dark tint and shows four whole lines; character-sheet tooltips hang down instead of under the top bar.
- Confirmed in the browser: real icons, the zone source line, no "+0" lines, class pools in the Codex, the loot line, results cards with Equip now / Keep in bag, a two-player roll end to end (Need beats Greed, timeout is Pass, only the winner's bag gains the piece), the admin Loot rules tab (preview, save, audit, reload; Reset not yet exercised) and the class-lock cleanup (shoulder emptied, embers +30).
Tooling
- Mac and Linux developers build and run the local server with
scripts/local-build.sh(docs/LOCAL-BUILD.md; cold about 10 minutes, warm--skip-webabout 1 minute).
Known limits / follow-ups
- Item links in the loot chat window cannot be clicked or hovered (it takes no mouse input, so clicks reach the world).
- No binary rollback after this release: the saved room checkpoint and the profile bag schema change
one way. Going back to a pre-world-gear image needs the saved room checkpoints (
saved_rooms) cleared and the pre-release database backup restored (docs/DEPLOYMENT.md). - Three benilla-app lib tests fail identically on main d7d809d (
the_layer_does_not_grow,a_local_in_a_system...,every_material_lane...); fixes belong on main. - The wenilla-host Codex-art test
all_permanent_victory_equipment_icons_decode_from_explicit_expansion_mountsfails on main too (with TBC/Wrath data mounted a zone artwork PNG exceeds its 1 MiB read cap). - The stock in-run group loot frame (GroupLootFrame1) sits at bottom centre over the Boss / Auto hint line; moving it needs the native layout to count the page's reward panel.
- Roll frames 2 and 3 sit beside frame 1 rather than stacked as in 1.12, because the page's reward panel covers the stock position; at a 4:3 screen frame 3 can overlap the chat window by a few pixels. Moving the reward panel instead is the owner's call.
- Equipping a piece into an empty slot can show a red per-stat delta while the gear score rises: the "never weaker" rule holds in budget points, and a piece may move points from damage into health, crit or armour. The owner should judge this.
- A piece taken off because your class can no longer use it is salvaged without any notice; the player finds an empty slot and more embers.
- Open party rolls are still resent in every snapshot while they are open (receipts no longer are).
- A roll seats one voter per profile, so one account playing two characters in a party votes once.
- The admin Loot rules Reset has not been exercised in a browser.
- 180 catalog items never drop because their model fails the display probe (150 displays, all missing female body textures).
- Bots (
bot/world) merge on top of this branch afterwards.