LibItemDB

A library with all of the WoW items for use by other addons

File Details

ItemDB-v0.2.0

  • R
  • May 31, 2026
  • 17.93 MB
  • 0
  • 5.5.3+4
  • Classic + 2

File Name

ItemDB-ItemDB-v0.2.0.zip

Supported Versions

  • 5.5.3
  • 4.4.2
  • 3.4.5
  • 2.5.5
  • 1.15.8

Changelog

[v0.2.0] (2026-05-30) - TBC & Mists data + version-aware pipeline

New Features

  • TBC and Mists coverageData/TBC/ (30,032 items, captured on the Anniversary client build 2.5.5.67511) and Data/Mists/ (88,259 items, Classic progression build 5.5.3.67509), each in all 12 client languages with its random-suffix table. Joins the existing Vanilla data. Wrath and Cata have no live client yet (the Anniversary realms reach those phases later), so their .toc files stay empty placeholders until a client exists.

Improvements

  • Version-aware pipelinebuild-core.py and build-locales.py now take just the Version (e.g. build-core.py TBC) and resolve the rest from the installed clients: they read <WoW>/.build.info, map each client by its build MAJOR to a Version (1→Vanilla, 2→TBC, 3→Wrath, 4→Cata, 5→Mists), auto-locate that client's walk SavedVariables, and fetch classID + localized names + suffixes from the matching wago build. This tracks the Anniversary realm's progression automatically — when it advances to 3.4.x, build-core.py Wrath resolves to it with no code change. itemdb_common.py gained installed_clients / client_for_version / wago_build_for_version / togtools_sv; --sv / --wago-build remain as overrides.

[v0.1.0] (2026-05-30) - Stats, random suffixes, 12 languages, core/names split

New Features

  • Enriched data: item level + full stats — every item now carries its item level and the client's fully-aggregated stat set (the walk's GetItemStats, which includes spell power, mp5, spell healing/damage, resistances and armor — stats the raw wago stat columns omit). New API: GetStats, GetItemLevel, and stat-filtered Search (stat, minValue, minLevel, maxLevel), so e.g. "plate with strength" is answerable offline.
  • Random suffixes ("of the Bear") — modern Era encodes a random suffix as a positive ItemRandomProperties ID in field 8 of the item link (item:15218::::::1196). The DB ships those (name + exact stat lines per tier, from wago ItemRandomProperties + SpellItemEnchantment). New API: GetRandomProperty, GetRandomProperties, HasRandomProperty, BuildItemString, GetSuffixLink, ResolveSuffix, and suffix-aware ResolveName. BuildItemString(itemID, propID) reconstructs a link the game renders the full, correctly-scaled tooltip from — no stats are computed or stored for the scaling; the client does it.
  • All 12 client locales for VanilladeDE, enGB, enUS, esES, esMX, frFR, itIT, koKR, ptBR, ruRU, zhCN, zhTW. Names a locale hasn't translated fall back to English, so every language is complete (24,127 items, 2,033 suffix tiers).

Improvements

  • core/names storage split (LibStub MINOR → 4) — locale-independent data (quality, subclass, equip slot, item level, stats) now ships once in Data/<Version>/_core/<Class>.lua; only localized names ship per language in Data/<Version>/<locale>/Names.lua. New lib:LoadCore / lib:LoadNames (and lib:SetBuild); the old lib:LoadClasses is kept as a back-compat shim. This avoids duplicating the bulky numeric data across all 12 languages.
  • Pipeline rewrite — replaced tools/build-data.sh with tools/build-core.py (walk SavedVariables → _core/, classID joined from wago's Item table since the walk's serialization drops it) and tools/build-locales.py (wago ItemSparse.Display_lang → per-locale names with English fallback; suffix tables via the now locale-aware build-suffixes.py), sharing tools/itemdb_common.py. Stats come from the walk; classID + translated names come from wago.
  • Data/classic/Data/Vanilla/ to match the ProfessionDB layout; the Vanilla .toc lists the _core files (loaded once) plus every locale's self-guarded Names.lua + RandomProps.lua.

[v0.0.1] (2026-05-30) - Initial library

New Features

  • LibItemDB-1.0 — Standalone offline item database exposed as a LibStub library. Resolves item name ↔ id ↔ link and filters by type / subtype with no client cache required. API: IsReady, Count, GetMeta, GetName, GetInfo, GetQuality, GetLink, HasItem, GetID, GetClasses, GetSubClasses, Search, Iterate. Data is loaded via LoadClasses from shipped, pre-built data files (no end-user scan).
  • Classic (Era) enUS dataData/classic/enUS.lua, 24,069 items captured from client build 11508 via the TOG Tools Item DB builder. Bucketed by item class; each entry packs name · quality · subClassID · equipLoc.
  • Ships for every flavour except Retail — per-flavour TOCs for Vanilla/Era (11508), TBC (20505), Wrath (30405), Cataclysm (40402), and Mists (50503). A flavour TOC lists its Data/<version>/<locale>.lua line only once that capture exists; until then it loads the library with an empty database.
  • Guild version-checkItemDB.lua registers a { GetName = "LibItemDB", Version } host with VersionCheck-1.0 at PLAYER_LOGIN, so the library shows up in guild version checks like the rest of the TOG suite. Hard dependencies on Ace3 and VersionCheck-1.0 are declared in every .toc and in .pkgmeta (required-dependencies).