If you searched “sfm compile” or “sfm compilation”, you’re probably trying to compile a model (SMD/DMX + textures + QC) into a working.MDL that actually shows up in Source Filmmaker.
This guide covers:
- What SFM compilation means (in plain language)
- The tools you need (Crowbar, VTFEdit, Blender)
- A clean folder structure that avoids 90% of errors
- A working QC template
- How to compile in Crowbar
- Fixes for the most common SFM compile problems
If you also want Fortnite-specific compilation, jump here: /fortnite-sfm-compile/
If you’re looking for the community/brand page: /sfm-compile-club/
What “SFM Compile” and “SFM Compilation” Mean
SFM doesn’t “compile” models by itself. In Source workflows, compiling means converting your source files (like SMD/DMX and textures) into Source Engine model files:
- .mdl (main model)
- .vvd / .vtx (mesh/vertex data)
- .phy (physics, optional)
This is why people also search “sfm compiler” — they’re looking for the tool that performs compilation. The most common “SFM compiler” setup is Crowbar + a Source compiler toolchain.
Tools You Need for SFM Compilation
Minimum recommended stack:
- Crowbar — compile/decompile Source models
- Blender — model/rig/export (SMD/DMX)
- VTFEdit — convert textures to VTF
- Notepad++ (or any code editor) — edit QC/VMT cleanly
Optional (but useful):
- GCFScape — extract Source game assets
- Hammer — maps/scene environments
- HandBrake — export/compress final videos
Folder Structure That Works (Avoids Missing Model / Missing Textures)
Place compiled outputs and materials in the correct usermod paths.
Base path (typical):
steamapps/common/SourceFilmmaker/game/usermod/
Use this structure:
- usermod/models/project_name/
- usermod/materials/models/project_name/
Example:
- usermod/models/project_name/character_name.mdl
- usermod/materials/models/project_name/character_diffuse.vtf
- usermod/materials/models/project_name/character_diffuse.vmt
Most “model not showing” and “purple texture” issues come from wrong paths.
QC File Template (Working Starting Point)
Your QC file tells the compiler what to build, where to find materials, and what animations exist.
Minimal QC
$modelname “project_name/character_name.mdl”
$body “studio” “character_reference.smd”
$cdmaterials “models/project_name/”
$sequence “idle” “character_idle.smd” fps 30 loop
Common QC Upgrades (Physics + LOD)
$collisionmodel “character_physics.smd”
{
$mass 65
$inertia 1
$damping 0.1
$rotdamping 0.4
}
$lod 25
{
replacemodel “character_reference.smd” “character_lod1.smd”
}
$lod 50
{
replacemodel “character_reference.smd” “character_lod2.smd”
}
Important Notes
- $modelname controls where your model appears in the browser
- $cdmaterials must match your materials/models/… path (without the “materials/” part)
- Always include at least one $sequence (idle is a safe default)
VTF/VMT Setup (Fix Purple/Black Textures)
Step 1: Convert Texture to VTF
- Open VTFEdit
- Import PNG/TGA
- Save as .vtf
- Use:
- DXT1 for no alpha
- DXT5 if you need alpha
- DXT1 for no alpha
Step 2: Create a VMT
Place VMT next to VTF in:
usermod/materials/models/project_name/
Basic VMT:
“VertexLitGeneric”
{
“$basetexture” “models/project_name/character_diffuse”
}
With normal map:
“VertexLitGeneric”
{
“$basetexture” “models/project_name/character_diffuse”
“$bumpmap” “models/project_name/character_normal”
}
Rule: In VMT paths, do not include .vtf.
How to Compile in Crowbar (Step-by-Step)
- Open Crowbar
- Go to Compile
- Select your QC file
- Set the game configuration to Source Filmmaker/Source SDK compatible setup
- Set output so compiled files land in:
- …/usermod/models/project_name/
- …/usermod/models/project_name/
- Click Compile
If successful, you should see output files like:
- character_name.mdl
- character_name.vvd
- character_name.dx90.vtx
- character_name.phy (if physics enabled)
Common SFM Compile Errors (Fast Fixes)
1) Model Not Showing in SFM
Usually caused by:
- Wrong $modelname path
- Compiled to wrong folder
- QC references missing SMD
Fix checklist:
- Confirm compiled .mdl exists in usermod/models/…
- Confirm QC $modelname matches the folder you compiled into
2) “Material Not Found” / Purple Model
Usually caused by:
- Wrong $cdmaterials
- VMT/VTF placed in wrong folder
- VMT uses wrong texture path
Fix checklist:
- usermod/materials/models/project_name/…
- QC uses: $cdmaterials “models/project_name/”
- VMT uses: “models/project_name/texture_name”
3) Crowbar Compile Failed
Common causes:
- QC syntax error (missing quote/brace)
- Missing SMD referenced in QC
- Bone limit issues / export issues
- Bad SMD export settings
Fix checklist:
- Re-check filenames in QC vs real files
- Simplify QC (remove physics/LOD) and compile again
- Verify your exported SMD exists and is readable
Performance Optimization (Professional SFM Workflow)
If you want smooth work sessions and good render performance:
- Keep characters around ≤ 15k triangles when possible
- Use LODs for heavy models
- Avoid huge textures unless needed (4K is rarely required)
- Keep materials clean and consistent (paths, naming)
- Reduce unnecessary bones and unused animation data
FAQ
What is SFM compile?
SFM compile refers to compiling Source model source files (like SMD/DMX + textures + QC) into Source Engine model files (.mdl/.vtx/.vvd) that SFM can load.
What is SFM compilation?
SFM compilation is the Source workflow for converting model sources into game-ready model files, typically using Crowbar and a Source compiler toolchain.
What is the SFM compiler?
SFM itself doesn’t include a model compiler. Most creators use Crowbar (plus Source compile tools) as the “SFM compiler” setup.
Why is my SFM model purple?
It’s usually a material path issue: wrong $cdmaterials, wrong VMT path, or VTF/VMT placed in the wrong folder.
