Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

Order of Columns

The game generally won't care what order columns are in except for two exceptions;

  • swearfilter.2da cannot be rearranged
  • The first column of the spell preference 2da files

Client and Serverside 2das

...

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.

It is recommended of course for the server to have copies of everything (if only for Get2DAString lookups) while you can lessen the amount put in client hakpacks or on nwsync if sending certain ones to the client.

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_pAreaTransitionTableNot sureLikely 2da linking the load screens to show
m_pIPRPSpellsiprp_spells.2da
m_pIPRPLightTableNot sure - probably iprp_lightcost.2da ?
m_pIPRPColoriprp_color.2da
m_pIPRPMeleeiprp_meleecost.2da
m_pItemPropDefTableitempropdef.2da
m_pItemPropsTableitemprops.2da
m_pCreatureSizeTablecreaturesize.2da
m_pArmorTablearmor.2da
m_pEncumbranceTableencumbrance.2da
m_pPortraitTableportraits.2da
m_pPartsChestparts_chest.2da
m_pSpellSchoolTablespellschools.2da
m_pTrapTabletraps.2da
m_pLightColorTablelightcolor.2da
m_pIPRPDamageTableiprp_damagecost.2daMay be others too
m_pPartsRobeparts_robe.2da
m_pItemValueitemvalue.2da
m_pPackagespackages.2da

Presumably also all the relevant class package 2das


chargenclothes.2daClothing items must be part of the base game, or included in the hak as UTI resources

...

While many of these are only loaded by the game client, the toolset would still make regular use of them, for instance, to be able to have a blueprint reference a particular wing model on a suitable NPC.

It is always recommended to have these available on the server if only for Get2DAString lookups.

2da load reference2da NameNotes
m_pPartTableNot sure?Model appearance related
m_pArmorTypesTablearmourtypes.2daSounds loading (cloth, leather, plate, chain)
m_pTileColorTabletilecolor.2daTexture loading
m_pReplaceTextureTablereplacetexture.2daTexture loading
m_pTailModelTabletailmodel.2daModel appearance related
m_pWingModelTablewingmodel.2daModel appearance related
m_pCloakModelTablecloakmodel.2da

Model appearance related

Note: CopyItemAndModify() may use this server-side in some instances (non-PLT based ones which there are none in the base game).

m_pCursorTablecursors.2daFor the cursors for certain default game actions.
m_pActionsTableactions.2daFor GUI icons list (player action list top left)
m_pAmbientMusicTableambientmusic.2daServer tells client which line to load, which refers to this for the sound files
m_pAmbientSoundTableambientsound.2daServer tells client which line to load, which refers to this for the sound files
m_pFootstepSoundsTablefootstepsounds.2daSounds loading
m_pAppearanceSoundsTableappearancesndset.2daSounds loading
m_pWeaponSoundsTableweaponsounds.2daSounds loading
m_pDefaultACSoundsTabledefaultacsounds.2daSounds loading
m_pAmmunitionTypesTableammunitiontypes.2daSounds loading
m_pKeymapTablekeymap.2daClient GUI default keys/shortcuts
m_pPlaceableSoundsTableplaceableobjsnds.2daSounds loading
m_pDamageLevelTable

damagelevels.2da

GUI showing how damaged something is (Formats the text over creatures heads)
m_pEffectIconsTableeffecticons.2daGUI effect icons (top right, inspect panel on items/characters, character sheet)
m_pLoadHintsTableloadhints.2daLoading string text loading
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_pPhenoTypeTablephenotype.2daModel appearance related
m_pIPRPVisualFxTableiprp_visualfx.2daVisual effects
m_pWeatherTypesTableweathertypes.2daClient is just told which line to load

...