skills.2da defines the skills the game allows players to choose and use. Of course, apart from the in built ones, all of the additional skills content creators can add are not inherently usable, but can be checked with scripts.
Due to the fact that the Skill Focus feats, and other things such as starting level 1 skill-improving feats, are all hardcoded, essentially lines 0 through 26 are all hardcoded in some way even if the engine doesn't inherently do anything with them.
Ride, skill 27, was added in a patch and hasn't inherently got any "engine" support, ie; no Skill Focus: Ride or anything that isn't just scripted content.
There is also no way to specify skill synergies (outside of altering the hardcoded ones via. ruleset.2da)
Hardcoded Skills Information
See the information under Hardcoded Skills for a breakdown of each skill, how it operates (if it's active/passive), feats and ruleset.2da values that affect it, etc.
There's also some effects on skills that are hardcoded worth noting on the page.
You can have a maximum of 255 skills in the file due to network limitations.
GUI issues going over 32 skills can occur - may only affect the "Untrained" column however - https://github.com/Beamdog/nwn-issues/issues/171
There are also subskills for disable trap skill; these may make those lines odd, but this is untested. From nwscript.nss:
There are very few cut skills, only a few icons seem to be left over. Note since "Discipline" is a made up skill, it makes you wonder what else was attempted. The list of real 3E skills is available here.
These may also have been pre-release "beta 3E" skills WotC was testing since it was in development as 3E was.
|Skill Name||Icon Name||Icon||Description|
|Poison||isk_poison.tga||Poison isn't a 3E skill. However Craft Poison was introduced later, and the vial could have meant Craft Potion too.|
|Repair||isk_repair.tga||Repair isn't a 3E skill but maybe at some point it there was going to be weapons breaking or other uses of it.|
|Column||Example Contents||Valid Values||Description and Notes|
|Label||AnimalEmpathy||Any text||A text value identifying the feat associated with this row. It is not used by the game engine, but makes it easier to locate specific feats within the file. All spaces should be replaced with underscores ( _ ).|
The skills name, as shown in game and the toolset
This column is what the character sheet uses to order skills. You can setup a custom order using Custom Tokens.
|Description||344||Dialog.tlk reference||The skills description, show in on the character sheet and at level up|
|Icon||isk_aniemp||Icon texture resref|
1 - Untrained - can be used with no skill ranks
0 - Trained - requires skill ranks
Skills such as "Open Lock" require training - this means using the skill at 0 ranks (the amount done at level up screens, not those bonuses from items/ability scores) cannot be used.
|KeyAbility||CHA||STR, DEX, CON, INT, WIS, CHA|
Ability score that is associated with this skill and grants bonuses to it.
1 - Has armor check penalty
0 - Has no armor check penalty
When armor is equipped it provides a penalty to skills with this set to 1, for instance Full Plate has -8. Usually it is only dexterity based skills (the exception being Open Lock and Ride in the default skills.2da)
1 - All classes can use this skill (put points into it during levelup)
0 - Only specific classes can put points into it
|This does not determine what skills cost more, just what skills can absolutely not be chosen unless allowed by classes.2da. For instance Perform is strictly a Bard skill, no other class can pick points in it.|
|Category||****||categories.2da value or ****|
The default game does not specify a category for any skill. It'd only make sense for hardcoded active-use skills such as Animal Empathy, Heal, Parry or Taunt. It is unlikely it works well or at all however if categories are assigned to them.
|MaxCR||1||**** or integer||Would be, if the talent system wasn't an undocumented hardcoded mess, work with the Category. Since no skill has a category this is essentially ignored, and for custom skills is unusable anyway.|
|Constant||SKILL_ANIMAL_EMPATHY||Any text||Unused by the game or toolset just a builder reference. Makes sense to have a constant name as per nwscript.nss or an include file however.|
|HostileSkill||1||1 or 0||Only used by active skills (see section above).|