HomeiPhone AppsRendersDownloadsHL2 ModdingLinksContact



Home > HL2 Modding > QC Glossary

QC File Glossary


Here you can see all .qc file commands. Need more information on what qc files are? Check out the tutorial section.
Dashed underlinesThat's right, dashed underlines just like this. mean a pop-up note is attached to the word, hover your mouse over it to read it.

Regarding Outlines of Use; brackets and their grey contents should not be used as shown. They should be replaced with appropriate values that can be seen from the 'Possible Values' sections. (Should the 'values' also be in grey, then just do as the 'values' instruct.) Quotation marks and file extensions (.smd, etc.) aren't required on all commands, but they help to keep the .qc file tidy, which in-turn helps prevent any possible mistakes.



QC files are merely .txt files that have had their file extension renamed to become a .qc file. These QC files consist of many "commands", which define almost everything about a model, such as; its folder structure and name, its physics properties, whether it has animations, and much, much more. Do not worry about placing capital letters in command names, as they are not case-sensitive. Brackets (and the like) however, are very sensitive, so be careful with those.

This is what a common QC used on a "prop" model will look like:
  • Example
      $cd "C:\Documents and Settings\Marc\Desktop\Compiling Related\Raptor"
      
      $modelname "katharsmodels\raptor\raptor.mdl"
      
      $cdmaterials "katharsmodels\raptor\"
      
      $scale 22
      
      $upaxis "z"
      
      $surfaceprop "metal"
      
      $body "studio" "raptor_ref.smd"
      
      $sequence idle "raptor_ref" fps 30.00
      
      $collisionmodel "raptor_phy.smd" {
      
      	$concave
      	$mass 1800
      }

  • This is what a common QC used on a "ragdoll" model will look like:
  • Example
      $cd "C:\Documents and Settings\Marc\Desktop\Jeff Wayne Tripod"
      
      $modelname "katharsmodels\jeffwayne_tripod\jeffwayne_tripod.mdl"
      
      $scale 32
      
      $body "studio" "tripod_ref.smd"
      
      $surfaceprop "metal"
      
      $cdmaterials "katharsmodels\jeffwayne_tripod\"
      
      $upaxis "z"
      
      $sequence idle "tripod_ref" fps 30.00
      
      $collisionjoints "tripod_phy.smd" {
      
      	$concave
      	$mass 10000000
      
      	$inertia 30.00
      	$damping 0.0
      	$drag 0.01
      	$rotdamping 0.0
      	$rootbone "root"
      
      	$jointcollide "root" "r_knee"
      	$jointcollide "root" "l_knee"
      	$jointcollide "root" "b_knee"
      
      	$jointcollide "root" "r_ankle"
      	$jointcollide "root" "l_ankle"
      	$jointcollide "root" "b_ankle"
      
      	$jointcollide "root" "r_arm3"
      	$jointcollide "root" "l_arm3"
      	$jointcollide "root" "b_arm3"
      
      	$jointcollide "r_arm3" "b_arm3"
      	$jointcollide "r_arm3" "l_arm3"
      	$jointcollide "l_arm3" "b_arm3"
      
      	$jointcollide "l_knee" "r_knee"
      	$jointcollide "l_knee" "b_knee"
      	$jointcollide "r_knee" "b_knee"
      
      	$jointcollide "l_ankle" "r_ankle"
      	$jointcollide "l_ankle" "b_ankle"
      	$jointcollide "r_ankle" "b_ankle"
      
      	$jointcollide "r_knee" "l_ankle"
      	$jointcollide "r_knee" "b_ankle"
      
      	$jointcollide "l_knee" "r_ankle"
      	$jointcollide "l_knee" "b_ankle"
      
      	$jointcollide "b_knee" "r_ankle"
      	$jointcollide "b_knee" "l_ankle"
      
      	$jointconstrain "l_arm1" x limit -48.00 58.00 0.00
      	$jointconstrain "l_arm1" y limit 0.00 0.00 0.00
      	$jointconstrain "l_arm1" z limit -35.00 70.00 0.00
      
      	$jointconstrain "l_arm2" x limit -10.00 10.00 0.00
      	$jointconstrain "l_arm2" y limit -18.00 85.00 0.00
      	$jointconstrain "l_arm2" z limit -35.00 77.00 0.00
      
      	$jointconstrain "l_arm3" x limit -50.00 65.00 0.00
      	$jointconstrain "l_arm3" y limit 0.00 0.00 0.00
      	$jointconstrain "l_arm3" z limit -65.00 70.00 0.00
      
      	$jointconstrain "r_arm1" x limit -48.00 58.00 0.00
      	$jointconstrain "r_arm1" y limit 0.00 0.00 0.00
      	$jointconstrain "r_arm1" z limit -35.00 70.00 0.00
      
      	$jointconstrain "r_arm2" x limit -10.00 10.00 0.00
      	$jointconstrain "r_arm2" y limit -18.00 85.00 0.00
      	$jointconstrain "r_arm2" z limit -35.00 77.00 0.00
      
      	$jointconstrain "r_arm3" x limit -50.00 65.00 0.00
      	$jointconstrain "r_arm3" y limit 0.00 0.00 0.00
      	$jointconstrain "r_arm3" z limit -65.00 70.00 0.00
      
      	$jointconstrain "b_arm1" x limit -30.00 30.00 0.00
      	$jointconstrain "b_arm1" y limit 0.00 0.00 0.00
      	$jointconstrain "b_arm1" z limit -40.00 40.00 0.00
      
      	$jointconstrain "b_arm2" x limit -60.00 60.00 0.00
      	$jointconstrain "b_arm2" y limit 0.00 0.00 0.00
      	$jointconstrain "b_arm2" z limit -60.00 60.00 0.00
      
      	$jointconstrain "b_arm3" x limit -20.00 20.00 0.00
      	$jointconstrain "b_arm3" y limit 0.00 0.00 0.00
      	$jointconstrain "b_arm3" z limit -20.00 20.00 0.00
      
      	$jointconstrain "l_thigh" x limit 0.00 0.00 0.00
      	$jointconstrain "l_thigh" y limit -25.00 25.00 0.00
      	$jointconstrain "l_thigh" z limit -39.00 46.00 0.00
      
      	$jointconstrain "l_knee" x limit 0.00 0.00 0.00
      	$jointconstrain "l_knee" y limit 0.00 0.00 0.00
      	$jointconstrain "l_knee" z limit -20.00 77.00 0.00
      
      	$jointconstrain "l_ankle" x limit -52.00 70.00 0.00
      	$jointconstrain "l_ankle" y limit 0.00 0.00 0.00
      	$jointconstrain "l_ankle" z limit -44.00 70.00 0.00
      
      	$jointconstrain "r_thigh" x limit 0.00 0.00 0.00
      	$jointconstrain "r_thigh" y limit -25.00 25.00 0.00
      	$jointconstrain "r_thigh" z limit -46.00 39.00 0.00
      
      	$jointconstrain "r_knee" x limit 0.00 0.00 0.00
      	$jointconstrain "r_knee" y limit 0.00 0.00 0.00
      	$jointconstrain "r_knee" z limit -77.00 20.00 0.00
      
      	$jointconstrain "r_ankle" x limit -52.00 70.00 0.00
      	$jointconstrain "r_ankle" y limit 0.00 0.00 0.00
      	$jointconstrain "r_ankle" z limit -44.00 70.00 0.00
      
      	$jointconstrain "b_thigh" x limit -46.00 39.00 0.00
      	$jointconstrain "b_thigh" y limit -25.00 25.00 0.00
      	$jointconstrain "b_thigh" z limit 0.00 0.00 0.00
      
      	$jointconstrain "b_knee" x limit -20.00 77.00 0.00
      	$jointconstrain "b_knee" y limit 0.00 0.00 0.00
      	$jointconstrain "b_knee" z limit 0.00 0.00 0.00
      
      	$jointconstrain "b_ankle" x limit -52.00 70.00 0.00
      	$jointconstrain "b_ankle" y limit 0.00 0.00 0.00
      	$jointconstrain "b_ankle" z limit -44.00 70.00 0.00
      
      	$jointconstrain "heatray" x limit -8.00 44.00 0.00
      	$jointconstrain "heatray" y limit -30.00 30.00 0.00
      	$jointconstrain "heatray" z limit 0.00 0.00 0.00
      }



  • QC Commands

    HL2 - Standard:
  • $alwayscollapse
        About:

        Outline of Use:
        $alwayscollapse "(joint-name)"

        Possible Values:

        Examples of Use:
  • $ambientboost
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $animation
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $animblocksize
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $append
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $attachment
        About:

        Outline of Use #1:
        $attachment "(name)" "(joint-parent)" (x-position) (y-position) (z-position) rotate "(x)" "(y)" "(z)"

        Outline of Use #2:
        $attachment "(name)" "(joint-parent)" (x-position) (y-position) (z-position) absolute

        Possible Values:
        nameThis is where you define the name of the attachment. The name is important as you commonly refer to it. For example, attachment points can be referred to, when making cables with the '$keyvalues > cables' command. = attachment's name
        joint-parent = a joint name
        x-position = real numberA real number is any number. It can be negative, a decimal, or both. So your 'value' should be something like these: -6, 1.2, 0, -3, 4032.405 etc.
        y-position = real numberA real number is any number. It can be negative, a decimal, or both. So your 'value' should be something like these: -6, 1.2, 0, -3, 4032.405 etc.
        z-position = real numberA real number is any number. It can be negative, a decimal, or both. So your 'value' should be something like these: -6, 1.2, 0, -3, 4032.405 etc.
        x = -180 to 180
        y = -180 to 180
        z = -180 to 180

        Examples of Use:
      • Example #1
          $cd "C:\Documents and Settings\Marc\Desktop\Gordon Freeman"
          $modelname "player/gordon_classic.mdl"
          $model "gordon" "gordon_freeman_ref.smd" {
          
            flexfile "NULL.vta"
            flex "NULL"  frame 10
             flexcontroller "phoneme" "NULL" "range" 0 1
          
            flexfile "right_lid_raiser.vta"
            flex "right_lid_raiser"  frame 10
             flexcontroller "eyelid" "right_lid_raiser" "range" 0 1
          
            flexfile "left_lid_raiser.vta"
            flex "left_lid_raiser"  frame 10
             flexcontroller "eyelid" "left_lid_raiser" "range" 0 1
          
            flexfile "right_lid_tightener.vta"
            flex "right_lid_tightener"  frame 10
             flexcontroller "eyelid" "right_lid_tightener" "range" 0 1
          
            flexfile "left_lid_tightener.vta"
            flex "left_lid_tightener"  frame 10
             flexcontroller "eyelid" "left_lid_tightener" "range" 0 1
          
            flexfile "right_lid_droop.vta"
            flex "right_lid_droop"  frame 10
             flexcontroller "eyelid" "right_lid_droop" "range" 0 1
          
            flexfile "left_lid_droop.vta"
            flex "left_lid_droop"  frame 10
             flexcontroller "eyelid" "left_lid_droop" "range" 0 1
          
          	eyeball righteye "ValveBiped.Bip01_Head1" -1.17 -2.15 67.47 "eyeball_r" 1.00 4 "grn_pupil_r" 0.73
          	eyeball lefteye "ValveBiped.Bip01_Head1" 1.18 -2.15 67.47 "eyeball_l" 1.00 -4 "grn_pupil_l" 0.73
               mouth 0 "mouth"  ValveBiped.Bip01_Head1 0.000 1.000 0.000
          
           %right_lid_raiser = right_lid_raiser
           %left_lid_raiser = left_lid_raiser
           %right_lid_tightener = right_lid_tightener
           %left_lid_tightener = left_lid_tightener
           %right_lid_droop = right_lid_droop
           %left_lid_droop = left_lid_droop
          }
          
          $cdmaterials "katharsmodels/gordon_freeman/"
          
          $hboxset "default"
          $hbox 1 "ValveBiped.Bip01_Head1" -1.250  -6.500  -3.190  8.250  3.500  3.310
          $hbox 4 "ValveBiped.Bip01_L_UpperArm" 0.000  -2.750  -2.750  12.510  1.750  2.250
          $hbox 4 "ValveBiped.Bip01_L_Forearm" 0.000  -2.190  -2.380  13.000  1.810  1.620
          $hbox 4 "ValveBiped.Bip01_L_Hand" 0.060  -2.000  -1.500  4.060  1.000  2.500
          $hbox 5 "ValveBiped.Bip01_R_UpperArm" 0.000  -3.000  -2.250  12.390  2.000  2.750
          $hbox 5 "ValveBiped.Bip01_R_Forearm" -0.500  -2.200  -1.550  12.500  1.800  2.450
          $hbox 5 "ValveBiped.Bip01_R_Hand" 0.060  -2.000  -2.500  4.060  1.000  1.500
          $hbox 6 "ValveBiped.Bip01_L_Thigh" 0.000  -3.750  -3.250  17.850  3.750  3.250
          $hbox 6 "ValveBiped.Bip01_L_Calf" 0.000  -3.510  -3.280  15.640  3.490  2.720
          $hbox 6 "ValveBiped.Bip01_L_Foot" -1.070  -2.000  -2.840  5.040  5.000  2.160
          $hbox 7 "ValveBiped.Bip01_R_Thigh" 0.000  -3.750  -3.250  17.850  3.750  3.250
          $hbox 7 "ValveBiped.Bip01_R_Calf" 0.000  -3.510  -2.820  15.640  3.490  3.180
          $hbox 7 "ValveBiped.Bip01_R_Foot" -1.060  -2.010  -2.280  5.050  4.990  2.720
          $hbox 3 "ValveBiped.Bip01_Pelvis" -7.500  -5.500  -6.000  7.500  8.500  5.000
          $hbox 2 "ValveBiped.Bip01_Spine2" -2.500  -2.500  -7.000  14.500  7.500  7.000
          
          $attachment "eyes" "ValveBiped.Bip01_Head1" 0.00 -2.25 67.47 absolute
          $attachment "mouth" "ValveBiped.Bip01_Head1" 1.00 -5.70 -0.00 rotate 0.00 -80.00 -90.00
          $attachment "chest" "ValveBiped.Bip01_Spine2" 5.00 4.00 -0.00 rotate 0.00 90.00 90.00
          $attachment "cameraeye" "ValveBiped.Bip01_Head1" 4.39 -4.02 -1.23 rotate 90.00 -80.17 0.00
          $attachment "forward" "ValveBiped.Bip01_Head1" 0.0 0.0 0.0 rotate 0 -80 -90
          $attachment "anim_attachment_RH" "ValveBiped.Anim_Attachment_RH" -0.00 -0.00 -0.00 rotate -90.00 -90.00 0.00
          $attachment "anim_attachment_LH" "ValveBiped.Anim_Attachment_LH" -0.00 0.00 -0.00 rotate -90.00 -90.00 0.00
          $attachment "anim_attachment_head" "ValveBiped.Bip01_Head1" -0.00 0.00 -0.00 rotate -90.00 -90.00 0.00
          
          $includemodel "m_anm.mdl"
          $includemodel "m_gst.mdl"
          $includemodel "m_pst.mdl"
          $includemodel "m_shd.mdl"
          $includemodel "m_ss.mdl"
          $includemodel "humans/male_shared.mdl"
          
          $surfaceprop "flesh"
          $eyeposition 0.000 0.000 70.000
          
          $sequence ragdoll "gordon_freeman_ref" ACT_DIERAGDOLL 1 fps 30.00
          $ikchain rhand ValveBiped.Bip01_R_Hand knee  0.707 0.707 0.000
          $ikchain lhand ValveBiped.Bip01_L_Hand knee  0.707 0.707 0.000
          $ikchain rfoot ValveBiped.Bip01_R_Foot knee  0.707 -0.707 0.000
          $ikchain lfoot ValveBiped.Bip01_L_Foot knee  0.707 -0.707 0.000
          
          $collisionjoints "gordon_freeman_phys" {
          
          	$mass 90.0
          	$inertia 10.00
          	$damping 0.01
          	$rotdamping 1.50
          	$rootbone "ValveBiped.bip01_pelvis"
          	$jointmerge "ValveBiped.Bip01_Pelvis" "ValveBiped.Bip01_Spine1"
          
          	$jointconstrain "ValveBiped.bip01_spine2" x limit -0.00 0.00 0.00
          	$jointconstrain "ValveBiped.bip01_spine2" y limit -7.00 7.00 0.00
          	$jointconstrain "ValveBiped.bip01_spine2" z limit -10.00 20.00 0.00
          
          	$jointconstrain "ValveBiped.bip01_r_upperarm" x limit -39.00 39.00 0.00
          	$jointconstrain "ValveBiped.bip01_r_upperarm" y limit -79.00 95.00 0.00
          	$jointconstrain "ValveBiped.bip01_r_upperarm" z limit -93.00 23.00 0.00
          
          	$jointconstrain "ValveBiped.bip01_l_upperarm" x limit -30.00 30.00 0.00
          	$jointconstrain "ValveBiped.bip01_l_upperarm" y limit -95.00 84.00 0.00
          	$jointconstrain "ValveBiped.bip01_l_upperarm" z limit -86.00 26.00 0.00
          
          	$jointconstrain "ValveBiped.bip01_l_forearm" x limit 0.00 0.00 0.00
          	$jointconstrain "ValveBiped.bip01_l_forearm" y limit 0.00 0.00 0.00
          	$jointconstrain "ValveBiped.bip01_l_forearm" z limit -149.00 4.00 0.00
          
          	$jointconstrain "ValveBiped.bip01_l_hand" x limit -37.00 37.00 0.00
          	$jointconstrain "ValveBiped.bip01_l_hand" y limit 0.00 0.00 0.00
          	$jointconstrain "ValveBiped.bip01_l_hand" z limit -57.00 59.00 0.00
          
          	$jointconstrain "ValveBiped.bip01_r_forearm" x limit 0.00 0.00 0.00
          	$jointconstrain "ValveBiped.bip01_r_forearm" y limit 0.00 0.00 0.00
          	$jointconstrain "ValveBiped.bip01_r_forearm" z limit -149.00 4.00 0.00
          
          	$jointconstrain "ValveBiped.bip01_r_hand" x limit -60.00 60.00 0.00
          	$jointconstrain "ValveBiped.bip01_r_hand" y limit 0.00 0.00 0.00
          	$jointconstrain "ValveBiped.bip01_r_hand" z limit -57.00 70.00 0.00
          
          	$jointconstrain "ValveBiped.bip01_r_thigh" x limit -12.00 12.00 0.00
          	$jointconstrain "ValveBiped.bip01_r_thigh" y limit -8.00 75.00 0.00
          	$jointconstrain "ValveBiped.bip01_r_thigh" z limit -97.00 32.00 0.00
          
          	$jointconstrain "ValveBiped.bip01_r_calf" x limit 0.00 0.00 0.00
          	$jointconstrain "ValveBiped.bip01_r_calf" y limit 0.00 0.00 0.00
          	$jointconstrain "ValveBiped.bip01_r_calf" z limit -12.00 126.00 0.00
          
          	$jointconstrain "ValveBiped.bip01_head1" x limit -20.00 20.00 0.00
          	$jointconstrain "ValveBiped.bip01_head1" y limit -25.00 25.00 0.00
          	$jointconstrain "ValveBiped.bip01_head1" z limit -13.00 30.00 0.00
          
          	$jointconstrain "ValveBiped.bip01_l_thigh" x limit -12.00 12.00 0.00
          	$jointconstrain "ValveBiped.bip01_l_thigh" y limit -73.00 6.00 0.00
          	$jointconstrain "ValveBiped.bip01_l_thigh" z limit -93.00 30.00 0.00
          
          	$jointconstrain "ValveBiped.bip01_l_calf" x limit 0.00 0.00 0.00
          	$jointconstrain "ValveBiped.bip01_l_calf" y limit 0.00 0.00 0.00
          	$jointconstrain "ValveBiped.bip01_l_calf" z limit -8.00 126.00 0.00
          
          	$jointconstrain "ValveBiped.bip01_l_foot" x limit 0.00 0.00 0.00
          	$jointconstrain "ValveBiped.bip01_l_foot" y limit -19.00 19.00 0.00
          	$jointconstrain "ValveBiped.bip01_l_foot" z limit -15.00 35.00 0.00
          
          	$jointconstrain "ValveBiped.bip01_r_foot" x limit 0.00 0.00 0.00
          	$jointconstrain "ValveBiped.bip01_r_foot" y limit -25.00 6.00 0.00
          	$jointconstrain "ValveBiped.bip01_r_foot" z limit -15.00 35.00 0.00
          	$animatedfriction 1.000 400.000 0.500 0.300 0.000
          }
  • $autocenter
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $body
        About:
        I won't go into too much detail, but if you want to know more, check out the tutorial section. There's several SMD types which make up a model. All of which do different things. There's a 'reference' smd, which is what you will see in-game. There's the 'collision/phys' smd which is what you 'feel' in-game (reacts to the environment) and then there's 'skeletal/animation' smds, which tell the model what pose to be in. This $body command tells the model what 'reference' smd to use.

        $body is merely a simple version of the '$model' command. $body makes the model load a tiny bit faster, and should be used when not using any of the sub-commands of '$model'. Such as, flexes (blendshapes, morph targets), eyeballs, eyelids, etc.

        All model details are generally inside one SMD and loaded from one $body/$model command. However, if you're working on a pre-existing model and, let's say, you wanted to add some glasses to it, then usually the pre-existing flexes will also bend the glasses with them. To solve this, leave the original smd being loaded by the $model command and then make a copy of that SMD, import it into your modelling application, place the glasses where you'd like them to be, delete the rest of the mesh but keep the skeleton and then bind the glasses to the head joint and export. You can then add a $body command loading the glasses smd. What this essentially doing is saying; okay, I've got a body-mesh, with facial expressions, it then adds the other '$body/$model' commands to it. So it will now find the glasses smd, notice they are the same skeleton, sort of 'morph' them into one skeleton and thus the glasses are on the face. But as only the '$model' command holds the flex information, the glasses will not be affected.

        Outline of Use:
        $body "(name)" "(reference-model.smd)"

        Possible Values:
        nameI am unsure what this 'name' refers to, but cannot be that important as I haven't ran into anything related to it yet. Default name for this tends to be 'studio'. = name
        reference-model.smdSet this to the name of the .smd file you wish to load.

        The .smd file extension isn't actually required. The compilers can run just fine without it, but it makes the .qc file easier to read, and without organisation, problems tend to occur.
        = an SMD name

        Examples of Use:
      • Example #1
          $cd "C:\Documents and Settings\Marc\Desktop\Mod Models\Crates\Wooden Crate 1"
          $modelname "filler_props/wooden_crate_1.mdl"
          $scale 2.12
          $body "crate" "wooden_crate_1_ref.smd"
          $surfaceprop "wood_crate"
          $cdmaterials "models/filler_props/wooden_crate_1/"
          $sequence idle "wooden_crate_1_ref" fps 1.00
          
          $collisionmodel "wooden_crate_1_phys.smd" {
          	$concave
          	$mass 60
          }
      • Example #2
          $cd "C:\Documents and Settings\Marc\Desktop\decompile"
          $modelname "Police.mdl"
          $model "police" "Police_reference.smd" {
          
            flexfile "NULL.vta"
            flex "NULL"  frame 10
             flexcontroller "phoneme" "NULL" "range" 0 1
          
            flexfile "right_lid_raiser.vta"
            flex "right_lid_raiser"  frame 10
             flexcontroller "eyelid" "right_lid_raiser" "range" 0 1
          
            flexfile "left_lid_raiser.vta"
            flex "left_lid_raiser"  frame 10
             flexcontroller "eyelid" "left_lid_raiser" "range" 0 1
          
            flexfile "right_lid_tightener.vta"
            flex "right_lid_tightener"  frame 10
             flexcontroller "eyelid" "right_lid_tightener" "range" 0 1
          
            flexfile "left_lid_tightener.vta"
            flex "left_lid_tightener"  frame 10
             flexcontroller "eyelid" "left_lid_tightener" "range" 0 1
          
            flexfile "right_lid_droop.vta"
            flex "right_lid_droop"  frame 10
             flexcontroller "eyelid" "right_lid_droop" "range" 0 1
          
            flexfile "left_lid_droop.vta"
            flex "left_lid_droop"  frame 10
             flexcontroller "eyelid" "left_lid_droop" "range" 0 1
          
           	eyeball righteye "ValveBiped.Bip01_Head1" -1.17 -2.15 67.47 "eyeball_r" 1.00 4 "grn_pupil_r" 0.73
          	eyeball lefteye "ValveBiped.Bip01_Head1" 1.18 -2.15 67.47 "eyeball_l" 1.00 -4 "grn_pupil_l" 0.73
               mouth 0 "mouth"  ValveBiped.Bip01_Head1 0.000 1.000 0.000
          
           %right_lid_raiser = right_lid_raiser
           %left_lid_raiser = left_lid_raiser
           %right_lid_tightener = right_lid_tightener
           %left_lid_tightener = left_lid_tightener
           %right_lid_droop = right_lid_droop
           %left_lid_droop = left_lid_droop
          }
          
          $body "glasses" "glasses_ref.smd"
          
          $cdmaterials "models\Police\"
          $cdmaterials "models\manhack\"
          $hboxset "default"
          $hbox 1 "ValveBiped.Bip01_Head1" -3.500  -7.710  -3.850  7.500  5.710  3.960
          $hbox 4 "ValveBiped.Bip01_L_UpperArm" 0.000  -3.370  -3.700  12.510  3.400  2.410
          $hbox 4 "ValveBiped.Bip01_L_Forearm" -0.900  -3.490  -3.170  9.490  3.100  2.410
          $hbox 4 "ValveBiped.Bip01_L_Hand" -1.110  -1.890  -2.380  5.720  1.460  2.340
          $hbox 5 "ValveBiped.Bip01_R_UpperArm" 0.000  -3.370  -2.370  12.390  3.410  3.800
          $hbox 5 "ValveBiped.Bip01_R_Forearm" -0.990  -3.500  -2.370  9.330  3.100  3.270
          $hbox 5 "ValveBiped.Bip01_R_Hand" -1.190  -1.860  -2.330  5.310  1.940  2.610
          $hbox 6 "ValveBiped.Bip01_L_Thigh" 0.000  -6.000  -3.550  17.850  4.000  4.450
          $hbox 6 "ValveBiped.Bip01_L_Calf" 0.000  -3.510  -3.280  15.640  3.490  2.720
          $hbox 6 "ValveBiped.Bip01_L_Foot" -1.070  -2.000  -2.840  5.040  5.000  2.160
          $hbox 6 "ValveBiped.Bip01_L_Toe0" -0.500  -3.000  -2.190  2.500  0.000  2.460
          $hbox 7 "ValveBiped.Bip01_R_Thigh" 0.000  -6.000  -4.550  17.850  4.000  3.400
          $hbox 7 "ValveBiped.Bip01_R_Calf" 0.000  -3.510  -2.820  15.640  3.490  3.180
          $hbox 7 "ValveBiped.Bip01_R_Foot" -1.060  -2.010  -2.280  5.050  4.990  2.720
          $hbox 7 "ValveBiped.Bip01_R_Toe0" -0.500  -3.000  -2.600  2.500  0.000  2.100
          $hbox 3 "ValveBiped.Bip01_Pelvis" -7.500  -6.000  -6.000  7.500  6.000  6.000
          $hbox 2 "ValveBiped.Bip01_Spine2" -6.500  -2.500  -7.000  10.500  7.500  7.000
          
          $attachment "eyes" "ValveBiped.Bip01_Head1" 3.34 -5.28 -0.00 rotate 0.00 -80.10 -90.00
          $attachment "anim_attachment_RH" "ValveBiped.Anim_Attachment_RH" -0.00 -0.00 -0.00 rotate -90.00 -90.00 0.00
          $attachment "anim_attachment_LH" "ValveBiped.Anim_Attachment_LH" -0.00 -0.00 0.00 rotate -90.00 -90.00 0.00
          $attachment "anim_attachment_head" "ValveBiped.Bip01_Head1" -0.00 0.00 0.00 rotate -90.00 -90.00 0.00
          $includemodel "Police_animations.mdl"
          $includemodel "Police_ss.mdl"
          $surfaceprop "flesh"
          $eyeposition 0.000 0.000 72.000
          $illumposition -1.866 0.053 36.320
          $sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00
          $ikchain rhand ValveBiped.Bip01_R_Hand knee  0.707 0.707 0.000
          $ikchain lhand ValveBiped.Bip01_L_Hand knee  0.707 0.707 0.000
          $ikchain rfoot ValveBiped.Bip01_R_Foot knee  0.707 -0.707 0.000
          $ikchain lfoot ValveBiped.Bip01_L_Foot knee  0.707 -0.707 0.000
          $collisionjoints "phymodel.smd" {
          
          	$mass 90.0
          	$inertia 2.00
          	$damping 0.01
          	$rotdamping 0.40
          	$rootbone "valvebiped.bip01_pelvis"
          	$jointmerge "ValveBiped.Bip01_Pelvis" "ValveBiped.Bip01_Spine1"
          
          	$jointconstrain "valvebiped.bip01_spine2" x limit -48.00 48.00 0.20
          	$jointconstrain "valvebiped.bip01_spine2" y limit -25.00 25.00 0.20
          	$jointconstrain "valvebiped.bip01_spine2" z limit -25.00 50.00 0.20
          
          	$jointconstrain "valvebiped.bip01_r_upperarm" x limit -50.00 57.00 0.20
          	$jointconstrain "valvebiped.bip01_r_upperarm" y limit -19.00 102.00 0.20
          	$jointconstrain "valvebiped.bip01_r_upperarm" z limit -93.00 30.00 0.20
          
          	$jointconstrain "valvebiped.bip01_l_upperarm" x limit -50.00 57.00 0.20
          	$jointconstrain "valvebiped.bip01_l_upperarm" y limit -102.00 19.00 0.20
          	$jointconstrain "valvebiped.bip01_l_upperarm" z limit -93.00 30.00 0.20
          
          	$jointmassbias "valvebiped.bip01_l_forearm" 2.00
          	$jointconstrain "valvebiped.bip01_l_forearm" x limit 0.00 0.00 0.00
          	$jointconstrain "valvebiped.bip01_l_forearm" y limit 0.00 0.00 0.00
          	$jointconstrain "valvebiped.bip01_l_forearm" z limit -120.00 4.00 0.20
          
          	$jointmassbias "valvebiped.bip01_l_hand" 4.00
          	$jointconstrain "valvebiped.bip01_l_hand" x limit -60.00 60.00 0.20
          	$jointconstrain "valvebiped.bip01_l_hand" y limit -30.00 30.00 0.20
          	$jointconstrain "valvebiped.bip01_l_hand" z limit -57.00 70.00 0.20
          
          	$jointmassbias "valvebiped.bip01_r_forearm" 2.00
          	$jointconstrain "valvebiped.bip01_r_forearm" x limit 0.00 0.00 0.20
          	$jointconstrain "valvebiped.bip01_r_forearm" y limit 0.00 0.00 0.20
          	$jointconstrain "valvebiped.bip01_r_forearm" z limit -120.00 4.00 0.20
          
          	$jointmassbias "valvebiped.bip01_r_hand" 4.00
          	$jointconstrain "valvebiped.bip01_r_hand" x limit -60.00 60.00 0.20
          	$jointconstrain "valvebiped.bip01_r_hand" y limit -30.00 30.00 0.20
          	$jointconstrain "valvebiped.bip01_r_hand" z limit -57.00 70.00 0.20
          
          	$jointmassbias "valvebiped.bip01_head1" 2.00
          	$jointconstrain "valvebiped.bip01_head1" x limit -20.00 20.00 0.20
          	$jointconstrain "valvebiped.bip01_head1" y limit -25.00 25.00 0.20
          	$jointconstrain "valvebiped.bip01_head1" z limit -13.00 30.00 0.20
          	$animatedfriction 1.000 1000.000 0.800 0.500 0.000
          }
  • $bodygroup
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $bonemerge
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $bonesaveframe
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $calctransitions
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $cbox
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $cd
  • $cdmaterials
        About:
        This command is used to define where your compiled model will look for its textures - the .vmt files. Which in-turn, will result in finding your .vtf files. This command can be declared several times, but if multiple vmts are found that the model wishes to use, then the '$cdmaterials' command that is closest to the top of the QC will take priority.

        Outline of Use:
        $cdmaterials "(location-of-VMTs)"

        Possible Values:
        location-of-VMTs = path/directory of VMTs

        Examples of Use:
      • Example #1
          $cd "C:\Documents and Settings\Marc\Desktop\Mod Models\Train\train_cab"
          $upaxis "y"
          $modelname "train_props/train_cab.mdl"
          $body "train_cab" "train_cab_ref.smd"
          $surfaceprop "metal"
          $cdmaterials "models/train_props/"
          $cdmaterials "models/train_props2/"
          $sequence idle "train_cab_ref" fps 30.00
          
          $collisionmodel "train_cab_phys.smd" {
          	$concave
          	$mass 15000
          }
  • $cliptotextures
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $cmdlist
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $collapsebones
        About:
        Collapses/removes all bones in the model.

        Outline of Use:
        $collapsebones

        Possible Values:

        Examples of Use:
  • $collapsebonesaggressive
        About:
        Collapses/removes all bones in the model.

        Outline of Use:
        $collapsebones

        Possible Values:

        Examples of Use:
  • $collisionjoints
        About:

        Incompatible With:
        "$collisionmodel".

        Outline of Use:
        $collisionjoints "(collision-smd)" { "(sub-command)" "(sub-command's-value)" }

        Possible Values:
        reference-smd = an SMD name
        sub-command = See "Sub Commands"
        sub-command's-value = See "Sub Commands"

        Sub Commands:
      • $animatedfriction
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • $automass
            About:
            I'm not a huge fan of this one, as I prefer the flexibility and precision of the $mass command. I don't know much about it, but from what I can tell it works out the volume of your collision model, then adds/subtracts from this value depending on the $surfaceprop/prop_data base type specified.

            Outline of Use:
            $automass

            Possible Values:
            N/A (no values are used)

            Examples of Use:
      • $concave
            About:
            This command should be specified if you have made a custom collision model and you want it to be 'concave', rather than convex. (A default convex bounding box would be "made" by the compiler, even if a concave collision was used unless this command is declared.)

            If you are unsure of the differences between concave and convex, then see here for an example. (Just imagine the 'hole' in 3D.)

            Outline of Use:
            $concave

            Possible Values:
            N/A (no values are used)

            Examples of Use:
      • $controller
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • $damping
            About:
            As the word 'damping' suggests, this command affects how the model will react when hitting something. (among other things, probably) For example, a simple mechanical object would likely have a value of around 0 because its surface wouldn't be very bouncy/soft. Whereas something soft and organic like a human or animal, would have a higher value (usually around 1.5), as they wouldn't instantly 'stop' as they hit something, but rather 'squish', then bounce back a bit.

            Outline of Use:
            $damping "(value)"

            Possible Values:
            value = 0 to infinite (untested)

            Examples of Use:
      • $definemacro
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • $drag
            About:
            Scales the air restistance of the model. 1 is default. Any higher values will be like trying to pull a parachute filled with air.

            Outline of Use:
            $drag "(value)"

            Possible Values:
            value = 0 to infinite (untested)

            Examples of Use:
      • $inertia
            About:

            Outline of Use:
            $inertia "(value)"

            Possible Values:
            value = 0 to infinite (untested)

            Examples of Use:
      • $jointcollide
      • $jointconstrain
            About:

            Outline of Use:
            $jointconstrain "(joint-name)" (axisSpecify the axis you wish to edit. Possible values: x, y and z.) limit (negative-limit) (positive-limit) (friction-value)

            Possible Values:
            joint-name = (a joint nameThe joint needs to be located in your collision .smd, and must have a mesh at least partially binded to it.)
            axis = x, y, z
            negative-limit = -180 to 0
            positive-limit = 0 to 180
            fraction-limit = 0 to infinite (untested)

            Examples of Use:
          • Example #1
              $cd "C:\Documents and Settings\Marc\Desktop\decompile"
              $modelname "Humans\Group01\male_09.mdl"
              $model "male_09" "male_09_reference.smd"
              $cdmaterials "models\Humans\Male\Group01\"
              $attachment "eyes" "ValveBiped.Bip01_Head1" 3.79 -3.78 0.01 rotate 0.00 -80.10 -90.00
              $attachment "mouth" "ValveBiped.Bip01_Head1" 1.00 -5.70 -0.00 rotate 0.00 -80.00 -90.00
              $attachment "anim_attachment_RH" "ValveBiped.Anim_Attachment_RH" -0.00 -0.00 -0.00 rotate -90.00 -90.00 0.00
              $attachment "anim_attachment_LH" "ValveBiped.Anim_Attachment_LH" -0.00 0.00 -0.00 rotate -90.00 -90.00 0.00
              $attachment "anim_attachment_head" "ValveBiped.Bip01_Head1" -0.00 0.00 -0.00 rotate -90.00 -90.00 0.00
              $includemodel "humans/male_shared.mdl"
              $includemodel "humans/male_ss.mdl"
              $includemodel "humans/male_gestures.mdl"
              $includemodel "humans/male_postures.mdl"
              $surfaceprop "flesh"
              $eyeposition 0.000 0.000 70.000
              $illumposition 0.637 0.000 36.119
              $sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00
              $ikchain rhand ValveBiped.Bip01_R_Hand knee  0.707 0.707 0.000
              $ikchain lhand ValveBiped.Bip01_L_Hand knee  0.707 0.707 0.000
              $ikchain rfoot ValveBiped.Bip01_R_Foot knee  0.707 -0.707 0.000
              $ikchain lfoot ValveBiped.Bip01_L_Foot knee  0.707 -0.707 0.000
              $collisionjoints "phymodel.smd" {
              
              	$mass 90.0
              	$inertia 10.00
              	$damping 0.01
              	$rotdamping 1.50
              	$rootbone "valvebiped.bip01_pelvis"
              	$jointmerge "ValveBiped.Bip01_Pelvis" "ValveBiped.Bip01_Spine1"
              
              	$jointconstrain "valvebiped.bip01_spine2" x limit -48.00 48.00 0.00
              	$jointconstrain "valvebiped.bip01_spine2" y limit -25.00 25.00 0.00
              	$jointconstrain "valvebiped.bip01_spine2" z limit -25.00 50.00 0.00
              
              	$jointconstrain "valvebiped.bip01_r_upperarm" x limit -39.00 39.00 0.00
              	$jointconstrain "valvebiped.bip01_r_upperarm" y limit -79.00 95.00 0.00
              	$jointconstrain "valvebiped.bip01_r_upperarm" z limit -93.00 23.00 0.00
              
              	$jointconstrain "valvebiped.bip01_l_upperarm" x limit -30.00 30.00 0.00
              	$jointconstrain "valvebiped.bip01_l_upperarm" y limit -95.00 84.00 0.00
              	$jointconstrain "valvebiped.bip01_l_upperarm" z limit -86.00 26.00 0.00
              
              	$jointconstrain "valvebiped.bip01_l_forearm" x limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_l_forearm" y limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_l_forearm" z limit -149.00 4.00 0.00
              
              	$jointconstrain "valvebiped.bip01_l_hand" x limit -37.00 37.00 0.00
              	$jointconstrain "valvebiped.bip01_l_hand" y limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_l_hand" z limit -57.00 59.00 0.00
              
              	$jointconstrain "valvebiped.bip01_r_forearm" x limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_r_forearm" y limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_r_forearm" z limit -149.00 4.00 0.00
              
              	$jointconstrain "valvebiped.bip01_r_hand" x limit -60.00 60.00 0.00
              	$jointconstrain "valvebiped.bip01_r_hand" y limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_r_hand" z limit -57.00 70.00 0.00
              
              	$jointconstrain "valvebiped.bip01_r_thigh" x limit -12.00 12.00 0.00
              	$jointconstrain "valvebiped.bip01_r_thigh" y limit -8.00 75.00 0.00
              	$jointconstrain "valvebiped.bip01_r_thigh" z limit -97.00 32.00 0.00
              
              	$jointconstrain "valvebiped.bip01_r_calf" x limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_r_calf" y limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_r_calf" z limit -12.00 126.00 0.00
              
              	$jointconstrain "valvebiped.bip01_head1" x limit -20.00 20.00 0.00
              	$jointconstrain "valvebiped.bip01_head1" y limit -25.00 25.00 0.00
              	$jointconstrain "valvebiped.bip01_head1" z limit -13.00 30.00 0.00
              
              	$jointconstrain "valvebiped.bip01_l_thigh" x limit -12.00 12.00 0.00
              	$jointconstrain "valvebiped.bip01_l_thigh" y limit -73.00 6.00 0.00
              	$jointconstrain "valvebiped.bip01_l_thigh" z limit -93.00 30.00 0.00
              
              	$jointconstrain "valvebiped.bip01_l_calf" x limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_l_calf" y limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_l_calf" z limit -8.00 126.00 0.00
              
              	$jointconstrain "valvebiped.bip01_l_foot" x limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_l_foot" y limit -19.00 19.00 0.00
              	$jointconstrain "valvebiped.bip01_l_foot" z limit -15.00 35.00 0.00
              
              	$jointconstrain "valvebiped.bip01_r_foot" x limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_r_foot" y limit -25.00 6.00 0.00
              	$jointconstrain "valvebiped.bip01_r_foot" z limit -15.00 35.00 0.00
              	$animatedfriction 1.000 400.000 0.500 0.300 0.000
              }
      • $jointcontents
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • $jointdamping
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • $jointinertia
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • $jointmassbias
      • $jointmerge
            About:
            While the command's name implies that it merges joints, it doesn't. It infact merges the collision meshes (objects) that are binded to the specified joints. Joint 2's collision mesh is merged and binded with Joint 1. Remember though, ragdolls can only have one 'convex' collision mesh per joint, this is not a work around for that.

            Outline of Use:
            $jointmerge "(joint1)" "(joint2)"

            Possible Values:
            joint-1 = a joint name
            joint-2 = a joint name

            Examples of Use:
      • $jointrotdamping
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • $jointskip
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • $mass
      • $masscenter
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • $noselfcollisions
            About:
            Prevents any of the model's collision model parts colliding with each other. Mainly used to prevent the ragdoll spasming & for performance issues.

            Outline of Use:
            $noselfcollisions

            Possible Values:
            N/A (no values are used)

            Examples of Use:
      • $poseparameter
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • $proceduralbones
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • $rootbone
            About:

            Outline of Use:
            $rootbone "(joint-name)"

            Possible Values:
            N/A (no values are used)

            Examples of Use:
      • $rotdamping
            About:
            Short for Rotational Damping. As the word 'damping' suggests, this command affects how joints will react when hitting their '$jointconstrain' limits. (among other things, probably) For example, a simple mechanical object would likely have a value of 0 because its joints would have no dampeners. Whereas something soft and organic like a human or animal, would have a higher value (usually around 1.5), as their joints wouldn't instantly 'stop' as they reach their limits, but rather bounce back a bit.

            Outline of Use:
            $rotdamping "(value)"

            Possible Values:
            value = 0 to infinite (untested)

            Examples of Use:

      • Examples of Use:
  • $collisionmodel
  • $collisiontext
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
      • Example #1
          $cd "C:\Documents and Settings\Marc\Desktop\Combine_strider"
          $modelname "Combine_Strider.mdl"
          $model "studio" "Strider_Reference.smd"
          $lod 50
           {
            replacemodel "Strider_Reference" "lod1_Strider_Reference"
          }
          $lod 75
           {
            replacemodel "Strider_Reference" "lod2_Strider_Reference"
          }
          $lod 100
           {
            replacemodel "Strider_Reference" "lod3_Strider_Reference"
          }
          $lod 140
           {
            replacemodel "Strider_Reference" "lod4_Strider_Reference"
          }
          $shadowlod
          {
            replacemodel "Strider_Reference" "lod5_Strider_Reference"
          }
          
          $poseparameter move_yaw -180.00 180.00 360.00
          $poseparameter body_height 0.00 500.00
          $poseparameter yaw -37.82 45.34
          $poseparameter pitch -30.30 49.80
          $poseparameter minigunYaw -90.00 90.00
          $poseparameter minigunPitch -45.00 45.00
          
          $cdmaterials "models\combine_strider\"
          
          $hboxset "default"
          $hbox 1 "Combine_Strider.Body_Bone" -32.500  -22.500  -35.000  32.500  22.500  35.000
          $hbox 7 "Combine_Strider.Leg_Right_Bone" -20.000  -7.500  -7.500  190.000  7.500  7.500
          $hbox 7 "Combine_Strider.Leg_Right_Bone1" -10.000  -1.000  -1.000  310.000  11.000  11.000
          $hbox 4 "Combine_Strider.Leg_Hind_Bone" -15.000  -5.500  -7.500  205.000  9.500  7.500
          $hbox 4 "Combine_Strider.Leg_Hind_Bone1" -5.000  1.000  -6.000  315.000  13.000  6.000
          $hbox 6 "Combine_Strider.Leg_Left_Bone" -20.000  -7.500  -7.500  190.000  7.500  7.500
          $hbox 6 "Combine_Strider.Leg_Left_Bone1" -10.000  -1.000  -11.000  310.000  11.000  1.000
          $hbox 1 "Combine_Strider.Neck_Bone" -2.500  -13.000  -22.500  52.500  17.000  12.500
          $hbox 1 "Combine_Strider.Gun_Bone1" -19.430  -13.500  -10.500  30.570  11.500  14.500
          $hbox 2 "Combine_Strider.Gun_Bone2" -10.000  -45.000  -7.170  80.000  -15.000  2.830
          $hbox 7 "Combine_Strider.Shoulder_Bone_Right" 0.000  -10.000  -10.000  30.000  10.000  10.000
          $hbox 6 "Combine_Strider.Shoulder_Bone_Left" 0.000  -10.000  -10.000  30.000  10.000  10.000
          
          $attachment "left foot" "Combine_Strider.Foot_Left" -0.00 0.00 0.00 rotate 0.00 -0.00 -0.00
          $attachment "right foot" "Combine_Strider.Foot_Right" 0.00 -0.00 -0.00 rotate 0.00 0.00 0.00
          $attachment "back foot" "Combine_Strider.Foot_Hind" 0.00 0.00 0.00 rotate 0.00 0.00 0.00
          $attachment "kneeL" "Combine_Strider.Leg_Left_Bone1" -0.00 -0.00 0.00 rotate -0.00 -0.00 -0.00
          $attachment "kneeR" "Combine_Strider.Leg_Right_Bone1" 0.00 0.00 0.00 rotate -0.00 0.00 -0.00
          $attachment "kneeB" "Combine_Strider.Leg_Hind_Bone1" -0.00 -0.00 -0.00 rotate -0.00 -0.00 0.00
          $attachment "left skewer" "Combine_Strider.Leg_Left_Bone1" 240.00 5.00 -5.00 rotate -0.00 -0.00 -0.00
          $attachment "right skewer" "Combine_Strider.Leg_Right_Bone1" 240.00 5.00 5.00 rotate -0.00 0.00 -0.00
          $attachment "BigGun" "Combine_Strider.Gun_Bone2" 80.96 -45.09 -1.37 rotate -0.00 -22.50 -90.00
          $attachment "MiniGun" "Combine_Strider.Head_Bone" 2.00 -0.00 36.00 rotate -90.00 -90.00 0.00
          $attachment "MiniGunBase" "Combine_Strider.Head_Bone" -0.00 -0.00 0.00 rotate -90.00 -90.00 0.00
          $attachment "vehicle_driver_eyes" "Combine_Strider.Body_Bone" 0.00 50.00 -50.00 rotate -90.00 -90.00 0.00
          $attachment "vehicle_driver_exit" "Combine_Strider.Body_Bone" 0.00 50.00 -50.00 rotate -90.00 -90.00 0.00
          
          $surfaceprop "strider"
          $eyeposition 0.000 0.000 1.000
          $illumposition -13.592 -1.436 -233.946
          $sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00
          $ikchain leftfoot Combine_Strider.Foot_Left knee  0.940 0.340 0.000
          $ikchain rightfoot Combine_Strider.Foot_Right knee  0.940 0.340 0.000
          $ikchain backfoot Combine_Strider.Foot_Hind knee  0.940 -0.340 0.000
          $collisionjoints "phymodel.smd" {
          
          	$mass 2000.0
          	$inertia 1.00
          	$damping 0.00
          	$rotdamping 0.00
          	$rootbone "combine_strider.body_bone"
          
          	$jointconstrain "combine_strider.gun_bone1" x limit -35.00 35.00 0.20
          	$jointconstrain "combine_strider.gun_bone1" y limit -41.00 26.00 0.20
          	$jointconstrain "combine_strider.gun_bone1" z limit -44.00 44.00 0.20
          
          	$jointconstrain "combine_strider.neck_bone" x limit -30.00 30.00 0.20
          	$jointconstrain "combine_strider.neck_bone" y limit -41.00 37.00 0.20
          	$jointconstrain "combine_strider.neck_bone" z limit -35.00 35.00 0.20
          
          	$jointconstrain "combine_strider.head_bone" x limit -28.00 68.00 0.20
          	$jointconstrain "combine_strider.head_bone" y limit -50.00 50.00 0.20
          	$jointconstrain "combine_strider.head_bone" z limit -17.00 17.00 0.20
          
          	$jointconstrain "combine_strider.shoulder_bone_left" x limit 0.00 0.00 0.20
          	$jointconstrain "combine_strider.shoulder_bone_left" y limit -53.00 53.00 0.20
          	$jointconstrain "combine_strider.shoulder_bone_left" z limit -46.00 73.00 0.20
          
          	$jointconstrain "combine_strider.leg_left_bone" x limit -55.00 55.00 0.20
          	$jointconstrain "combine_strider.leg_left_bone" y limit -102.00 102.00 0.20
          	$jointconstrain "combine_strider.leg_left_bone" z limit -86.00 86.00 0.20
          
          	$jointconstrain "combine_strider.gun_bone2" x limit -21.00 21.00 0.20
          	$jointconstrain "combine_strider.gun_bone2" y limit -37.00 57.00 0.20
          	$jointconstrain "combine_strider.gun_bone2" z limit -32.00 32.00 0.20
          
          	$jointconstrain "combine_strider.leg_hind_bone" x limit -30.00 30.00 0.20
          	$jointconstrain "combine_strider.leg_hind_bone" y limit -48.00 48.00 0.20
          	$jointconstrain "combine_strider.leg_hind_bone" z limit -102.00 75.00 0.20
          
          	$jointrotdamping "combine_strider.leg_hind_bone1" 1.00
          	$jointconstrain "combine_strider.leg_hind_bone1" x limit 0.00 0.00 2.00
          	$jointconstrain "combine_strider.leg_hind_bone1" y limit 0.00 0.00 2.00
          	$jointconstrain "combine_strider.leg_hind_bone1" z limit -32.00 138.00 0.20
          
          	$jointconstrain "combine_strider.shoulder_bone_right" x limit 0.00 0.00 0.20
          	$jointconstrain "combine_strider.shoulder_bone_right" y limit -53.00 53.00 0.20
          	$jointconstrain "combine_strider.shoulder_bone_right" z limit -73.00 46.00 0.20
          
          	$jointconstrain "combine_strider.leg_right_bone" x limit -55.00 55.00 0.20
          	$jointconstrain "combine_strider.leg_right_bone" y limit -102.00 102.00 0.20
          	$jointconstrain "combine_strider.leg_right_bone" z limit -86.00 86.00 0.20
          
          	$jointrotdamping "combine_strider.leg_right_bone1" 1.00
          	$jointconstrain "combine_strider.leg_right_bone1" x limit 0.00 0.00 0.00
          	$jointconstrain "combine_strider.leg_right_bone1" y limit 0.00 0.00 2.00
          	$jointconstrain "combine_strider.leg_right_bone1" z limit -144.00 28.00 2.00
          
          	$jointrotdamping "combine_strider.leg_left_bone1" 1.00
          	$jointconstrain "combine_strider.leg_left_bone1" x limit 0.00 0.00 0.00
          	$jointconstrain "combine_strider.leg_left_bone1" y limit 0.00 0.00 2.00
          	$jointconstrain "combine_strider.leg_left_bone1" z limit -140.00 28.00 2.00
          }
          
          $collisiontext {
          	break { "model" "gibs/strider_gib1" "health" "0" "fadetime" "0" "placementbone" "combine_strider.body_bone"}
          	break { "model" "gibs/strider_gib2" "health" "0" "fadetime" "0" "placementbone" "combine_strider.body_bone"}
          	break { "model" "gibs/strider_gib3" "health" "0" "fadetime" "0" "placementbone" "combine_strider.body_bone"}
          	break { "model" "gibs/strider_gib4" "health" "0" "fadetime" "0" "placementbone" "combine_strider.body_bone"}
          	break { "model" "gibs/strider_gib5" "health" "0" "fadetime" "0" "placementbone" "combine_strider.body_bone"}
          	break { "model" "gibs/strider_gib6" "health" "0" "fadetime" "0" "placementbone" "combine_strider.body_bone"}
          	break { "model" "gibs/strider_gib7" "health" "0" "fadetime" "0" "placementbone" "combine_strider.body_bone"}
          	break { "ragdoll" "gibs/strider_head" "health" "0" "fadetime" "0"}
          	break { "ragdoll" "gibs/strider_weapon" "health" "0" "fadetime" "0"}
          	break { "ragdoll" "gibs/strider_left_leg" "health" "0" "fadetime" "0"}
          	break { "ragdoll" "gibs/strider_right_leg" "health" "0" "fadetime" "0"}
          	break { "ragdoll" "gibs/strider_back_leg" "health" "0" "fadetime" "0"}
          }
  • $constantdirectionallight
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $contents
        About:

        Outline of Use:
        $contents "(content-types)"

        Possible Values:
        content-types = grate, ladder, monster, notsolid, solid

        Examples of Use:
  • $continue
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $controller
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $declaresequence
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $declareanimation
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $defaultweightlist
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $definebone
  • $externaltextures
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $eyeposition
        About:
        Used to 'define/create' a joint in the model that otherwise wasn't located in one of the SMDs. It isn't possible to bind any part of the mesh to any joints created by this command.

        Outline of Use:
        $eyeposition (x-position) (y-position) (z-position)

        Possible Values:
        x-position = real numberA real number is any number. It can be negative, a decimal, or both. So your 'value' should be something like these: -6, 1.2, 0, -3, 4032.405 etc.
        y-position = real numberA real number is any number. It can be negative, a decimal, or both. So your 'value' should be something like these: -6, 1.2, 0, -3, 4032.405 etc.
        z-position = real numberA real number is any number. It can be negative, a decimal, or both. So your 'value' should be something like these: -6, 1.2, 0, -3, 4032.405 etc.

        Examples of Use:
      • Example #1
          $cd "C:\Documents and Settings\Marc\Desktop\decompile"
          $modelname "Humans\Group01\male_09.mdl"
          $model "male_09" "male_09_reference.smd" {
          
             flexfile "right_lid_raiser.vta"
            flex "right_lid_raiser"  frame 10
             flexcontroller "eyelid" "right_lid_raiser" "range" 0 1
          
            flexfile "left_lid_raiser.vta"
            flex "left_lid_raiser"  frame 10
             flexcontroller "eyelid" "left_lid_raiser" "range" 0 1
          
               eyeball righteye ValveBiped.Bip01_Head1 -1.298 -3.605 67.682 eyeball_r 1.000  4.000 grn_pupil_r 0.660
               eyeball lefteye ValveBiped.Bip01_Head1 1.287 -3.605 67.663 eyeball_l 1.000  -4.000 grn_pupil_l 0.660
          
          	%right_lid_raiser = right_lid_raiser
          	%left_lid_raiser = left_lid_raiser
          }
          $cdmaterials "models\Humans\Male\Group01\"
          $cdmaterials "models\Humans\Male\"
          $attachment "eyes" "ValveBiped.Bip01_Head1" 3.79 -3.78 0.01 rotate 0.00 -80.10 -90.00
          $includemodel "humans/male_shared.mdl"
          $includemodel "humans/male_ss.mdl"
          $includemodel "humans/male_gestures.mdl"
          $includemodel "humans/male_postures.mdl"
          $surfaceprop "flesh"
          $eyeposition 0.000 0.000 70.000
          $sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00
          $ikchain rhand ValveBiped.Bip01_R_Hand knee  0.707 0.707 0.000
          $ikchain lhand ValveBiped.Bip01_L_Hand knee  0.707 0.707 0.000
          $collisionjoints "phymodel.smd" {
          
          	$mass 90.0
          	$inertia 10.00
          	$damping 0.01
          	$rotdamping 1.50
          	$rootbone "valvebiped.bip01_pelvis"
          	$jointmerge "ValveBiped.Bip01_Pelvis" "ValveBiped.Bip01_Spine1"
          
          	$jointconstrain "valvebiped.bip01_spine2" x limit -48.00 48.00 0.00
          	$jointconstrain "valvebiped.bip01_spine2" y limit -25.00 25.00 0.00
          	$jointconstrain "valvebiped.bip01_spine2" z limit -25.00 50.00 0.00
          
          	$jointconstrain "valvebiped.bip01_r_upperarm" x limit -39.00 39.00 0.00
          	$jointconstrain "valvebiped.bip01_r_upperarm" y limit -79.00 95.00 0.00
          	$jointconstrain "valvebiped.bip01_r_upperarm" z limit -93.00 23.00 0.00
          
          	$jointconstrain "valvebiped.bip01_l_upperarm" x limit -30.00 30.00 0.00
          	$jointconstrain "valvebiped.bip01_l_upperarm" y limit -95.00 84.00 0.00
          	$jointconstrain "valvebiped.bip01_l_upperarm" z limit -86.00 26.00 0.00
          
          	$jointconstrain "valvebiped.bip01_l_forearm" x limit 0.00 0.00 0.00
          	$jointconstrain "valvebiped.bip01_l_forearm" y limit 0.00 0.00 0.00
          	$jointconstrain "valvebiped.bip01_l_forearm" z limit -149.00 4.00 0.00
          
          	$jointconstrain "valvebiped.bip01_l_hand" x limit -37.00 37.00 0.00
          	$jointconstrain "valvebiped.bip01_l_hand" y limit 0.00 0.00 0.00
          	$jointconstrain "valvebiped.bip01_l_hand" z limit -57.00 59.00 0.00
          
          	$jointconstrain "valvebiped.bip01_r_forearm" x limit 0.00 0.00 0.00
          	$jointconstrain "valvebiped.bip01_r_forearm" y limit 0.00 0.00 0.00
          	$jointconstrain "valvebiped.bip01_r_forearm" z limit -149.00 4.00 0.00
          
          	$jointconstrain "valvebiped.bip01_r_hand" x limit -60.00 60.00 0.00
          	$jointconstrain "valvebiped.bip01_r_hand" y limit 0.00 0.00 0.00
          	$jointconstrain "valvebiped.bip01_r_hand" z limit -57.00 70.00 0.00
          
          	$jointconstrain "valvebiped.bip01_r_thigh" x limit -12.00 12.00 0.00
          	$jointconstrain "valvebiped.bip01_r_thigh" y limit -8.00 75.00 0.00
          	$jointconstrain "valvebiped.bip01_r_thigh" z limit -97.00 32.00 0.00
          
          	$jointconstrain "valvebiped.bip01_head1" x limit -20.00 20.00 0.00
          	$jointconstrain "valvebiped.bip01_head1" y limit -25.00 25.00 0.00
          	$jointconstrain "valvebiped.bip01_head1" z limit -13.00 30.00 0.00
          
          	$jointconstrain "valvebiped.bip01_l_thigh" x limit -12.00 12.00 0.00
          	$jointconstrain "valvebiped.bip01_l_thigh" y limit -73.00 6.00 0.00
          	$jointconstrain "valvebiped.bip01_l_thigh" z limit -93.00 30.00 0.00
          
          	$animatedfriction 1.000 400.000 0.500 0.300 0.000
          }
  • $fakevta
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $forcephonemecrossfade
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $forcerealign
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $gamma
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $hbox
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $hboxset
        About:

        Outline of Use:
        $hboxset "(value)"

        Possible Values:
        value = default, dod, cstrike

        Examples of Use:
  • $hgroup
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $heirarchy
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $hierarchy
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $ikautoplaylock
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $ikchain
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $illumposition
  • $include
        About:
        Used to specify and include .QCI files. QCI files are basically snippets of .QC code that can be included for easy use - good for mass compiling of similar models, such as including common animations, flex information, physics related code, etc. (see ".../sourcesdk_content/")

        Outline of Use:
        $include "(filepath/filename.qci)"

        Possible Values:

        Examples of Use:
      • Example #1
          $cd "C:\Documents and Settings\Marc\Desktop\Mod Models\Train\train_cab"
          $modelname sdk\Humans\male_06_sdk.mdl
          $cdmaterials sdk\models\Humans\Male
          
          $eyeposition 0 0 70
          $attachment "eyes" "ValveBiped.Bip01_Head1" 0.043 -4.2197 67.5554 absolute
          $attachment "mouth" "ValveBiped.Bip01_Head1" 1.00 -6.30 0.00 rotate 0 -80 -90
          
          
          $model male_06 "male_06_reference.smd"{
          	eyeball righteye "ValveBiped.Bip01_Head1" -1.2711 -4.2197 67.5593 "eyeball_r" 1 4 "pupil_r" 0.63
          	eyeball lefteye "ValveBiped.Bip01_Head1" 1.3572 -4.2197 67.5514 "eyeball_l" 1 -4 "pupil_l" 0.63
          
          	eyelid  upper_right "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split 0.1 eyeball righteye
          	eyelid  lower_right "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split 0.1 eyeball righteye
          	eyelid  upper_left "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split -0.1 eyeball lefteye
          	eyelid  lower_left "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split -0.1 eyeball lefteye
          
          	mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0     // mouth illumination
          
          	flexfile "male_06_expressions" {
          		$include "../standardflex_xsi.qci"
          	}
          
          	$include "../facerules_xsi.qci"
          	$include "../bodyrules_xsi.qci"
          
          }
          //end eye/face data	
          
          $include "../standardhierarchy.qci"
          $alwayscollapse "male_06"
          $alwayscollapse "XSISceneRoot"
          
          $proceduralbones "../male.vrd"
          
          $pushd "../male_animations_sdk"
          $include "../male_animations_sdk/male_shared_XSI_sdk.qci"
          $include "../male_animations_sdk/body_poses_lean.qci"
          $include "../male_animations_sdk/WeaponAnims_shared_sdk.qci"
          $popd
          
          $lod 10 
          {
          	replacemodel "Male_06_reference" "Male_06_LOD_1" 
          }
          $lod 20 
          {
          	replacemodel "Male_06_reference" "Male_06_LOD_2"
          	$include "../removehands.qci"
          	
          }
          $lod 35 
          {
          	replacemodel "Male_06_reference" "Male_06_LOD_3"
          	$include "../lowesthumanskeleton.qci"
          	$include "../lowesthumannohelpers.qci"
          	nofacial
          }
          $lod 50 
          {
          	replacemodel "Male_06_reference" "Male_06_LOD_4"
          	$include "../lowesthumanskeleton.qci"
          	$include "../lowesthumannohelpers.qci"
          	nofacial
          }
          $lod 90 
          {
          	replacemodel "Male_06_reference" "Male_06_LOD_5"
          	$include "../lowesthumanskeleton.qci"
          	$include "../lowesthumannohelpers.qci"
          	nofacial
          }
          $shadowlod
          {
          	replacemodel "Male_06_reference" "Male_06_LOD_shadow" 
          	$include "../lowesthumanskeleton.qci"
          	$include "../lowesthumannohelpers.qci"
          	nofacial
          }
          
          $include "hitbox.qci"
          $include "ragdoll.qci"
          
  • $includemodel
        About:

        Outline of Use:
        $includemodel "(filename)"

        Possible Values:

        Examples of Use:
  • $insertbone
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $jointcontents
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $jointsurfaceprop
        About:

        Outline of Use:

        Possible Values:
      • Stone:
        baserock
        boulder
        brick
        concrete
        concrete_block
        gravel
        rock
        
        Metals:
        chain
        chainlink
        metal
        metal_box
        metalgrate
        metalpanel
        metalvent
        slipperymetal
        solidmetal
        
        Liquids/Frozen:
        ice
        slime
        snow
        water
        wade
        
        Organic/Flesh:
        alienflesh
        armorflesh
        bloodyflesh
        flesh
        strider
        
        Terrain:
        antlionsand
        dirt
        grass
        gravel
        mud
        mudslipperyslime
        quicksand
        slime
        slipperyslime
        
        Wooden:
        wood
        wood_box
        wood_crate
        wood_furniture
        wood_lowdensity
        wood_plank
        wood_panel
        wood_solid
        	
        Others:
        computer
        default
        glass
        ladder
        porcelain
        tile
        watermelon

      • Examples of Use:
  • $keyvalues
        About:
        Useful for 'prop_physic' entities. Used to define many characteristics of the model. Such as, health, material type, size (defines mass as far as I know) etc. Some of its more interesting uses are seen on the following Half-Life 2 props: explosive barrelThe explosive barrel's $keyvalue properties cause it to set aflame (and then explode) when half or more of its health is lost, explode instantly on contact when thrown with the gravity gun (physcannon), and it has a few other attributes. (health, explosion radius etc.), sawbladeThe sawblade's $keyvalue properties cause it to 'stick' into the world (brushes made in hammer) and spin on its z-axis when thrown with the Gravity Gun. (physcannon), harpoonThe harpoon's $keyvalue properties cause it to 'impale' living NPCs into the wall, stick into the world (brushes made in hammer) and not revolve at all when thrown with the Gravity Gun. (physcannon) and paint canThe paint can's $keyvalue properties cause it to create a paint decal wherever it first has contact with when thrown with the Gravity Gun. (physcannon).

        Common Outline of Use:
        $keyvalues { "(sub-command)" { "(sub's-command)" "(command's-value)" } }

        Sub Commands:
      • prop_data
      • physgun_interactions
            About:
            Used to specify what happens to the model when picked up/thrown by the physgunAlso known as: the "Gravity Gun", the "Zero Point Energy Field Manipulator", the "Physcannon" or the "Physics Cannon"..

            Outline of Use:

            Possible Values:
          • "preferred_carryangles"
                About:
                Specifies what angles the model should be carried at when picked up with the physgun.
                Outline of Use:
                "preferred_carryangles" (x-rotate) (y-rotate) (z-rotate)

                Possible Values:
                x-rotate = -180 to 180
                y-rotate = -180 to 180
                z-rotate = -180 to 180

                Examples of Use:
          • "onworldimpact"
                About:
                Specifies what should happen to the model when it first collides with the world after being thrown by the physgun. In HL2; the harpoon uses stick.
                Outline of Use:
                "onworldimpact" "(type)"

                Possible Values:
                type = stick

                Examples of Use:
          • "onfirstimpact"
                About:
                Sets what happens when the model is thrown by the physgun and it first collides with something. In HL2; the explosive barrel uses break, the harpoon uses impale and the paint can uses paintsplat.
                Outline of Use:
                "onfirstimpact" "(type)"

                Possible Values:
                type = break, impale, paintsplat

                Examples of Use:
          • "onlaunch"
                About:
                Sets whether the model will spin when launched by the physgun. In HL2; the harpoon uses spin_none, and the sawblade uses spin_zaxis.
                Outline of Use:
                "onlaunch" "(type)"

                Possible Values:
                type = spin_none, spin_zaxis

                Examples of Use:
          • "onbreak"
                About:

                Outline of Use:
                "onbreak" "(type)"

                Possible Values:
                type = explode_fire

                Examples of Use:
          • "damage"
                About:
                When the model is thrown it will not cause any damage to whatever it hits.
                Outline of Use:
                "damage" "(type)"

                Possible Values:
                type = none

                Examples of Use:
      • fire_interactions
            About:

            Outline of Use:

            Possible Values:
          • "ignite"
                About:

                Outline of Use:
                "ignite" "(type)"

                Possible Values:
                type = halfhealth

                Examples of Use:
          • "explosive_resist"
                About:

                Outline of Use:
                "explosive_resist" "(type)"

                Possible Values:
                type = yes

                Examples of Use:
      • cables
            About:
            Used to create 'Source-engine' cables/ropes. These ropes do not collide with models, only the world. However, they are affected by gravity and jingle about when their "attachment" points are moved.

            Outline of Use:

            Possible Values:
          • "cable"
                About:
                Used to create 'Source-engine' cables/ropes. These ropes do not collide with models, only the world. However, they are affected by gravity and jingle about when their "attachment" points are moved.
                Outline of Use:
                "StartAttachment" "(name-1)" "EndAttachment" "(name-2)" "Width" "(value-1)" "Material" "(material-path/material-name)" "NumSegments" "(value-2)" "Length" "(value-3)"

                Possible Values:
                name-1 = name of starting point (attachment) - See $attachment.
                name-2 = name of end point (attachment) - See $attachment.
                value-1 = 0 to infinite
                material-path/material-name = directory and name of materialDirectory path starts from '.../(game)/materials/' so don't include anything from before that. (see examples) - default Half-Life 2 cable materials consist of: cable/cable, cable/red, cable/green, cable/blue, cable/chain, cable/rope
                value-2 = 0 to infinite
                value-3 = 0 to infinite

                Examples of Use:
              • Example #1
                  $cd "C:\Documents and Settings\Marc\Desktop\decompile"
                  $modelname "dog.mdl"
                  $model "dog" "dog_reference.smd"
                  
                  $lod 16
                  {
                  	replacemodel "dog_reference" "lod1_dog_reference"
                  }
                  $lod 35
                  {
                  	replacemodel "dog_reference" "lod2_dog_reference"
                  }
                  $lod 55
                  {
                  	replacemodel "dog_reference" "lod3_dog_reference"
                  }
                  $lod 85
                  {
                  	replacemodel "dog_reference" "lod4_dog_reference"
                  }
                  $shadowlod
                  {
                  	replacemodel "dog_reference" "lod5_dog_reference"
                  }
                  
                  $cdmaterials "models\dog\"
                  $hboxset "default"
                  $hbox 0 "Dog_Model.Pelvis" -9.000  -7.000  -23.000  5.000  9.000  7.000
                  $hbox 0 "Dog_Model.Leg1_L" -6.840  -8.090  -5.500  34.020  7.910  5.500
                  $hbox 0 "Dog_Model.Leg2_L" -0.040  -5.500  -4.750  29.960  10.500  3.250
                  $hbox 0 "Dog_Model.Toe_L" -9.000  -8.060  -7.810  17.000  4.060  7.190
                  $hbox 0 "Dog_Model.Leg1_R" -2.500  -6.000  -7.500  32.500  4.000  7.500
                  $hbox 0 "Dog_Model.Leg2_R" 0.420  -6.000  -6.000  32.420  8.000  6.000
                  $hbox 0 "Dog_Model.Foot_R" -11.000  -7.000  -6.000  17.000  9.000  6.000
                  $hbox 0 "Dog_Model.Spine1" -2.000  -9.850  -5.700  10.000  10.150  5.300
                  $hbox 0 "Dog_Model.Spine2" -1.830  -10.820  -5.670  8.830  11.040  5.330
                  $hbox 0 "Dog_Model.Spine3" -0.510  -17.910  -14.530  34.490  12.090  15.470
                  $hbox 0 "Dog_Model.Eye" -6.000  -9.730  -8.930  8.000  8.270  9.070
                  $hbox 0 "Dog_Model.Arm1_L" -25.460  -6.220  -7.000  39.540  9.780  5.000
                  $hbox 0 "Dog_Model.Arm2_L" -18.000  -7.500  -4.000  32.000  7.500  11.000
                  $hbox 0 "Dog_Model.Hand_L" -1.000  -9.000  -10.000  25.000  9.000  10.000
                  $hbox 0 "Dog_Model.Index3_L" -2.490  -4.090  -3.240  5.860  3.360  3.650
                  $hbox 0 "Dog_Model.Arm1_R" -9.330  -7.500  -8.500  39.160  7.500  8.500
                  $hbox 0 "Dog_Model.Arm2_R" -1.000  -5.370  -6.500  31.000  6.870  6.500
                  $hbox 0 "Dog_Model.Hand_R" -6.000  -7.730  -6.690  14.000  8.590  6.710
                  
                  $attachment "eyes" "Dog_Model.Focus_Ring" 0.00 0.00 0.00 rotate 0.00 90.00 -180.00
                  $attachment "forward" "Dog_Model.forward" 0.00 -0.00 -0.00 rotate -0.00 -0.00 0.00
                  $attachment "physgun" "Dog_Model.Hand_R_Drill" 5.00 -15.00 2.00 rotate 0.00 -0.00 0.00
                  $attachment "thumb" "Dog_Model.Thumb3_R" -0.00 0.00 -0.00 rotate 0.00 0.00 -0.00
                  $attachment "pinky" "Dog_Model.Pinky3_R" -0.00 -0.00 -0.00 rotate 0.00 0.00 -0.00
                  $attachment "index" "Dog_Model.Index3_R" 0.00 0.00 0.00 rotate -0.00 0.00 -0.00
                  $attachment "bigPhys_attachment" "Dog_Model.BigPhys_Attachment" 0.00 -0.00 0.00 rotate -90.00 -90.00 0.00
                  $attachment "Cable1a" "Dog_Model.Spine3" 10.74 5.00 1.69 rotate -87.80 19.04 -3.78
                  $attachment "Cable1b" "Dog_Model.Neck1_Length" 4.85 0.83 1.60 rotate -90.00 21.70 0.00
                  $attachment "Cable1c" "Dog_Model.Neck2_Length" 1.22 0.27 0.05 rotate 2.54 -1.87 29.49
                  $attachment "Cable2a" "Dog_Model.Spine3" 8.97 4.13 -1.58 rotate -87.80 19.04 -3.78
                  $attachment "Cable2b" "Dog_Model.Neck2_Length" 1.25 0.16 -0.60 rotate -60.89 88.27 -90.63
                  $attachment "Cable3a" "Dog_Model.Spine3" 5.71 -7.67 0.86 rotate 1.72 -63.91 -177.80
                  $attachment "Cable3b" "Dog_Model.Spine2" 6.91 -9.49 0.09 rotate -90.00 -121.06 0.00
                  $attachment "Cable3c" "Dog_Model.Spine1" 6.39 -9.09 0.11 rotate -90.00 -112.88 0.00
                  $attachment "Cable3d" "Dog_Model.Pelvis" 7.46 -3.95 1.56 rotate -90.00 -90.00 0.00
                  $attachment "Cable4a" "Dog_Model.Spine3" 6.60 -8.92 -1.59 rotate 1.72 -63.91 -177.80
                  $attachment "Cable4b" "Dog_Model.Spine2" 7.19 -9.30 -0.50 rotate -90.00 -121.06 0.00
                  $attachment "Cable4c" "Dog_Model.Spine1" 6.61 -8.95 -0.49 rotate -90.00 -112.88 0.00
                  $attachment "Cable4d" "Dog_Model.Pelvis" 7.22 -4.35 -0.27 rotate -90.00 -90.00 0.00
                  $attachment "Cable5a" "Dog_Model.Spine3" 32.35 8.49 -1.66 rotate -90.00 -157.18 0.00
                  $attachment "Cable5b" "Dog_Model.Neck2_Length" 3.69 -0.45 -0.05 rotate -90.00 144.04 0.00
                  $attachment "Cable6a" "Dog_Model.Hand_L" 0.52 -8.48 1.47 rotate -84.38 172.57 -62.13
                  $attachment "Cable6b" "Dog_Model.Arm1_L" -0.11 -1.00 8.39 rotate -76.54 -17.76 119.08
                  $attachment "Cable7a" "Dog_Model.Arm2_R" 21.87 -2.93 2.82 rotate -84.26 -171.31 -66.87
                  $attachment "Cable7b" "Dog_Model.Arm1_R" 25.48 -0.21 -3.76 rotate -84.26 171.20 -66.87
                  
                  $includemodel "dog_gestures.mdl"
                  $includemodel "dog_postures.mdl"
                  $includemodel "dog_animations.mdl"
                  $surfaceprop "metal"
                  $keyvalues
                  {
                  	Cables
                  	{
                  		"Cable"
                  		{
                  			"StartAttachment" "Cable1a" "EndAttachment" "Cable1b" "Width" "1.3" "Material" "cable/cable" "NumSegments" "10" "Length" "130"
                  		}
                  		"Cable"
                  		{
                  			"StartAttachment" "Cable1b" "EndAttachment" "Cable1c" "Width" ".8" "Material" "cable/cable" "NumSegments" "10" "Length" "125"
                  		}
                  		"Cable"
                  		{
                  			"StartAttachment" "Cable2a" "EndAttachment" "Cable2b" "Width" ".6" "Material" "cable/green" "NumSegments" "10" "Length" "150"
                  		}
                  		"Cable"
                  		{
                  			"StartAttachment" "Cable3a" "EndAttachment" "Cable3b" "Width" ".5" "Material" "cable/blue" "NumSegments" "4" "Length" "110"
                  		}
                  		"Cable"
                  		{
                  			"StartAttachment" "Cable3b" "EndAttachment" "Cable3c" "Width" ".5" "Material" "cable/blue" "NumSegments" "4" "Length" "110"
                  		}
                  		"Cable"
                  		{
                  			"StartAttachment" "Cable3c" "EndAttachment" "Cable3d" "Width" ".5" "Material" "cable/blue" "NumSegments" "4" "Length" "110"
                  		}
                  		"Cable"
                  		{
                  			"StartAttachment" "Cable4a" "EndAttachment" "Cable4b" "Width" "1" "Material" "cable/green" "NumSegments" "4" "Length" "110"
                  		}
                  		"Cable"
                  		{
                  			"StartAttachment" "Cable4b" "EndAttachment" "Cable4c" "Width" "1" "Material" "cable/green" "NumSegments" "4" "Length" "110"
                  		}
                  		"Cable"
                  		{
                  			"StartAttachment" "Cable4c" "EndAttachment" "Cable4d" "Width" "1" "Material" "cable/green" "NumSegments" "4" "Length" "110"
                  		}
                  		"Cable"
                  		{
                  			"StartAttachment" "Cable5a" "EndAttachment" "Cable5b" "Width" ".3" "Material" "cable/blue" "NumSegments" "5" "Length" "120"
                  		}
                  		"Cable"
                  		{
                  			"StartAttachment" "Cable2a" "EndAttachment" "Cable1b" "Width" "1" "Material" "cable/red" "NumSegments" "5" "Length" "124"
                  		}
                  		"Cable"
                  		{
                  			"StartAttachment" "Cable6a" "EndAttachment" "Cable6b" "Width" ".8" "Material" "cable/cable" "NumSegments" "5" "Length" "40"
                  		}
                  		"Cable"
                  		{
                  			"StartAttachment" "Cable7a" "EndAttachment" "Cable7b" "Width" ".8" "Material" "cable/cable" "NumSegments" "5" "Length" "40"
                  		}
                  	}
                  } 
                  $eyeposition 0.000 0.000 70.000
                  $illumposition 2.271 4.640 55.404
                  $sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00
                  $ikchain rhand Dog_Model.Hand_R knee  0.707 0.707 0.000
                  $ikchain lhand Dog_Model.Hand_L knee  0.707 0.707 0.000
                  $ikchain rfoot Dog_Model.Foot_R knee  0.707 -0.707 0.000
                  $ikchain lfoot Dog_Model.Foot_L knee  0.707 -0.707 0.000
                  $collisionjoints "phymodel.smd" {
                  
                  	$mass 260.0
                  	$inertia 10.00
                  	$damping 0.01
                  	$rotdamping 1.00
                  	$rootbone "dog_model.pelvis"
                  
                  	$jointconstrain "dog_model.spine1" x limit -30.00 30.00 0.20
                  	$jointconstrain "dog_model.spine1" y limit -23.00 23.00 0.20
                  	$jointconstrain "dog_model.spine1" z limit -30.00 30.00 0.20
                  
                  	$jointconstrain "dog_model.spine3" x limit -41.00 41.00 0.20
                  	$jointconstrain "dog_model.spine3" y limit -41.00 41.00 0.20
                  	$jointconstrain "dog_model.spine3" z limit -44.00 48.00 0.20
                  
                  	$jointconstrain "dog_model.arm1_l" x limit -19.00 39.00 0.20
                  	$jointconstrain "dog_model.arm1_l" y limit -15.00 21.00 0.20
                  	$jointconstrain "dog_model.arm1_l" z limit -113.00 117.00 0.20
                  
                  	$jointconstrain "dog_model.arm2_l" x limit 0.00 0.00 0.00
                  	$jointconstrain "dog_model.arm2_l" y limit 0.00 0.00 0.00
                  	$jointconstrain "dog_model.arm2_l" z limit -129.00 15.00 0.20
                  
                  	$jointconstrain "dog_model.hand_l" x limit -44.00 44.00 0.20
                  	$jointconstrain "dog_model.hand_l" y limit -15.00 15.00 0.20
                  	$jointconstrain "dog_model.hand_l" z limit -70.00 61.00 0.20
                  
                  	$jointconstrain "dog_model.arm1_r" x limit -55.00 21.00 0.20
                  	$jointconstrain "dog_model.arm1_r" y limit -17.00 12.00 0.20
                  	$jointconstrain "dog_model.arm1_r" z limit -129.00 95.00 0.20
                  
                  	$jointconstrain "dog_model.arm2_r" x limit 0.00 0.00 0.00
                  	$jointconstrain "dog_model.arm2_r" y limit 0.00 0.00 0.00
                  	$jointconstrain "dog_model.arm2_r" z limit -135.00 8.00 0.20
                  
                  	$jointconstrain "dog_model.hand_r" x limit -41.00 41.00 0.20
                  	$jointconstrain "dog_model.hand_r" y limit -21.00 21.00 0.20
                  	$jointconstrain "dog_model.hand_r" z limit -50.00 50.00 0.20
                  
                  	$jointconstrain "dog_model.leg1_r" x limit -50.00 46.00 0.20
                  	$jointconstrain "dog_model.leg1_r" y limit -21.00 35.00 0.20
                  	$jointconstrain "dog_model.leg1_r" z limit -82.00 95.00 0.20
                  
                  	$jointconstrain "dog_model.leg2_r" x limit 0.00 0.00 0.20
                  	$jointconstrain "dog_model.leg2_r" y limit 0.00 0.00 0.00
                  	$jointconstrain "dog_model.leg2_r" z limit -82.00 55.00 0.20
                  
                  	$jointconstrain "dog_model.foot_r" x limit -28.00 28.00 0.20
                  	$jointconstrain "dog_model.foot_r" y limit -30.00 30.00 0.20
                  	$jointconstrain "dog_model.foot_r" z limit -21.00 93.00 0.20
                  
                  	$jointconstrain "dog_model.leg1_l" x limit -21.00 53.00 0.20
                  	$jointconstrain "dog_model.leg1_l" y limit -41.00 41.00 0.20
                  	$jointconstrain "dog_model.leg1_l" z limit -88.00 120.00 0.20
                  
                  	$jointconstrain "dog_model.leg2_l" x limit 0.00 0.00 0.00
                  	$jointconstrain "dog_model.leg2_l" y limit 0.00 0.00 0.00
                  	$jointconstrain "dog_model.leg2_l" z limit -68.00 30.00 0.20
                  
                  	$jointconstrain "dog_model.foot_l" x limit -30.00 30.00 0.20
                  	$jointconstrain "dog_model.foot_l" y limit -30.00 30.00 0.20
                  	$jointconstrain "dog_model.foot_l" z limit -15.00 70.00 0.20
                  
                  	$jointconstrain "dog_model.neck2" x limit -39.00 39.00 0.20
                  	$jointconstrain "dog_model.neck2" y limit -57.00 57.00 0.20
                  	$jointconstrain "dog_model.neck2" z limit -32.00 46.00 0.20
                  }
  • $limitrotation
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $lockbonelengths
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $lockdefinebones
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $lod
        About:
        LODs (Levels of Detail) are usually used for optimisation purposes.

        Outline of Use:
        $lod (distance) { (sub-commands) }

        Possible Values:
        distanceThis distance value is measured in feet. Use Half-Life Model Viewer for an easier way of determining what value to use. (select the 'Model' tab and check the 'Auto LOD' checkbox) = 0 to infinite (untested)

        Sub Commands:
      • bonetreecollapse
            About:
            Collapses joints for performance reasons. When you've specified the joint to collapse from, it then finds all child joints of that joint, finds all bone weight influences they have, then binds them all to the 'specified' joint instead. To explain what this does, if it was used on a tail at the point where it is attached to the waist, (and it had many child joints) it would just bind the entire tail to the specified joint.

            Outline of Use:
            bonetreecollapse "(joint-name)"

            Possible Values:
            joint-name = a joint name

            Examples of Use:
          • Example #1
              $cd "C:\Program Files\Valve\Steam"
              $modelname sdk\Humans\male_06_sdk.mdl
              $cdmaterials sdk\models\Humans\Male
              
              $eyeposition 0 0 70
              
              $attachment "eyes" "ValveBiped.Bip01_Head1" 0.043 -4.2197 67.5554 absolute
              $attachment "mouth" "ValveBiped.Bip01_Head1" 1.00 -6.30 0.00 rotate 0 -80 -90
              
              $model male_06 "male_06_reference.smd"{
              	eyeball righteye "ValveBiped.Bip01_Head1" -1.2711 -4.2197 67.5593 "eyeball_r" 1 4 "pupil_r" 0.63
              	eyeball lefteye "ValveBiped.Bip01_Head1" 1.3572 -4.2197 67.5514 "eyeball_l" 1 -4 "pupil_l" 0.63
              	eyelid  upper_right "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split 0.1 eyeball righteye
              	eyelid  lower_right "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split 0.1 eyeball righteye
              	eyelid  upper_left "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split -0.1 eyeball lefteye
              	eyelid  lower_left "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split -0.1 eyeball lefteye
              
              	mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0
              
              	flexfile "male_06_expressions" {
              		$include "../standardflex_xsi.qci"
              	}
              
              	$include "../facerules_xsi.qci"
              	$include "../bodyrules_xsi.qci"
              
              }
              
              $include "../standardhierarchy.qci"
              $alwayscollapse "male_06"
              $alwayscollapse "XSISceneRoot"
              
              $proceduralbones "../male.vrd"
              
              $pushd "../male_animations_sdk"
              $include "../male_animations_sdk/male_shared_XSI_sdk.qci"
              $include "../male_animations_sdk/body_poses_lean.qci"
              $include "../male_animations_sdk/WeaponAnims_shared_sdk.qci"
              $popd
              
              $lod 10 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_1" 
              }
              $lod 20 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_2"
              	$include "../removehands.qci"
              }
              
              $lod 35 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_3"
              	bonetreecollapse "ValveBiped.Bip01_Neck1"
              	nofacial
              }
              
              $lod 50 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_4"
              	bonetreecollapse "ValveBiped.Bip01_L_Calf"
              	bonetreecollapse "ValveBiped.Bip01_R_Calf"
              	bonetreecollapse "ValveBiped.Bip01_Neck1"
              	nofacial
              }
              
              $lod 90 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_5"
              	bonetreecollapse "ValveBiped.Bip01_L_Forearm"
              	bonetreecollapse "ValveBiped.Bip01_R_Forearm"
              	bonetreecollapse "ValveBiped.Bip01_L_Calf"
              	bonetreecollapse "ValveBiped.Bip01_R_Calf"
              	bonetreecollapse "ValveBiped.Bip01_Neck1"
              	nofacial
              }
              
              $shadowlod
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_shadow" 
              	$include "../lowesthumanskeleton.qci"
              	$include "../lowesthumannohelpers.qci"
              	nofacial
              }
              
              $include "hitbox.qci"
              $include "ragdoll.qci"
      • nofacial
            About:
            Disables facial expressions/flexes.

            Outline of Use:
            nofacial

            Possible Values:
            N/A (no values are used)

            Examples of Use:
          • Example #1
              $cd "C:\Program Files\Valve\Steam"
              $modelname sdk\Humans\male_06_sdk.mdl
              $cdmaterials sdk\models\Humans\Male
              
              $eyeposition 0 0 70
              
              $attachment "eyes" "ValveBiped.Bip01_Head1" 0.043 -4.2197 67.5554 absolute
              $attachment "mouth" "ValveBiped.Bip01_Head1" 1.00 -6.30 0.00 rotate 0 -80 -90
              
              $model male_06 "male_06_reference.smd"{
              	eyeball righteye "ValveBiped.Bip01_Head1" -1.2711 -4.2197 67.5593 "eyeball_r" 1 4 "pupil_r" 0.63
              	eyeball lefteye "ValveBiped.Bip01_Head1" 1.3572 -4.2197 67.5514 "eyeball_l" 1 -4 "pupil_l" 0.63
              	eyelid  upper_right "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split 0.1 eyeball righteye
              	eyelid  lower_right "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split 0.1 eyeball righteye
              	eyelid  upper_left "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split -0.1 eyeball lefteye
              	eyelid  lower_left "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split -0.1 eyeball lefteye
              
              	mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0
              
              	flexfile "male_06_expressions" {
              		$include "../standardflex_xsi.qci"
              	}
              
              	$include "../facerules_xsi.qci"
              	$include "../bodyrules_xsi.qci"
              
              }
              
              $include "../standardhierarchy.qci"
              $alwayscollapse "male_06"
              $alwayscollapse "XSISceneRoot"
              
              $proceduralbones "../male.vrd"
              
              $pushd "../male_animations_sdk"
              $include "../male_animations_sdk/male_shared_XSI_sdk.qci"
              $include "../male_animations_sdk/body_poses_lean.qci"
              $include "../male_animations_sdk/WeaponAnims_shared_sdk.qci"
              $popd
              
              $lod 10 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_1" 
              }
              $lod 20 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_2"
              	$include "../removehands.qci"
              }
              
              $lod 35 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_3"
              	$include "../lowesthumanskeleton.qci"
              	$include "../lowesthumannohelpers.qci"
              	nofacial
              }
              
              $lod 50 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_4"
              	$include "../lowesthumanskeleton.qci"
              	$include "../lowesthumannohelpers.qci"
              	nofacial
              }
              
              $lod 90 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_5"
              	$include "../lowesthumanskeleton.qci"
              	$include "../lowesthumannohelpers.qci"
              	nofacial
              }
              
              $shadowlod
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_shadow" 
              	$include "../lowesthumanskeleton.qci"
              	$include "../lowesthumannohelpers.qci"
              	nofacial
              }
              
              $include "hitbox.qci"
              $include "ragdoll.qci"
      • replacematerial
            About:
            Replaces the specified material with another texture. Used to replace textures for performance reasons, such as replacing eyes (that are using the eyes shader) with a 'static' texture with no fancy shaders. However, it could be used for other things, such as a distance measurer. (good for shooting targets)

            Outline of Use:
            replacematerial "(material)" "(replacement-material)"

            Possible Values:
            material = a VMT name only
            replacement-material = a VMT name only

            Examples of Use:
          • Example #1
              $cd "C:\Documents and Settings\Marc\Desktop\decompile"
              $modelname "distant_rave-cop.mdl"
              $model "police" "Police_reference.smd"
              $lod 12
              {
              	replacemodel "Police_reference" "lod1_Police_reference"
              	replacematerial "police_sheet" "police_sheet_blue"
              }
              $lod 18
              {
              	replacemodel "Police_reference" "lod2_Police_reference"
              	replacematerial "police_sheet" "police_sheet_pink"
              }
              $lod 42
              {
              	replacemodel "Police_reference" "lod3_Police_reference"
              	replacematerial "police_sheet" "police_sheet_orange"
              }
              $lod 55
              {
              	replacemodel "Police_reference" "lod4_Police_reference"
              	replacematerial "police_sheet" "police_sheet_green"
              }
              $lod 80
              {
              	replacemodel "Police_reference" "lod5_Police_reference"
              	replacematerial "police_sheet" "police_sheet_white"
              }
              $shadowlod
              {
              	replacemodel "Police_reference" "lod6_Police_reference"
              	replacematerial "police_sheet" "police_low"
              }
              $cdmaterials "models\Police\"
              $hboxset "default"
              $hbox 1 "ValveBiped.Bip01_Head1" -3.500  -7.710  -3.850  7.500  5.710  3.960
              $hbox 4 "ValveBiped.Bip01_L_UpperArm" 0.000  -3.370  -3.700  12.510  3.400  2.410
              $hbox 4 "ValveBiped.Bip01_L_Forearm" -0.900  -3.490  -3.170  9.490  3.100  2.410
              $hbox 4 "ValveBiped.Bip01_L_Hand" -1.110  -1.890  -2.380  5.720  1.460  2.340
              $hbox 5 "ValveBiped.Bip01_R_UpperArm" 0.000  -3.370  -2.370  12.390  3.410  3.800
              $hbox 5 "ValveBiped.Bip01_R_Forearm" -0.990  -3.500  -2.370  9.330  3.100  3.270
              $hbox 5 "ValveBiped.Bip01_R_Hand" -1.190  -1.860  -2.330  5.310  1.940  2.610
              $hbox 6 "ValveBiped.Bip01_L_Thigh" 0.000  -6.000  -3.550  17.850  4.000  4.450
              $hbox 6 "ValveBiped.Bip01_L_Calf" 0.000  -3.510  -3.280  15.640  3.490  2.720
              $hbox 6 "ValveBiped.Bip01_L_Foot" -1.070  -2.000  -2.840  5.040  5.000  2.160
              $hbox 6 "ValveBiped.Bip01_L_Toe0" -0.500  -3.000  -2.190  2.500  0.000  2.460
              $hbox 7 "ValveBiped.Bip01_R_Thigh" 0.000  -6.000  -4.550  17.850  4.000  3.400
              $hbox 7 "ValveBiped.Bip01_R_Calf" 0.000  -3.510  -2.820  15.640  3.490  3.180
              $hbox 7 "ValveBiped.Bip01_R_Foot" -1.060  -2.010  -2.280  5.050  4.990  2.720
              $hbox 7 "ValveBiped.Bip01_R_Toe0" -0.500  -3.000  -2.600  2.500  0.000  2.100
              $hbox 3 "ValveBiped.Bip01_Pelvis" -7.500  -6.000  -6.000  7.500  6.000  6.000
              $hbox 2 "ValveBiped.Bip01_Spine2" -6.500  -2.500  -7.000  10.500  7.500  7.000
              
              $attachment "eyes" "ValveBiped.Bip01_Head1" 3.34 -5.28 -0.00 rotate 0.00 -80.10 -90.00
              $attachment "Center" "ValveBiped.Bip01_Spine1" -6.20 2.09 0.00 rotate -0.00 96.62 90.00
              $attachment "Chest" "ValveBiped.Bip01_Spine4" -2.70 3.88 -0.00 rotate -0.00 79.75 90.00
              $attachment "forward" "ValveBiped.forward" 0.00 0.00 0.00 rotate 0.00 0.00 -0.00
              $attachment "anim_attachment_RH" "ValveBiped.Anim_Attachment_RH" -0.00 -0.00 -0.00 rotate -90.00 -90.00 0.00
              $attachment "anim_attachment_LH" "ValveBiped.Anim_Attachment_LH" -0.00 -0.00 0.00 rotate -90.00 -90.00 0.00
              $attachment "anim_attachment_head" "ValveBiped.Bip01_Head1" -0.00 0.00 0.00 rotate -90.00 -90.00 0.00
              $includemodel "Police_animations.mdl"
              $includemodel "Police_ss.mdl"
              $surfaceprop "flesh"
              $eyeposition 0.000 0.000 72.000
              $illumposition -1.866 0.053 36.320
              $sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00
              $ikchain rhand ValveBiped.Bip01_R_Hand knee  0.707 0.707 0.000
              $ikchain lhand ValveBiped.Bip01_L_Hand knee  0.707 0.707 0.000
              $ikchain rfoot ValveBiped.Bip01_R_Foot knee  0.707 -0.707 0.000
              $ikchain lfoot ValveBiped.Bip01_L_Foot knee  0.707 -0.707 0.000
              $collisionjoints "phymodel.smd" {
              
              	$mass 90.0
              	$inertia 2.00
              	$damping 0.01
              	$rotdamping 0.40
              	$rootbone "valvebiped.bip01_pelvis"
              	$jointmerge "ValveBiped.Bip01_Pelvis" "ValveBiped.Bip01_Spine1"
              
              	$jointconstrain "valvebiped.bip01_spine2" x limit -48.00 48.00 0.20
              	$jointconstrain "valvebiped.bip01_spine2" y limit -25.00 25.00 0.20
              	$jointconstrain "valvebiped.bip01_spine2" z limit -25.00 50.00 0.20
              }
      • replacebone
            About:
            Quite similar to bonetreecollapse in the way it moves the mesh influence from one joint to another. This command is more specific however. All it does is transfer joint-1's mesh influence to joint-2.

            Outline of Use:
            replacebone "(joint-1)" "(joint-2)"

            Possible Values:
            joint-1 = a joint name
            joint-2 = a joint name

            Examples of Use:
          • Example #1
              $cd "C:\Documents and Settings\Marc\Desktop\Jeff Wayne Tripod"
              $modelname "katharsmodels/jeffwayne_tripod/jeffwayne_tripod.mdl"
              $scale 238
              $body "studio" "tripod_ref.smd"
              $lod 12
              {
              	replacemodel "tripod_ref" "lod1_tripod_ref"
              }
              $lod 18
              {
              	replacemodel "tripod_ref" "lod2_tripod_ref"
              	replacebone "r_ankle" "r_knee"
              	replacebone "l_ankle" "l_knee"
              	replacebone "b_ankle" "b_knee"
              }
              $lod 42
              {
              	replacemodel "tripod_ref" "lod3_tripod_ref"
              	replacebone "r_ankle" "r_knee"
              	replacebone "l_ankle" "l_knee"
              	replacebone "b_ankle" "b_knee"
              	replacebone "heatray" "root"
              }
              $lod 55
              {
              	replacemodel "tripod_ref" "lod4_tripod_ref"
              	replacebone "r_ankle" "r_knee"
              	replacebone "l_ankle" "l_knee"
              	replacebone "b_ankle" "b_knee"
              	replacebone "heatray" "root"
              }
              $lod 80
              {
              	replacemodel "tripod_ref" "lod5_tripod_ref"
              	replacebone "r_ankle" "r_knee"
              	replacebone "l_ankle" "l_knee"
              	replacebone "b_ankle" "b_knee"
              	replacebone "heatray" "root"
              	replacebone "r_knee" "r_thigh"
              	replacebone "l_knee" "l_thigh"
              	replacebone "b_knee" "b_thigh"
              }
              $shadowlod
              {
              	replacemodel "tripod_ref" "lod6_tripod_ref"
              }
              
              $keyvalues { prop_data { "base" "metal.large" } }
              $surfaceprop "metal"
              $cdmaterials "katharsmodels/jeffwayne_tripod"
              $upaxis y
              
              $sequence idle "tripod_ref" fps 30.00
              $collisionjoints "tripod_phy.smd" {
              	$concave
              	$mass 1000000
              	$inertia 30.00
              	$damping 0.0
              	$drag 0.01
              	$rotdamping 0.0
              	$rootbone "root"
              
              	$jointconstrain "heatray" x limit -8.00 44.00 0.00
              	$jointconstrain "heatray" y limit -30.00 30.00 0.00
              	$jointconstrain "heatray" z limit 0.00 0.00 0.00
              }
      • replacemodel
            About:
            Used to replace an smd the model is using, with a different smd when you reach a certain distance from the model. Usually used to create LODs (Levels of Detail), so the further away the model gets, the less detailed it is, therefore making it use less resources.

            Outline of Use:
            replacemodel "(reference-smd)" "(ref-replacement-smd)"

            Possible Values:
            reference-smd = an SMD name
            ref-replacement-smd = an SMD name

            Examples of Use:
          • Example #1
              $cd "C:\Documents and Settings\Marc\Desktop\decompile"
              $modelname "dog.mdl"
              $model "dog" "dog_reference.smd"
              
              $lod 16
              {
              	replacemodel "dog_reference" "lod1_dog_reference"
              }
              $lod 35
              {
              	replacemodel "dog_reference" "lod2_dog_reference"
              }
              $lod 55
              {
              	replacemodel "dog_reference" "lod3_dog_reference"
              }
              $lod 85
              {
              	replacemodel "dog_reference" "lod4_dog_reference"
              }
              $shadowlod
              {
                replacemodel "dog_reference" "lod5_dog_reference"
              }
              
              $cdmaterials "models\dog\"
              $hboxset "default"
              $hbox 0 "Dog_Model.Spine1" -2.000  -9.850  -5.700  10.000  10.150  5.300
              $hbox 0 "Dog_Model.Eye" -6.000  -9.730  -8.930  8.000  8.270  9.070
              
              $attachment "eyes" "Dog_Model.Focus_Ring" 0.00 0.00 0.00 rotate 0.00 90.00 -180.00
              $attachment "forward" "Dog_Model.forward" 0.00 -0.00 -0.00 rotate -0.00 -0.00 0.00
              $attachment "physgun" "Dog_Model.Hand_R_Drill" 5.00 -15.00 2.00 rotate 0.00 -0.00 0.00
              $attachment "thumb" "Dog_Model.Thumb3_R" -0.00 0.00 -0.00 rotate 0.00 0.00 -0.00
              $attachment "pinky" "Dog_Model.Pinky3_R" -0.00 -0.00 -0.00 rotate 0.00 0.00 -0.00
              $attachment "index" "Dog_Model.Index3_R" 0.00 0.00 0.00 rotate -0.00 0.00 -0.00
              $attachment "bigPhys_attachment" "Dog_Model.BigPhys_Attachment" 0.00 -0.00 0.00 rotate -90.00 -90.00 0.00
              
              $includemodel "dog_gestures.mdl"
              $includemodel "dog_postures.mdl"
              $includemodel "dog_animations.mdl"
              $surfaceprop "metal"
              $eyeposition 0.000 0.000 70.000
              $illumposition 2.271 4.640 55.404
              $sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00
              $ikchain rhand Dog_Model.Hand_R knee  0.707 0.707 0.000
              $ikchain lhand Dog_Model.Hand_L knee  0.707 0.707 0.000
              $ikchain rfoot Dog_Model.Foot_R knee  0.707 -0.707 0.000
              $ikchain lfoot Dog_Model.Foot_L knee  0.707 -0.707 0.000
              $collisionjoints "phymodel.smd" {
              
              	$mass 260.0
              	$inertia 10.00
              	$damping 0.01
              	$rotdamping 1.00
              	$rootbone "dog_model.pelvis"
              
              	$jointconstrain "dog_model.spine1" x limit -30.00 30.00 0.20
              	$jointconstrain "dog_model.spine1" y limit -23.00 23.00 0.20
              	$jointconstrain "dog_model.spine1" z limit -30.00 30.00 0.20
              
              	$jointconstrain "dog_model.neck2" x limit -39.00 39.00 0.20
              	$jointconstrain "dog_model.neck2" y limit -57.00 57.00 0.20
              	$jointconstrain "dog_model.neck2" z limit -32.00 46.00 0.20
              }
          • Example #2
              $cd "C:\Documents and Settings\Marc\Desktop\decompile"
              $modelname "Police.mdl"
              $model "police" "Police_reference.smd"
              
              $lod 12 { replacemodel "Police_reference" "lod1_Police_reference" }
              $lod 18 { replacemodel "Police_reference" "lod2_Police_reference" }
              $lod 42 { replacemodel "Police_reference" "lod3_Police_reference" }
              $lod 55 { replacemodel "Police_reference" "lod4_Police_reference" }
              $lod 80 { replacemodel "Police_reference" "lod5_Police_reference" }
              $shadowlod { replacemodel "Police_reference" "lod6_Police_reference" }
              
              $cdmaterials "models\Police\"
              $cdmaterials "models\manhack\"
              $hboxset "default"
              $hbox 1 "ValveBiped.Bip01_Head1" -3.500  -7.710  -3.850  7.500  5.710  3.960
              $hbox 4 "ValveBiped.Bip01_L_UpperArm" 0.000  -3.370  -3.700  12.510  3.400  2.410
              $hbox 4 "ValveBiped.Bip01_L_Forearm" -0.900  -3.490  -3.170  9.490  3.100  2.410
              $hbox 4 "ValveBiped.Bip01_L_Hand" -1.110  -1.890  -2.380  5.720  1.460  2.340
              $hbox 5 "ValveBiped.Bip01_R_UpperArm" 0.000  -3.370  -2.370  12.390  3.410  3.800
              $hbox 5 "ValveBiped.Bip01_R_Forearm" -0.990  -3.500  -2.370  9.330  3.100  3.270
              $hbox 5 "ValveBiped.Bip01_R_Hand" -1.190  -1.860  -2.330  5.310  1.940  2.610
              $hbox 6 "ValveBiped.Bip01_L_Thigh" 0.000  -6.000  -3.550  17.850  4.000  4.450
              $hbox 6 "ValveBiped.Bip01_L_Calf" 0.000  -3.510  -3.280  15.640  3.490  2.720
              $hbox 6 "ValveBiped.Bip01_L_Foot" -1.070  -2.000  -2.840  5.040  5.000  2.160
              $hbox 6 "ValveBiped.Bip01_L_Toe0" -0.500  -3.000  -2.190  2.500  0.000  2.460
              $hbox 7 "ValveBiped.Bip01_R_Thigh" 0.000  -6.000  -4.550  17.850  4.000  3.400
              $hbox 7 "ValveBiped.Bip01_R_Calf" 0.000  -3.510  -2.820  15.640  3.490  3.180
              $hbox 7 "ValveBiped.Bip01_R_Foot" -1.060  -2.010  -2.280  5.050  4.990  2.720
              $hbox 7 "ValveBiped.Bip01_R_Toe0" -0.500  -3.000  -2.600  2.500  0.000  2.100
              $hbox 3 "ValveBiped.Bip01_Pelvis" -7.500  -6.000  -6.000  7.500  6.000  6.000
              $hbox 2 "ValveBiped.Bip01_Spine2" -6.500  -2.500  -7.000  10.500  7.500  7.000
              
              $attachment "eyes" "ValveBiped.Bip01_Head1" 3.34 -5.28 -0.00 rotate 0.00 -80.10 -90.00
              $attachment "Center" "ValveBiped.Bip01_Spine1" -6.20 2.09 0.00 rotate -0.00 96.62 90.00
              $attachment "Chest" "ValveBiped.Bip01_Spine4" -2.70 3.88 -0.00 rotate -0.00 79.75 90.00
              $attachment "LHand" "ValveBiped.Bip01_L_Hand" 3.00 -0.00 -0.00 rotate -0.00 0.00 -0.00
              $attachment "RHand" "ValveBiped.Bip01_R_Hand" 3.00 0.00 0.00 rotate 0.00 -0.00 -0.00
              $attachment "zipline" "ValveBiped.Bip01_Spine4" 2.00 -2.00 -0.00 rotate 0.00 -17.00 -0.00
              $attachment "manhack" "ValveBiped.Bip01_Spine" 18.00 -6.00 3.00 rotate -25.00 50.00 0.00
              $attachment "forward" "ValveBiped.forward" 0.00 0.00 0.00 rotate 0.00 0.00 -0.00
              $attachment "anim_attachment_RH" "ValveBiped.Anim_Attachment_RH" -0.00 -0.00 -0.00 rotate -90.00 -90.00 0.00
              $attachment "anim_attachment_LH" "ValveBiped.Anim_Attachment_LH" -0.00 -0.00 0.00 rotate -90.00 -90.00 0.00
              $attachment "anim_attachment_head" "ValveBiped.Bip01_Head1" -0.00 0.00 0.00 rotate -90.00 -90.00 0.00
              $includemodel "Police_animations.mdl"
              $includemodel "Police_ss.mdl"
              $surfaceprop "flesh"
              $eyeposition 0.000 0.000 72.000
              $illumposition -1.866 0.053 36.320
              $sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00
              $ikchain rhand ValveBiped.Bip01_R_Hand knee  0.707 0.707 0.000
              $ikchain lhand ValveBiped.Bip01_L_Hand knee  0.707 0.707 0.000
              $ikchain rfoot ValveBiped.Bip01_R_Foot knee  0.707 -0.707 0.000
              $ikchain lfoot ValveBiped.Bip01_L_Foot knee  0.707 -0.707 0.000
              $collisionjoints "phymodel.smd" {
              
              	$mass 90.0
              	$inertia 2.00
              	$damping 0.01
              	$rotdamping 0.40
              	$rootbone "valvebiped.bip01_pelvis"
              	$jointmerge "ValveBiped.Bip01_Pelvis" "ValveBiped.Bip01_Spine1"
              
              	$jointconstrain "valvebiped.bip01_spine2" x limit -48.00 48.00 0.20
              	$jointconstrain "valvebiped.bip01_spine2" y limit -25.00 25.00 0.20
              	$jointconstrain "valvebiped.bip01_spine2" z limit -25.00 50.00 0.20
              
              	$jointconstrain "valvebiped.bip01_r_upperarm" x limit -50.00 57.00 0.20
              	$jointconstrain "valvebiped.bip01_r_upperarm" y limit -19.00 102.00 0.20
              	$jointconstrain "valvebiped.bip01_r_upperarm" z limit -93.00 30.00 0.20
              
              	$jointconstrain "valvebiped.bip01_l_upperarm" x limit -50.00 57.00 0.20
              	$jointconstrain "valvebiped.bip01_l_upperarm" y limit -102.00 19.00 0.20
              	$jointconstrain "valvebiped.bip01_l_upperarm" z limit -93.00 30.00 0.20
              
              	$jointmassbias "valvebiped.bip01_l_forearm" 2.00
              	$jointconstrain "valvebiped.bip01_l_forearm" x limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_l_forearm" y limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_l_forearm" z limit -120.00 4.00 0.20
              
              	$jointmassbias "valvebiped.bip01_l_hand" 4.00
              	$jointconstrain "valvebiped.bip01_l_hand" x limit -60.00 60.00 0.20
              	$jointconstrain "valvebiped.bip01_l_hand" y limit -30.00 30.00 0.20
              	$jointconstrain "valvebiped.bip01_l_hand" z limit -57.00 70.00 0.20
              
              	$jointmassbias "valvebiped.bip01_r_forearm" 2.00
              	$jointconstrain "valvebiped.bip01_r_forearm" x limit 0.00 0.00 0.20
              	$jointconstrain "valvebiped.bip01_r_forearm" y limit 0.00 0.00 0.20
              	$jointconstrain "valvebiped.bip01_r_forearm" z limit -120.00 4.00 0.20
              
              	$jointmassbias "valvebiped.bip01_r_hand" 4.00
              	$jointconstrain "valvebiped.bip01_r_hand" x limit -60.00 60.00 0.20
              	$jointconstrain "valvebiped.bip01_r_hand" y limit -30.00 30.00 0.20
              	$jointconstrain "valvebiped.bip01_r_hand" z limit -57.00 70.00 0.20
              
              	$jointconstrain "valvebiped.bip01_r_thigh" x limit -25.00 39.00 0.20
              	$jointconstrain "valvebiped.bip01_r_thigh" y limit -8.00 75.00 0.20
              	$jointconstrain "valvebiped.bip01_r_thigh" z limit -97.00 32.00 0.20
              
              	$jointmassbias "valvebiped.bip01_r_calf" 2.00
              	$jointconstrain "valvebiped.bip01_r_calf" x limit 0.00 0.00 0.20
              	$jointconstrain "valvebiped.bip01_r_calf" y limit 0.00 0.00 0.20
              	$jointconstrain "valvebiped.bip01_r_calf" z limit -12.00 126.00 0.20
              
              	$jointmassbias "valvebiped.bip01_head1" 2.00
              	$jointconstrain "valvebiped.bip01_head1" x limit -20.00 20.00 0.20
              	$jointconstrain "valvebiped.bip01_head1" y limit -25.00 25.00 0.20
              	$jointconstrain "valvebiped.bip01_head1" z limit -13.00 30.00 0.20
              
              	$jointconstrain "valvebiped.bip01_l_thigh" x limit -25.00 20.00 0.20
              	$jointconstrain "valvebiped.bip01_l_thigh" y limit -73.00 6.00 0.20
              	$jointconstrain "valvebiped.bip01_l_thigh" z limit -93.00 30.00 0.20
              
              	$jointmassbias "valvebiped.bip01_l_calf" 2.00
              	$jointconstrain "valvebiped.bip01_l_calf" x limit 0.00 0.00 0.20
              	$jointconstrain "valvebiped.bip01_l_calf" y limit 0.00 0.00 0.20
              	$jointconstrain "valvebiped.bip01_l_calf" z limit -8.00 126.00 0.20
              
              	$jointmassbias "valvebiped.bip01_l_foot" 2.00
              	$jointconstrain "valvebiped.bip01_l_foot" x limit -1.00 -1.00 0.20
              	$jointconstrain "valvebiped.bip01_l_foot" y limit -19.00 19.00 0.20
              	$jointconstrain "valvebiped.bip01_l_foot" z limit -15.00 35.00 0.20
              
              	$jointmassbias "valvebiped.bip01_r_foot" 2.00
              	$jointconstrain "valvebiped.bip01_r_foot" x limit 0.00 0.00 0.00
              	$jointconstrain "valvebiped.bip01_r_foot" y limit -21.00 6.00 0.20
              	$jointconstrain "valvebiped.bip01_r_foot" z limit -15.00 35.00 0.20
              	$animatedfriction 1.000 1000.000 0.800 0.500 0.000
              }
      • removemodel
            About:
            Causes the entire model to stop being rendering at the target LOD distance. Should only really be used at extreme distances, or if the model is really small.

            Outline of Use:
            removemodel

            Possible Values:
            N/A (no values are used)

            Examples of Use:
          • Example #1
              $cd "C:\Documents and Settings\Marc\Desktop\Raptor"
              $modelname "katharsmodels/raptor/raptor.mdl"
              $body "raptor" "raptor_ref.smd"
              
              $lod 65
              {
              	replacemodel "raptor_ref" "lod1_raptor_ref"
              }
              $lod 132
              {
              	replacemodel "raptor_ref" "lod2_raptor_ref"
              }
              $lod 430
              {
              	removemodel
              }
              $cdmaterials "katharsmodels/raptor"
              $scale 22
              $upaxis "y"
              $surfaceprop "metal"
              $staticprop
              $sequence idle "raptor_ref" fps 30.00
              $collisionmodel "raptor_ref.smd" {
              	$concave
              	$mass 1800
              }
      • removemesh
            About:
            Removes all faces on the target LOD that are using the specified material. Quite useful for removing things you wouldn't see at a distance, such as ammo pouches, glasses, etc. Can also be useful when paired with the 'nofacial' command. For example, with no expressions you can't see the mouth/teeth, so they can be removed.

            Outline of Use:
            removemesh "(material)"

            Possible Values:
            material = a VMT name only

            Examples of Use:
          • Example #1
              $cd "C:\Documents and Settings\Marc\Desktop\Raptor"
              $modelname "katharsmodels/raptor/raptor.mdl"
              $body "raptor" "raptor_ref.smd"
              
              $lod 65
              {
              	replacemodel "raptor_ref" "lod1_raptor_ref"
              }
              $lod 132
              {
              	replacemodel "raptor_ref" "lod2_raptor_ref"
              	removemesh "raptor_details"
              }
              $lod 430
              {
              	removemodel
              }
              $cdmaterials "katharsmodels/raptor"
              $scale 22
              $upaxis "y"
              $surfaceprop "metal"
              $staticprop
              $sequence idle "raptor_ref" fps 30.00
              $collisionmodel "raptor_ref.smd" {
              	$concave
              	$mass 1800
              }
  • $minlod
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $model
        About:
        I won't go into too much detail, but if you want to know more, check out the tutorial section. There's several SMD types which make up a model. All of which do different things. There's a 'reference' smd, which is what you will see in-game. There's the 'collision/phys' smd which is what you 'feel' in-game (reacts to the environment) and then there's 'skeletal/animation' smds, which tell the model what pose to be in. This $body command tells the model what 'reference' smd to use.

        $model is a more advanced version of the '$body' command. $model makes the model take a tiny bit longer to load compared to using $body, as it has sub-commands such as, flexes (blendshapes, morph targets), eyeballs, eyelids, etc. So if you aren't using any sub-commands, just use $body.

        All model details are generally inside one SMD and loaded from one $body/$model command. However, if you're working on a pre-existing model and, let's say, you wanted to add some glasses to it, then usually the pre-existing flexes will also bend the glasses with them. To solve this, leave the original smd being loaded by the $model command and then make a copy of that SMD, import it into your modelling application, place the glasses where you'd like them to be, delete the rest of the mesh but keep the skeleton and then bind the glasses to the head joint and export. You can then add a $body command loading the glasses smd. What this essentially doing is saying; okay, I've got a body-mesh, with facial expressions, it then adds the other '$body/$model' commands to it. So it will now find the glasses smd, notice they are the same skeleton, sort of 'morph' them into one skeleton and thus the glasses are on the face. But as only the '$model' command holds the flex information, the glasses will not be affected.

        Outline of Use:
        $model "(name)" "(reference-model.smd)"

        Possible Values:
        nameI am unsure what this 'name' refers to, but cannot be that important as I haven't ran into anything related to it yet. Default name for this tends to be 'studio'. = name
        reference-model.smdSet this to the name of the .smd file you wish to load.

        The .smd file extension isn't actually required. The compilers can run just fine without it, but it makes the .qc file easier to read, and without organisation, problems tend to occur.
        = an SMD name

        Sub Commands:
      • eyeball
      • eyelid
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • flex
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • frame
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • defaultflex
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • flexfile
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • localvar
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • mouth
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:
      • spherenormals
            About:

            Outline of Use:

            Possible Values:

            Examples of Use:

      • Examples of Use:
      • Example #1
          $cd "C:\Documents and Settings\Marc\Desktop\Chumtoad"
          $modelname "katharsmodels/chumtoad/chumtoad.mdl"
          $cdmaterials "models/katharsmodels/chumtoad/"
          $surfaceprop "alienflesh"
          $model "chumtoad" "chumtoad_ref.smd" {
          
          	flexfile "blink.vta"
          	flex "blink"  frame 10
          	 flexcontroller "eyes" "blink" "range" 0 1
          
          	eyeball righteye "ValveBiped.Bip01_Head1" -1.17 -2.15 67.47 "eyeball_r" 1.00 4 "grn_pupil_r" 0.73
          	eyeball lefteye "ValveBiped.Bip01_Head1" 1.18 -2.15 67.47 "eyeball_l" 1.00 -4 "grn_pupil_l" 0.73
          	eyelid  upper_right "r_lid_tight" lowerer 1 67.3 neutral 0 67.69 raiser 2 67.8 split 0.1 eyeball r_eye
          	eyelid  lower_right "r_lid_tight" lowerer 3 67.1 neutral 0 67.21 raiser 4 67.5 split 0.1 eyeball r_eye
          	eyelid  upper_left "l_lid_tight" lowerer 1 67.3 neutral 0 67.69 raiser 2 67.8 split -0.1 eyeball l_eye
          	eyelid  lower_left "l_lid_tight" lowerer 3 67.1 neutral 0 67.21 raiser 4 67.5 split -0.1 eyeball l_eye
          	
          	mouth 0 "mouth"  ValveBiped.Bip01_Head1 0.000 1.000 0.000 
          	
          	%blink = blink
          	}
          
          $attachment "eyes" "ValveBiped.Bip01_Head1" 0.00 -2.25 67.47 absolute
          $attachment "mouth" "ValveBiped.Bip01_Head1" 1.00 -5.70 -0.00 rotate 0.00 -80.00 -90.00
          $eyeposition 0.000 0.000 70.000
          $sequence ragdoll "chumtoad_ref" ACT_DIERAGDOLL 1 fps 30.00
          
          $collisionjoints "chumtoad_phys.smd" {
          	$mass 30
          	$concave
          
          	$inertia 10.00
          	$damping 0.01
          	$rotdamping 1.50
          	$rootbone "root_bone"
          	$noselfcollisions
          
              $jointconstrain "neck" x limit -20.00 45.00 0.00
              $jointconstrain "neck" y limit -15.00 15.00 0.00
              $jointconstrain "neck" z limit -35.00 35.00 0.00
          
              $jointconstrain "pelvis" x limit -25.00 5.00 0.00
              $jointconstrain "pelvis" y limit -20.00 20.00 0.00
              $jointconstrain "pelvis" z limit -20.00 20.00 0.00
          
              $jointconstrain "l_rear_thigh" x limit -35.00 15.00 0.00
              $jointconstrain "l_rear_thigh" y limit -40.00 18.00 0.00
              $jointconstrain "l_rear_thigh" z limit -30.00 20.00 0.00
              $jointconstrain "l_rear_knee" x limit 0.00 0.00 0.00
              $jointconstrain "l_rear_knee" y limit 0.00 0.00 0.00
              $jointconstrain "l_rear_knee" z limit -35.00 85.00 0.00
              $jointconstrain "l_front_thigh" x limit -15.00 25.00 0.00
              $jointconstrain "l_front_thigh" y limit 0.00 0.00 0.00
              $jointconstrain "l_front_thigh" z limit 0.00 0.00 0.00
              $jointconstrain "l_front_knee" x limit 0.00 0.00 0.00
              $jointconstrain "l_front_knee" y limit 0.00 0.00 0.00
              $jointconstrain "l_front_knee" z limit -80.00 15.00 0.00
          
              $jointconstrain "r_rear_thigh" x limit -35.00 15.00 0.00
              $jointconstrain "r_rear_thigh" y limit -40.00 18.00 0.00
              $jointconstrain "r_rear_thigh" z limit -30.00 20.00 0.00
              $jointconstrain "r_rear_knee" x limit 0.00 0.00 0.00
              $jointconstrain "r_rear_knee" y limit 0.00 0.00 0.00
              $jointconstrain "r_rear_knee" z limit -35.00 85.00 0.00
              $jointconstrain "r_front_thigh" x limit -15.00 25.00 0.00
              $jointconstrain "r_front_thigh" y limit 0.00 0.00 0.00
              $jointconstrain "r_front_thigh" z limit 0.00 0.00 0.00
              $jointconstrain "r_front_knee" x limit 0.00 0.00 0.00
              $jointconstrain "r_front_knee" y limit 0.00 0.00 0.00
              $jointconstrain "r_front_knee" z limit -80.00 15.00 0.00
          }
  • $modelname
        About:
        This command defines what the compiled model will be called, and which directory it will have to be placed in. Placing it in another directory other than the one specified by this command will cause a 'missing vertex file' error in the console and the model will be invisible.

        Outline of Use:
        $modelname "(compiled-model-directory-goes-here)"

        Possible Values:

        Examples of Use:
  • $mostlyopaque
        About:

        Outline of Use:
        $mostlyopaque

        Possible Values:
        N/A (no values are used)

        Examples of Use:
  • $noforcedfade
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $obsolete
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $opaque
        About:

        Outline of Use:
        $opaque

        Possible Values:
        N/A (no values are used)

        Examples of Use:
  • $origin
  • $popd
        About:
        See '$pushd'. Used to 'pop the directory back to its original directory - which is usually the folder where the .qc file is located. Unless otherwise specified by the '$cd' command.

        Outline of Use:
        $popd

        Possible Values:
        N/A (no values are used)

        Examples of Use:
      • Example #1
          $cd "C:\Documents and Settings\Marc\Desktop\Male_06"
          $modelname "sdk\Humans\male_06_sdk.mdl"
          $cdmaterials "sdk\models\Humans\Male"
          
          $eyeposition 0 0 70
          
          $attachment "eyes" "ValveBiped.Bip01_Head1" 0.043 -4.2197 67.5554 absolute
          $attachment "mouth" "ValveBiped.Bip01_Head1" 1.00 -6.30 0.00 rotate 0 -80 -90
          
          $model male_06 "male_06_reference.smd"{
          	eyeball righteye "ValveBiped.Bip01_Head1" -1.2711 -4.2197 67.5593 "eyeball_r" 1 4 "pupil_r" 0.63
          	eyeball lefteye "ValveBiped.Bip01_Head1" 1.3572 -4.2197 67.5514 "eyeball_l" 1 -4 "pupil_l" 0.63
          
          	eyelid  upper_right "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split 0.1 eyeball righteye
          	eyelid  lower_right "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split 0.1 eyeball righteye
          	eyelid  upper_left "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split -0.1 eyeball lefteye
          	eyelid  lower_left "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split -0.1 eyeball lefteye
          
          	mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0     // mouth illumination
          
          	flexfile "male_06_expressions" {
          		$include "../standardflex_xsi.qci"
          	}
          
          	$include "../facerules_xsi.qci"
          	$include "../bodyrules_xsi.qci"
          }
          
          $include "../standardhierarchy.qci"
          $alwayscollapse "male_06"
          $alwayscollapse "XSISceneRoot"
          
          $proceduralbones "../male.vrd"
          
          $pushd "../../male_animations_sdk"
          $include "male_animations_sdk/male_shared_XSI_sdk.qci"
          $include "male_animations_sdk/body_poses_lean.qci"
          $include "../male_animations_sdk/WeaponAnims_shared_sdk.qci"
          $popd
          
          $pushd "../male_animations_sdk"
          $include "hitbox.qci"
          $include "ragdoll.qci"
          $popd
  • $prepend
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $proceduralbones
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $pushd
        About:
        Short for 'Push Directory'. Should your collision model or animation SMD(s) be in a different folder to your QC file, you can tell the QC where to look for them with this command. Should be simple for those of you who are familiar with DOS, command prompt, HTML/PHP etc. All it essentially does is temporarily change the directory to look in for external files. "../" means to go up one directory, i.e "C:/compiling/test/test.qc" will now look for its files in "C:/compiling/". This can be stacked, i.e: "../../". See the examples for a better idea.

        Each $pushd must be 'closed' with a '$popd' command. This is to 'pop' it back to the original directory.

        Outline of Use:
        $pushd "(directory)"

        Possible Values:
        N/A (no values are used)

        Examples of Use:
      • Example #1
          $cd "C:\Documents and Settings\Marc\Desktop\Male_06"
          $modelname "sdk\Humans\male_06_sdk.mdl"
          $cdmaterials "sdk\models\Humans\Male"
          
          $eyeposition 0 0 70
          
          $attachment "eyes" "ValveBiped.Bip01_Head1" 0.043 -4.2197 67.5554 absolute
          $attachment "mouth" "ValveBiped.Bip01_Head1" 1.00 -6.30 0.00 rotate 0 -80 -90
          
          $model male_06 "male_06_reference.smd"{
          	eyeball righteye "ValveBiped.Bip01_Head1" -1.2711 -4.2197 67.5593 "eyeball_r" 1 4 "pupil_r" 0.63
          	eyeball lefteye "ValveBiped.Bip01_Head1" 1.3572 -4.2197 67.5514 "eyeball_l" 1 -4 "pupil_l" 0.63
          
          	eyelid  upper_right "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split 0.1 eyeball righteye
          	eyelid  lower_right "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split 0.1 eyeball righteye
          	eyelid  upper_left "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split -0.1 eyeball lefteye
          	eyelid  lower_left "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split -0.1 eyeball lefteye
          
          	mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0     // mouth illumination
          
          	flexfile "male_06_expressions" {
          		$include "../standardflex_xsi.qci"
          	}
          
          	$include "../facerules_xsi.qci"
          	$include "../bodyrules_xsi.qci"
          }
          
          $include "../standardhierarchy.qci"
          $alwayscollapse "male_06"
          $alwayscollapse "XSISceneRoot"
          
          $proceduralbones "../male.vrd"
          
          $pushd "../../male_animations_sdk"
          $include "male_animations_sdk/male_shared_XSI_sdk.qci"
          $include "male_animations_sdk/body_poses_lean.qci"
          $include "../male_animations_sdk/WeaponAnims_shared_sdk.qci"
          $popd
          
          $pushd "../male_animations_sdk"
          $include "hitbox.qci"
          $include "ragdoll.qci"
          $popd
  • $realignbones
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $renamebone
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $renamematerial
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $root
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $scale
        About:
        Increases/decreases the scale of the reference SMD/physics SMD/ragdoll SMD/hitboxes depending on command placement. To scale everything equally (minus VTAs/eyes), merely place the '$scale' command line below the '$modelname' & '$cd' (if used) command, but before everything else.

        Any VTAs (expressions/blendshapes/morphs) made for the model before the scale will have to be remade! Unsure what effects this command has on animations. (although I believe the new enlarged skeleton will be 'squished' to fit the animation) To fix the eyes, multiply each individual value that appears on the 'eyeball' (See $model > eyeball) command line by the '$scale' value. Then input the new figures.

        Outline of Use:
        $scale (value)

        Possible Values:
        value = 0 to infinite (untested)

        Examples of Use:
  • $screenalign
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $sequence
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $shadowlod
        About:
        Shadow LODs (Shadow Levels of Detail) are usually used for optimisation purposes.

        Outline of Use:
        $shadowlod { "(sub-commands)" }

        Sub Commands:
      • bonetreecollapse
            About:
            Collapses joints for performance reasons. When you've specified the joint to collapse from, it then finds all child joints of that joint, finds all bone weight influences they have, then binds them all to the 'specified' joint instead. To explain what this does, if it was used on a tail at the point where it is attached to the waist, (and it had many child joints) it would just bind the entire tail to the specified joint.

            Outline of Use:
            bonetreecollapse "(joint-name)"

            Possible Values:
            joint-name = a joint name

            Examples of Use:
          • Example #1
              $cd "C:\Program Files\Valve\Steam"
              $modelname sdk\Humans\male_06_sdk.mdl
              $cdmaterials sdk\models\Humans\Male
              
              $eyeposition 0 0 70
              
              $attachment "eyes" "ValveBiped.Bip01_Head1" 0.043 -4.2197 67.5554 absolute
              $attachment "mouth" "ValveBiped.Bip01_Head1" 1.00 -6.30 0.00 rotate 0 -80 -90
              
              $model male_06 "male_06_reference.smd"{
              	eyeball righteye "ValveBiped.Bip01_Head1" -1.2711 -4.2197 67.5593 "eyeball_r" 1 4 "pupil_r" 0.63
              	eyeball lefteye "ValveBiped.Bip01_Head1" 1.3572 -4.2197 67.5514 "eyeball_l" 1 -4 "pupil_l" 0.63
              	eyelid  upper_right "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split 0.1 eyeball righteye
              	eyelid  lower_right "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split 0.1 eyeball righteye
              	eyelid  upper_left "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split -0.1 eyeball lefteye
              	eyelid  lower_left "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split -0.1 eyeball lefteye
              
              	mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0
              
              	flexfile "male_06_expressions" {
              		$include "../standardflex_xsi.qci"
              	}
              
              	$include "../facerules_xsi.qci"
              	$include "../bodyrules_xsi.qci"
              
              }
              
              $include "../standardhierarchy.qci"
              $alwayscollapse "male_06"
              $alwayscollapse "XSISceneRoot"
              
              $proceduralbones "../male.vrd"
              
              $pushd "../male_animations_sdk"
              $include "../male_animations_sdk/male_shared_XSI_sdk.qci"
              $include "../male_animations_sdk/body_poses_lean.qci"
              $include "../male_animations_sdk/WeaponAnims_shared_sdk.qci"
              $popd
              
              $lod 10 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_1" 
              }
              $lod 20 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_2"
              	$include "../removehands.qci"
              }
              
              $lod 35 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_3"
              	bonetreecollapse "ValveBiped.Bip01_Neck1"
              	nofacial
              }
              
              $lod 50 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_4"
              	bonetreecollapse "ValveBiped.Bip01_L_Calf"
              	bonetreecollapse "ValveBiped.Bip01_R_Calf"
              	bonetreecollapse "ValveBiped.Bip01_Neck1"
              	nofacial
              }
              
              $shadowlod
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_5"
              	bonetreecollapse "ValveBiped.Bip01_L_Forearm"
              	bonetreecollapse "ValveBiped.Bip01_R_Forearm"
              	bonetreecollapse "ValveBiped.Bip01_L_Calf"
              	bonetreecollapse "ValveBiped.Bip01_R_Calf"
              	bonetreecollapse "ValveBiped.Bip01_Neck1"
              	nofacial
              }
              
              $include "hitbox.qci"
              $include "ragdoll.qci"
      • nofacial
            About:
            Disables facial expressions/flexes.

            Outline of Use:
            nofacial

            Possible Values:
            N/A (no values are used)

            Examples of Use:
          • Example #1
              $cd "C:\Program Files\Valve\Steam"
              $modelname sdk\Humans\male_06_sdk.mdl
              $cdmaterials sdk\models\Humans\Male
              
              $eyeposition 0 0 70
              
              $attachment "eyes" "ValveBiped.Bip01_Head1" 0.043 -4.2197 67.5554 absolute
              $attachment "mouth" "ValveBiped.Bip01_Head1" 1.00 -6.30 0.00 rotate 0 -80 -90
              
              $model male_06 "male_06_reference.smd"{
              	eyeball righteye "ValveBiped.Bip01_Head1" -1.2711 -4.2197 67.5593 "eyeball_r" 1 4 "pupil_r" 0.63
              	eyeball lefteye "ValveBiped.Bip01_Head1" 1.3572 -4.2197 67.5514 "eyeball_l" 1 -4 "pupil_l" 0.63
              	eyelid  upper_right "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split 0.1 eyeball righteye
              	eyelid  lower_right "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split 0.1 eyeball righteye
              	eyelid  upper_left "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split -0.1 eyeball lefteye
              	eyelid  lower_left "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split -0.1 eyeball lefteye
              
              	mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0
              
              	flexfile "male_06_expressions" {
              		$include "../standardflex_xsi.qci"
              	}
              
              	$include "../facerules_xsi.qci"
              	$include "../bodyrules_xsi.qci"
              
              }
              
              $include "../standardhierarchy.qci"
              $alwayscollapse "male_06"
              $alwayscollapse "XSISceneRoot"
              
              $proceduralbones "../male.vrd"
              
              $pushd "../male_animations_sdk"
              $include "../male_animations_sdk/male_shared_XSI_sdk.qci"
              $include "../male_animations_sdk/body_poses_lean.qci"
              $include "../male_animations_sdk/WeaponAnims_shared_sdk.qci"
              $popd
              
              $lod 10 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_1" 
              }
              $lod 20 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_2"
              	$include "../removehands.qci"
              }
              
              $lod 35 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_3"
              	$include "../lowesthumanskeleton.qci"
              	$include "../lowesthumannohelpers.qci"
              	nofacial
              }
              
              $shadowlod
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_shadow" 
              	$include "../lowesthumanskeleton.qci"
              	$include "../lowesthumannohelpers.qci"
              	nofacial
              }
              
              $include "hitbox.qci"
              $include "ragdoll.qci"
      • replacematerial
            About:
            Replaces the specified material with another texture. Used to replace textures for performance reasons, such as replacing eyes (that are using the eyes shader) with a 'static' texture with no fancy shaders. However, it could be used for other things, such as a distance measurer. (good for shooting targets)

            Outline of Use:
            replacematerial "(material)" "(replacement-material)"

            Possible Values:
            material = a VMT name only
            replacement-material = a VMT name only

            Examples of Use:
          • Example #1
              $cd "C:\Documents and Settings\Marc\Desktop\decompile"
              $modelname "distant_rave-cop.mdl"
              $model "police" "Police_reference.smd"
              $lod 12
              {
              	replacemodel "Police_reference" "lod1_Police_reference"
              	replacematerial "police_sheet" "police_sheet_blue"
              }
              $lod 18
              {
              	replacemodel "Police_reference" "lod2_Police_reference"
              	replacematerial "police_sheet" "police_sheet_pink"
              }
              $lod 42
              {
              	replacemodel "Police_reference" "lod3_Police_reference"
              	replacematerial "police_sheet" "police_sheet_orange"
              }
              $shadowlod
              {
              	replacemodel "Police_reference" "lod6_Police_reference"
              	replacematerial "police_sheet" "police_low"
              }
              $cdmaterials "models\Police\"
              $hboxset "default"
              $hbox 1 "ValveBiped.Bip01_Head1" -3.500  -7.710  -3.850  7.500  5.710  3.960
              $hbox 4 "ValveBiped.Bip01_L_UpperArm" 0.000  -3.370  -3.700  12.510  3.400  2.410
              $hbox 4 "ValveBiped.Bip01_L_Forearm" -0.900  -3.490  -3.170  9.490  3.100  2.410
              $hbox 4 "ValveBiped.Bip01_L_Hand" -1.110  -1.890  -2.380  5.720  1.460  2.340
              $hbox 5 "ValveBiped.Bip01_R_UpperArm" 0.000  -3.370  -2.370  12.390  3.410  3.800
              $hbox 5 "ValveBiped.Bip01_R_Forearm" -0.990  -3.500  -2.370  9.330  3.100  3.270
              $hbox 5 "ValveBiped.Bip01_R_Hand" -1.190  -1.860  -2.330  5.310  1.940  2.610
              $hbox 6 "ValveBiped.Bip01_L_Thigh" 0.000  -6.000  -3.550  17.850  4.000  4.450
              $hbox 6 "ValveBiped.Bip01_L_Calf" 0.000  -3.510  -3.280  15.640  3.490  2.720
              $hbox 6 "ValveBiped.Bip01_L_Foot" -1.070  -2.000  -2.840  5.040  5.000  2.160
              $hbox 6 "ValveBiped.Bip01_L_Toe0" -0.500  -3.000  -2.190  2.500  0.000  2.460
              $hbox 7 "ValveBiped.Bip01_R_Thigh" 0.000  -6.000  -4.550  17.850  4.000  3.400
              $hbox 7 "ValveBiped.Bip01_R_Calf" 0.000  -3.510  -2.820  15.640  3.490  3.180
              $hbox 7 "ValveBiped.Bip01_R_Foot" -1.060  -2.010  -2.280  5.050  4.990  2.720
              $hbox 7 "ValveBiped.Bip01_R_Toe0" -0.500  -3.000  -2.600  2.500  0.000  2.100
              $hbox 3 "ValveBiped.Bip01_Pelvis" -7.500  -6.000  -6.000  7.500  6.000  6.000
              $hbox 2 "ValveBiped.Bip01_Spine2" -6.500  -2.500  -7.000  10.500  7.500  7.000
              
              $attachment "eyes" "ValveBiped.Bip01_Head1" 3.34 -5.28 -0.00 rotate 0.00 -80.10 -90.00
              $attachment "Center" "ValveBiped.Bip01_Spine1" -6.20 2.09 0.00 rotate -0.00 96.62 90.00
              $attachment "Chest" "ValveBiped.Bip01_Spine4" -2.70 3.88 -0.00 rotate -0.00 79.75 90.00
              $attachment "forward" "ValveBiped.forward" 0.00 0.00 0.00 rotate 0.00 0.00 -0.00
              $attachment "anim_attachment_RH" "ValveBiped.Anim_Attachment_RH" -0.00 -0.00 -0.00 rotate -90.00 -90.00 0.00
              $attachment "anim_attachment_LH" "ValveBiped.Anim_Attachment_LH" -0.00 -0.00 0.00 rotate -90.00 -90.00 0.00
              $attachment "anim_attachment_head" "ValveBiped.Bip01_Head1" -0.00 0.00 0.00 rotate -90.00 -90.00 0.00
              $includemodel "Police_animations.mdl"
              $includemodel "Police_ss.mdl"
              $surfaceprop "flesh"
              $eyeposition 0.000 0.000 72.000
              $illumposition -1.866 0.053 36.320
              $sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00
              $ikchain rhand ValveBiped.Bip01_R_Hand knee  0.707 0.707 0.000
              $ikchain lhand ValveBiped.Bip01_L_Hand knee  0.707 0.707 0.000
              $ikchain rfoot ValveBiped.Bip01_R_Foot knee  0.707 -0.707 0.000
              $ikchain lfoot ValveBiped.Bip01_L_Foot knee  0.707 -0.707 0.000
              $collisionjoints "phymodel.smd" {
              
              	$mass 90.0
              	$inertia 2.00
              	$damping 0.01
              	$rotdamping 0.40
              	$rootbone "valvebiped.bip01_pelvis"
              	$jointmerge "ValveBiped.Bip01_Pelvis" "ValveBiped.Bip01_Spine1"
              
              	$jointconstrain "valvebiped.bip01_spine2" x limit -48.00 48.00 0.20
              	$jointconstrain "valvebiped.bip01_spine2" y limit -25.00 25.00 0.20
              	$jointconstrain "valvebiped.bip01_spine2" z limit -25.00 50.00 0.20
              }
      • replacebone
            About:
            Quite similar to bonetreecollapse in the way it moves the mesh influence from one joint to another. This command is more specific however. All it does is transfer joint-1's mesh influence to joint-2.

            Outline of Use:
            replacebone "(joint-1)" "(joint-2)"

            Possible Values:
            joint-1 = a joint name
            joint-2 = a joint name

            Examples of Use:
          • Example #1
              $cd "C:\Documents and Settings\Marc\Desktop\Jeff Wayne Tripod"
              $modelname "katharsmodels/jeffwayne_tripod/jeffwayne_tripod.mdl"
              $scale 238
              $body "studio" "tripod_ref.smd"
              $lod 12
              {
              	replacemodel "tripod_ref" "lod1_tripod_ref"
              }
              $lod 18
              {
              	replacemodel "tripod_ref" "lod2_tripod_ref"
              	replacebone "r_ankle" "r_knee"
              	replacebone "l_ankle" "l_knee"
              	replacebone "b_ankle" "b_knee"
              }
              $lod 42
              {
              	replacemodel "tripod_ref" "lod3_tripod_ref"
              	replacebone "r_ankle" "r_knee"
              	replacebone "l_ankle" "l_knee"
              	replacebone "b_ankle" "b_knee"
              	replacebone "heatray" "root"
              }
              $lod 55
              {
              	replacemodel "tripod_ref" "lod4_tripod_ref"
              	replacebone "r_ankle" "r_knee"
              	replacebone "l_ankle" "l_knee"
              	replacebone "b_ankle" "b_knee"
              	replacebone "heatray" "root"
              }
              $shadowlod
              {
              	replacemodel "tripod_ref" "lod5_tripod_ref"
              	replacebone "r_ankle" "r_knee"
              	replacebone "l_ankle" "l_knee"
              	replacebone "b_ankle" "b_knee"
              	replacebone "heatray" "root"
              	replacebone "r_knee" "r_thigh"
              	replacebone "l_knee" "l_thigh"
              	replacebone "b_knee" "b_thigh"
              }
              
              $keyvalues { prop_data { "base" "metal.large" } }
              $surfaceprop "metal"
              $cdmaterials "katharsmodels/jeffwayne_tripod"
              $upaxis y
              
              $sequence idle "tripod_ref" fps 30.00
              $collisionjoints "tripod_phy.smd" {
              	$concave
              	$mass 1000000
              	$inertia 30.00
              	$damping 0.0
              	$drag 0.01
              	$rotdamping 0.0
              	$rootbone "root"
              
              	$jointconstrain "heatray" x limit -8.00 44.00 0.00
              	$jointconstrain "heatray" y limit -30.00 30.00 0.00
              	$jointconstrain "heatray" z limit 0.00 0.00 0.00
              }
      • replacemodel
            About:
            Used to replace an smd the model is using, with a different smd when you reach a certain distance from the model. Usually used to create LODs (Levels of Detail), so the further away the model gets, the less detailed it is, therefore making it use less resources.

            Outline of Use:
            replacemodel "(reference-smd)" "(ref-replacement-smd)"

            Possible Values:
            reference-smd = an SMD name
            ref-replacement-smd = an SMD name

            Examples of Use:
          • Example #1
              $cd "C:\Program Files\Valve\Steam"
              $modelname "sdk\Humans\male_06_sdk.mdl"
              $cdmaterials "sdk\models\Humans\Male"
              
              $eyeposition 0 0 70
              
              $attachment "eyes" "ValveBiped.Bip01_Head1" 0.043 -4.2197 67.5554 absolute
              $attachment "mouth" "ValveBiped.Bip01_Head1" 1.00 -6.30 0.00 rotate 0 -80 -90
              
              $model male_06 "male_06_reference.smd"{
              	eyeball righteye "ValveBiped.Bip01_Head1" -1.2711 -4.2197 67.5593 "eyeball_r" 1 4 "pupil_r" 0.63
              	eyeball lefteye "ValveBiped.Bip01_Head1" 1.3572 -4.2197 67.5514 "eyeball_l" 1 -4 "pupil_l" 0.63
              	eyelid  upper_right "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split 0.1 eyeball righteye
              	eyelid  lower_right "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split 0.1 eyeball righteye
              	eyelid  upper_left "male_06_expressions" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split -0.1 eyeball lefteye
              	eyelid  lower_left "male_06_expressions" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split -0.1 eyeball lefteye
              	mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0
              
              	flexfile "male_06_expressions" {
              		$include "../standardflex_xsi.qci"
              	}
              	$include "../facerules_xsi.qci"
              	$include "../bodyrules_xsi.qci"
              }
              
              $include "../standardhierarchy.qci"
              $alwayscollapse "male_06"
              $alwayscollapse "XSISceneRoot"
              
              $proceduralbones "../male.vrd"
              
              $pushd "../male_animations_sdk"
              $include "../male_animations_sdk/male_shared_XSI_sdk.qci"
              $include "../male_animations_sdk/body_poses_lean.qci"
              $include "../male_animations_sdk/WeaponAnims_shared_sdk.qci"
              $popd
              
              $lod 10 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_1" 
              }
              $lod 20 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_2"
              	$include "../removehands.qci"
              }
              
              $lod 35 
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_3"
              	$include "../lowesthumanskeleton.qci"
              	$include "../lowesthumannohelpers.qci"
              	nofacial
              }
              
              $shadowlod
              {
              	replacemodel "Male_06_reference" "Male_06_LOD_shadow" 
              	$include "../lowesthumanskeleton.qci"
              	$include "../lowesthumannohelpers.qci"
              	nofacial
              }
              
              $include "hitbox.qci"
              $include "ragdoll.qci"
      • removemodel
            About:
            Causes the entire model to stop being rendering at the target LOD distance. Should only really be used at extreme distances, or if the model is really small.

            Outline of Use:
            removemodel

            Possible Values:
            N/A (no values are used)

            Examples of Use:
          • Example #1
              $cd "C:\Documents and Settings\Marc\Desktop\Raptor"
              $modelname "katharsmodels/raptor/raptor.mdl"
              $body "raptor" "raptor_ref.smd"
              
              $lod 65
              {
              	replacemodel "raptor_ref" "lod1_raptor_ref"
              }
              $lod 132
              {
              	replacemodel "raptor_ref" "lod2_raptor_ref"
              }
              $shadowlod
              {
              	removemodel
              }
              $cdmaterials "katharsmodels/raptor"
              $scale 22
              $upaxis "y"
              $surfaceprop "metal"
              $staticprop
              $sequence idle "raptor_ref" fps 30.00
              $collisionmodel "raptor_ref.smd" {
              	$concave
              	$mass 1800
              }
      • removemesh
            About:
            Removes all faces on the target LOD that are using the specified material. Quite useful for removing things you wouldn't see at a distance, such as ammo pouches, glasses, etc. Can also be useful when paired with the 'nofacial' command. For example, with no expressions you can't see the mouth/teeth, so they can be removed.

            Outline of Use:
            removemesh "(material)"

            Possible Values:
            material = a VMT name only

            Examples of Use:
          • Example #1
              $cd "C:\Documents and Settings\Marc\Desktop\Raptor"
              $modelname "katharsmodels/raptor/raptor.mdl"
              $body "raptor" "raptor_ref.smd"
              
              $lod 65
              {
              	replacemodel "raptor_ref" "lod1_raptor_ref"
              }
              $shadowlod
              {
              	replacemodel "raptor_ref" "lod2_raptor_ref"
              	removemesh "raptor_details"
              }
              $cdmaterials "katharsmodels/raptor"
              $scale 22
              $upaxis "y"
              $surfaceprop "metal"
              $staticprop
              $sequence idle "raptor_ref" fps 30.00
              $collisionmodel "raptor_ref.smd" {
              	$concave
              	$mass 1800
              }
  • $skipboneinbbox
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $skiptransition
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $staticprop
        About:
        As far as I can remember, this collapses all joints, (so only the joint "static_prop" remains) attachments and anything else related to animations and such. Using this command makes the model load much faster and should be used in collaberation with the '$body' command. Using this command does not force the model to be a "prop_static", it is still capable of being a "prop_physics", "prop_dynamic", etc.

        Outline of Use:
        $staticprop

        Possible Values:
        N/A (no values are used)

        Examples of Use:
  • $surfaceprop
        About:
        This command affects what sounds/decals/particles will be used when the texture in question is shot/damaged etc. (see $jointsurfaceprop for applying multiple surface prop types)

        Outline of Use:
        $surfaceprop "(property-type)"

        Possible Values:
      • Stone:
        baserock
        boulder
        brick
        concrete
        concrete_block
        gravel
        rock
        
        Metals:
        chain
        chainlink
        metal
        metal_box
        metalgrate
        metalpanel
        metalvent
        slipperymetal
        solidmetal
        
        Liquids/Frozen:
        ice
        slime
        snow
        water
        wade
        
        Organic/Flesh:
        alienflesh
        armorflesh
        bloodyflesh
        flesh
        strider
        
        Terrain:
        antlionsand
        dirt
        grass
        gravel
        mud
        mudslipperyslime
        quicksand
        slime
        slipperyslime
        
        Wooden:
        wood
        wood_box
        wood_crate
        wood_furniture
        wood_lowdensity
        wood_plank
        wood_panel
        wood_solid
        	
        Others:
        computer
        default
        glass
        ladder
        porcelain
        tile
        watermelon

      • Examples of Use:
  • $texturegroup
  • $upaxis
        About:
        Will rotate the model so the specified 'axis' is facing upwards. By default, Source uses 'z' as the default up-axis. Max and XSI's default up-axis are Z, whereas Maya's is Y.

        Outline of Use:
        $upaxis "(axis)"

        Possible Values:
        axis = -x, x, -y, y, -z, z

        Examples of Use:
      • Example #1
          $cd "C:\Documents and Settings\Marc\Desktop\Beds\Single\frame"
          $modelname "katharsmodels/beds/type-1/single/frame/bed.mdl"
          $cdmaterials "katharsmodels/beds/type-1/"
          $upaxis "-y"
          $scale 1.15
          $surfaceprop "wood"
          $body "bed" "bed_ref"
          $sequence idle "bed_ref" fps 30.00
          
          $collisionmodel "bed_phys" {
              $mass 200
              $concave
          }
  • $weightlist
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $zbrush
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:

  • HL2:EP1
    These commands only work on games/mods if they were created using the HL2:EP1 SDK code.


    This means any games/mods created before its release are unlikely to feature its engine additions, unless updated afterwards to include them.
  • ---
        About:

  • HL2:EP2/Orange Box
    These commands only work on games/mods if they were created using the Orange Box SDK code.


    This means any games/mods created before its release are unlikely to feature its engine additions, unless updated afterwards to include them.
  • $allowrootlods
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $casttextureshadows
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $centerbonesonverts
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $clampworldspace
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $collisionmodel (updated)
  • $donotcastshadows
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $jigglebone
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $maxeyedeflection
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $motionrollback
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $sectionframes
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:
  • $unlockdefinebones
        About:

        Outline of Use:

        Possible Values:

        Examples of Use:



  • Am I missing something? Have I got my facts wrong? Got something to add? Get in touch!




    Javascripts belong to their respectful owners.
    The rest of this site and its contents, unless otherwise specified, were created by Marc "Kathar" Hales.
    Taking its contents without permission is forbidden.