Giter VIP home page Giter VIP logo

wow-spell-editor's Introduction

WoW Spell Editor

This is a spell editor designed to be used for WoW versions 3.3.5, 2.4.3, or 1.12.1. It also supports importing and exporting of any patch version DBC to and from SQL with the use of text file bindings found in the Bindings directory.

Spell Editor Image 3.3.5a

Downloads can be found in the releases section, please report any issues you find and I will look at them when I get a chance.

The program currently supports SQLite and MySQL/MariaDB connection types.

The editing process is to import your spell.dbc into SQL, and then you can edit the spells with the program or with queries. When you are ready to test the modifications you have made you can export it back into a new spell.dbc file.

Config changes require a program restart to take effect.

Enjoy.

Video tutorial

https://www.youtube.com/watch?v=oM4AU0KMuw0

Brief Guide

The spell.dbc exists client side inside the MPQ files: DBFilesClient/Spell.dbc. You extract this file and use it server side too. The client uses it to display spell strings, and other client side requirements. The server side uses it to calculate damage, healing, spell effects, etc, and validating that the requests the clients are sending are valid.

This means that if you wish to modify spells it is usually necessary to update both the client and the server. You can deploy a custom MPQ and if neccessary a custom wow.exe binary. There are plenty of guides for this out there, e.g: http://www.modcraft.io/index.php?board=78.0 / https://wowdev.wiki/Main_Page


When you first open the spell editor program it will ask which database type you want to use. The databases for editing the spells have different advantages and disadvantages:

A) MySQL:

When you run a WoW server you usually have a MySQL database running that handles the emulator data. You should create a new database and use this when the spell editor asks which database to use. The spell editor program will create all the tables for you with the correct structure when you import DBC files.

A MySQL table can have multiple people editing the data simultaneously. Anyone working on it can export the data to a new Spell.dbc at any point. You can also have multiple spell databases by changing which one the program is configured to use. You can setup different MySQL accounts so that different users have different permissions and anyone accessing the spell database cannot access the emulator databases.

MySQL also has many IDE's (SQLyog, Navicat, HediSQL, etc) that will allow you to query and perform operations on the spell tables with ease. This allows bulk operations, such as finding all spells that cost mana and changing it to energy.

B) SQLite:

As the name implies, this is a lightweight version of SQL. It will save all the data to a single local flat file. This means the program has no dependency on having a MySQL server running but only a single person can be working on the data at any given time. It is a lot harder to query this data too.


Once you have selected and configured the database you want to use, you can then import a spell.dbc file into the database. On the header for the program you will see a button for 'Import/Export'. Click this and select spell.dbc. You can import and export any other DBC files you have bindings for, but they must be inside the DBC folder distributed with the program.

After the spell.dbc has been imported you can edit spells at your leisure. You only need to import the spell.dbc once, you do not need to repeat this task each run of the program.

Once you are ready to test your spell changes in game, you must export the data back into a spell.dbc. Use the 'Import/Export' button on the header bar and select the spell.dbc in the export panel. The new DBC files will be created in a 'Export' folder in the same folder as the spell editor program.

This new spell.dbc file will need to be updated both client side and server side, as explained at the start of this little guide.

I hope this helps.


Spell Visual Editor

Spell Visual Tab Image

The spell visual tab will only be populated when you import the visual DBC files. These will be automatically selected when you open the import/export window.

When a spell has no visual selected (value of 0) then a spell visual kit from another existing spell visual can be copied and pasted into the spell with no visual, resulting in the program copying the selected kit to the spell, creating a new spell visual and linking everything up.

You can copy and paste kits and effects/attachments freely. Whenever you paste it creates a new copy of the item you are pasting rather than using the existing one. This prevents you accidentally modifying another spell.

This feature is in its very early stages. Some values from the visual kit data are not handled in the UI. Other features can be added like displaying other spells using the same kit/effect/attachment or generally being able to search all existing objects.

The full class model is not currently supported. The spell visual class model looks like this: Spell Visual Class Model

Spell Visual Map

I wrote a utility tool for creating a map of creatures that show the spell visuals for every spell in the game. This was useful when trying to find which spell visual I wanted to use when creating custom spells.

This is now built into the spell editor. It is on the Visual, Map Builder tab. It defaults to map 13 which you can reach by running the command: .go xyz 0 0 -15 13

You will probably need to update the template SQL statements to match your emulator structure.

The files are exported to a Export folder.

Spell Visual Map video

Headless Exporter

The HeadlessExporter code is included in this repository. A guide on how to make use of this and precompiled binaries are available on the DBC Editing Workflow repository.

wow-spell-editor's People

Contributors

ayasecore avatar cheche0007 avatar cobollatin avatar dependabot[bot] avatar grimtonz1337 avatar grymskvll avatar hellokitty avatar jacobtonder avatar jing3387 avatar lynsky avatar makpptfox avatar norbivar avatar r4d1sh avatar semgaby avatar stoneharry avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wow-spell-editor's Issues

Go to Spell

8c793121da1a5d4458e388f7c0b805e5

I compiled ur latest version

what is the problem ?

Error with using Health as PowerType

When you set the PowerType of a spell to "Health" and save it, you're unable to load and thus edit it anymore. It also the case for Blizzard's spells using Health as Powertype.

To reproduce the error, simply open the SpellID 1454 in the editor.

I am using the lastest version of the Editor (1.8.2) in 64bits and have the French locale.

Unable to load spell

For some reason loading spell:

holy shield - ID: 48952

It just wont, it is stuck at this forever: http://puu.sh/jRoUX/f9f7d39bc0.png

I recently updated today, my last version was months old, where it would load it but it would show no stats and no information at all, like it was loading wrong. Not sure what is causing it.

Crash when select spell

Selected Spell id 100 -> tab 1 -> Goes back to select spell tab, view is the same as it was when i first selected the spell -> Selects spell 100 -> tab 1 -> Goes back to select spell tab, Now the view is from spell id 1-33 -> select spell 15970 -> Crash

[QUESTION] What are dummy effects ?

I am sorry for posting here, but I have searched the whole internet for this, but I couldn't find any information about it. I am wondering about "SPELL_EFFECT_DUMMY = 3" what this is for ? what is it doing exactly ?

Doesn't create table

It doesn't create the editing table but creates the database and all other tables, so its not an issue with the MySQL connection. Wouldnt be that big of an issue if I had the SQL Code for the table.

EquippedItemSubClassMask gets set to 0 on every save.

If you save any spell that row ^ gets set to 0. Also the row itself isnot editable from the spelleditor

so it is possible it is most likely left out.

Its easy to reproduce, set that row to any number then save the spell via the db editor after loading it ofc, and itll be set to 0 again in the DB.

Chinese No response

IF I use CN spell.dbc
can success import to mysql
but IF I enter any ID
it will be always please wait
If I use US spell.dbc or your 1.4.3 release build it can run well

Can't read Chinease spell.DBC

When I want to load spell.dbc(zhcn-3.3.5) ,it can't read……
sad……
but this project is so cool and thank you!

attriebutesEX3 sets to 0

everytime you save a spell, the AttributesEX3 gets set to 0. This really messes up your spells! :P

Does not support mixed locale DBC files

Hello,

When I launch for the first time the editor and Import (a clean) spell.dbc (SQL or SQLite) I can choose the Ranges and DispelTypes in the menus, but once I stop and restart it the two dropdown menu are empty.

2019-01-27 01_46_01-wow spell editor 3 3 5a - 12340

I don't see any reason that could lead to this issue, since the DBC is fresh, also i'm using the 64bits version, the spell I used in this exemple is the spell ID 11, but any other spell do exactly the same.

MySQL save error

So i use your newest program version, but the save function does not work on some spells.

For example: 9472

Error message: Concurrency violation: the UpdateCommand affected 0 of the expected 1 records

Crashes with not enough memory after long periods of usage

Hi,

I had this issue several times now since I use the version 1.8.0 of your editor (French locale, 64bits version) :

When I just do what the editor is made for, aka creating spells, after switching between tabs, spells and saving a certain amount of times (heavy usage for like 40minutes) it suddenly freezes and dissapear and I have to kill it's task manually.

The error log only say "Not enough memory" but I had only 67% of my total memory used while the Editor was launched and crashed and the last 10 lines of the debug_output only talk about an unexpected token in the description field.

Unexpected tokens [$m1, REFERENCE] PLUS [$AP, REFERENCE]
Unexpected tokens [$AP, REFERENCE] MULTIPLY [0, NUMBER]
> Token '$m1' derived value '$m1'
> Token '+' derived value ''
> Token '$AP' derived value '$AP'
> Token '*' derived value ''
> Token '0' derived value '0'
${$m1+$AP*0.1}	----	Processing
Token: [$m1, REFERENCE, $m1]
Token: [+, PLUS, ]
Token: [$AP, R

I can't really tell you how to reproduce this issue tbh, it happen randomly after many reload/saves, therefore I'm not really waiting for a "fix" but I just assumed you would like to know anyway this issue eventually existed.

Spell effects not updated in Effects 2

I noticed this with effect 136, HEAL_PCT. On the Effects 1 tab, it's listed as such. On Effects 2, it's "unknown_16." On further inspection, it looks like most of the effects listed as unknown in Effects 2 are listed with an actual name in Effects 1. I'm assuming the two parts need to be updated separately?

Unsupported spell string parsing tags

Hi, this is a minor issue,

When you add a dividing tag ($/10;s1) for a certain effect, let's say effect1, the other effets won't be able to show the value in the "real time description" of the editor.

The dividing tag is used to show the final value of time or rage for exemple, since the input value is always bigger than the real final value the player have.

You can see it with the spell ID 17061, the $s2 is not anymore able to show the value in real time, it does the same if you change the 2 by a 3, but if you remove the dividing tag, everything works again.

Stances = Broken

Great editor but some more tuning is required.

Practically everything in the stances tab starting after "Ambient" will not stay checked.

Spell Editor ---> Flags ---> Misc ---> Stances ---> Ghoul (down to) Spirit of Redemption (do not work as intended)

Once saved they uncheck & randomly select other options (typically on ambient or above it)

I just noticed you fixed it a day ago

Re-opened

Stances are still not fixed

Comas in DamageMultiplier, EffectBonusMultiplier & RealPointsPerLevel truncate the data when trying to copy the spell

When you set a coma in the values of RealPointsPerLevel and/or EffectBonusMultiplier and/or DamageMultiplier the editor is unable to copy the spell if you want to use it as a base for a new spell, you get a truncated data error.

To reproduce this issue, simply create a new spell using the SpellID 205 as a base for it and you will get the error for RealPointsPerLevel. (You can test and change the value of DamageMultiplier and EffectBonusMultiplier for this spell and try to copy and you will be able to reproduce the two others errors)

I am using the lastest version of the Editor (1.8.2) in 64bits and have the French locale.

Import Spell.DBC even though table is full

The spell editor allows you to click "Import Spell.dbc to MySQL" even though the table in the database is not empty.

It will show a message, stating that the table appears empty, asking the user whether they wish to fill it or not. Clicking continue will result in a mySQL error, leaving the user clueless that they have to truncate the table first.

bad column

image
Hi, i see this when i logged on my mysql Trinity Core server.. but i dont know how to fix it..

it doesn't open anything

When the dialog open up i'll put the name of the dbc in my case spell.dbc when i'll put this it says that can't open the file

Editor thinks Duration Index ID 21 is too large/small for an Int32 [bug]

This may actually be related to the issue someone opened 3 days ago.

If I change the duration index to ID 21, save, close the editor, and then come back to it later, the "Value was too large or too small for an Int32" error tends to appear. I'm not FULLY certain what triggers it in this case, but it might actually be the tooltip tag trying to call the value, because I just tested it on spell 696-Demon Skin (Rank 2). I had to actually edit the duration index in the dbc itself for the editor to allow me to edit the spell, and all I did was remove the duration part of the tooltip and set the duration index to ID 21 again. Saved, closed, reopened, and it allowed me to select the spell. So I'm not certain if it's just the tag, or some kind of variable I'm not aware of, but it's DEFINITELY related to the duration.

Spell save doesnt work

I update the 1.4.5 version to the new 1.4.6 version. Now i modify a spell and click on "Save spell change" button. If i reload the modify spell then my changes are lost. Version 1.4.5 working.

Crash when selecting a spell and clicking on Icons button

Hi,

I am using your software with the TrinityCore 3.3.5a and I am having some problems with the spell icons. I was able to successfully load the spell.dbc database into the SQL Lite, however whenever I select a spell and click on the "Icon" button of the interface, I get an unhandled exception saying this: "File could not be found: Icons\Interface\Icons\Spell_Frost_IceStorm.blp"

The call stack is below:

SpellEditor.exe!SpellEditor.MainWindow.HandleErrorMessage(string msg) Line 133	C#
SpellEditor.exe!SpellEditor.Sources.DBC.SpellIconDBC.UpdateMainWindowIcons(double margin) Line 148	C#
SpellEditor.exe!SpellEditor.Sources.DBC.SpellIconDBC.LoadImages.AnonymousMethod__0() Line 91	C#

I've checked the folder from which I am running the program and it doesn't have an Icons\Inteface folder. I am not sure how to get it or generate it. Could you help me?

List spells recursively rather than listing all at the same time

The program load time is really slow due to listing all icons and spells at the same time creating a huge list. Add a on scroll event to load spells from the last loaded item and create a new config item to set how many items are loaded / session.

SELECT * FROM $DATABASE.$TABLE ORDER BY ID ASC LIMIT $LAST_ITEM, $ITEMS_TO_LOAD;

this should improve the loading time a little

Latest version BUG SQlite

so i tried using the latest version, seems when you are in game it will use the valus on the tooltips that you use in the editor.

Lets say i want the paladin talent Hammer of justice, instead of saying it will decrease the cooldown with 10 seconds it will say 10000 seconds. While it decreases the cooldown by 10 seconds.

Lets say we have the Talent Improved Righteous Fury (Paladin talent, which is the one above too)
it will say

"While Righteous Fury is active, all damage taken is reduced by 2/%"
while it should say
"While Righteous Fury is active, all damage taken is reduced by 2%"

And it does this to all talents, seals etc.

Everything that uses a value or % in stat increase or damage.

Like for Seal of Righteousness it will say

"Fills the paladin with holy spirit for 30 min, granting each meele attack $ additional Holy damage. Only one Seal can be active on the paladin at once.

Unleashing this Seal's Energy will cause 2652 Holy damage to an enemy.
"
Now the problem with that is that it should give you a number instead of a symbol "$"

and so on, you get it.

I am trying to modify MySQL for sqlite. I need help

hello. @stoneharry.
Because of the use of the editor to open an MySQL service, there is a little inconvenient.
so I am trying to modify the MySQL sqlite. to make the program does not need to rely on the MySQL can work normally. The current editor has been able to read the spelldbc data to the database.
Can generate tables.
Editor can also browse spell information.
However,when the output of spell.dbc there are some mistakes I couldn't resolve.
And SpellDescriptionGen will go wrong (I temporary note the SpellDescriptionGen)
And some unexpected mistakes.
I want to know if you think SQLite is a feasible change? If possible, I hope to get your help. Thank you.
I have to change my push to my github. if you have the time I hope you can help look now.

I hope you can understand what I said above.I will try my best to improve my English. - -!

Icon Issue

If i try open my custom icons it load like 90% and crash!

Stuck (looping) on loading spells & creature type corrupts

Release Build 1.4.8:

Polymorph (Corrupts Target [Creature Types] in MISC & marks as giants) must re-enter flags then save
Health Funnel (Stuck on opening spell wont load & stuck in loop) must force close [x]
Life Tap (Stuck on opening spell wont load & stuck in loop) must force close [x]
Bloodrage (Stuck on opening spell wont load & stuck in loop) must force close [x]
Probably more with same issue, these spells load in some older versions.

Saving stacks up & becomes slower after each save.

Messages when completing an action

Would be nice to have a success/error message after saving a spell something similar to the one you receive once a new spell is created. Sometimes I have to manually check in DB or refresh the program to make sure that changes were saved.

Can't read mydbc

i'll put the dbc in the release folder i put the name of the file "Spell" and "Spell.dbc"
And doesn't open anything ._.

Updating Text/Mechanic

When i open the Editor and click in some spell, it stuck in a infinity loading screen, sometimes "Updating text control's" and sometimes "Updating category & dispel & mechanic"

thank you :)

Importing error

When I attempt to import a clean dbc

i get this error:

image

Any ideas what is wrong?

Support for the localization of the interface

Although we can clone it and modify it then compile to native language ,if provide a Interface maybe cool and well!~we can more convenient merge code.
for example you add a folder:/loc/ ,we put zhcn.js,zhtw.js(or zhcn.ini) .
in UI we can easy to change language.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.