promotional bannermobile promotional banner

LibProfessionDB

Library for WoW profession skills for use in other AddOns.

LibProfessionDB — Offline Profession & Recipe Database for WoW

LibProfessionDB is a lightweight library that lets any addon read World of Warcraft crafting-recipe details offline — a recipe's name, reagents, skill-up difficulty tiers, required skill, produced item, and enriched effect text — without a trade-skill window being open and without the recipe being known by the character.

WoW only exposes recipe data while a profession window is open, and only for professions the player actually knows. LibProfessionDB solves that by shipping a pre-built database generated from the game's own client data, so players never wait for a scan and addon authors get instant lookups for any profession — guild crafters, alts, and recipes you haven't learned yet.

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

  • Look up a recipe by profession + recipe id: name, reagents, produced item
  • Read the skill-up difficulty tiers (orange / yellow / green / grey thresholds)
  • Read the required skill to learn a recipe, and its recipe-scroll item id
  • Read the specialization required to learn a recipe (Dragonscale/Elemental/Tribal Leatherworking, Armorsmith/Weaponsmith Blacksmithing, …)
  • Read enriched, searchable effect text for enchants (e.g. +5 Weapon Damage, +1 All Stats)
  • For enchants, read the target slot (hands/wrist/chest/weapon/…) and structured stats ({ ITEM_MOD_AGILITY_SHORT = 7 }), plus the enchant id that maps an applied enchant back to its recipe — all from the game's own data
  • Ask “what enchants can go on this slot?” and get a unified list — craftable enchants and the item-applied ones no profession makes (Dire Maul arcanums, Zul'Gurub head/shoulder/leg enchants, armor kits, shield spikes)
  • Search by name or effect substring, optionally scoped to one profession
  • Iterate one profession or the entire database

For addon authors

local DB = LibStub("LibProfessionDB-1.0", true)
if DB and DB:IsReady() then
    local r = DB:GetRecipe(333, 13626)   -- Enchant Chest - Minor Stats
    -- r.name, r.effect ("+1 All Stats"), r.difficulty {150,175,195,215}, r.reagents
    for _, hit in ipairs(DB:Search({ query = "agility" })) do print(hit.name, hit.effect) end
end

Key methods: IsReady, Count, GetMeta, GetProfessions, GetRecipe, GetName, GetReagents, GetEffect, GetDifficulty, GetRequiredSkill, GetItemID, GetCraftedItemID, GetEnchantId, GetEnchantSlot, GetStats, GetEnchant, EnchantsForSlot, IterateEnchants, Search, Iterate.

Data coverage

Recipe data (difficulty, required skill, reagents, names, effect text) differs between game versions, so it is shipped point-in-time per game version — never merged. LibProfessionDB is available for every version except Retail.

  • Game versions: Vanilla / Era, TBC, Wrath, Cataclysm, Mists — each shipped with its own point-in-time recipe set.
  • Languages: English (US/GB), German, Spanish (EU & Latin America), French, Italian, Korean, Portuguese, Russian, and Simplified & Traditional Chinese — every official WoW locale.

Recipe names and enchant effect text are translated per locale; difficulty, reagents, and ids are identical across languages.

Requirements

  • Ace3 and VersionCheck-1.0 — auto-installed by CurseForge (they back the optional guild version-check)

Recent Updates

v1.4.0 (2026-07-18) — Enchant catalog: item-applied enchants

  • New enchant catalog covering the permanent gear enchants no profession crafts — Dire Maul arcanums, the Zul'Gurub / Zandalar head, shoulder and leg enchants, armor kits, shield spikes — applied by a consumable item, so they never appear in a recipe list. EnchantsForSlot(slot) returns a unified list of every enchant for a slot (craftable and item-applied); GetEnchant(id) / IterateEnchants() round it out.
  • Authoritatively sourced and curated from DBC (every ENCHANT_ITEM effect not in a profession skill line, targeting an armor/shield slot, granted by a real obtainable item — placeholders and QA/dev items filtered out). 80–176 enchants per game version, every locale. Kept out of the recipe space, so GetProfessions/GetRecipes are unaffected. LibStub MINOR → 7.

v1.3.0 (2026-07-12) — Enchant enrichment: id, target slot & structured stats

  • Enchant recipes (all Enchanting, plus Engineering scopes/belt tinkers and later-expansion leg armors, spellthreads and inscriptions) now ship three new fields, exposed via GetEnchantSlot, GetStats and GetEnchantId: the target slot (HANDS/WRIST/WEAPON2H/…), a structured stat table keyed by the game's own GetItemStats keys (so enchant stats sum straight into item totals), and the SpellItemEnchantment id that maps a worn enchant back to its recipe.
  • All three are extracted authoritatively from the client data (SpellEquippedItems for the slot; the enchant's DBC effects for the stats) — no recipe-name guessing, no effect-string parsing, so they hold up across every locale. Purely additive; LibStub MINOR → 6.

v1.2.2 (2026-07-04) — Complete the spec map for TBC/Wrath

  • Fixed requiredSpec coverage: v1.2.1 read the spec gate off the recipe scroll (how Vanilla encodes it), but TBC/Wrath moved it onto the crafted item itself (e.g. Lionheart Blade → Master Swordsmith), so every post-Vanilla spec recipe shipped untagged. The generator now matches the produced item too — newly tagged: 65 TBC + 72 Wrath + 2 Vanilla recipes across Blacksmithing, Leatherworking and Engineering. Purely additive; LibStub MINOR → 5.
  • Fixed Mooncloth Tailoring: the spec map used 26802 (“Detect Amore”, a holiday spell) instead of Mooncloth's real id 26798, so Mooncloth recipes were never tagged. Corrected — 3 recipes per build, matching Spellfire and Shadoweave.

v1.2.1 (2026-07-02) — Specialization requirements

  • Spec-gated recipes now carry a requiredSpec field — the specialization spell needed to learn them (Dragonscale/Elemental/Tribal Leatherworking, Armorsmith/Weaponsmith Blacksmithing, the Tailoring and Engineering specs) — so consumers can hide recipes a character's spec can't learn or attribute a crafter to a spec. Covers Vanilla/TBC/Wrath; LibStub MINOR → 4.
  • Data fixes: Basic Campfire dropped from Cooking (it produces no item), and Crystal Infused Bandage (a TBC bandage) removed from the Vanilla First Aid set.

v1.2.0 (2026-05-30) — Core/names data split

  • De-duplicated the locale-independent data: structural fields (difficulty, reagents, ids, …) now load once per game from a _core file, and each language ships only name + effect — instead of every locale carrying a full self-contained copy. Smaller download and a much lighter once-per-login parse, with no change to the query API.

Support

Questions, bug reports, or coverage requests — reach out on Discord.

The LibProfessionDB Team

Forgeborn tier frameprofile avatar
  • 2
    Followers
  • 27
    Projects
  • 268.6K
    Downloads
Donate

More from PmptastyView all

  • TOGTools project image

    TOGTools

    ToGTools is a convenient place to aggregate one off tools that don't make sense to have it's own addon.

    • 293
    • July 21, 2026
  • Dibs project image

    Dibs

    A master‑loot tool for Classic Era raids: everyone calls dibs on the gear they want before the raid, so when an item drops the masterlooter instantly sees who's competing — for fast, fair, drama‑free distribution. Works for pugs too.

    • 32
    • July 19, 2026
  • LibAceGUIWidgets project image

    LibAceGUIWidgets

    LibAceGUIWidgets is a shared AceGUI-3.0 widget and styling library. It registers reusable, drop-in AceGUI widget types and helpers so addons share one consistent look instead of each rebuilding the same frames.

    • 38
    • July 19, 2026
  • LibItemDB project image

    LibItemDB

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

    • 1.1K
    • July 19, 2026
  • TOGTools project image

    TOGTools

    ToGTools is a convenient place to aggregate one off tools that don't make sense to have it's own addon.

    • 293
    • July 21, 2026
  • Dibs project image

    Dibs

    A master‑loot tool for Classic Era raids: everyone calls dibs on the gear they want before the raid, so when an item drops the masterlooter instantly sees who's competing — for fast, fair, drama‑free distribution. Works for pugs too.

    • 32
    • July 19, 2026
  • LibAceGUIWidgets project image

    LibAceGUIWidgets

    LibAceGUIWidgets is a shared AceGUI-3.0 widget and styling library. It registers reusable, drop-in AceGUI widget types and helpers so addons share one consistent look instead of each rebuilding the same frames.

    • 38
    • July 19, 2026
  • LibItemDB project image

    LibItemDB

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

    • 1.1K
    • July 19, 2026