promotional bannermobile promotional banner

CraftLib

Crafting recipe database API for WoW addon developers. Query recipes, reagents, skill levels, and sources.

File Details

v0.3.0

  • R
  • Feb 11, 2026
  • 109.82 KB
  • 1.5K
  • 2.5.5+1
  • Classic + 1

File Name

CraftLib-v0.3.0.zip

Supported Versions

  • 2.5.5
  • 1.15.8

CraftLib

v0.3.0 (2026-02-11)

Full Changelog Previous Releases

  • docs: release v0.3.0
  • feat(data): add training cost to trainer-learned recipes
    645 of 710 trainer recipes now include trainingCost (copper) from
    Wowhead data. Remaining 73 recipes without cost data are older
    recipes where Wowhead did not return training cost information.
  • docs: update for pipeline cleanup and corrected recipe counts
    • README: update recipe counts, single-pass pipeline docs, 51 removed
    • SCHEMA: document STARTER source type, mark DISCOVERY/WORLD_DROP reserved
    • CHANGELOG: add [Unreleased] section for upcoming release
    • TODO: add DISCOVERY world-object review, consolidate resolved items
  • feat(data): regenerate all recipes with verified Wowhead data
    All 1,925 recipes now have Wowhead-verified difficulty and source data.
    Source reclassifications from Wowhead spell pages (VENDOR/DROP to
    TRAINER where trainable). No DB2 difficulty fallback used.
  • feat(data): update removed recipes list
    Add 6 recipes confirmed as removed or unverifiable:
    • Khorium Toolbox (Engineering), Crystal Infused Bandage (First Aid),
      Inlaid Mithril Cylinder (Blacksmithing), Arcanite Sword Pendant and
      Blood Crown (Jewelcrafting), Warbear Woolies (Leatherworking)
    • Fix "FirstAid" key to "First Aid" for consistency
  • feat(data): add STARTER and DISCOVERY source types
  • fix(scripts): eliminate silent defaults and data guessing
    • generate_recipes: require WOWHEAD difficulty (no DB2 fallback),
      require verified source (no PENDING), fail on missing DB2 tables,
      add removed_recipes.json filtering, remove detect_source() fallback
    • extract_db2_sources: fail on missing item details and unknown
      faction/rep, warn on missing EffectItemType
    • fetch_wowhead_sources: rewrite as single-pass (merged difficulty,
      source resolution, trainer audit), remove unreliable regex fallbacks,
      check full Wowhead source array with priority
    • Delete source_overrides.json and validate_sources.py (obsolete)
  • chore: add MIT license metadata
    Add license-output to .pkgmeta for packaged releases.
    Add X-License field to TOC.
  • docs: add donation link and rename description file
    Add PayPal badge to README.md and a support note at the bottom.
    Rename CURSEFORGE.md to DESCRIPTION.md (used for CurseForge/Wago listings).
    Simplify .pkgmeta ignore list since *.md glob covers all markdown files.
  • chore: gitignore DB2 artifacts directory
  • feat(sources): add trainer audit and comprehensive Wowhead data extraction
    Extend fetch_wowhead_sources.py with --audit-trainer mode that detects
    recipes misclassified as VENDOR when they are actually trainer-learnable
    in TBC. Uses Wowhead spell page trainingcost field as definitive signal.
    Also captures comprehensive spell data from Wowhead pages: source array,
    training cost, learned-at skill, reagents, crafted item, quality, and
    taught-by NPC list with faction (Alliance/Horde/Neutral).
    Update schema.json with wowhead data structure for storing all extracted
    fields. Engineering audit found 9 vanilla recipes moved to trainers in
    TBC (e.g., Thorium Widget, Thorium Grenade, Thorium Tube).
  • docs: refresh documentation for v0.2.13 pre-release
    COMPONENTS.md: complete rewrite with full file tree including scripts/,
    vendor/db2-parser/, Data/Sources/, .github/workflows/, .pkgmeta
    OVERVIEW.md: add build-time data generation pipeline diagram alongside
    runtime architecture
    DECISIONS.md: extend ADR-002 with expansion-specific source paths,
    fix recipe count in ADR-006 (45, not 46)
    README.md: fix profession recipe counts to match generated Lua
    (was showing raw DB2 counts), fix Data/Sources path format,
    correct recipe field names and API key casing
    CURSEFORGE.md: fix API example profession key casing
    SCHEMA.md: add mining to profession keys, update difficulty comments
    to note continuous probability (not fixed percentages), remove
    non-existent optional fields (specialization, requiredTool, cooldown),
    fix source object examples to match actual generated data,
    replace stale version history with difficulty formula note
    SETUP.md: add Python prerequisite, add --recurse-submodules to clone,
    use generic paths instead of hardcoded developer paths
    TESTING.md: add data generation pipeline testing section
    WORKFLOW.md: remove stale docs/plans/completed/ reference
    ADDING_PROFESSIONS.md: fix source file paths from flat pattern
    (Data/Sources/[Profession].json) to expansion subfolder pattern
    (Data/Sources/TBC/[Profession].json)
    CHANGELOG.md: fix v0.2.7 recipe count (45, not 46), add missing
    comparison links for v0.2.1 through v0.2.12
    TODO.md: update footer to note historical reference status
    Constants.lua: update difficulty color comments to note continuous
    probability instead of fixed percentages
    CraftLib.toc: document CraftLibDB as reserved for future use
  • chore: clean up internal references in docs and comments
  • chore: update db2-parser submodule
  • docs(architecture): add ADRs for orange=0 handling and removed recipes
    ADR-005: orange=0 Recipe Skill Threshold at 75
    • Documents why 75 was chosen as threshold
    • Explains early-game vs late-game vs conversion categories
    • Lists alternatives considered
      ADR-006: Filter Removed/Beta Recipes from Generated Lua
    • Documents the 46 filtered recipes decision
    • Explains automatic filtering based on missing Wowhead data
    • References removed_recipes.json tracking file