florian.berthold 6badf0e7ea Add per-character spellbook collector
New Collectors/Spellbook.lua walks GetNumSpellTabs() and emits one entry
per tab with name, texture, offset, numSpells, and a spells[] array of
{ slot, name, rank, spellID, icon }.

3.3.5/Ascension API differences are handled defensively: name comes
from GetSpellBookItemInfo or vanilla GetSpellName; spellID is parsed
out of GetSpellLink (3.3.5 doesn't return it from GetSpellBookItemInfo);
icon falls back to GetSpellTexture if GetSpellInfo doesn't have it yet.

Wiring:
  - CoaExporter.toc: load Collectors/Spellbook.lua after Talents
  - Core.lua: AssembleExport() includes spellbook for all + spellbook
  - Core.lua: HandleExport() accepts /coae export spellbook
  - Core.lua: debug output shows tab + spell counts
  - UI/ExportFrame.lua: "Spellbook" button in the Character section
2026-05-07 12:08:23 +02:00

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:

./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 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: /skilldumpcatalog skills, /talentdumpallcatalog 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
S
Description
In-game Lua addons that dump talents skills dispels items
Readme 121 KiB
Languages
Lua 97.2%
Python 1.9%
Shell 0.9%