Critter FRM nomenclature (naming system)

**Critter FRM nomenclature** typically uses an 8 character naming system for animation files in the Fallout series prior to Fallout 3.

## List of .LST files

The .LST files contain references to the names for pretty much everything used by the game engine to make the game playable. References include artwork, sound files, scripts, and proto files. I plan to expand this list with descriptions of each file and how to edit if necessary.

```
\critter.dat\art\critters\CRITTERS.LST

```

```
\master.dat\proto\TILES\PATTERNS\patterns.lst

\master.dat\proto\SCENERY\scenery.lst

\master.dat\proto\TILES\TILES.LST

\master.dat\proto\CRITTERS\critters.lst

\master.dat\proto\ITEMS\items.lst

\master.dat\proto\MISC\MISC.LST

\master.dat\art\walls\WALLS.LST

\master.dat\art\walls\NEW.LST

\master.dat\art\tiles\TILES.LST

\master.dat\art\skilldex\SKILLDEX.LST

\master.dat\art\inven\INVEN.LST

\master.dat\art\items\ITEMS.LST

\master.dat\art\misc\MISC.LST

\master.dat\art\inven\NEW.LST

\master.dat\art\items\NEW.LST

\master.dat\art\scenery\NEW.LST

\master.dat\art\scenery\SCENERY.LST

\master.dat\art\heads\HEADS.LST

\master.dat\art\intrface\INTRFACE.LST

\master.dat\art\backgrnd\BACKGRND.LST

\master.dat\sound\SFX\SNDLIST.LST

\master.dat\scripts\SCRIPTS.LST

\master.dat\proto\WALLS\walls.lst

```

### art\critters\CRITTERS.LST

This is a list of all the .FRM animation files used to create a critter. New FRM files must be added to this list before they can be attached to a critter's proto file.

It has the format:

[FRM name (first 6 letters)], [Line number in CRITTERS.LST - used to reference Aimed Shot screen], [Whether Run animations are included]

The first few lines of CRITTERS.LST look like this:

```
reserv

hapowr,21,1

harobe,11,1

```

Line counting starts at 0 (zero), so "reserv" is on line 0, "hapowr,21,1" is on line 1, etc...

If an aimed shot screen is included with an animation, leaving the second number "blank?" will use that animation. Changing this number to reference a different line will change the Aimed Shot screen to whatever animation is listed on the referenced line, but will ignore any other lines referenced in the new one.

For example:

"hapowr" references line 21 and "harobe" references line 11. If "harobe" referenced line 1, the engine would try to pull the Aimed Shot screen for "hapower", NOT the screen from line 21. If "hapower" did not have an Aimed Shot screen, then the engine would use a blank screen instead of looking for line 21's reference.

## Critter Naming System

When naming new FRM's for new Critters in Fallout 2, a specific naming convention is expected by the game so it recognizes which FRM to play during a specific action.

The naming convention works like this:

FRM names are usually 8 characters, letters and numbers are allowed (possibly other characters but I haven't tested yet). The last 2 characters (character numbers 7 and 8 afaik) are used to identify the animation type.

This is a list of the 2 character identifier used by the game to attach new animations to their critter.

Walk Animations only have 8 Frames

```
Run Animations have 10 Frames

```

> Here is a list of all of the appearances in critter.dat:
>
>
>
>
>
>  HA NPWR = Adv. Power Armor
>
>  HA POWR = Power Armor
>
>  HA ROBE = Purple Robes
>
>
>
>  HF CMBT = Fem Combat Armor
>
>  HF JMPS = Fem Vault13 Jump suit
>
>  HF LTHR = Fem Leather Armor
>
>  HF MAXX = Fem Leather Jacket
>
>  HF METL = Fem Metal Armor
>
>  HF PRIM = Fem Primitive
>
>
>
>  HM BJMP = Black Male Vault13 Jump suit
>
>  HM BMET = Black Male Metal Armor
>
>  HM CMBT = Male Combat Armor
>
>  HM JMPS = Male Vault13 Jump suit
>
>  HM LTHR = Male Leather Armor
>
>  HM MAXX = Male Leather Jacket
>
>  HM METL = Male Metal Armor
>
>  HM WARR = Male Primitive
>
>
>
>  MA ANTT = Ant
>
>  MA BOS2 = Franky Torso half
>
>  MA BOSS = Franky
>
>  MA BRAN = King rat
>
>  MA BROM = Brahmin
>
>  MA CLAW = Adult Deathclaw
>
>  MA CLW2 = Baby DeathClaw
>
>  MA CYBR = Robo Dog
>
>  MA DDOG = Dog
>
>  MA DEGG = Egg
>
>  MA DETH = Grey Deathclaw
>
>  MA FEYE = Eye Robot
>
>  MA FIRE = Fire Gecko
>
>  MA GCKO = Golden Gecko
>
>  MA GUN2 = Plasma Turret
>
>  MA GUNN = Mini Turret
>
>  MA HAND = Mr. Handy
>
>  MA LIEN = Alien/Wanamingo
>
>  MA MANT = Mantis
>
>  MA MRAT = Mole Rat
>
>  MA MTN2 = Super Mutant Leather
>
>  MA MTNT = Super Mutant
>
>  MA MURT = Pig Rat
>
>  MA PLNT = Mutant Plant
>
>  MA QUEN = Queen Wanamingo
>
>  MA ROBE = Goris
>
>  MA ROBO = Brain bot
>
>  MA ROBT = Assault bot
>
>  MA SCP2 = Baby Radscorpion
>
>  MA SCRP = Radscorpion
>
>  MA SPHN = Floater
>
>  MA SRAT = Rat
>
>  MA THNG = Centaur
>
>
>
>  NA BLUE = Blue Robe
>
>  NA BRWN = Brown Robe
>
>  NA CHLD = Child
>
>  NA GHUL = Ghoul
>
>  NA GLOW = Glow Ghoul
>
>  NA POWR = Power Armor w/o Helmet
>
>  NA ROBE = Rag robes
>
>  NA VGUL = Vault Ghoul
>
>  NA WHIT = Black Robe
>
>
>
>  NF ASIA = Asian Fem
>
>  NF BRLP = Fem Blonde Peasant
>
>  NF LYNN = Lynette
>
>  NF MAXX = Fem Leather Punkette
>
>  NF METL = Fem Redhead Metal Armor
>
>  NF NICE = Fem Blonde Renogirl
>
>  NF PEAS = Fem Redhead Peasant
>
>  NF PRIM = Fem Ponytail Primitive
>
>  NF TRMP = Fem Tramp
>
>  NF VALT = Fem Vaultsuit
>
>  NF VRED = Fem Vaultsuit Redhead
>
>
>
>  NM ASIA = Asian Male Peasant
>
>  NM BONC = Bouncer Bluesuit
>
>  NM BOXX = Boxer
>
>  NM BPEA = Black Male Peasant
>
>  NM BRLP = Male Peasant
>
>  NM BRSR = Bouncer Blacksuit
>
>  NM BSNP = Male Peasant Balding
>
>  NM COPP = Police Officer
>
>  NM DOCC = Doctor
>
>  NM FATT = Vic
>
>  NM GANG = Asian Blue Guard
>
>  NM GRCH = Midget
>
>  NM LABB = Labcoat
>
>  NM LOSR = Male Junkie
>
>  NM LTHR = Male Bald Leather Armor
>
>  NM MAXX = Male Longhair Leather Jacket
>
>  NM MEXI = Mordino Guard
>
>  NM MYRN = Myron
>
>  NM NICE = Male Tuxedo
>
>  NM OLDD = Old man McGee
>
>  NM PEAS = Male Hat Peasant
>
>  NM RGNG = Asian Red Guard
>
>  NM VALT = Male Vaultsuit
>
>  NM WARR = Male Primitve
>
>  RESERV = Funny flame guy
>
>
>
> Answer by Ruin. (more details)
>
>
>
> The meaning of the last two letters in frm names:
>
>
>
>  (A\_) MOVEMENTS:
>
>  AA - IDLE
>
>  AB - WALK
>
>  AE - CLIMB
>
>  AG - WEARING/TAKING OFF ROBE (Goris ONLY)
>
>  AK - PICK UP
>
>  AL - USE
>
>  AN - DODGE
>
>  AO - HIT\_FRONT
>
>  AP - HIT\_BACK
>
>  AQ - PUNCH
>
>  AR - KICK
>
>  AS - THROW
>
>  AT - RUN
>
>  AU - UNKNOWN (???, check hmlthrau.frm, probably obsolete/redundant OR used in in-game NEW RENO cutscenes)
>
>
>
>  (B\_) DEATH/UNCONSCIUOS:
>
>  BA - FALLING\_BACK
>
>  BB - FALLING\_FRONT
>
>  BC - FALLING\_BACK (???, check hfcmbtbc.fr0-5, it's half-missing "ba - FALLING\_BACK" animation)
>
>  BD - HOLE\_IN\_BODY
>
>  BE - FALLING\_BACK\_BURNED
>
>  BF - RIPPING\_APART
>
>  BG - PERFORATED\_DEATH
>
>  BH - FALLING\_BACK\_ELECTRIC\_BURNED
>
>  BI - SLICE\_IN\_TWO
>
>  BJ - FALLING\_FRONT\_FIRE\_BURNED
>
>  BK - ELECTRIC\_BURNED\_TO\_ASHES
>
>  BL - BLOW\_EXPLOSION
>
>  BM - MELTDOWN
>
>  BN - BURNING\_DANCE (FIRE\_DANCE)
>
>  BO - BLEEDING\_BACK
>
>  BP - BLEEDING\_FRONT
>
>
>
>  (c\_) MOVEMENTS:
>
>  CH - GET\_UP\_FRONT
>
>  CJ - GET\_UP\_BACK
>
>
>
>  (d\_) KNIFE ANIMATIONS:
>
>  DA - KNIFE\_IDLE
>
>  DB - KNIFE\_WALK
>
>  DC - KNIFE\_PULL\_OUT
>
>  DD - KNIFE\_PUT\_IN
>
>  DE - KNIFE\_DODGE
>
>  DF - KNIFE\_ATTACK\_THRUST
>
>  DG - KNIFE\_ATTACK\_SWING
>
>  DM - KNIFE\_ATTACK\_THROW
>
>
>
>  (E\_) MELEE WEAPONS ANIMATIONS:
>
>  EA - MELEE\_IDLE
>
>  EB - MELEE\_WALK
>
>  EC - MELEE\_PULL\_OUT
>
>  ED - MELEE\_PUT\_IN
>
>  EE - MELEE\_DODGE
>
>  EF - MELEE\_THRUST
>
>  EG - MELEE\_SWING
>
>
>
>  (F\_) HAMMER WEAPONS ANIMATIONS:
>
>  FA - HAMMER\_IDLE
>
>  FB - HAMMER\_WALK
>
>  FC - HAMMER\_PULL\_OUT
>
>  FD - HAMMER\_PUT\_IN
>
>  FE - HAMMER\_DODGE
>
>  FF - HAMMER\_THRUST
>
>  FG - HAMMER\_SWING
>
>
>
>  (G\_) SPEAR ANIMATIONS:
>
>  GA - SPEAR\_IDLE
>
>  GB - SPEAR\_WALK
>
>  GC - SPEAR\_PULL\_OUT
>
>  GD - SPEAR\_PUT\_IN
>
>  GE - SPEAR\_DODGE
>
>  GF - SPEAR\_ATTACK\_THRUST
>
>  GG - SPEAR\_ATTACK\_SWING (???, check it in hfjmpsgg.frm)
>
>  GM - SPEAR\_ATTACK\_THROW
>
>
>
>  (H\_) PISTOL WEAPONS ANIMATIONS:
>
>  HA - PISTOL\_IDLE/RELOAD
>
>  HB - PISTOL\_WALK
>
>  HC - PISTOL\_PULL\_OUT
>
>  HD - PISTOL\_PUT\_IN
>
>  HE - PISTOL\_DODGE
>
>  HH - PISTOL\_AIM
>
>  HI - PISTOL\_PULL\_DOWN
>
>  HJ - PISTOL\_SHOT
>
>
>
>  (I\_) SMG WEAPONS ANIMATIONS:
>
>  IA - SMG\_IDLE/RELOAD
>
>  IB - SMG\_WALK
>
>  IC - SMG\_PULL\_OUT
>
>  ID - SMG\_PUT\_IN
>
>  IE - SMG\_DODGE
>
>  IH - SMG\_AIM
>
>  II - SMG\_PULL\_DOWN
>
>  IJ - SMG\_SHOT
>
>  IK - SMG\_BURST
>
>
>
>  (J\_) RIFLE WEAPONS ANIMATIONS:
>
>  JA - RIFLE\_IDLE/RELOAD
>
>  JB - RIFLE\_WALK
>
>  JC - RIFLE\_PULL\_OUT
>
>  JD - RIFLE\_PUT\_IN
>
>  JE - RIFLE\_DODGE
>
>  JH - RIFLE\_AIM
>
>  JI - RIFLE\_PULL\_DOWN
>
>  JJ - RIFLE\_SHOT
>
>  JK - RIFLE\_BURST
>
>
>
>  (K\_) HEAVY\_WEAPON WEAPONS ANIMATIONS:
>
>  KA - HEAVY\_WEAPON\_IDLE/RELOAD
>
>  KB - HEAVY\_WEAPON\_WALK
>
>  KC - HEAVY\_WEAPON\_PULL\_OUT
>
>  KD - HEAVY\_WEAPON\_PUT\_IN
>
>  KE - HEAVY\_WEAPON\_DODGE
>
>  KH - HEAVY\_WEAPON\_AIM
>
>  KI - HEAVY\_WEAPON\_PULL\_DOWN
>
>  KJ - HEAVY\_WEAPON\_SHOT
>
>  KK - HEAVY\_WEAPON\_BURST
>
>  KL - FLAMER\_SHOT
>
>
>
>  (L\_) MINIGUN/GATTLING\_LASER WEAPONS ANIMATIONS:
>
>  LA - MINIGUN/GATTLING\_LASER\_IDLE/RELOAD
>
>  LB - MINIGUN/GATTLING\_LASER\_WALK
>
>  LC - MINIGUN/GATTLING\_LASER\_PULL\_OUT
>
>  LD - MINIGUN/GATTLING\_LASER\_PUT\_IN
>
>  LE - MINIGUN/GATTLING\_LASER\_DODGE
>
>  LH - MINIGUN/GATTLING\_LASER\_AIM
>
>  LI - MINIGUN/GATTLING\_LASER\_PULL\_DOWN
>
>  LK - MINIGUN/GATTLING\_LASER\_BURST
>
>
>
>  (M\_) ROCKET\_LAUNCHER WEAPONS ANIMATIONS:
>
>  MA - ROCKET\_LAUNCHER\_IDLE/RELOAD
>
>  MB - ROCKET\_LAUNCHER\_WALK
>
>  MC - ROCKET\_LAUNCHER\_PULL\_OUT
>
>  MD - ROCKET\_LAUNCHER\_PUT\_IN
>
>  ME - ROCKET\_LAUNCHER\_DODGE
>
>  MH - ROCKET\_LAUNCHER\_AIM
>
>  MI - ROCKET\_LAUNCHER\_PULL\_DOWN
>
>  MJ - ROCKET\_LAUNCHER\_SHOT
>
>
>
>  (N\_) TARGET\_PICTURE:
>
>  na - TARGET PICTURE
>
>
>
>  (R\_) DEAD\_BODIES ANIMATIONS:
>
>  RA - DEAD\_LYING\_BACK
>
>  RB - DEAD\_LYING\_FRONT
>
>  RC - DEAD\_LYING\_BACK (???, it looks the same as \*\*\*\*\*\*ra.frm, check hfcmbtrc.frm, probably unused)
>
>  RD - DEAD\_LYING\_HOLE
>
>  RE - DEAD\_LYING\_BURNED
>
>  RF - DEAD\_LYING\_PERFORATED\_FRONT
>
>  RG - DEAD\_LYING\_PERFORATED\_BACK
>
>  RH - DEAD\_LYING\_BURNED (???, the same as \*\*\*\*\*\*re.frm, this was probably intended to be ELECTRIC\_BURNED)
>
>  RI - DEAD\_LYING\_SLICE\_IN\_TWO
>
>  RJ - DEAD\_LYING\_ASHES
>
>  RK - ASHES (!!!literaly)
>
>  RL - DEAD\_LYING\_BLOW\_EXPLOSION
>
>  RM - DEAD\_LYING\_MELTDOWN
>
>  RO - DEAD\_LYING\_BLEED\_BACK
>
>  RP - DEAD\_LYING\_BLEED\_FRONT
>
>
>
> Answer by lisac2k.
>
>
>
> The meaning of the first two letters in frm names:
>
>
>
>  HA = Hero Androgynous
>
>  HF = Hero Female
>
>  HM = Hero Male
>
>  NA = NPC Androgynous
>
>  NF = NPC Female
>
>  NM = NPC Male
>
>  MA = Monster Androgynous
>
>
>
> Answer by Wild\_qwerty and requiem\_for\_a\_starfury (more details)
>
>
>
> Talking Head FRM Index:
>
>
>
>  B = Bad mood
>
>  G = Good Mood
>
>  N = Nuetral Mood
>
>  f1 = Blink
>
>  f2 = Nod
>
>  f3 = Shake
>
>  (B,G,N)P = Talk
>
>  (B,G,N)(B,G,N) = Mood transition from (B,G,N) to (B,G,N)
>
>
>
> Talking Head Example:
>
>
>
>  Lynetbf1.frm = Bad Blink
>
>  Lynetbf2.frm = Bad Nod
>
>  Lynetbf3.frm = Bad Head shake - speak
>
>  Lynetbn.frm = Transition - Bad to neutral
>
>  Lynetbp.frm = Bad Speak
>
>
>
>  Lynetgf1.frm = Good Blink
>
>  Lynetgf2.frm = Good Nod - speak
>
>  Lynetgf3.frm = Good Shake - smile
>
>  Lynetgn.frm = Transition - Good to neutral
>
>  Lynetgp.frm = Good Talk
>
>
>
>  Lynetnf1.frm = nuetral Blink
>
>  Lynetnf2.frm = nuetral nod
>
>  Lynetnf3.frm = nuetral shake
>
>  Lynetnb.frm = Transition - nuetral to Bad
>
>  Lynetng.frm = Transition - nuetral to Good
>
>  Lynetnp.frm = nuetral talk
>
>
>
> Also see this thread.
>
>
>
>
> Answer by Wild\_qwerty (more details)
>
>

## Target Screen (VATS/Aimed Shot/Called Shot)

```
   (N_) TARGET_PICTURE:

   na - TARGET PICTURE

```

For example, if your critter FRM set uses "MYCRITXX", you should name
the new aimed shot FRM as MYCRITNA.frm. And in critters.lst, the line
```
152    MYCRIT,151,1

```

(the first number is the line number in your text editor.)

You also need to set up the hit location text for it in combat.msg:

Code:

```
{2510}{}{text_head}
{2511}{}{text_left_arm}
{2512}{}{text_right_arm}
{2513}{}{text_torso}
{2514}{}{text_right_leg}
{2515}{}{text_left_leg}
{2516}{}{text_eyes}
{2517}{}{text_groin}
{2518}{}{uncalled}

```

The message numbers are: 1000 + (second parameter in critters.lst) \* 10 + (hit location)

## **Scripting .frm in animations**

**ABel**
This article is based on "Script Animation-1" document by Communist.

To animate some action of a critter (punching, falling, running etc) it is sufficient to use the following sequence of commands:

```

   { Sequencing Critter1 to make some actions: }
   RegAnimFunc (2, <critter1_addr>); { Exact purpose is unknown, }
   RegAnimFunc (1, 1); { but this is how the animation is made in FO scripts. }
   RegAnimAnimate (<critter1_addr>, <action1_id>, -1); { Critter1 does Action1 }
   RegAnimAnimate (<critter1_addr>, <action2_id>, -1); { Critter1 does Action2 }

   ... and so on ...

   RegAnimAnimate (<critter1_addr>, <actionN_id>, -1); { Critter1 does ActionN }
   RegAnimFunc (3, 0); { This is also a standard call. }

   { Sequencing Critter2: }
   RegAnimFunc (2, <critter2_addr>);
   RegAnimFunc (1, 1);
   RegAnimAnimate (<critter2_addr>, <actionI_id>, -1);
   RegAnimAnimate (<critter2_addr>, <actionJ_id>, -1);

   ...

   RegAnimAnimate (<critter2_addr>, <actionK_id>, -1);
   RegAnimFunc (3, 0);

   { Sequencing Critter3: }

   ...

```

In the above fragment, critter\_addr
 is the address of any critter, for example, it could be Player (to make
 Chosen One dance), Self (in some creature's script) and so on.

### Action Ids

Action\_ids are determined from the following table:

CODE:

```
  AA  0     AK  10     BA  20     BK  30
  AB  1     AL  11     BB  21     BL  31
  AC  2     AM  12     BC  22     BM  32
  AD  3     AN  13     BD  23     BN  33
  AE  4     AO  14     BE  24     BO  34
  AF  5     AP  15     BF  25     BP  35
  AG  6     AQ  16     BG  26     CH  36
  AH  7     AR  17     BH  27     CJ  37
  AI  8     AS  18     BI  28     GC  38
  AJ  9     AT  19     BJ  29

```

The two letters here correspond to the suffix of a critter's FRM file, which visualizes the action.

Number in the second column is action\_id of that action. For example, to
 show a punching Chosen One, the following code can be used:

```
   RegAnimFunc (2, Player);
   RegAnimFunc (1, 1);
   RegAnimAnimate (Player, 16, -1); { *** from table: 16 = AQ *** }
   RegAnimFunc (3, 0);

```

FRM file with punching
 tribal is called "HMWARRAQ.FRM", where HMWARR means "a tribal", and AQ -
 "punching". This is why 16 is used in this fragment.

When RegAnim\* code is executed, all the critters in question start to make specified actions at the same time.

For example, critter1 is punching, and critter2 is evading meanwhile.

But separate actions are made by any given critter strictly successive.

In addition to RegAnimAnimate opcode there are

```
   RegAnimObjMoveToTile (<critter_addr>, <tile_number>, -1); - walking to specified tile
   RegAnimObjRunToTile (<critter_addr>, <tile_number>, -1); - running to a tile
   RegAnimAnimateReverse (<critter_addr>, <action_id>, -1); - reverse animation for an action

```

and some other.

Also there are SfxBuildCharName and RegAnimPlaySfx opcodes that allow to add sound effects to actions.

## References

1. ↑ https://www.nma-fallout.com/threads/critter-lst-frms-question-solved.219311/#post-4381451
2. ↑ https://web.archive.org/web/20080709002848/http://modguide.nma-fallout.com/#Graphics011
3. ↑ https://www.nma-fallout.com/threads/aimed-shot-frm-for-critters.219897/
4. ↑ https://web.archive.org/web/20090722161411/http://www.duckandcover.cx/forums/viewtopic.php?t=3740
5. ↑ https://www.nma-fallout.com/threads/indexing-frms.155276/
6. ↑ https://fodev.net/files/fo2/anim\_names.html
7. ↑ https://www.nma-fallout.com/threads/critter-lst-frms-question-solved.219311/#post-4381451