Quake II

Quake II

Not enough ratings
Quake 2 Configs & Custom Launching
By KoreRat
I briefly touched on this in my Quake 2 Manual, but I wanted to go a little more in depth about it. There is a lot that can be done in rearguards to custom launching games of Quake 2 both single and multiplayer. And getting the most out of your keyboard bindings.
Console Commands
There are hundreds of different console commands, and I have no desire to bother you will all of them here. Instead I will list the most used, and provide a link to a complete list here[www.eecis.udel.edu]. You will also see many commands later on in the various cfg files. I also won't touch much on any of the bindings that can be adjusted in the games menus.

  • Toggles are used with either a 1(on) or a 0(off).
  • Operations need no extra variable and will be executed immediately.
  • Functions require a subject to attach the command to.

Type: Function
alias (name) "(commands)"
Description: Used to create a reference to a command or list of commands. A macro.

When used without parameters, it will display all current aliases. To create an alias which executes multiple commands, it is necessary to surround the commands with double-quotes and separate each command with a semicolon. An alias works like a command function since it cannot accept any parameters. Also, aliases are executed as if they were commands.

Type: Toggle
Description: Toggle the use of cheat codes.

connect (IP address)
Description: Connect the client to a server.

Type: Function
demomap (demoname)
Description: Plays back a demo.

Type: Operation
Description: Disconnects the client from the server.

Type: Bitmap
Default: 16
Description: The options which determine deathmatch game settings.

1 - No Health.
2 - No Powerups.
4 - Weapons Stay.
8 - No Falling Damage.
16 - Instant Powerups.
32 - Same Map.
64 - Teams by Skin.
128 - Teams by Model.
256 - No Friendly Fire.
512 - Spawn Farthest.
1024 - Force Respawn.
2048 - No Armor.
4096 - Allow Exit.
8192 - Infinite Ammo.
16384 - Quad Drop.
32768 - Fixed FOV.

Type: Function
Description: Drop an item from the inventory. See Item List.

Type: Function
Description: Execute a console script file.

Type: Function
give (item)
give (item) (amount)
Description: Give an item to the player. See Item List.

Following only work with give command
  • all - All items.
  • ammo - Full ammo.
  • armor - Full armor.
  • health - Full health.
  • weapons - All weapons.
  • shells - 10 Shells.
  • bullets - 50 Bullets.
  • grenades - 5 Grenades.
  • rockets - 5 Rockets.
  • slugs - 10 Slugs.
  • cells - 50 Cells.
  • combat armor - 1 unit of Combat Armor.
  • jacket armor - 1 unit of Jacket Armor.
  • armor shard - Armor Shard.

Type: Operation
Description: Toggle god mode for the player.

Type: Operation
Description: Make the player commit suicide.

Type: Operation
Description: Toggle no clipping mode.

Type: Operation
Description: Toggle the ability of the monsters to detect the player.

Type: Operation
Description: Toggle pausing of the game. Default binding to 'Pause' key

Type: Operation
Description: Quit the game.

Type: Operation
Description: Reconnect to the server.

Type: Function
record (demoname)
Description: Record a demo.

Type: Operation
Description: Take a screenshot of the current view. Default binding to F12.

Type: Operation
Description: Stop the recording of a demo.

Type: Operation
Description: Bring down the console to allow the player to type in console commands. Default binding '~' key.

Type: Function
unbind (key)
Description: Remove a binding from a key.

Type: Function
use (item)
Description: Use an item.

Type: Operation
Description: Wait one game tic.

Note: This command is mostly used when creating complex sets of commands and aliases. Some commands cannot be executed in the same game tic, so this command allows a space in time between executing different commands.
Type: Function
bind (key)
bind (key) "(commands)"
Description: Assign a command or a set of commands to a key.

When the command is used with just the key name and without assigning any commands to it, it will display the command which is currently assigned to that key. To bind multiple commands to a key, enclose the commands in double-quotes and separate them with semi-colons. To bind to non-printable keys, use the key name. The escape, and ~ (tilde) keys can only be bound from an external configuration file.

bind r use rocket launcher
bind z "say Sucker!!!;wave 2"

Key Name List:
The config.cfg file is the master list of Quake 2's bindings. It can be edited with programs such as Notepad, however this method isn't recommended for beginners. Understanding the config.cfg does a great part in understanding how Q2 handles commands.

Since this file is updated every time you make a change in the game a common practice is to create a duplicate copy and rename it to make it personal. For example I have a korerat.cfg file that is my personal set of bindings.

// generated by quake, do not modify bind TAB "inven" bind ENTER "invuse" bind ESCAPE "togglemenu" bind SPACE "+moveup" bind ' "invdrop" bind + "sizeup" bind , "+moveleft" bind - "sizedown" bind . "+moveright" bind / "weapnext" bind 0 "use BFG10K" bind 1 "use Blaster" bind 2 "use Shotgun" bind 3 "use Super Shotgun" bind 4 "use Machinegun" bind 5 "use Chaingun" bind 6 "use Grenade Launcher" bind 7 "use Rocket Launcher" bind 8 "use HyperBlaster" bind 9 "use Railgun" bind = "sizeup" bind [ "invprev" bind \ "+mlook" bind ] "invnext" bind ` "toggleconsole" bind a "+moveleft" bind b "use rebreather" bind c "+movedown" bind d "+moveright" bind e "use environment suit" bind g "use grenades" bind h "wave 0" bind i "use invulnerability" bind j "wave 1" bind k "wave 2" bind l "wave 3" bind p "use power shield" bind q "use quad damage" bind s "+back" bind t "messagemode" bind u "wave 4" bind w "+forward" bind x "score" bind z "+lookdown" bind ~ "toggleconsole" bind BACKSPACE "invdrop" bind UPARROW "+forward" bind DOWNARROW "+back" bind ALT "+strafe" bind CTRL "+attack" bind SHIFT "+speed" bind F1 "cmd help" bind F2 "menu_savegame" bind F3 "menu_loadgame" bind F4 "menu_keys" bind F5 "menu_startserver" bind F6 "echo Quick Saving...; wait; save quick" bind F9 "echo Quick Loading...; wait; load quick" bind F10 "menu_quit" bind F12 "screenshot" bind INS "+klook" bind DEL "+lookdown" bind PGDN "+lookup" bind END "centerview" bind MOUSE1 "+attack" bind MOUSE2 "+strafe" bind MOUSE3 "+forward" bind PAUSE "pause" set gl_3dlabs_broken "1" set gl_swapinterval "1" set gl_ext_compiled_vertex_array "1" set gl_ext_pointparameters "1" set gl_ext_multitexture "1" set gl_ext_swapinterval "1" set gl_vertex_arrays "0" set gl_texturesolidmode "default" set gl_texturealphamode "default" set gl_texturemode "GL_LINEAR_MIPMAP_NEAREST" set gl_shadows "0" set gl_modulate "1" set gl_particle_att_c "0.01" set gl_particle_att_b "0.0" set gl_particle_att_a "0.01" set gl_particle_size "40" set gl_particle_max_size "40" set gl_particle_min_size "2" set gl_finish "0" set gl_ext_palettedtexture "1" set gl_mode "6" set gl_driver "opengl32" set hostname "noname" set allow_download "1" set allow_download_players "0" set allow_download_models "1" set allow_download_sounds "1" set allow_download_maps "1" set sv_reconnect_limit "3" set vid_ref "gl" set vid_xpos "3" set vid_ypos "22" set vid_gamma "1" set sw_stipplealpha "0" set s_volume "0.7" set s_khz "22" set s_loadas8bit "0" set s_mixahead "0.2" set s_primary "0" set cd_nocd "0" set adr0 "" set adr1 "" set adr2 "" set adr3 "" set adr4 "" set adr5 "" set adr6 "" set adr7 "" set adr8 "" set cl_stereo_separation "0.4" set freelook "1" set rate "24900" set msg "1" set fov "90" set gender "male" set gender_auto "1" set cl_vwep "1" set in_mouse "1" set in_joystick "0" set g_select_empty "0" set skin "male/grunt" set name "Player" set lookstrafe "0" set lookspring "1" set m_pitch "0.022" set hand "0" set cl_run "0" set crosshair "1" set sensitivity "3" set win_noalttab "0" set vid_fullscreen "1" set viewsize "100"
Quake II automatically searches for a file called AUTOEXEC.CFG every time a new game is launched. If it finds the file, it will automatically execute any commands contained there. Simply create a text file called AUTOEXEC.CFG, add whatever commands you want, and place the file in both your main /Quake2 and /Quake2/baseq2 directories. Among the settings you can put in there are video and sound settings, player controls, and internet settings.

// SAMPLE AUTOEXEC.CFG // Player settings set name "Killer" set hostname "QuakeLand" set skin "cyborg/ps9000" set crosshair "1" set hand "0" set rate "3000" set cl_maxfps 30 // Controls bind MOUSE1 "+attack" bind a "+moveleft" bind d "+moveright" bind w "+forward" bind s "+back" bind MOUSE2 "+moveup" bind c "+movedown" // Taunts, etc bind F3 "whoo-hoo" bind F4 "nice shot" bind F5 "dammit" bind F6 ":-)" bind F7 "thanks" bind F8 "who's da man? // eof

Note that by putting this config file in your Quake2 and baseq2 directories, it will apply directly to playing deathmatch or single player. You can create separate AUTOEXEC files for every mod, and simply place the file in the appropriate mod directory. You can use the // symbols to denote comments in any config file. Quake II will ignore everything that follows them on that line.

You'll also notice the //eof at the end of the config. Quake II has been known to occasionally ignore the last line of your config, so put a comment there just to be safe.

My personal AUTOEXEC.CFG:

// KoreRat's autoexec.cfg exec korerat.cfg // eof
Bat Files & Target Commands
For the Steam version of Quake 2 and its Mission Packs bat files must be used in place of Target Commands. Bat files contain the same information as the Target line in standard shortcuts, only in a text file. In order to play the Mission Packs the game must be started by executing the associated bat file from the Quake 2 directory. You can also use these to create your own quick launch game by telling the computer to launch the game while at the same time telling the game just which parts you want turned on.

.\quake2.exe +set game crbot +set deathmatch 1 +set ctf 1

.\quake2.exe +set game rogue +set cddir D:\data\max

Target commands are commands that are added to the games shortcut itself and activated when the game is first launched. Since there are many different mods for Quake 2 and each requires its own set of commands or sometimes controls, you might opt to have multiple shortcuts one for each mode.

For Non-Steam versions
  • First create a desktop shortcut for Quake 2.
  • Next right click on the shortcut and go to the 'Target:' line under the 'Shortcut' Tab.
  • At the end of this line add the command.

+set game "crbot" +set deathmatch 1 +set ctf 1
If you opt to run a server, or just play a local game with bots, you'll need a server.cfg. Its function is to set the various options for the game, all of these options can be set in the game itself when starting the Deathmatch or CTF game. This file is really only needed with quick launching games directly into Deathmatch or CTF games.

// Sample Server Configuration File for CTF // // dmflags settings: // // DF_NO_HEALTH 1 // DF_NO_ITEMS 2 // DF_WEAPONS_STAY 4 // DF_NO_FALLING 8 // DF_INSTANT_ITEMS 16 // DF_SAME_LEVEL 32 // DF_SKINTEAMS 64 // DF_MODELTEAMS 128 // DF_NO_FRIENDLY_FIRE 256 // DF_SPAWN_FARTHEST 512 // DF_FORCE_RESPAWN 1024 // DF_NO_ARMOR 2048 // DF_ALLOW_EXIT 4096 // DF_INFINITE_AMMO 8192 // DF_QUAD_DROP 16384 // DF_FIXED_FOV 32768 // DF_CTF_FORCEJOIN 131072 // DF_ARMOR_PROTECT 262144 // DF_CTF_NO_TECH 524288 // // The default dmflags here (280084) is set up as: // // DF_WEAPONS_STAY + DF_INSTANT_ITEMS + DF_SPAWN_FARTHEST + // DF_FORCE_RESPAWN + DF_QUAD_DROP + DF_ARMOR_PROTECT // // which works out to: // // 4 + 16 + 512 + 1024 + 16384 + 262144 = 280084 set dmflags 280084 // this dmflags (411156) is the same as 280084, plus DF_CTF_FORCEJOIN // set dmflags 411156 // force join set deathmatch 1 set maxclients 16 set fraglimit 150 set capturelimit 8 set timelimit 30 map q2ctf1
Unit cfg's
Sometimes you just want to jump into the thick of it, and don't want to deal with the easier early levels. Maybe you've played the first units so many times that you want to just start the game in the Mines, or jump straight to the Big Gun. By exec each of these commands it will place you at the start of each unit with a small weapon supply.

To play
Type this command
Warehouse Unit
exec warehouse.cfg
Jail Unit
exec jail.cfg
Mine Unit
exec mine.cfg
Factory Unit
exec factory.cfg
Power Unit
exec power.cfg
Biggun Unit
exec biggun.cfg
Hangar Unit
exec hangar.cfg
City Unit
exec city.cfg
Boss Levels
exec boss.cfg
CrBot cfg's
CrBot has always been my preferred bot program, and so I will assume you use it too. With a simple configuration file you can add multiple bots to a match in seconds. Below is a copy of my current BOTS.cfg, it is important to remember that tabs must never be used in these files, always use spaces.
// name // | skill (0,1..10) // | | model // | | | skin // | | | | team no. // | | | | | sv addbot "Dyscord" 8 male "male/recon" 0 wait sv addbot "Maul" 5 LordMaul "LordMaul/LordMaul" 0 wait sv addbot "Blade" 6 blade "blade/blade" 0 wait sv addbot "Han" 7 HanSolo "HanSolo/solo_anh" 0 wait sv addbot "McClane" 6 McClane "McClane/nakatomi1" 0 wait sv addbot "Ralphael" 6 tmnt "tmnt/ralph" 0 wait sv addbot "AT-ST" 6 AT-ST "AT-ST/atst" 0 wait sv addbot "Chastity" 5 Chastity "Chastity/Chastity1" 0 wait sv addbot "Boba Fett" 7 BobaFett "BobaFett/ROTJ_Fett" 0 wait sv addbot "00M-9" 6 bdroid "bdroid/00M-9" 0 wait sv addbot "Link" 6 Link "Link/link" 0
**I have a lot of custom player characters. :p

CrBot also uses DM.cfg and CTF.cfg for each gamemode. Both of these are similar to the AUTOEXEC.cfg and SERVER.cfg files. These set the rules for the game and victory parameters. Each one ends with loading a map and executing the BOTS.cfg to start the game.

set deathmatch 1 set ctf 0 set maxclients 16 set fraglimit 25 set timelimit 30 map q2dm1 wait exec bots.cfg
set deathmatch 1 set ctf 1 set maxclients 16 set fraglimit 150 set capturelimit 10 set timelimit 30 set dmflags 16720 map q2ctf1 wait exec ctfbots.cfg
Note: Since I use so many custom models I have to make a separate bots.cfg for ctf. In my ctfbots.cfg file is mostly the same with changes to the team number and the skin used by the bot. Using the original cfg would cause the game to force all the models to the male model.
Item List
  • adrenaline - Adrenaline.
  • airstrike marker - Airstrike Marker.
  • ammo pack - Ammo Pack.
  • ancient head - Ancient Head.
  • bandolier - Bandoleer.
  • bfg10k - BFG10K.
  • blue key - Blue Key.
  • bullets - 50 Bullets.
  • chaingun - Chaingun.
  • cells - 50 cells.
  • commander's head - Commander's Head.
  • data cd - Data CD.
  • data spinner - Data Spinner.
  • environment suit - Environment Suit.
  • grenade launcher - Grenade Launcher.
  • grenades - 5 Grenades.
  • hyperblaster - HyperBlaster.
  • invulnerability - Invulnerability.
  • machinegun - Machinegun.
  • power cube - Power Cube.
  • power screen - Power Screen.
  • power shield - Power Shield.
  • pyramid key - Pyramid Key.
  • quad damage - Quad Damage.
  • railgun - Railgun.
  • rebreather - Rebreather.
  • red key - Red Key.
  • rocket launcher - Rocket Launcher.
  • rockets - 5 Rockets.
  • security pass - Security Pass.
  • shells - 10 Shells.
  • shotgun - Shotgun.
  • silencer - Silencer.
  • slugs - 10 Slugs.
  • super shotgun - Super Shotgun.
< >
JC Denton Sep 9, 2018 @ 8:07pm 
is that lithium mod like the lithium mod for doom?
KoreRat  [author] Sep 9, 2018 @ 5:46pm 
Finding old mods can be tricky, lucky for you Lithium was/is a very popular mod, you can find it on their site [quake2.lithium.com].
Rigormortis Sep 2, 2018 @ 10:35pm 
I wanted to play q2dm1 with a grappling hook as I used to back in 98, I still remember the command bind q +hook but it seems is a mod called lithium ...where do I get that mod???

JC Denton Jan 2, 2018 @ 6:22pm 
thats stupid. they should just have kept it jump, like it was in quake 1.
KoreRat  [author] Jan 2, 2018 @ 2:11am 
Use +moveup, "bind mouse2 +moveup".
In Q2 jump is moveup and crouch is movedown.
JC Denton Dec 31, 2017 @ 9:05pm 
i need to bind a key
i want mouse 2 to jump
i have tried "bind mouse2 +jump"
it wont work