Developer console
Overview
The developer console allows you to enter commands to the Source engine while testing a map or mod.
Typing help
will provide some instructions.
Type find <substring>
to look for console commands or console variables related to a specific topic (i.e. typing find npc
would show a listing of NPC Debugging Commands such as npc_go and npc_create.
Introduction
The developer console is an essential tool for game developers for debugging their code and also for players to customize their settings. The console is a text-based input/output interface to execute commands or change global settings during runtime.
Enabling the Console
To enable the console for use:
- Run the game/mod.
- In the main menu click on Options.
- Click the Keyboard tab.
- Click the Advanced... button.
- Check the box next to Enable developer console (~).
- Click Apply.
Henceforth, the console can be opened or closed with the key located top left below <Escape>, typically labelled ~ ("tilde") on a US keyboard.

bind "<key-you-want-to-use>" "toggleconsole"
bind "\" "toggleconsole"
The console is also enabled when the game executable is started with the -dev
or -console
parameters. (Developers should always start the game with -dev
.)
If the Source Engine is started with an attached debugger, the console output is shown in your debug output window.
Starting HL with -condebug
will also log all console output in the text file console.log
located in your game directory.
Entering Commands
Commands are entered into the console by typing them in at the box at the bottom. After entering a new command, it is executed by hitting the <Return> key or pressing the Submit button.
A command has a unique name and an optional list of parameters where each parameter is separated by a <Space> character.

]
is a prompt, and is not typed.The syntax is: command <parameter1> [<parameter2>]
. For example:
]bind mouse1 +attack ]map dm_lockdown
If a command parameter contains <Space> characters, it must be encapsulated in quotes:
]bind h "say hello world" ]name "Gordon Freeman"
The console stores the last executed commands in a command history that is accessible with <UpArrow> (goes to the command you just/last entered) and <DownArrow> (goes to the very first command that you entered into the console) keys. You can auto complete a command by pressing <Tab> and choose from a list of available commands if the console found multiple matches. Some commands (e.g. map
, load
etc) support auto completion for the first parameter too.
Commands and Variables
The console differs between console commands and console variables.
Console commands usually pass the parameters to some code function and execute it, but they don't remember these parameters.
Console variables store the last parameters like a global setting. Console variables can only have one parameter, which can be a number or string; it depends on the game code how these values are interpreted. A lot of console variables act like triggers, 0 usually means off and 1 means on (e.g. cl_showfps
). To see the current value of a console variable just type the name without any parameters.
Most console commands and variables have prefixes in their name to show the subsystem they belong to, but this isn't always the case, especially for commands coming from Half-Life 1, where the old name was kept unchanged.
Commonly used console command prefixes are:
ai_ |
single player AI |
bot_ |
bot system |
cc_ |
close caption system |
cl_ |
multiplayer client |
demo_ |
demo playback |
disp_ |
terrain displacement maps |
dsp_ |
audio DSP settings |
ent_ |
entity control/debug |
fire_ |
firing entity events |
fog_ |
fog renderer |
g_ |
single player game |
hltv_ |
Half-Life TV |
host_ |
host system |
hud_ |
client HUD |
joy_ |
joystick input |
log_ |
logging system |
m_ |
mouse input |
mat_ |
material system |
mp_ |
multiplayer game (server) |
nav_ |
navigation graphs |
net_ |
engine networking |
npc_ |
single player game NPCs |
phys_ |
physics system |
r_ |
video renderer |
rcon_ |
remote control access |
sk_ |
player skill / difficulty |
snd_ |
sound system |
sv_ |
server settings (engine) |
v_ |
client view |
vgui_ |
VGUI |
voice_ |
ingame player voice |
vprof_ |
code profiler |
wc_ |
WorldCraft/Hammer helpers |
If you forgot the exact name of a command or variable, find <substring>
shows all commands containing a given substring.
The command help <command>
shows help text for a given command (if available).
See Also
- Console Command List - A complete list of console commands and variables.
- Category:Console Commands - A list of articles on console commands.
- Category:Console Variables - A list of articles on console variables.
Template:Otherlang:en Template:Otherlang:en:ru, Template:Otherlang:en:jp, Template:Otherlang:en:pl, Template:Otherlang:en:es, Template:Otherlang:en:zh-tw