This controls the diseases available to use on On Hit: properties ItemPropertyOnMonsterHitProperties and ItemPropertyOnHitProps, and with EffectDisease.
Disease Functionality
You can only have one disease effect on at once. Diseases have set DC's (even scripted ones) defined in this 2da. Note the applied ability damage effects mirror the parent disease effect, which is recommended to apply as Supernatural so it survives dispel magic/resting.
Note that diseases function some more radically than their PnP counterparts (increased amounts of ability score damage in quicker amounts of time), but also they are easier to remove with Healing Kits and spells.
There are several stages to a disease:
Initial Application
It checks if the target is dead, not a creature, immune to disease, or already has EFFECT_TYPE_DISEASE, the effect is not applied.
If it can be applied then it does a fortitude saving throw against First_Save DC. If the creature passes, the disease is not applied and is removed.
If it fails then floaty text 66533 appears ("Disease: Incubation Started"), and visualeffects.2da line 51 plays on the creature (VFX_IMP_DISEASE_S).
The disease effect stays on and gets a timer set for when the incubation initial save occurs - using Incu_Hours with essentially a HoursToSeconds call.
Incubation Period Initial Save
After Inc_Hours (in-game hours) time has passed, a fortitude save occurs using Subs_Save DC. visualeffects.2da line 84 plays on the creature (VFX_IMP_POISON_S).
If saved, then the floaty text 66536 occurs ("Disease: Ability Damage Resisted"), and:
- Resets the timer to be 24 hours later (1 day)
- Sets a value to say "save has been resisted once" so the 24 hour script will now fire.
If failed, then the Payload happens immediately.
In either case 24 hours is added to the timer for the disease incubation for the 24 Hour Check.
24 Hours Check
A fortitude save occurs. again it uses Subs_Save DC. visualeffects.2da line 84 plays on the creature (VFX_IMP_POISON_S).
If saved, there are two cases:
- If we have not saved at all yet, then the floaty text 66536 occurs ("Disease: Ability Damage Resisted"), and:
- Resets the timer to be 24 hours later (1 day)
- Sets a value to say "save has been resisted once" so the 24 hour script will now fire.
- If saved twice at this point then the disease is removed with floaty text 66537 ("Recovered From Disease"). No ability damage or other effects are removed.
If failed, then the Payload happens immediately but instead of the End_Incu_Script it fires the 24_Hour_Script.
In either case the timer is reset as noted at the end of Payload.
Payload
Once the payload is fired it does floaty text 66535 ("Disease: Ability Damage Applied").
The payload consists of 4 potential items:
- Between 0 and 3 amounts of EffectAbilityDecrease applied using the Dice_X, Dam_X of Type_X, eg: if Dice_1 is 4, Dam_1 is 2 and Type_X is 0 it does this:
- EffectAbilityDecrease(ABILITY_STRENGTH, d4(2));
- These effects have the creator set to the parent disease, and the same subtype (eg; supernatural) and spell ID for easier identification
- They are not linked together and have no visuals applied
- Script End_Incu_Script is fired on the creature if the save was failed at the end of the incubation period
- Else script 24_Hour_Script fires on repeated failed saves.
- OBJECT_SELF is the person the disease is applied to, which has some odd effects for any effects created in the script - ie that creature applies effects to itself.
- The script otherwise is just a script. There is no spell ID/caster level for it.
Once the payload has fired the timer is reset for 24 hours again - go back to 24 Hours Check above. This means the disease payload can trigger multiple times until 2 successful saves are made, or it is removed (Healers kit, spells that remove disease etc.).
Resting with Disease
This simply skips the timer and instantly applies an incubation event, with a resulting save and payload. The timer is again reset at this point.
2da Columns
Column | Example Contents | Valid Values | Description and Notes |
---|---|---|---|
Label | Blinding_Sickness | Text | 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. |
First_Save | 16 | Integer | The initial save DC. Usually higher than the second, if saved then doesn't apply the disease at all. |
Subs_Save | 16 | Integer | The subsequent save DC. Usually lower than the first. If saved twice, the disease is removed/nothing happened. If failed once it will apply the payload. This is also the DC of the heal check needed to remove the disease with a healing kit. |
Incu_Hours | 1 | Integer | The Incubation Hours, amount of in-game hours before the subsequent incubation saves. |
Dice_1 | 4 | Integer or **** | EffectAbilityDecrease Payload dice - size of dice. EG: 4 is xd4 Use **** to not have this payload apply. |
Dam_1 | 1 | Integer or **** | EffectAbilityDecrease Payload amount of dice - eg; 1 is 1dx Use **** to not have this payload apply. |
Type_1 | 0 | Integer or **** | EffectAbilityDecrease Payload ability type. Use the nwscript constants for ABILITY_*, ie: int ABILITY_STRENGTH = 0; int ABILITY_DEXTERITY = 1; int ABILITY_CONSTITUTION = 2; int ABILITY_INTELLIGENCE = 3; int ABILITY_WISDOM = 4; int ABILITY_CHARISMA = 5; Use **** to not have this payload apply. |
Dice_2 | 3 | Integer or **** | Second payload dice size. Use **** to not have this payload apply. |
Dam_2 | 1 | Integer or **** | Second payload dice amount. Use **** to not have this payload apply. |
Type_2 | 2 | Integer or **** | Second payload ability damage type. Use **** to not have this payload apply. |
Dice_3 | 6 | Integer or **** | Third payload dice size. Use **** to not have this payload apply. |
Dam_3 | 2 | Integer or **** | Third payload dice amount. Use **** to not have this payload apply. |
Type_3 | 2 | Integer or **** | Third payload ability damage type. Use **** to not have this payload apply. |
Type | EXTRA | Not used by the game (see notes above, all effects applied follows the parent effect type). | |
End_Incu_Script | NW_S3_SlaadEgg | **** or script resref | **** for no script or the script to run once the payload is delivered only for the first incubation period. |
24_Hour_Script | NW_S3_BlindSick | **** or script resref | **** for no script or the script to run on any failed saves after 24 hours intervals. |
2da Contents
2DA V2.0 Label Name First_Save Subs_Save Incu_Hours Dice_1 Dam_1 Type_1 Dice_2 Dam_2 Type_2 Dice_3 Dam_3 Type_3 Type End_Incu_Script 24_Hour_Script 0 Blinding_Sickness 4689 16 16 1 4 1 0 **** **** **** **** **** **** EXTRA **** NW_S3_BlindSick 1 Cackle_Fever 4690 16 16 1 6 1 4 **** **** **** **** **** **** EXTRA **** **** 2 Demon_Fever 4691 18 18 1 6 1 2 **** **** **** **** **** **** SUPER **** Nw_S3_DemonFev 3 Devil_Chills 4692 14 14 1 4 1 0 **** **** **** **** **** **** SUPER **** **** 4 Filth_Fever 4693 12 12 1 3 1 3 3 1 2 **** **** **** EXTRA **** **** 5 Mindfire 4694 12 12 1 4 1 3 **** **** **** **** **** **** EXTRA **** **** 6 Mummy_Rot 4695 20 20 1 6 1 2 **** **** **** **** **** **** SUPER **** **** 7 Red_Ache 4696 15 15 1 6 1 0 **** **** **** **** **** **** EXTRA **** **** 8 Shakes 4697 13 13 1 6 1 0 **** **** **** **** **** **** EXTRA **** **** 9 Slimy_Doom 4698 14 14 1 4 1 1 **** **** **** **** **** **** EXTRA **** **** 10 Red_Slaad_Eggs 4699 17 17 1 6 2 1 6 2 0 6 2 2 EXTRA NW_S3_SlaadEgg **** 11 Ghoul_Rot 4700 18 18 1 6 1 2 6 1 0 **** **** **** SUPER **** **** 12 Zombie_Creep 4701 15 15 1 4 1 2 4 1 1 **** **** **** SUPER **** **** 13 Dread_Blisters 4702 13 13 1 4 1 2 4 1 5 **** **** **** SUPER **** **** 14 Burrow_Maggots 4703 17 17 1 4 1 3 4 1 4 **** **** **** SUPER **** **** 15 Soldier_Shakes 4704 25 25 1 **** **** **** **** **** **** **** **** **** **** **** Nw_S3_SoldShake 16 Vermin_Madness 4705 13 13 1 1 1 3 1 1 4 1 1 5 EXTRA **** ****