SFM Compile

SFM Compile: The Complete Guide to Models, Maps, and Exports in Source Filmmaker

User avatar placeholder
Written by Admin

October 7, 2026

SFM compile is the process of turning raw files into assets that Source Filmmaker (SFM) can read and render. In practice, the term covers two jobs: compiling custom models and maps, and exporting your finished animation as a video or image sequence.

This guide explains both workflows step by step. You will learn which tools to install, how to write a working QC script, how to build a BSP map, and how to fix common errors. It also covers the render settings that protect your final quality. The steps apply to the current Steam version of SFM, which runs on the Source engine.

What Does “SFM Compile” Mean? (Two Different Workflows)

People use “SFM compile” for two separate tasks. Mixing them up is the most common source of confusion in forums and tutorials. One task prepares assets before you animate. The other happens after you finish animating.

Asset Compilation: Models, Textures, Animations, and Maps

Asset compilation converts source files into formats the Source engine understands. SFM cannot load a Blender file or a raw image directly. It needs compiled game files.

AssetSource FormatCompiled FormatMain Tool
ModelSMD, DMX, plus QC scriptMDL, VVD, VTX, PHYCrowbar / StudioMDL
TexturePNG, TGA, PSDVTF, with a VMT fileVTFEdit
MapVMFBSPHammer, VBSP, VVIS, VRAD
AnimationSMD, DMXPart of the MDLCrowbar / StudioMDL

You do this work once per asset. After that, the compiled files stay in your SFM folders and can be reused in any project.

Movie Export (Layoff): Rendering Your Final Animation

Movie export is the second meaning. SFM calls this step “layoff” in some of its menus. It renders every frame of your session and writes a video file or an image sequence.

This step takes the most time. A short shot with high quality settings can take hours. Export settings decide the sharpness, smoothness, and file size of your final film.

How to Compile a Custom Model for SFM (Step-by-Step)

Model compilation follows a fixed order. If you skip a step, the compile may still succeed, but the model will look wrong in SFM. Follow the steps in sequence.

1. Prepare and Export Your Mesh (SMD or DMX)

Build or edit your model in Blender, 3ds Max, or Maya. Blender users need the Blender Source Tools add-on to export Source formats.

Check these points before exporting:

  • Apply all scale and rotation transforms.
  • Keep the bone count within the Source limit of 128 bones.
  • Assign every vertex to at least one bone.
  • Use consistent, readable material names.

Export the reference mesh as SMD or DMX. Export each animation as a separate file. DMX supports flex data for facial animation, so choose it if your character needs face poses.

2. Convert Textures to VTF and Create VMT Files

The Source engine uses VTF for textures and VMT for material definitions. Convert your image files with VTFEdit.

Texture sizes should be powers of two, such as 512×512 or 1024×1024. Other sizes can fail or look stretched.

A basic VMT file looks like this:

“VertexLitGeneric”

{

    “basetexture””models/mycharacter/body””surfaceprop” “flesh”

}

The $basetexture path is relative to the materials folder and has no file extension. A wrong path is the main cause of pink-and-black checkerboard textures.

3. Write a QC Script (With Minimal Template)

The QC file tells the compiler how to build the model. It is a plain text file. A minimal template is shown below.

$modelname “custom/mycharacter.mdl”

$bodygroup “body”

{

    studio “mycharacter_ref.smd”

}

$cdmaterials “models/mycharacter/”

$sequence “idle” “mycharacter_idle.smd” loop fps 30

$surfaceprop “flesh”

What the main commands do:

  • $modelname sets the output path inside the models folder.
  • $bodygroup or $body points to the reference mesh.
  • $cdmaterials tells the engine where to find the VMT files.
  • $sequence defines each animation.

Static props, such as furniture, may also need $staticprop and $collisionmodel. Characters usually do not.

4. Compile with Crowbar (or StudioMDL)

Crowbar is a graphical front end for StudioMDL, the official Valve compiler. Most creators use it because it shows errors clearly.

  • Open Crowbar and go to the Set Up Games tab.
  • Choose Source Filmmaker as the game and point it to SFM’s gameinfo.txt file.
  • Open the Compile tab and select your QC file.
  • Set the output to the usermod folder, or choose a custom folder.
  • Click Compile and read the log.

A clean log ends with a “Completed” message. Any line starting with “ERROR” needs your attention.

5. Test in Half-Life Model Viewer (HLMV) Before SFM

HLMV is included with SFM’s tools. Open your compiled MDL there first. It loads in seconds, while SFM can take much longer.

Check the following:

  • Textures appear and are not pink or black.
  • The model faces the correct direction.
  • Animations play without stretching.
  • Lighting and shading look reasonable.

Fixing problems here saves time. It also keeps SFM’s own errors from hiding the real cause.

6. Move Files into the Correct SFM Folders

SFM reads custom content from its usermod directory. The usual path is:

Steam\steamapps\common\SourceFilmmaker\game\usermod\

File TypeDestination Folder
MDL, VVD, VTX, PHYusermod\models\yourfolder\
VMT, VTFusermod\materials\models\yourfolder\
BSP mapsusermod\maps\

Keep folder names lowercase and avoid spaces. The folder names must match the paths in your QC and VMT files.

7. Load the Model in Source Filmmaker

Restart SFM after adding new content. Open the Animation Set Editor and create a new animation set for a model. Browse to your model in the list and select it.

If it does not appear, check the usermod\models path first. Then check that the file names match exactly.

How to Compile a Custom Map for SFM (VMF BSP)

Map compilation works differently from model compilation. You build the level in a map editor, then convert the VMF file to a BSP file that SFM can load.

1. Build Your Map in Hammer Editor and Save VMF

Hammer is Valve’s level editor. Set it up with the SFM configuration or with a Source SDK game that uses the same engine branch.

Keep the first version of your map simple. A sealed room with a floor, walls, a ceiling, and a light entity is enough to test the pipeline. Save your work as a VMF file.

Two rules prevent most problems:

  • The map must be fully sealed from the void.
  • Use func_detail for small brushes that do not block visibility.

2. Run VBSP, VVIS, and VRAD

Hammer’s Run Map option executes three compilers in order. Each has a distinct job.

ToolFunctionNotes
VBSPBuilds the BSP geometry and entitiesFails if the map leaks
VVISCalculates visibility between areasSlow on large or open maps
VRADBakes lighting and shadowsSlowest step; has a “final” mode

For test builds, run with fast settings. Use full VVIS and final-quality VRAD only for the version you will film.

3. Fix Common Map Compile Errors

These are the problems that appear most often:

  • Leak error: A gap exists in the sealed space. Open the generated .lin file in Hammer to follow the red line to the hole.
  • Missing textures: The VMT or VTF is not in usermod\materials.
  • Overflow errors: The map exceeds an engine limit, such as brush or entity counts. Split the map or simplify the detail.
  • VVIS runs for hours: Convert small brushes to func_detail and add func_viscluster or hint brushes to open spaces.
  • Black lighting: The map lacks a light_environment or a light entity.

4. Load and Test the Map in SFM

Copy the finished BSP file into usermod\maps. Restart SFM and create a new session. Select your map from the list, or load it from the map options inside an open session.

Check the camera view, the lighting, and the performance. A heavy map can slow the viewport, so test before you animate a long shot.

SFM Compile Tools You Need (And How to Set Them Up)

You do not need many programs. This table lists the essential set and what each tool is for.

ToolPurposeSetup Tip
Source FilmmakerAnimation and renderingInstall through Steam
CrowbarCompile and decompile modelsSelect SFM in Set Up Games
StudioMDLCore model compilerIncluded in SFM’s bin folder
Blender + Source ToolsModel and animation exportInstall the add-on, then restart
VTFEditConvert textures to VTFCreate VMT files beside the VTF
Hammer EditorMap creationPoint it to the correct game folder
HLMVModel previewRun from SFM’s bin folder

Setup advice:

  • Keep one clean working folder for source files and a separate one for compiled output.
  • Use short, lowercase paths with no special characters.
  • Download tools only from official or well-known community pages, such as the Steam Workshop and developer sites.

Common SFM Compile Errors and How to Fix Them

Most compile failures come from path mistakes, bad mesh data, or missing files. Read the first error in the log. Later errors are often caused by the first one.

Error or SymptomLikely CauseFix
Pink-and-black checkerboardMissing VMT/VTF or wrong $cdmaterialsCheck paths and folder names
“Cannot open file”Wrong file name or location in the QCMatch names exactly; keep files beside the QC
Model invisible in SFMWrong folder or no restartPlace in usermod\models; restart SFM
Model is huge or tinyScale not applied before exportApply scale in Blender, then re-export
Stretched or twisted meshBad weights or bone mismatchReassign weights; verify the skeleton
“Too many verts” or bone errorsExceeds engine limitsSplit the mesh; reduce bones
Shiny or flat shadingBad normals or missing normal mapRecalculate normals; check the VMT
Map leakHole in sealed geometryFollow the .lin file in Hammer

When a fix does not work, test with a very simple model or map. A cube with one texture proves your tool chain is correct. Then add complexity back one piece at a time.

Exporting and Rendering: “Compiling” Your Final SFM Animation

Once your animation is ready, you export it. Go to File, then Export, then Movie. The dialog lets you choose the output type, the resolution, and the quality settings.

Render Settings for Quality

Quality settings affect render time directly. Higher values look better but take longer.

  • Motion blur: Increase samples for smoother movement in fast scenes.
  • Anti-aliasing: Higher values reduce jagged edges.
  • Depth of field: Improves cinematic focus but adds render time.
  • Frame blending or sampling: Smooths motion between frames.

Do a short test render of five to ten seconds first. Compare it against your final quality goal, then adjust.

Export Movie vs. Image Sequence (PNG/TGA) + Audio

You can export a single video file or a set of still frames. Each option suits a different workflow.

MethodAdvantagesDrawbacks
Movie file (H.264/MP4 or AVI)Quick and easy; ready to shareCompression can reduce quality; a crash may lose the file
Image sequence (PNG or TGA)Best quality; you can resume after a crashLarge storage; needs editing software

Many experienced creators choose the image sequence. You then combine the frames and the audio in an editor such as DaVinci Resolve, Premiere Pro, or Shotcut. Export the audio separately as a WAV file for the best sound.

Resolution and Frame Rate

Match your settings to where the video will be published.

UseResolutionFrame Rate
Social media preview1280×72030 fps
Standard YouTube upload1920×108024 or 30 fps
High-motion content1920×108060 fps
High-detail showcase2560×1440 or 3840×216024 or 30 fps

Set the same frame rate in your session and in your export. A mismatch causes stutter or audio drift. Higher resolution and frame rates increase render time sharply, so choose only what your audience needs.

Best Practices and Workflow Tips for Reliable SFM Compiles

A steady workflow prevents most errors and makes problems easier to trace.

  • Compile early and often. Test a rough model before you add details.
  • Use clear names. Keep file, bone, and material names lowercase and consistent.
  • Back up your sources. Keep original Blender, Hammer, and PSD files safe.
  • Read the log fully. The compiler often states the exact problem and file.
  • Preview in HLMV first. It is the fastest way to catch missing textures.
  • Save versions. Use names like model_v01 and model_v02 so you can step back.
  • Optimize for animation. Keep polygon counts reasonable so the viewport stays responsive.
  • Check licenses. Only use or share assets you have the right to modify.
  • Render in stages. Export short test clips before committing to a long final render.

Conclusion

SFM compile covers two key stages: preparing assets and exporting your finished film. For models, the reliable path is clean mesh export, correct VTF and VMT files, a simple QC, a Crowbar compile, and an HLMV test. For maps, build a sealed VMF in Hammer and run VBSP, VVIS, and VRAD in order.

When you hit errors, check file paths first, then mesh data, then engine limits. For final output, test short clips, choose the right resolution and frame rate, and consider an image sequence for the best quality. Following this order keeps your work predictable and saves hours of rework.

FAQs

What does SFM compile mean?

It means converting source files, such as models, textures, and maps, into formats SFM can load. It can also refer to rendering the final animation as a video.

Which tool is best for compiling SFM models?

Crowbar is the most popular choice because it wraps Valve’s StudioMDL in a simple interface. It also shows clear error logs when a compile fails.

Where do compiled models go in SFM?

Place model files in SourceFilmmaker\game\usermod\models and materials in usermod\materials. Restart SFM so it detects the new content.

Why is my SFM model pink and black?

This pattern means SFM cannot find the texture. Check that the VMT and VTF files exist and that $cdmaterials and $basetexture paths are correct.

How do I compile a map for SFM?

Build the map in Hammer, save it as VMF, then run VBSP, VVIS, and VRAD. Copy the resulting BSP file into usermod\maps.

Should I export SFM animations as video or image sequence?

An image sequence in PNG or TGA gives the best quality and lets you resume after a crash. A direct video export is faster and simpler for quick previews.

What resolution and frame rate should I use for SFM renders?

Use 1920×1080 at 24 or 30 fps for most uploads. Choose 60 fps only for fast action, since it greatly increases render time.

Leave a Comment