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 Columns

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.

ColumnExample ContentsValid ValuesDescription and Notes
LABELBadger_DireAny stringUnused by the game. Used in the toolset if the STRING_REF column is blank. Can be in quotes (eg: "Cat, Domestic").
STRING_REF1994A dialog.tlk string refrenceUsed by the toolset to show what the name of the appearance is, if blank then LABEL is used. Unused in game itself.
NAMEBadgerAny stringUnused by the game or toolset for humans only. You might notice a lot of them are silly like repeating "BASE", or simply a copy of the LABEL. evidence of copy/paste on Bioware's part. Presumably at one point this might have been floated as replacing the STRING_REF but instead LABEL does.
RACEc_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.).

For parts based models you'd get a full model name made up of:

  • "p" - presumably for "parts based"
  • gender: "f" or "m" (default "m")
  • RACE (ie this column, so eg; "D" for Dwarf)
  • phenotype.2da ID number

EG: Dwarf, Female with "Normal" 0 phenotype is "pfd0.mdl" which loads the base look and reference to animations with setsupermodel (in this case it loads "a_dfa.mdl" which itself loads other setsupermodel references).

If you then want to load a part of the model, eg, chests, belts etc it's then:

  • "_" - underscore
  • model type name and ID number

EG: Dwarf, Female with "Normal" 0 phenotype is "pfd0", making a chest model (see caparts.2da for model names) be pfd0_chest001.mdl

ENVMAPdefault

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 (according to the doc, "use the default environment map for the current
area's tileset, as specified in the .SET file's [General] EnvMap property")

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.

NOTE: For creatures with transparency (alpha channels) in their textures (e.g. a tattered cloak), this setting MUST be blanked (****) or else you will get shiny bits appearing on the model where the texture is supposed to be transparent. 

BLOODCOLR

G

"R" (red)

"G" (green)

"W" (white)

"Y" (yellow)

"N" (none)

None removes the blood, the others apply particular VFX when hit with weapons/taking damage/exploding.
MODELTYPEP

P - Player/Parts

S - Simple

F - Full

L - Limited/Large

Optional:

W - Wings allowed

T - Tails allowed

See also: Animations and Model Special Nodes.

P = parts 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. See note of model names in RACE column above.

S = simple animations; creature model is a single MDL and textured with a single TGA or DDS texture file. PLT textures are not available. Model does not change when wearing armor. Weapons do not appear when equipped even with the correct nodes. 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, Dragon, Badger.

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 and shields do appear when equipped in right or left hand inventory slots if they have the correct dummy nodes (rhand/lhand/lforearm). They usually have a supermodel that's an a_ba variant just like PCs. Example: Succubus, Bodak, Lich, Bartender.

L = limited creature animations - S with visible weapons and (cross)bow animations. They use the same animations as 'S' models (crun and cwalk, etc.) and can display weapons equipped in either hand as well as shields with the correct dummy nodes (rhand/lhand/lforearm). See Animations and Model Special Nodes for more info. These are for 'humanoid monsters' but are not necessarily any large creature. Dragons for example are "S" type because they don't wield weapons.

Additionally "L" model types can have full crossbow and bow animations. Sadly there are some hardcoded limitations on showing slings, throwing weapons or torches in their hands (likely to save adding more animation slots).

One other note: the WEAPONSCALE property in appearance.2da does scale the weapon visually for "L" types but does not add any additional range to melee attacks - the game assumes you've sized the creatures combat distance accurately to the weapon they (usually) weild, eg a Balor with his Greatsword.

You can optionally add on "W" and/or "T" to have:

W = Wings allowed (EG: the Succubus model has this). The model must have the appropriate "wing" dummy node.

T = Tails allowed (EG: the Kobold models have this). The model must have the appropriate "tail" dummy node.

WEAPONSCALE1.3Float 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_SCALE1Float value. Human scaling is 1

Amount to scale wings and tail so that they are appropriately sized for this model.

HELMET_SCALE_M1.2Float value. Male human uses 1.15

Size scaling to apply to helms equipped by male creatures. Only meaningful if MODELTYPE=P

HELMET_SCALE_F1.2Float value. Female human uses 0.95

Size scaling to apply to helms equipped by female creatures. Only meaningful if MODELTYPE=P

MOVERATENORM

creaturespeed.2da "2DAName" column values, by default:

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-creature basis (on their blueprint or instance).

Note players get the PLAYER speed by default on character creation (or should - apparently this applies only to lines 0 to 6, where they define speed as "NORM" but the player gets "PLAYER"). You might want a player-only appearance with "PLAYER" as a speed to properly have custom race appearances or ones you use with SetAppearance, or change "NORM" speed to the same as "PLAYER" speed in creaturespeed.2da (with the knock on effect all creatures now move a bit faster).

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!


WALKDIST1.6

Distance in metres travelled by creature from the beginning of its walk animation to the end of its walk animation

RUNDIST3.2

Distance in metres travelled by creature from the beginning of its run animation to the end of its run animation

PERSPACE0.3Float valuePersonal 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).
CREPERSPACE0.7Float valueCreature 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.
HEIGHT2.25Float 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. 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.

HITDIST0.3Float value

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.

PREFATCKDIST2.1Float value

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.

TARGETHEIGHTH

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).

ABORTONPARRY11 or 0

Abort On Parry. 1 if attack animation aborts when the attacked creature plays the parry animation

RACIALTYPE11Integer - 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.

HASLEGS11 or 0

If it has legs, then Called Shot: Legs sub feat can work against this appearance.

HASARMS11 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.

PORTRAITpo_polyPortrait 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.

SIZECATEGORY3

creaturesize.2da line reference, but essentially hardcoded numbers:

  • 1 - Tiny
  • 2 - Small
  • 3 - Medium
  • 4 - Large
  • 5 - Huge

Integer reference to creaturesize.2da although the 2da is essentially unused - see 2da page for more information, and also Creature Size.

Don't use other integers in this column - they are invalid and will likely cause weird things.

PERCEPTIONDIST9ranges.2da line reference

This is strictly a ranges.2da entry when the creatures Perception Range is set to "Default" in the toolset / creature file.

Due to a bug the range is set back to this when a save game is loaded losing stuff put on the blueprint.

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

FOOTSTEPTYPE0footstepsounds.2da line reference

Check footstepsounds.2da for different options. This is the sounds on each tile surface material.

Use -1 for "no sound" such as floating Will o' Wisps or Birds or Bats.

Footstep sounds fire when the animation event "snd_footstep" is registered against an animation in a MDL file, so even with this referenced it needs those present (eg in the "cwalk" animation) to fire.

SOUNDAPPTYPE0appearancesndset.2da line reference

Check appearancesndset.2da for different options.

HEADTRACK1

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_H600 - 180, but usually 60 maxHorizontal range of head tracking in degrees. Lowering it can stop excessive clipping of heads with the rest of the model.
HEAD_ARC_V300 - 180, but usually 30 maxVertical range of head tracking in degrees. Lowering it can stop excessive clipping of heads with the rest of the model.
HEAD_NAMEhead_gModel 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_BAG6bodybag.2da line reference

See bodybag.2da. What gets left on the ground after the creature dies and the corpse is set to fade out.

TARGETABLE1

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.

  • No labels