See also: Manual/Console Commands
The "Command console" is a powerful command-line user interface that allows you to set many options, including those that are not visible in the menus. The console from Quake 3 has been improved by ioquake3, with a better "autocomplete" feature.
To "pull down" (show) the console press Shift+Esc. You might find other places that says press: ~, ', `, ½, ^, §, \ or æ but Shift+Esc works on most keyboards. Note: it has been reported that "Microsoft eHome" keyboard drivers could cause problems in pulling down the console.
Model change: /seta model "sergei/red"
Model head change: /seta headmodel "skelebot/red"
Key function: /bind <key> <here what you want to do>
(e.g. /bind g say "Hello" (when you press 'g', you'll send a message "Hello"))
What you can do?
Say sg: /say "Hello"
You can use up and down arrows to see previous used commands. You can use PageUp/PageDown keys to scroll view (to see previous messages). If you scrolled back the console, it will not scoll automatically when new messages are added (not even if you close and open it again): you have to scroll it to the bottom (to the last line), and it will return to act normally (showing the last messages as they are added).
You can use the "tab" key to autocomplete some commands. For example, if you write /map and press tab, you will see there is also a command called map_restart; if you write \map_r and press tab, the command will be completed to \map_restart; if you write \map a and press tab, you will see the list of all the maps where the name begins with "a".
Writing a variable name without setting its value will return the present value, and often also its "default" value. Warning: you should check default values after starting a match... if you check them from main menu, before having entered a match, previous value stored in your config file may be erroneusly indicated as "default" one, and some variables could even be referred as not existent.
Note: make the command begin with / or \, or it will be considered a simple text message, like with the command "/say" (having no effect, but shown to other players). When using the specific dedicated server executable (oa_ded), instead, you do not need the slash before the command.
Command names usually are case-insensitive (e.g.: both \map_restart and \MAP_RESTART will work), but some of them may be case sensitive.
You can press Insert (Ins) keyboard key to switch between text insert and overtype modes.
You can paste text from your Operating System clipboard into OA command console (e.g. Shift+Ins).
You can scroll console log with PageUp/PageDown keys, but sometimes it is useful to check its output in a text editor.
- You can export current console log to a text file, simply using the command \condump <filename>. For example, if you type \condump test.txt, a text file called test.txt will be created in your homepath\baseoa (or homepath\current_mod) folder, containing all the messages you currently have in your console.
- It is also possible to use /logfile <number> to have the game start creating a text file containing all console output that will follow: 0=no log; 1=buffered; 2=continuous. "Buffered" means that the file on the disk is actually updated after a specific amount of data accumulated in memory: this allows to make less disk access, but may lose most recent lines of log in case of program crash. Default value is 0. May be useful for debugging server crashes. It creates a log file named qconsole.log in your homepath\<mod in use when you enabled it> folder.
- In some cases, if the game "crashes" forcedly shutting down itself, the window informing you of the error may ask you "Copy console log to clipboard?": if you select "yes", console log will be copied to your operating system clipboard, and you will be able to "paste" it into a text file, using a text editor program.
- Also, SDL library may automatically create a file named stderr.txt (along with a file named stdout.txt), not related to your "logfile" value (stderr.txt is created by the SDL library, not by OpenArena engine). It gets standard text output generated by the game, typically the command console log, so it may be used as an alternate way to log console. Creation or not of such file depends from the options SDL library has been compiled with. It is placed to the "current folder" (usually, where OA executable is -your "basepath" folder-, but may differ); of course, it needs the user account which runs OpenArena has got write permission there. Usually, this file is continuously updated and is overwritten every time you launch OpenArena.
To set a variable, you can usually simply write \<variable> <value> in console. It works if the variable (also known as "cvar") was first declared in C source code, and usually it is the case, but sometimes you may need to use particular commands to set a variable:
- /set - Sets a cvar from console, even if it wasn't declared in C code
- /setu - As set, but the variable is flagged as "userinfo". May be used in some special cases like with GTV to specify settings that GTV has to set as a client when connecting to a server (such as /rate).
- /sets - As set, but the variable is flagged as "serverinfo" (Quakestat and similar tools will show it in the serverinfo. This means that you can decide to allow players to know about some of your server options -for example some special game options-, from dpmaster web page, Qtracker and similar.). It may be very useful, but the only problem is that there is a limit on the data that can be passed through this method: if you see an "Info string length exceeded" message in your server console, this means that you have set too many variables as "sets", so you to fix that you either have to set less variables as "sets", or you should shorten them (the data contained inside the strings). After you see it, if you make your init string even longer, adding more or longer "sets" variables, your server may even become inaccessible for players.
- /seta - As set, but the variable is flagged as "archived" (will be saved using /writeconfig).
After you "created" a variable with a "set" or similar command, then you can update it also without using the "set" command. A new variable created with "set" command probably will not be stored after you exit the game, while it would be stored permanently if you created it using the "seta" command.
Some variables may not be stored into the q3config.cfg file, even if you used the "seta" command... remember that you can store and automatically load additional variables and commands creating a text configuration file named autoexec.cfg in your baseoa folder. Everything in the "autoexec.cfg" file will be executed everytime you launch OpenArena. It is possible to delete a variable from your .cfg file, simply editing it with an external text editor program.
It is possible to use the \unset <variable> command to delete (that is a different thing than setting to empty "") a user created variable (does not work with pre-defined variables, e.g. "name").
It is possible to use the \reset <variable> command to set a variable to its default value again. Works with variables that have a default value defined (note: if you create a user-defined variable, it does not have a "default" value -if you immediately try "reset <variable>", it has no effect-, but if you save it using "seta <variable> <value>", then close and open OpenArena again, then the previously used value of that variable will be considered as its default: if you then try "reset <variable>", it will restore that value.).
Note: sometimes it is possible that you may find some variables, specific from some mods you have used, also stoered in the q3config.cfg file in your baseoa folder (while they are usually stored in the configuration file in the mod's folder). Don't be surprised if they have not effect under baseoa.
You can set variables also form OS' command line, when launching OpenArena: for example, under Microsoft Windows, you can use its "command prompt", batch file or link, to start a mod directly (openarena.exe +set fs_game missionpack will launch The Mission Pack mod).
You may notice some variables may result as cheat-protected or read-only when you try to modify them, or you may not be able to edit them for other reasons. In some of these cases, you may be able to change them only after loading a map in development (cheats enabled) mode (/devmap <mapname>), or by using the OS command-line (while launching OpenArena); there are even some that can be changed while playing a demo... and some simply show infos so there is no reason to try to change them. Some variables may be locked by videoflags locks. There may even be a few "hard-coded" locks in the engine that would show a variable as freely editable, while instead the value shown is ignored and a predefined one is used instead (it is the case of cl_yawspeed on official 0.8.5 and 0.8.8 binaries).
It exists the \cvar_restart command that flushes all of your variables (including the pre-defined ones, bringing them to their default values). WARNING: this one is a "dangerous" command, similar to deleting your q3config.cfg file. Don't try it unless you backed up your configuration: it does not ask any confirmation, and it will delete your statistics, player settings, unlocked single player deathmatch tiers... Please notice that it does not affect all of your mods, since each mod has got its own q3config.cfg file.
You can set a password to remotely connect and change your server options when you are not physically working on the server machine.
To do this, first set a "rcon password" on your server. Just use \rconpassword <"your_password"> command (obviously, select the password you wish). If you don't set a password, you will not be able to remote control your server.
Then open a standard OpenArena client and simply connect to your server as any player. Use \rconpassword <"your_password"> to enter the same password you set on the server before. Then use \rcon <command> <parameters> to execute a command on the server.
For example, \rcon fraglimit shows server's current "fraglimit" value, and \rcon fraglimit 20 sets that value to 20.
You don't even need to connect to the server as a client to be able to send remote commands to it. This is very useful if your server is full (all player slots busy) and you can't connect to it. In this case, just start an OpenArena client and, without entering a server, use \rconaddress <your_server_address> (or \rconaddress <address>:<port>) to set the IP of your server and \rconpassword <your_password> to set the same password as your server, then use \rcon <command> <parameters> to send commands to your server.
Warning: do not use "\sets" command to set rconpassword, or everyone will see it in the \serverstatus!
Tip: some additional tools may help you controlling your server.
- /map <mapname> - loads the specified map.
- /devmap <mapname> - loads the specified map with cheats enabled.
- /spmap <mapname> - loads the specified map in "single player" mode (g_gametype 2), already with bots inside.
- /spdevmap <mapname> - loads the specified map in "single player" mode (g_gametype 2), already with bots inside, and with cheats enabled.
- /cg_fov <number> - (default is 90) This changes the field of view: if you set it to 120 or so, you will have a wider visual angle (but the world will seem a bit deformed)
- /map_restart - restarts the current game. You will have to do this to apply some changes.
- /cg_drawfps - if enabled (1), shows current frames-per-second.
- /cg_drawspeed - if enabled (1), shows your current horizontal speed. It was not in the original Q3A, however some of its mods implemented similar commands (example: Alternate Fire used /cg_speedometer 1 for that).
- /sv_pure <0 or 1> - If enabled, the server does checks to allow clients to use only the .pk3 files (those containing, for example, game logic, models and textures) that are present also on the server, ignoring the others. This ensures that the client uses files that are compatible with the server preventing a lot of compatibility problems. If disabled the clients are responsible for only having compatible files. Some consider this an anti cheat although technically that is a side effect. Disabling, instead, allows clients to use custom pk3s, for example their own models (in this case, that non-standard model will be seen only by other players with the same addon pack: other clients will see a standard model instead). "Pure server" can be disabled also during testing, because disabling it allows to load data like maps and models also if not packaged into pk3 files. OpenArena uses sv_pure to unload and reload patch files as needed; it is sv_pure that allows a 0.8.5 client to connect to a 0.8.1 server: without it, the two versions would not be compatible. A general rule is that sv_pure should always be 1. Do not report bugs that are caused by turning off sv_pure.
- /shuffle - Restarts the map and automatically rearranges teams (how human players are divided into the two teams). It can be used via callvote during team game modes.
- /exec <filename.ext> - Executes a configuration file. You can create multiple plain text files (which may have even just a bunch of commands and variables in them) in your baseoa (or current mod) folder and "exec" them in order to quickly apply the commands they contain, quickly modifying the configuration of your server. A few examples: /exec rotation_script_1.cfg; /exec rotation_script_2.cfg; /exec enable_sunday_config.cfg) - See aso Configuration examples.
- /cvarlist - Lists all your variables, with their values and attributes.
- /toggleconsole - If you type \toggleconsole when the console is open, it will close it (like it would do using the apposite key). You can use \bind <key> toggleconsole to set an additional key to open the console (then type "/toggleconsole" to close it), but, unlike the standard key for that, this one will not work when the ESC menu is open or you are in some other menu instead of playing.
- /systeminfo - Returns some info about your server settings.
- /team - Makes you join the game or spectate (like the "Start" menu under the ESC menu). \team p or \team player enters the game. \team r or \team red enters the game in the red team. \team b or \team blue enters the game in the blue team. \team f or \team free enters the game in the smallest/losing team. \team s or \team spectator switches to spectator mode.
- /follow <name or position> - When you are in spectator mode, makes you follow a particular player, specifying a player name or a position in the table. Examples: \follow tony will make you follow a player named "Tony", and \follow 2 will make you follow the player that is currently in the second position on the scoreboard (you will continue follow him even if his position will change). Tip: you can show the scoreboard by holding the TAB key.
- /g_synchronousclients <0 or 1> - This have to be usually (almost always) set to 0 (its default value), and set to 1 only when you are recording a demo. Enabling it allows to record better quality demos, but it brings bad effects to your game experience (like lag), and thus you have to disable it when not recording.
- /condump <filename>.<ext> - Exports all the current console log (all the text lines you see when you pull down the console) to a plain text file. Can be useful for debugging purposes (you can send the console log to someone that may help you). E.g.: /condump mylog.txt creates a file named "mylog.txt". You can use any file extension you wish (e.g. /condump myname.log), or even no extension at all (e.g. /condump test), however .txt and .log are commonly used. Search for the resulting file in your homepath\current mod folder.
- /developer <0 or 1> - If set to 1, shows more debugging info to the console (a.k.a. "verbose" console output). Default value is 0.
- /vid_restart - Restarts video system. Can be needed to apply some changes in graphic options.
- /snd_restart - Restarts audio system. Can be useful to make sound come back if it disappeared when starting a mod (see also (here).
- /in_restart - Restarts input drivers. Can be useful if you experience controls stop working (see also here and here).
- /game_restart <modfolder> - This command, introduced by ioquake3, allows to load a mod from console. E.g. /game_restart missionpack loads the Missionpack mod. If entered without parameters, makes the game return to baseoa.
- /modellist - Lists all the 3D models the game has currently loaded, or has tried to load, to be shown in the current map.
- /shaderlist - Lists all the shaders the game has currently loaded, or has tried to load, to be shown in the current map.
- /imagelist - Lists all the textures the game has currently loaded, or has tried to load, to be shown in the current map.
- /s_list - Lists all the sounds the game has currently loaded, or has tried to load, to be used in the current map. Sounds with 0 size are probably missing files. It requires you to disable OpenAL enviroment (/s_useopenal 0, then /snd_restart) before you run it (you can activate OpenAL again later).
Key binding means to associate a certain command/action to a specific keyboard or mouse button. Setup --> Controls menu (divided into look, move, shoot, misc sections) allows to configure agame ctions (up to two keys for a certain command), but you can use the console to create more bindings, to execute commands and set variables.
- /bind <key> <command> - Assign a specific command to a specific key. For example, /bind i screenshotjpeg allows to press "i" key to take a screenshot. Omitting <command> parameter, shows current command binded to the key specified.
- /bindlist - Shows your key bindings.
- /unbind <key> - Removes a key binding.
- /toggle <variable> [value1, value2, ...] - "Switches" the values of a cvar, useful together with "bind" command. An example, switching between boolean (0 or 1) values: to have the weapon bar always shown, you usually have to write \cg_alwaysweponbar 1, and \cg_alwaysweaponbar 0 to revert to the standard behavior: if you want to bind it to specific keys, you would have to use \bind f9 cg_alwaysweaponbar 1 and \bind f10 cg_alwaysweaponbar 0: F9 would enable the option and F10 would disable it; the "toggle" command would allow to use a single key instead. Write \toggle cg_alwaysweaponbar and the variable will be set to 1 or to 0 each time you enter the command: thus, if you write \bind f11 toggle cg_thirdperson, then you will have the option enabled or disabled each time you will press the F11 button. It works also with non-boolean values: if you type /bind f12 toggle cg_weaponbarstyle 0, 1, 2, 3, 4, 5, 6, 7, 8 then you will change the look of the weapon bar each time you will press the F12 key.
Special game optionsEdit
Console look optionsEdit
- cl_consoleHeight -> value between 0.1 and 1.0 (1.0 for full screen console; 0.5 as default)
- cl_consoleType (default = 0; 2 = customizable semi-transparent style)
- With ConsoleType 2 (for the following settings, values between 0.0 and 1.0):
- cl_consoleColorAlpha (transparency; default = 0.8)
- cl_consoleColorRed (default = 1)
- cl_consoleColorGreen (default = 0)
- cl_consoleColorBlue (default = 0)
- Manual/Console Commands
- Manual/Graphic options
- Tweak#Tweaking online gaming parameters
- Quake 3 Arena Console Commands on joz3d.net (red colored text indicates commands that have been removed from last Quake 3 Arena PointReleases). A long and useful list of Q3 commands; just remember that some of them may have been disabled or slightly modified in ioquake3 or OpenArena.
- ioquake3 help, with commands and variables added to the engine.
- Console reference page on ioquake3 wiki.
- Quake 3 Arena tweak guide on techspot.com.
- Commander Keen's Quake 3 Console page: Commands - Variables - Tweaking
- Quake III - Commands - Another page with brief infos about some Q3 commands.
- OpenArena 0.8.1 settings: from this post you can find this 5-pages PDF file (you have to be registered on the forum to get this one), while from this public site you can download a 1-page (small fonts) PDF file, an XLSX file, or an XML file. These lists contain a lot of variables, briefly explained.
- Quake 3 Tweak Arena Glossary of command lines (mainly performance-related): on planetquake3.net, on tripod.com
- This post describes how to connect to Open Arena using the Linux shell as an alternative to rcon