Skip to content

Examples ​

Real achievement examples based on the achievement sheet.

Category Setup ​

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

-- Define categories (users can customize for different expansions)
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"
  }
})

Dungeon Achievements ​

Boss Kill (Normal) ​

lua
{
  id = 1,
  name = "Shadow Labs",
  description = "Defeat Murmur in Shadow Labyrinth on Normal Difficulty",
  points = 5,
  category = 1,
  subCategory = 1,
  icon = 136200,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "DUNGEON_BOSS_KILLED",
    conditions = {
      bossName = "Murmur",
      instance = "Shadow Labyrinth",
      difficulty = Enums.Difficulty.Normal
    }
  }
}

Boss Kill (Heroic) ​

lua
{
  id = 2,
  name = "Big Boom",
  description = "Kill Murmur in Heroic Shadow Labyrinth",
  points = 20,
  category = 1,
  subCategory = 2,
  icon = 136200,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "DUNGEON_BOSS_KILLED",
    conditions = {
      bossName = "Murmur",
      difficulty = Enums.Difficulty.Heroic
    }
  }
}

Timed Kill ​

lua
{
  id = 3,
  name = "Strikes at Midnight",
  description = "Defeat Attumen the Huntsman in 70 seconds",
  points = 20,
  category = 1,
  icon = 132160,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "DUNGEON_BOSS_KILLED",
    conditions = {
      bossName = "Attumen the Huntsman",
      duration = function(d) return d <= 70 end
    }
  }
}

Mechanic Avoidance ​

lua
{
  id = 4,
  name = "Flame Warden",
  description = "Defeat Shade of Aran without moving during Flame Wreath",
  points = 25,
  category = 1,
  icon = 135789,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "DUNGEON_BOSS_KILLED",
    conditions = {
      bossName = "Shade of Aran"
    }
  },
  failCondition = {
    event = "DUNGEON_MECHANIC_FAILED",
    conditions = {
      mechanicName = "Flame Wreath"
    }
  }
}

Deathless Clear ​

lua
{
  id = 5,
  name = "No One Dies Tonight",
  description = "Finish any Heroic without a single Party Death",
  points = 20,
  category = 1,
  subCategory = 2,
  icon = 136168,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "DUNGEON_CLEARED",
    conditions = {
      difficulty = Enums.Difficulty.Heroic,
      totalDeaths = 0
    }
  }
}

Weekly Dungeon Count ​

lua
{
  id = 6,
  name = "Weekly Warrior",
  description = "Complete 25 Heroic Dungeons this week",
  points = 50,
  category = 1,
  subCategory = 2,
  icon = 136168,
  cadence = Enums.Cadence.Weekly,
  trigger = {
    event = "DUNGEON_CLEARED",
    conditions = {
      difficulty = Enums.Difficulty.Heroic
    }
  },
  progress = {
    type = "count",
    required = 25
  }
}

PVP Achievements ​

Honorable Kills Milestone ​

lua
{
  id = 100,
  name = "5000 Honorable Kills",
  description = "Earn 5000 Honorable Kills",
  points = 50,
  category = 2,
  icon = 132485,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "PVP_KILL"
  },
  progress = {
    type = "count",
    required = 5000
  }
}

Class Diversity ​

lua
{
  id = 101,
  name = "That Takes Class",
  description = "Get a Killing Blow on each class",
  points = 20,
  category = 2,
  icon = 132485,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "PVP_KILLING_BLOW",
    criteriaSet = {
      { victimClass = Enums.Class.Warrior },
      { victimClass = Enums.Class.Paladin },
      { victimClass = Enums.Class.Hunter },
      { victimClass = Enums.Class.Rogue },
      { victimClass = Enums.Class.Priest },
      { victimClass = Enums.Class.Shaman },
      { victimClass = Enums.Class.Mage },
      { victimClass = Enums.Class.Warlock },
      { victimClass = Enums.Class.Druid }
    }
  }
}

Battleground Wins ​

lua
{
  id = 102,
  name = "Warsong Warrior",
  description = "Win 6 Warsong Gulch Matches",
  points = 20,
  category = 2,
  icon = 132485,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "BATTLEGROUND_MATCH_END",
    conditions = {
      battleground = "Warsong Gulch",
      result = Enums.BattlegroundResult.Victory
    }
  },
  progress = {
    type = "count",
    required = 6
  }
}

Arena Rating ​

lua
{
  id = 103,
  name = "Arena Champion",
  description = "Earn a 1850 Rating in any arena Bracket",
  points = 50,
  category = 2,
  icon = 132485,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "ARENA_RATING_MILESTONE",
    conditions = {
      rating = function(r) return r >= 1850 end
    }
  }
}

Arena Bracket Specific ​

lua
{
  id = 104,
  name = "2v2 Specialist",
  description = "Win 50 2v2 Arena Matches",
  points = 30,
  category = 2,
  icon = 132485,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "ARENA_MATCH_END",
    conditions = {
      bracket = Enums.ArenaBracket.TwoVTwo,
      result = Enums.BattlegroundResult.Victory
    }
  },
  progress = {
    type = "count",
    required = 50
  }
}

Objective Captures ​

lua
{
  id = 105,
  name = "Flag Runner",
  description = "Capture 50 flags in WSG",
  points = 30,
  category = 2,
  icon = 132485,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "PVP_OBJECTIVE_CAPTURED",
    conditions = {
      objectiveType = Enums.ObjectiveType.Flag,
      location = "Warsong Gulch"
    }
  },
  progress = {
    type = "count",
    required = 50
  }
}

Profession Achievements ​

Crafting Count ​

lua
{
  id = 200,
  name = "Master Alchemist",
  description = "Craft 500 Haste Potions",
  points = 30,
  category = 3,
  icon = 136240,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "ITEM_CRAFTED",
    conditions = {
      itemName = "Haste Potion"
    }
  },
  progress = {
    type = "count",
    required = 500
  }
}

Gathering ​

lua
{
  id = 201,
  name = "Outland Herbalist",
  description = "Gather 5000 herbs in Outland",
  points = 30,
  category = 3,
  icon = 136065,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "RESOURCE_GATHERED",
    conditions = {
      gatherType = Enums.GatherType.Herbalism
    }
  },
  progress = {
    type = "count",
    required = 5000
  }
}

Skill Milestone ​

lua
{
  id = 202,
  name = "Master Blacksmith",
  description = "Reach 375 Blacksmithing",
  points = 20,
  category = 3,
  icon = 136241,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "SKILL_UP",
    conditions = {
      profession = Enums.Profession.Blacksmithing,
      newLevel = 375
    }
  }
}

Fishing ​

lua
{
  id = 203,
  name = "Master Angler",
  description = "Catch 1000 fish",
  points = 30,
  category = 3,
  icon = 133888,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "FISH_CAUGHT"
  },
  progress = {
    type = "count",
    required = 1000
  }
}

Weekly Gathering ​

lua
{
  id = 204,
  name = "Weekly Herbalist",
  description = "Gather 200 herbs this week",
  points = 30,
  category = 3,
  icon = 136065,
  cadence = Enums.Cadence.Weekly,
  trigger = {
    event = "RESOURCE_GATHERED",
    conditions = {
      gatherType = Enums.GatherType.Herbalism
    }
  },
  progress = {
    type = "count",
    required = 200
  }
}

Open World Achievements ​

Reputation ​

lua
{
  id = 300,
  name = "Sha'tar Champion",
  description = "Reach Exalted with the Sha'tar",
  points = 30,
  category = 4,
  icon = 134939,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "REPUTATION_GAINED",
    conditions = {
      faction = "The Sha'tar",
      standing = Enums.Standing.Exalted
    }
  }
}

Quest Count ​

lua
{
  id = 301,
  name = "Loremaster",
  description = "Complete 500 quests",
  points = 50,
  category = 4,
  icon = 134939,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "QUEST_COMPLETED"
  },
  progress = {
    type = "count",
    required = 500
  }
}

Kill Count ​

lua
{
  id = 302,
  name = "Monster Slayer",
  description = "Kill 5000 creatures",
  points = 30,
  category = 4,
  icon = 132366,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "CREATURE_KILLED"
  },
  progress = {
    type = "count",
    required = 5000
  }
}

Milestone Achievements ​

Badge Collection ​

lua
{
  id = 400,
  name = "Badge Collector",
  description = "Collect 50 Badges of Justice",
  points = 30,
  category = 5,
  icon = 133585,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "BADGE_EARNED"
  },
  progress = {
    type = "count",
    required = 50
  }
}

Key Collection ​

lua
{
  id = 401,
  name = "Keymaster",
  description = "Obtain all Heroic keys",
  points = 30,
  category = 5,
  icon = 134237,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "KEY_OBTAINED",
    conditions = {
      keyType = Enums.KeyType.Heroic
    },
    criteriaSet = {
      { keyName = "Flamewrought Key" },
      { keyName = "Reservoir Key" },
      { keyName = "Auchenai Key" },
      { keyName = "Warpforged Key" },
      { keyName = "Key of Time" }
    }
  }
}

Epic Gearing ​

lua
{
  id = 402,
  name = "Epic Adventurer",
  description = "Equip 10 epic items",
  points = 30,
  category = 5,
  icon = 133585,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "EPIC_GEAR_EQUIPPED"
  },
  progress = {
    type = "count",
    required = 10
  }
}

Gold Milestone ​

lua
{
  id = 403,
  name = "Wealthy",
  description = "Reach 10,000 gold",
  points = 30,
  category = 5,
  icon = 133784,
  cadence = Enums.Cadence.AllTime,
  trigger = {
    event = "GOLD_MILESTONE",
    conditions = {
      amount = function(g) return g >= 10000 end
    }
  }
}