Documentation
Description
DMK began as a set of quality-of-life improvements for the Anniversary client: replacement frames, bags, maps, and auction tools built to play with.
It then became a testbed for building with AI — a place to try ideas quickly against a real, running system, with the suite's shared libraries and data conventions keeping the experiments coherent.
It is now also a data pipeline. The suite captures gameplay data, ships it off the client into warehouses, and the analysis comes back as better decisions in game: gear, gold, and rotation min-maxing grounded in real numbers.
Feature timeline
When each feature landed. Full notes on Changelog.
| Version | Date | Added |
|---|---|---|
| v1.0.0 | 2026-07-25 | First shared build: unit frames, threat window, damage meter and simulation, world map and minimap, bags, info bars, gold/xp charts, auction scanning and search, character data and logs, combat engine. |
| v1.1.0 | 2026-07-29 | Healing panel, gear sets, PartyIntake prediction engine. |
| v1.2.0 | 2026-07-29 | Group sync: threat standings, in-flight heals, presence over addon messages. |
| v1.2.1 | 2026-07-30 | Positional telemetry, range-band radar, dungeon corridor markers. |
| v1.3.0 | 2026-08-01 | Chat replacement, persistent chat capture, positional sync, radar position solver. |
| v1.3.1 | 2026-08-04 | Always-on health text on every frame; combat capture v2 event grammar. |
Repositories
Every repo in the WoW group contributes to the suite: the addon itself, the game-data extraction that feeds its generators, the ingest pipelines that warehouse its output, and the sites that read the warehouses.
| Repository | Language | Commits | Description |
|---|---|---|---|
wow-dmk | Lua | 52 | The suite: the DMK core plus 20 plugins. |
wow-dmk-web | HTML/JS | 1 | This site. Static pages plus a JSON data layer, served by nginx. |
wow-dmk-data | Python | 7 | Static-data pipeline; warehouses source game data for the generators. |
wow-db2 | Rust | 41 | DB2-to-JSON extractor; exports client database tables. |
wow-data | Assets | 15 | Extracted game data: DB2 JSON, CASC files, listfiles, interface art. |
wow-ah-gen | Python | 32 | Auction house ingest; SavedVariables scans into the warehouse. |
wow-ah-web | TypeScript | 38 | Auction house analytics site. |
wow-ah-api | Python | 9 | Auction house API. |
wow-armory-gen | Python | 25 | Armory ingest; character captures into the warehouse. |
wow-armory-api | TypeScript | 1 | Armory API. |
wow-armory-web | TypeScript | 1 | Armory site. |
wow-modmanager | TypeScript | 21 | Third-party addon manager for the Anniversary client. |
wow-dmklegacy | Lua | 78 | The monolith predecessor of the suite; reference source. |
wow-dmkahlegacy | Lua | 15 | The auction house monolith predecessor; reference source. |
Steps
Releases are versioned zips built by package.ps1, hosted on Download; the suite version is stamped from DMK.toc, every release git-tagged, CHANGELOG.md at the repo root.
- Get the release zip for the version you want from Download.
- Extract into
World of Warcraft\_anniversary_\Interface\AddOns— the zip carries all 21 addon folders. - Start the client. The TOC list is read at startup, so a running client needs a full restart, not
/reload. - Enable the DMK addons on the character-select AddOns list.
Reload rules
| Change | Needed |
|---|---|
| Lua edits | /reload |
Any .toc change | Full client restart |
| SavedVariables write | Happens on logout or /reload only |
Questie
Optional. Questie is the suite's one third-party runtime source: a read-only bridge in DMK_Map, toggle-gated, 150-marker cap. Without Questie the map falls back to the native quest API — nothing else in the suite notices.
AddOns folders
21 folders, one per addon, all publishing through the shared DMK namespace.
Interface\AddOns\ ├─ DMK\ core — config, profiles, UI / window-manager / form libs ├─ DMK_CharData\ data ├─ DMK_CharLogs\ data ├─ DMK_RealtimeData\ data ├─ DMK_AHSync\ data ├─ DMK_GearMGR\ data ├─ DMK_Telemetry\ data ├─ DMK_UnitFrames\ display ├─ DMK_Damage\ display ├─ DMK_DamageSimulation\ display ├─ DMK_Map\ display ├─ DMK_MiniMap\ display ├─ DMK_Bags\ display ├─ DMK_Anchor\ display ├─ DMK_Status\ display ├─ DMK_Threat\ display ├─ DMK_AHSearch\ display ├─ DMK_Heal\ display ├─ DMK_Radar\ display ├─ DMK_Chat\ display └─ DMK_Debug\ display
SavedVariables
Written on logout or /reload only. Data plugins own these files; display plugins read via accessors.
WTF\Account\<Account>\
├─ SavedVariables\ account-wide
│ DMKCoreDB · DMKAHDB
└─ <Realm>\<Character>\SavedVariables\ per-character
DMK_CharData.lua DMKCharacterDB
DMK_CharLogs.lua DMKCharacterLogDB + DMKChatLogDB (chat history)
DMK_RealtimeData.lua DMKCombatEventsDB
per-plugin DBs DMKGearDB · DMKTelemetryDB · DMKDamageCharDB ·
DMKMapCharDB · DMKMiniMapCharDB · DMKBagsDB ·
DMKDamageSimCharDB · DMKAHViewDB · DMKDebugDB
Slash commands
In-game commands. Most windows toggle from the Anchor bar instead.
| Command | Does | Plugin |
|---|---|---|
/dmk | Toggle the settings window | DMK |
/dmk show · /dmk hide | Show or hide the settings window | DMK |
/dmk status | Suite version and feature states | DMK |
/dmk lock · /dmk unlock | Lock or unlock windows (edit mode) | DMK |
/dmk help | Command list in chat | DMK |
/dmk ah | Toggle the AH Search window | DMK_AHSearch |
/dmkah | Manual auction house scan (AH window must be open) | DMK_AHSync |
/dmkah status | Scan state and cooldown | DMK_AHSync |
/dmk chardata · capture | Snapshot status, or capture now | DMK_CharData |
/dmk charlogs count · clear | Activity log counts, or clear the log | DMK_CharLogs |
/dmk damage resetoverall | Reset the Overall accumulator | DMK_Damage |
/dmk sim | Toggle the Damage Simulation window | DMK_DamageSimulation |
/dmk gear | Toggle the GearMGR window | DMK_GearMGR |
/dmk events status · clear | Raw combat event log status, or clear it | DMK_RealtimeData |
/dmk sync | Sync peer list and link state | DMK_RealtimeData |
Pipeline
The addon never phones home — SavedVariables are picked up from disk, ingested, and only then read by AI.
Inputs
Warehouse reads: character snapshots (gear, stats, talents, professions), combat event history and fight breakdowns, gold/xp series, and current AH pricing per item and suffix.
Processing
Placeholder — describe what actually runs: models, prompts or jobs, how often, and what questions they answer against the warehouse.
Outputs
Placeholder — e.g. gear and loadout evaluation against real prices, spell-rank and rotation analysis from logged fights, upgrade paths per character.