cls_savthr_xxx.2da defines the saving throw progression of classes via. being defined as SavingThrowTable in classes.2da.
While the file defines levels 1-60 after level 20 the epic saving throw progression is used. It is probable that the 1-60 was the original OC where monsters could go above level 20 and epic levels were not clearly defined. Epic progression of saving throws starts at +0 for level 21, up to +10 for level 40.
To do: Work out what creature saving throws are post-level-40 and how they're calculated (ie what classes of a 30 Wizard / 30 Rogue would it take for the first 20 levels? Presumably the 1st class slot).
Existing 2da Files
There is usually no need to write your own file, just use an existing one, since all the combinations of Fortitude, Will and Reflex High/Low are available.
There are two types of progression, High and Low:
- High: Floor( (Level / 2) ) + 2, eg: level 7 is Floor(7 / 2) + 2 = Floor(3.5) + 2, so floored to 5.
- Low: Floor(Level / 3), eg: level 7 is Floor( 7 / 3 ) = Floor(2.333), so floored to 2
Fortitude | Reflex | Will | Files | Default Classes |
---|---|---|---|---|
low | low | low | cls_savthr_cons | Construct, Commoner |
HIGH | low | low | cls_savthr_barb cls_savthr_fight cls_savthr_pal cls_savthr_rang | Barbarian Fighter, Humanoid, Giant, Vermin, Blackguard, Purple Dragon Knight Paladin Ranger |
low | HIGH | low | cls_savthr_rog | Rogue, Shadowdancer, Assassin, Weapon Master |
low | low | HIGH | cls_savthr_sorc cls_savthr_wiz | Sorcerer Wizard, Aberration, Elemental, Undead |
HIGH | HIGH | low | cls_savthr_wild | Animal, Beast, Magic Beast, Arcane Archer, Champion of Torm, Shifter |
HIGH | low | HIGH | cls_savthr_cler cls_savthr_dru | Cleric, Dwarvern Defender, Dragon Disciple, Ooze Druid, Pale Master |
low | HIGH | HIGH | cls_savthr_bard | Bard, Monstrous, Fey, Harper |
HIGH | HIGH | HIGH | cls_savthr_monk | Monk, Dragon, Outsider, Shapechanger |
2da Columns
Column Label | Example | Valid Values | Description and Notes |
---|---|---|---|
Level | 5 | Text | This appears to be unused by the game and is essentially a label, the row ID is used instead. However it is a lot easier to read if these are left as 1-60. |
FortSave | 4 | Integer | Fortitude save at the given level |
RefSave | 1 | Integer | Reflex save at the given level |
WillSave | 1 | Integer | Will save at the given level |
2da Contents
Example file cls_savthr_barb.2da:
2DA V2.0 Level FortSave RefSave WillSave 0 1 2 0 0 1 2 3 0 0 2 3 3 1 1 3 4 4 1 1 4 5 4 1 1 5 6 5 2 2 6 7 5 2 2 7 8 6 2 2 8 9 6 3 3 9 10 7 3 3 10 11 7 3 3 11 12 8 4 4 12 13 8 4 4 13 14 9 4 4 14 15 9 5 5 15 16 10 5 5 16 17 10 5 5 17 18 11 6 6 18 19 11 6 6 19 20 12 6 6 20 21 12 6 6 21 22 13 7 7 22 23 13 7 7 23 24 14 8 8 24 25 14 8 8 25 26 15 9 9 26 27 15 9 9 27 28 16 10 10 28 29 16 10 10 29 30 17 11 11 30 31 17 11 11 31 32 18 12 12 32 33 18 12 12 33 34 19 13 13 34 35 19 13 13 35 36 20 14 14 36 37 20 14 14 37 38 21 15 15 38 39 21 15 15 39 40 22 16 16 40 41 22 16 16 41 42 23 17 17 42 43 23 17 17 43 44 24 18 18 44 45 24 18 18 45 46 25 19 19 46 47 25 19 19 47 48 26 20 20 48 49 26 20 20 49 50 27 21 21 50 51 27 21 21 51 52 28 22 22 52 53 28 22 22 53 54 29 23 23 54 55 29 23 23 55 56 30 24 24 56 57 30 24 24 57 58 31 25 25 58 59 31 25 25 59 60 32 26 26