This is the GoldSrc QC compile commands glossary. It is important to note that any of the commands must not be capitalized or you will get compile errors.

Jump to Sequence & Sub commands list
Jump to Action tags
Jump to Event List
Jump to QC examples
Jump to Sven-Coop compiler new commands


Command line arguments

While not QC code, its worth mentioning first command line arguments avalible to studiomdl.exe. Also Note that Crowbar has a field for these:

-t <texture.bmp> : Globally replaces all textures in model with specified one.
-r: Tags reversed normals in compile output console; example:
triangle reversed (0.748195 0.949818 0.839380)
-a <angle> : set vertex normal blend angle override.
-h: Dump hitbox information to compile console; example:
$hbox 0 "atm" -10.49 -15.81 0.00 10.49 15.81 91.87


Commenting in a QC file:

You can comment in two different ways, the first and most common is the standard "//" or if you need a large block of text use "/*" to start and "*/" to finish. Examples:
// this is where the reference mesh is

/*
----------------
ATM QC
By TheCorp303
www.the303.org
----------------
*/


$modelname <name>.mdl
This command tells Studiomdl what name to give the model. For example:
$modelname mymodel.mdl

You can also specify an absolute path like so making sure you have quotations:
$modelname "C:\Program Files (x86)\Steam\steamapps\common\Half-Life\valve\models\mymodels\prop_rock.mdl"


$cd <path>
This command tells the Studiomdl where to look for the model sources. CD stands for "change directory" which is just like the DOS command. For same folder use like this:
$cd ".\"
For relative folder path use like this:
$cd ".\model_sources"
For a specified absolute path use like this:
$cd "C:\Users\303\Desktop\model_sources"


$cdtexture <path>
This command is needed if the textures are stored in a different location than the other model parts. Relative path example:
$cdtexture ".\8bitbmp"
Absolute path example:
$cdtexture "C:\Users\303\Desktop\model_sources\8bitbmp"


$cliptotextures
Studiomdl by default cuts the texture size to the bounds of the UV map, which was likley a texture memory optimization. That beheviour causes problems with many models such as causing visible edge lines and its advisable to use this command which stops this from happening. Note: The Sven-Coop studiomdl.exe did away with the auto cut so the command is not needed with that compiler.
Example:
$cliptotextures


$scale #
When this command is in the beginning of the QC before any $body meshes or animation $sequences, this acts as a scale multiplier for the whole model. Default value is 1.0. Example making the model bigger:
$scale 2.0
Example making the model smaller:
$scale 0.5

NOTE: The scale command can work on different spots of the QC and have multiple placements for example, any sequence or body mesh below the placement of this command will be affected. If you want animations bones scaled from one point onwards you can put a $scale partway through your QC and put another $scale to return to 1.0 or whatever. This can be useful when dealing with scaling crouching sequences in a section of sequences.

There are also inline specific scale commands avalible for $body/bodygroup & $sequence.


$texrendermode <texturename>.bmp <render type>
This command sets special texture render modes on a specified texture. In vanilla Half-Life you have two choices which is masked (AKA: AlphaTest transparency) and additive (Additive color blending). Note that this will be affected by light recieved by model. If you need unaffected additive, then do not use this command, leave the textures as is and use a model entity rendermode to additive in hammer/J.A.C.K.). If you need two flags on the same texture you must put a seprate entry as you cannot put masked & additive in the same line option.
Example usage for two textures:
$texrendermode ashtray.bmp masked
$texrendermode embersmoke.bmp additive

Other mods have additional rendermodes but you must use thier specific compilers. Sven-Coop and XASH3D have fullbright as an avalible choice which is full lighting at all times. Sven-Coop also has flatshade which makes lights the texture without the model normals for more uniform lighting. Basically the texture only gets brighter and darker, no shaded areas.
Example usage for Sven-Coop:
$texrendermode atmscreen.bmp fullbright

Lastly, you can assign these flags after compile with HLMV Standalone & P2MV.


$gamma #
Optional command used for changing the gamma on all your texture BMP files. The default starting number is 1.8. For darker increase the number and for brighter lower the number. Example
$gamma 2.0


$origin <X> <Y> <Z> <Rotation>
This optional command will work as global offset for the model origin if placed before your $body line as well as a Z-axis rotation. This is used for correcting positions and animations along X Y & Z axis co-ordinates and/or rotation. Note: This command will change all subsequent sequences until a second $origin command is found later in the qc file. If you need an origin change on only a specific sequence see the notes on the $sequence command. The most common use of this is Z-axis correction for Playermodels and weapons:
$origin 0 0 36

Example for rotating the whole model 180 degrees:
$origin 0 0 0 180


$bbox <X> <Y> <Z> <X2> <Y2> <Z2>
Rarley used optional command "Bounding Box" is used for view clipping or movement hull. Only needed for huge or long monsters that may be culled by the renderer due to view obscuring. The first and second XYZ co-ordinates are the opposite corners of the box. This must be centered at the world origin so X = -X2, Y= -Y2 and Z=0 and Z2 is height of box.
Example from Blast Pit Tentacle:
$bbox -400 -400 0 400 400 850

Note: This command is only used for very specific monsters and the actual dimensions is usually overriden by game code.


$cbox <X> <Y> <Z> <X2> <Y2> <Z2>
Rarley used optional command "Clipping Box" is used for view clipping box. Only needed for huge or long monsters that may be culled by the renderer due to view obscuring. The first and second XYZ co-ordinates are the opposite corners of the box. This must be centered at the world origin so X = -X2, Y= -Y2 and Z=0 and Z2 is height of box. Usually repeated coordinates with $bbox command.

This box will also show up in J.A.C.K editor as the yellow wire box around your model. This has its uses for models like the barnacle so you can get a visual on how long the tounge extends/grapple area.

Example from Blast Pit Tentacle: $cbox -400 -400 0 400 400 850

Note: This command is only used/needed for very specific monsters like barnacle and the actual dimensions is usually overriden by game code.


$eyeposition
Used for monster entities to define where the eyes are in reference to the models origin. The game AI uses this position on the model to see you from.
Example for Barney's eyeposition:
$eyeposition 0 0 63


$body <smd name>
This identifies main reference mesh of your model. Example:
$body studio "mymodel_ref"
An optional setting is placing reverse after the smd name will flip all the faces of the model mesh. This is done as a fix for export problems. Example:
$body studio "mymodel_ref" reverse

scale <value> is also avalible command on the body line to specifically scale the mesh (NOTE: this scales mesh only and does not affect the bones). Example:
$body studio "mymodel_ref" scale 1.5


$bodygroup <smd name> {smd groups }
This defines swappable meshes on your model. This is used for things like scientist head variants, and weapon variants on a model. The first mesh in the list will show up first and others will be chosen as "body" 1,2,ect (Default is 0). Using blank in the list makes no mesh appear on that bodygroup selection. Note:that bodygroup reference meshes must have the same skeleton bones as the model its on or it may not show up properly on the model. Example:
$bodygroup <name>
{
  studio "part1_ref"
  studio "part2_ref"
  blank
}

Just like in $body, both reverse & scale is avalible too if placed on specific lines. You can also put both scale and reverse on the same line if needed.

Example:
$bodygroup <name>
{
  studio "part1_ref" reverse
  studio "part2_ref" scale 1.5
  blank
}


$flags #
This optional command adds a special effect or other modification to the model. Note: to include multiple flags you simply add the ones you want and the result is the one you use. However, you can not use two quake particle based effects together.

Flag Number Description
1 Quake1 Rocket trail particle + Dynamic Light. An orange to grey particle trail. This produces a trail only when the model is in motion (not animation). Dymamic light will not stop until this model is removed from the game so use this only on things like weapon projectiles
2 Quake1 Grenade smoke trail. This produces a trail only when the model is in motion (not animation).
4 Quake1 Gib blood trail. This produces a trail only when the model is in motion (not animation).
8 Automatic model rotation. Model spins slowly on the Z-axis much like Quake-style powerups. Does not work in normal HL1; only mods that have this will.
16 Quake1 Skrag spit effect. Shoots green particles continuously from side to side outward until model is removed from game.
32 Quake 1 Zombie blood. Same as gib blood but darker.
64 Quake1 Death Knight slash effect. Like the Skrag spit effect but with orange & yellow particles
128 Quake1 Single burning smoke trail. Like smoke trail but just one stream. In XASH3D this is a purple trail that is spread out.
256 "No shadelight". Reduces the shadows on a model by roughly 50%. Good for flying models or models that benefit from less harsh shadows like cartoon style models.
512 "Complex colision". This makes the model use hitboxes for collision instead of the game bounding box. Used for the tentacle monster in "Blast Pit" chapter.
1024 "Force Skylight". This lights the model directly from the maps Env_light entity at all times no matter where it is in the map.

Example usage:
$flags 256


$texturegroup <smd name> {bmp texture groups }
This defines changable skins on your model. This is used for things like skin color or clothes variants. The formatting is in each line put all the starting textures, and then in the second line or more put the replacement textures. Note: that you must use the .bmp file extension in your groups. Example from HECU grunt model:
$texturegroup arms
{
  { "newarm.bmp" "handback.bmp" "helmet.bmp" }
  { "newarm(dark).bmp" "handback(dark).bmp" "helmet(dark).bmp" }
}


$renamebone <bone to be renamed> <replacement name>
Optional command to rename any bones of your skeletion. Used mostly to fix skeleton name mismatches between other SMDs like animations or other meshes. Example:
$renamebone "Bip01 R Calf" "Bip01 R Leg1"


$mirrorbone <bone to be mirrored>
Optional command to mirror any bones Z axis position (this will not affect rotation). This will also affect the positioning of any bones parented to it.
Example:
$mirrorbone "propbase"


$include <filename for .qc>
This command is used to include separate .qc files if needed. Separating qc files can be useful if you need common shared commands or just for orginization purposes. Relative example: $include ".\shared\hitboxes.qc"
Absolute example:
$include "C:\Users\303\Desktop\model_sources\hitboxes.qc"


$attachment <ID#> <"bone name"> <X> <Y> <Z>
Specifies an attachment on a bone used mainly for muzzle flashes and shell ejection points. There is a limit of 4 of these per model. ID is the identification number going from 0 to 3. Bone name is the attachment bone and must be used with quotes. XYZ is the point of attachment from the bones local co-ordinates. For example 0 0 0 is the exact bone location and 0 0 5 is 5 units on the Z axis from the bone location. Example:
$attachment 0 "bip01 R hand" 25 0 5

Note that in older SDK QC files there is reference to "X" at the end of the line and another number but this seems non-functional


$hbox <Group #> <"bone name"> <X> <Y> <Z> <X2> <Y2> <Z2>
By default studiomdl checks if you have an $hbox line, and if it is not present then it automatically creates hit boxes on every bone using the skinned mesh attached to it as an approxomation of the size. When you do use this command it will only make hitboxes on those bones with declared $hbox lines. $hbox is also used to edit the size and damage groups of hitboxes.

Note: For blender users who create their bones from scratch and not an import may have issues with automatic hitbox generation due to the bone co-ordiante space.

The first and second XYZ co-ordinates are the opposite corners of the hit box which are in the local bone space. To obtain hitbox co-ordinates for a starting point for you to edit, you can tell studiomdl to dump them in a text file with the -h command for example:
studiomdl.exe -h mymodel.qc >hitboxes.txt
Alternativley if you are using Crowbar.exe there is a checkbox option for this. For testing purposes, you can use a model viewer to see your hitbox. In-game you can use the console command r_drawentities 4 for hitboxes overlayed on your model or r_drawentities 3 for just the hitboxes.

Hitboxes are divided into several different groups (automatic hitboxes are always starting at group 0). Groups will determine different action tags on sequences (Jump to Action tags
) for flinch and death anims. Note that unless a special animation is mentioned in this table, then these generic anims will play:
ACT_SMALL_FLINCH, ACT_DIEVIOLENT,
ACT_DIEFORWARD & ACT_DIEBACKWARD(these two are based on damage direction)

Hitbox Group Group description Special Flinch&Death Animations
0 Generic
1 Head Flinch anim:ACT_FLINCH_HEAD
Die Anim: ACT_DIE_HEADSHOT
2 Chest
3 Stomach Flinch anim: ACT_FLINCH_STOMACH
Die anim: ACT_DIE_GUTSHOT
4 Left Arm Flinch anim: ACT_FLINCH_LEFTARM
5 Right Arm Flinch anim: ACT_FLINCH_RIGHTARM
6 Left Leg Flinch Anim: ACT_FLINCH_LEFTLEG
7 Right Leg Flinch Anim: ACT_FLINCH_RIGHTLEG

Damage groups not only act as damage multipliers but also cause the model to play different animations like flinches or different deaths like headshots. Beyond 7 are some NPC specific ones, and in Half Life they are usually 10 & 11:

Barney NPC hitgroup 10: Will act as armor, subtracting 20 damage from incoming attacks while performing a ricochet effect if the resulting damage is negative.
Agrunt NPC hitgroup 10: Bulletproof
Turret NPC hitgroup 10: Always 0.1 damage upon hitting hitgroup 10, 1/10 chance to make a ricochet effect.
Miniurret NPC hitgroup 10: Always 0.1 damage upon hitting hitgroup 10, 1/10 chance to make a ricochet effect.
Hgrunt NPC hitgroup 11: Will act as armor on bodygroup 1 (helmet head hgrunt), subtracting 20 damage from incoming attacks while performing a ricochet effect if the resulting damage is negative.

Example:
$hbox 3 "Bip01 Pelvis" -9.890000 -5.660000 -8.600000 2.940000 6.520000 6.790000

Lastly, hitboxes can be edited on-model with the most recent HLMV:Standalone (Hitbox tab), or in 3d editor if using 3dsmax WallWorm. If making for Xash3d you can use P2MV.


$controller <ID#> <"bone name"> <controller axis> <axis limit 1> <axis limit 2>
A controller is used by the game code to change the rotation or movement of the bone. This is commonly used for rotation of scientist heads, apache gun turret aim, barnacle tounge length and the special controller "mouth" which uses any audio on the audio channel of the model as automatic movement. ID is the unique identifier of the controller.

There are two types of axis, rotational and linear for example rotational is XR,YR, and ZR and linear is X,Y,Z. It is important to note that controller bones inherit their local axis from the parent bone so if your controller is not rotating the way you want it you may have to create a parent bone before it with a fifferent orientation. The two controller axis limits define the range of the movement. Rotational controller example from Barneys head (on X rotation):
$controller 0 "Bip01 Head" XR -60 60
Linear controller example with barnacle tounge (on Y axis):
$controller 0 "Bone15" Y -1024 0
Special Mouth controller from scientist (on Z rotation):
$controller 4 "Mouth" ZR 0 22


Sequence & Sub Commands List

$sequence <sequence name> <SMD path> {
[<blend smd path>]
[Motion extraction (types: LX,LY,LZ)]
[Axis zero out (types: X, Y, Z)]
[fps <#>]
[loop]
[origin <X> <Y> <Z>]
[rotate <angle>]
[scale <#>]
[blend <axis> <start> <end>]
[frame <start> <end>]
[action tag <#>]
[ {event <# type> <frame of event> "options"} ]
}

The Sequence command is for animation sequences. The sequence name is the name given to the sequence and the sequence path is the name and relative path (if needed) of the smd file. Even if the model has no animations it must have at least one sequence in order to compile. The most basic use of a sequence command for a static unanimated prop is using the reference SMD as your idle sequence. Example:
$sequence "idle" "wrld_glock"

The sequence command can be written in-line for simpler sequences but more complicated ones should be enclosed in brackets. An example of an inline sequence from scientist:
$sequence "diesimple" "diesimple" fps 24 ACT_DIESIMPLE 1 { event 2001 8 }

For more complicated sequences it is better to write out in expanded lines with brackets in this example from the scientist model:
$sequence "tentacle_grab" "tentacle_grab" {
  fps 15
  { event 1000 1 }
  { event 1004 4 "*scientist/scream02.wav" }
  { event 1003 18 "smash" }
  { event 1004 65 "*scientist/c1a4_sci_tent.wav" }
}

Examples of using relative paths are as follows:
$sequence longjump "..\cinematics\troom\holo_longjump" fps 30

An important thing to note about sequences is if you are working on a playermodel you must not alter the order of sequences or else your playermodel will break in-game. Also FPS for playermodels is locked-in.

From this point on a break down of the sub-commands of sequence will be presented in blue:


[blend smd path]
The path of the animation smd to be blended with. Must be used with [blend]. Example:
$sequence aim_2 "ref_aimdown_twohanded" "ref_aimup_twohanded" loop fps 14 blend XR -45 45


[motion extraction]
The type of motion extraction used on a model. Motion extraction takes the animation movement and translates it into model movement. The distance of the movement on the axis in the animation determines the speed & distance of the model travel. There are three types LX, LY, and LZ. If you use 3Dsmax LX is actually max Y dimension and LY is max X dimension. Example:
$sequence walk "ref_walk" lx loop fps 31


[Axis zero out]
Putting an X, Y or Z in this spot will zero out all animation movement on that axis. Example from hgrunt:
$sequence diegutshot "gutshot" X fps 30 ACT_DIE_GUTSHOT 1 { event 11 10 } { event 2001 39 }

Another example from the cut "hvyweapons" monster:
$sequence die_crumple "diecrumple" X Y ACT_DIESIMPLE 1


[fps]
FPS determines the speed at which the animation sequence is played. The word fps is followed by the number so you have created a sequence at 30 then use 30. You can speed up or slow down for example, if you use a lower number the sequence is slower and the frames are interpolated as such. Example:
$sequence deep_idle "new_idle3" loop fps 12 ACT_IDLE 4

Note: Do NOT use a negative value to reverse the animation. If you do your animation will break horribly.


[loop]
Loop repeats the sequence so it plays in an endless loop. This is useful for idle, and walking animations. Example:
$sequence "idle1" "idle1" fps 7 loop ACT_IDLE 50


[origin]
This is used for correcting the origin offset of your animation sequence along X Y & Z axis co-ordinates. This functions exactly like $origin but is for an individual sequence. If you need to offset a huge group of sequences, just use an $origin command on its own line before your affected sequences. The most common use of this is Z-axis correction for Playermodels during certain animations:
$sequence crawl "crouch_moveforward" lx loop fps 22 ACT_CROUCH 1 origin 0 0 18


[rotate]
This command is a rotation the sequence on the Z (vertical) axis in degrees. Example:
$sequence crouch_idle "crouch_idle" loop fps 12 ACT_CROUCHIDLE 1 origin 0 0 18 rotate 8


[scale]
This is used to scale the animation sequence bones larger or smaller. The multiplier works in the same way as $scale. Example:
$sequence barn_wave "barney_wave" fps 22 scale 1.04


[blend]
The declaration of a blended sequence and the axis to which the two animations are blended and the range. Axis choices are XR, YR, , ZR for rotations and X, Y, Z for linear. Example:
$sequence "ref_draw_saw" "ref_draw_saw_blend1" "ref_draw_saw_blend2" blend XR -70 70


[frame]
This is used to to limit or cut an animation smd to a specified length. The frame is followed by the declared start frame of your smd and the second is the ending frame of your animation. Very useful for last minute fixes on sequences that may be too long without having to re-export. Example:
$sequence dieviolent "BARNEY-X_Die_Violent1" fps 20 frame 0 26 ACT_DIE_HEADSHOT 1 { event 2001 10 }


[action tag]
Action tags are tags recongized by the monsters AI. They are an action name followed by a weigting number and an action tag can only be used once per sequence. A weighting number determines how often animations using this tag will play. For example if you have two sequences with ACT_WALK and one has a higher number, the game will choose that one more often when calling a walk animation (Using 1 will disable the weighting feature).
Example:
$sequence smflinch "flinchsm2" fps 20 ACT_SMALL_FLINCH 5

Example of a bunch of idles from scientist model:
$sequence "idle1" "idle1" fps 7 loop ACT_IDLE 50
$sequence "idle3" "idle3" fps 12 ACT_IDLE 3
$sequence "idle4" "idle4" fps 12 ACT_IDLE 2
$sequence "idle5" "idle5" fps 13 ACT_IDLE 3
$sequence "idle6" "idle6" fps 13 ACT_IDLE 3
$sequence "idle7" "idle7" fps 13 ACT_IDLE 10

A list of Action tags can be found in at the bottom of this page.


[Event]
Animation events contain a wide variety of things that happen on your sequence. These events can do things like play sounds, sentence lines, muzzle flashes, and other things. They are contained within brackets and begin with the words "event" then the number class, then the frame number for the event to happen on and finally an event option.

An example of making a sequence that plays a sound through the scientist voice channel (causing mouth animation) using event 1008 on frame 1 of the sequence (wav path is relative to sound folder in base game dir):
$sequence "checktie" "checktie" fps 12 { event 1008 1 "scientist/weartie.wav" }

The 5000-series events are for muzzleflashes and you must have an $attachment defined on your model in order for them to work. A quick rundown of the muzzleflash is the 5001 event is for attachment1, 5021 is attachment2, and 5031 is attachment3. After the event number is the frame of the muzzleflash and finally is the sprite scale and type. For example a scale of 5 with muzzleflash1.spr would be "50" and muzzleflash2.spr with a scale of 2 would be "21".

An example of the 5000 series:
$sequence shootgun "shootgun_blend1" "shootgun_blend2" fps 25 ACT_RANGE_ATTACK1 1 blend XR -50 50 { event 5001 0 "21" } { event 3 0 }

Monster models can have their own custom events that can be anything that is defined in their AI code for example this event called "47" for Hgrunt spawns a grenade on frame 7:
$sequence throwgrenade "grenadethrow" fps 30 { event 7 46 } ACT_RANGE_ATTACK2 1


Event List

(This list was obtained from the "Modeling For Half-Life.doc" in the Half-Life SDK.)

Event Event description Extra parameters
1000 Character dead at this point
1001 Sequence un-interruptible from this point
1002 Sequence interruptible from this point
1003 Fires a trigger in the map Trigger name
1004 Play .wav file .Wav file path
1005 Play sentence file Sentence file path
1006 Do not send character back to floor at end of script
1007 Go to this animation after script completes Animation sequence name
1008 Play named .wav file through voice channel .Wav file path
1009 Play random sentence group (25 % chance)
1010 Character is alive at this point
Monster specific events
2001 Monster drops light body
2002 Monster drops heavy body
2010 Monster plays swing or swish sound

Clientside events for viewmodels
5001 Muzzleflash on attachment 0 Muzzle flash scale & sprite type
5002 Spark on attachment
5004 Emit a sound Wav file path
5011 Muzzleflash on attachment 1 Muzzle flash scale & sprite type
5021 Muzzleflash on attachment 2 Muzzle flash scale & sprite type
5031 Muzzleflash on attachment 3 Muzzle flash scale & sprite type
6001 Eject a brass shell from attachment

Sven-Coop Events

Event Event description Extra parameters
2003 Plays footstep sound matching the material type set for the map textures (concrete, tile, dirt, metal, etc)
5004 Custom sound format using FMOD system (AIFF, ASF, DLS, FLAC, IT, M3U, MID, MOD, MP2, MP3, OGG, S3M, VAG, WAV, WMA, XM) custom sound path
5005 Use a custom sprite with paramaters defined via txt file txt file path (path looks in "events" folder). Example txt file and usage found in "muzzle_example.txt" in the events folder.


Action Tags List

(This list was obtained from the "Modeling For Half-Life.doc" in the Half-Life SDK.)

Action Tag Description
ACT_ARM Activate weapon (e.g. draw gun)
ACT_BARNACLE_CHEW Barnacle is holding the monster in its mouth ( loop )
ACT_BARNACLE_CHOMP Barnacle latches on to the monster
ACT_BARNACLE_HIT Barnacle tongue hits a monster
ACT_BARNACLE_PULL Barnacle is lifting the monster ( loop )
ACT_BIG_FLINCH Large reaction to non-specific hit
ACT_BITE This plays one time eat loops for large monsters which can eat small things in one bite
ACT_COMBAT_IDLE. Agitated idle, played when monster expects to fight
ACT_COWER Display a fear behavior
ACT_CROUCH The act of crouching down from a standing position
ACT_CROUCHIDLE Hold body in crouched position (loop)
ACT_DETECT_SCENT This means the monster smells a scent carried by the air
ACT_DIE_BACKSHOT Die hit in back
ACT_DIE_CHESTSHOT (non-functional) Die hit in chest
AACT_DIE_GUTSHOT (non-functional) Die hit in gut
ACT_DIE_HEADSHOT Die hit in head.
ACT_DIEBACKWARD Die falling backwards
ACT_DIEFORWARD Die falling forwards
ACT_DIESIMPLE Death animation
ACT_DIEVIOLENT Exaggerated death animation
ACT_DISARM Put away weapon (e.g. re-holster gun)
ACT_EAT Monster chewing on a large food item (loop)
ACT_EXCITED For some reason monster is excited. Sees something he really likes to eat or whatever.
ACT_FALL Looping animation for falling monster
ACT_FEAR_DISPLAY Monster just saw something that it is afraid of
ACT_FLINCH_CHEST Flinch from chest hit
ACT_FLINCH_HEAD Flinch from head hit
ACT_FLINCH_LEFTARM Flinch from left arm hit
ACT_FLINCH_LEFTLEG Flinch from left leg hit
ACT_FLINCH_RIGHTARM Flinch from right arm hit
ACT_FLINCH_RIGHTLEG Flinch from right leg hit
ACT_FLINCH_STOMACH Flinch from stomach hit
ACT_FLY Fly (and flap if appropriate) Fly (lx loop)
ACT_FLY_LEFT Turn left in flight
ACT_FLY_RIGHT Turn right in flight
ACT_GLIDE Fly without wing movement (lx loop)
ACT_GUARD Defend an area
ACT_HOP Vertical jump
ACT_HOVER Idle while in flight (loop)
ACT_IDLE Default behavior when nothing else is going on (loop)
ACT_IDLE_ANGRY Alternate idle animation in which the monster is clearly agitated. (loop)
ACT_INSPECT_FLOOR For active idles -- look at something on or near the floor
ACT_INSPECT_WALL For active idles -- look at something directly ahead of you
(doesn't have to be a wall or on a wall )
ACT_LAND End of a jump
ACT_LEAP Long forward jump
ACT_MELEE_ATTACK1 Attack at close range
ACT_MELEE_ATTACK2 Alternate close range attack
ACT_RANGE_ATTACK1 Attack with ranged weapon
ACT_RANGE_ATTACK2 Alternate ranged attack
ACT_RELOAD Reload weapon
ACT_ROLL_LEFT Tuck and roll left
ACT_ROLL_RIGHT Tuck and roll right
ACT_RUN Run (loop)
ACT_RUN_HURT Limp (loop)
ACT_RUN_SCARED Run displaying fear (loop)
ACT_SIGNAL1 Signal
ACT_SIGNAL2 Alternate signal
ACT_SIGNAL3 Alternate signal
ACT_SLEEP Sleep (loop)
ACT_SMALL_FLINCH Small reaction to non-specific hit
ACT_SNIFF This is the act of actually sniffing an item in front of the monster
ACT_SPECIAL_ATTACK1 Monster specific special attack
ACT_SPECIAL_ATTACK2 Monster specific special attack
ACT_STAND The act of standing from a crouched position
ACT_STRAFE_LEFT Sidestep left while maintaining facing (loop)
ACT_STRAFE_RIGHT Sidestep right while maintaining facing (loop)
ACT_SWIM Swim (loop)
ACT_THREAT_DISPLAY Without attacking monster demonstrates that it is angry
ACT_TURN_LEFT Turn in place quickly left
ACT_TURN_RIGHT Turn in place quickly right
ACT_TWITCH Twitch
ACT_USE Use item
ACT_VICTORY_DANCE. Victory display after killing player
ACT_WALK Walk (loop)
ACT_WALK_HURT Limp or wounded walk (loop)
ACT_WALK_SCARED Walk with fear display (loop)

Obsolete Or Non-Functional Commands

These commands are here for the purposes of glossary completion, but should not be used as they are not needed, cause issues, or just do not do anything.


$externaltextures

Used for storing the model textures separately. This splits the model into two files, one the model name and the other the name plus "t". Originally used as an optimization command back in the Voodoo accelerator days to save on memory for when the model was off screen where the textures wouldnt be loaded until seen. Splitting models can easily cause conflicts and problems especially with multiplayer mods with downloadable content (filling up .res entiries too) and this command should be avoided.


$sequencegroupsize <# in KB>

An optimization command for splitting up the groups of animations into different model files so only animations would only be loaded when needed. As stated with $externaltextures, this creates lots of potential conflict issues with multiplayer mods.


$pivot

Non-Functional command. Possibly a bone controller predecessor.


$root <bone name>

Non-Functional command which was supposed to set the bone named to the root of the model heiarchy.


[AX AY AZ AZR AXR AYR] ($sequence sub-command)

Originally intended to extract relative movement distance between the first and current frame of XYZ axis, and the "R" ones being for rotation. This command shows up in sdk docs and decompiled models but is not needed since sequences appear to automatically set the monster location during sequence movement.


QC Examples:

Simple static model:

$modelname barrier.mdl
$cd ".\"
$scale 1
$cliptotextures

//reference mesh
$body studio barrier_ref

$sequence "idle" "barrier_ref"

Simple looping animated model:

$modelname ashtray.mdl
$cd ".\"
$cliptotextures

$scale 0.5

//Setting texture render modes
$texrendermode ashtray.bmp masked
$texrendermode embersmoke.bmp additive

//reference mesh
$body studio "ashtray_ref"

$sequence "idle" "ashtray_idle" fps 2 loop

Gib model. Gib models have multiple meshes set up by $bodygroup. These meshes are picked randomly by the engine when used as modelgibs, func_breakable gibs or by env_shooter/gibshooter entity.

$modelname bonegibs.mdl
$cd ".\"
$scale 1

$bodygroup parts
{
studio "bone1"
studio "bone2"
studio "bone3"
studio "bone4"
studio "bone5"

}

$sequence idle1    "bone_anim"

Turret monster model (from Half-Life SDK)

/*

turret.qc

*/

$modelname valve/models/turret.mdl
$cd valve/models/turret
$cdtexture valve/models/turret/maps_8bit
$externaltextures
$scale 1.5

// whole body
$body studio "turret_template1"

$controller 0 "dummy02" YR 0 360
$controller 1 "dummy05" ZR -90 15

$attachment 0 "dummy05" -46 4.5 0 X -1
$attachment 1 "dummy07" 0 8.5 0 Y 1

$hbox 10 "Trim01" -35.10 -30.40 -2.18  35.10 30.40 2.18
$hbox 10 "Top_Lid01" -30.57 -26.47 0  30.57 26.47 15.51
$hbox 1 "Pivot01" -20.57 -30.22 -15.96  20.80 17.55 9.89
//hbox 1 "Siren01" -2.89 -3.15 -3.59  2.89 3.15 3.59
$hbox 1 "Gun_Body01" -8.09 -14.83 -6.58  8.09 14.83 6.58
$hbox 1 "Barrels01" -6.13 -13.80 -5.56  6.13 13.80 5.29
$hbox 1 "Brace02" -9.09 -25.68 0.00  8.87 0.00 41.01

$sequence idle_off animation "turret_deploy1" frames 0 0 fps 1 
$sequence fire "turret_shoot1" fps 150 loop {
{ event 5001 0 "51" } { event 5001 10 "51" } { event 5001 20 "51" } 
// { event 5001 5 "1" } { event 5001 15 "1" } { event 5001 25 "1" }
}
$sequence spin "turret_spin_idle1" fps 33 loop
$sequence deploy "turret_deploy1" fps 30
$sequence retire "turret_deploy1" fps 10
$sequence die "turret_die1" fps 30

MP5 Weapon View Model (from Half-Life SDK)

/*
==============================================================================

mp5 machine gun viewmodel

==============================================================================
*/

$modelname valve/models/v_9mmAR.mdl
$cd valve/models/v_hkmp5-sd
$scale 1 

// whole body
$body studio "mp5sd"


//$origin	SIDE-SIDE IN-OUT  UP-DOWN
$origin 2 10 8

$attachment 0 "Bone09" -14 1 -0.5 X -1

$sequence longidle "long_idle" fps 8
$sequence idle1 "idle1" fps 35 
$sequence grenade "grenadeshoot" fps 30 

$sequence reload "reload" fps 30 {
{ event 5004 5 "items/cliprelease1.wav" } 
{ event 5004 24 "items/clipinsert1.wav" }
}

$sequence deploy "deploy" frame 4 15 fps 12
$sequence shoot "shoot1" fps 10 { event 5001 0 "20" }
$sequence shoot "shoot2" fps 10 { event 5001 0 "20" }
$sequence shoot "shoot3" fps 10 { event 5001 0 "20" }

HLDM Playermodel (from Half-Life SDK)

/*
==============================================================================

player

==============================================================================
*/

$modelname valve/models/player.mdl
$cd valve/models/player
$cdtexture valve/models/player/maps_8bit

$scale 1.0
$origin 0 0 36

// whole body
$bodygroup body
{
studio "player_template_biped(No_Head)1"
}

$bodygroup head
{
studio "player_template_biped(Gordon_Head)1"
studio "player_template_biped(Helmet)1"
}

$controller mouth "bone02" ZR 0 30

$include "valve/models/player/player_shared.qc"
separate "player_shared.qc" file:
// Charactor Studio R2 automatically renames bones, so rename then back to be compatible with old smd's
$renamebone "Bip01 L Thigh" "Bip01 L Leg"
$renamebone "Bip01 L Calf" "Bip01 L Leg1"
$renamebone "Bip01 R Thigh" "Bip01 R Leg"
$renamebone "Bip01 R Calf" "Bip01 R Leg1"
$renamebone "Bip01 L Clavicle" "Bip01 L Arm"
$renamebone "Bip01 L UpperArm" "Bip01 L Arm1"
$renamebone "Bip01 L Forearm" "Bip01 L Arm2"
$renamebone "Bip01 R Clavicle" "Bip01 R Arm"
$renamebone "Bip01 R UpperArm" "Bip01 R Arm1"
$renamebone "Bip01 R Forearm" "Bip01 R Arm2"

// make attachments points for muzzleflash effects
$attachment 0 "Bip01 R Hand" 20 2 5 X 1
$attachment 1 "Bip01 R Hand" 15 1.5 3.75 X 1
$attachment 2 "Bip01 R Hand" 30 3 7.5 X 1

// add backbone
$controller 0 "Bip01 Spine" XR -30 30
$controller 1 "Bip01 Spine1" XR -30 30
$controller 2 "Bip01 Spine2" XR -30 30
$controller 3 "Bip01 Spine3" XR -30 30

// set hitboxes
$hbox 3 "Bip01 Pelvis" -4.69 -4.44 -6.75  4.00 5.56 6.75
$hbox 6 "Bip01 L Leg" 2.66 -3.69 -3.09  18.16 4.88 3.31
$hbox 6 "Bip01 L Leg1" 0.38 -3.97 -2.84  17.60 4.00 2.94
$hbox 6 "Bip01 L Foot" -0.59 -2.34 -2.63  3.79 8.00 2.19
$hbox 7 "Bip01 R Leg" 2.47 -3.69 -3.16  18.13 4.88 3.38
$hbox 7 "Bip01 R Leg1" 0.31 -3.97 -2.84  17.60 3.94 2.97
$hbox 7 "Bip01 R Foot" -0.56 -2.34 -2.19  3.81 8.00 2.66
$hbox 3 "Bip01 Spine1" -3.25 -5.50 -5.50  4.83 5.50 5.50
$hbox 2 "Bip01 Spine2" -0.06 -5.53 -7.59  8.00 7.00 7.59
$hbox 2 "Bip01 Spine3" -2.25 -6.81 -6.31  6.50 5.09 6.31
$hbox 2 "Bip01 Neck" -3.11 -1.50 -3.00  2.05 3.50 3.00
$hbox 1 "Bip01 Head" 0.09 -3.66 -3.00  8.41 5.09 3.00
$hbox 4 "Bip01 L Arm" 0.94 -2.88 -4.13  5.44 4.28 3.50
$hbox 4 "Bip01 L Arm1" -2.16 -2.34 -2.56  11.56 3.41 2.38
$hbox 4 "Bip01 L Arm2" 0.59 -1.81 -2.19  10.75 2.84 2.41
$hbox 4 "Bip01 L Hand" 0.00 -1.00 -2.00  3.00 1.50 3.50
$hbox 5 "Bip01 R Arm" 1.38 -2.84 -3.56  5.69 4.31 4.31
$hbox 5 "Bip01 R Arm1" -1.88 -2.47 -2.16  11.81 3.28 2.81
$hbox 5 "Bip01 R Arm2" 0.44 -1.97 -2.34  10.59 2.72 2.22
$hbox 5 "Bip01 R Hand" 0.00 -1.00 -2.00  3.00 1.50 3.50
//$hbox 0 "Box01" -12.25 -4.00 -1.56  12.25 4.00 1.56


$sequence look_idle "new_idle2" loop fps 14 ACT_IDLE 2
$sequence idle "new_idle" loop fps 14 ACT_IDLE 1
$sequence deep_idle "new_idle3" loop fps 12 ACT_IDLE 4
$sequence run2 "new_run" lx loop fps 40 ACT_RUN 1
$sequence walk2handed "new_walk" lx loop fps 26 ACT_WALK 1
$sequence 2handshoot "shoot_2handed" fps 20 ACT_RANGE_ATTACK1 1
$sequence crawl "crouch_moveforward" lx loop fps 22 ACT_CROUCH 1 origin 0 0 18
$sequence crouch_idle "crouch_idle" loop fps 12 ACT_CROUCHIDLE 1 origin 0 0 18 rotate 8
$sequence jump "player_jump"  fps 30 ACT_HOP 1
$sequence long_jump "player_longjump" LX fps 24 ACT_LEAP 1
$sequence swim "player_swim" loop fps 14 ACT_SWIM 1 origin 0 0 0
$sequence treadwater "player_treadwater" loop fps 14 ACT_HOVER 1


$sequence run "ref_run" lx loop fps 31
$sequence walk "ref_walk" lx loop fps 31
$sequence aim_2 "ref_aimdown_twohanded" "ref_aimup_twohanded" loop fps 14 blend XR -45 45
$sequence shoot_2 "ref_shootdown_twohanded" "ref_shootup_twohanded" loop fps 14 blend XR -45 45
$sequence aim_1 "ref_aimdown_onehanded" "ref_aimup_onehanded" loop fps 14 blend XR -45 45
$sequence shoot_1 "ref_shootdown_onehanded" "ref_shootup_onehanded" loop fps 14 blend XR -45 45


//death animations
$sequence die_simple "die_simple" fps 22 ACT_DIESIMPLE 1 { event 2001 10 }
$sequence die_backwards1 "die_backward" fps 26 ACT_DIEBACKWARD 4 { event 2001 14 }
$sequence die_backwards "player_die2" fps 30 ACT_DIEBACKWARD 1 { event 2001 15 }
$sequence die_forwards "player_die1" fps 26 ACT_DIEFORWARD 1 { event 2001 9 }
$sequence headshot "die_headshot" fps 24 ACT_DIE_HEADSHOT 4 { event 2001 23 }
$sequence die_spin "player_die3" fps 30  ACT_DIE_HEADSHOT 1 { event 2001 16 }
$sequence gutshot "die_gutshot" fps 26 ACT_DIE_GUTSHOT 1 { event 2001 23 }

// fancy animation
// crowbar, grenade
$sequence ref_aim_crowbar "ref_aimdown_crowbar" "ref_aimup_crowbar" blend XR -45 45 fps 12 LOOP
$sequence ref_shoot_crowbar "ref_swingdown_crowbar" "ref_swingup_crowbar" blend XR -45 45 fps 24
$sequence crouch_aim_crowbar "crouch_aimdown_crowbar" "crouch_aimup_crowbar" blend XR -45 45 fps 12 LOOP origin 0 0 18
$sequence crouch_shoot_crowbar "crouch_swingdown_crowbar" "crouch_swingup_crowbar" blend XR -45 45 fps 24 origin 0 0 18
// tipmines, satchel
$sequence ref_aim_trip "ref_aimdown_trip" "ref_aimup_trip" blend XR -45 45 fps 12 LOOP
$sequence ref_shoot_trip "ref_placedown_trip" "ref_placeup_trip" blend XR -45 45 fps 18
$sequence crouch_aim_trip "crouch_aimdown_trip" "crouch_aimup_trip" blend XR -45 45 fps 12 LOOP origin 0 0 18
$sequence crouch_shoot_trip "crouch_placedown_trip" "crouch_placeup_trip" blend XR -45 45 fps 16 origin 0 0 18
// 9mm
$sequence ref_aim_onehanded "ref_aimdown_onehanded" "ref_aimup_onehanded" blend XR -50 35 fps 12 LOOP 
$sequence ref_shoot_onehanded "ref_shootdown_onehanded" "ref_shootup_onehanded" blend XR -50 35 fps 16 { event 5011 0 "21" }
$sequence crouch_aim_onehanded "crouch_aimdown_onehanded" "crouch_aimup_onehanded" blend XR -50 35 fps 12 LOOP origin 0 0 18
$sequence crouch_shoot_onehanded "crouch_shootdown_onehanded" "crouch_shootup_onehanded" blend XR -50 35 fps 16 { event 5011 0 "21" } origin 0 0 18
// python
$sequence ref_aim_python "ref_aimdown_onehanded" "ref_aimup_onehanded" blend XR -50 35 fps 12 LOOP 
$sequence ref_shoot_python "ref_shootdown_python" "ref_shootup_python" blend XR -50 35 fps 16  { event 5011 0 "31" }
$sequence crouch_aim_python "crouch_aimdown_onehanded" "crouch_aimup_onehanded" blend XR -50 35 fps 12 LOOP origin 0 0 18
$sequence crouch_shoot_python "crouch_shootdown_python" "crouch_shootup_python" blend XR -50 35 fps 16  { event 5011 0 "31" } origin 0 0 18
// shotgun
$sequence ref_aim_shotgun "ref_aimdown_shotgun" "ref_aimup_shotgun" blend XR -45 45 fps 12 LOOP
$sequence ref_shoot_shotgun "ref_shootdown_shotgun" "ref_shootup_shotgun" blend XR -45 45 fps 15 { event 5021 0 "51" }
$sequence crouch_aim_shotgun "crouch_aimdown_shotgun" "crouch_aimup_shotgun" blend XR -45 45 fps 12 LOOP origin 0 0 18
$sequence crouch_shoot_shotgun "crouch_shootdown_shotgun" "crouch_shootup_shotgun" blend XR -45 45 fps 15 { event 5021 0 "51" } origin 0 0 18
// gauss
$sequence ref_aim_gauss "ref_aimdown_guass" "ref_aimup_guass" blend XR -45 45 fps 12 LOOP
$sequence ref_shoot_gauss "ref_shootdown_guass" "ref_shootup_guass" blend XR -45 45 fps 15
$sequence crouch_aim_gauss "crouch_aimdown_guass" "crouch_aimup_guass" blend XR -45 45 fps 12 LOOP origin 0 0 18
$sequence crouch_shoot_gauss "crouch_shootdown_guass" "crouch_shootup_guass" blend XR -45 45 fps 15 origin 0 0 18
// mp5
$sequence ref_aim_mp5 "ref_aimdown_mp5" "ref_aimup_mp5" blend XR -45 45 fps 12 LOOP
$sequence ref_shoot_mp5 "ref_shootdown_mp5" "ref_shootup_mp5" blend XR -45 45 fps 20 LOOP { event 5001 0 "40" }
$sequence crouch_aim_mp5 "crouch_aimdown_mp5" "crouch_aimup_mp5" blend XR -30 40 fps 12 LOOP origin 0 0 18
$sequence crouch_shoot_mp5 "crouch_shootdown_mp5" "crouch_shootup_mp5" blend XR -30 40 fps 20 LOOP { event 5001 0 "40" } origin 0 0 18
// rpg
$sequence ref_aim_rpg "ref_aimdown_rpg" "ref_aimup_rpg" blend XR -45 40 fps 12 LOOP
$sequence ref_shoot_rpg "ref_shootdown_rpg" "ref_shootup_rpg" blend XR -45 40 fps 18
$sequence crouch_aim_rpg "crouch_aimdown_rpg" "crouch_aimup_rpg" blend XR -45 40 fps 12 LOOP origin 0 0 18
$sequence crouch_shoot_rpg "crouch_shootdown_rpg" "crouch_shootup_rpg" blend XR -45 40 fps 18 origin 0 0 18
// egon
$sequence ref_aim_egon "ref_aimdown_egon" "ref_aimup_egon" blend XR -45 35 fps 12 LOOP
$sequence ref_shoot_egon "ref_aimdown_egon" "ref_aimup_egon" blend XR -45 35 fps 18 LOOP
$sequence crouch_aim_egon "crouch_aimdown_egon" "crouch_aimup_egon" blend XR -45 45 fps 12 LOOP origin 0 0 18
$sequence crouch_shoot_egon "crouch_aimdown_egon" "crouch_aimup_egon" blend XR -45 45 fps 18 LOOP origin 0 0 18
// squeak
$sequence ref_aim_squeak "ref_aimdown_squeak" "ref_aimup_squeak" blend XR -45 45 fps 12 LOOP
$sequence ref_shoot_squeak "ref_shootdown_squeak" "ref_shootup_squeak" blend XR -45 45 fps 14
$sequence crouch_aim_squeak "crouch_aimdown_squeak" "crouch_aimup_squeak" blend XR -45 45 fps 12 LOOP origin 0 0 18
$sequence crouch_shoot_squeak "crouch_shootdown_squeak" "crouch_shootup_squeak" blend XR -45 45 fps 14 origin 0 0 18
// hive
$sequence ref_aim_hive "ref_aimdown_hive" "ref_aimup_hive" blend XR -45 45 fps 12 LOOP
$sequence ref_shoot_hive "ref_shootdown_hive" "ref_shootup_hive" blend XR -45 45 fps 15
$sequence crouch_aim_hive "crouch_aimdown_hive" "crouch_aimup_hive" blend XR -45 45 fps 12 LOOP origin 0 0 18
$sequence crouch_shoot_hive "crouch_shootdown_hive" "crouch_shootup_hive" blend XR -45 45 fps 15 origin 0 0 18
// crossbow
$sequence ref_aim_bow "ref_aimdown_bow" "ref_aimup_bow" blend XR -45 45 fps 12 LOOP
$sequence ref_shoot_bow "ref_aimdown_bow" "ref_aimup_bow" blend XR -45 45 fps 16
$sequence crouch_aim_bow "crouch_aimdown_bow" "crouch_aimup_bow" blend XR -45 45 fps 12 LOOP origin 0 0 18
$sequence crouch_shoot_bow "crouch_aimdown_bow" "crouch_aimup_bow" blend XR -45 45 fps 16 origin 0 0 18


//dead poses, we have to change the origin because of the way the 
// player model is arranged (sjb)
$origin 0 0 0
$sequence deadback "dead_pose_back" fps 10 
$sequence deadsitting "dead_pose_sitting" fps 10 
$sequence deadstomach "dead_pose_stomach" fps 10 
$sequence deadtable "dead_pose_table" fps 10
// ***** DO NOT PUT ANY MORE SEQUENCES BELOW THIS LINE! (sjb)

Decompiled Counter-Strike 1.6 Player model

$modelname "leet\leet.mdl"
$cd "."
$cdtexture "."
$cliptotextures
$scale 1.0

$bodygroup "studio"
{
	studio "leet_arab"
}
$bodygroup "backpack"
{
	blank
	studio "leet_bomb"
}

$flags 0


$attachment 0 "Bip01 R Hand" 10.855 -0.416715 1.87068
$attachment 1 "Bip01 L Hand" 10.855 -0.416715 1.87068

// Clipping box or view bounding box.
$cbox 0 0 0 0 0 0

// Bounding box or hull. Used for collision with a world object.
$bbox 0 0 0 0 0 0

$hbox 3 "Bip01 Pelvis" -4.69 -4.44 -6.75 4 5.56 6.75
$hbox 6 "Bip01 L Thigh" 2.66 -3.69 -3.09 18.16 4.88 3.31
$hbox 6 "Bip01 L Calf" 0.38 -3.97 -2.84 17.6 4 2.94
$hbox 6 "Bip01 L Foot" 0.85 -3.24 -2.64 5.73 8.53 3.17
$hbox 7 "Bip01 R Thigh" 2.47 -3.69 -3.16 18.129999 4.88 3.38
$hbox 7 "Bip01 R Calf" 0.31 -3.97 -2.84 17.6 3.94 2.97
$hbox 7 "Bip01 R Foot" 0.85 -3.24 -2.64 5.73 8.53 3.17
$hbox 3 "Bip01 Spine1" -3.25 -5.5 -5.5 4.83 5.5 5.5
$hbox 2 "Bip01 Spine2" -0.06 -5.53 -7.59 8 7 7.59
$hbox 2 "Bip01 Spine3" -2.25 -6.81 -6.31 6.5 5.09 6.31
$hbox 2 "Bip01 Neck" -3.11 -1.5 -3 2.05 3.5 3
$hbox 1 "Bip01 Head" -0.33 -4.5 -2.5 8 4.5 2.5
$hbox 4 "Bip01 L Clavicle" 0.94 -2.88 -4.13 5.44 4.28 3.5
$hbox 4 "Bip01 L UpperArm" -2.16 -2.34 -2.56 11.56 3.41 2.38
$hbox 4 "Bip01 L Forearm" 0.59 -1.81 -2.19 10.75 2.84 2.41
$hbox 4 "Bip01 L Hand" -0.132201 -1.90302 -2.23853 4.8629 2.07824 2.36979
$hbox 5 "Bip01 R Clavicle" 1.38 -2.84 -3.56 5.69 4.31 4.31
$hbox 5 "Bip01 R UpperArm" -1.88 -2.47 -2.16 11.81 3.28 2.81
$hbox 5 "Bip01 R Forearm" 0.44 -1.97 -2.34 10.59 2.72 2.22
$hbox 5 "Bip01 R Hand" -0.132201 -1.90302 -2.23853 4.8629 2.07824 2.36979
$hbox 8 "Bip01 L Hand" -16.1 -6.5 -19 10.6 1.5 33

$controller Mouth "Bone01" ZR 0 30

$sequence "dummy" {
	"leet_anims\dummy"
	fps 24
	loop
}
$sequence "idle1" {
	"leet_anims\idle1"
	ACT_IDLE 1
	fps 15
	loop
}
$sequence "crouch_idle" {
	"leet_anims\crouch_idle"
	ACT_CROUCHIDLE 1
	fps 10
	loop
}
$sequence "walk" {
	"leet_anims\walk"
	ACT_WALK 1
	fps 30
	loop
	LX
}
$sequence "run" {
	"leet_anims\run"
	ACT_RUN 1
	fps 60
	loop
	LX
}
$sequence "crouchrun" {
	"leet_anims\crouchrun"
	ACT_CROUCH 1
	fps 30
	loop
	LX
}
$sequence "jump" {
	"leet_anims\jump"
	ACT_HOP 1
	fps 36
}
$sequence "longjump" {
	"leet_anims\longjump"
	ACT_LEAP 1
	fps 36
}
$sequence "swim" {
	"leet_anims\swim"
	ACT_SWIM 1
	fps 30
	loop
}
$sequence "treadwater" {
	"leet_anims\treadwater"
	ACT_HOVER 1
	fps 24
	loop
}
$sequence "crouch_aim_carbine" {
	"leet_anims\crouch_aim_carbine_blend01"
	"leet_anims\crouch_aim_carbine_blend02"
	"leet_anims\crouch_aim_carbine_blend03"
	"leet_anims\crouch_aim_carbine_blend04"
	"leet_anims\crouch_aim_carbine_blend05"
	"leet_anims\crouch_aim_carbine_blend06"
	"leet_anims\crouch_aim_carbine_blend07"
	"leet_anims\crouch_aim_carbine_blend08"
	"leet_anims\crouch_aim_carbine_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "crouch_shoot_carbine" {
	"leet_anims\crouch_shoot_carbine_blend01"
	"leet_anims\crouch_shoot_carbine_blend02"
	"leet_anims\crouch_shoot_carbine_blend03"
	"leet_anims\crouch_shoot_carbine_blend04"
	"leet_anims\crouch_shoot_carbine_blend05"
	"leet_anims\crouch_shoot_carbine_blend06"
	"leet_anims\crouch_shoot_carbine_blend07"
	"leet_anims\crouch_shoot_carbine_blend08"
	"leet_anims\crouch_shoot_carbine_blend09"
	blend XR -90 90
	{ event 5001 0 "40" }
	fps 15
}
$sequence "crouch_reload_carbine" {
	"leet_anims\crouch_reload_carbine"
	fps 30
}
$sequence "ref_aim_carbine" {
	"leet_anims\ref_aim_carbine_blend01"
	"leet_anims\ref_aim_carbine_blend02"
	"leet_anims\ref_aim_carbine_blend03"
	"leet_anims\ref_aim_carbine_blend04"
	"leet_anims\ref_aim_carbine_blend05"
	"leet_anims\ref_aim_carbine_blend06"
	"leet_anims\ref_aim_carbine_blend07"
	"leet_anims\ref_aim_carbine_blend08"
	"leet_anims\ref_aim_carbine_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "ref_shoot_carbine" {
	"leet_anims\ref_shoot_carbine_blend01"
	"leet_anims\ref_shoot_carbine_blend02"
	"leet_anims\ref_shoot_carbine_blend03"
	"leet_anims\ref_shoot_carbine_blend04"
	"leet_anims\ref_shoot_carbine_blend05"
	"leet_anims\ref_shoot_carbine_blend06"
	"leet_anims\ref_shoot_carbine_blend07"
	"leet_anims\ref_shoot_carbine_blend08"
	"leet_anims\ref_shoot_carbine_blend09"
	blend XR -90 90
	{ event 5001 0 "40" }
	fps 15
}
$sequence "ref_reload_carbine" {
	"leet_anims\ref_reload_carbine"
	fps 30
}
$sequence "crouch_aim_onehanded" {
	"leet_anims\crouch_aim_onehanded_blend01"
	"leet_anims\crouch_aim_onehanded_blend02"
	"leet_anims\crouch_aim_onehanded_blend03"
	"leet_anims\crouch_aim_onehanded_blend04"
	"leet_anims\crouch_aim_onehanded_blend05"
	"leet_anims\crouch_aim_onehanded_blend06"
	"leet_anims\crouch_aim_onehanded_blend07"
	"leet_anims\crouch_aim_onehanded_blend08"
	"leet_anims\crouch_aim_onehanded_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "crouch_shoot_onehanded" {
	"leet_anims\crouch_shoot_onehanded_blend01"
	"leet_anims\crouch_shoot_onehanded_blend02"
	"leet_anims\crouch_shoot_onehanded_blend03"
	"leet_anims\crouch_shoot_onehanded_blend04"
	"leet_anims\crouch_shoot_onehanded_blend05"
	"leet_anims\crouch_shoot_onehanded_blend06"
	"leet_anims\crouch_shoot_onehanded_blend07"
	"leet_anims\crouch_shoot_onehanded_blend08"
	"leet_anims\crouch_shoot_onehanded_blend09"
	blend XR -90 90
	{ event 5001 0 "10" }
	fps 15
}
$sequence "crouch_reload_onehanded" {
	"leet_anims\crouch_reload_onehanded"
	fps 30
}
$sequence "ref_aim_onehanded" {
	"leet_anims\ref_aim_onehanded_blend01"
	"leet_anims\ref_aim_onehanded_blend02"
	"leet_anims\ref_aim_onehanded_blend03"
	"leet_anims\ref_aim_onehanded_blend04"
	"leet_anims\ref_aim_onehanded_blend05"
	"leet_anims\ref_aim_onehanded_blend06"
	"leet_anims\ref_aim_onehanded_blend07"
	"leet_anims\ref_aim_onehanded_blend08"
	"leet_anims\ref_aim_onehanded_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "ref_shoot_onehanded" {
	"leet_anims\ref_shoot_onehanded_blend01"
	"leet_anims\ref_shoot_onehanded_blend02"
	"leet_anims\ref_shoot_onehanded_blend03"
	"leet_anims\ref_shoot_onehanded_blend04"
	"leet_anims\ref_shoot_onehanded_blend05"
	"leet_anims\ref_shoot_onehanded_blend06"
	"leet_anims\ref_shoot_onehanded_blend07"
	"leet_anims\ref_shoot_onehanded_blend08"
	"leet_anims\ref_shoot_onehanded_blend09"
	blend XR -90 90
	{ event 5001 0 "10" }
	fps 15
}
$sequence "ref_reload_onehanded" {
	"leet_anims\ref_reload_onehanded"
	fps 30
}
$sequence "crouch_aim_dualpistols" {
	"leet_anims\crouch_aim_dualpistols_blend01"
	"leet_anims\crouch_aim_dualpistols_blend02"
	"leet_anims\crouch_aim_dualpistols_blend03"
	"leet_anims\crouch_aim_dualpistols_blend04"
	"leet_anims\crouch_aim_dualpistols_blend05"
	"leet_anims\crouch_aim_dualpistols_blend06"
	"leet_anims\crouch_aim_dualpistols_blend07"
	"leet_anims\crouch_aim_dualpistols_blend08"
	"leet_anims\crouch_aim_dualpistols_blend09"
	blend XR -90 90
	fps 10
	loop
}
$sequence "crouch_shoot_dualpistols" {
	"leet_anims\crouch_shoot_dualpistols_blend01"
	"leet_anims\crouch_shoot_dualpistols_blend02"
	"leet_anims\crouch_shoot_dualpistols_blend03"
	"leet_anims\crouch_shoot_dualpistols_blend04"
	"leet_anims\crouch_shoot_dualpistols_blend05"
	"leet_anims\crouch_shoot_dualpistols_blend06"
	"leet_anims\crouch_shoot_dualpistols_blend07"
	"leet_anims\crouch_shoot_dualpistols_blend08"
	"leet_anims\crouch_shoot_dualpistols_blend09"
	blend XR -90 90
	{ event 5011 0 "10" }
	fps 30
}
$sequence "crouch_shoot2_dualpistols" {
	"leet_anims\crouch_shoot2_dualpistols_blend01"
	"leet_anims\crouch_shoot2_dualpistols_blend02"
	"leet_anims\crouch_shoot2_dualpistols_blend03"
	"leet_anims\crouch_shoot2_dualpistols_blend04"
	"leet_anims\crouch_shoot2_dualpistols_blend05"
	"leet_anims\crouch_shoot2_dualpistols_blend06"
	"leet_anims\crouch_shoot2_dualpistols_blend07"
	"leet_anims\crouch_shoot2_dualpistols_blend08"
	"leet_anims\crouch_shoot2_dualpistols_blend09"
	blend XR -90 90
	{ event 5001 0 "10" }
	fps 30
}
$sequence "crouch_reload_dualpistols" {
	"leet_anims\crouch_reload_dualpistols"
	fps 30
}
$sequence "ref_aim_dualpistols" {
	"leet_anims\ref_aim_dualpistols_blend01"
	"leet_anims\ref_aim_dualpistols_blend02"
	"leet_anims\ref_aim_dualpistols_blend03"
	"leet_anims\ref_aim_dualpistols_blend04"
	"leet_anims\ref_aim_dualpistols_blend05"
	"leet_anims\ref_aim_dualpistols_blend06"
	"leet_anims\ref_aim_dualpistols_blend07"
	"leet_anims\ref_aim_dualpistols_blend08"
	"leet_anims\ref_aim_dualpistols_blend09"
	blend XR -90 90
	fps 10
	loop
}
$sequence "ref_shoot_dualpistols" {
	"leet_anims\ref_shoot_dualpistols_blend01"
	"leet_anims\ref_shoot_dualpistols_blend02"
	"leet_anims\ref_shoot_dualpistols_blend03"
	"leet_anims\ref_shoot_dualpistols_blend04"
	"leet_anims\ref_shoot_dualpistols_blend05"
	"leet_anims\ref_shoot_dualpistols_blend06"
	"leet_anims\ref_shoot_dualpistols_blend07"
	"leet_anims\ref_shoot_dualpistols_blend08"
	"leet_anims\ref_shoot_dualpistols_blend09"
	blend XR -90 90
	{ event 5011 0 "10" }
	fps 30
}
$sequence "ref_shoot2_dualpistols" {
	"leet_anims\ref_shoot2_dualpistols_blend01"
	"leet_anims\ref_shoot2_dualpistols_blend02"
	"leet_anims\ref_shoot2_dualpistols_blend03"
	"leet_anims\ref_shoot2_dualpistols_blend04"
	"leet_anims\ref_shoot2_dualpistols_blend05"
	"leet_anims\ref_shoot2_dualpistols_blend06"
	"leet_anims\ref_shoot2_dualpistols_blend07"
	"leet_anims\ref_shoot2_dualpistols_blend08"
	"leet_anims\ref_shoot2_dualpistols_blend09"
	blend XR -90 90
	{ event 5001 0 "10" }
	fps 30
}
$sequence "ref_reload_dualpistols" {
	"leet_anims\ref_reload_dualpistols"
	fps 30
}
$sequence "crouch_aim_rifle" {
	"leet_anims\crouch_aim_rifle_blend01"
	"leet_anims\crouch_aim_rifle_blend02"
	"leet_anims\crouch_aim_rifle_blend03"
	"leet_anims\crouch_aim_rifle_blend04"
	"leet_anims\crouch_aim_rifle_blend05"
	"leet_anims\crouch_aim_rifle_blend06"
	"leet_anims\crouch_aim_rifle_blend07"
	"leet_anims\crouch_aim_rifle_blend08"
	"leet_anims\crouch_aim_rifle_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "crouch_shoot_rifle" {
	"leet_anims\crouch_shoot_rifle_blend01"
	"leet_anims\crouch_shoot_rifle_blend02"
	"leet_anims\crouch_shoot_rifle_blend03"
	"leet_anims\crouch_shoot_rifle_blend04"
	"leet_anims\crouch_shoot_rifle_blend05"
	"leet_anims\crouch_shoot_rifle_blend06"
	"leet_anims\crouch_shoot_rifle_blend07"
	"leet_anims\crouch_shoot_rifle_blend08"
	"leet_anims\crouch_shoot_rifle_blend09"
	blend XR -90 90
	{ event 5001 0 "30" }
	fps 20
}
$sequence "crouch_reload_rifle" {
	"leet_anims\crouch_reload_rifle"
	fps 30
}
$sequence "ref_aim_rifle" {
	"leet_anims\ref_aim_rifle_blend01"
	"leet_anims\ref_aim_rifle_blend02"
	"leet_anims\ref_aim_rifle_blend03"
	"leet_anims\ref_aim_rifle_blend04"
	"leet_anims\ref_aim_rifle_blend05"
	"leet_anims\ref_aim_rifle_blend06"
	"leet_anims\ref_aim_rifle_blend07"
	"leet_anims\ref_aim_rifle_blend08"
	"leet_anims\ref_aim_rifle_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "ref_shoot_rifle" {
	"leet_anims\ref_shoot_rifle_blend01"
	"leet_anims\ref_shoot_rifle_blend02"
	"leet_anims\ref_shoot_rifle_blend03"
	"leet_anims\ref_shoot_rifle_blend04"
	"leet_anims\ref_shoot_rifle_blend05"
	"leet_anims\ref_shoot_rifle_blend06"
	"leet_anims\ref_shoot_rifle_blend07"
	"leet_anims\ref_shoot_rifle_blend08"
	"leet_anims\ref_shoot_rifle_blend09"
	blend XR -90 90
	{ event 5001 0 "30" }
	fps 20
}
$sequence "ref_reload_rifle" {
	"leet_anims\ref_reload_rifle"
	fps 30
}
$sequence "crouch_aim_mp5" {
	"leet_anims\crouch_aim_mp5_blend01"
	"leet_anims\crouch_aim_mp5_blend02"
	"leet_anims\crouch_aim_mp5_blend03"
	"leet_anims\crouch_aim_mp5_blend04"
	"leet_anims\crouch_aim_mp5_blend05"
	"leet_anims\crouch_aim_mp5_blend06"
	"leet_anims\crouch_aim_mp5_blend07"
	"leet_anims\crouch_aim_mp5_blend08"
	"leet_anims\crouch_aim_mp5_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "crouch_shoot_mp5" {
	"leet_anims\crouch_shoot_mp5_blend01"
	"leet_anims\crouch_shoot_mp5_blend02"
	"leet_anims\crouch_shoot_mp5_blend03"
	"leet_anims\crouch_shoot_mp5_blend04"
	"leet_anims\crouch_shoot_mp5_blend05"
	"leet_anims\crouch_shoot_mp5_blend06"
	"leet_anims\crouch_shoot_mp5_blend07"
	"leet_anims\crouch_shoot_mp5_blend08"
	"leet_anims\crouch_shoot_mp5_blend09"
	blend XR -90 90
	{ event 5001 0 "30" }
	fps 15
}
$sequence "crouch_reload_mp5" {
	"leet_anims\crouch_reload_mp5"
	fps 30
}
$sequence "ref_aim_mp5" {
	"leet_anims\ref_aim_mp5_blend01"
	"leet_anims\ref_aim_mp5_blend02"
	"leet_anims\ref_aim_mp5_blend03"
	"leet_anims\ref_aim_mp5_blend04"
	"leet_anims\ref_aim_mp5_blend05"
	"leet_anims\ref_aim_mp5_blend06"
	"leet_anims\ref_aim_mp5_blend07"
	"leet_anims\ref_aim_mp5_blend08"
	"leet_anims\ref_aim_mp5_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "ref_shoot_mp5" {
	"leet_anims\ref_shoot_mp5_blend01"
	"leet_anims\ref_shoot_mp5_blend02"
	"leet_anims\ref_shoot_mp5_blend03"
	"leet_anims\ref_shoot_mp5_blend04"
	"leet_anims\ref_shoot_mp5_blend05"
	"leet_anims\ref_shoot_mp5_blend06"
	"leet_anims\ref_shoot_mp5_blend07"
	"leet_anims\ref_shoot_mp5_blend08"
	"leet_anims\ref_shoot_mp5_blend09"
	blend XR -90 90
	{ event 5001 0 "30" }
	fps 15
}
$sequence "ref_reload_mp5" {
	"leet_anims\ref_reload_mp5"
	fps 30
}
$sequence "crouch_aim_shotgun" {
	"leet_anims\crouch_aim_shotgun_blend01"
	"leet_anims\crouch_aim_shotgun_blend02"
	"leet_anims\crouch_aim_shotgun_blend03"
	"leet_anims\crouch_aim_shotgun_blend04"
	"leet_anims\crouch_aim_shotgun_blend05"
	"leet_anims\crouch_aim_shotgun_blend06"
	"leet_anims\crouch_aim_shotgun_blend07"
	"leet_anims\crouch_aim_shotgun_blend08"
	"leet_anims\crouch_aim_shotgun_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "crouch_shoot_shotgun" {
	"leet_anims\crouch_shoot_shotgun_blend01"
	"leet_anims\crouch_shoot_shotgun_blend02"
	"leet_anims\crouch_shoot_shotgun_blend03"
	"leet_anims\crouch_shoot_shotgun_blend04"
	"leet_anims\crouch_shoot_shotgun_blend05"
	"leet_anims\crouch_shoot_shotgun_blend06"
	"leet_anims\crouch_shoot_shotgun_blend07"
	"leet_anims\crouch_shoot_shotgun_blend08"
	"leet_anims\crouch_shoot_shotgun_blend09"
	blend XR -90 90
	{ event 5001 0 "50" }
	fps 30
}
$sequence "crouch_reload_shotgun" {
	"leet_anims\crouch_reload_shotgun"
	fps 30
}
$sequence "ref_aim_shotgun" {
	"leet_anims\ref_aim_shotgun_blend01"
	"leet_anims\ref_aim_shotgun_blend02"
	"leet_anims\ref_aim_shotgun_blend03"
	"leet_anims\ref_aim_shotgun_blend04"
	"leet_anims\ref_aim_shotgun_blend05"
	"leet_anims\ref_aim_shotgun_blend06"
	"leet_anims\ref_aim_shotgun_blend07"
	"leet_anims\ref_aim_shotgun_blend08"
	"leet_anims\ref_aim_shotgun_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "ref_shoot_shotgun" {
	"leet_anims\ref_shoot_shotgun_blend01"
	"leet_anims\ref_shoot_shotgun_blend02"
	"leet_anims\ref_shoot_shotgun_blend03"
	"leet_anims\ref_shoot_shotgun_blend04"
	"leet_anims\ref_shoot_shotgun_blend05"
	"leet_anims\ref_shoot_shotgun_blend06"
	"leet_anims\ref_shoot_shotgun_blend07"
	"leet_anims\ref_shoot_shotgun_blend08"
	"leet_anims\ref_shoot_shotgun_blend09"
	blend XR -90 90
	{ event 5001 0 "50" }
	fps 30
}
$sequence "ref_reload_shotgun" {
	"leet_anims\ref_reload_shotgun"
	fps 30
}
$sequence "crouch_aim_m249" {
	"leet_anims\crouch_aim_m249_blend01"
	"leet_anims\crouch_aim_m249_blend02"
	"leet_anims\crouch_aim_m249_blend03"
	"leet_anims\crouch_aim_m249_blend04"
	"leet_anims\crouch_aim_m249_blend05"
	"leet_anims\crouch_aim_m249_blend06"
	"leet_anims\crouch_aim_m249_blend07"
	"leet_anims\crouch_aim_m249_blend08"
	"leet_anims\crouch_aim_m249_blend09"
	blend XR -90 90
	fps 10
	loop
}
$sequence "crouch_shoot_m249" {
	"leet_anims\crouch_shoot_m249_blend01"
	"leet_anims\crouch_shoot_m249_blend02"
	"leet_anims\crouch_shoot_m249_blend03"
	"leet_anims\crouch_shoot_m249_blend04"
	"leet_anims\crouch_shoot_m249_blend05"
	"leet_anims\crouch_shoot_m249_blend06"
	"leet_anims\crouch_shoot_m249_blend07"
	"leet_anims\crouch_shoot_m249_blend08"
	"leet_anims\crouch_shoot_m249_blend09"
	blend XR -90 90
	{ event 5001 0 "50" }
	fps 30
	loop
}
$sequence "crouch_reload_m249" {
	"leet_anims\crouch_reload_m249"
	fps 30
}
$sequence "ref_aim_m249" {
	"leet_anims\ref_aim_m249_blend01"
	"leet_anims\ref_aim_m249_blend02"
	"leet_anims\ref_aim_m249_blend03"
	"leet_anims\ref_aim_m249_blend04"
	"leet_anims\ref_aim_m249_blend05"
	"leet_anims\ref_aim_m249_blend06"
	"leet_anims\ref_aim_m249_blend07"
	"leet_anims\ref_aim_m249_blend08"
	"leet_anims\ref_aim_m249_blend09"
	blend XR -90 90
	fps 10
	loop
}
$sequence "ref_shoot_m249" {
	"leet_anims\ref_shoot_m249_blend01"
	"leet_anims\ref_shoot_m249_blend02"
	"leet_anims\ref_shoot_m249_blend03"
	"leet_anims\ref_shoot_m249_blend04"
	"leet_anims\ref_shoot_m249_blend05"
	"leet_anims\ref_shoot_m249_blend06"
	"leet_anims\ref_shoot_m249_blend07"
	"leet_anims\ref_shoot_m249_blend08"
	"leet_anims\ref_shoot_m249_blend09"
	blend XR -90 90
	{ event 5001 0 "50" }
	fps 30
	loop
}
$sequence "ref_reload_m249" {
	"leet_anims\ref_reload_m249"
	fps 30
}
$sequence "I_am_a_stupid_placeholder" {
	"leet_anims\I_am_a_stupid_placeholder"
	fps 30
	loop
}
$sequence "so_am_I" {
	"leet_anims\so_am_I"
	fps 30
}
$sequence "ref_aim_grenade" {
	"leet_anims\ref_aim_grenade_blend01"
	"leet_anims\ref_aim_grenade_blend02"
	"leet_anims\ref_aim_grenade_blend03"
	"leet_anims\ref_aim_grenade_blend04"
	"leet_anims\ref_aim_grenade_blend05"
	"leet_anims\ref_aim_grenade_blend06"
	"leet_anims\ref_aim_grenade_blend07"
	"leet_anims\ref_aim_grenade_blend08"
	"leet_anims\ref_aim_grenade_blend09"
	blend XR -90 90
	fps 20
	loop
}
$sequence "ref_shoot_grenade" {
	"leet_anims\ref_shoot_grenade_blend01"
	"leet_anims\ref_shoot_grenade_blend02"
	"leet_anims\ref_shoot_grenade_blend03"
	"leet_anims\ref_shoot_grenade_blend04"
	"leet_anims\ref_shoot_grenade_blend05"
	"leet_anims\ref_shoot_grenade_blend06"
	"leet_anims\ref_shoot_grenade_blend07"
	"leet_anims\ref_shoot_grenade_blend08"
	"leet_anims\ref_shoot_grenade_blend09"
	blend XR -90 90
	fps 45
}
$sequence "crouch_aim_grenade" {
	"leet_anims\crouch_aim_grenade_blend01"
	"leet_anims\crouch_aim_grenade_blend02"
	"leet_anims\crouch_aim_grenade_blend03"
	"leet_anims\crouch_aim_grenade_blend04"
	"leet_anims\crouch_aim_grenade_blend05"
	"leet_anims\crouch_aim_grenade_blend06"
	"leet_anims\crouch_aim_grenade_blend07"
	"leet_anims\crouch_aim_grenade_blend08"
	"leet_anims\crouch_aim_grenade_blend09"
	blend XR -90 90
	fps 20
	loop
}
$sequence "crouch_shoot_grenade" {
	"leet_anims\crouch_shoot_grenade_blend01"
	"leet_anims\crouch_shoot_grenade_blend02"
	"leet_anims\crouch_shoot_grenade_blend03"
	"leet_anims\crouch_shoot_grenade_blend04"
	"leet_anims\crouch_shoot_grenade_blend05"
	"leet_anims\crouch_shoot_grenade_blend06"
	"leet_anims\crouch_shoot_grenade_blend07"
	"leet_anims\crouch_shoot_grenade_blend08"
	"leet_anims\crouch_shoot_grenade_blend09"
	blend XR -90 90
	fps 45
}
$sequence "crouch_aim_c4" {
	"leet_anims\crouch_aim_c4_blend01"
	"leet_anims\crouch_aim_c4_blend02"
	"leet_anims\crouch_aim_c4_blend03"
	"leet_anims\crouch_aim_c4_blend04"
	"leet_anims\crouch_aim_c4_blend05"
	"leet_anims\crouch_aim_c4_blend06"
	"leet_anims\crouch_aim_c4_blend07"
	"leet_anims\crouch_aim_c4_blend08"
	"leet_anims\crouch_aim_c4_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "crouch_shoot_c4" {
	"leet_anims\crouch_shoot_c4"
	fps 30
}
$sequence "ref_aim_c4" {
	"leet_anims\ref_aim_c4_blend01"
	"leet_anims\ref_aim_c4_blend02"
	"leet_anims\ref_aim_c4_blend03"
	"leet_anims\ref_aim_c4_blend04"
	"leet_anims\ref_aim_c4_blend05"
	"leet_anims\ref_aim_c4_blend06"
	"leet_anims\ref_aim_c4_blend07"
	"leet_anims\ref_aim_c4_blend08"
	"leet_anims\ref_aim_c4_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "ref_shoot_c4" {
	"leet_anims\ref_shoot_c4"
	fps 30
}
$sequence "ref_reload_c4" {
	"leet_anims\ref_reload_c4"
	fps 30
}
$sequence "crouch_aim_dualpistols" {
	"leet_anims\crouch_aim_dualpistols_blend01_2"
	"leet_anims\crouch_aim_dualpistols_blend02_2"
	"leet_anims\crouch_aim_dualpistols_blend03_2"
	"leet_anims\crouch_aim_dualpistols_blend04_2"
	"leet_anims\crouch_aim_dualpistols_blend05_2"
	"leet_anims\crouch_aim_dualpistols_blend06_2"
	"leet_anims\crouch_aim_dualpistols_blend07_2"
	"leet_anims\crouch_aim_dualpistols_blend08_2"
	"leet_anims\crouch_aim_dualpistols_blend09_2"
	blend XR -90 90
	fps 10
	loop
}
$sequence "crouch_shoot_dualpistols" {
	"leet_anims\crouch_shoot_dualpistols_blend01_2"
	"leet_anims\crouch_shoot_dualpistols_blend02_2"
	"leet_anims\crouch_shoot_dualpistols_blend03_2"
	"leet_anims\crouch_shoot_dualpistols_blend04_2"
	"leet_anims\crouch_shoot_dualpistols_blend05_2"
	"leet_anims\crouch_shoot_dualpistols_blend06_2"
	"leet_anims\crouch_shoot_dualpistols_blend07_2"
	"leet_anims\crouch_shoot_dualpistols_blend08_2"
	"leet_anims\crouch_shoot_dualpistols_blend09_2"
	blend XR -90 90
	{ event 5011 0 "10" }
	fps 30
}
$sequence "crouch_shoot2_dualpistols" {
	"leet_anims\crouch_shoot2_dualpistols_blend01_2"
	"leet_anims\crouch_shoot2_dualpistols_blend02_2"
	"leet_anims\crouch_shoot2_dualpistols_blend03_2"
	"leet_anims\crouch_shoot2_dualpistols_blend04_2"
	"leet_anims\crouch_shoot2_dualpistols_blend05_2"
	"leet_anims\crouch_shoot2_dualpistols_blend06_2"
	"leet_anims\crouch_shoot2_dualpistols_blend07_2"
	"leet_anims\crouch_shoot2_dualpistols_blend08_2"
	"leet_anims\crouch_shoot2_dualpistols_blend09_2"
	blend XR -90 90
	{ event 5001 0 "10" }
	fps 30
}
$sequence "crouch_reload_dualpistols" {
	"leet_anims\crouch_reload_dualpistols_2"
	fps 30
}
$sequence "ref_aim_dualpistols" {
	"leet_anims\ref_aim_dualpistols_blend01_2"
	"leet_anims\ref_aim_dualpistols_blend02_2"
	"leet_anims\ref_aim_dualpistols_blend03_2"
	"leet_anims\ref_aim_dualpistols_blend04_2"
	"leet_anims\ref_aim_dualpistols_blend05_2"
	"leet_anims\ref_aim_dualpistols_blend06_2"
	"leet_anims\ref_aim_dualpistols_blend07_2"
	"leet_anims\ref_aim_dualpistols_blend08_2"
	"leet_anims\ref_aim_dualpistols_blend09_2"
	blend XR -90 90
	fps 10
	loop
}
$sequence "ref_shoot_dualpistols" {
	"leet_anims\ref_shoot_dualpistols_blend01_2"
	"leet_anims\ref_shoot_dualpistols_blend02_2"
	"leet_anims\ref_shoot_dualpistols_blend03_2"
	"leet_anims\ref_shoot_dualpistols_blend04_2"
	"leet_anims\ref_shoot_dualpistols_blend05_2"
	"leet_anims\ref_shoot_dualpistols_blend06_2"
	"leet_anims\ref_shoot_dualpistols_blend07_2"
	"leet_anims\ref_shoot_dualpistols_blend08_2"
	"leet_anims\ref_shoot_dualpistols_blend09_2"
	blend XR -90 90
	{ event 5011 0 "10" }
	fps 30
}
$sequence "ref_shoot2_dualpistols" {
	"leet_anims\ref_shoot2_dualpistols_blend01_2"
	"leet_anims\ref_shoot2_dualpistols_blend02_2"
	"leet_anims\ref_shoot2_dualpistols_blend03_2"
	"leet_anims\ref_shoot2_dualpistols_blend04_2"
	"leet_anims\ref_shoot2_dualpistols_blend05_2"
	"leet_anims\ref_shoot2_dualpistols_blend06_2"
	"leet_anims\ref_shoot2_dualpistols_blend07_2"
	"leet_anims\ref_shoot2_dualpistols_blend08_2"
	"leet_anims\ref_shoot2_dualpistols_blend09_2"
	blend XR -90 90
	{ event 5001 0 "10" }
	fps 30
}
$sequence "ref_reload_dualpistols" {
	"leet_anims\ref_reload_dualpistols_2"
	fps 30
}
$sequence "crouch_aim_knife" {
	"leet_anims\crouch_aim_knife_blend01"
	"leet_anims\crouch_aim_knife_blend02"
	"leet_anims\crouch_aim_knife_blend03"
	"leet_anims\crouch_aim_knife_blend04"
	"leet_anims\crouch_aim_knife_blend05"
	"leet_anims\crouch_aim_knife_blend06"
	"leet_anims\crouch_aim_knife_blend07"
	"leet_anims\crouch_aim_knife_blend08"
	"leet_anims\crouch_aim_knife_blend09"
	blend XR -90 90
	fps 12
	loop
}
$sequence "crouch_shoot_knife" {
	"leet_anims\crouch_shoot_knife_blend01"
	"leet_anims\crouch_shoot_knife_blend02"
	"leet_anims\crouch_shoot_knife_blend03"
	"leet_anims\crouch_shoot_knife_blend04"
	"leet_anims\crouch_shoot_knife_blend05"
	"leet_anims\crouch_shoot_knife_blend06"
	"leet_anims\crouch_shoot_knife_blend07"
	"leet_anims\crouch_shoot_knife_blend08"
	"leet_anims\crouch_shoot_knife_blend09"
	blend XR -90 90
	fps 30
}
$sequence "ref_aim_knife" {
	"leet_anims\ref_aim_knife_blend01"
	"leet_anims\ref_aim_knife_blend02"
	"leet_anims\ref_aim_knife_blend03"
	"leet_anims\ref_aim_knife_blend04"
	"leet_anims\ref_aim_knife_blend05"
	"leet_anims\ref_aim_knife_blend06"
	"leet_anims\ref_aim_knife_blend07"
	"leet_anims\ref_aim_knife_blend08"
	"leet_anims\ref_aim_knife_blend09"
	blend XR -90 90
	fps 12
	loop
}
$sequence "ref_shoot_knife" {
	"leet_anims\ref_shoot_knife_blend01"
	"leet_anims\ref_shoot_knife_blend02"
	"leet_anims\ref_shoot_knife_blend03"
	"leet_anims\ref_shoot_knife_blend04"
	"leet_anims\ref_shoot_knife_blend05"
	"leet_anims\ref_shoot_knife_blend06"
	"leet_anims\ref_shoot_knife_blend07"
	"leet_anims\ref_shoot_knife_blend08"
	"leet_anims\ref_shoot_knife_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "crouch_aim_ak47" {
	"leet_anims\crouch_aim_ak47_blend01"
	"leet_anims\crouch_aim_ak47_blend02"
	"leet_anims\crouch_aim_ak47_blend03"
	"leet_anims\crouch_aim_ak47_blend04"
	"leet_anims\crouch_aim_ak47_blend05"
	"leet_anims\crouch_aim_ak47_blend06"
	"leet_anims\crouch_aim_ak47_blend07"
	"leet_anims\crouch_aim_ak47_blend08"
	"leet_anims\crouch_aim_ak47_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "crouch_shoot_ak47" {
	"leet_anims\crouch_shoot_ak47_blend01"
	"leet_anims\crouch_shoot_ak47_blend02"
	"leet_anims\crouch_shoot_ak47_blend03"
	"leet_anims\crouch_shoot_ak47_blend04"
	"leet_anims\crouch_shoot_ak47_blend05"
	"leet_anims\crouch_shoot_ak47_blend06"
	"leet_anims\crouch_shoot_ak47_blend07"
	"leet_anims\crouch_shoot_ak47_blend08"
	"leet_anims\crouch_shoot_ak47_blend09"
	blend XR -90 90
	{ event 5001 0 "40" }
	fps 30
}
$sequence "crouch_reload_ak47" {
	"leet_anims\crouch_reload_ak47"
	fps 30
}
$sequence "ref_aim_ak47" {
	"leet_anims\ref_aim_ak47_blend01"
	"leet_anims\ref_aim_ak47_blend02"
	"leet_anims\ref_aim_ak47_blend03"
	"leet_anims\ref_aim_ak47_blend04"
	"leet_anims\ref_aim_ak47_blend05"
	"leet_anims\ref_aim_ak47_blend06"
	"leet_anims\ref_aim_ak47_blend07"
	"leet_anims\ref_aim_ak47_blend08"
	"leet_anims\ref_aim_ak47_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "ref_shoot_ak47" {
	"leet_anims\ref_shoot_ak47_blend01"
	"leet_anims\ref_shoot_ak47_blend02"
	"leet_anims\ref_shoot_ak47_blend03"
	"leet_anims\ref_shoot_ak47_blend04"
	"leet_anims\ref_shoot_ak47_blend05"
	"leet_anims\ref_shoot_ak47_blend06"
	"leet_anims\ref_shoot_ak47_blend07"
	"leet_anims\ref_shoot_ak47_blend08"
	"leet_anims\ref_shoot_ak47_blend09"
	blend XR -90 90
	{ event 5001 0 "40" }
	fps 30
}
$sequence "ref_reload_ak47" {
	"leet_anims\ref_reload_ak47"
	fps 30
}
$sequence "crouch_aim_shieldgren" {
	"leet_anims\crouch_aim_shieldgren_blend01"
	"leet_anims\crouch_aim_shieldgren_blend02"
	"leet_anims\crouch_aim_shieldgren_blend03"
	"leet_anims\crouch_aim_shieldgren_blend04"
	"leet_anims\crouch_aim_shieldgren_blend05"
	"leet_anims\crouch_aim_shieldgren_blend06"
	"leet_anims\crouch_aim_shieldgren_blend07"
	"leet_anims\crouch_aim_shieldgren_blend08"
	"leet_anims\crouch_aim_shieldgren_blend09"
	blend XR -90 90
	fps 20
	loop
}
$sequence "crouch_shoot_shieldgren" {
	"leet_anims\crouch_shoot_shieldgren_blend01"
	"leet_anims\crouch_shoot_shieldgren_blend02"
	"leet_anims\crouch_shoot_shieldgren_blend03"
	"leet_anims\crouch_shoot_shieldgren_blend04"
	"leet_anims\crouch_shoot_shieldgren_blend05"
	"leet_anims\crouch_shoot_shieldgren_blend06"
	"leet_anims\crouch_shoot_shieldgren_blend07"
	"leet_anims\crouch_shoot_shieldgren_blend08"
	"leet_anims\crouch_shoot_shieldgren_blend09"
	blend XR -90 90
	fps 45
}
$sequence "ref_aim_shieldgren" {
	"leet_anims\ref_aim_shieldgren_blend01"
	"leet_anims\ref_aim_shieldgren_blend02"
	"leet_anims\ref_aim_shieldgren_blend03"
	"leet_anims\ref_aim_shieldgren_blend04"
	"leet_anims\ref_aim_shieldgren_blend05"
	"leet_anims\ref_aim_shieldgren_blend06"
	"leet_anims\ref_aim_shieldgren_blend07"
	"leet_anims\ref_aim_shieldgren_blend08"
	"leet_anims\ref_aim_shieldgren_blend09"
	blend XR -90 90
	fps 20
	loop
}
$sequence "ref_shoot_shieldgren" {
	"leet_anims\ref_shoot_shieldgren_blend01"
	"leet_anims\ref_shoot_shieldgren_blend02"
	"leet_anims\ref_shoot_shieldgren_blend03"
	"leet_anims\ref_shoot_shieldgren_blend04"
	"leet_anims\ref_shoot_shieldgren_blend05"
	"leet_anims\ref_shoot_shieldgren_blend06"
	"leet_anims\ref_shoot_shieldgren_blend07"
	"leet_anims\ref_shoot_shieldgren_blend08"
	"leet_anims\ref_shoot_shieldgren_blend09"
	blend XR -90 90
	fps 45
}
$sequence "crouch_aim_shieldknife" {
	"leet_anims\crouch_aim_shieldknife_blend01"
	"leet_anims\crouch_aim_shieldknife_blend02"
	"leet_anims\crouch_aim_shieldknife_blend03"
	"leet_anims\crouch_aim_shieldknife_blend04"
	"leet_anims\crouch_aim_shieldknife_blend05"
	"leet_anims\crouch_aim_shieldknife_blend06"
	"leet_anims\crouch_aim_shieldknife_blend07"
	"leet_anims\crouch_aim_shieldknife_blend08"
	"leet_anims\crouch_aim_shieldknife_blend09"
	blend XR -90 90
	fps 12
	loop
}
$sequence "crouch_shoot_shieldknife" {
	"leet_anims\crouch_shoot_shieldknife_blend01"
	"leet_anims\crouch_shoot_shieldknife_blend02"
	"leet_anims\crouch_shoot_shieldknife_blend03"
	"leet_anims\crouch_shoot_shieldknife_blend04"
	"leet_anims\crouch_shoot_shieldknife_blend05"
	"leet_anims\crouch_shoot_shieldknife_blend06"
	"leet_anims\crouch_shoot_shieldknife_blend07"
	"leet_anims\crouch_shoot_shieldknife_blend08"
	"leet_anims\crouch_shoot_shieldknife_blend09"
	blend XR -90 90
	fps 30
}
$sequence "ref_aim_shieldknife" {
	"leet_anims\ref_aim_shieldknife_blend01"
	"leet_anims\ref_aim_shieldknife_blend02"
	"leet_anims\ref_aim_shieldknife_blend03"
	"leet_anims\ref_aim_shieldknife_blend04"
	"leet_anims\ref_aim_shieldknife_blend05"
	"leet_anims\ref_aim_shieldknife_blend06"
	"leet_anims\ref_aim_shieldknife_blend07"
	"leet_anims\ref_aim_shieldknife_blend08"
	"leet_anims\ref_aim_shieldknife_blend09"
	blend XR -90 90
	fps 12
	loop
}
$sequence "ref_shoot_shieldknife" {
	"leet_anims\ref_shoot_shieldknife_blend01"
	"leet_anims\ref_shoot_shieldknife_blend02"
	"leet_anims\ref_shoot_shieldknife_blend03"
	"leet_anims\ref_shoot_shieldknife_blend04"
	"leet_anims\ref_shoot_shieldknife_blend05"
	"leet_anims\ref_shoot_shieldknife_blend06"
	"leet_anims\ref_shoot_shieldknife_blend07"
	"leet_anims\ref_shoot_shieldknife_blend08"
	"leet_anims\ref_shoot_shieldknife_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "crouch_aim_shieldgun" {
	"leet_anims\crouch_aim_shieldgun_blend01"
	"leet_anims\crouch_aim_shieldgun_blend02"
	"leet_anims\crouch_aim_shieldgun_blend03"
	"leet_anims\crouch_aim_shieldgun_blend04"
	"leet_anims\crouch_aim_shieldgun_blend05"
	"leet_anims\crouch_aim_shieldgun_blend06"
	"leet_anims\crouch_aim_shieldgun_blend07"
	"leet_anims\crouch_aim_shieldgun_blend08"
	"leet_anims\crouch_aim_shieldgun_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "crouch_shoot_shieldgun" {
	"leet_anims\crouch_shoot_shieldgun_blend01"
	"leet_anims\crouch_shoot_shieldgun_blend02"
	"leet_anims\crouch_shoot_shieldgun_blend03"
	"leet_anims\crouch_shoot_shieldgun_blend04"
	"leet_anims\crouch_shoot_shieldgun_blend05"
	"leet_anims\crouch_shoot_shieldgun_blend06"
	"leet_anims\crouch_shoot_shieldgun_blend07"
	"leet_anims\crouch_shoot_shieldgun_blend08"
	"leet_anims\crouch_shoot_shieldgun_blend09"
	blend XR -90 90
	{ event 5001 0 "10" }
	fps 30
}
$sequence "crouch_reload_shieldgun" {
	"leet_anims\crouch_reload_shieldgun"
	fps 30
}
$sequence "ref_aim_shieldgun" {
	"leet_anims\ref_aim_shieldgun_blend01"
	"leet_anims\ref_aim_shieldgun_blend02"
	"leet_anims\ref_aim_shieldgun_blend03"
	"leet_anims\ref_aim_shieldgun_blend04"
	"leet_anims\ref_aim_shieldgun_blend05"
	"leet_anims\ref_aim_shieldgun_blend06"
	"leet_anims\ref_aim_shieldgun_blend07"
	"leet_anims\ref_aim_shieldgun_blend08"
	"leet_anims\ref_aim_shieldgun_blend09"
	blend XR -90 90
	fps 30
	loop
}
$sequence "ref_shoot_shieldgun" {
	"leet_anims\ref_shoot_shieldgun_blend01"
	"leet_anims\ref_shoot_shieldgun_blend02"
	"leet_anims\ref_shoot_shieldgun_blend03"
	"leet_anims\ref_shoot_shieldgun_blend04"
	"leet_anims\ref_shoot_shieldgun_blend05"
	"leet_anims\ref_shoot_shieldgun_blend06"
	"leet_anims\ref_shoot_shieldgun_blend07"
	"leet_anims\ref_shoot_shieldgun_blend08"
	"leet_anims\ref_shoot_shieldgun_blend09"
	blend XR -90 90
	{ event 5001 0 "10" }
	fps 30
}
$sequence "ref_reload_shieldgun" {
	"leet_anims\ref_reload_shieldgun"
	fps 30
}
$sequence "crouch_aim_shielded" {
	"leet_anims\crouch_aim_shielded_blend01"
	"leet_anims\crouch_aim_shielded_blend02"
	"leet_anims\crouch_aim_shielded_blend03"
	"leet_anims\crouch_aim_shielded_blend04"
	"leet_anims\crouch_aim_shielded_blend05"
	"leet_anims\crouch_aim_shielded_blend06"
	"leet_anims\crouch_aim_shielded_blend07"
	"leet_anims\crouch_aim_shielded_blend08"
	"leet_anims\crouch_aim_shielded_blend09"
	blend XR -90 90
	fps 20
	loop
}
$sequence "ref_aim_shielded" {
	"leet_anims\ref_aim_shielded_blend01"
	"leet_anims\ref_aim_shielded_blend02"
	"leet_anims\ref_aim_shielded_blend03"
	"leet_anims\ref_aim_shielded_blend04"
	"leet_anims\ref_aim_shielded_blend05"
	"leet_anims\ref_aim_shielded_blend06"
	"leet_anims\ref_aim_shielded_blend07"
	"leet_anims\ref_aim_shielded_blend08"
	"leet_anims\ref_aim_shielded_blend09"
	blend XR -90 90
	fps 20
	loop
}
$sequence "gut_flinch" {
	"leet_anims\gut_flinch_blend01"
	"leet_anims\gut_flinch_blend02"
	"leet_anims\gut_flinch_blend03"
	"leet_anims\gut_flinch_blend04"
	"leet_anims\gut_flinch_blend05"
	"leet_anims\gut_flinch_blend06"
	"leet_anims\gut_flinch_blend07"
	"leet_anims\gut_flinch_blend08"
	"leet_anims\gut_flinch_blend09"
	blend XR -90 90
	fps 30
}
$sequence "head_flinch" {
	"leet_anims\head_flinch_blend01"
	"leet_anims\head_flinch_blend02"
	"leet_anims\head_flinch_blend03"
	"leet_anims\head_flinch_blend04"
	"leet_anims\head_flinch_blend05"
	"leet_anims\head_flinch_blend06"
	"leet_anims\head_flinch_blend07"
	"leet_anims\head_flinch_blend08"
	"leet_anims\head_flinch_blend09"
	blend XR -90 90
	fps 30
}
$sequence "death1" {
	"leet_anims\death1"
	ACT_DIE_CHESTSHOT 1
	{ event 2001 1 }
	fps 30
}
$sequence "death2" {
	"leet_anims\death2"
	ACT_DIESIMPLE 2
	{ event 2001 1 }
	fps 30
}
$sequence "death3" {
	"leet_anims\death3"
	ACT_DIE_BACKSHOT 1
	{ event 2001 1 }
	fps 30
}
$sequence "head" {
	"leet_anims\head"
	ACT_DIE_HEADSHOT 1
	{ event 2001 1 }
	fps 30
}
$sequence "gutshot" {
	"leet_anims\gutshot"
	ACT_DIE_GUTSHOT 1
	{ event 2001 1 }
	fps 30
}
$sequence "left" {
	"leet_anims\left"
	ACT_DIESIMPLE 1
	{ event 2001 1 }
	fps 30
}
$sequence "back" {
	"leet_anims\back"
	ACT_DIEBACKWARD 1
	{ event 2001 1 }
	fps 30
}
$sequence "right" {
	"leet_anims\right"
	ACT_DIESIMPLE 1
	{ event 2001 1 }
	fps 30
}
$sequence "forward" {
	"leet_anims\forward"
	ACT_DIEFORWARD 1
	{ event 2001 1 }
	fps 30
}
$sequence "crouch_die" {
	"leet_anims\crouch_die"
	{ event 2001 1 }
	fps 30
}


Sven-Coop Compiler New Commands

The Sven-Coop compiler is found in the Sven-Coop SDK downloaded through steam via the "tools" tab and then found in:
C:\Program Files (x86)\Steam\steamapps\common\Sven Co-op SDK\modelling\studiomdl.exe

New command line argument added -k: keep all unused bones which is same function as $keepallbones.


$keepallbones

Keeps the compiler from stripping all bones in the SMD that are not vertex weighted. It's important to note that in order to keep bones, at least one of your reference SMD files need to have the entire skeleton, it won't detect the bones just by being on the animation files.


$keepbone <bonename>
$protected <bonename>

Keeps the compiler from stripping a specific bone in the SMD that is not vertex weighted. Two commandnames but same function.


Return