iprp_saveelement.2da is used to specify specific save bonuses for ItemPropertyBonusSavingThrowVsX and ItemPropertyReducedSavingThrowVsX.
2da Missing Items
There are 6 items you can re-enable since they reflect valid saving throws (The game actively has for usual effects and script functions). These are Traps, Spells, Law, Chaos, Good and Evil.
The reasons the Law, Chaos, Good and Evil may not have been enabled is, essentially, no spell uses those saving throw types (So they'd functionally do nothing), but Spells and Traps have valid saves. Note the D&D rules some spells have multiple descriptors, such as Holy Word which is both Sonic and Good. Sometimes this is covered (Mind-Affecting affects Fear type saves for instance). Many Good and Evil spells were not implemented in the game (Good and Evil domains were not added where most of the spells come from).
Note Backstab and Illusion will do nothing.
The 2da rows are hardcoded but these are helpfully already labelled. Not having a TLK reference means it won't load it properly. To fix it use this example fixed file using existing valid TLK entries.
2DA V2.0 Name NameString Cost 0 5152 Universal 1.25 1 1027 Acid 0.4 2 **** Backstab 0.4 3 1029 Cold 0.4 4 5154 Death 0.75 5 1006 Disease 0.5 6 5155 Divine 0.4 7 1030 Electrical 0.4 8 993 Fear 0.4 9 1028 Fire 0.5 10 **** Illusion 0.5 11 5157 Mind-Affecting 0.75 12 5158 Negative 0.75 13 879 Poison 0.5 14 5159 Positive 0.4 15 2202 Sonic 0.4 16 5563 Traps 0.4 17 10566 Spells 0.75 18 5621 Law 0.4 19 5612 Chaos 0.4 20 5618 Good 0.4 21 5616 Evil 0.4
2da Hardcoded Limitations
Even if more entries are added the engine will essentially ignore them. If you add new rows they might appear and be selectable but they'd only do something if there were scripted elements. So adding a saving throw vs. "Fairy Spells" you'd have to manually code it in somehow (or use NWNX perhaps) if the game loads it at all.
To be honest adding a new item property in NWN:EE is a lot easier with ItemPropertyCustom (if scripted) or in the toolset, and more reliable/safer, and you could even name it the same way for the user.
It is a shame this list doesn't match the default SAVING_THROW_TYPE_* constants allowing manual additions (if the effects to increase/decrease and the saving throw functions also accepted the increased numbers).
2da Columns
Column Label | Example | Valid Values | Description and Notes |
---|---|---|---|
Name | 1028 | Dialog.tlk string reference | Shown in toolset and in game. If not present the line is considered invalid and will not be allowed in the toolset. |
Label | Fire | Human readable string | Unused by the game just a label |
Cost | 0.5 | Float | See parent page on how costs are calculated |
2da Contents
2DA V2.0 Name NameString Cost 0 5152 Universal 1.25 1 1027 Acid 0.4 2 **** Backstab 0.4 3 1029 Cold 0.4 4 5154 Death 0.75 5 1006 Disease 0.5 6 5155 Divine 0.4 7 1030 Electrical 0.4 8 993 Fear 0.4 9 1028 Fire 0.5 10 **** Illusion 0.5 11 5157 Mind-Affecting 0.75 12 5158 Negative 0.75 13 879 Poison 0.5 14 5159 Positive 0.4 15 2202 Sonic 0.4 16 **** Traps 0.4 17 **** Spells 0.75 18 **** Law 0.4 19 **** Chaos 0.4 20 **** Good 0.4 21 **** Evil 0.4