# EverQuest Legends spell data `scripts/eql-spells` creates a local SQLite search index from the EQL client files. The client installation remains the source of truth: neither the raw files nor the generated database are tracked in this repository. ## Sources and cache The command reads these files from the EQL game directory: * `spells_us.txt` — spell ID, name, and client numeric fields. * `spells_us_str.txt` — caster, target, and fade messages. * `dbstr_us.txt` — spell descriptions (`type` `6`). It resolves that directory in this order: 1. `--game-path PATH` 2. `EQL_GAME_PATH` 3. `/home/pleb/Games/EverQuestLegends` The default generated index is `$XDG_CACHE_HOME/eqclient-conf/eql-spells.sqlite`, or `~/.cache/eqclient-conf/eql-spells.sqlite` when `XDG_CACHE_HOME` is unset. Use `--db PATH` to use a different index, such as one for a test fixture. Each query compares the client files' paths, sizes, nanosecond modification times, and `:crc` sidecars (when supplied) with index metadata. It rebuilds automatically after an EQL update. `build` always forces a rebuild. ## Commands ```bash # Force an index build. scripts/eql-spells build # Exact lookup by numeric spell ID or case-insensitive exact name. scripts/eql-spells get 4 scripts/eql-spells get 'Summon Waterstone' # Include the complete original caret-delimited row and its fields. scripts/eql-spells get 4 --raw # Name substring lookup and full-text name/description search. scripts/eql-spells find water --limit 10 scripts/eql-spells search 'underwater breathing' # Use a different EQL installation or cache location. scripts/eql-spells --game-path /path/to/EverQuestLegends --db /tmp/spells.sqlite search fire ``` Successful commands emit JSON on stdout. `get` returns `spell`; `find` and `search` return `results`. All include source fingerprint metadata. Add `--text` to query commands for compact human-readable output. The first version intentionally exposes only reliably joined fields: ID, name, description, cast messages, and (with `--raw`) the complete original row. The numeric columns in `spells_us.txt` have no embedded schema, so class, level, mana, and effect filters should be added only after their mapping has been verified for this particular client build.