Note: This page would be a hell to edit without formating it first, or the use of a wiki new-style table editor if that can be found.
NB: in what follows when we mention a "spell" it isn't necessarily a true spell, if it is the case it will be made explicit. It can be anything this 2da can implement: cast-spell item property, useable feat, racial capacity...
For specifics about spells, and monster abilities see Spells.
Useable feats, class-specific Abilities (Special Ability menu of the
palyer) or racial Abilities see Feats.
For item properties see ?ItemProperties,
if what you want are spell-like properties (useable from the item) iprp_spells.2da should contain all the info you need
besides this page.
We will use the mention True Spell Only for a column whose value only applies to Wizard, cleric etc spells or innate Monster spell-like abilities (those found in the toolset in the "cast spell" list). This generally means that for other features (feats and cast-spell properties in particular) this value is overruled in an other 2da, but not that you can leave the entry blank.
The spell resource file - spells.2da defines each of the spells, how it is cast, who can cast it, and a variety of other details. There are eight main parts to a spells.2da record.
Column | Description |
|
SpellID | The first, unnamed column. It serves as the Spell ID. It will be used to cross-reference this spell ressource in other 2das. It is returned by the GetSpellID() function in the associated spell script. |
|
Label | No other function than giving it a name for human use |
|
Name True Spell Only |
StrRef for the name of the spell: reference to dialog.tlk or
the custom tlk file for the module This will give a name to a true spell or monster ability only ; for an item-cast-spell-property or a feat for exemple, it will be overwriten by a column in the appropriate 2da |
|
IconResRef True Spell Only |
Name of the .tga file that will represent the spell icon. |
|
School | School of magic |
|
Range | Range of the spell |
|
VS | Verbal and somatic components of the spell. |
|
MetaMagic True Spell Only |
Defines which metamagic feats can be used on the spell. The
number is a bit flag setting and must be in hexadecimal format. The numbers need to be added together to get the final set of flags for the spell. Example: I want a spell that can be Quickened, Silent, Still, and Maximized. I would have 8(Quicken) + 16(Silent) + 32(Still) + 4(Maximize) = 60 total. Once you get the number you need to convert it into hex format. The easiest way if you use Windows is to use the calculator. Open up the Calculator program in Windows and under the View menu, switch to scientific mode. Make sure the round radio button is checked for Dec. Enter in your number and then change it from Dec to Hex; this is your hexadecimal number. Enter this number along with a 0x (just programmer’s notation that a number is in hexadecimal format) to the column. That is a 'zero' and not the letter Oh. So our example would be 0x3c. |
|
TargetType | This is the type of target the spell requires. Like the
MetaMagic
value,this is actually a binary flag system. You must enter the hex
code after adding up the values for all the targets you want to be able
to affect. This doesn't work too well for feat implementation prior to 1.33: this value tells when the script will actually fire, and the one in feat.2da (limited to target self and other), when the cursor is active. HotU promises to fix it |
|
?ImpactScript | The script that runs against the target of the spell |
|
Bard Cleric Druid Paladin Ranger Wiz_Sorc Innate True Spell Only |
The level of the spell for each class, if it can't be used by
that class then it is commented out with ****. Innate is for creatures that have it as a spell like ability. A lot of creature abilities are implemented as "innate spells". |
|
ConjTime True Spell Only |
Conjuration is the process of invoking the spell. The
conjuration time in milliseconds. Note: the Conjuration effects are executed before the Cast effects. |
|
ConjAnim True Spell Only |
This is for the character or creature invoking the spell and calls the appropriate animation so that the caster goes through the right motions. |
|
ConjHeadVisual | This is to add a visual effect over the head of the caster when invoking the spell. |
|
ConjHandVisual | This adds an effect to - or between - the caster's hands when invoking the spell. |
|
ConjGrndVisual | This adds an effect to the ground around the caster when invoking the spell. |
|
ConjSoundVFX | This is the sound effect that plays when invoking the spell. It is not the caster's voice but the energy crackles, moaning, etc. that plays in the background |
|
ConjSoundMale ConjSoundFemale |
These are the sound effects for the chanting that the caster does while invoking the spell |
|
CastAnim | The caster's pose after finishing the spell conjuration. Note: the Cast animations and effects occur after the Conjuration ones. |
|
CastTime | This seems to be how long in milliseconds the caster stays in the CastAnim pose |
|
CastHeadVisual | Not currently used for any spells |
|
CastHandVisual | These effects happen to the caster after the conjuration effects take place. An example would be the force rings that radiate from the casters hand after a magic missile spell or the cone of frost from a cone of cold spell |
|
CastGrndVisual | Not currently used for any spells |
|
CastSound | The sound played after the Conjuration |
|
Proj | Is there a projectile model that moves between the caster and the target in the spell |
|
ProjModel | The model that moves between the caster and the target |
|
ProjType | The physics of the projectile |
|
ProjSpwnPoint | Where the projectile starts at from the caster |
|
ProjSound | The sound of the projectile |
|
ProjOrientation | Which direction to orient the projectile in |
|
ImmunityType | Type of immunity needed to ignore the effects of this spell. * This column is not used by the game * |
|
ItemImmunity | Are items immune to being affected by this spell? |
|
SubRadSpell1-5 | These are for spells that have multiple ways of casting them.
The
values in these columns are the index value of "sub" spells that will
come up in another radial menu. Spells like Polymorph Self or
Shapechange where you can pick a type of creature to turn into, or
Shadow Conjuration where you can pick the spell to emulate. The maximum number of choices you have for a spell will be 5. The people who are planning on implementing radical new Polymorph spells where you can turn into all sorts of animals may want to look at this. |
|
Category | Possible values are equal to the various TALENT_CATEGORY_*
constants in nwscript.nss, and are also listed in category.2da that
this entry appears to reference (however category.2da has only one
column besides the index, so its function is unclear). It is used in various AI scripts to select appropriate abilities for creatures or NPCs to use. |
|
Master | Used in conjunction with the SubRadSpell columns. For a
subspell this is the parent spell that called it. The actual effect is that the uses-per-day of the master spell is reduced by one when this spell is cast, along with that of all the other subspells. Generally all sub-spells will want this and no others will. Subspells without this seem to work, at least last time I checked, and it might have an interest, but it comes without waranty, since Bioware never uses it this way. |
|
UserType | Type of capacity this line actually implements I can't remember any engine use for this entry other than a cosmetic one in the toolset, but put the appropriate value anyway. |
|
|
||
SpellDesc True Spell Only |
StrRef for the description of the spell: reference to dialog.tlk or the custom tlk file for the module |
|
UseConcentration | Determines if a Concentration check is needed to successfully cast the spell if interrupted (e.g., if hit during combat) |
|
SpontaneouslyCast | This is for the Clerics spontaneously casting. Only Cure/Cause wounds should have this. |
|
AltMessage | This is the strref for the message in dialog.tlk that is displayed to people other than the caster, for example "SoAndSo smites evil". |
|
HostileSetting | Should a NPC consider this an attack if they are affected by the spell? |
|
FeatID | The ID of the feat this "spell" implements. There are a few feats that are activated like spells, and you can make your owns. Actually I'm pretty sure this reference is of no use to the engine, its the other way around that matters most (the reference from ?feat.2da to this 2da). However do put the correct one. It will makes things easier for you, and it could be usefull to get this data from the ?ImpactScript (there is no function doing it for now, except for Get2daString, but it might change one day). |
|
Counter1 | Reference to the first counterspell |
|
Counter2 | Reference to the second counterspell |
|
HasProjectile | HotU specific field, introduced to optimize performance. Controls if a projectile information needs to be sent to each client that can see the spell being cast. |
|