• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
Live/Test Spell Info Parser

Utility Live/Test Spell Info Parser 04/17/2025

Download
Software Requirements
python3, pandas, tabulate
Server Type
🏢 Live TLP Test
Have you ever wanted to look at raw spell info, but the search function in lucy is failing you and we haven't exposed enough information in the spell datatype? With a little SQL knowledge, this utility will give you that ability! Just run this little script and it will produce a sqlite3 database file with all that information. The command help is as follows:
[CODE title="command help"]usage: spell_converter.py [-h] [-b] [-c] [-o OUTPUT] eq_dir

positional arguments:
eq_dir everquest directory where files necessary for parsing
live

options:
-h, --help show this help message and exit
-b, --base-tables recreate the base spells and spas tables in the db
-c, --character-tables
parse character spellbook outputs and add tables in
the result
-o, --output OUTPUT sqlite db file to write results to (default spells.db)[/CODE]

Before running any commands, check the requirements!

So for example, if you wanted to parse the base spell info, and any character files that you have generated (through /outputfile missingspells or /outputfile spellbook) then you would run this command:

python.py spell_converter.py -bc /path/to/EQ

Then, say you go and buy some spells and rerun your outputfiles, you can then regenerate just the character portions by running:

python.py spell_converter.py -c /path/to/EQ

Then, a new patch drops! Get that shiny new spell info into your sqlite3 db (without removing your character information) by running this:

python.py spell_converter.py -b /path/to/EQ

After you run these, enjoy the fruits of your labor by opening your favorite sqlite3 client, pointing it to your output file, and running some juicy SQL commands. Here's a taster:


[CODE lang="sql" title="get highest spell stacker for a character"]SELECT name, stacking_name, stacking_rank FROM spells
JOIN (
SELECT id, MAX(stacking_rank) AS stacking_rank
FROM spells
JOIN spellbooks USING (name)
WHERE character = 'Charname' AND server = 'shortname'
AND stacking_group IS NOT NULL
GROUP BY stacking_group
) maxed
USING (id, stacking_rank);[/CODE]

and another little taste:

[CODE lang="sql" title="get nuke damage information (simplifed)"]SELECT name, -base1 AS damage, mana, (-base1/mana) AS dpm, casting_time, wiz_level, description
FROM spells
JOIN spas USING (id)
JOIN spellbooks USING (name)
WHERE character = 'Charname' AND server = 'shortname'
AND spa_name = 'HP'
AND primary_category_name = 'DIRECT DAMAGE'
AND resist_type_name = 'Fire'
AND target_type_name = 'Single'
ORDER BY damage DESC;[/CODE]

The possibilities are endless!!!
Source Repository
https://github.com/dannuic/spell_converter
[git] Automation options?
Yes
Author
dannuic
Watchers
1
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from dannuic

Share this resource

Latest updates

  1. 04/17/2025

    〰️Commits Cleaned up whitespace (49eeea5) ~Dustin Niehoff Added new spell field from 4-14...
Back
Top
Cart