How we read this
Everything here is a restatement of data shipped in the World of Warcraft game client, pulled from Blizzard's own servers, with the exact build it came from attached. No fan site is ever a source.
Where the data comes from
Blizzard's patch server advertises every build, and the client's database tables sit on Blizzard's public CDN in CASC archives. We pull those tables ourselves and parse them against a pinned version of the community WoWDBDefs column definitions, so the same build always names its columns the same way. We never scrape Wowhead, Icy Veins, or any other site, and we never copy their data.
We name each build by the day we first saw it, "the Sep 30, 2026 build", because nobody remembers a build number. That is the day the build was first pulled here from Blizzard's CDN. It is not a release date: Blizzard publishes none for these clients. When two builds of one client were first seen the same day, each also carries its short build id, "Sep 17, 2026 (69913)". The full version is in every page's provenance line and on the build page.
How a value gets to a page
Every displayed value carries its build, its table, and its row. A change is shown as:
- The build is pulled from the CDN and each table's raw file is hashed and recorded.
- Rows are normalized, joined into entities, and the exact values are written verbatim, with one flagged exception: a few Forever item numbers the modern client itself computes rather than stores (see computed values).
- The build is diffed against the previous one, field by field, values shown side by side.
- A build's page records its BuildConfig, CDNConfig, the pinned definitions commit, and per-table row counts and hashes. See the newest one: the Oct 22, 2026 build.
How the words on a page are written
The answer sentence, the verdict, the FAQ answers, the title, the meta description and the headings on every item, spell, recipe, talent, hub, compare and build page are put together by the site's code from the two builds' client rows, by fixed rules, the same for every page of a kind (see the verdict rule). No one writes them page by page, and no language model is called when a page is built.
Tooltip text is the client's own description, its numbers filled from the client's own tables. A value that depends on your character is named in words; one the tables cannot supply is left out, never guessed. The site's own pages (this one, about, the guides and beta) are written by us.
How we check ourselves
Every value comes from Blizzard's own client, pulled from Blizzard's CDN; there is no third-party source or cross-check. The checks we run are our own, and each one blocks a build rather than warning about it:
- Integrity. The site build is hermetic and re-hashes every committed table file against the sha256 its build record claims, and checks every entity file's row count, so the site can only render data that matches its recorded provenance.
- Definitions. A build whose required columns the pinned WoWDBDefs commit leaves unnamed is blocked from publishing. The definitions decode the client's files; they are never a source of values.
- Computed values. The Forever item numbers the client computes are checked against Classic Era's shipped verbatim numbers for every unchanged item, and a category below 98% blocks the build (see computed values).
- Diff counts. Every diff's reclassified counts are re-derived from its rows and must match its summary, and a changed item whose named stats read the same on both sides fails the build.
When we call a change a buff or a nerf
A change is labelled buffed or nerfed only when every field with an unambiguous direction agrees: cast time, power cost, cooldown, range, durability and bag slots. A cheaper, faster or longer-ranged spell is a buff; the reverse is a nerf. A talent is graded by the numbers its rank tooltips print. Anything mixed, or a field whose direction is not obvious, is labelled simply "changed". A spell's cooldown is judged as the tooltip prints it, the larger of the client's two cooldown columns, so a cooldown the client moved from one column to the other is not a buff or a nerf. Effect base points and item stat budgets never decide the label, because the Classic and Forever engines store damage and stats differently and the raw numbers do not compare. Both values are always shown, so you can check the call yourself.
How item changes are read
The two engines store an item's stats differently, so the item diff compares what the tooltip shows, not the storage. A stat is compared by its name and amount; the modern client's internal stat-budget value is kept in the raw field table but never decides that an item changed. Classic Era keeps resistances in a separate array indexed by the client's spell-school enum, while the Forever client stores each one as a stat id; the id for each school was confirmed from items present in both builds (Thunderfury carries Fire and Nature Resistance on both sides), so Era resistances are read as the same stats and the tooltips line up. Holy resistance, which one Era item carries and no cross-build item confirms, is left unnamed until a build confirms it.
A changed item whose only change is the class or subclass the client files it under (Tough Jerky moved from Consumable to Food & Drink) is reclassified, not changed: its page title says Unchanged, the hero names what was re-filed, and hubs count it on its own line. An untouched item that cannot be equipped has no page, so a reclassified one keeps its page but is not indexed and is left out of the sitemap, search and the hub lists, unless it is the one page of a spell it casts. Weapons carry a second damage slot in the Classic layout; its school column is not yet identified in that layout, so the secondary damage line is omitted on both cards rather than guessed. An item's on-use, equip and chance-on-hit lines show the effect spell's own description, resolved from that build's spell tables the way the in-game tooltip does. Rows whose name marks them as Blizzard's scaffolding (Deprecated, DNT, DND, NYI, (OLD), [PH], test, QATest, debug, zzOLD, "Monster - ", stat-test gear such as "90 Epic Warrior Helm" or "Ring of Critical Testing", the "Durability" test set, "Monster Weapon", "OLDMonster - ", "Copy of", QA, Nax PH, [TMP], glued Test, QA or OLD such as "TestBoots", "QAEnchant" or "OLDRecruit's Belt", Test and a digit such as "MHTest02", placeholder anywhere, or a name that is just "Template Item" or "Unused"), zones the client itself marks unused or as a placeholder ("UNUSED Stratholme", "***On Map Dungeon***", a "Prototype" area), and zones the client places on its own Development Land or test maps (Programmer Isle, the Jeff quadrants), keep a page but are noindex and left out of hubs, search, the sitemap and the zone map index; each hub counts them in one footnote. One that the two builds did not change has no page at all.
Computed values (Forever item stats, talent ranks)
Classic Era ships an item's final numbers, so we show them verbatim. The modern Forever client does not: it stores each item's stat allocation, weapon kind and armor class, and computes the +N stat, weapon damage and armor the tooltip shows at runtime from its own item-budget tables (RandPropPoints, ItemDamage*, ItemArmor*). To show the real numbers we run the client's own formula over the client's own tables. This is the only place the site computes a value; it is flagged as computed wherever it appears, and the verbatim allocation is kept beside it.
We gate the formula against Blizzard's own other engine. For every item unchanged between the two builds we compute the Forever number and compare it with Era's shipped number. On the newest Forever build (Oct 22, 2026), checked against the Oct 27, 2026 Classic Era build: stats match 99.5%, weapon damage 99.3%, armor 99.8%. The remaining fraction is items Blizzard actually rebudgeted, which the diff shows as changes; a mismatch is investigated, never averaged away. Every Forever build is re-checked against its Classic Era baseline on every site build, and a category below 98%, or one that could not be checked, blocks the build.
Talent ranks are not computed any more. The Forever client keeps its talent tree in the Trait tables: one spell per talent, and a curve (TraitDefinitionEffectPoints, CurvePoint) that sets each effect's value at every rank. The talent calculator and every talent page render the client's own description template over that curve value, rank by rank, beside Classic Era's one spell per rank. A talent is "changed" when the numbers its tooltip shows differ at any rank (or when it moved, lost ranks or changed prerequisites), which is the same comparison on the calculator, the talent page and the hubs.
Withheld rows: what the client lists but will not let us read
"Removed" is a claim about the client, so we make it only when the client gives no other account of a row. Two accounts it can give, both read from Blizzard's own files, make a row withheld instead:
- Encrypted sections. Blizzard ships unreleased content inside encrypted sections of a table and withholds the key. The file header still lists the ids inside each such section, so every build records exactly which rows it could not read (the build page counts them). A row that was readable in the older build and sits in a withheld section of the newer one is withheld, not removed; when the key ships, it comes back as added, and its page says the previous build already carried it.
- An id with no data row. The Forever client keeps two item tables: Item.db2 lists every item id the client knows (class, slot, icon), and ItemSparse carries the name, stats and tooltip. The beta ships an ItemSparse row for only part of the list. 10,185 Classic Era items keep their Item row and lose their data row (about two thirds of them bind on pickup, about half are item level 60 or above). Such an item is withheld with that reason on its page. The client still lists it; it does not say what it is. When the only items that carry a spell are like this, the spell's page states only what the client does show of them, how the effect fires and the kind of item ("the Equip effect of a Trinket item"), and that the client lists them without their names or tooltips.
A withheld entity keeps its page so its URL is stable for the build that reads it again, but the page is kept out of the search index, the sitemap and every ledger: it can state what the client withholds and nothing about whether the entity changed. Hubs, the home page and each compare page carry the count.
A Classic Era spell the Forever client ships no data for, but that a spell it does ship still grants by id (a rune's "Gain the ability" effect names it), is counted as removed in the totals, yet its page never says so: it says the client still grants the spell and ships no data for it, is kept out of the search index, the sitemap and the spells list, and the spells hub carries the count. A removed Classic Era spell that is not granted itself but shares its name and class with one that is (5 of them, Beacon of Light among them) reads the same way: its page says the client ships no data for it and still grants a same-name spell of its class, names that spell's ID, and never says the client grants this one.
A profession recipe is named by the spell it teaches, so a recipe row whose spell the newest build ships no name for is read the same careful way. When that spell sits in an encrypted section, the recipe is withheld. When the name it last had (in Classic Era, else in the last Forever build that named it) is now a recipe of another profession, its old address forwards there: Classic Era's Alchemy healing potions are First Aid recipes in Forever. Any other such row keeps a page under its last name, kept out of the index, the sitemap and the profession ledgers.
Folded talent ranks. Classic Era ships each rank of a talent as its own spell. WoW Forever ships one spell per talent and reads each rank's values from the talent's rank curve, so a Classic Era rank spell with no Forever row of its own is not removed: when the Forever talent still lists it, its page reads it as that rank of the talent's one spell and compares the two clients' text at that rank. Its Forever tooltip is the talent's one spell read at that rank from the curve of the talent's own trait definition, the same curve its rank text is read from, so every tooltip line compares at that rank, even when another trait definition names the same spell with a different curve. The build totals still count it as a row the newer table lacks.
Unchanged pages, and the columns a player never sees
Every player spell and every equippable item in the newest Forever build has a page, changed or not (since 2026-09-18). An unchanged page shows one tooltip and says the client ships the same tooltip as Classic Era. The hubs still list only what changed: if a row is in a hub list, it changed. A passive talent's rank spells that carry the talent's own name keep their page, but it is noindex and left out of search and the spells list: they are read on the talent's page, the one page for that name.
Two kinds of change set are the client's bookkeeping, not a change a player can see, and read as unchanged on the tooltip while the raw field diff keeps them. An item the Forever client only re-filed (its class or subclass, its stack size, its vendor buy price or an item level moving between the two "no level" values 0 and 1) is badged "reclassified". A spell whose only differing columns are the engine's internal level columns (SpellLevels.BaseLevel, SpellLevel, MaxLevel, which the spellbook tooltip never shows and which the Forever engine leaves at zero on thousands of Era spells) or a duration index that points at the same duration is badged "internal". So is a spell whose cooldown the client only moved between its two cooldown columns (SpellCooldowns.RecoveryTime and CategoryRecoveryTime): the tooltip prints the larger of the two, and when that number is the same on both sides nothing a player sees moved. So is a talent whose only change is its column in the tree grid: it moved sideways in the same row, with the same tree, row, requirements and rank tooltips. So is an enchant whose only change is its name, where the Forever client stores the name as a template whose number it fills in from the enchant's own values, and the filled-in name reads exactly as in Classic Era ("Armor +10" on both sides). A third kind is a real change the tooltip cannot show: a spell whose effect data moved (an aura or effect type, a miscValue, an added effect, or a value on an effect no tooltip line prints) while every line both tooltips print reads the same. It is badged "same tooltip", its page says what the client changed behind the tooltip and that the client does not say what that does in play, and it never says "unchanged". A fourth kind is a recipe, pattern, plans, formula or tome item the Forever client re-encoded: Classic Era kept its Use text on a teaching spell, and Forever stores that same text on the item, word for word (case and spacing aside), and teaches the same spell through a spell named Learning. Both builds' spell tables prove the move, the page says the Use text is the same, and it is badged "same text". All four are counted apart on the hubs, the compare pages and the build pages, and the build checks that every diff's count matches its rows.
What we deliberately do not do
- No guessed values. Every number is either verbatim from Blizzard's tables or, for the Forever item stats above, computed by the client's own formula over those same tables and cross-checked against Classic Era. A tooltip value the tables cannot supply is left out, never approximated; an unidentified column is stored under its raw name, never rendered as a fact.
- No server-side data. Quest text, NPC names, vendor lists and loot tables are not in these client tables, so we do not have them and never imply we do.
- Player spells only. The client's spell table also holds every creature's copy of a spell and internal developer rows. A spell gets a page only when the client itself connects it to a player: a spellbook, racial, profession or pet skill line, a talent rank, an item or enchant that casts it, or a spell one of those triggers. Rows outside that set still count in each build's change totals but are not shown. An unchanged plain stat bonus whose only connection is an item's random equip enchant that no spell applies (such as Increased Stamina 32) or an item's Equip effect (such as Increased Armor 200) keeps a page that is not indexed or listed in search, and so does an unchanged spell the client gives no tooltip text at all that no skill line or talent lists (such as Gnome Car Camera), or one whose only effect is the client's quest-share effect (the Deputize spells of the Deputization Authorization items). A spell the client titles with its internal Season of Discovery "S03 - " label (such as a tier set bonus) keeps its page too, but that page is not indexed, listed in the sitemap or search, or listed on the hubs; a set bonus still reads on its set's page. A spell whose only connection is the Use or Equip effect of one item lives on that item's page, and the spell's URL redirects there, when it carries the item's own name (Camp Chair) or when three or more such spells share one generic name (the Replace Supplies spells of the Waylaid Supplies items). The page for that generic name still lists every one of them, linking each item. A Classic Era recipe or class book taught through a "learn" spell of its own: when the Forever item no longer casts that spell and teaches the recipe directly, the item page is its one page and the spell's URL redirects there. When the Classic Era item is gone and one new item of the same name teaches the same recipe, that item is the page instead. Any other unchanged or removed "learn" spell keeps a page that is not indexed or listed in search.
- Profession recipes only. The client keeps recipes in the table that ties every ability to its skill line, so it also lists each class, pet and racial ability. Only the rows on a profession skill line get a recipe page, which includes a profession's own skills such as Herbalism. The others are abilities, and the ones with a page are under Spells; all of them still count in each build's change totals.
- Reputation factions only. The client's faction table also holds rows it gives no reputation standing. Only a faction the client gives a reputation is listed on the factions page and in search; the others keep a page that is not indexed, and all of them still count in each build's change totals.
- One page per recipe and spell. A recipe that crafts an item lives on its recipe page, and the crafting spell's URL redirects there. A recipe that crafts no item (an enchant, or a skill such as Herbalism or Comprehend Scroll) lives on the page of the spell it teaches: that page shows the profession, the skill-up levels, the reagents and the items that teach it, and the recipe's URL redirects there. When the client ships one such skill as several same-named tiers with the same tooltip, told apart only by their skill-up range (the five Comprehend Scroll rows), they share one spell page with a tier switcher, each tier labelled by that range. A new Forever item that only one new recipe of the same name makes, with no Use or Equip effect, set, quest or Forever change history of its own, lives on that recipe page too, since the recipe page already shows its full tooltip: the item's URL redirects there, and every link to the item goes there. Removed and withheld recipes keep their own page. Every recipe and item still counts in each build's change totals and on its profession's page.
- No player data, ever. Game data only.
Synced Oct 27, 2026. Found something wrong? See corrections.