LibItemDB — Offline Item Database for WoW
LibItemDB is a lightweight library that lets any addon look up World of Warcraft items offline — resolve an item's name to its link or id (and back), and filter by type and subtype — without the item being in the game's cache.
WoW ships no searchable item table and no “find item by name” API. LibItemDB solves that by shipping a pre-built database captured from a full client item scan, so players never wait for a scan and addon authors get instant, reliable lookups.
This is a developer library. Install it if another addon lists it as a dependency, or depend on it if you are an addon author.
What it can do
- Resolve a name to a full, clickable item link — even for items you've never seen
- Resolve a name to an item id, or an id to name / quality / type / subtype / equip slot / item level
- Read an item's stats (strength, stamina, spell power, resistances, …)
- Read the buff a consumable grants on use — food, elixirs, flasks, potions, scrolls — as the same stats (e.g. +12 Stamina, +25 Agility), searchable right alongside gear
- Look up where an item drops — the raid or dungeon and the boss — and list every item that drops in an instance, organised by instance and boss (great for wishlists and loot planners)
- Rank gear by Best-in-Slot / EP value for a class and spec — the top items for a slot, or "what to want from this raid" ranked, plus a full BiS gear list per phase. It accounts for the on-equip hit/crit and set bonuses that simpler tools miss, and lists only gear your class and faction can actually obtain — and you can load your own BiS list or stat weights
- Tell whether an item is restricted to a faction or class, or is a hidden/never-implemented item — so a planner can filter to what the player can really get
- Search by name, item type, subtype, quality, item-level range, and stat — e.g. plate that has strength
- Reconstruct random-suffix variants ("of the Bear", "of the Eagle", …) from a compact id pair, letting the game render the full, correctly-scaled tooltip
- Enumerate types/subtypes and iterate the entire database
For addon authors
local DB = LibStub("LibItemDB-1.0", true)
if DB and DB:IsReady() then
local link = DB:GetLink(19019) -- coloured, interactive Thunderfury link
local stats = DB:GetStats(13468) -- { ITEM_MOD_..._SHORT = n, ... }
local buff = DB:GetEffects(18045) -- Tender Wolf Steak use-effect: { ITEM_MOD_STAMINA_SHORT=12, ITEM_MOD_SPIRIT_SHORT=12 }
for _, r in ipairs(DB:Search({ classID = 4, stat = "STRENGTH" })) do print(r.link) end
-- where does it drop? (raid/dungeon + boss); and list an instance's loot
local drops = DB:GetSources(16921) -- { { instance="Onyxia's Lair", boss="Onyxia" }, ... }
for _, inst in ipairs(DB:GetInstances()) do
print(inst.name, #DB:GetInstanceItems(inst.key)) -- "Molten Core 125", ...
end
-- random suffix (field 8 of a modern link): rebuild and let the game render it
local s = DB:BuildItemString(15218, 1196) -- "item:15218::::::1196"
GameTooltip:SetHyperlink(s) -- full Crystal Sword of the Bear tooltip
end
Key methods: IsReady, Count, GetName, GetInfo, GetQuality, GetItemLevel, GetStats, GetEffects, HasEffects, GetLink, GetID, GetClasses, GetSubClasses, Search, Iterate, GetRandomProperty, BuildItemString, GetSuffixLink, ResolveSuffix, ResolveName, GetSources, GetInstanceItems, GetInstances, GetInstanceEncounters, HasSources, GetItemSet, GetSet, GetSetBonusStats, GetBiS, IsBiS, GetItemScore, GetRaidBiS, GetSlotRanking, GetWeightStats, LoadBiS, LoadBiSWeights, GetItemFaction, ClassUsable, GetItemClasses, IsHidden.
Data coverage
Stats and item levels are language-independent and ship once; names ship per language (untranslated items fall back to English, so every language is complete). LibItemDB is available for every version except Retail.
- Vanilla (Era / Hardcore / SoD) — 24,127 items
- The Burning Crusade (Anniversary realms) — 30,032 items
- Mists of Pandaria (Classic) — 88,259 items
Every version is in all 12 client languages. Wrath and Cataclysm are added when those game versions are live again. (Retail is not supported.)
Requirements
- Ace3 and VersionCheck-1.0 — auto-installed by CurseForge (they back the optional guild version-check)
Recent Updates
v0.4.1 (2026-07-15) — “Use:” and “Chance on hit” effects now count toward value
- Trinkets with a “Use:” effect — like +280 Attack Power for 20 seconds on a 2-minute cooldown — are now valued for that effect, averaged over its cooldown. A top on-use trinket no longer sorts to the bottom as if it did nothing, and you can read the effect for a tooltip too.
- “Chance on hit” procs are now valued too — the fire/frost/shadow damage, extra attacks (Ironfoe, Flurry Axe), stat buffs and the like that weapons proc. The game client doesn't store how often these fire, so the real proc rates come from the tested CMaNGOS vanilla server data — Thunderfury's fast proc and a slow leveling weapon's are told apart correctly. Effects that only debuff the enemy or are pure utility stay flagged rather than guessed.
- For addon authors: a new itemized EP breakdown (each stat, the set bonus, and every effect, summing to the total) and a per-stage set-bonus EP lookup — so a planner can show exactly why an item scores what it does, and value set pieces by how many you actually have.
- Fixed a double-count where a plain “+Attack Power” boost was valued twice, which wrongly floated some on-use trinkets above always-on gear.
v0.4.0 (2026-07-05) — Drop sources, Best-in-Slot / EP, and class & faction-aware gear
- Every item now knows where it drops — the raid or dungeon and the boss. Look it up with the new
GetSources, list an instance's full loot withGetInstanceItems, or walk the instance list withGetInstances— ideal for loot wishlists and raid planners. - Complete, Classic-accurate boss loot for every raid and dungeon — plus the world bosses (Kazzak, Azuregos, the four Emerald dragons) — with thanks to the AtlasLootClassic project. Covers Vanilla, The Burning Crusade, and Mists of Pandaria (instance and boss names are in English for now).
- Best-in-Slot & EP ranking (Vanilla) — a full BiS gear set per class/spec/phase, plus value-ranking for any slot, any raid's drops, or the whole database, using the trusted HawsJon Classic stat weights (the same ones Pawn ships) for every class and spec. It recovers the on-equip hit/crit the game data hides and folds in set bonuses, so the ranking reflects what actually matters. You can swap in your own BiS list or EP weights. One curated opinion; approximate, not a full sim.
- Only shows gear you can actually get. Rankings now hide the other faction's items (no Alliance weapons on a Horde character, and vice-versa) and gear your class can't use — including the tricky cases the game data itself gets wrong, like the rogue tier-3 set or Atiesh showing up for a hunter. Exposed for addons as
GetItemFactionandClassUsable. - A cleaner database. Never-implemented test items, deprecated duplicates, and gear above the level cap (e.g. the unreleased Twin Blades / Warglaive of Azzinoth) are kept for completeness but no longer clutter rankings or search — so you only see real, obtainable items.
v0.3.0 (2026-06-01) — Consumable use-effect stats
- Food, elixirs, flasks, potions, scrolls and the like now carry the buff they grant on use (e.g. +12 Stamina / +12 Spirit, +25 Agility, +30 Strength) — read via the new
GetEffects, and merged intoGetStats/Searchso you can find a consumable by the stat it gives, right alongside gear. - Built from the client's own spell data, so the values are exact and language-independent. Vanilla and TBC are fully covered; Mists combat-rating buffs (crit / haste / mastery rating) follow in a later update.
v0.2.0 (2026-05-30) — The Burning Crusade & Mists of Pandaria data
- Added full data for The Burning Crusade (30,032 items) and Mists of Pandaria (88,259 items), each in all 12 languages with random-suffix support — alongside the existing Vanilla data.
- Wrath and Cataclysm will be added when those game versions are live again.
v0.1.0 (2026-05-30) — Stats, random suffixes, all 12 languages
- Items now carry their item level and full stats (strength, stamina, spell power, resistances, …), with stat-filtered search.
- Random-suffix support — "of the Bear" and friends — reconstructed from a compact id so the game renders the full, correctly-scaled tooltip.
- Now ships in all 12 client languages for Classic (Era), with English fallback for anything untranslated.
- Data is split into a load-once language-independent core plus small per-language name tables, so the bulky data isn't duplicated 12 times.
Credits
Drop-source loot tables are derived from AtlasLootClassic. Best-in-Slot gear sets come from WoWSims. The EP stat weights are HawsJon's Classic weights (tbcwowaddons.weebly.com), as shipped with Pawn by Vger — used unchanged and with thanks. Weapon and trinket proc rates come from the tested CMaNGOS vanilla server database. LibItemDB doesn't redistribute any of their files; it re-expresses the underlying facts in its own format. All other item data is built from Blizzard's own client data via wago.tools.
Support
Questions, bug reports, or coverage requests — reach out on Discord.

