promotional bannermobile promotional banner

LibItemDB

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

File Details

ItemDB-v0.3.0

  • R
  • Jun 1, 2026
  • 17.95 MB
  • 292
  • 5.5.3+4
  • Classic + 2

File Name

ItemDB-ItemDB-v0.3.0.zip

Supported Versions

  • 5.5.3
  • 4.4.2
  • 3.4.5
  • 2.5.5
  • 1.15.8

Changelog

[v0.3.0] (2026-06-01) - Consumable use-effect stats

New Features

  • Consumable use-effects — use-effect consumables (food, elixirs, flasks, potions, scrolls, jujus, …) now carry the stat buff they grant on use, which GetItemStats can't report. New offline pipeline tools/build-effects.py reads the static wago.tools DB2 chain: Item → ItemEffect (ParentItemID, on-use TriggerType) → SpellID → SpellEffect (Effect 6 = APPLY_AURA), following the EffectAura 23 periodic-trigger hop to the Well Fed spell for food. Auras are decoded to the SAME KEY=val vocabulary as gear stat blobs: MOD_STAT (29) → ITEM_MOD_<STAT>_SHORT (misc 0–4 = Str/Agi/Sta/Int/Spi, −1 = all), MOD_RESISTANCE (22, misc is a school bitmask) → RESISTANCE<n>_NAME, spell power / attack power / mp5 / healing → their ITEM_MOD_*, plus use-only keys CRIT_PCT / SPELL_CRIT_PCT / HEALTH / MANA. Value = EffectBasePoints + 1 (the Classic fixed-effect convention, verified against Elixir of the Mongoose +25 Agi/+2% crit, Flask of the Titans +1200 health, Tender Wolf Steak +12 Sta/+12 Spi). Inclusion is gated on InventoryType == 0 (non-equippable) so jujus (item class 12) are captured and gear/trinket on-use procs are excluded. Emitted locale-independent to Data/<Version>/_core/Effects.lua. Coverage: Vanilla 277, TBC 339, Mists 651 consumables. Location: tools/build-effects.py, Data/*/_core/Effects.lua, the three flavour .toc files.

  • LibItemDB APIlib:LoadEffects(t), lib:GetEffects(id) (just the use-effect buff stats), lib:HasEffects(id). The effect stats are merged into GetStats and Search (the stat filter and result stats), so a consumable is queryable by the stat it grants, alongside gear. Library MINOR bumped 4 → 5 (additive). Location: LibItemDB-1.0.lua.

Known Gaps

  • Mists combat ratings — MoP rating buffs (crit / haste / mastery, via EffectAura 189, a combat-rating bitmask) aren't decoded yet, so rating-only consumables on Mists are under-captured; Vanilla/TBC are flat-stat and fully covered. build-effects.py logs unmapped auras. Adding MOD_RATING (CR bit → ITEM_MOD_*_RATING) is the follow-up.

[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).