Developer console

From Valve Developer Community
Revision as of 07:24, 13 January 2007 by SideWinderXX (talk | contribs)
Jump to navigation Jump to search

Overview

Developer-console.jpg

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:

  1. Run the game/mod.
  2. In the main menu click on Options.
  3. Click the Keyboard tab.
  4. Click the Advanced... button.
  5. Check the box next to Enable developer console (~).
  6. 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.

Note.pngNote:The ~ key may not work on some keyboards, in which case you must also manually set another key by opening the cfg/config.cfg file of the game/mod and changing this line:

bind "<key-you-want-to-use>" "toggleconsole"

German keyboard layout: To use the key left to 1 which reads ^, do 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.

Note.pngNote:The ] 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> and <DownArrow> 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

Template:Otherlang:en Template:Otherlang:en:ru, Template:Otherlang:en:jp, Template:Otherlang:en:pl, Template:Otherlang:en:es, Template:Otherlang:en:zh-tw