Left 4 Dead 2

Left 4 Dead 2

Not enough ratings
Performance / FPS Increase Guide (In-game, Launch Options, Autoexec, Mods)
By Torch / Eco
Best settings for gaining an advantage and maximizing FPS.
Can also be used in Left 4 Dead 1.
   
Award
Favorite
Favorited
Unfavorite
In-game video settings


Copy everything:

Film grain amount = 0 (The game's "movie" filter, i dislike it)

AA = off (BIG PERFORMANCE IMPACT)

Filtering Mode = Bilinear, Trilinear or x16 (small performance impact)

Vsync = OFF (caps your framerate to 60) (adds latency)

The reason for shader detail being medium is the water being transparent which could give you an advantage here's what it looks like in death toll chapter 2
(BIG PERFORMANCE IMPACT ABOVE MEDIUM)

Shader: LOW

Shader: MEDIUM

Effects: MEDIUM or above so you can see tanks rocks from afar. (medium performance impact)

Texture: LOW (small performance impact)
Launch Options
Go on Library > Right-click Left 4 Dead 2 > Properties

-heapsize 750000 -high -novid -nojoy -nosteamcontroller +mat_motion_blur_percent_of_screen_max 0

-console - enables dev console
-high - high priority in windows
-novid - no intro
-nojoy - no controller checking
-nosteamcontroller - no steam controller checking
+mat_motion_blur_percent_of_screen_max - Motion Blur
-noborder - borderless windowed mode
-windowed / -fullscreen
-heapsize 750000 - less lag and crashes with mods that reach the game's 256 mb mem limit, increases it to 512mb
autoexec.cfg (located in left 4 dead 2/left4dead2/cfg)
// Torch's L4D2 CFG. use // to disable a setting or set to default value.
// Launch: -console -heapsize 750000 -high -novid -nojoy -nosteamcontroller +mat_motion_blur_percent_of_screen_max 0 +motion_blur_enabled 0

// Personal
/ FPS MAX
// fps_max 101;fps_max_override 101
/ VIEWMODEL
//cl_viewmodelfovsurvivor 58;viewmodel_fov_override 58
/ Sensitivity
//sensitivity 1.15
zoom_sensitivity_ratio 1;m_customaccel 0;m_filter 0;m_mousespeed 0;m_mouseaccel1 0;m_mouseaccel2 0
/ Crosshair
//cl_colorblind 1;cl_observercrosshair 1;cl_crosshair_thickness 1;cl_crosshair_dynamic 1;cl_crosshair_alpha 255;cl_crosshair_blue 255;cl_crosshair_green 255;cl_crosshair_red 255

// Net settings
cl_lagcompensation 1;cl_predict 1
net_splitrate 1 // Number of fragments for a splitpacket that can be sent per frame
cl_updaterate 100;cl_cmdrate 100 // default 30. Values: 30, 60, 100
cl_interp_ratio 0;cl_interp 0 // default 0.1; calculed by cl_interp_ratio / cl_updaterate, lerp settings
net_maxroutable 1260;net_maxfragments 1260 // Use max recommended packet size by Steam to avoid split packets more to save CPU time and packet overhead
rate 786432;net_splitpacket_maxrate 786432 //Rate used for server communication, delays packets based on this value and packet size. 131072 = 1 mbps
cl_timeout 60;cl_resend 1.5 // default 30 and 6; How many seconds to time out and to wait before retrying to connect to a server
cl_allowdownload 1;cl_allowupload 1;cl_downloadfilter all // custom content downloads

// Audio / Sound / Comms
volume 0.5;snd_musicvolume 0.5
snd_mixahead 0.05;snd_noextraupdate 1;snd_async_spew_blocking 0;snd_disable_mixer_duck 0;snd_pitchquality 1;dsp_slow_cpu 0;dsp_enhance_stereo 1
voice_enable 1;voice_modenable 1;voice_forcemicrecord 1;voice_scale 1 // Chat

// Loading
cl_forcepreload 1;sv_forcepreload 1 // default 0; Pre-load levels entirely into RAM (only use if you have 2GB of RAM or more) reduces in-game stuttering, but makes you wait longer to join servers.
sv_consistency 0;sv_pure_kick_clients 0 // for mods

// graphic settings
mat_grain_scale_override 0.0 // film / grain filter
cl_ragdoll_limit 0 // ragdoll limit
r_eyemove 1

// Optimizations that aren't noticeable to the player.
r_3dskyonly 0
mat_viewportscale 1 // Adjust render resolution (adjust as a % from 1 to .1 in increments of .1 or .05).
// useful for if your GPU struggles to render a lot of pixels.
//mat_viewportupscale 1 // Upscale when using mat_viewportscale
engine_no_focus_sleep 0 // Keep the game active while in the background
mat_queue_mode -1 // Make sure ideal threading mode is on

// Keybinds & Null cancelling movement
bind e "impulse 100";bind f "+use"
bind v "+voicerecord";bind p go_away_from_keyboard
bind f3 "record 1;stop;sm_toggleready";bind f4 "disconnect"
bind b "sm_spectate";bind h "sm_tank;sm_health"
bind n "jointeam 2";bind m "jointeam 3"
bind t "say";bind y "say_team"
bind u "impulse 201"
bind i "show_menu Menu"

bind w +mfwd
bind s +mback
bind a +mleft
bind d +mright
alias +mfwd "-back;+forward;alias checkfwd +forward;"
alias +mback "-forward;+back;alias checkback +back;"
alias +mleft "-moveright;+moveleft;alias checkleft +moveleft;"
alias +mright "-moveleft;+moveright;alias checkright +moveright;"
alias -mfwd "-forward;checkback;alias checkfwd none;"
alias -mback "-back;checkfwd;alias checkback none;"
alias -mleft "-moveleft;checkright;alias checkleft none;"
alias -mright "-moveright;checkleft;alias checkright none;"
alias checkfwd none
alias checkback none
alias checkleft none
alias checkright none
alias none ""

Bind "F8" "thirdpersonshoulder"
c_thirdpersonshoulderoffset "0";c_thirdpersonshoulderaimdist "720";c_thirdpersonshoulderdist "40";c_thirdpersonshoulderheight "5";cam_ideallag "0"

// Survivor & Infected Glows
cl_glow_survivor_r "0" // Teammate glows
cl_glow_survivor_g "0.5"
cl_glow_survivor_b "1"
cl_glow_item_r "1" // close item glows (White)
cl_glow_item_g "1"
cl_glow_item_b "1"
cl_glow_item_far_r "0" // far item glows
cl_glow_item_far_g "0.5"
cl_glow_item_far_b "1"
cl_glow_thirdstrike_item_r "1" // B&W Item Glow (Red)
cl_glow_thirdstrike_item_g "0"
cl_glow_thirdstrike_item_b "0"
cl_glow_survivor_vomit_r "1" // been puked on Glow (Purple/Pink)
cl_glow_survivor_vomit_g "0"
cl_glow_survivor_vomit_b "1"
cl_glow_survivor_hurt_r "1" // Incapacitated / Immobilized by Infected
cl_glow_survivor_hurt_g "0.2"
cl_glow_survivor_hurt_b "0"
cl_glow_ability_r "1" // Infected Attacking (Red)
cl_glow_ability_g "0"
cl_glow_ability_b "0"

cl_glow_infected_r "0" // Team, spawned
cl_glow_infected_g "0.5"
cl_glow_infected_b "1"
cl_glow_ghost_infected_r "1" // Team, not spawned
cl_glow_ghost_infected_g "1"
cl_glow_ghost_infected_b "1"
cl_glow_infected_vomit_r "1" // been puked on Glow (Purple/Pink), def 0.79, 0.07 0.72
cl_glow_infected_vomit_g "0"
cl_glow_infected_vomit_b "1"
cl_glow_survivor_health_high_r "0" // healthy survivors (green)
cl_glow_survivor_health_high_g "1"
cl_glow_survivor_health_high_b "0"
cl_glow_survivor_health_med_r "1" // mid-health 25-40 survivor (yellow)
cl_glow_survivor_health_med_g "1"
cl_glow_survivor_health_med_b "0"
cl_glow_survivor_health_low_r "1" // low health 2-25 (red)
cl_glow_survivor_health_low_g "0.1"
cl_glow_survivor_health_low_b "0"
cl_witch_light_color_r "1" // witch
cl_witch_light_color_g "0"
cl_witch_light_color_b "0"

// Fim
echo TORCH CONFIG LOADED!
BONUS / MODS
After all these tweaks does the game still run like ♥♥♥♥?

Try a few of the performance enhancing mods on the workshop, check out this collection by me

https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=3501393271
9 Comments
Torch / Eco  [author] 22 Sep @ 6:04am 
Updated a few of the commands cause I forgot to update the .cfg part
Klee 21 Sep @ 8:59pm 
Should I be ignoring when the console says "Unknown command "x"" in the console?
Torch / Eco  [author] 17 Jul @ 5:25pm 
Guide has been updated, everyone please check it, Vulkan isn't that good of a launch option on most pcs yet.
Táiga Rivers 21 Jun @ 10:00am 
I am certain I saw somewhere saying that 4096 is the limit… Well, whatever. 2048 it is, then

Yes, I did not take into account the integrated GPUs that do not have dedicated VRAM and instead use the main RAM, which is much slower than VRAM. In such case, lowering the texture resolution might actually be the right thing to do, but playing on integrated GPUs (old ones, at least, excluding the Vega series) is pure pain anyway

Cannot say if DDR4 RAM or newer is fast enough to be used as VRAM for old games when combined with (relatively) modern integrated GPUs, though — never tried it
Torch / Eco  [author] 21 Jun @ 9:49am 
In Left 4 Dead 2, num_edicts refers to the maximum number of entities (like players, zombies, items, etc.) that can exist simultaneously in a game. The default limit is 2048.

changing it to 4096 might lag XD, i think you meant a value below the default right?
Torch / Eco  [author] 21 Jun @ 9:47am 
tbh I made this for the average intel hd graphics user (ik nearly no one has it but I used to be one of them till like 2018) currently i got a Ryzen 3 3200g and im using the vega 8 igpu and these settings do help, mainly the shader ones, I keep everything else on High and it already helps a lot
Táiga Rivers 21 Jun @ 1:19am 
num_edicts 2048 or 4096 might also be a good addition to the other launch options

I would not recommend capping the framerate because this also increases input latency: the lower the framerate, the higher the input latency
Táiga Rivers 21 Jun @ 1:19am 
VSync affects not performance itself but rather the input latency, which is a big "no" when you want to use something other than shotguns. It is more difficult to aim for heads when you have wonky controls because of VSync

Shader detail option also disables blur and normals and might help in certain demanding custom campaigns that are highly prone to crashing when this option is set to "High" or "Very high", with or without any add-ons

There is no point in lowering the texture resolution when your graphics card has enough VRAM, which this game does not need a lot. I think about 1 Gb is more than enough for 1920×1080p. The weakest graphics card I have for testing has 2 Gb, so I cannot say for sure, but I can say for sure that 2 Gb of VRAM are too much for 1920×1080p regardless of graphics settings. The type of VRAM also matters: GDDR4 and GDDR5 are very common in old graphics cards and simply more than enough for this game's textures
naadjuuu 18 Jun @ 5:48pm 
Helped increase my fps! Nice guide :D