Note: This is one of the only 2da files you can add additional valid columns - specifically columns that are like "Bard, "Cleric" which list the spell level of the entry for spell books, referenced in classes.2da in NWN:EE.
|Column Name||Type||Example value||Default Options||Any Known Limitations||Notes and Usage|
|Label||Text||Acid_Fog||N/A||Not used by the game as such, a human-readable name|
|an entry in dialog.|
|TLK or a custom TLK, shows up in game|
|IconResRef||Text||is_AcidFog||Unknown||Icon name, minus the .tga extension|
|School||Text||C||A, C, D, E V, I, N, T|
spellschool.2da values, but really just hardcoded
G is unused would need testing. Even monster abilities have this set (usually just to Evocation, V)
To test: Having additional spell schools or this as invalid
|Range||Text||L||P, T, S, M, L||ranges.2da values||To test: Is the ranges.2da references hardcoded? can more be added?|
|VS||Text||VS||V, S, VS||Only V (Verbal) and S (|
|Somatic) supported||Verbal or|
|Somatic components needed. Verbal needs the caster to be able to speak (Eg; not silenced, deafened imposes 20% failure check).|
|Somatic requires them to be able to use their arms (eg; not being|
|Paralyzed) and is affected by armour failure chance.|
|MetaMagic||Bitwise Hex Integer|
Recognized values are:
None = 0x00
Empower (1) = 0x01
Extend (2) = 0x02
Maximize (4) = 0x04
Quicken (8) = 0x08
Silent (16) = 0x10
Still (32) = 0x20
(see also Notes and Usage)
Some of this happens entirely in engine (Still Spell, Silent Spell and Quicken Spell).
The remaining (Empower Spell,
Maximize Spell, Extend Spell) are captured in the spell script
To calculate the cost of multiple allowed Meta Magic feats, add the decimal values together. For example:
0x38 = Quicken+Still+Silent
0x3F = All metamagics
|TargetType||Bitwise Hex Integer|
Recognized values are:
self (1) = 0x01
creature (2) = 0x02
area (4) = 0x04
items (8) = 0x08
door (16) = 0x10
placeable (32) = 0x20
trigger (64) = 0x40
(see also Notes and Usage)
This primarily affects players - monsters seem to be able to ignore it, causing some "interesting" issues.
Some standard spells also are problematically miscoded, eg; having a Self Only target type, but a range higher than Personal.
To target more than one type, add the decimal values together.
Note: ALL spells must include the decimal value for Items (8) - 0x08 - in their calculated value or else Item Crafting will not work.
|ImpactScript||Text||nw_s0_light||Script name limit (16 characters)|
Script name minus the .nss extension that fires on the impact. Will only fire when successfully cast - ie; not interrupted by a concentration failure.
Note, Bioware naming convention reserves S0 for spell scripts, S2 for feat abilities, and S3 for creature abilities.
**** denotes the spell is unusable by that class.
|Integer, 0+ - unknown maximum|
The only one that is required is Innate. The defaults are 0 (cantrips) through 10 (Epic spells). However the 10 value won't show up in usual spell books so would only affect cheat-cast or feat-cast things. 10 is likely the usual maximum for the game anyway, due to how "talents" work.
You can add more columns (anywhere in the 2da, but usually at the end) to add more spellbooks. For instance you could create one headed "Assassin" and have Assassin spells, with the relevant changes in classes.2da allowing that spellbook to be used.
Note: The spell lines for Dispel Magic spells are hardcoded into the engine assuming certain spell levels (the "Innate" column) for such things like Counterspelling.
|ConjTime||Integer (miliseconds)||1500||Usually 1500 or 900 for normal spells, 1 or more for abilities||None|
The amount of time spent "Conjuring" the spell in milliseconds, applying the "Conj" animations, sounds, and VFX. Once this number is passed the CastTime and Proj fires if appropriate.
For spells this is the duration that can cause concentration checks. The default is 1500 but 900 is used for spells like Phantasmal Killer which has a slow "projectile".
Monster abilities vary (and don't matter as much - no concentration!) eg; gazes, bolts are 500, auras are 1, cones are 100 or 500. Dragon breath is 2000.
I think the number is halved for hasted spells (needs testing).
Using values above 2000 may cause issues from past experience. Game expects people to cast spells within 3 seconds.
|ConjAnim||Set values||hand||hand or head||hand or head||Hands usually are spinning hands around, head means spinning hands over the head. This is where the "Hand" visual will be attached.|
|ConjHeadVisual||Model resref||vco_mehedelec01||Head based conjuring visual effect (attached to the head node). Resref of visual effect model. "vco" = "visual conjure"|
|ConjHandVisual||Model resref||vco_smhanfire01||Hand based conjuring visual effect (attached to the hand node). Resref of visual effect model. "ConjAnim" alters where hands are by default.|
Ground based conjuring visual effect (at the casters feet). Resref of visual effect model.
Higher level spells tend to have this to differentiate them from lower level versions.
|ConjSoundVFX||Sound resref||sco_mehannatr01||Sound used when conjuring. This is useful to always have because non-PC races don't get casting chants (next two lines).|
Sound used if the caster is Male (or not-Female) and a base race. Bioware included variants for "high" and "low" magic, of each spell school.
vs_chant_XXXX_YZ - XXXX = 4 letters of school, Y = "l" (low) or "h" (high) and Z = "m" (male) or "f" (female)
|ConjSoundFemale||Sound resref||vs_chant_ench_lf||Sound used if the caster is Female and a base race. As above variants are included for high/low magic and each school.|
|CastAnim||Set values||area||area, attack, out, self, touch, and up||area, attack, out, self, touch, and up||Animation to use for the casting. Most are obvious, and fit for instance "out" being a cone spell (Holding hands where the cone will appear).|
|CastTime||Integer (milliseconds)||1000||Usually 1000, but 1700 for cones|
Milliseconds holding the CastAnim pose. Most are 1000 (1 second).
Cones benefit from more "hold out hands" time to match the spell visuals, although 1700 pushes these spells over a 3 second cast time which is odd.
|CastHeadVisual||Model resref||vca_dragbreath||Head based casting visual effect (attached to the head node). Resref of visual effect model. Occurs in the direction of casting. Example: Dragon Disciples Breath. "vca" = "visual cast"|
|CastHandVisual||Model resref||var_conefire||Hand based casting visual effect (attached to the hand node). Resref of visual effect model. Occurs in the direction of casting. Example: Cone spells. "var" = "visual area"|
|CastGrndVisual||Model resref||Ground based casting visual effect (at the casters feet?). Resref of the visual effect mode. No default Bioware spells use this.|
|CastSound||Sound resref||sar_conefire||Sound used when casting. This is mainly used to have the visual such as a cone match with an appropriate sound.|
|Proj||Boolean||1||0, 1||0 or 1 are accepted||Does this have a projectile? activates the next 5 columns.|
|ProjModel||Model resref||vpr_ectoacid01||Projectile visual effect (See ProjSpwnPoint for where it appears) "vpr" = visual projectile.|
|accelerating, spiral, linked, bounce|
The projectile type. Also note this can be altered using the parameter "nProjectilePathType" in ActionCastSpell functions, although several are missing from the parameter.
|ImmunityType||Text||Acid||This is entirely unused by the game and may just be a developer-left-in notes field or a pre-nwscript way of doing immunities|
|ItemImmunity||Boolean||1||0, 1||0 or 1 are accepted||If 1 it allows the spell to be immune on an item property|
|SubRadSpell1||Integer spells.2da line reference||The first spell on a radial, such as when Polymorph has different options available.|
|SubRadSpell2||Integer spells.2da line reference|
|SubRadSpell3||Integer spells.2da line reference|
|SubRadSpell4||Integer spells.2da line reference|
|SubRadSpell5||Integer spells.2da line reference|
|Category||Integer spells.2da line reference|
|Master||Integer spells.2da line reference|
The master of this spell if it is a subradial spell. It should be left blank if it is not a subradial spell.
Note: This is buggy, and some spells have it set even if they're not a radial spell (copy and paste errors on Biowares part!). This causes GetHasSpell to perform incorrectly, but the game still works correctly otherwise - very frustrating!
1 = spells
2 = creature power
3 = feats
4 = item power
Spells are always 1.
Note: Values higher than 4 are ignored.
|SpellDesc||Integer||113002||TLK entry||Can be an entry in dialog.TLK or a custom TLK, shows up in game|
|UseConcentration||Boolean||1||0, 1||0 or 1 are accepted|
This stops concentration checks for this ability. Usually all monster abilities.
Note that it does not stop attacks of opportunity.
If the caster has the "Can cast spontaneous spells" (usually only Clerics) this applies (usually only "Cure" and "Inflict Wounds" spells), and the spell is marked with a 1, then they can cast it and lose a different spell that is memorised of the same level.
Note: Domain spells memorised cannot be used to cast spontaneous spells.