Information on 2da files, which are essentially 2 dimensional array tables of information.

Note a lot of information on specific 2da files are on different pages, such as Spells and Abilities for spells.2da.

2da Format

The 2da format is relatively simple:

This all comes together to mean some very odd looking 2das can be completely valid.

Client and Serverside 2das

The game as a whole is made up of the client and the server. A singleplayer game essentially runs both at once for the local user - of course other players may still join if it is created as a network game. Therefore it is important to understand which is which, since some 2da files you don't need to include at all in hakpack or nwsync resource lists, and can be left in the .mod or override folder on a PW server perfectly fine.

The client ones tend to be based around levelling up, appeareances, visuals (icons, vfx, textures, etc.) and sounds (the latter 3 servers don't even load of course). Servers need to know about all the resources loaded by the game in regards to objects, spells, etc.

Client and Server

2da load reference2da NameNotes
m_paIPRPCostTables // all of themAll cost tables in iprp_costtable.2da column "Name"Example: iprp_bonuscost.2da
m_pAppearanceTableappearance.2da
m_pGenderTablegender.2da
m_pSurfaceMaterialTablesurfacemat.2da
m_pVisualEffectTablevisualeffects.2da
m_pPersistentVisualEffectTablevfx_persistent.2da
m_pCreatureSpeedTablecreaturespeed.2da
m_pDoorTypesTabledoortypes.2da
m_pGenericDoorsTablegenericdoors.2da
m_pPlaceablesTableplaceables.2da
m_pAreaTransitionTable

m_pIPRPSpellsiprp_spells.2da
m_pIPRPLightTableNot sure - probably iprp_lightcost.2da ?
m_pIPRPColoriprp_color
m_pIPRPMelee

m_pItemPropDefTable

m_pItemPropsTable

m_pCreatureSizeTable

m_pArmorTable

m_pEncumbranceTable

m_pPortraitTable

m_pPartsChest

m_pSpellSchoolTable

m_pTrapTable

m_pLightColorTable

m_pIPRPDamageTable

m_pPartsRobe

m_pItemValue

m_pPackages

Client Only

2da load reference2da NameNotes
m_pPartTable
Model appearance related
m_pArmorTypesTable

m_pTileColorTable

m_pReplaceTextureTable

m_pTailModelTable
Model appearance related
m_pWingModelTable
Model appearance related
m_pCloakModelTable
Model appearance related
m_pCursorTable
For the cursors for certain default game actions.
m_pActionsTable
For GUI icons list (player action list top left)
m_pAmbientMusicTable
Server tells client which line to load, which refers to this for the sound files
m_pAmbientSoundTable
Server tells client which line to load, which refers to this for the sound files
m_pFootstepSoundsTable
Sounds loading
m_pAppearanceSoundsTable
Sounds loading
m_pWeaponSoundsTable
Sounds loading
m_pDefaultACSoundsTable
Sounds loading
m_pAmmunitionTypesTable

m_pKeymapTable

m_pPlaceableSoundsTable

m_pDamageLevelTable

m_pEffectIconsTable

m_pLoadHintsTable

m_pSwearFilterTableswearfilter.2daIt's funny how this is here. I presume it alters incoming messages not outgoing ones? Needs testing. Servers can implement changes to PC chat to implement a filter using OnPlayerChat event.
m_pPhenoTypeTable

m_pIPRPVisualFxTable

m_pWeatherTypesTableweathertypes.2daClient is just told which line to load

Server Only

2da load reference2da NameNotes
m_pStateScriptsTablestatescripts.2daRuns pscripts
m_pPoisonTable




m_pDiseaseTable




m_pRepAdjustmentsTable




m_pFractionalCRTable




m_pEncounterDifficultyTable




m_pCategoryTable




m_pExcitedDurationTable




m_pRestDurationTable




m_pPartsBelt




m_pPartsBicep




m_pPartsFoot




m_pPartsForearm




m_pPartsHand




m_pPartsLegs




m_pPartsNeck




m_pPartsPelvis




m_pPartsShin




m_pPartsShoulder




m_pXpBase




m_pAssociatesAnimalCompanionTable




m_pAssociatesFamiliarTable




m_pSkillVsItemCostTable




m_pRangesTable




m_pPolymorphTable




m_pDamageHitVisualTable




m_pBodyBagTable




m_pIPRPFeatsTable




m_pIPRPMonsterDamageTable




m_pOnHitTable




m_pOnHitSpellTable




m_pOnHitDurationTable




m_pIPRPACModTypeTable




m_pIPRPWeightIncTable




m_pIPRPArcSpell




m_pIPRPBonusCostTable




m_pIPRPSRCostTable





NWNX Reference

Source of what is referenced by the game engine. It relates to this file: https://github.com/nwnxee/unified/blob/master/NWNXLib/API/API/CTwoDimArrays.hpp

    // client+server
    m_paIPRPCostTables // all of them
    m_pAppearanceTable
    m_pGenderTable
    m_pSurfaceMaterialTable
    m_pVisualEffectTable
    m_pPersistentVisualEffectTable
    m_pCreatureSpeedTable
    m_pDoorTypesTable
    m_pGenericDoorsTable
    m_pPlaceablesTable
    m_pAreaTransitionTable
    m_pIPRPSpells
    m_pIPRPLightTable
    m_pIPRPColor
    m_pIPRPMelee
    m_pItemPropDefTable
    m_pItemPropsTable
    m_pCreatureSizeTable
    m_pArmorTable
    m_pEncumbranceTable
    m_pPortraitTable
    m_pPartsChest
    m_pSpellSchoolTable
    m_pTrapTable
    m_pLightColorTable
    m_pIPRPDamageTable
    m_pPartsRobe
    m_pItemValue
    m_pPackages
    m_pRuleset

    // client only
    m_pPartTable
    m_pArmorTypesTable
    m_pTileColorTable
    m_pReplaceTextureTable
    m_pTailModelTable
    m_pWingModelTable
    m_pCloakModelTable
    m_pCursorTable
    m_pActionsTable
    m_pAmbientMusicTable
    m_pAmbientSoundTable
    m_pFootstepSoundsTable
    m_pAppearanceSoundsTable
    m_pWeaponSoundsTable
    m_pDefaultACSoundsTable
    m_pAmmunitionTypesTable
    m_pKeymapTable
    m_pPlaceableSoundsTable
    m_pDamageLevelTable
    m_pEffectIconsTable
    m_pLoadHintsTable
    m_pSwearFilterTable
    m_pPhenoTypeTable
    m_pIPRPVisualFxTable
    m_pWeatherTypesTable
    m_pProgFxTable

    // server only
    m_pStateScriptsTable
    m_pPoisonTable
    m_pDiseaseTable
    m_pRepAdjustmentsTable
    m_pFractionalCRTable
    m_pEncounterDifficultyTable
    m_pCategoryTable
    m_pExcitedDurationTable
    m_pRestDurationTable
    m_pPartsBelt
    m_pPartsBicep
    m_pPartsFoot
    m_pPartsForearm
    m_pPartsHand
    m_pPartsLegs
    m_pPartsNeck
    m_pPartsPelvis
    m_pPartsShin
    m_pPartsShoulder
    m_pXpBase
    m_pAssociatesAnimalCompanionTable
    m_pAssociatesFamiliarTable
    m_pSkillVsItemCostTable
    m_pRangesTable
    m_pPolymorphTable
    m_pDamageHitVisualTable
    m_pBodyBagTable
    m_pIPRPFeatsTable
    m_pIPRPMonsterDamageTable
    m_pOnHitTable
    m_pOnHitSpellTable
    m_pOnHitDurationTable
    m_pIPRPACModTypeTable
    m_pIPRPWeightIncTable
    m_pIPRPArcSpell
    m_pIPRPBonusCostTable
    m_pIPRPSRCostTable
    m_pIPRPNeg5CostTable