The appearance.2da file lists all the individual model lines for different models. Some are parts based (eg; player models) and some are single models (eg; a Dragon, or a Badger).
Errors and appearance.2da: Shifted Lines
Siala reported on Discord that they were experiencing missing heads and arms from the vanilla assets after merging in some Custom Content head models. Siala found that the issue was caused by shifted columns in Appearance.2da. IF you experience this issue, this might be a good place to start troubleshooting.
Note, I have found Excimer's 2DA Combinulator and TextPad to be flawless tools for merging or working with 2DA files.
2da Contents
Adding a new model appearance for a creature? Recommendation is to copy an existing line and tweak if the model author didn't supply one.
| Column | Example Contents | Valid Values | Description and Notes |
|---|---|---|---|
| LABEL | Badger_Dire | Any string | Unused by the game. Used in the toolset if the STRING_REF column is blank. Can be in quotes (eg: "Cat, Domestic"). |
| STRING_REF | 1994 | A dialog.tlk string refrence | Used by the toolset to show what the name of the appearance is, if blank then LABEL is used. Unused in game itself. |
| NAME | Badger | Any string | Unused by the game or toolset for humans only. |
| RACE | c_crab | Resref model name | If this is for a custom, dynamic character (i.e., a real PC model), this needs to be a single character corresponding to the race identifier (e.g., h for human, ‘e’ for elf, etc.). |
| ENVMAP | default | Named environment map file. The filename without .tga at the end. default evmap_irrid evmap_azer | Note: This is ignored if a TXI file is used by the given model. default can be used to add some additional "shiny" to metals and other materials on creatures if they don't have it already For custom ones see Environment Maps and Cubemaps for some further information. Some examples are in the column to the left and can be extracted from the game bifs. If blanked (****) then no environment map will be used. |
BLOODCOLR | G | "G" (green), "N" (none), "R" (red), "W" (white), and "Y" (yellow) | None removes the blood, the others apply particular VFX when hit with weapons/taking damage/exploding. |
| MODELTYPE | P | P - Player F - Full S - Simple L - Large | See also: Animations P = player animation type (Has all the options) F = full animation (humanoid models, generally). They use the same animations as PCs like 'run' and 'walk'. They have a supermodel that's an a_ba variant just like PCs. Example: Succubus S = simple animations (most animals have this, meaning they really only have their taunt animation plus attacks). These models use only creature animations like 'crun' and 'cwalk'. 'S' models cannot equip weapons. Example: Wolf L = large creature animations (Balor, Giants, etc.). They use the same animations as 'S' models (crun and cwalk, etc.) but they CAN equip weapons. These are for 'humanoid monsters' but are not necessarily large creatures. Dragons for example are "S" type because they don't wield weapons. |
| WEAPONSCAPE | 1.3 | Float value. Human scaling is 1 | Amount to scale weapons so that they are appropriately sized for use by this model. |
| WING_TAIL_SCALE | 1 | Float value. Human scaling is 1 | Amount to scale wings and tail so that they are appropriately sized for this model. |
| HELMET_SCALE_M | 1.2 | Float value. Male human uses 1.15 | Helmet scaling for male. |
| HELMET_SCALE_F | 1.2 | Float value. Female human uses 0.95 | Helmet scaling for female. |
| MOVERATE | NORM | creaturespeed.2da "2DAName" column values: PLAYER NOMOVE VSLOW SLOW NORM FAST VFAST DFAST | This sets the creatures speed if "Default" is used in the toolset. It can be overridden on a per-CRE file basis. Note players get he PLAYER speed by default on character creation. The value "DEFAULT" actually refers to the toolset / CRE settable value that uses this to look it up, so it'd get confusing if you used DEFAULT here! |
| WALKDIST | 1.6 | Animation related. | |
| RUNDIST | 3.2 | Animation related. | |
| PERSPACE | 0.3 | Float value | Personal Space. For more information see Creature Size. Used to pathfind around usual objects and walkmesh. |
| CREPERSPACE | 0.7 | Float value | Creature Personal Space. For more information see Creature Size. Always larger than PERSPACE. It determines pathfinding (and melee range) for moving around/past creatures. |
| HEIGHT | 2.25 | Float value | Camera height when the PC is of this appearance. You'll find polymorph creature entries tend to have this set to something other than 1. It also affects pathfinding as well...but not sure in what respects. See Creature Size. |
| HITDIST | 0.3 | Float value | The absolute distance melee hits can take place (taking into account CREPERSPACE as well). |
| PREFATCKDIST | 2.1 | Float value | The preferred melee distance presumably to move the creatures together when they want to attack each other. |
| TARGETHEIGHT | H | H = High L = Low | Animation related. Which attacks - by default - do other creatures use on this targeted creature. IE: closeh is used if "H" is here, while closel is used is "L" is here. Note: If the creature is knocked down, it uses the L animations regardless (ie; this column presumes L). |
| ABORTONPARRY | 1 | 1 or 0 | Abort On Parry - abort attack animations on parry presumably. Mainly good for people with weapons who, well, have parry animations. |
| RACIALTYPE | 11 | Integer - but references what? | Likely unused by the game - not a line in racialtypes.2da at least - but may be toolset related? Perhaps a toolset category ID. |
| HASLEGS | 1 | 1 or 0 | If it has legs, then Called Shot: Legs sub feat can work against this appearance. |
| HASARMS | 1 | 1 or 0 | If it has arms, then Called Shot: Arms sub feat can work against this appearance. Note this does not affect if a creature can, say, use a potion or something. In any case Bears for instance have arms. |
| PORTRAIT | po_poly | Portrait resref name | Portrait file name used by default when the toolset uses this appearance. I think it's also used with SetAppearance on a creature. |
| SIZECATEGORY | 3 | sizecategories.2da line reference | Integer reference to sizecategories.2da |
| PERCEPTIONDIST | 9 | ranges.2da line reference | This is strictly a ranges.2da entry when the creatures Perception Range is set to "Default" in the toolset / creature file. Most are 9 "PercepRngMed" - 20 meters sight and 20 meters (shorter than players). Bosses (like Dragons) are 10 "PercepRngHigh" - 35 meters sight and 20 meters listen (same as players). Players get a special line regardless of this setting (even when polymorphed), which is line 12 (35 meters sight, 20 meters listen). See more at Creature Line of Sight and Perception for more information |
| FOOTSTEPTYPE | 0 | footstepsounds.2da line reference | Check footstepsounds.2da for different options. This is the sounds on each tile surface material. |
| SOUNDAPPTYPE | 0 | appearancesndset.2da line reference | Check appearancesndset.2da for different options. |
| HEADTRACK | 1 | 1 for head tracking 0 for no head tracking | Does the head follow the current speaker. 0 doesn't necessarily mean "No animations available" (such as for the Chicken for instance, which has no real head node). It can also be for creatures that simply don't care to look - Golems for instance. 1 introduces head tracking - which unlocks the next two columns. |
| HEAD_ARC_H | 60 | 0 - 180, but usually 60 max | Horizontal range of head tracking in degrees. Lowering it can stop excessive clipping of heads with the rest of the model. |
| HEAD_ARC_V | 30 | 0 - 180, but usually 30 max | Horizontal range of head tracking in degrees. Lowering it can stop excessive clipping of heads with the rest of the model. |
| HEAD_NAME | head_g | Model node name | The name of the head node used in the model, both for us looking at someone else (if HEADTRACK is 1) but also for other things looking at us. Defaults to head_g since most entries use this. |
| BODY_BAG | 6 | bodybag.2da line reference | See bodybag.2da. What gets left on the ground after the creature dies. |
| TARGETABLE | 1 | 1 - Targetable 0 - Not targetable | Line 298 "Invisible_Human_Male" sets this to 0. It affects if tab shows up the creature in any way as a highlightable object. If the model is not there and this is 0 then it should mean the PC can never click on it. Useful for narrator appearances and other things. |
