DBC 6xx Creation or Modification of spell

dokuro

Veteran Member
Verified Member
31
2020
8
Location
Paris
Creating a tutorial on the creation of spell is a little utopian since the combinations are very numerous, so I can only take over the wiki and centralize them on one page.



1) To create a spell with DBx I recommend following these few rules:

Never delete a line or modify an index number of an original spell
Always keep backups before modification
As in smartAI pay attention to the time delay for some Aura: some aura for example can last 10s but launch a regen every 2s, this time is given in thousand seconds, forgetting to fill in the right box is equivalent to defining it as launching a regen every 0s. I do not make you a drawing especially if several mobs cast this spell.
Even for a creation I recommend you not to start from scratch but to duplicate a similar spell and to modify this copy, it is the best way not to forget a secondary variable / column (all the spells do not use the same variables / column)
In order not to make an overly complicated tutorial that would be 25 pages, I will not go into details. Refer to the wiki for more information on dbc.

2) For information, the DBx contain 2 types of variables:

A value or a text, for example an amount of damage or the name of a spell
A pointer to another DBx, in this case you will find in this column the ID of this pointed DBx (indicated by the name of the column)


3) The DBx essential to be recognized by the server and the client: these are the essential DBx or it is mandatory to have an entry

spell.dbc: this is the main dbc which serves as a summary

spellmisc.dbc: this dbc is an extension of spell.dbc, I suppose that blizzard separated this dbc from spell.dbc in order to confuse the tracks

spelleffect.dbc: this dbc defines what this spell, damage, regen, morph, etc. will do


spell.dbc:

ID: must be unique
Name_lang: The name of the spell as it appears in the game
Description_Lang: what is displayed when you pass the exit on its icon
AuraOption (optional): this column points to SpellAuraOptions.dbc and is used for example for a spell that remains active to define the number of times it can be active.
Cooldowns (optional): this column points to SpellCooldowns.dbc and defines the cooldown of the spell
EquippedItemID (optional): this column indicates the equipment necessary to use this spell (weapon with one hand, two hands, dagger, etc.)
ShapeshiftID (optional): this column points to SpellShapeshift.dbc and defines that this spell needs the pointed changeform of SpellShapeshift.dbc to be usable.
MiscID (essential): this column points to Spellmisc.dbc and must be created or exist, for personal convenience I use the same ID for a custom spell as for the ID of Spellmisc.dbc

spellmisc.dbc:

ID: must be unique
Attribute_x (optional): Defines flags for a spell like for example, must be from the front, deactivate a changeform, must be camouflaged, etc.
CastingTimeIndex (optional): points to SpellCastTimes.db2 and defines the time to cast a spell
DurationIndex (optional): points to SpellDuration.db2 and defines the lifetime of the spell
Range (optional): points to SpellRange.db2 and defines the action distance of the spell
Speed (optional): Can play / bug the animation of the spell
SpellIconID (optional): Point to spellicon.dbc, I recommend extracting the client with CascExplorer to easily find an icon and therefore its name is present in spellicon.dbc. a personal icon can be placed in the client \ Interface \ Icons
ActiveIconID (optional): An alternative icon for example when an aura is active
ShoolMask (optional): type of magic: Physical = 1, Sacred = 2, Fire = 4, Nature = 8, Frost = 16, Shadow = 32, Arcane = 64

spelleffect.dbc: the main dbc which is used to define what does the spell

The 3 main columns:

Effect: defines the type of action as 2 = spell damage, 17 = weapon damage, 6 = aura (important option which indicates that the spell acts over time, in this case Effect aura, EffectAudaPeriod must be entered), 32 = launch a spell in parallel, ...
SpellID: the ID of the spell
EffectIndex: each spell can have several effects, each effect has its own EffectIndex

Secondary columns:

EffectAura: Complementary to Effect 6 defines the type of action for an aura ie a spell that lasts a certain time
EffectAuraPeriode: in mili second, indicates that EffectAura will run every x mili second
EffectBasePoint: a value for the effect, for example a healing spell with an EffectBasePoint = 100 will heal 100 pv or 100% depending on the effect, independent of lvl
EffectChaintargets: the number of target
EffectMechanic: for some spell indicates that this spell causes fear, stun, etc.
EffectMiscValue: set for certain spell
EffectRadius_1: indicates a range of action of the spell (dependent on the implicit_target column)
EffectRadius_2: generally used for the size of a selection circle
EffectRealPointsPerLevel: similar to EffectBasePoint but depending on the level. I advise to also fill in EffectBasePoint so as not to have spells that type 1 at lvl 1
EffectTriggerSpell: spell launched in parallel
ImplicitTarget_1: indicates the target friend, enemy, pet, zone, etc. Some spells may require ImplicitTaget_1 & ImplicitTaget_2 for example a certain radius on the turn of an enemy


4) Secondary DBx: necessary to enter, for example, a duration or a consumption

SpellAuraOptions.dbc: number of times an aura type can be applied
SpellPower.db2: consumption of mana, rage, combo, etc
SpellXSpellVisual.db2: animation and visual of a spell
SpellIcon.dbc: spell icon
SpellCooldowns.dbc: cooldown
SpellLevels.dbc: plays on the effects of a spell according to a level by defining a basic level, mini / maxi which will overplay the player's lvl
SpellDuration.db2: lifetime of the spell
SpellRange.dbc: scope of the spell
SpellRadius.db2: radius of the spell
SpellCastTimes.db2: time to cast a spell

Credit to : Stitch from Aquayoup
 
Last edited by a moderator:
Top