LibProfessionDB

Library for WoW profession skills for use in other AddOns.

File Details

ProfessionDB-v1.2.0

  • R
  • May 31, 2026
  • 2.89 MB
  • 21
  • 5.5.3+4
  • Classic + 2

File Name

ProfessionDB-ProfessionDB-v1.2.0.zip

Supported Versions

  • 5.5.3
  • 4.4.2
  • 3.4.5
  • 2.5.5
  • 1.15.8

Changelog

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

Improvements

  • De-duplicated locale-independent data (core + names split). v1.1.0 shipped a fully self-contained file per language, so the structural fields (difficulty / reagents / requiredSkill / teaches / craftedItemId / itemId / phase) were byte-identical across all 12 locale folders — and a client parsed all 12 copies of the full table on login (the GetLocale() guard skips execution, not parsing). Now that data lives once per game in Data/<game>/_core/<Prof>.lua (loaded via lib:LoadCore, guarded by IsGameVersion only), and each Data/<game>/<locale>/<Prof>.lua carries only the localized name + effect (via lib:LoadNames). The bulky structural table is parsed/loaded once instead of 12× — cutting both the download size and the once-per-login parse cost. Mirrors how LibItemDB-1.0 is built.

API

  • New lib:LoadCore(profId, core) and lib:LoadNames(profId, names) (LibStub MINOR → 3). Both merge into the same self.recipes view, so the public query API (GetRecipe, GetReagents, GetDifficulty, GetEffect, Search, Iterate, …) returns the same stitched entry shape as before — no consumer change. LoadRecipes is retained as a back-compat shim that splits a self-contained table into a LoadCore + LoadNames pair.
  • Per-flavour TOCs now list the _core files first, then all locale name files (each still self-guarded on GetLocale() + IsGameVersion).

[v1.1.0] (2026-05-30) - Full localization

New Features

  • All official WoW locales — recipe names and enchant effect text now ship in deDE, esES, esMX, frFR, itIT, koKR, ptBR, ruRU, zhCN, and zhTW (plus enGB mirroring enUS), alongside enUS. 12 locales total, ~202,140 recipe entries across the five game versions, 672 data files. Each data file guards on GetLocale() so a client loads only its own language, and each per-flavour .toc lists every locale's files.

Improvements

  • Locale-stable recipe sets — only name and effect are translated; the recipe set, difficulty tiers, reagents, required skill, and item IDs are byte-identical across every locale. Strings come from localized SpellName + SpellItemEnchantment pulls, re-resolved with the same enchant placeholder handling (cross-spell refs, etc.), with English fallback for any string a locale is missing. The English-only structural heuristics (scroll-prefix detection, obsolete-item filtering) never run on translated data, so the recipe set can't drift between languages.
  • LibStub MINOR bumped to 2 — signals the expanded multi-locale data set to consumers. The public API is unchanged.
  • Clean lint — added a scoped ---@diagnostic disable: undefined-global to LibProfessionDB-1.0.lua; the shared TOG multi-root workspace disables the Lua 5.1 builtin library, which otherwise false-flags pairs/table/etc.

[v1.0.0] (2026-05-30) - Initial release

New Features

  • LibProfessionDB-1.0 — Standalone offline profession/recipe database exposed as a LibStub library. Resolves a crafting recipe to its name, reagents, skill-up difficulty tiers (orange/yellow/green/grey), required skill, produced item, and enriched effect text — with no trade-skill window open and no scan. API: IsReady, Count, GetMeta, GetProfessions, HasProfession, ProfessionCount, GetRecipes, GetRecipe, HasRecipe, GetName, GetReagents, GetEffect, GetDifficulty, GetRequiredSkill, GetItemID, GetCraftedItemID, Search, Iterate. Data is loaded via LoadRecipes(profId, recipes) from shipped, pre-built data files.
  • Point-in-time data per game version — recipe difficulty, required skill, reagents, names, and effect text are NOT merged across expansions; each flavour ships exactly its own wago build's recipes. Vanilla/enUS through Mists/enUS captured (16,845 recipes across the five flavours).
  • Enriched, searchable effect text — enchant recipes carry their effect name (+5 Weapon Damage, +1 All Stats, …) resolved from SpellItemEnchantment, including cross-spell placeholder resolution. Search matches both recipe name and effect text. Crafted gear ships no synthetic stat line (the client's real item tooltip is authoritative).
  • Ships for every flavour except Retail — per-flavour TOCs for Vanilla/Era (11508), TBC (20505), Wrath (30405), Cataclysm (40402), and Mists (50503). Each TOC lists only its own game's profession data files.
  • Guild version-checkProfessionDB.lua registers a { GetName = "LibProfessionDB", Version } host with VersionCheck-1.0 at PLAYER_LOGIN. Hard dependencies on Ace3 and VersionCheck-1.0 are declared in every .toc and in .pkgmeta (required-dependencies).