FANDOM


This article covers the layout of the file; for the default contents, see classes.2da (contents).

The classes.2da file controls the available classes that are included in the game. It specifies any restrictions the class has and any other information governing the use of the class.

This file has less of an impact during character creation than some would like, as the game is hardcoded to allow (at most) only the first eleven rows (the standard base classes) as choices for a new character. (The Player Resource Consortium circumvented this restriction by developing a character creator that is external to the game.)

Columns of classes.2da
Name Description
ID (no actual name) Row numbers for the benefit of human readers. The game engine ignores the value in this field, instead generating sequential row numbers as the file is read. It is good practice to keep the entries in this field sequentially numbered to avoid confusion.
LabelThe name of the class (without spaces, as required by .2da files). This value is usually just for reference purposes, but can be displayed in game if the value in the Name column is ****.
NameA StringRef indicating a string that will be displayed in the game as the name of the class.
PluralA StringRef indicating a string that will be displayed in the game as the plural form of the name of the class. ("Bards", "Barbarians", etc.)
LowerA StringRef indicating a string that will be displayed in the game as the name of the class in lowercase. ("bard", "barbarian", etc.)
DescriptionA StringRef indicating a string that will be displayed in the game as the class description.
IconA ResRef specifying the icon displayed in the game for this class. By convention, these start with "ir_", followed by the class name, abbreviated if necessary to fit the ResRef limit of 16 characters.
HitDieThis determines what size of die is used to roll hit points on level-up. (4, 6, 8, 10, 12, etc.)
AttackBonusTable The name of the .2da file (without the extension) to be consulted for the base attack bonus progression of this class. The format of this .2da must match that of the cls_atk_*.2da files. The standard values for this column are cls_atk_1 (full progression), cls_atk_2 (3/4 progression), and cls_atk_3 (1/2 progression).
FeatsTable The name of the .2da file (without the extension) defining the class feats. The format of this .2da must match that of the cls_feat_*.2da files. The standard values for this column are "CLS_FEAT_" followed by the class name, possibly abbreviated.
SavingThrowTable The name of the .2da file (without the extension) defining the saving throw progression of this class at pre-epic levels. The format of this .2da must match that of the cls_savthr_*.2da files. The standard values for this column are "CLS_SAVTHR_" followed by a base class name (or "CONS" or "WILD"), possibly abbreviated.
SkillsTable The name of the .2da file (without the extension) defining the skills available to this class, including specifying which ones are cross-class skills. The format of this .2da must match that of the cls_skill_*.2da files. The standard values for this column are "CLS_SKILL_" followed by the class name, possibly abbreviated.
BonusFeatsTable The name of the .2da file (without the extension) defining the class levels at which this class receives bonus feats. The format of this .2da must match that of the cls_bfeat_*.2da files. The standard values for this column are "CLS_BFEAT_" followed by the class name, possibly abbreviated.
SkillPointBaseThis is number of skill points gained per level (before the intelligence modifier and before quadrupling at character level 1).
SpellGainTable The name of the .2da file (without the extension) defining how many spell slots this class has at each level. The format of this .2da must match that of the cls_spgn_*.2da files. The standard values for this column are "CLS_SPGN_" followed by the class name, possibly abbreviated.
SpellKnownTable The name of the .2da file (without the extension) defining how many spells are known by this class at each level (for classes with a limited number of known spells, specifically bards and sorcerers). The format of this .2da must match that of the cls_spkn_*.2da files. The standard values for this column are "CLS_SPKN_BARD" and "CLS_SPKN_SORC".
PlayerClass Controls whether or not this class is visible during initial character creation and leveling up. 1 = shown; 0 = not shown.
SpellCasterLeave as 0 for custom classes that add to existing spell casting classes. If you set to 1, this will prevent the DivSpellLvlMod and ArcSpellLvlMod from working. Possibly set to 1 for a custom class with its own spell list?
Str The value given to strength when a player uses the recommended button during character creation.
Dex The value given to dexterity when a player uses the recommended button during character creation.
Con The value given to constitution when a player uses the recommended button during character creation.
Wis The value given to wisdom when a player uses the recommended button during character creation.
Int The value given to intelligence when a player uses the recommended button during character creation.
Cha The value given to charisma when a player uses the recommended button during character creation.
PrimaryAbil The primary ability of this class.
AlignRestrict Specifies the alignments that are not allowed to obtain levels in this class. This is a bit field with the alignments defined as follows.

0x01 = neutral (with the axis determined by the AlignRestrictType column)
0x02 = lawful
0x04 = chaotic
0x08 = good
0x10 = evil

AlignRestrictType Specifies if the alignment restriction specified in the AlignRestrict column applies to the law-chaos axis (0x1), the good-evil axis (0x2), both (0x3), or neither (0x0).
InvertRestrict If set to 1 (the default is 0), the alignments specified in the AlignRestrict and AlignRestrictType columns are the only alignments allowed to gain levels in this class, rather than being the alignments prohibited from gaining them.
Constant The NWScript symbolic constant for this class. This is for the reference of human readers and is ignored by the game engine.
EffCRLvl01 The effective character level for each of the first 20 levels in this class. The actual class level minus this number is the bonus added to the challenge rating of monsters killed when determining experience point awards if the current module was created without the expansion packs installed.
EffCRLvl02
EffCRLvl03
EffCRLvl04
EffCRLvl05
EffCRLvl06
EffCRLvl07
EffCRLvl08
EffCRLvl09
EffCRLvl10
EffCRLvl11
EffCRLvl12
EffCRLvl13
EffCRLvl14
EffCRLvl15
EffCRLvl16
EffCRLvl17
EffCRLvl18
EffCRLvl19
EffCRLvl20
PreReqTable The name of the .2da file (without the extension) defining the prerequisites for this class (making this class a prestige class). The format of this .2da must match that of the cls_pres_*.2da files. The standard values for this column are "CLS_PRES_" followed by the class name, possibly abbreviated.
MaxLevel The maximum level of this class that can be taken, or 0 for no limit.
XPPenalty Determines if this class is counted when determining if a multiclass penalty applies. 1 = counted (normal for base classes); 0 = not counted (normal for prestige classes).
ArcSpellLvlMod If positive, this specifies the number of levels in this class that together add one level to an arcane class when determining the spell slots based on class level. That is, the number of levels in this class are divided by this number, with fractions of half or more rounded up. The result is added to an arcane class level before the spell slots for that class are determined. For example, the pale master has this set to 2.
DivSpellLvlMod If positive, this specifies the number of levels in this class that together add one level to a divine class when determining the spell slots based on class level. That is, the number of levels in this class are divided by this number, with fractions of half or more rounded up. The result is added to a divine class level before the spell slots for that class are determined.
EpicLevel The number of levels of this class that can be taken pre-epic (before character level 21; c.f. prestige class). A value of -1 indicates that there is no limit.
Package The ID of the row in packages.2da that is the default package for this class (used in scripting, specifically by the LevelUpHenchman() command).

Column notes Edit

ArcSpellLvlMod and DivSpellLvlMod:

  • It is possible to combine both columns for one class, making that class expand both arcane and divine spellcasting.
  • If a character has two arcane or divine classes, the engine adds spells only to the class that has the higher level. In case of a tie, the most recently leveled class gets the spells.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.