Reference
Documentation
Steps
DMK is not published anywhere public. Releases are versioned zips built by package.ps1; 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 (they're handed out, not hosted).
- 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. Done.
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
Flat — 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\THREEDMK\
├─ 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
Data notes
Field 1 is the item id; field 7 the random-suffix id — negative values reference Itemrandomsuffix.
talents.groups[talents.active]; the tree with the most points is the spec.
Repositories
| Repository | Language | Status |
|---|---|---|
wow-dmk | Lua | The suite, 21 addons. Active. |
wow-dmk-web | TypeScript | Suite site (core-docker-1:8033). This site: static pages plus a JSON data layer, published via bootstrap. |
wow-dmklegacy | Lua | Inactive, informational use only. |
Slash commands
In game. Most windows toggle from the Anchor bar instead.
| Command | Does | Plugin |
|---|---|---|
/dmk probe <name> | Run a probe, print output | DMK_Debug |
/dmkah | Manual auction house scan | DMK_AHSync |
/dmkah status | Scan and cooldown status | DMK_AHSync |
/dmk ah | Auction search window (default off) | DMK_AHSearch |
/dmk sim | Damage simulation window (default off) | DMK_DamageSimulation |
/dmk damage resetoverall | Reset the Overall accumulator | DMK_Damage |
Repo tools
PowerShell + luacheck, run from the wow-dmk root. The dev loop: edit → luacheck → publish.ps1 → /reload in game.
| Tool | Does |
|---|---|
package.ps1 | Builds the versioned release zips; suite version stamped from DMK.toc, release git-tagged, notes in CHANGELOG.md. |
publish.ps1 | Pushes edited addons into the live AddOns folder for in-game testing via /reload. |
luacheck | Lint before publish — lua51 std, .luacheckrc at the repo root. |
Probe loop
Client uncertainty resolves through DMK_Debug: write a probe in Probes.lua, publish, run in game with /dmk probe <name>, paste the output back, retire the probe with a verdict comment.
Error capture rides along: a chained Lua error handler plus ADDON_ACTION_BLOCKED, ADDON_ACTION_FORBIDDEN, and LUA_WARNING feed one buffer, persisted to DMKDebugDB (cap 200, newest win).
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.