Downloading a model for Source Filmmaker is the easy part. Getting it to actually show up correctly is where most people get stuck. If you’ve ever imported a model and seen a checkerboard texture, a frozen T-pose, or nothing at all, this SFM compile walkthrough is for you.
This isn’t a theory piece. It’s a practical, start-to-finish walkthrough of your first SFM compile, written for someone who has never opened a QC file before.
Quick Answer: What SFM Compile Actually Does
SFM compile takes your raw model files — the mesh, the textures, the animations — and packages them into a format Source Filmmaker can read, called an MDL file. Source Filmmaker cannot open Blender files, FBX files, or OBJ files on its own. Everything has to pass through the compiler first.
The compiler is a program called studiomdl.exe. It reads a text file called a QC file, which acts like a checklist telling it exactly what to build during the SFM compile process.
Before You Start: What You’ll Need Installed
Get these four things set up before touching a single model file:
- Blender, with the Blender Source Tools add-on installed
- Crowbar (free, no install required — just extract and run)
- The Source SDK, which includes studiomdl.exe
- A plain text editor like Notepad++
Everything here is free. There’s no paid software anywhere in this workflow, which surprises a lot of first-timers who assume game-ready tools cost money.
Setting Up Your Workspace Correctly
This step gets skipped constantly, and it causes more failed compiles than anything else on this list.
Create a short, simple folder somewhere on your C: drive — something like C:\sfm_work\. Inside it, make separate folders for your mesh exports, your textures, and your QC file.
Avoid:
- Folder names with spaces (
My SFM Projectwill cause problems) - Saving your project on a OneDrive or Google Drive synced folder
- Deeply nested folder paths
- Uppercase letters mixed with lowercase in filenames
Source’s tools were built in an era before modern file systems were forgiving about this. A messy folder structure is the single most common reason an SFM compile fails for reasons that have nothing to do with the model itself.
Step 1: Export Your Model From Blender
Once your model is ready — mesh built, UV mapped, and rigged if it needs to move — use the Blender Source Tools add-on to export it as an SMD file.
If your character needs facial animation or shape keys, export as DMX instead. DMX supports that extra data; SMD doesn’t.
Export your reference mesh and, separately, a simplified collision mesh if your model needs physics.
Step 2: Prepare Your Textures
Source Filmmaker doesn’t read PNG or JPG files directly. Textures need to be converted to VTF format using VTFEdit, and each texture needs a matching VMT file that tells the engine how to render it (shader type, transparency, bump mapping, and so on).
If you skip this step, your finished model will render as a purple and black checkerboard pattern — Source’s built-in “texture not found” placeholder.
Step 3: Write Your QC File
Open Notepad++ and create a new file. Save it with a .qc extension in the same folder as your exported SMD files.
Here’s a basic working example for a simple character model:
$modelname "characters/my_character.mdl"
$body "body" "character_ref.smd"
$cdmaterials "models/characters/my_character/"
$surfaceprop "flesh"
$sequence "idle" "character_idle.smd"
$sequence "walk" "character_walk.smd"
$collisionmodel "character_phys.smd" {
$mass 75
$concave
}
$eyeposition 0 0 64
Quick breakdown, in plain terms:
$modelname— where the finished file goes, and what it’s called$body— the visible mesh$cdmaterials— the folder holding your VMT/VTF texture files$sequence— each animation you want attached (add one line per animation)$collisionmodel— the physics mesh, needed for the model to interact with the world$eyeposition— sets where the camera/eye reference point sits, mainly relevant for characters
Save the file once it’s written correctly.
Step 4: Run the SFM Compile
You have two options here. Pick whichever fits your comfort level.
Option A — Crowbar (recommended for beginners)
- Open Crowbar and click the Compile tab.
- Set the game field to your SFM install path — usually
Steam\steamapps\common\SourceFilmmaker\game\usermod. - Browse to your QC file.
- Click Compile and watch the log window.
- A successful compile ends with a confirmation message and generates new MDL, VVD, VTX, and PHY files in your output folder.
Option B — studiomdl.exe directly (for more control)
- Open Command Prompt in the Source SDK
binfolder. - Type
studiomdl.exefollowed by the full path to your QC file, or drag the QC file onto the executable. - Read through the console output. Errors typically appear a few lines before the process stops.
Step 5: Test Before You Trust It
Don’t load a freshly compiled model straight into a Source Filmmaker scene. Open it in Half-Life Model Viewer (HLMV) first. It’s faster, and it isolates the model so you can immediately spot:
- Missing or misapplied textures
- Broken bone movement
- Animations that don’t play
- A collision mesh that’s clipping or missing entirely
Once it looks right in HLMV, it’s ready for SFM.
Why SFM Compile Fails on the First Try (and That’s Normal)
Almost nobody gets an SFM compile right on attempt one. Here’s what usually goes wrong, roughly in order of how often it happens:
- A file path typo inside the QC — one wrong character breaks the whole compile
- Textures never converted to VTF, so materials point to files that don’t exist
- A missing
$collisionmodelblock, so the model has no physics - An animation exported without being baked first in Blender, resulting in a T-pose
- Spaces or special characters in the folder path
The fix for all of these is the same habit: change one thing, recompile, check the result. Don’t rewrite five lines of the QC file at once — you’ll fix the problem and have no idea which change actually did it.
When You Don’t Need SFM Compile at All
If you’re only using stock content — models that already ship with Source Filmmaker or with a Source game you own — you can skip all of this. SFM compile is only required when you’re bringing in something new: a custom model, a modified reskin, or anything exported from outside the Source engine.
Recap: The Full SFM Compile Process in One List
- Set up a clean, simple folder structure
- Export your mesh (and animations) from Blender as SMD or DMX
- Convert textures to VTF and write matching VMT files
- Write your QC file
- Compile with Crowbar or studiomdl.exe
- Test in HLMV
- Import into Source Filmmaker
FAQs
Do I need to know how to code to write a QC file?
No. A QC file is a short list of plain-text commands, not programming. Most beginners can write one by copying a working example and changing the file paths and names.
What’s the fastest way to learn correct QC structure?
Decompile an existing, working model using Crowbar. It breaks the MDL back down into SMD and QC files, giving you a real, functional example to study and copy from.
Can I compile on Mac or Linux?
studiomdl.exe is a Windows program, but many users run it successfully on Linux through Wine or Proton, including through Crowbar.
Why does my model look fine in Blender but broken in SFM?
Blender’s viewport doesn’t reflect how Source reads your file. Differences in scale, bone orientation, or texture paths often only show up after compiling, which is exactly why testing in HLMV before SFM matters.
How long does an SFM compile actually take?
For a single prop or character, usually seconds to under a minute. Longer compile times or a hang usually points to a large polygon count or a stuck process, not a working SFM compile in progress.
