Many fixes and tips have been posted, But having them in one handy article is even more convenient.

Run SFM As An AdministratorEdit

Set the SFM shortcut to run as administrator. The program needs write access to be able to export the footage.

Lossless CodecEdit

The default lossless codec supplied with SFM isn't that great, since it has support for only one core. Get this lossless codec This will help to eliminate the hard drive write/read speed bottleneck and it's multithreaded and efficient. It works in any decent NLE (Vegas and After Effects included).

Turn Off Progressive RefinementEdit

By Swampie

Turning off Progressive Refinement can greatly improve performance by two-fold! It is not recommended to leave it turned on as it can greatly impact Source Filmmaker's performance while working. Progressive Refinement is turned on by default when you load up Source Filmmaker. To turn it off, do the following steps

  1. Right click in your Engine Viewport
  2. Click on Progressive Refinement

And that's it, to turn it back on simply repeat the steps again.

Keep sv_cheats OnEdit

by Darkomni

To the sufferers of negative rendering time left/percentages over 100%/kind of messed up renders, sv_cheats DISABLES ITSELF after each map load in the tf2 beta, so once you get ingame, REENABLE IT.

Another tip is add sv_Cheats 1 to your autoexec and class config files.

Dynamic LightingEdit

by Darkomni

  1. Start SFM
  2. Press F10, F11
  3. Enter mp_flashlight 1 in console
  4. Enter mat_supportflashlight 1 in console
  5. Enter r_flashlightscissor 0 in console
  6. Enter "bind anykey "impulse 100" and change anykeyhere to any key (derp).
  7. Use create a server button to pick a map
  8. When loaded, pick any class
  9. To record flashlight, move to a position you want your flashlight to be and aim it where you want it to be
  10. Disable recording world and sound, so the puppet class doesn't show up
  11. Don't turn your flashlight on, and start recording. BEFORE the four beeps end, turn ON your flashlight.
  12. Make it really short, end the recording as soon as the four beeps end, and you should have a light.
  13. Now, right click on the shot in the timeline, and click "Zoom In"
  14. There should be Take1 there, if you haven't recorded anything but the light. If you HAVE, and there's Take1, Take2, etc, just pick the one with the largest number, as that'd be the most recent.
  15. Right click the take and hit "Properties"
  16. In the DME Element Editor, you should see take1. Go down THIS EXACT PATH in the DME Element Editor: take1 > tracks > Lights > children > flashlightChannelsClip > channels, here you will see three TO four categories called "Visible", "Position", "Orientation", and MAYBE "minDistance".
  17. Delete position, orientation, and minDistance, but keep Visible.
  18. Go into visible > fromElement, here you will find all the values for editing the flashlight.

shadowFilterSize: Blurriness of shadows.
shadowDepthBias, shadowSlopeScaleBias: Changes accuracy of shadows, can cause artifacts if set too low.
horizontal/verticalFOV: Changes how tall/fat the flashlight projection is.
texture: Changes the texture of the flashlight to whatever material.
constant/linear/quadraticAtennuation: Affects the falloff of the light; more information here.
maxDistance: Visibility of the light from this distance.
intensity: As you guess, changes how intense the light from the flashlight is.
color: Self explanatory, comes with a neat little menu that sometimes fails to load.
visible: Self explanatory.

Moving Camera Without PlayerEdit

by Croshi

  1. Create Animation Set > Camera#.
  2. Select Transform.
  3. Select the Manipulation tool.
  4. Go into Work Camera.
  5. Get somewhere near the camera.
  6. BEFORE YOU MOVE THE CAMERA note that there is no blue line on the timeline for the rotation or just placement. To make those blue lines, just click on the yellow square/the middle of the green red and blue rotation circle.

Custom MapsEdit

by Met48

Source Filmmaker cannot accept the newer version of VTFs (material files) - however, I've written two scripts to help fix these issues. Before continuing, you will need to download and install Python. Note that you need to install Python 2.7, not 3.1.2 or newer.

Running Python ScriptsEdit

Method 1:

  1. Save the file to the directory with the materials/maps you wish to fix. Make sure to use a .py extension
  2. Double-click it to run

Method 2:

  1. Open IDLE (Python GUI)
  2. Choose File->New Window
  3. Copy the code into the 'Untitled' window
  4. Click File->Save As...
  5. Browse to the directory with the materials/maps you wish to fix
  6. Click 'All files (*.*)', then choose 'Python and text files (*.py, *.pyw, *.txt)'
  7. Choose a filename, eg. '' (no quotes)
  8. Click Save.
  9. Click Run->Run Module
  10. The IDLE window will reselect and tell you what directory it will affect. Confirm this is correct, then press enter.
  11. Sit back and wait

(question) what if lots of files are skipped?

(answer) this script takes vtf files and reverts it to a previous version, if they are skipped they are at the correct version and don't need to be reverted

To Fix MaterialsEdit

This only needs to be run once, after you extract the materials folder from the TF2 GCF via GCFScape. It will affect every .vtf in every subdirectory, so you can just drop it in the materials folder.
#Script by Met48
#Place in tf/materials before running
import os
import struct
from os.path import join
unchanged = 0
changed = 0
print "Modifying files within", os.getcwd(), "(including subdirectories)"
raw_input('Press enter to continue.')
for root, dirs, files in os.walk(os.getcwd()):
	print "opening" , root
	for name in files:
		if 'vtf' in str.lower(name):
			f = open(join(root,name), 'r+b') #Open to read & write in binary
			if 'VTF' ==
				#Get version number,1)
				ver = ord(
				if ver==4:,1)
					print '*\tchanged', name, " (was VTF version", ver, ')'
					print '\tskipped', name, " (VTF version", ver, ')'

print ""
print "Done! Changed", changed, "out of", changed+unchanged, "files!"
print ""
raw_input('Press enter to exit.')

To Fix MapsEdit

Just changing the materials will still result in lots of purple-black checkered reflections, as reflections are map-specific. Put any maps you wish to convert in the same directory, then run this script.
#Script by Met48
#Place in tf/maps before running
#Use 1 for true/on, 0 for false/off
verbose=0 #Makes it output a lot more information. Only for debug
buffer=2560 #Must be larger than 10! Value is in bytes. Must be smaller than largest material size!!


import os
import struct
from os.path import join
instances = 0
changed = 0
totalCount = 0
print "Modifying files within", os.getcwd()
print "Each file may take a while - do not think it has crashed!"
raw_input('Press enter to begin.')
for root, dirs, files in os.walk(os.getcwd()):
	print "Folder" , root
	for name in files:
		if '.bsp' in str.lower(name):
			f = open(join(root,name), 'r+b') #Open to read & write in binary
			if (!='VBSP'): #Check for signature
			print "\t", name
			group =
			while 1:
				if (group.find('vtfVTF')>0):
					#Found instance
					ver = ord(
#					for i in range(0,9):
#						print ord(
#					raw_input('paused')
					if ver==4:
						if verbose>0:
							print "\t\twrote byte, pos",pos
						if verbose>0:
							print "\t\tskipped byte, was",ver
				if (len(group)<buffer):
				group =
			if count>0:
				print '*\t\tChanged', count, 'materials in', name
				print '\t\tSkipped', name, '(no change)'

print ""
print "Done!\tChanged", changed, "BSP files out of", instances, "files!"
print "\tChanged", totalCount, "materials in total!"
print ""
raw_input('Press enter to exit.')

Between these two scripts, all model and map textures can be updated to the modern release.

Known Bugs (With Solutions)Edit

====Class Head dtyftty

Black Playermodels and HatsEdit

This is due to the introduction of Jarate. To fix this, you need to either remove or "//" every instance of

"$yellow" "0"

within the playermodels' .vmt files in root/tf/materials/models/player/<class>/ (where root is the root folder of your SFM directory). You can do this using Notepad. The files that have the line are:

  • <class>_blue.vmt
  • <class>_red.vmt
  • <class>_head_blue.vmt
  • <class>_head_red.vmt

You will need to do this for all 9 classes. The same bug exists for all hats - find the hat's individual vmt, most likely located in root/tf/materials/models/player/items/<class>, and remove that same line. Or you can just put "//" without quotes behind the "Yellow" strings to make them ignored.

It should also be possible to automate the process using a python script.

White Medigun/WeaponsEdit

This is an extremely simple fix. Open root/tf/materials/models/weapons/w_medigun/w_medigun01.vmt with Notepad and delete the the two lines starting with "$selfillum. Note that this applies to the Ubersaw and Payload cart as well.

Removing countdown timer / Waiting for playerEdit

by Swampie

Simply place this in your *tf2betafolder*\tf\cfg\autoexec.cfg

If there is no autoexec.cfg in cfg folder simply create new text file and rename it to autoexec.cfg (make sure that "hide extensions for known file types" is unchecked in windows folder options and edit autoexec.cfg with notepad)


alias "setup" "sv_cheats 1; mat_specular 0; mp_usehwmmodels 1; mp_usehwmvcds 1; mp_waitingforplayers_cancel 1; ent_fire team_round_timer pause"

This will also prevent purple & black checkerboards on some windows due to missing cubemaps, load HWM models and stop both countdowns when you type "setup" into the console without " and "

Loading SFM in other gamesEdit

by Djshox

  1. First, back up your TF2 beta directory somewhere safe.
  2. Mystfit and I have only really messed with Portal, but we think you can get just about anything running. You gotta copy the game's content GCF and overwrite everything in the /tf directory EXCEPT for the bin folder. It is important that you leave it unaltered.
  3. Rename the Program Files/Team Fortress 2/tf folder to whatever game you're trying to run, like for example I had to change mine to Program Files/Team Fortress 2/portal, EP2 would obviously be Program Files/Team Fortress 2/ep2, etc.
  4. Go into the Source Binaries 2007 GCF and extract the vtex_dll.dll to your Program Files/Team Fortress 2/bin folder.
  5. Adjust the target of your shortcut to match the game. Instead of
-game tf -tools -console -applaunch 440 -window -noborder -novid
portal would be
-game portal -tools -console -applaunch 400 -window -noborder -novid

And that's it. Just a small note, you won't be able to use gestures or voice commands. Heck half the weapon fire effects won't show up, but otherwise there it is.

Film grainEdit

  1. Right click the time line.
  2. Select "Zoom in".
  3. Open a take.
  4. Right click it.
  5. Select Insert Track.
  6. Select Effects and name it.
  7. Open your track and right click it.
  8. Select Add clip and choose HSL Grain Effect
  9. Extend the effect clip to whatever length you want it to be.

Color CorrectionEdit

45 color correction .raw files that do not ship with SFM can be used from Left 4 Dead 2. The files are located at:

C:\Program Files (x86)\Steam\steamapps\common\left 4 dead 2\left4dead2\materials\correction

Method 1Edit

by HoodedSniper

  1. Record a scene
  2. Right click your scene bar and zoom in
  3. Create a new track in take1
  4. Select Effects.
  5. Now add a clip to the new track by right clicking and add clip.
  6. Choose Color Correction
  7. Go to properties.
  8. Select file and choose tfhallway.raw in the tf folder.
  9. Extend the effect clip to whatever length you want it to be.
  10. You're done.

Use the Color Correction technique below to make your own .Raw files so you can easily select color correction files for use, using this technique.

Method 2Edit

by Pikablu07

Type this into the console:

ent_create color_correction

Fire Texture Fix

by Pandamobile Fixes flaming textures erroneously showing through.

  1. Download this ->
  2. Place the downloaded file in root\tf\materials\Effects\tiledfire\ (where root is the root folder of the SFM directory.

How to load sourcemod into SFMEdit


  1. Download the latest metamod version from the metamod website
  2. Extract the addons folder to <root>/tf
  3. Open <root>/tf/gameinfo.txt and change the SearchPaths section to look like this:
			GameBin				|gameinfo_path|addons\metamod\bin
			Game				|gameinfo_path|.
			Game				tf
			Game				|all_source_engine_paths|hl2

Afterwards type 'Meta Version' into the console to confirm it's working!


The biggest thing this lets you do right now is toggle sentries seeing enemies, but it can also be used for other things like changing spy cloak time (or even friendly transparency). Note that not all sourcemod plugins will work with it - most notably, anything that spawns entities will not work yet.

-Credit to metroid48 at facepunch!

Spawning Props and other ModelsEdit

This was probably one of the most annoying thing I had to find out myself. When I first did this, I had Error models cause I didn't know exactly what to do. Spawning is not as easy as opening a menu and picking a model (like Garry's Mod). But here's a step by step guide to help you.

Finding Your ModelEdit

If you are like me, you don't want to search folders looking for it and Alt-Tab in and out of SFM. Follow this guide for finding models while in Source Filmmaker.

1. Go to Tools Tab on the top bar (There is no tools tab, but I'm crap at explaining things so go figure). 2. Choose ActBusy Script. 3. You will have to start a New file. File > New 4. Now you have a browser allowing you to search all the models in your directory. NOTE: This step only needs to be done one time every time you open SFM.

Spawning In-GameEdit

This part is fairly easy, just follow directions.

1. Find the spot where you want to spawn the prop.

a. Place your Crosshairs over that spot. It will spawn at that spot.

2. Open console and type: prop_dynamic_create <model>

a. In place of <model>, place directory and model.
b. Example of Use of command, Spawning a Scout: prop_dynamic_create player/scout.mdl
b1. How do you make player/scout.mdl a blue scout?
A. As you can see only the directory AFTER the model folder is needed.

3. The model should spawn where you were looking. If the model has more than on animation (I.E.: Player models), it will spawn in "ref" animation, T-Pose.

Getting Error Models?Edit

This can happen with because for several reasons. But first lets remove them.

Removal Type in the console while your crosshairs are over the Error: impulse 203

Reasons for Error(s)

1. Wrong directory. Examples of these can be:

a. C:\... - You don't need THAT far of a directory. Anything past the models folder is all that is needed.
b. models/... - You don't need to include models
c. No such file - That file may not exist

2. Spelling errors - Directory or Models

a. players/... - players is not a default folder, you may have meant player
b. scoot.mdl - unless you have an actual "scoot.mdl" file, it will preform as an Error if you meant "scout.mdl"

Animating Spawned ModelsEdit

Pretty simple once you get used to it. Some say you can use "ent_fire !picker setanimation" but I always have problems with this. And the following guide is a lot more organized and always works for me.

Naming the ModelsEdit

1. Roll crosshairs over the model. 2. Type, into console: ent_setname <name>

a. Replace "<name>" with anything you wish to name the model.

NOTE: This is for reference when using the next part of the guide, you will not actually see it's name, normally.

Animation :>Edit

ATTENTION: Many problems can occur with certain animations. Such as most "attack" animations. This is because they are "overlay" animations, as in they are used to play with other animations.(Currently, I do not know how to combine these animations)

See "Finding Your Model" in "Spawning Props and other Models" to find animations while in SFM. Just click on the model and there will be a list of animations under the View of the model.

1. Type, in console: ent_fire <name> setanimations <animation>

a. In place of "<animation>", put the animation's name in.

2. Example of correct use: ent_fire heavyweaponsguy setanimation Swim_Primary

a. Heavy appears as if he was underwater.

Note: Animations such as Taunts will play once.

Usefulness of botsEdit

This is still a WIP.

Building a Sentry Edit

Type these commands in console:

Bot -team (whatever) -class engineer

bot_teleport bot01 (location)

bot_command bot01 "build 3"

bot_mimic 1

Once done, shoot.