Enemy Territory: QUAKE Wars Competition Mod Guide

From Mod Wiki

The Enemy Territory: QUAKE Wars Competition Mod allows tournament organizers to easily implement and enforce specific rule-sets and enhances other competition related features of the game, such as ETQW:TV. It does this by providing additional Cvars and commands to both the players and server admins.

This is a brief guide explaining some of those Cvars and commands and providing examples where necessary.

Download Locations

The Enemy Territory: QUAKE Wars Competition Mod can be downloaded from one of the locations listed at http://www.splashdamage.com/node/248.

Server Rules

To run Competition Mod rules on a server you'll need to set si_rules to sdGameRulesCompetition

Weapon and Upgrade Unlocks

Some weapons and proficiency upgrades can be unlocked for all players from the match start in Competition Mod, despite proficiency being turned off. Setting the following Cvars to 1 will unlock these weapons and upgrades.

g_unlockGrenadeLauncher – unlocks the Grenade/Plasma Launcher for the Engineer/Constructor
g_unlockScopedRifle – unlocks the Scoped Assault Rifle/Accurised Lacerator for the Field Ops/Oppressor
g_unlockExtraClip – unlocks extra ammo for all player classes
g_unlockFasterSprint – unlocks faster movement speed for all player classes
g_unlockWeaponSpread – unlocks reduced weapon spread for all weapons


Class, Weapon and Deployable Limits

Competition Mod also allows admins to set restrictions on the number of classes and deployables available to a team, as well as limiting some weapon types. The value placed against any of the following Cvars is the maximum number of that game element allowed. A value of -1 means there is no limit.

Class Limits

g_maxSoldiers – sets the number of GDF Soldiers allowed
g_maxMedics – sets the number of GDF Medics allowed
g_maxEngineers – sets the number of GDF Engineers allowed
g_maxFieldOps – sets the number of GDF Field Ops allowed
g_maxCovertOps – sets the number of GDF Covert Ops allowed
g_maxAggressors – sets the number of Strogg Aggressors allowed
g_maxTechnicians – sets the number of Strogg Technicians allowed
g_maxConstructors – sets the number of Strogg Constructors allowed
g_maxOppressors – sets the number of Strogg Oppressors allowed
g_maxInfiltrators – sets the number of Strogg Infiltrators allowed

Weapon Limits

g_maxGPMGs – sets the number of GPMGs/Hyperblasters allowed per team
g_maxRocketLaunchers – sets the number of Rocket Launchers/Obliterators allowed per team
g_maxSniperRifles – sets the number of Sniper Rifle/Railguns allowed per team
g_maxHeavyWeapons – limits the total number of GPMGs/Hyperblasters and Rocket Launchers/Obliterators allowed per team
g_maxGrenadeLaunchers – sets the number of Grenade/Plasma Launchers allowed per team

Engineer/Constructor Turrets

g_maxAITs – sets the number of Artillery Interceptor Turrets allowed per team
g_maxAPTs – sets the number of Anti-Personnel Turrets allowed per team
g_maxAVTs – sets the number of Anti-vehicle Turrets allowed per team

Field Ops/Oppressor Artillery

g_maxArtillery – sets the number of Artillery/Rail Howitzers allowed per team
g_maxHammers – sets the number of Hammers/Dark Matter Cannons allowed per team
g_maxRocketArtillery – sets the number of Rocket Artillery/Plasma Mortars allowed per team

Covert Ops/Infiltrator Radar

g_maxRadars – sets the number of Radars/Psi-Radars allowed per team

Mines

g_maxMines – sets the total number of mines a team is allowed to have deployed at any one time

Example Server Config

This is an example of a server config file limiting deployables, weapons, class, and mines:

// **************************************************************
// *******                                               ********
// *******  Example class, dep and weapon limits config  ********
// *******                                               ********
// **************************************************************


// Turret restrictions

set g_maxAITs 1			// Allows 1 Artillery Interceptor Turret per team
set g_maxAPTs 1			// Allows 1 Anti-Personnel Turret per team
set g_maxAVTs 1			// Allows 1 Anti-Vehicle Turret per team


// Artillery Restrictions

set g_maxArtillery 1		// Allows 1 Artillery or Rail Howitzer per team
set g_maxRocketArtillery 1	// Allows 1 Rocket Artillery or Plasma Mortar per team
set g_maxHammers 1		// Allows 1 Hammer or Dark Matter Cannon per team


// Weapon Restrictions

set g_maxRocketLaunchers 1	// Allows 1 Rocket Launcer or Obliterator per team
set g_maxGPMGs 2		// Allows 2 GPMGs or Hyperblasters per team
set g_maxGrenadeLaunchers -1  	// Allows unlimited Grenade Launchers per team if the Grenade Launcher is available
set g_maxHeavyWeapons -1	// Set no limit to Heavy Weapons
set g_maxSniperRifles 1		// Allows 1 Sniper Rifle or Rail Gun per team


// Mine Limit

set g_maxMines 8		// Allows each team to only have a maximum 8 mines deployed at one time


// Radar Limit

set g_maxRadars 1		// Allows each team to deploy only 1 Radar at a time


// Strogg Class Limits

set g_maxAggressors 2		// Limits Strogg to 2 Aggressors at any one time
set g_maxTechnicians 2		// Limits Strogg to 2 Technicians at any one time
set g_maxConstructors 3		// Limits Strogg to 3 Constructors at any one time
set g_maxOppressors 2		// Limits Strogg to 2 Oppressors at any one time
set g_maxInfiltrators 2		// Limits Strogg to 2 Infiltrators at any one time


// GDF Class Limits

set g_maxSoldiers 2		// Limits GDF to 2 Soldiers at any one time
set g_maxMedics 2 		// Limits GDF to 2 Medics at any one time
set g_maxEngineers 2		// Limits GDF to 2 Engineers at any one time
set g_maxFieldOps 4		// Limits GDF to 4 Field Ops at any one time
set g_maxCovertOps 1		// Limits GDF to 1 Covert Op at any one time

Pausing and Time Outs

Further support has been added for pausing matches as well as a new Team Timeout feature. Any player on either team can call a time out at any time during a game (if allowed on the server), this will pause the game for a set amount of time before counting the game back in and restarting it. Related Cvars and Commands are listed below.

admin pause – Command to pause a game indefinitely
admin unpause – Command to un-pause a game
g_unpauseTimer – Sets the duration, in seconds, of the match restart countdown that plays after a pause or time out has ended
g_maxTeamTimeouts – Determines how many timeouts a team can use per match, value of -1 turns timeouts off
g_teamTimeoutLength – Sets the duration, in minutes, a timeout will last
callTimeout – Command used to start a timeout, any player is able to call a time out


Spectating and 'Spec Labels'

With Competition Mod spectators are now able to view players in free fly mode with much greater control and feedback. Support is added for pre-set cameras, binding hot keys for viewing specific clients and for clicking on individual players to jump into their first person perspective. In addition labels can now be added to players when spectating, allowing much easier identification of individuals. These spec labels are customized via client side Cvars.

Spectate Position

This command allows the user to jump to a specific point on the map, looking in a pre-set direction, essentially jumping to user defined camera. The command is set in the following format:

Spectate Position <x> <y> <z> <yaw> <pitch> <roll>

Here X, Y and Z are the coordinates at which the camera will be placed, Yaw, Pitch and Roll set the direction in which it will be looking. The easiest way to obtain these values is to start ETQW, launch Play Computer, fly to the position at which you'd like the camera to be placed and then use the command 'getviewpos'. This will capture the coordinates for your current point of view to the clipboard and you can use these for your camera. You will need net_allowcheats to be set to 1 to be able to use the getviewpos command.

Obviously this is not very easy to do on the fly so it is best to make a series of binds for each map and then store them in a config file. An example of a bind for a ready made camera for the map Valley is:

bind k "spectate position 9044.66 -4553.08 1891.27 24.87 -334.34 0.00"

Other spectate commands

Spectate Client - Jumps to spectating a specific player based on the client number or the player name entered e.g. "Specate Client 1" or "Spectate Client Tapir" for a player called Tapir
Spectate next – Jumps to the next player
Spectate prev – Jumps to the previous player
Spectate objective – Jumps to a player currently attempting to complete the objective or jumps to view a planted HE/Plasma charge (only works on Primary Objectives)

Pressing the use key (_activate) whilst a player is under the spectators crosshair will now jump to that players point of view, allowing for more fluid transitions between first person and free fly mode

Example spectator config

This is an example of a client config file set up to jump to specific clients, map locations, and objectives.

// **********************************
// *******                   ********
// *******  Specator Config  ********
// *******                   ********
// **********************************

// Number keys are bound to specific clients based on client number (ignores clients that are also spectating)

bind  1		"spectate client 1"					
bind  2		"spectate client 2"
bind  3		"spectate client 3"
bind  4		"spectate client 4"
bind  5		"spectate client 5"
bind  6		"spectate client 6"		
bind  7		"spectate client 7"	
bind  8		"spectate client 8"
bind  9		"spectate client 9"
bind  0		"spectate client 10"
bind  -		"spectate client 11"
bind  =		"spectate client 12"


// Keys bound to specific clients based on the player's name

bind  q		"spectate client AO"					
bind  w		"spectate client 'Bongo Boy'"
bind  e		"spectate client ducks"
bind  r		"spectate client Digibob"
bind  t		"spectate client RR2DO2"
bind  y		"spectate client Wils"		
bind  u		"spectate client MoP"	
bind  i		"spectate client Anti"
bind  o		"spectate client Smooth"
bind  p		"spectate client Jose"
bind  [		"spectate client Huntle"
bind  ]		"spectate client JFK"


// Keys bound to toggle through clients

bind rightarrow	"spectate next"
bind leftarrow	"spectate prev"


// Pre-set cameras for Valley

bind kp_end		"spectate position 9044.66 -4553.08 1891.27 24.87 -334.34 0.00"		// Views obj. 1
bind kp_downarrow	"spectate position 3862.32 1435.13 1879.86 131.09 -353.98 0.00"		// Views Tunnel Spawn
bind kp_pgdn	"spectate position 1085.68 8092.22 1955.78 274.70 -337.35 0.00"		// Views obj. 2
bind kp_leftarrow	"spectate position -6847.38 -4325.94 2230.2 244.78 -340.67 0.00"		// Views obj. 3
bind kp_5		"spectate position -5549.77 -9793.78 1934.23 174.49 -330.27 0.00"		// Views obj. 4


// Jumps to spectating any player currently achieving the objective

bind a 		"spectate objective"

Spec Labels

Spec Labels are fully customizable name tags that hover next to players in-world when spectating them to aid a viewers understanding of who they are watching. They are also used to display the amount of time remaining on a planted HE/Plasma charge. The labels are controlled client side and are usable with ETQW:TV. The following Cvars are used for editing spec labels:

g_showPlayerNames – cvar used to toggle player spec labels on/off
g_showChargeTimers – cvar used to toggle in-world HE/Plasma charge timers on/off
g_specLabelAlpha – adjusts the alpha of the text on the spec label
g_specLabelBackground – cvar used to toggle the label background on/off
g_specLabelBackgroundColor – adjusts the background color of the label, format "<R> <G> <B> <Alpha>"
g_specLabelDropShadow – adds or removes drop shadow on the label text
g_specLabelMaxDistance – adjusts the distance at which spec labels become visible
g_specLabelPosition – adjusts where a label appears in relation to a player (0 = above, 1 = center, 2 = below)
g_specLabelSize – adjusts the size of the label
g_specLabelShowAll - cvar used to show labels even for players that are hidden (eg behind a wall)
g_specLabelTeamColors - enables the names to be coloured based on the team
g_specLabelGDFColor – adjusts the text color on GDF labels, format "<R> <G> <B> <Alpha>"
g_specLabelStroggColor – adjusts the text color on Strogg labels, format "<R> <G> <B> <Alpha>"
g_showFreeFlyText – cvar used to add/remove the 'free fly mode' text that appears in the center of the screen

Vampire/Violator Team Charge Bar

Competition Mod makes it possible to have a shared charge bar on the Vampire/Violator for each team. When turned on this can be used to prevent teams from 'spamming' fire support at the same time or in quick succession.

g_teamAirstrikeCost - This cvar sets the percentage of the team's charge bar a single air strike will use, set to 100 a single Vampire strike would use the whole charge bar and it would have to fully re-fill before another Vampire could be used. Set to 50 a single Vampire being thrown would cause the charge bar to re-fill from half way, halving the time before another strike could be made. If the cvar is set to -1 then no shared team charge bar is set.
g_teamAirstrikeRechargeTime – Sets the time in seconds it takes for the whole charge bar to re-fill

Signed Configs

Support is also available for checking configs between the client and the server, this allows players to ensure that the config that is being run on the server is the correct one. For example if the server is supposed to be running OfficialComp.cfg for a tournament players would be able to download it to their own machine and then check it against the server's version, comparing checksums to see if they are the same. The following commands are used to compare configs, in each case the name of the config to check is entered after the command.

getConfigChecksum - generates a checksum for a config stored on the client and prints it to the player requesting it
getServerConfigChecksum - generates a checksum for a config stored on the server and prints it to the player requesting it
admin configChecksum - generates a checksum for a config stored on the server and prints it to all players on the server
compareConfigs - compares a config stored on the client with one on the server and tells the player if they match or not
admin compareConfigs - compares a config stored on the client with one on the server and tells all players on the server if they match or not

Alternate Vehicle Spawns

Some maps now have an alternate set of vehicle spawn points available through Competition Mod. These can be turned on or off by setting the cvar g_useTournyVehicles to 1 or 0.

The affected maps are:

Area 22
Ark
Island
Quarry
Refinery
Sewer


MCP and Third Eye Camera Radar

As of the final release of Competition Mod it is now possible for server admins to disable the radar ability of the MCP and the Third Eye Camera. This can be done with the following cvars.

g_enableMCPRadar – when set to 0 this cvar turns off the radar ability of the MCP
g_enableThirdEyeRadar – when set to 0 this cvat turns off the Third Eye Camera’s radar


Leaning

Another addition made with Competition Mod is the ability for server admins to disable player leaning completely. It is also possible to allow players to lean but disable their ability to fire whilst leaning. These options are all available via the follow cvar.

g_allowLean – set to 0 this cvar disables the ability to lean, set to 1 it disables firing whilst leaning and when set to 2 leaning and firing are both enabled


Useable Vehicle Limits

With Competition Mod admins are now able to limit access to certain vehicles. All the vehicles normally available on a map are still present but the limits set by the admin mean that only a pre-defined number of a specific vehicle can be used at any one time. If the maximum number of that type of vehicle are in use, then players will not be able to enter any more of them.

To set up this feature, the admin first needs to assign the vehicles they want to limit to the appropriate group. This can be done like so:

g_vehicleClass_Anansi “Flyer” – this would put the Anansi into the group called “Flyer”
g_vehicleClass_Titan “Heavy” – this would put the Titan into the group called “Heavy”
g_vehicleClass_Trojan “Tapir” – this would put the Trojan into the group called “Tapir”

A full list of the available g_vehicleClass cvars can be obtained by writing g_vehcileClass in the console and then pressing the tab key.

The name of the group is completely up to the user, though it's best to make it something appropriately descriptive. Once all the vehicles you wish to limit are added to groups, you can set a limit on the number of vehicles available in that group. For some of the examples above, this can be done with the following commands:

g_maxActiveVehicles_Flyer 1 – this would allow only one vehicle from the "Flyer" group at a time
g_maxActiveVehicles_Heavy 2 – this would allow only two vehicles from the "Heavy" group at a time
g_maxActiveVehicles_Tapir 5 – this would allow only five vehicles from the "Tapir" group at a time

If this value is set to 0 then no vehicles from that group are allowed to be used. The g_maxActiveVehicles cvars are only generated after a group has been created (i.e. by adding a vehicle to it). As a result it is best to have all these commands in your server config rather than applying the limits on the fly via rcon. An example config that might be appropriate for competition is listed below:

set g_vehicleClass_Anansi "Flyer"
set g_vehicleClass_Bumblebee "Flyer"
set g_vehicleClass_Tormentor "Flyer"

set g_vehicleClass_Desecrator "Heavy"
set g_vehicleClass_Cyclops "Heavy"
set g_vehicleClass_Titan "Heavy"

set g_vehicleClass_Hog "Medium"
set g_vehicleClass_Trojan "Medium"


set g_maxActiveVehicles_Flyer 0 
set g_maxActiveVehicles_Heavy 1 
set g_maxActiveVehicles_Medium 1 

General Changes

Force Limbo Spectate

These cvars allow server admins to prevent 'gibbed' players from viewing the battlefield from their corpse.

g_forceLimboSpectate – when set to 1 this forces gibbed players to spectate team mates until they re-spawn, or if all team mates are dead forces them to the limbo menu
g_forceLimboSpectateMenuSticky – cvar sets if the limbo menu should automatically close if a player forced to the limbo menu re-spawns

setSpawnPoint Commands

Competition Mod provides a series of commands that allow players to select spawn points across the map without having to use the limbo menu. These commands can be bound to keys to allow very fast spawn point selection.

setSpawnPoint next – selects one spawn ahead of the player's current selection
setSpawnPoint prev – selects one spawn back from the player's current selection
setSpawnPoint default – selects the current front-line spawn point
setSpawnPoint base – sets the player's spawn point to the main base (Command Center/Domination Hub)

Auto Demo Recording and Screenshots

It is possible for players to auto record their own demo files and generate screenshots of the end game scoreboard using Competition Mod. These files can also be given a customized naming format.

g_autoRecordDemos – set to 1 this cvar starts demo recording automatically when the match is started
g_autoScreenshot – set to 1 this cvar will automatically take a screenshot of the end game scoreboard

Auto recorded demos and auto screenshots can also have a user defined name format applied to them using the cvars g_autoDemoNameFormat and g_autoScreenshotNameFormat. These default to the following formats:

scoreboard_$year$$month$$day$_$hour$$min$$sec$_$map$_$rules$_$name$_build_$srcrev$_$mediarev$.tga

$year$$month$$day$_$hour$$min$$sec$_$map$_$rules$_$name$_build_$srcrev$_$mediarev$.ndm

These would result in the following file names respectively:

scoreboard_20080205_103901_maps_sewer_competition_first_Player_build_12095_33034.tga

20080205_103617_sewer_competition_first_Player_build_12095_33034.ndm

Separate Vehicle Sensitivity Settings

In Competition Mod it's possible to adjust mouse sensitivity for specific vehicles, allowing players to have high sensitivity in some vehicles with low sensitivity in others, all without effecting their sensitivity when playing as Infantry. The Cvars used to scale the sensitivity in the various vehicles are listed below. Each vehicle has two sensitivity cvars, one for vertical movement, one for horizontal. To adjust the general sensitivity then the value of both cvars should be the same.

m_bumblebeePitchScale – adjusts the vertical sensitivity in the Bumblebee
m_bumblebeeYawScale – adjusts the horizontal sensitivity in the Bumblebee
m_heavyVehiclePitchScale – adjusts the vertical sensitivity in the Titan, Cyclops and Desecrator
m_heavyVehicleYawScale – adjusts the horizontal sensitivity in the Titan, Cyclops and Desecrator
m_helicopterPitchScale – adjusts the vertical sensitivity in the Anansi and Tormentor
m_helicopterYawScale – adjusts the horizontal sensitivity in the Anansi and Tormentor
m_lightVehiclePitchScale – adjusts the vertical sensitivity in the Trojan, Armadillo, Hog and Husky
m_lightVehicleYawScale – adjusts the horizontal sensitivity in the Trojan, Armadillo, Hog and Husky
m_playerPitchScale – adjusts the vertical sensitivity as infantry and in the Icarus
m_playerYawScale – adjusts the horizontal sensitivity as infantry and in the Icarus

Players are also able to switch yaw and roll between the keyboard and the mouse if they choose to using the cvar ui_swapFlightYawAndRoll. Setting this to a value of 1 causes the mouse to become the control for yaw and the keys to become the control for roll.

Look at Killer/Medic

Normally a dead players point of view will snap to look towards their killer or a nearby medic, this feedback is to help the user understand who just killed them or if they should tap out or not. With Competition Mod the player is now able to turn off this functionality if they choose to.

g_lookAtKiller – set this to a value of 0 to turn off the camera tracking a killer
g_lookAtMedic – set this to a value of 0 to turn off the camera tracking nearby Medics/Technicians