View Full Version : Kaiyodo Spell Editor
LanternEQ
03-28-2019, 06:36 PM
I am working on a Unity implementation of the classic EverQuest game. I want to start working on spell effects soon. I understand Kaiyodo had a spell editor working around the time the classic client was used. I figure it is a good starting point for reverse engineering the particle effects. Does anyone have a copy?
Thanks!
Zaela_S
03-29-2019, 01:16 AM
As far as I remember it, Kaiyodo's spell editor wouldn't tell you anything about spell particles beyond what ID numbers different particle effects had.
If you're specifically interested in the classic, pre-Luclin spell particle effects, information is hard to come by. I believe all the data for these are hardcoded in the client binaries (probably one of the graphics DLLs) rather than being loaded from a separate client data file (as most graphics-related things are).
Over on the Project1999 forums, Telin has done a lot of work reimplementing the particle effects from the pre-Luclin spell particles in the post-Luclin particle effect system, so he'd probably know the most on the subject. Though I don't know if he'd be interested in sharing.
As a side note, particle effect data for classic weapon models (e.g., epics) is exposed in client data files, and is relatively simple and moderately understood. There's a decent chance that the particle data for classic spells used the same format or something similar, since it would have fed into the same particle effect system. (In the post-Luclin system, data for spell and weapon particles definitely use the same format.) I had a barebones tool (https://www.dropbox.com/s/lwgqzzx2onkr07j/s3d_particle_editor.zip?dl=0) for editing this classic weapon particle data (some videos of results can be seen in this thread (https://www.project1999.com/forums/showthread.php?t=249406)).
demonstar55
03-29-2019, 12:44 PM
Is classic spell effects in spells.eff? This is just a memcpy of some spell effect data, the "SpellAffectIndex" is actually just an index to an effect in this array.
LanternEQ
03-30-2019, 02:02 AM
As far as I remember it, Kaiyodo's spell editor wouldn't tell you anything about spell particles beyond what ID numbers different particle effects had.
If you're specifically interested in the classic, pre-Luclin spell particle effects, information is hard to come by. I believe all the data for these are hardcoded in the client binaries (probably one of the graphics DLLs) rather than being loaded from a separate client data file (as most graphics-related things are).
Over on the Project1999 forums, Telin has done a lot of work reimplementing the particle effects from the pre-Luclin spell particles in the post-Luclin particle effect system, so he'd probably know the most on the subject. Though I don't know if he'd be interested in sharing.
As a side note, particle effect data for classic weapon models (e.g., epics) is exposed in client data files, and is relatively simple and moderately understood. There's a decent chance that the particle data for classic spells used the same format or something similar, since it would have fed into the same particle effect system. (In the post-Luclin system, data for spell and weapon particles definitely use the same format.) I had a barebones tool (https://www.dropbox.com/s/lwgqzzx2onkr07j/s3d_particle_editor.zip?dl=0) for editing this classic weapon particle data (some videos of results can be seen in this thread (https://www.project1999.com/forums/showthread.php?t=249406)).
Thanks for the reply. I took a quick look in the files and saw that there is spdat.eff, which contains binary data about the spells. There was also spells.eff, which may contain the particle data. I originally assumed that there was something in these files about the particle system it uses. I didn't assume it had all the data but I have a classic client and a test server so I can always verify the effects and reverse engineer that way.
I'll see if I can get in touch with Telin and see what he has so far. If I make any progress, I'll release it to the community.
LanternEQ
03-30-2019, 02:03 AM
Is classic spell effects in spells.eff? This is just a memcpy of some spell effect data, the "SpellAffectIndex" is actually just an index to an effect in this array.
Interesting. I will take a look. I saw the spells.eff file and wondered what it does. By effect do you mean visual or logical effect? Thanks!
Uleat
03-30-2019, 05:47 PM
Wasn't the original client developed in Maya?
Secrets
03-31-2019, 12:21 PM
spells_us.txt is pretty much the same format as spdat.eff, but comma delimited as opposed to memcpy'd in blocks of memory.
I'll see if I can find the info I had on it; I used to have an 010 editor script for parsing that file and converting it into a spells_us.txt file.
demonstar55
03-31-2019, 01:42 PM
spells_us.txt is pretty much the same format as spdat.eff, but comma delimited as opposed to memcpy'd in blocks of memory.
I'll see if I can find the info I had on it; I used to have an 010 editor script for parsing that file and converting it into a spells_us.txt file.
spells.eff is a different file ;) (which is stil memcpy'd)
LanternEQ
05-15-2019, 08:36 PM
Hey guys. Had a chance to check this out. spdat.eff and spells.eff are both binary.
spdat.eff - Contains information about each spell, it's type, mana cost, effects, etc. I have this parsed.
spells.eff - I assume this contains information about the particles as it references the sprite strings founds in gequip.s3d. I do think the actual particle system logic is inside either an executable or the dll, which is fine. I had planned on reverse engineering it anyway.
Here is what I currently need to do:
1. Find the index reference in the spdat.eff entry which corresponds with the visual effect in spells.eff.
2. Figure out the format for spells.eff. I have take a brief look at it and it's not like most EQ data (fixed length structs), so it will be a bit more difficult.
3. Recreate the particle systems by testing them in game. For example, if the healing spell references a specific visual effect, I can break the particle system down into chunks and recreate it in Unity.
Will be slow and require a lot of time (and I am pretty sure it hasn't been done before), but I will get it done.
In the meantime, if anyone has any information about the spells.eff file, that would be great.
LanternEQ
05-21-2019, 05:20 PM
I have finished reverse engineering spdat.eff and have found the index into the spells.eff file.
I am also around 40% finished reverse engineering the spell effects. Turns out it was a complicated but fixed length structure.
Thanks for your help. Will share my findings when complete if anyone is interested.
Furinex
11-10-2020, 03:27 PM
I have finished reverse engineering spdat.eff and have found the index into the spells.eff file.
I am also around 40% finished reverse engineering the spell effects. Turns out it was a complicated but fixed length structure.
Thanks for your help. Will share my findings when complete if anyone is interested.
Yeah, of course were interested. I developed my own version of this, I'd love to see how it compares. Ive gotten only to about velius with mine.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.