This page lists all monster entities and their associated model files. This is intended to be a reference for
scripted_sequence
where animations are stored in the model files.
There's also the
Body and
Skin columns which denotes how entities handle such keyvalues if given by mappers.
Towards the end of the page is a little section for the various entities and keyvalues related to prop model placements.
Monsters and Items
Legend
Table columns:
Entity |
Name of the entity |
Model |
path to model associated with entity |
Body |
How the entity handles the body keyvalue |
Skin |
How the entity handles the skin keyvalue |
Values for body and skin:
✔️ |
Direct value support |
📃 |
Use a fixed enumerated value |
❌ |
Discarded / unused |
❔ |
Unknown, but tend for direct value support |
See the notes at the bottom of this page for more info.
Table
Notes
- For what direct value support means, and how to calculate the values, consult Entity Programming - Introduction to Entities with Animated Models#Low-level animation control and skip to the part where
body
and skin
are discussed.
- The paths are relative to their respective mod folders relative to Half-Life executable:
- Half-Life =
valve/
- Half-Life: Opposing Force =
gearbox/
- Half-Life: Blue Shift =
bshift/
- The models in the expansion packs generally have extra animations not present in Half-Life.
- Dead monsters usually has an enumeration of
pose
values.
- Applying dead poses to living monsters with
scripted_sequences
usually don't actually make them dead. Best to use env_sprite
for that.
Props
To facilitate prop model placement, this section tabulates properties of select entities, and how they handle keyvalues (
body
/
skin
/
sequence
/
frame
/
framerate
).
These keyvalues for model display are usually driven by code, but you can set them in the editor to apply an initial value at spawn. Unfortunately, you can't change them afterwards.
Entity |
Nonsolid/Moveable |
Body |
Skin |
Sequence |
Frame |
Framerate |
Loopable/Freezeable |
Remarks |
cycler |
❌/❌ |
✔️ |
✔️ |
✔️ |
✔️ |
❌→ 1 |
✔️/✔️ (Toggle) |
Beware of cyclic functions. |
cycler_sprite |
❌/❌ |
✔️ |
✔️ |
✔️ |
❌ |
❌→ 1 |
✔️/✔️ (Toggle) |
" |
env_sprite |
✔️/❌ |
❌ |
❌ |
✔️ |
❌ |
✔️ |
✴️/✔️ (OFF/ON) |
Plays a sequence once and then freezes. |
monster_furniture |
✔️/❌ |
✔️ |
✔️ |
❌* |
❌ |
❌ |
❌/❌ |
Requires scripted_sequence to set sequence. |
monster_generic |
🚩/✔️ |
✔️ |
✔️ |
❌ |
❌ |
❌ |
❌/❌ |
Alive, aggroes enemies. |
Legend
- Moveable - Whether the entity can be pushed around by other entities
- 🚩 - Enabled via spawnflag
- ✴️ - Manual looping required
Notes
- Corpses of NPCs without dead poses →
env_sprite
with the dying sequence and framerate = 8 to speed it up.
- Statue in a still pose from a sequence →
cycler
with sequence and frame set.
- Animating props →
cycler
with sequence, or monster_furniture
with animating idle pose (or scripted_sequence
with idle animation)
Other keyvalues
A few other keyvalues you might want to, or have to, use, to get models to display properly.
controller
The keyvalue
controller
is the combination of four bone controller values. Bone controllers are used on some models to parametrically modify the position of certain bones on the model by the specified value within the specified range. For example, the length of the tongue of the
monster_barnacle
is controlled by bone controller #0. Scientists and Barneys also has a controller that specifies their heads' right-to-left tilt, plus a mouth controller that is unfortunately not available to use from this keyvalue.
The absolute range of motion (distance or angle) is set in the .mdl file using QC commands (e.g. 0 to 1024 for the barnacle tongue). You only get to specify the ratio with the controller values e.g. 0 is the absolute minimum in the range of motion set for the bone, 127 is halfway, 255 is the max.
The four values are encoded in the 0-255 range, and bit-shifted to the right by (
n*8
) to fit into
controller
. Therefore:
controller = controller0<<0 | controller1<<8 | controller2<<16 | controller3<<24
If you're placing models of talking NPCs as props and they have their heads tilted all the way to the right, try set controller #0's value to 127 (halfway, therefore facing straight-on), arriving at
controller
value of 127.
colormap
The keyvalue
colormap
is the combination of "top" and "bottom" colours as seen on player models. You can employ colour ranges on your prop models so instead of using separate
skin
values you can have 65535 unique colour combinations on a model.
The303.org has a tutorial on how to do colour remaps. To choose the value, use Half-Life Asset Manager.
env_sprite
doesn't supportbody
andskin
is that apparently those values were hijacked by the sprite renderer as part of the system that makes sprites attached to models in one of their attachment points.