Skip to content

Reckoning ​

A custom achievement system for World of Warcraft TBC Classic.

Quick Start ​

lua
local Private = select(2, ...)
local Enums = Private.Enums

-- Register categories with IDs
Private.AchievementUtils:RegisterCategories({
  {
    id = 1,
    name = "Dungeon",
    subCategories = {
      { id = 1, name = "Normal" },
      { id = 2, name = "Heroic" }
    }
  },
  {
    id = 2,
    name = "PVP"
  }
})

-- Register an achievement
Private.AchievementUtils:RegisterAchievements({
  {
    id = 1,
    name = "Shadow Labs",
    description = "Defeat Murmur in Shadow Labyrinth",
    points = 5,
    category = 1,           -- References category ID
    subCategory = 1,        -- References sub-category ID (optional)
    icon = 136200,
    cadence = Enums.Cadence.AllTime,
    trigger = {
      event = "DUNGEON_BOSS_KILLED",
      conditions = {
        bossName = "Murmur"
      }
    }
  }
})

Core Concepts ​

ConceptDescription
CategoriesOrganize achievements into groups
CadenceWhen achievements reset
TriggersEvents that advance achievements
ProgressTrack multi-step achievements

Categories ​

Categories use integer IDs for flexibility. Users can customize categories for different expansions.

lua
Private.AchievementUtils:RegisterCategories({
  { id = 1, name = "Dungeon", subCategories = {
    { id = 1, name = "Normal" },
    { id = 2, name = "Heroic" }
  }},
  { id = 2, name = "PVP" },
  { id = 3, name = "Professions" },
  { id = 4, name = "Open World" },
  { id = 5, name = "Milestones" }
})

Cadence ​

Achievements can reset on different schedules using the Enums.Cadence enum:

Enum ValueDescription
Enums.Cadence.AllTimeNever resets, permanent progress
Enums.Cadence.WeeklyResets every Tuesday
Enums.Cadence.OneTimeTime-limited, specific week only

Events Overview ​

CategoryEventsPurpose
Dungeon5Boss kills, clears, mechanics
PVP7Kills, battlegrounds, arenas
Professions5Crafting, gathering, skill-ups
Quests2Quest completion, reputation
Items4Badges, keys, gear
World4Exploration, gold, leveling
Special1Weekly resets