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