Difference between revisions of "Developer Console"

From Valve Developer Community
Jump to: navigation, search
 
 
(85 intermediate revisions by 42 users not shown)
Line 1: Line 1:
[[Image:Developer-console.jpg]]
+
{{otherlang2
 +
|es=Developer Console:es
 +
|jp=Developer Console:jp
 +
|pl=Developer Console:pl
 +
|ru=Developer Console:ru
 +
|zh-tw=Developer Console:zh-tw
 +
|fr=Developer Console:fr
 +
|zh-cn=Developer Console:zh-cn
 +
|de=Developer Console:de
 +
|pt-br=Developer Console:pt-br
 +
}}
  
=Introduction=
+
[[Image:Console.gif|right|Console output for Episode Two]]
The developer console 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. To enable the console, start the game, and go to '''"Options"-> "Keyboard" -> "Advanced…"''' and check '''"Enable developer console"'''. By default the console can be opened/closed with the <code>"~" </code> key.
 
  
The console is also enabled when the game executable is started with the <code>"-dev"</code> or <code>"-console"</code> parameters (developers should always start the game with <code>-dev</code>). If the Source Engine is started with an attached debugger, the console output is shown in you debug output window. Starting HL with <code>"-condebug"</code> will also log all console output in the text file <code>"console.log"</code> located in your game directory.
+
The '''console''' provides a [[Wikipedia:Command-line interface|command-line interface]] for the advanced configuration of Source games. Just about any configuration task can be completed from the console, and in fact many ''have'' to be.
  
After entering a new command into the console, it is executed by hitting the <code>ENTER</code> 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.
+
== Enabling the console ==
  
The syntax is: <code>command <parameter1> [<parameter2>]<code> for example:
+
The console starts disabled by default. To enable it, load the game and visit ''Options > Keyboard > Advanced''. There will be a pop-up that will include two options, one of them labeled "Enable Developer Console". Once enabled, it can be opened and closed by pressing the button above {{key|Tab}}, known as the "tilde." {{key|~}}
  
<pre>
+
{{note|This should work ''regardless'' of your keyboard layout. If it doesn't, add <code>-console</code> to the game's launch options to force it to open. Once open, type <code>bind your_key toggleconsole</code> to add a new binding and fix it in the future. Replace your_key with the key you wish to open the console with.}}
]bind mouse1 +attack
 
]map dm_lockdown
 
</pre>
 
  
Command names are not allowed to contain spaces, if a parameter contains space characters, it must be encapsulated in quotes:
+
== Submitting ==
  
<pre>
+
The grey box across the bottom of the console window is where commands are entered. They come in two forms: commands and variables. Commands are simply keywords, but variables ("cvars") require a value of some sort before they are accepted. When setting a cvar you might type something like this :
]bind h "say hello world"
 
]name "Gordon Freeman"
 
</pre>
 
  
The console stores the last executed commands in a command history that is accessible with <code>UPARROW</code> and <code>DOWNARROW</code> 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. <code>map, load</code> etc) support auto completion for the first parameter too.
+
mat_wireframe 1
  
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. <code>cl_showfps</code>). To see the current value of a console variable just type the name without any parameters.
+
When you've finished typing, hit {{key|Return}} or {{key|Enter}} to submit. You'll see everything you type 'echoed' to the console with a preceding <code>]</code>.
  
Most console commands and variables have prefixes in their name to show the subsystem they belong to. That isn't always the case especially for commands coming from Half-Life 1, where the old name was kept unchanged.
+
A few notes:
  
Commonly used console command prefixes are:
+
* Multiple values are separated with spaces. If a value contains a space, surround it with quote marks. (e.g. <code>say "Hello everyone on the server"</code>.)
{|
+
* The console will suggest commands and sometimes values in a pop-out box beneath the input field. Press {{key|Up}}/{{key|Down}} to navigate the list and {{key|Tab}} to accept the highlighted suggestion.
| <code>ai_</code> || single player AI
+
* Only "archived" cvars are stored after the game closes. Use [[autoexec]] if you want to set any others when a game loads.
|-
+
* Some commands are serverside, others clientside. In multiplayer you can only set clientside ones.
| <code>cc_</code> || close caption system
+
* There are many command prefixes. The most common are <code>cl</code> ("clientside") and <code>sv</code> ("serverside").
|-
 
| <code>cl_</code> || multiplayer client
 
|-
 
| <code>demo_</code> || demo playback
 
|-
 
| <code>disp_</code> || terrain displacement maps
 
|-
 
| <code>dsp_</code> || audio DSP settings
 
|-
 
| <code>ent_</code> || entity control/debug
 
|-
 
| <code>fire_</code> || firing entity events
 
|-
 
| <code>fog_</code> || fog renderer
 
|-
 
| <code>g_</code> || single player game
 
|-
 
| <code>hltv_</code> || Half-Life TV
 
|-
 
| <code>host_</code> || host system
 
|-
 
| <code>hud_</code> || client HUD
 
|-
 
| <code>joy_</code> || joystick input
 
|-
 
| <code>log_</code> || logging system
 
|-
 
| <code>m_</code> || mouse input
 
|-
 
| <code>mat_</code> || material system
 
|-
 
| <code>mp_</code> || multiplayer game (server)
 
|-
 
| <code>nav_</code> || navigation graphs
 
|-
 
| <code>net_</code> || engine networking
 
|-
 
| <code>npc_</code> || single player game NPCs
 
|-
 
| <code>phys_</code> || physics system
 
|-
 
| <code>r_</code> || video renderer
 
|-
 
| <code>rcon_</code> || remote control access
 
|-
 
| <code>sk_</code> || player skill / difficulty
 
|-
 
| <code>snd_</code> || sound system
 
|-
 
| <code>sv_</code> || server settings (engine)
 
|-
 
| <code>v_</code> || client view
 
|-
 
| <code>vgui_</code> || VGUI
 
|-
 
| <code>voice_</code> || ingame player voice
 
|-
 
| <code>vprof_</code> || code profiler
 
|-
 
| <code>wc_</code> || WorldCraft/Hammer helpers
 
|}
 
  
 +
== Useful commands ==
  
If you forgot the exact name of a command or variable, <code>find <substring></code> shows all commands containing a given substring. The command <code>help <command></code> shows help text for a given command (if available).
+
; <code>find <term></code>
 +
: The ever-useful <code>find</code> command searches console command names and descriptions for the term you provide.{{note|Use <code>cvarlist</code> in GoldSource.}}
 +
; <code>find_ent <term></code>
 +
: Similar to the find command above, but searches for entities within the map by name.
 +
; <code>help <command name></code>
 +
: Displays any help text for a command, without affecting its value.
 +
;<code>sv_cheats <[[boolean]]></code>
 +
: Most cvars that affect gameplay, especially in multiplayer games, are flagged as "cheats". Submit <code>sv_cheats 1</code> to unlock them. {{note|You will never be [[Valve Anti-Cheat|VAC]] banned for using built-in cheat commands.}}
 +
;<code>noclip</code>
 +
: Allows you to fly trough your level without player collisions. Requires <code>sv_cheats</code> to be set to 1.
 +
;<code>developer <0-2></code>
 +
:Developer mode enables more verbose console output, enables cheats and the console automatically, and makes various other useful changes. If set to <code>2</code>, the last few lines of console output will be printed at the top of the screen as well.
 +
;<code>con_log <file></code>
 +
;<code>condump</code>
 +
: Use one of these commands if you want to record what goes on in the console for later use. <code>con_log</code> writes output constantly, while <code>condump</code> records only when invoked. {{tip|The console only displays 241 lines at a time. Use <code>con_log</code> if you run up against this.}}
 +
 
 +
<!-- not convinced that this is useful == Command prefixes ==
 +
 
 +
Commands traditionally come with prefixes that go some way to categorising them. Common ones include:
 +
 
 +
=== Clientside ===
 +
 
 +
;<code>cl_</code>
 +
:Generic clientside
 +
;<code>demo_</code>
 +
:[[Demo]] recording and playback
 +
;<code>r_</code>
 +
:Generic rendering configuration
 +
;<code>mat_</code>
 +
:[[Material]] configuration
 +
;<code>hud_</code>
 +
:In-game user interface
 +
;<code>net_</code>
 +
:[[:Category:Networking|Networking]] configuration (a few are serverside)
 +
 
 +
=== Serverside ===
 +
 
 +
;sv_
 +
:Generic serverside
 +
;g_
 +
:Generic singleplayer configuration
 +
;mp_
 +
:Generic multiplayer configuration
 +
;ent_
 +
:Direct entity control
 +
;npc_
 +
:Direct NPC control
 +
;phys_
 +
:Physics adjustments
 +
;sk_
 +
:Difficulty ("skill")
 +
-->
 +
 
 +
== See also ==
 +
 
 +
* [[Developer Console Control]] - for programmers
 +
* [[Console Command List]] - partial list of console commands and variables
 +
* [[:Category:Console Commands]] - list of written articles for console commands
 +
* [[:Category:Console Variables]] - list of written articles for console variables
 +
 
 +
[[Category:Source_SDK_FAQ]]
 +
[[Category:Modding]]
 +
[[Category:Dedicated Server]]

Latest revision as of 18:41, 8 March 2019

Deutsch Español Français Polski Português-Brasileiro Русский 日本語 简体中文 简体中文
Console output for Episode Two

The console provides a command-line interface for the advanced configuration of Source games. Just about any configuration task can be completed from the console, and in fact many have to be.

Enabling the console

The console starts disabled by default. To enable it, load the game and visit Options > Keyboard > Advanced. There will be a pop-up that will include two options, one of them labeled "Enable Developer Console". Once enabled, it can be opened and closed by pressing the button above Tab , known as the "tilde." ~

Note:This should work regardless of your keyboard layout. If it doesn't, add -console to the game's launch options to force it to open. Once open, type bind your_key toggleconsole to add a new binding and fix it in the future. Replace your_key with the key you wish to open the console with.

Submitting

The grey box across the bottom of the console window is where commands are entered. They come in two forms: commands and variables. Commands are simply keywords, but variables ("cvars") require a value of some sort before they are accepted. When setting a cvar you might type something like this :

mat_wireframe 1

When you've finished typing, hit Return or Enter to submit. You'll see everything you type 'echoed' to the console with a preceding ].

A few notes:

  • Multiple values are separated with spaces. If a value contains a space, surround it with quote marks. (e.g. say "Hello everyone on the server".)
  • The console will suggest commands and sometimes values in a pop-out box beneath the input field. Press / to navigate the list and Tab to accept the highlighted suggestion.
  • Only "archived" cvars are stored after the game closes. Use autoexec if you want to set any others when a game loads.
  • Some commands are serverside, others clientside. In multiplayer you can only set clientside ones.
  • There are many command prefixes. The most common are cl ("clientside") and sv ("serverside").

Useful commands

find <term>
The ever-useful find command searches console command names and descriptions for the term you provide.
Note:Use cvarlist in GoldSource.
find_ent <term>
Similar to the find command above, but searches for entities within the map by name.
help <command name>
Displays any help text for a command, without affecting its value.
sv_cheats <boolean>
Most cvars that affect gameplay, especially in multiplayer games, are flagged as "cheats". Submit sv_cheats 1 to unlock them.
Note:You will never be VAC banned for using built-in cheat commands.
noclip
Allows you to fly trough your level without player collisions. Requires sv_cheats to be set to 1.
developer <0-2>
Developer mode enables more verbose console output, enables cheats and the console automatically, and makes various other useful changes. If set to 2, the last few lines of console output will be printed at the top of the screen as well.
con_log <file>
condump
Use one of these commands if you want to record what goes on in the console for later use. con_log writes output constantly, while condump records only when invoked.
Tip:The console only displays 241 lines at a time. Use con_log if you run up against this.


See also