poison.2da contains a list of poisons used with EffectPoison.
How Poisons Work
You can't be poisoned if you're already poisoned.
EffectPoison has a 2 stage effect:
- When first applied a fortitude save vs. Poison is carried out against the 2da DC value. If passed the effect is removed instantly. If failed three things occur:
- The script file "Script_1" will run instantly
- A new EffectAbilityDecrease effect, of the same subtype, duration, creator and spell ID if applicable is created and applied using the roll of ability damage from the 2da. This is not linked to the main poison effect, and can be blocked as normal by immunities.
- A change to the running poison effect values for the check done in 60 seconds is setup. This includes many values for "_2" loaded
When 60 seconds has passed:
- Apply the payload values stored in the effect; ie a second EffectAbilityDecrease is generated and applied, from the previous rolled value, and the script is run.
- Remove the poison effect (but leave the ability damage) regardless of the saving throw
On Hit: Poison
This is a simpler poison effect that does a single fortitude save vs. Poison that does a hardcoded 1d2 ability damage, then a secondary one at the same DC for the same amount of damage. The effect type is Magical, the duration is Permanent, the creator the creature attacking with the On Hit: Poison effect.
Due to the removal of the poison effect after 60 seconds (regardless of saves) it is still relatively powerful, and in a larger dungeon will inflict so many ability penalties of that type it can push the value 3 very quickly.
It can be of any ability value, and the ID in GetEffectInteger(effect, 0) is always the integer "2" which matches POSION_BLADE_BANE. However the save DC's are always even while POSION_BLADE_BANE has a DC of 15, so you can see if it is from the on hit property by testing GetEffectInteger(effect, 0) == 2 and GetEffectInteger(effect, 3) != 15.
Tracing Ability Damage Cause by Poison effects
To remove poison and only the ability damage from poison it is quite difficult if it is from a On Hit: Poison - because the effects created by the engine cannot be tagged, have no spell ID nor can you safely assume ability damage caused by the engine (ie no tag) isn't just the On Hit: Ability Drain property.
This is likely why Neutralise Poison and Remove Disease spells in NWN just remove all ability damage penalties.
|Column||Example Contents||Valid Values||Description and Notes|
Human readable label. The label must be a continuous line of text - e.g. BrokenTable - unless bracketed by quotation marks - e.g. "Table, Broken".
Sadly this is not used by the toolset.
|Name||4689||TLK line reference||Toolset and game reference for the disease.|
|Save_DC||16||Integer||The save DC used for both poison saves, and the DC to remove with a healing kit.|
|Handle_DC||8||Unused||Unused by the game. Likely intended to be part of the Heal checks, which instead just use Save_DC|
|Dice_1||6||Positive Integer||The dice size used to roll the ability damage if first save is failed (eg 6 = d6)|
|Dam_1||3||Positive Integer||The amount of dice rolled for the ability damage if first save is failed (eg 3 = 3 dice)|
|Default_1||STR||STR, DEX, CON, INT, WIS, CHA||Ability score for first ability damage|
|Script_1||NW_S0_1ShadEss||Script resref||Script to run if the first save is failed|
|Dice_2||6||Positive Integer||The dice size used to roll the ability damage if second save is failed (eg 6 = d6)|
|Dam_2||3||Positive Integer||The amount of dice rolled for the ability damage if second save is failed (eg 3 = 3 dice)|
|Default_2||STR||STR, DEX, CON, INT, WIS, CHA||Ability score for second ability damage|
|Script_2||NW_S0_2BluWhinn||Script resref||Script to run if the second save is failed|
|Cost||0.68||Float||This should influence the cost of the On Hit: Poison monster ability, although this of course is pointless since monster abilities are on creature items that don't have value. Needs further investigation.|
|OnHitApplied||0||Unused||While this has existed since the NWN Beta this is entirely unused by the base game engine. However the Blade_Bane has a 1 for it, which is as explained the only ID used for it in the effect integers. Weird. Why did they otherwise use row 2?|
|VFX_Impact||VFX_IMP_POISON_S||Unused||Unused by the engine, the VFX applied is listed in Hardcoded VFX References.|