These two 2da files cover Animal Companion and Familiar abilities and what they spawn.
NWN:EE allows more than just the hardcoded classes of yore to use these 2da options. However there are no ways to add another category (such as "Elemental Companions") and no way to make them more D&D specific (ala having a animal companion by taming a real animal). They're essentially bonus summoned monsters with some lighter combat abilities and some utility skills/feats (eg Lock Picking from a Pixie).
A good overview of the default familiar and animal companion stats is on NWN Fandom wiki for Familiar and Animal Companions.
hen_companion.2da and hen_familiar.2da
They use the same columns.
Column Name | Example | Valid Values | Description and Notes |
---|---|---|---|
Name | Bat | Text | Human readable label |
BASERESREF | NW_FM_BAT | Partial resref name | This is the UTC creature template resref minus the 2 numbers at the end that refer to the level of the creature. EG: nw_fm_bat01.utc through nw_fm_bat40.utc is needed for the "Bat" familiar. If an invalid resref is supplied nothing is properly loaded. These UTC files need to be available on the server and client end for players to be able to properly select them on levelup. It is about the only UTC blueprint the client needs. |
STRREF | 1995 | dialog.tlk reference | The name in the "Choose your companion/familiar" levelup/chargen screen |
DESCRIPTION | 5636 | dialog.tlk reference | The description in the "Choose your companion/familiar" levelup/chargen screen |
NPCs, PCs and Familiars - UTC and BIC Familiar and Animal Companion choice setting
The toolset does not allow a familiar or animal companion type or name to be set on the UTC file since it gets cleared when the UTC is saved, or used in an area.
If these are undefined then no name is set (one can be set using SetName however once summoned) and the default 0 entry is used in hen_familiar or hen_companion. Players change this value on levelup - but there is no change if they are de-levelled or anything, so if they lose enough XP they'll just keep the familiar/companion they chose at last level up.
Note: Not sure if LevelUpHenchmen also removes this setting (need to test).
To add in a familiar these settings need to be added to the GFF top level. These can be done while editing GFF files (specifically UTC files for blueprints and GIC for NPCs in areas) in the modules temp0 directory when the module is open, then save the module. Any further edits to the blueprint (or instance in an area) usually removes the setting entirely.
GFF Field Name | Type | Entry Value(s) | Description and Notes |
---|---|---|---|
FamiliarType | INT32 | Integer value referencing hen_familiar.2da line | |
FamiliarName | STRING | Name of familiar | |
CompanionType | INT32 | Integer value referencing hen_companion.2da line | |
CompanionName | STRING | Name of animal companion |
Animal Companions and Familiars
Both of these act similarly in these ways:
- Feat/ability usable once per day
- Unsummoned on level up (in case replaced)
- Not unsummoned on rest (allowing them to be there, healed, and still be summoned again)
- Tied to class levels, can be swapped to a different type every time levelup occurs
- Can be named
- No restrictions on what is chosen (no columns allow the familiars/companions to be NPC only, or to be locked until the game wants you to have it).
There are some key differences.
Item | Animal Companion | Familiar | Notes |
---|---|---|---|
classes.2da related columns | MinAssociateLevel set to 1 or higher (255 is "none") Arcane set to 0 | MinAssociateLevel set to 1 or higher (255 is "none") Arcane set to 1 | MinAssociateLevel determines what is the first level that class gets the companion. EG: Ranger is set to 6. MinAssociateLevel doesn't work for familiars - as in any value other than 255 will allow a familiar, and 255 will block it. |
Combined Class Levels | No | Yes | IE: If you are Wizard 10 / Sorcerer 10 you get a level 20 familiar. If you are a Ranger 10 / Druid 10 you only get a level 10 animal companion (Highest class counts) The Animal Companions can be changed to have combined levels using ruleset.2da see also Custom Spellbooks using classes.2da and spells.2da |
Possession Allowed | No | Yes | This is hardcoded so only Familiars get possession. Possession allows the use of abilities and skills the familiar has (but no inventory usage). During possession the Master stands still, and is immune to mind affecting effects while possessing. Hitting the master with damage tends to have the possession stop. If the familiar dies when being possessed the PC automatically unpossesses it. |
Each default template (which is hidden in the toolset) tends to standardise slightly different scripts and conversations. There are notes if anything relevant is in these - if you wondered why certain behaviour was present.
Item | Animal Companion | Familiar | Notes |
---|---|---|---|
Conversation | nw_g_animal | nw_g_fam | Both allow healing for free ("Feed the familiar" or "Feed your companion"). There are some henchmen-lite options (distance etc.) |
OnBlocked | nw_ch_ace | nw_ch_ace | |
OnCombatRoundEnd | nw_ch_ac3 | nw_ch_ac3 | |
OnConversation | nw_ch_ac4 | nw_ch_ac4 | |
OnDamaged | nw_ch_ac6 | nw_ch_ac6 | Base templates have nwn_ch_ac5 instead, but nw_ch_ac6 should be the right one for OnDamaged |
OnDeath | nw_ch_ac7 | nw_ch_ac7 | ASSOCIATE_TYPE_FAMILIAR will do d6 magical damage to the master, but never take them to under 1HP, when they die. |
OnDisturbed | nw_ch_ac8 | nw_ch_ac8 | |
OnHeartbeat | nw_ch_ac1 | nw_ch_ac1 | |
OnPerception | nw_ch_ac2 | nw_ch_ac2 | |
OnPhysicalAttacked | nw_ch_ac5 | nw_ch_ac5 | |
OnRested | nw_ch_aca | nw_ch_aca | |
OnSpawn | nw_ch_acani9 | nw_ch_acani9 | A more stripped down spawn script compared to the usual Henchmen one (nw_ch_ac9) |
OnSpellCastAt | nw_ch_acb | nw_ch_acb | |
OnUserDefined | nw_ch_acd | nw_ch_acd |