GameCam Usage

The following sections explain how to use GameCam on the server side and on the client's side.

Server Side

Server Setup
GameCam is transparent. You should be able to setup a server for any game you want, the same way as before the installation:
quake2 +set game <gamedir>, etc.

GameCam prints a startup message to the console, before the game begins. GameCam also prints an optional welcome message to the players' console (saying "[GameCam]: type 'camera ?' for help").

A set of configuration files for several mods (CTF, LMCTF, HeadHunters, QPong, CTC, Predator, and TagYerIt) is available as a separate package. The configuration files are optional - GameCam should work just fine without them, but may look better with them. Consult the configuration section for details.

Console Variables
gc_version
GameCam version string (read-only).
gc_count
Number of GameCam spectators (serverinfo, read-only).
gc_flags
GameCam configuration flags (archived, default is "18147").
This cvar works very much like dmflags - you add up the values for each flag to get the required setting:

  • GCF_SUICIDE (1) - enable spectator suicide upon camera off (default: on).
  • GCF_ALLOW_CHASE (2) - enable CHASE mode (default: on).
  • GCF_ALLOW_FREE (4) - enable FREE mode (default: off).
  • GCF_ALLOW_SAY (8) - enable spectator chat (default: off).
  • GCF_VERBOSE (16) - print message when changing camera mode (default: off).
  • GCF_WELCOME (32) - enable welcome message (default: on).
  • GCF_AVOID_BOTS (64) - avoid bots when showing scoreboard (default: on) - must be on for Gladiator Bot (otherwise it'll crash), and may be off for Eraser.
  • GCF_DEFAULT_ID (128) - turn player id display on by default (default: on).
  • GCF_DEFAULT_TICKER (256) - turn ticker tape on by default (default: off).
  • GCF_DEFAULT_FIXED (512) - turn fixed cameras on by default (default: on) - this only takes effect if the map has fixed cameras defined for it.
  • GCF_DEFAULT_AUTO (1024) - turn auto chase camera position (creep camera) on by default (default: on).
  • GCF_DEFAULT_DEMO (2048) - turn auto demo recording on by default (default: off).
  • GCF_LOCK_SERVER (4096) - lock the server (refuse connection) in General Admission (tournament) mode when match is in progress (default: off).
  • GCF_TEAMS (8192) - use the gc_teams cvar to distinguish between teams (default: off).
  • GCF_SPECTATOR (16384) - replace in-game spectator mode (default: on) - flag is ignored in General Admission mode. Note that setting this flag causes spectator_password to override gc_password, and maxspectators to override gc_maxcameras.

gc_password
Spectator mode password (default is "" - i.e. no password).
gc_maxcameras
Maximum number of spectators allowed (archived, default is 4). Set this to 0, to allow all players to become spectators. Value is ignored in General Admission mode.
gc_maxplayers
The maximum allowed players. This doesn't reject new clients, but rather prevents a spectator from joining the game with camera off, when enough players are already playing (default is 0, which disables this feature). Value is used only in General Admission mode.
gc_autocam
Set this to 1 in order to put the server in General Admission mode, to force everyone to enter the game as spectators (latched, default is 0).
gc_motd
The General Admission welcome message (default is "\!GameCam\! General Admission\nEnjoy the Show!\n\n\ntype '\!camera\!' to see the menu").
gc_ticker
Name of ticker script, without extension (archived, default is "" - which loads an internal default script). Ticker script file name extension is ".led".
gc_maxscores
The number of top scores to list on the ticker tape (archived, default is 5, set to 0 to list all players).
gc_teams
Used with GCF_TEAMS to distinguish between teams (archived, default is "" - allowed values are "model", "skin", "gun", "model2", "model3", "model4"). Used in creep-cam mode to help it prefer tracking the other team's players.
gc_update
Number of minutes between timer updates in tournament mode (archived, default is 5 - 0 disables timer updates).
proxy
Proxy module chain string (serverinfo, latched).
nextproxy
Internal to proxy module loading mechanism (read-only).

Client Side

With the default settings GameCam replaces the in-game spectator mode. Combined with the camera menu this means that clients don't need to use any of the following commands or keyboard bindings ...

Camera Menu
The camera menu can only be accessed by spectators. The menu can be toggled with the camera command or with the TAB key (inven), and its use is self evident. Note that most camera console commands are disabled while using the menu, and camera mode changes take effect only when the menu is removed.

The following console commands are enabled while the menu is displayed: camera off, camera menu, camera ? and camera.

Console Commands
camera
toggle camera menu on/off (works for spectators only)
camera menu
toggle camera menu on/off
camera ?
show help message
camera on [<password>]
enter spectator mode, with optional password
camera off [<password>]
exit spectator mode, with optional password (password needed only in General Admission mode)
camera id
toggle identification of player in view (FREE and ACTION camera modes)
camera free
FREE camera mode
camera chase
CHASE camera mode
camera action
ACTION camera mode
camera action normal
ACTION camera NORMAL sub-mode
camera action follow
ACTION camera FOLLOW sub-mode
camera max_xy [<value>]
show/set maximum x/y lag for ACTION mode
camera max_z [<value>]
show/set maximum z lag for ACTION mode
camera max_angle [<value>]
show/set maximum yaw angle lag for ACTION mode
camera select [auto | <id>]
show/set current target in ACTION/CHASE mode (auto reverts to automatic target selection in ACTION mode)
camera chase auto
toggle camera auto position (creep-camera) in CHASE mode
camera demo
toggle auto demo recording
camera ticker
toggle display of ticker tape in ACTION and FREE mode
camera inven
toggle display of player inventory in CHASE mode
camera layout
toggle display of player layouts in CHASE mode (allows you to see if player is watching the scoreboard or uses menus)
camera fixed
toggle the use of fixed cameras in ACTION mode, when such cameras are defined

The following commands are available only on a non-dedicated server for client #0 in FREE mode:

camera list
list all fixed cameras
camera add ["name"]
add camera at current position, view angles and fov (default name is "unnamed camera")
camera update ["name"]
update current camera (will add camera if new)
camera remove
remove the current camera
camera next
go to the next camera
camera prev
go to the previous camera
camera none
deselect current camera
camera save
save cameras to file <basedir>/<game>/cameras/<mapname>.cam
Keyboard Bindings

While in spectator mode (camera on):

  • use [ or ] (invprev, invnext) to enter CHASE mode from FREE and ACTION modes
  • use [ and ] (invprev, invnext) to switch to the previous/next client while in CHASE mode
  • use BACKSPACE (invdrop) to enter FREE mode
  • use ENTER (invuse) to enter ACTION mode
  • use TAB (inven) to toggle the camera menu
  • use F1 (help) or X (score) to toggle the scoreboard (updated every ~3 seconds)
  • use CTRL (+attack) to reset manual CHASE camera position
  • use mouse or normal movement keys to manually adjust CHASE camera position (camera can be moved up/down and backward/forward, strafe left/right, turned up/down and left/right)