Team Fortress 2
Performance Guide
Since the default options are quite garbage, I decided to make a guide.
Launch Parameters
Below I've listed some good launch parameters that might help with Performance.
-nosteamcontroller //This can help if your system has low ram
-softparticlesdefaultoff //This option helps disable scene depth blending for particles and lowers the graphics but will give a good FPS boost if you're running an old system.
-reuse //This option allows network sockets to be reused when busy. This way you can get better network performance and lower ping. Please note I haven't tested this one myself so can't confirm if it still works.
-nohlty //This disables all features relating to Half Life TV which be give a considerable boost in FPS for lowend systems, as well as less ram usage.
-noipx //This option disables the use of the IPX/SPX protocol. It gives a minor FPS boost in tf2 and can help low end system function better. Most systems however won't feel a difference.
-nod3d9ex //This option removes some options that let you alt+tab faster and inturn will give a tiny FPS boost. Please note that Using this option can sometimes cause issues with alt+tab.
-nojoy //Removes the joystick support for tf2. Gives a small fps boost and lowers ram.
-dxlevel # //This changes the version of Direct X that is used. 95 is currently the highest. If you're having trouble running that game set the value to 80 or 81. It will give a huge boost towards FPS and a RAM usage reduction.
-high //This will automatically give TF2 a high priority status on your system. This means your system will allocate more resources to the game. This can also be done manually through windows task manager.
How to make an AutoExec/class config
Step 1 - Locate your tf2 cfg folder inside of the root folder. This should be something like (Steam/steamapps/common/team fortress 2/tf/cfg)
Step 2 - At the top of File Explorer click on "view" and make sure that "File Name Extensions" is checked.
Step 3 - Time to make the configs; If you want to have class configs then make 10 new text documents in the cfg folder; If you only want autoexec.cfg only make 1 text document.
Step 4 - Naming; Now name the text document to "autoexec.cfg"; Make sure to take out the ".txt. and replace with .cfg; Windows will prompt you asking if you wish to change the extension. Select Yes.
Step 4.1 - Class Naming; If you planned to make class configs then rename the other 9 configs to each of the respective classes. (E.g. Scout.cfg; Soldier.cfg; pyro.cfg; demoman.cfg; heavyweapons.cfg; engineer.cfg; medic.cfg; sniper.cfg; spy.cfg)
AutoExec & class cfgs
I'll list out possible commands that you might want to put into a cfg and what they exactly do.
//console filter - This will filter out any errors in the dev console and can improve performance if your console happens to be getting spammed to death
con_filter_enable 1
con_filter_text_out "particle"
con_filter_text_out "material"
con_filter_text_out "muzzle"
con_filter_text_out "Cannot update control point"
con_filter_text_out "doesn't have attachment"
con_filter_text_out "Failed to load sound"
con_filter_text_out "Error"
con_filter_text_out "Null"
cl_updaterate 66 //This affects the number of ticks you send to the server per second. 66 is the max and is the most ideal for performance.
cl_cmdrate 66 //This affects the number of ticks you send to the server per second. 66 is the max and is the most ideal for performance.
cl_interp .033 //Interp is extremely complex however to sum it up. it's the forced delay on top of your client used to help smooth out tf2 and improve client prediction. Lower is better if you aren't dropping packets. The 0.33 will give you 2 extra packets behind the server which is optiomal for just about everyone.
cl_ragdoll_physics_enable 0 //This will enable or disable ragdoll physics (movement of ragdolls). This can help improve perforamnce on laggy servers.
g_ragdoll_maxcount # //Default is 8; setting this value will tell the game how many ragdolls can be out at a time before the engine starts removing them. If your laggy I suggest going to 0. Below is the way to properally remove ragdolls for even more increased performance.
// Disable shadows
mat_shadowstate 0
r_shadowmaxrendered 0
r_shadowrendertotexture 0
r_shadows 0
// Disable ragdolls
cl_ragdoll_fade_time 0
cl_ragdoll_forcefade 1
cl_ragdoll_physics_enable 0
g_ragdoll_fadespeed 0
g_ragdoll_lvfadespeed 0
ragdoll_sleepaftertime 0
// Disable gibs & blood
cl_phys_props_enable 0
cl_phys_props_max 0
props_break_max_pieces 0
r_propsmaxdist 0
violence_ablood 0
violence_agibs 0
violence_hblood 0
violence_hgibs 0
//Phong Maps, Specular Maps, Bump Maps | Disables phong, spec, and bump mapping; Gives FPS boost.
mat_phong 0
mat_specular 0
mat_bumpmap 0
mat_ysync "1" //This will sync the max FPS of the game to the HZ of your monitor at the cost of input lag. Below is an alternative.
max_fps "120" //120 is my value but feel free to change it to whatever fps you want. I don't recommend going above max hz of your monitor as limiting fps to your monitor can do the following. Increased perforamnce, Reduced heat production, reduced noise (fans and shit), reduced engergy consumtion and, prevent screen tearing (which can reduce performance).
Third-Party
There are many Third-Party config presets you can download online. Such as Chris' fps config, M0re's FPS config, and MasterComfig. I highly recommend you download one of these as these tend to do most of the work for you. Below I'll list links to some of the Third-Party config presets
Chris' FPS Config
M0re's FPS Config
MasterComfig (My recommendation)