From Valve Developer Community
Jump to: navigation, search
SourceOps UI

SourceOps allows Blender to export Studiomdl Data and generate QC files.


  • Export SMD files with animation
  • Generate QC files based on parameters
  • Buttons to compile and view models
  • Export multiple objects to one body


  1. Install Blender 2.80 or later. Or Install from Steam (AppID: 365670)
  2. Download SourceOps. Don’t unzip.
  3. In Blender:
    1. Select Edit > Preferences
    2. Move to the Add-ons tab
    3. Click Install... at the top-right of the window
    4. Find the downloaded zip file and select it (Double click)
    5. SourceOps should be the only add-on shown if installed correctly. Check the box to the left and wait a moment for activation to complete.

User Guide

Panel 1: Games

  1. Add a Display Name to your game. This isn't necessary for any element, but it is there to make it easier for you to organize. You select the game you wish to export to.
  2. Add the Gameinfo path. This should point to the "gameinfo.txt" file from the game you wish to export to. Example: C:\Program Files\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\gameinfo.txt
  3. If you wish to save a copy of your compiled model somewhere else, you can add an Additional path.

Panel 2: Models

  1. Display Name will not be the name of your model. You can add as many as you want. Select the one you want to compile.
  2. Model Name is both the path and the name for your model. This is the path from the root\models folder for the game. Anything after the last "\" in the path will be the name of your model. Example: props\de_inferno\arch_stones02. In this case, the name of the model will be "arch_stones02".
  3. The Reference is the visible model. You put everything you want to be visible into one collection in Blender. That's the collection you put into Reference.
  4. Collision is what it sounds like. It's the model that is solid to the player, this model has to be shaded smooth. There can't be any concave parts to it. If you wish to use a concave shape, you can do that by separating the model into parts and as long as all of the parts are in the same collection it will combine them into one collision-model when you compile.

Panel 3: Model Options

  1. Give your model a surface prop by selecting one from the dropdown list. If you set it to wood it's going to leave decals for wood when you shoot it, and bullets will travel through it easier than if it was concrete. It will also sound like wood if you interact with it.
  2. Model scale is how much you want to scale the model. 1m in Blender is 1unit in Source, so as long as you make it the right scale for the getgo you don't need to change this.
  3. If you don't intend to animate your model, use Static Prop
  4. Has glass makes source use improved depth sorting. This should be used if your model has transparent materials.
  5. Material Folder
    1. Display Name is ones again just to make it easier for you to keep track of the different materials. You select the one you want to use.
    2. Foulder Path is the path to the folder that contains the materials you used for your models, the .vmt has to be VertexLitGeneric. The path is from the root\materials folder for the game. Example: models\props\de_inferno
  6. You also have to assign the name of the .vmt to your model. If the name of your .vmt is "infwllh", you have to set the material name to that in Blender. You can do this in the material tab.

Panel 4: Sequence

  1. Display Name is not the name of the animations, but you add one per animation.
  2. The Sequence Name will be the name of the animation.
  3. Start Frame is the frame on your timeline where the animation begins.
  4. End Frame is the last frame of your animation. This makes it so you can have multiple animations on one timeline.
  5. Activity is mostly used for view models.
  6. If you have multiple sequences with the same activity Weight tells the game how likely it is to use this one.
  7. Snap instantly starts the sequence from the first keyframe when its called.
  8. Loop makes a looping sequence look more smooth

Panel 5: Event

  1. Display Name is there for you to keep track of your different events.
  2. Event Type is what you want to happen when the event is called.
  3. Relative to the start of the sequence, you can set what Frame you want the event to start at.
  4. Value is the value used by the event type. For example what sound to use from the weapon script.


  • When you are ready to export your model, move over to the export section found at the bottom of all the panels. Here there are six different buttons.
  1. The first one SMD simply exports all the different files as .smd files. If you wish to have a look at these files you can find them in root/game/modelsrc. The files are sorted in the same way as your models. For the example model I have been using the path would be Counter-Strike Global Offensive\csgo\modelsrc\props\de_inferno.
  2. Next one over is QC this simply generates a .qc file from your previous selections.
  3. If you wish to preview this file, or manually change it you can open Blender's built-in text editor. After doing that you can press the third button and you able to edit the file as much as you want.
  4. The MLD button is the button you press when you are ready to compile your model. This converts the .smd files using the properties from the .qc file into the model file type using in Source (.mld).
  5. You can preview your model by pressing the Headcrab symbol, this opens the Half-life model viewer.
  6. If the model doesn't load or there is something wrong with it, you can look at the compile log. You open that the same way as you opened the .qc file, but this time you press the last button. If the compile crashed at some point you can find out what caused it by reading there.