File paths TF2 reads from/writes to are defined in tf\gameinfo.txt . By editing that file you can redirect TF2's read/write paths (idea from here). This is handy for those who render demos with maxquality config/VDMs/extra mods, because it can keep those separate from your normal setup.
Works like this:
You make a new folder next to the tf folder (tf_movie for example) and put all your moviemaking stuff there. It will work just like the regular tf folder.
tf_movie
├ cfg
│ └ config.cfg < this is the file TF2 saves settings to
├ custom
│ ├ mastercomfig-ultra.vpk
│ └ HUD
│ └ ...
└ demos
└example_demo.vdmThen you can change gameinfo.txt to load this folder when you want to record, and change it back when you're done. Stuff inside tf will be untouched.
Also nice thing: if you do this with your normal setup too, you can have a clean install just be deleting that folder.
Edited gameinfo.txt. Sets tf_movie as the top most read and the only write path, disables tf/custom .
"GameInfo"
{
game "Team Fortress 2"
type multiplayer_only
nomodels 1
nohimodel 1
nocrosshair 0
hidden_maps
{
"test_speakers" 1
"test_hardware" 1
}
nodegraph 0
GameData "tf.fgd"
InstancePath "maps/instances/"
advcrosshair 1
supportsvr 1
FileSystem
{
SteamAppId 440
// - - - - - - - - - - - - - - -
// Engine search paths
// - - - - - - - - - - - - - - -
// Paths relative to hl2.exe 's directory.
// You can use a full path if you need to point elsewhere.
// |gameinfo_path| ... where gameinfo.txt (this file) is.
// |all_source_engine_paths| ... directory containing HL2 shared content.
// Writes go to the first suitable path.
// Reads scan all suitable paths. Files from paths higher up the list override files from lower entries.
// * mounts every subfolder/VPK in the currect directory
// "_english" replaced if localization is different.
// "game_lv" mounted as "game" if low violence on, else ignored.
// To see the paths in game, type "path" at the console.
// Code that handles this:
// public\filesystem_init.cpp > FileSystem_AddLoadedSearchPath, FileSystem_LoadSearchPaths
SearchPaths
{
// Custom folder, subfolders mounted only when the game is booted.
game+mod+custom_mod tf_movie/custom/*
//game+mod+custom_mod tf/custom/*
// VPKs
game_lv tf/tf2_lv.vpk
game+mod tf/tf2_textures.vpk
game+mod tf/tf2_sound_vo_english.vpk
game+mod tf/tf2_sound_misc.vpk
game+mod+vgui tf/tf2_misc.vpk
game |all_source_engine_paths|hl2/hl2_textures.vpk
game |all_source_engine_paths|hl2/hl2_sound_vo_english.vpk
game |all_source_engine_paths|hl2/hl2_sound_misc.vpk
game+vgui |all_source_engine_paths|hl2/hl2_misc.vpk
platform+vgui |all_source_engine_paths|platform/platform_misc.vpk
// Now loose files.
mod+mod_write+default_write_path tf_movie
mod tf
// Add the TF directory as a game search path. This is also where where writes
// to the "game" path go.
game+game_write tf_movie
game tf
// Where the game's binaries are
gamebin tf/bin
// Last, mount in shared HL2 loose files
game |all_source_engine_paths|hl2
platform |all_source_engine_paths|platform
// Stuff you download when connecting to a server
game+download tf_movie/download
}
}
ToolsEnvironment
{
"Engine" "Source"
"UseVPLATFORM" "1"
"PythonVersion" "2.7"
"PythonHomeDisable" "1"
}
}NOTE 1: If you have your configs in tf\cfg (why?), they will be loaded. Move them into your custom folder.
NOTE 2: SDR plugin still needs it's config.json in tf. Something similar can probably happen with other plugins too.