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 NameExampleValid ValuesDescription and Notes
NameBatTextHuman readable label
BASERESREFNW_FM_BATPartial 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.

STRREF1995dialog.tlk referenceThe name in the "Choose your companion/familiar" levelup/chargen screen
DESCRIPTION5636dialog.tlk referenceThe 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 NameTypeEntry Value(s)Description and Notes
FamiliarTypeINT32Integer value referencing hen_familiar.2da line
FamiliarNameSTRINGName of familiar
CompanionTypeINT32Integer value referencing hen_companion.2da line
CompanionNameSTRINGName 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.

ItemAnimal CompanionFamiliarNotes
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 LevelsNoYes

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 AllowedNoYes

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.

ItemAnimal CompanionFamiliarNotes
Conversationnw_g_animalnw_g_famBoth allow healing for free ("Feed the familiar" or "Feed your companion"). There are some henchmen-lite options (distance etc.)
OnBlockednw_ch_acenw_ch_ace
OnCombatRoundEndnw_ch_ac3nw_ch_ac3
OnConversationnw_ch_ac4nw_ch_ac4
OnDamagednw_ch_ac6nw_ch_ac6Base templates have nwn_ch_ac5 instead, but nw_ch_ac6 should be the right one for OnDamaged
OnDeathnw_ch_ac7nw_ch_ac7ASSOCIATE_TYPE_FAMILIAR will do d6 magical damage to the master, but never take them to under 1HP, when they die.
OnDisturbednw_ch_ac8nw_ch_ac8
OnHeartbeatnw_ch_ac1nw_ch_ac1
OnPerceptionnw_ch_ac2nw_ch_ac2
OnPhysicalAttackednw_ch_ac5nw_ch_ac5
OnRestednw_ch_acanw_ch_aca
OnSpawnnw_ch_acani9nw_ch_acani9A more stripped down spawn script compared to the usual Henchmen one (nw_ch_ac9)
OnSpellCastAtnw_ch_acbnw_ch_acb
OnUserDefinednw_ch_acdnw_ch_acd
  • No labels