Challenge Pro Mode Features


Introduction

Welcome to the Challenge Pro Mode features list! This document describes all the features you can activate and variables you can configure in CPM.

Match Features

CPM comes with extensive Match Admin features which are controlled via the console.
For a full list of Match Admin commands, type \help.

Command Summary
- \powerups - enabled/disabled
- \holdables - enabled/disabled
- \timelimit - adjusts timelimit
- \fraglimit - adjusts fraglimit
- \capturelimit - adjusts capture limit
- \overtime - sets the duration of overtime. -1 means sudden death
- \weaponstyle 0/1/2 - adjusts weapon respawn times (5sec; 15sec; 30sec)
- \quadSyle 0/1 - adjusts quad respawn time (60sec/ 120sec)


- \g_doWarmup 0/1/2/3 - (includes in some modes: god; infinite ammo; all weapons on the map; no item pickups)
- \nextWarmup - cycle through warmup styles
- \ready - ready
- \notready - not ready
- \pause - pause game
- \forcestart - starts counter
- \break - breaks forcestart, stops game
- \callvote [cmd] - allows players to change certain options without needing admin rights
- \tourneymode 0/1/2 - adjusts restrictions for clients: 0 -> no restrictions; 1 -> only team captains and admins may adjust game settings; 2 -> only admins may adjust game settings - \promode - toggles CPM game settings on and off

Server Admins are listed in "admin.ini". By default, localhost is an admin with full permissions.

Statistics from the game are printed in the console after a game.


The CPM HUD

The HUD is the information you see on the screen about your current status: health; armor; and ammo. The CPM Heads-Up Display is extremely configurable, so it should be possible to find a setting that suits just about any taste.

Features
- Health and armor bars
- Weaponlists
- Crosshair colors
- Crosshair team info
- More flexible / more options (lots of combinations)
- Ammo doesn't flash when you fire
- The selected weapon is marked with a background in the weaponlist
- When a weapon is picked up, the weapon's background flashes in the weaponlist
- "cg_drawFPS 2" will use a more accurate FPS calculation method
- The size of the "You fragged Kenny; 1st with 96 frags" message is configurable

New HUD Console Commands
There are three new commands which can be used to quickly set up the HUD.
\hudstyle #
Sets the style to the specified number. There are currently 8 different built-in styles, and you can create your own with config files.
\hudnext
Sets the HUD to the "next" style: use this to quickly check out all styles.
\hudprev
Sets the HUD to the "previous" style: use this to quickly check out all styles.


New Console Variables
Name:Default setting:Usage:
cg_hud_crosshairColor 0 (white) Use this to change the crosshair color. 0 is white, 1 is red, 2 green, 3 yellow, 4 blue, 5 magenta, 6 cyan. Important note: cg_crosshairHealth overrides this function, turn it off to use these colors.
cg_hud_crosshairTeamInfo 1 (enabled) When enabled you see information about your teammates when they're targeted in your crosshair. Only available when cg_drawTeamOverlay is enabled.
cg_hud_graphs 1 (enabled) Enables the graphs for some of the statusbar styles.
cg_hud_statusbarStyle 0 (q3 standard) This sets the HUD's appearance. 0 is original q3 style; 1 uses long horizontal bars; 2 uses short horizontal bars; 3 uses vertical bars; 4 places the health information in the weaponlist; 5 uses three horizontal bars. Some combinations of statusbar styles and weaponlists won't display all information. Find the one you feel most comfortable with.
cg_hud_teamBackground 1 (enabled) Enables/disables the use of the team background in the statusbar.
cg_hud_weaponList 0 (disabled) This sets the weaponlist's appearance. 0 disables it; 1 is on the left; 2 is on the right; 3 is in the middle. The look of the weaponlist can be affected by the statusbar's style.
cg_hud_weaponListDrawAll 0 (disabled) Enabling this will force the weaponlist to show all weapons (ie. including those not carried).
cg_hud_weaponListBackground 1 (enabled) This setting will display a blue background for the selected weapon in the weaponlist.
cg_hud_weaponListFlash 1 (enabled) Disable this to remove the background "flash" for new weapons in the weaponlist.
cg_hud_drawPickup 1 (enabled) Disable this if you don't want the item pickup messages.
cg_hud_fragMessage 1 (small) Set this to 0 to completely remove the frag message or to 2 for the normal size.

New Uses for Old Console Variables
Name:Default setting:New usage:
cg_crosshairHealth 1 (enabled) This function now works for all crosshair types.
cg_lagometer 1 (enabled) If you disable this, the lower left corner is used for additional teamplay information.
cg_drawFPS 0 (disabled) Set this to 2 for a new calculation method, which is a little more accurate: the average framerate for the previous second is shown, rather than for the last 4 frames.
You may also be interested in changing cg_drawIcons.

"Say" Codes

Though the teamoverlay box can be useful, it is still often neccessary to quickly express certain needs to your teammates. These say codes will help people with their communication.

Usage
A say code is expressed with a number sign (#) followed by a command character. If the character is not supported, nothing is modified ("say_team #1" will show up as "#1", for example). If two number signs are placed beside each other, one will be removed and the other left intact ("say_team ##" will be "#", and "say_team #####" will become "###" as the two first doubles will be truncated and the last will remain because "end of line" isn't a supported command character).
The actual string editing is performed on the server, so no client-side options are available.

#h
   This will be replaced with your current health.
#H
   This will be replaced with your current health and color coded. If your health is less than 50, the numbers will be red; if you have more than 100 they will be white; otherwise they will be yellow.
#a
   This will be replaced with your current armor.
#A
   This will be replaced with your current armor and color coded. If your health is less than 50, the numbers will be red; if you have more than 100 they will be white; otherwise they will be yellow.
#p and #P
   This will be replaced with the names of any powerups you are currently carrying (this includes the enemy's flag in CTF).
#w
   This will be replaced with the best weapon you have ammo for. Only the weapon's abbreviation is used.
#W
   This will be replaced with the best weapon you have ammo for and color coded. Only the weapon's abbreviation is used. If your best weapon is a MG or Gauntlet the color will be red, otherwise white.
#l and #L
   This will be replaced with "Health" and/or "Armor" if you have less than 50 in either of these.
#m and #M
   This will be replaced with **-ammo for every weapon you have less than 5 rounds for, where ** is the weapon's abbreviation. For example: If you have 3 rockets and no slugs, but you have both the rocket launcher and the railgun, this command will display "RL-ammo RG-ammo". Machinegun and gauntlet are ignored.

New Teamplay Console Commands
\report
Sends a say_team message with information about your health, armor, best weapon and powerups. The say codes to achieve the same message is "say_team [H:#H] [A:#A] [#W] #p".

Other Tips
The following sample messages can be very useful as binds:

"say_team I'm looking for #l!!"

"say_team I need #m!!"

"say_team I've got the #p"


Weapon Dropping

Weapon and flag dropping can be enabled or disabled by setting or callvoting g_weapondrop.
Possible settings are 0 - disabled; 1 - "single drop"; 2 - "multi drop".
Weapondropping is only available in Team Deathmatch (g_gametype 3).

Single Drop
You may drop any of your weapons for your teammates. When you drop the weapon, you also drop all the ammo you have for it. You may only carry one of each weapon at a time.
The machinegun cannot be dropped: attempting to do so will drop 25 bullets instead.

Multiple Drop
With multidrop you can drop a weapon as many times as you've picked it up. A small "x" appears in the HUD's weaponlist if you have more than one weapon of that type. You also drop the default amount of ammo with the weapon, and can drop additional ammo if you choose to.

Drop Commands
Use \drop to drop items, e.g. "\drop rl" for the rocket launcher.
Weapons:
sg - Shotgun
gl - Grenade Launcher
rl - Rocket Launcher
lg - Lightning Gun
rg - Railgun
pg - Plasmagun
current - drops whatever weapon you are currently holding

Ammo: ("g_weapondrop 2" only)
bullets - mg ammo
shells - sg ammo
grenades - gl ammo
rockets - rl ammo
lightning - lg ammo
slugs - rg ammo
cells - pg ammo
Flag: (CTF only)
flag - drop the flag


Player Colors

By using special CPM skins, you can now choose your own colors. You can also force colors on your opponents to make them easier to see.

Supported Models and Skins
These are the skins that support the new color functions. Use the "\model" command to choose a model/skin.

- crash/default_pm
- visor/default_pm
- sarge/default_pm
- mynx/default_pm
- ranger/default_pm

Usage
The player colors have three areas: head, torso and legs. You can set different colors on each of these parts using the "\color" command. The railtrail will use the same color as your head.
In teamplay, you must use your team's colors on your body (torso+legs), but you can still have your individual color for your head and railtrail.

To set your colors, type
\color #,#,#
where the #'s are your preferred colors. You can choose to omit certain colors if you like, the system will use the last value given. In other words, you can either type
\color [head],[torso],[legs]
\color [head],[body]
or
\color [all]

You can also choose to skip the commas, and just type "\color ###".

Color Listing
CPM's color scheme is as follows:
0 = White
1 = Red
2 = Green
3 = Yellow
4 = Blue
5 = Magenta
6 = Cyan
7 = Orange
8 = Purple
9 = Light Blue

cg_forceColors
You can also force the color on your enemies, like the forcemodel cvar. If you activate "cg_forceColors", all enemies (with legal skins) will use the same color as you do. In teamplay, this function only forces the color on your opponents, not your teammates.

Creating New Colored Skins
CPM uses the skin name "default_pm" instead of "default" and "blue" or "red". If you're creating a new model, make sure you include a .skin file named "default_pm" and another file named "default_pm_vertex". The first one is for users with lightmapping on, and the other for users with vertex lighting. This system has been implemented so that colors look good in both lighting modes.
If you want to create another skin with color support but you don't want it to be the default skin, just make sure you have a "_pm" postfix on the skin name and it will work fine (e.g. "mynewskin_pm"). Just remember you must create another skin named "mynewskin_pm_vertex" as well.
Please look in the pk3's for examples on how we created ours.


Other Changes

Lightning Gun
The lightning gun has a new beam effect. There's also a "true shaft" feature, which is controlled by cg_truelightning, which ranges from 0 to 1. 0 will use the server-provided shaft info (as the standard id LG does); 1 will "tie" the shaft to the crosshair. A value of 0.5 will aim somewhere between the received location and the crosshair (this has the same effect as the old cg_trueLightning value of "2").

Scoreboard
The scoreboard now presents each client's FPS. This value is only updated once every 20 seconds.
The scoreboard also shows ready states and player colors.

Splash Damage
The new server-side cvar "g_radiusDamageFix" controls how the splash damage functions. If it is disabled, the original Q3-type splash damage is used (where you can damage people through platforms). If it is enabled, a trace is performed from the explosion origin to all clients within the radius to see if they are behind an obstacle.
Currently this setting may not be changed by clients. It is always enabled during CPM play (and disabled for Q3), except for q3tourney4 where it is disabled in both modes.

Sounds
There are now 4 different damage "beeps" that will help you determine how much damage you have inflicted on your opponent. The lower the tone, the greater the amount of damage done. This is extremely useful when playing over the Internet as lag can lead you to think a rocket scored a direct hit when it in fact did only minimal splash damage.
/cg_hitSounds 0/1/2 - no hit tone; same hit tone regardless of damage inflicted; CPM hit tones as described above
The notorious "dropped sounds" bug has been fixed.
The distance at which sounds can be heard has been increased slightly.

New Client-Side Commands and Variables
- /cg_emptyWeaponSwitch 0/1 - enables/disables switching to empty weapons
- /cg_smokeRadius_RL <#> - size of rocket puff
- /cg_smokeRadius_GL <#> - size of grenade puff
- /cg_smokeGrowth_RL 0/1 - turns expanding rocket smoke on or off
- /cg_smokeGrowth_GL 0/1 - turns expanding grenade smoke on or off
- /cleanConfig [filename] - "cleans" configs by deleting lines that are recognized as commands by the server (timelimit, fraglimit, etc)
- /cleanAll - cleans all configs from current dir. A copy of the cleaned files from the baseq3 directory will be saved to the current directory

More details about all of these commands can be found in-game (/help [command])

Client-Side Scripting
- /+vstr A B - executes parameter A
- /-vstr A B - executes parameter B
These can be very useful when bound to a key or button. For example, to fire grenades by holding down mouse2 and then switching to RL when you release it, add this to your config file:
/bind mouse2 +vstr glfire unfire
// executed when button is pressed
set glfire "weapon 4; wait 7; +attack"
// executed when button is released
set unfire "-attack; weapon 5"


Demos
- /saferecord [filename] - records a demo and avoids overwriting demos by adding _# to the end of filename
[filename] can also use the following special characters:
#n -> player's nick
#e -> opponent's nick
#m -> map name
#g -> game type