promotional bannermobile promotional banner

LibSpellDB

Shared spell database library with composable tags for WoW addon developers. Query spells by class, role, usage pattern, CC type, and more.

LibSpellDB

A shared spell database library for World of Warcraft addon developers, featuring a composable tagging system for granular spell queries.

Overview

LibSpellDB was originally built to power VeevHUD but is designed as a generic, reusable library that any addon can leverage. It provides a centralized, curated repository of spell data including:

  • Cooldowns and durations
  • Buff/debuff associations (when the applied aura uses a different spellId than the ability)
  • Spell ranks (mapping all ranks to a canonical spell ID)
  • Proc information
  • Spec relevance
  • Extensive tagging for categorization

The Composable Tagging Approach

Rather than rigid categories, LibSpellDB uses a composable tag system that allows granular, flexible queries. Each spell can have multiple tags that describe different aspects of what it does and how it's used.

Role Tags

Define what type of throughput the ability provides:

  • DPS — Deals or increases damage
  • HEAL — Heals or increases healing output
  • TANK — Tank-specific ability

Usage Pattern Tags

Describe how/when you use the ability:

  • ROTATIONAL — Core rotation, used on cooldown
  • MAINTENANCE — Buff/debuff to keep active
  • MINOR — Short cooldown (<60s), tactical usage
  • MAJOR — Long cooldown (60s+), save for key moments
  • AOE — AoE-focused ability

Defensive Tags

  • DEFENSIVE — Reduces damage taken
  • PERSONAL_DEFENSIVE — Self-survival cooldowns
  • EXTERNAL_DEFENSIVE — Defensives castable on others
  • IMMUNITY — Full immunity effects
  • DAMAGE_REDUCTION — Flat damage reduction

Crowd Control Tags

  • INTERRUPT — Spell interrupts
  • CC_HARD — Stuns, incapacitates, polymorphs
  • CC_SOFT — Slows, snares, roots
  • SILENCE — Silence effects
  • FEAR — Fear effects
  • CC_BREAK — Breaks CC (trinket, Berserker Rage)
  • CC_IMMUNITY — Prevents CC application

Movement Tags

  • MOVEMENT — General movement abilities
  • MOVEMENT_GAP_CLOSE — Charges, blinks, leaps
  • MOVEMENT_ESCAPE — Disengages, vanishes

Utility Tags

  • DISPEL_MAGIC, DISPEL_CURSE, DISPEL_POISON, DISPEL_DISEASE — Dispel types
  • PURGE — Offensive dispel (removes enemy buffs)
  • TAUNT — Threat/taunt abilities
  • RESOURCE — Resource generation/management
  • UTILITY — General utility

Mechanic Tags

  • REACTIVE — Conditional abilities (Overpower, Execute, Revenge)
  • PROC — Proc-based buffs to track
  • FINISHER — Combo point/resource spenders
  • HAS_BUFF, HAS_DEBUFF, HAS_DOT, HAS_HOT — Describes what the spell applies

Query Examples

local LibSpellDB = LibStub("LibSpellDB-1.0")

-- Get all warrior spells
local warriorSpells = LibSpellDB:GetSpellsByClass("WARRIOR")

-- Get all interrupts
local interrupts = LibSpellDB:GetSpellsByTag("INTERRUPT")

-- Get warrior interrupts specifically
local warriorInterrupts = LibSpellDB:GetSpellsByClassAndTag("WARRIOR", "INTERRUPT")

-- Get spells matching ANY of these tags (union)
local ccAbilities = LibSpellDB:GetSpellsByTags({"CC\_HARD", "CC\_SOFT", "INTERRUPT"})

-- Get spells matching ALL of these tags (intersection)
local rotationalDps = LibSpellDB:GetSpellsByAllTags({"ROTATIONAL", "DPS"})

-- Check if a spell has a specific tag
if LibSpellDB:HasTag(6552, "INTERRUPT") then
    -- Pummel is an interrupt
end

Current Coverage

LibSpellDB currently includes comprehensive spell data for all TBC Classic classes. Each class includes rotational abilities, cooldowns, utility, CC, defensives, and more — all properly tagged for flexible querying.

For Addon Developers

LibSpellDB is distributed as a standalone library. To use it in your addon:

  1. Include LibSpellDB as a dependency or embed it
  2. Access via LibStub: local LibSpellDB = LibStub("LibSpellDB-1.0")
  3. Query spells using the API methods above

The library handles spell validation automatically — spells that don't exist in the current game version are silently skipped.

Feedback & Bug Reports

Join the Veev Addons Discord for feedback, suggestions, and bug reports: https://discord.gg/HuSXTa5XNq

The LibSpellDB Team

profile avatar
Owner
  • 1
    Followers
  • 2
    Projects
  • 22.2K
    Downloads

More from Veev

  • VeevHUD project image

    VeevHUD

    • 19.4K
    • Addons

    A smart heads-up display for tracking cooldowns, buffs, debuffs, and resources — works out-of-the-box for every class and spec.

    • 19.4K
    • May 14, 2026
    • Addons
    • +4
  • VeevHUD project image

    VeevHUD

    • 19.4K
    • Addons

    A smart heads-up display for tracking cooldowns, buffs, debuffs, and resources — works out-of-the-box for every class and spec.

    • 19.4K
    • May 14, 2026
    • Addons
    • +4