Ascension's `C_CharacterAdvancement.GetEntryByInternalID` returns the
active character's *own* class entries with `Class` empty (the API
treats the player's class as implicit), while still returning `Class`
populated for every other class.
The entry-walk gate `if entry and entry.Class then ...` was therefore
silently dropping every talent of whatever class you ran the export
on. A Venomancer alt would correctly capture the 41 *other* classes'
talents/skills but produce zero rows for Prophet itself, leaving the
db.exil.es Venomancer page perpetually missing icons for Rotting Away,
Lure, Envenomed Weapons, and friends.
Cache UnitClass("player") at the start of C.Run and substitute it for
`entry.Class` whenever that field is missing or empty. The bucketing
key in `info.cls` now matches the localized class string (consistent
with how the other 41 classes show up in CoaExporterCatalog.talents).
CoA Exporter
One Lua addon for Children of Ascension. Two jobs:
- 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.
- 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:
./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 + spellbook + gear + mystic enchants
/coae export talents JSON, talents only
/coae export spellbook JSON, full spellbook (per tab, with spellID + rank + icon)
/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 mdspellbook Markdown spellbook (one section per tab)
/coae export md Full wiki page (header + gear + enchants + talents + spellbook)
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
│ ├── Spellbook.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