This is a common thread for both L4D games, because they use the same engine, hence the console commands are the same too. I made this guide primarily for L4D2 however, since all maps from L4D can be played now as DLCs for L4D2.
But still, if you want to make some good old fashioned screenshots from L4D, be my guest :>
How to "Cheat"Edit
First of all, enable developer console from the options in the game (or see the Binds section).
If you want to enable all the cool console commands I talk about here in your game, you need to enable "cheating". To do this, you must be hosting the game (listenserver). That's why you can have cheats enabled only in your LAN games (in single player mode the server is your computer), or on your own dedicated server you can manage.
So create a LAN game by typing in your console (default the "`" key or "~" if you like - under the ESC):
where "c" stands for a campaign and "m" for a map from the campaign.
About the consoleEdit
The console has a auto-matching function, so when you start typing anything, it will search for commands that match what you typed. If you type a whole command (e.g. "map") and hit space, it will show you options for that command. You can browse those options by pressing down or up arrows.
Most commands also have a brief description, which is shown after typing the command without parameters. Here is also listed current and a default value, if there is one. So don't be afraid to change anything :>
] adrenaline_duration "adrenaline_duration" = "300" ( def. "15.0f" )
Now all the fun starts here. Developer console in this game allows you to do pretty much ANYTHING. Since you can google the list of all commands quite easily (even with descriptions, e.g. Console_commands - here is not everything though), I will point out here some that are particularly useful for our needs (taking awesome screenshots :P).
To get rid of everything that is in the way of a good screenshot, do as follows:
Hiding the HUDEdit
This will disable HUD and the names over characters as well, but also disables the weapon list in the fashion you won't be able to switch between weapons. So what you probably want to do is a combination of the following commands:
hidehud 64 cl_drawhud 0
where the former disables HUD and the names, the latter hides the weapon list, while it remains still active.
Hide your character modelEdit
Hides arms and a gun (means you will still able to fire :>).
Turn off the glowEdit
Disables glow around players and usable objects by reducing its size to zero.
Turn off the crosshairEdit
Game Tweaks and CheatsEdit
Other commands which come in handy while screenshotting:
Toggle noclip or flying-around-as-you-likeEdit
Toggle third person viewEdit
Alternatively you can use give health, which also picks you up when incapacitated.
where x is any special infected - hunter / boomer / smoker etc. Spawns a common infected when none specified. Zombies spawn where are you looking at the moment.
where x is time in seconds.
Instant special ammoEdit
upgrade_add incendiary_ammo upgrade_add explosive_ammo
z_female_boomer_spawn_chance x //in per cent
Just for the hell of it :>
Locate the autoexec.cfg file and open it with a (plain) text editor. Every command here will be executed right after the game starts. Now obviously not everything there needs to be executed at every start of the game (after it was binded once), but I like to keep the code there for transparency of what changes i did.
My autoexec fileEdit
con_enable "1" bind "`" "toggleconsole"
Note that these two things can be changed also from the options in the game, but I like to keep it here as well.
Setup for taking screenshotsEdit
bind "c" "hidehud 64; cl_drawhud 0; r_drawviewmodel 0; cl_glow_blur_scale 0; crosshair 0"
Restoring everything to default valuesEdit
bind "g" "hidehud 0; cl_drawhud 1; r_drawviewmodel 1; cl_glow_blur_scale 3; crosshair 1"
Note that the binds you could also change directly in the file config.cfg in the same folder, but again I like to keep everything in one place to separate the defaults and the things I changed. Also the config file is sorted alphabetically after starting the game, which makes it quite untransparent.
As you can see from the examples before, you can join several commands to be executed at once, however this is limited to the number of characters I don't know exactly (+- first as long as two commands below). But it is also handy while spawning zombies, for example:
bind "1" "z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn;z_spawn" bind "2" "z_spawn witch;z_spawn witch;z_spawn witch;z_spawn witch;z_spawn witch;z_spawn witch;z_spawn witch;z_spawn witch;z_spawn witch;z_spawn witch;z_spawn witch;z_spawn witch;z_spawn witch;z_spawn witch;z_spawn witch;z_spawn witch" bind "3" "z_spawn hunter; z_spawn hunter; z_spawn hunter" bind "4" "z_spawn boomer;z_spawn boomer;z_spawn boomer" bind "5" "z_spawn smoker; z_spawn smoker; z_spawn smoker" bind "6" "z_spawn charger; z_spawn charger; z_spawn charger" bind "7" "z_spawn jockey; z_spawn jockey; z_spawn jockey" bind "8" "z_spawn spitter;z_spawn spitter;z_spawn spitter" bind "9" "z_spawn tank" bind "0" "z_spawn tank; z_spawn tank; z_spawn tank; z_spawn tank; z_spawn tank; z_spawn tank; z_spawn tank; z_spawn tank; z_spawn tank"
This file is also located in cfg folder, and its contents are executed every time the map changes. Here is place for the commands that are map-specific, i.e. they are reset to default values with a new map.
My listenserver fileEdit
z_difficulty Hard z_female_boomer_spawn_chance 50
Advices on ScreenshottingEdit
Except the obvious that for the best looking screens you need to have the graphical details on max setting and resolution as high as possible (downsampling), I would like to point out that you want to have the brightness setting on the darkest level (to the right) at all times, for the better feel of the game.
Film grain settingEdit
Also, and I cannot emphasize this enough, you want to have the film grains setting to be set at the most on the default value, in the dark maps maybe even lower. This is very important, because while in the game the higher levels of grain may look cool, the steady screenshots will look very noisy.
I never managed to make get the fov commands to work, but the default fov is supposedly 90, so it should be high enough. A good trick how to make your fov a lot lesser though, is to take a sniper rifle and zoom in. With the HUD disabled, you will achieve the true telephoto lens effect. Unfortunately, you can't zoom in while noclip is enabled. But you can always fly to some roof, turn off noclip and zoom there.
How to achieve a HDR effect in you screens: ' 'use an adrenaline shot:
adrenaline_duration 600; give adrenaline; give sniper_military
and zoom in to get rid of the bloody borders of the screen. (or possible use another "hidehud" value, or "hide viewmodel")
And one motivational adviceEdit
Make use of the z_spawn command, don't wait for the opportunity for a good screenshot to come, rather create one (or many) yourself!
Advices on better gaming experienceEdit
While playing casually with friends over LAN and not taking screens, I like to have my autoexec file edited as follows.
Since the default crosshair is just so big and ugly, I configured mine like this:
cl_crosshair_red 0 cl_crosshair_green 0 cl_crosshair_blue 0 cl_crosshair_alpha 200 cl_crosshair_dynamic 0 cl_crosshair_thickness 1
Note that after this set of commands the crosshair is sometimes literally invisible, so you may want to consider that.
In general, guns in L4D2 are too much "in your face", particularly a Desert Eagle. To fix this, here is the command which sets the distance of a gun from the camera:
I found out that the most natural-feeling setting for me is 65 on a 1920x1200 resolution.
Health bars can still be accessed by hitting TAB, disables player names, reduces glow:
bind "e" "hidehud 64; cl_drawhud 0; r_drawviewmodel 1; cl_glow_blur_scale 1; crosshair 1"
And again restoring everything to default values:
bind "g" "hidehud 0; cl_drawhud 1; r_drawviewmodel 1; cl_glow_blur_scale 3; crosshair 1
And a little bit of cheatingEdit
bind "p" "give sniper_military; give katana; give molotov; give first_aid_kit; give adrenaline" bind "t" "give health" bind "n" "noclip"
I hope this guide helps anyone who seeks knowledge of taking screenshots "properly" in Left 4 Dead games :) It might be a little too extensive, but I wanted everyone to understand how you can customize your game to be screenshot-ready from scratch. Here is summed up pretty much everything useful that my friends and I found over years of playing L4D. So again, hope it helps, and screenshot away!