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.
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.|
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.).
Named environment map file. The filename without .tga at the end.
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 (according to the doc, "use the default environment map for the current
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. They refer to a texture file to use as an environment map.
If blanked (****) then no environment map will be used.
|None removes the blood, the others apply particular VFX when hit with weapons/taking damage/exploding.|
P - Player
S - Simple
F - Full
L - Large
See also: Animations
P = player animation type (Has all the options) - creature model is composed of multiple body parts each with their own MDL and textured with PLTs. Model changes when armor is worn, and colors are selectable.
S = simple animations; creature model is a single MDL and textured with a single TGA or DDS texture file. Colors are not selectable. Model does not change when wearing armor. Weapons do not appear when equipped. Most animals have this, meaning they really only have their taunt animation plus attacks. These models use only creature animations like 'crun' and 'cwalk'. Example: Wolf
F = full animation (humanoid models, generally). They use the same animations as PCs like 'run' and 'walk'. Same as simple in regards to model, but weapon items do appear when equipped in right or left hand inventory slots. They have a supermodel that's an a_ba variant just like PCs. Example: Succubus
L = large creature animations (Balor, Giants, etc.). They use the same animations as 'S' models (crun and cwalk, etc.) but they only show the right hand weapon. These are for 'humanoid monsters' but are not necessarily any large creatures. Dragons for example are "S" type because they don't wield weapons.
|WEAPONSCALE||1.3||Float value. Human scaling is 1|
Amount to scale weapons so that they are appropriately sized for use by this model.
Size scaling factor to apply to weapon models equipped by creatures having this appearance. Only meaningful if MODELTYPE is not S
|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|
Size scaling to apply to helms equipped by male creatures. Only meaningful if MODELTYPE=P
|HELMET_SCALE_F||1.2||Float value. Female human uses 0.95|
Size scaling to apply to helms equipped by female creatures. Only meaningful if MODELTYPE=P
creaturespeed.2da "2DAName" column values:
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!
Distance in metres travelled by creature from the beginning of its walk animation to the end of its walk animation
Distance in metres travelled by creature from the beginning of its run animation to the end of its run animation
|PERSPACE||0.3||Float value||Personal Space. For more information see Creature Size. Used to pathfind around objects and walkmesh. Stops a creature from passing through another creature (by comparing each of their PERSPACE values).|
|CREPERSPACE||0.7||Float value||Creature Personal Space. For more information see Creature Size. Usually larger than PERSPACE. It determines pathfinding (and melee range) for moving around/past creatures in combat.|
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. The camera height is altered when a PC is polymorphed.
It also affects pathfinding as well...but not sure in what respects. The game docs say "Used for pathfinding under obstacles". See Creature Size.
When this creature is attacking another creature, subtract the HITDIST from the actual distance between attacker and target before comparing the distance to the PREFATCKDIST.
Preferred distance from which to attack a target. Creature will use short-range, normal-range, or long-range versions of its melee animations depending on distance of the target.
H = High
L = Low
Target height when hitting creatures having this appearance
H = normal height, used by most appearances
L = low, used by short appearances, such as badgers
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. 1 if attack animation aborts when the attacked creature plays the parry animation
|RACIALTYPE||11||Integer - but references what?|
Likely unused by the game - The game docs say it is an index into racialtypes.2da but all the existing values are flat out wrong. May be toolset related instead? Who knows...but Humans are set to 11 which in racialtypes.2da is "Dragon". Maybe an old racialtypes.2da before release had many more entries.
|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.
Base ResRef of the default portrait for creatures having this appearance. Example: if PORTRAIT is po_badger, then use the portraits po_badger_h.tga, po_badger_l.tga, po_badger_m.tga, etc.
This value should not exceed 14 characters in length.
creaturesize.2da line reference, but essentially hardcoded numbers:
Don't use other integers in this column - they are invalid and will likely cause weird things.
|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.|
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||Vertical 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 and the corpse is set to fade out.
1 - Targetable
0 - Not targetable
1 if the creature can be targetted, such as by mousing over it.
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.