promotional bannermobile promotional banner

Achievement Track

A simple achievement tracker to help you achieve it quickly.

File Details

v0.4.0

  • R
  • Jun 10, 2026
  • 94.51 KB
  • 36
  • 12.0.5
  • Retail

File Name

AchievementTracker-v0.4.0.zip

Supported Versions

  • 12.0.5

Changelog

All notable changes to AchievementTracker are documented in this file.

The format is based on Keep a Changelog, and the project adheres to Semantic Versioning.

Unreleased

0.4.0 - 2026-06-10

Roadmap quality + usability pass, full coverage, and the public-facing docs.

Added

  • Auto-detected meta prerequisites. Meta-achievements (Glory of the Raider, Loremaster, expansion metas…) now read their prerequisite achievements straight from the API (criteria of type "complete achievement"). A meta with unmet prerequisites sinks and shows blocked by N achievements; once all prerequisites are done it surfaces. No guessing — the gates come from the game.
  • Difficulty (tier) filter — a new dropdown next to Expansion: show only Easy·Solo, Medium, Grind/Long-term, Group, Hard/RNG, Unobtainable or Uncurated.
  • Complete curation coverage (1800+ entries). Every top category with missing achievements is now curated: the remaining Professions and Expansion Features, plus Characters and the network-failed stragglers from the previous pass. Only a single Feat of Strength is left uncurated (and it already shows as Unobtainable).
  • Bilingual docs + screenshots. English + Português-BR READMEs with a language switcher, in-game screenshots, and a CurseForge store description.

Fixed

  • Detail panel no longer overlaps itself. Info and criteria used to live in two fixed-height areas that collided on long content (e.g. a meta with many criteria), making the text unreadable and the scroll useless. Everything (points, dimensions, description, note, and the criteria checklist) now lives in one scroll body that grows with the text, opens at the top and scrolls with the wheel.

Changed

  • Filter bar on fewer rows. Category, Subcategory and Expansion (plus the new Difficulty) sit on one line (labels dropped — the dropdown text is self-describing); "Current zone" became an Only current zone checkbox next to the other toggles. The window widened to fit the filters.

0.3.0 - 2026-06-09

Full-game curation: the difficulty overlay now covers every top category with missing achievements — 1531 hand-classified entries (up from 766).

Added

  • Curated the remaining categories (766 → 1531 entries): Pet Battles (180, solo minigame but skill preserved — team strategy matters), Dungeons & Raids (357, group: raid for raid subcategories, party for dungeons), Player vs. Player (177, group), Delves (37, solo with skill preserved — difficulty tiers are real) and Housing (14, solo). With these, the overlay covers all top categories that have incomplete achievements on a veteran account.
  • Two new data files (Achievements_Delves.lua, Achievements_Housing.lua) added to the .toc. (A brand-new file needs one client restart to load; after that /reload is enough.)

Notes

  • Group content (Dungeons & Raids, PvP, raid metas) correctly sinks to the Group/Hard tiers and the bottom of the roadmap — it never competes with the solo wins at the top. The "Solo only" / "Hide group" toggles filter it out entirely.
  • Curation remains an initial automated+normalized pass per category (domain rules + Wowhead comment signals). Fine-grained manual review is welcome and easy now that the data is split one-file-per-category.

0.2.0 - 2026-06-09

Curation push: 766 hand-classified achievements across 7 top categories, plus the ordering and zone-filter fixes that make the roadmap actually useful day-to-day.

Added

  • Curated difficulty overlay grew from 3 to 766 entries, covering Professions (Fishing/Cooking/Archaeology, 145), Expansion Features (Draenor Garrison + Legion Class Hall + Covenant Sanctums, 137), Reputation (45), Exploration (181), Quests (141), Collections (63) and World Events (54). World Events is treated as seasonal (calendar is the bottleneck) and preserves the tool's group signal — boss-of-the-holiday party content stays correctly tagged as party.
  • Workload penalty on the score — solves the "easy but long" problem. The scanner now reads the remaining criteria load from the live API (counts left for quantity criteria, 1 per unchecked sub-step) and the difficulty score adds a log-shaped penalty (cap 6). A would-be Easy·Solo with a big workload (≥15) now correctly drops to the Grind/Long-term badge instead of sitting at the top with a green label.
  • Top-level category in the dump (category/subcategory fields) and matching --category flag in tools/curate.py. Lets you curate by the real top category (Reputation, Quests, World Events…) instead of brittle leaf-name substrings.
  • Cross-promo of the sibling addon MountTracker in the README and the CurseForge description.

Fixed

  • "Current zone" filter was nearly always empty: it only compared the player's zone against the curated zone field, which almost no entry has. It now also matches the achievement's subcategory (often a zone/continent like Dragon Isles, Kalimdor) and the achievement's own name (e.g. Explore Tanaris), and walks up to the continent level — without pulling every dungeon of the continent. Short tokens (<4 chars) are skipped to avoid false positives.
  • No more periodic loading-from-nothing. The roadmap stopped re-scanning on every CRITERIA_UPDATE (which fires constantly while you play). The scan now runs once on first open and only rebuilds when you actually earn an achievement; reopening the window without changes is instant.

Changed

  • Data files reorganized to one-per-top-category, all pre-declared in the .toc. Adding a brand-new file to the .toc requires a full client restart; editing an already-declared file works with /reload. So future curation = edit the right file
    • /reload — no more restarts. Empty stubs (Character, Quests, Exploration, PvP, Dungeons & Raids, Reputation, World Events, Pet Battles, Collections, Expansion Features, Feats of Strength, Legacy) sit inert until filled in.
  • Old-content-soloable rule applied across the score. Legacy raid achievements you can solo today no longer get a raid-group score; they count as solo, exactly matching the design ("an old raid boss you can solo should sit near the top, not the bottom").
  • Dedup across categories. Some achievements live in more than one category (e.g. Secret Fishing Spots under Professions and Exploration). The curation finalizer now dedupes globally against every Data/Achievements_*.lua, so the same ID is never written twice.

First release. Sibling project to MountTracker, reusing the same architecture (Core sandbox/DB/version/waypoint shell, virtualized list UI, minimap button, slash commands, CI + release pipeline), with a difficulty-curation roadmap on top.

Added

  • Project skeleton mirroring MountTracker. .toc, shared namespace, SavedVariables, slash commands (/achtrack, /atr, /achievementtracker), minimap button and the scrollable roadmap window — but without the glow (achievements have no "hidden eligibility") and without the 3D model (achievements have no model; the detail panel uses the large icon + the criteria list).
  • Achievement scanner (Logic/AchievementScanner.lua): walks every category (GetCategoryList / GetCategoryInfo / GetCategoryNumAchievements), reads each achievement's account-wide completion and partial criteria progress (GetAchievementCriteriaInfo), and attaches the curated overlay by achievementID.
  • Difficulty model — the heart (Logic/Difficulty.lua): derives a tier and a difficulty score from the curated dimensions (group/effort/rng/access/skill
    • gated prerequisites) plus live progress. Lower score = easier/solo = top of the roadmap. Tiers: Easy·Solo, Medium, Grind/Long-term, Group, Hard/RNG, Unobtainable, Uncurated.
  • Roadmap ordering (Logic/Roadmap.lua): sorts by score (easiest/solo first), with near-complete achievements bubbling up on ties; filters by category, expansion, current zone, and the toggles Solo only / Show completed / Show unobtainable.
  • Curated difficulty overlay schema (Data/Schema.lua) + a seed sample (Data/Achievements_Sample.lua). Uncurated achievements still appear, in a neutral tier, until classified.
  • Curation validator (tools/validate.lua) + CI (Lua 5.1 syntax + data integrity) and a tag-driven Release workflow (GitHub Release + CurseForge), matching the MountTracker pipeline.
  • Incremental (non-freezing) scan. The roadmap is built in the background with a per-frame time budget (coroutine), so the window opens instantly and fills in as it loads — even across thousands of achievements. Completed achievements skip the costly criteria read. The scan runs once on first open and only rebuilds when you earn an achievement (no constant re-scanning).
  • Category → Subcategory filter (resolved from the game's category tree) plus a Current zone filter — so the filter bar no longer overflows with one giant list.
  • Obtained = colored, missing = gray icons, matching the MountTracker convention.
  • Old-content-soloable rule: an achievement curated as legacy-soloable (e.g. an old raid boss you can solo today) counts as solo in the score and tier, so it ranks as an easy win. Optional effortMinutes (estimated from comments) breaks ties among the easy ones.
  • Curation toolkit (tools/atcurate/, mirroring MountTracker's mtcurate/): polite cached HTTP, and extractors that read Wowhead comments for the average time to finish and difficulty hints (solo/group/RNG), emitting reviewable Lua suggestions.
  • First real curated batch — Fishing (Data/Achievements_Fishing.lua, 49 entries): generated from the live dump + Wowhead comments, then normalized by domain rules (fishing is solo, no mechanical skill; conservative accessibility).
  • English (en-US) interface throughout.

Notes

  • Targets Midnight 12.0.5 (## Interface: 120005).
  • Zero dependencies (pure Blizzard API). Handles Midnight "Secret Values" safely.
  • Errors are sandboxed — no mid-screen Lua error popups.
  • Difficulty curation is incremental: only Fishing is curated so far; other categories appear in a neutral Uncurated tier until classified.