Files
coa-exporter/README.md
T
florian.berthold 2b97a68317 Initial CoaExporter: merge AscensionExporter + CoA skill/talent dumpers
Folds three previously-separate Lua addons into one for guild-member use:

  - ascension-char-exporter (per-character JSON/Wiki.js Markdown via /ascx)
  - CoA_SkillExporter      (skills/dispels/passives catalog via /skilldump)
  - CoA_TalentExporter     (talent-tree catalog via /talentdumpall)

The two CoA catalog dumpers were ~90% identical entry-walkers. Pulled the
shared C_CharacterAdvancement.GetAllEntries() loop into Catalogs/Common.lua
and have Skills.lua / Talents.lua register collectors that share a single
scan pass (so /coae catalog all walks the entry list once, not twice).

Per-character collectors (Talents, Gear, Enchants, MysticScrolls,
MysticScrollProbe) and the AtlasLootAscension-derived ScrollCatalog data
are kept verbatim, just rebranded.

Slash interface:

  /coae export {all|talents|gear|enchants|mdgear|mdenchants|md}
  /coae catalog {all|skills|talents|dispels [class]|passives [class]|status}
  /coae scrolls {scan|export|reset|status}
  /coae sv on|off | debug | help

Aliases: /coaexp, /ascx, /asxc, plus legacy /skilldump /talentdumpall
/dispels /passives that map to the catalog subcommands.

SavedVariables: CoaExporterSaved, CoaExporterConfig, CoaExporterScrollCache,
CoaExporterCatalog (skills/dispels/levelPassives/talents/_meta).
2026-05-07 10:43:16 +02:00

147 lines
4.8 KiB
Markdown

CoA Exporter
============
One Lua addon for Children of Ascension. Two jobs:
1. **Per-character export** — your character's talents, gear, mystic
enchants, and the full mystic-scroll tooltip DB. Output as JSON or
Wiki.js Markdown for guides on the guild wiki / exil.es.
2. **Game-data catalog dump** — every skill, level passive, dispel, and
talent-tree node for all 21 CoA classes. Feeds db.exil.es and the
talent calculator.
Built for **Ascension WotLK 3.3.5** and depends on Ascension's
`C_CharacterAdvancement` / `C_MysticEnchant` APIs.
This is the merged successor to:
- `ascension-char-exporter` (per-character, `/ascx`)
- `CoA_SkillExporter` (`/skilldump`, `/dispels`, `/passives`)
- `CoA_TalentExporter` (`/talentdumpall`)
Install
-------
Copy `CoaExporter/` into your AddOns directory:
```
<wow>/Interface/AddOns/CoaExporter/CoaExporter.toc
```
Or, on Sub-Net's setup with the addons path symlinked:
```bash
./scripts/install_addon_sub.sh
```
Reload (`/reload` or relog) so the .toc is picked up.
Slash commands
--------------
Primary slash: `/coae`. Aliases: `/coaexp`, `/ascx`, `/asxc`.
### Per-character export
```
/coae export all JSON of talents + gear + mystic enchants
/coae export talents JSON, talents only
/coae export gear JSON, gear only
/coae export enchants JSON, mystic enchants only
/coae export mdgear Markdown gear table (Wiki.js)
/coae export mdenchants Markdown enchants table
/coae export md Full wiki page (header + gear + enchants + talents)
```
### Mystic scroll catalog (per-account, slow scan)
```
/coae scrolls scan Resolve all 825 scrolls' tooltips (~20s, retries)
/coae scrolls export JSON of the resolved cache
/coae scrolls reset Clear the cache
/coae scrolls status How many scrolls have been resolved
```
The cache lives in `CoaExporterScrollCache` (SavedVariables). Run scan
once per account; results persist across sessions and characters.
### Game-data catalog (for db.exil.es / talent-calc)
```
/coae catalog all One pass: dump skills + talents
/coae catalog skills Dump skills/dispels/passives only
/coae catalog talents Dump talent-tree nodes only
/coae catalog dispels [class] Print dispel summary (or for one class)
/coae catalog passives [class]Print level-passive summary (or for one class)
/coae catalog status Last scan time and counts
```
The catalog dump walks `C_CharacterAdvancement.GetAllEntries()` once and
fans out to all registered collectors, so `catalog all` only walks the
list once. After it finishes, `/reload` to flush the SavedVariable
`CoaExporterCatalog` to disk; pick it up in
`WTF/Account/<acct>/SavedVariables/CoaExporter.lua`.
The legacy slashes still work as aliases: `/skilldump``catalog skills`,
`/talentdumpall``catalog talents`, `/dispels` and `/passives` map to
the catalog list helpers.
### Misc
```
/coae sv on|off Toggle SavedVariables snapshot of /coae export
/coae debug Show collector status
/coae help
```
UI
--
`/coae` (with no args) opens the export window. Two rows of buttons:
- Row 1 — character: `All / Talents / Gear / Enchants / MD Gear / MD Enchants / MD Full`
- Row 2 — catalogs: `Catalog: Skills / Catalog: Talents / Catalog: All / Scrolls: Scan`
The window is a plain copy-out box. `Ctrl+C` after it auto-selects the
text.
SavedVariables
--------------
| Key | Written by | Notes |
|---------------------------|-------------------------------|-------|
| `CoaExporterSaved` | `/coae export …` when sv = on | Latest character export, keyed by `realm:name` |
| `CoaExporterConfig` | `/coae sv on/off` | Just `enableSavedVariables` for now |
| `CoaExporterScrollCache` | `/coae scrolls scan` | Mystic scroll item tooltips |
| `CoaExporterCatalog` | `/coae catalog …` | `skills`, `dispels`, `levelPassives`, `talents`, `_meta` |
Layout
------
```
CoaExporter/
├── CoaExporter.toc
├── Util/Json.lua
├── Data/ScrollCatalog.lua (auto-generated from AtlasLootAscension)
├── Collectors/ (per-character data)
│ ├── Talents.lua
│ ├── Gear.lua
│ ├── Enchants.lua
│ ├── MysticScrolls.lua
│ └── MysticScrollProbe.lua
├── Catalogs/ (game-data dumps for the wiki/calc)
│ ├── Common.lua (one entry-walk; fans out to collectors)
│ ├── Skills.lua
│ └── Talents.lua
├── UI/ExportFrame.lua
└── Core.lua (slash router)
```
Re-generate the scroll catalog from the latest AtlasLootAscension copy:
```
scripts/regen_scroll_catalog.py
```