================================================================================ shrub mod for Return to Castle Wolfenstein 1.33 -------------------------------------------------------------------------------- Version 2.07b, Released 8/26/02 by shrub - shrub@planetwolfenstein.com http://www.planetwolfenstein.com/shrub ================================================================================ YOU MUST READ AND AGREE TO THE TERMS OF THE LICENSE IN SECTION 7 BEFORE USING THE INCLUDED .DLL OR .SO FILE. IT'S VERY REASONABLE, AND I THINK YOU'LL AGREE. Note that this *is* a beta release, and I would appreciate any and all bug reports you have. This mod has been renamed to simply "shrub mod", as it is clear that its usefulness has expanded well beyond OLTL servers. What does this mod do? To put it simply, I designed it primarily to give admins increased control over every aspect of gameplay so that they may craft a unique form of playing. These controls include how points are assigned, what weapons are allowed, what kind of actions are permissible, and how various in-game objects are handled. Second are conveniences for the player, including such functions as shoving other players out of the way, comprehensive statistics, automated reminders based on team composition, automated recommendations of who should revive (which medic is closest) and who to give ammo to (who has the greatest need, while factoring in distance from the LT), and more! This mod is completely server-side. The beauty of it is that it requires no client downloads whatsoever. Since there are so many customizable features in this mod, I have set the variables to a default setting that I think would be a great foundation to start from. Details on what these default settings are can be found in Section 2: Installation. As always, I'm open to suggestions! I can be reached at the email address above or on irc.enterthegame.com as "shrub". Want to see this mod in action? Connect your RTCW to jester.udpviper.com:27960! Also check out www.udpviper.com for chmod's new RTCW stats engine. Contents of this Document: 1. Revision History 2. Installation 3. Acknowledgements 4. Command Summary 5. Features 6. Known Bugs 7. License ================================================================================ 1. REVISION HISTORY ================================================================================ Beta 2.07 - released 8/26/02 - added corpse dragging - added proximity mines - added unlag code - added ammo giving/donating - added warmup damage - added group/name-matching private messaging - added uncap ammo option - added ignore feature (console and vote) - added warmup freeze - added complaint form ignoring - added playing dead - added ammo hints (display how much ammo teammates have) - added client num finding feature - added console slap player - added console kill player - added console force team - added console lock/unlock teams - added console force respawn - added console print commands - added console orient/disorient/shake player - vote strings are displayed in console - shuffle now keeps previous round and timeleft values for stopwatch mode - team gib messages are now yellow Beta 2.06.1 - released 8/14/02 - fixed bug involving scoring simultaneous self and other player gibs - fixed bug involving scripted map explosions and property damage - fixed bug involving fast-loading clients being allowed to late join when g_allowLateJoin was off - gib messages in client-side log now end names with ^7 Beta 2.06 - released 8/6/02 - g_allowPF now defaults to 1 - added chat filter/censor feature - manual spectator voice chats are disabled unless g_allowSpecChat is on - added special soldier weapons limiting feature - added private messaging feature - added team shuffling feature - added auto team shuffler (shuffle after team has x more wins than the other) - auto shuffler now takes into account stopwatch mode - added clan alignment feature - added headshot mode - disallowed dropping weapons while frozen - added "unstick" fix to freeze tag - fixed bug involving "most kills/revives" stat display - added disallowed votes feature - added votes for freezetag and headshot modes - fixed bug involving g_allowStartVotes - medics can revive underwater through g_waterRevive - flamers can damage themselves in ff-off mode through g_flameDamage - added censored word penalty (gibs players who say a censored word) - freeze tag unfreeze timeouts now respawn players at spawn points - added more help messages to freeze tag mode Beta 2.05 - released 7/23/02 - g_allowLateJoins now defaults to 1 - g_flagPoints now defaults to 1 - fixed "getting stuck in something after being revived" bug - added freeze tag gametype - added property damage feature - shortened length of /classes printout - spectator stats no longer logged - fixed minor bug involving axis/allies left being printed during intermission - added rotating server messages/MOTDs - added "FF off" mode to touch gibbing - added most kills/revives to end of round stats - dynamite warnings are now adjustable - start round ammo penalties now adjustable - added recognition for blocking an air strike - ammo packs can give helmets back - launch/throw/fling no longer have 3-space limitation - allow binoculars for non-LTs - added spawnhats to fun mode - MG42 repairs and blowing objectives is now logged - changes made to freeze tag since its initial beta: - changed from fire to green icon over head when frozen - added console messages with method of death - added logging of freezes and unfreezes - added freeze tag stats and most freezes/unfreezes - added needle proximity unfreezing - fixed bug involving objectives - added Medic! cry to freezes - added point system - added "Axis Win/Allies Win" banner to end game check - fixed bug involving end game checks - rewrote unfreeze code so that g_unFreezeTime is no longer relative to server load - added g_freezeRespawn to set a time-out for automatic unfreezing - added g_unFreezeInvul to set invulnerability time after unfreezing - disallowed frozen from picking up items (e.g. dropped objective) - frozen now drop to near or at ground level - fixed quirk involving flamethrower (client-side flame chunks) Beta 2.04.2 - released 7/14/02 - g_shove now defaults to 1 - g_legDamage now defaults to 0 Beta 2.04.1 - released 7/13/02 - changed way in which kill ratios are displayed - removed sarcastic remarks when player makes zero kills during life Beta 2.04 - released 7/12/02 - g_showTapOut now defaults to 0 - renamed launch/throw/fling to launchn/thrown/flingn - added new launch/throw/fling that use clients' names - added g_allowLTF to disable launch/throw/fling and fun mode entirely - added friendly dynamite 5-second reminder g_dynaWarn - added g_medObjHeal to disallow medics self-healing when carrying objectives - enabled black text in names - added times killed and kill ratio to stats - silenced Medic and Need Ammo voice chats for fun mode - increased grenade and PF ammo given in fun mode - added round start ammo request penalty g_startAmmoPenalty - added leg shot speed reduction through g_legDamage - players can switch teams during warmup, regardless of g_maxlives Beta 2.03 - released 7/06/02 - added LT ammo distribution prioritizer - added no LT reminder - added g_lifeStats to toggle limbo displaying stats during life or round - added g_lockSpecs to keep spectators static and pointed up - added back team-switch anti-spam code with 5 second delay instead of 30 - added g_flagWins to remove checkpoint flags - added location of downed player to medic reminders - added g_LTShootPenaltyRange to allow customization of enemy detection - increased default range of enemy detection for LT Shoot Penalty - fixed bug involving medic reminders detecting spectating medics - fixed bug involving last kill of the game not being counted in stats - added a number of cVars to customize bonus point values - added g_allowVenom to allow/disallow venom guns - added g_allowFlamer to allow/disallow flamethrowers - added g_allowMauser to allow/disallow mausers - helmet protection is now customizable (g_helmetProtects, g_helmetDamage) - fixed bug where late joiners in limited life games would still spawn - added g_showRevives to print revives in console - a player is no longer late join killed if only player on server - added g_teamCountConsole to enable/disable team counts in console - gib points can now be toggled with g_gibPoints - gib reporting can now be toggled with g_reportGibs - added g_logStats to print stats in server log at end of round - added g_showTapOut to disable "tapped out into limbo" messages Beta 2.02 - released 7/02/02 - added medic reminders - LT damage return now disabled when enemy is nearby - changed touch-gibbing to use id's new g_knifeonly code to remove weapons - spectators can talk to non-specs (cvar toggled, default off) - fixed minor spacing issue in the "tapped out" limbo message - ammo packs now add pistol ammo (cvar toggled) - changed how late joins are logged - now tracking team kills, gibs, team gibs, ammo & health given, head shots - print stats in console at end of round for each player - added cvar to log stats - Axis/Allies left reporting now cvar toggled - Axis/Allies left decreased frequency of reminders - launch/throw no longer work when someone is dead or spectating - added server-side command "fling" - added client-side command "stats" - added server cvar to disable corpse sinking - fixed bug where specs' stats would be displayed to someone else - fixed bug involving specs switching who they're following - fixed bug involving late joiners respawning in OLTL games - added distance function to debug mode - added range function to debug mode - added no medic reminder - added client-side command "classes" Beta 2.01 - released 6/30/02 - suicides (/kill) are explicitly reported in server log as such - fixed bug where self-initiate limbos would be counted as gibs by whoever last killed you - fixed bug where those joining during warmup would be late-join killed - decreased spawnguns to 1-10 guns (was 1-25) - decreased spawnnades to 10 nades (was 40) - added headshot detection to debug mode (debug mode is undocumented) - allow ammo pack syringes to be enabled/disabled by a server cvar Beta 2.0 - released 6/29/02 - Updated for RTCW 1.33 code - Added grenade shower - Inactivity drop won't apply to fallen - Added give grenades on demand for g_fun mode - Fixed bug with giving health on demand (could revive self) - /spawnGun renamed to /spawnGuns - Fixed spawnGuns/spawnNades spam exploit (server could crash when it exceeds max entities) - Added global debug cvar - Added touch-gib mode * Changes prior to 2.0 were not documented ================================================================================ 2. INSTALLATION ================================================================================ Windows: - Create a folder "shrubmod" inside your Return to Castle Wolfenstein Folder e.g. C:\Program Files\Return to Castle Wolfenstein\shrubmod - Extract "qagame_mp_x86.dll" into this folder - Run RTCW with the flag "+set fs_game shrubmod" (create a shortcut to RTCW, right click on it and select "Properties", and in the "Target" box, add " +set fs_game shrubmod" at the end) Linux: - Create a directory "shrubmod" in your RTCW directory e.g. "/usr/local/games/wolfenstein/shrubmod" - Extract qagamei386.so into this directory - Run RTCW with the flag "+set fs_game shrubmod" If these directions aren't clear, you probably shouldn't be running a server! QUICK SUMMARY FOR THE IMPATIENT The default settings make the following major changes to gameplay: - Ammo packs give pistol ammo to all and one syringe to medics - Helmets protect players from their first head shot, giving them only 5 damage, except in the case of a sniper, which still gives full damage - If a player calls for ammo and shoots a friendly LT within 2 seconds later, that damage is also returned to the player, unless there is an enemy nearby - The number of players on each team that still have respawns left is displayed when those figures change in limited or one-life games - Gibs (when a player can no longer be revived) are recorded in console - Players receive point bonuses or reductions for gibbing or team gibbing - When LTs say "I'm a Lieutenant", they are told who the best person to give ammo to is and his location - When a player dies, the nearest medic is asked to revive the fallen player and is given the appropriate location - If there are no medics alive on a team, a fallen player is told such - If there are no LTs alive on a team, a player who requests ammo is told such - Players receive statistics on a per-life basis when they limbo, and statistics for the entire round when the round ends - Players can access their round statistics at any time by using /stats - Players can use /classes to see how many of each class are left on a team - Players are notified 5 seconds before a friendly dynamite explodes nearby - Players can shove each other using +salute. The default settings are just enough to allow players to shove someone out of a doorway. - Players who call for ammo in the first 5 seconds of a round are penalized - Ammo packs can replenish a lost helmet - Players can send private messages to each other - Players can drag fallen teammates out of harm's way - Players can give each other spare ammo - Players can call votes to ignore other players Of course, there are many other features that can be selectively enabled, but you'll need to read the rest of this file to find out what they are. ================================================================================ 3. ACKNOWLEDGEMENTS (In alphabetical order) ================================================================================ Thank you to chmod 700 for his contributions to this project. The following people helped in testing and/or contributed ideas or bug reports: 2.01 and prior: D6M14, EvilOne, Glocksmith, Leviathan, Liquidity, logosmani, Mr. Underhill, Phreylan, pure 2.02: Bishop, BluNereid, Dima 2.03: Bishop, Glocksmith, HappyG, Infinite, KingFlea, PizDets, Reflexion 2.04: Reflexion, Scott307 2.05: BlackRider, CorbinDallas, d-dog, ^Evil^, Glocksmith, Viagra 2.06: Artemis, BlackRider, Daz, Dead Penguin Clan, Glocksmith, HappyG, Jimbonics, Shredded Wheat 2.06.1: LANMAN, Reflexion 2.07: 420, Adrian, EvilOne, HappyG, LANMAN, logosmani, Phreylan Thank you to The Quark, who originally ran his own mod for 1.31 featuring gib reporting/points, axis/allies left, and late join killing. Thanks to Neil Toronto for his Unlagged server-side lag compensation code. ================================================================================ 4. COMMAND SUMMARY ================================================================================ Server-Side cVars Name Default Function g_allowFlamer 1 allow/disallow flamethrowers g_allowLateJoins 1 allow/disallow late joins g_allowLTF 1 allow/disallow launch/throw/fling/fun mode g_lateJoinTime 15 time after round start when one is late g_allowPF 1 allow/disallow panzerfausts g_allowSpecChat 0 turn on/off spec chat to non-specs g_allowStartVotes 1 allow/disallow map-starting votes g_maxStartVotes 3 # of attempts allowed before player is kicked g_allowVenom 1 allow/disallow venom gun g_ammoGivesHelmet 1 turn on/off helmets in ammo packs g_ammoGivesSyringe 1 turn on/off syringes in ammo packs g_ammoGivesPistol 1 turn on/off pistol rounds in ammo packs g_ammoHints 1 turn on/off ammo hints g_ammoHintDelay 250 time (ms) between hint updates g_ASBlock 0 turn on/off air strike blocking recognition g_binocs 0 set which other classes have binocs g_capAmmo 1 enable/disable 3-clip ammo limit g_censor blank list of words to censor in chat g_censorPenalty 0 turn on/off gibbing for using censored words g_censorPenaltyMsg ** message to display when censored word is used g_disallowedVotes * list of disallowed votes g_dragCorpse 1 enable/disable corpse dragging g_dynaWarn 5 dynamite warning notification time g_flagPoints 1 allow/disallow flag points g_flagWins 1 enable/disable checkpoint flag wins g_flameDamage 0 turn on/off flamer self-damage in FF off mode g_freezeTag 0 turn freeze tag on/off g_giveAmmo 1 enable/disable ammo giving/donating g_unFreezeTime 3 time to unfreeze g_freezeRespawn 0 unfreeze timeout g_unFreezeInvul 1 invulnerability time after unfreeze g_fun 0 turn fun mode on/off g_gibPoints 1 enable/disable gib points g_headshot 0 turn headshot mode on/off g_headshotDmg 25 in headshot mode, damage per headshot g_helmetProtects 1 turn on/off helmet protection g_helmetDamage 5 amount of damage first head shot takes g_legDamage 0 turn on/off leg shot speed reduction g_legDmgTime 300 duration (in ms) of initial speed reduction g_legDmgAmount 2 speed reduction constant g_lockSpecs 0 turn on/off spectator locking g_logStats 1 log round stats enable/disable g_lifeStats 1 use life stats (1) or round stats (0) g_maxFlamer -1 max flamers per team (-1 is unlimited) g_maxMauser -1 max mausers per team (-1 is unlimited) g_maxPF -1 max panzers per team (-1 is unlimited) g_maxVenom -1 max venoms per team (-1 is unlimited) g_mines 0 enable/disable proximity mines g_mineActivate 3 seconds before an armed mine activates g_mineAutoDisarm 1 disarm mine when player limbos g_mineShootable 0 whether mine can be shot at or not g_playDead 0 enable/disable playing dead g_playDeadLook 1 enable/disable looking around while PD g_privateMessages 1 turn on/off private messages g_propDamage 0 turn on/off property damage g_medObjHeal 1 turn on/off medic self-healing when carrying obj g_reportGibs 1 enable/disable gib reporting g_shootLTPenalty 1 turn LT damage return on/off g_shootLTPenaltyRange 1200 enemy detection range g_shootLTPenaltyTime 2 amount of time LT penalty applies g_shove 1 turn shoving on/off g_shoveAmount 80 amount of shove to apply g_shoveNoZ 1 turn z-axis shoving on/off (1 means off) g_showMsgs 0 turn off msgs/seconds between each msg g_msg1 ... g_msg10 blank custom messages (start from g_msg1) g_msgPos 0 position of message g_showRevives 0 turn on/off printing revives in console g_showStats 1 turn limbo stats on/off g_showTapOut 0 turn on/off "tapped out into limbo" messages g_showTeamCount 1 turn team left reporting on/off g_shuffle 0 automatically shuffle teams (see documentation) g_startAmmoPenalty 5 start ammo penalty time g_teamCountConsole 1 enable/disable team counts in console g_sinkCorpses 1 turn on/off corpse sinking (g_maxlives 1 only) g_touchgib 0 turn touch gibbing on/off (map_restart after 1) g_unlag 0 turn on/off lag compensation g_warmupDamage 0 enable/disable warmup damage g_warmupFreeze 0 enable/disable warmup freezing g_waterRevive 0 turn on/off underwater reviving * disallowedVotes defaults to "freezetag headshot normal". See documentation below for full details ** g_censorPenaltyMsg defaults to "^1Note: ^7You have been killed for using a censored word" Server-Side cVars to customize point bonuses g_stealObjBonus 10 bonus for stealing objective g_captureObjBonus 15 default bonus for capturing objective g_killCarrierBonus 10 bonus for killing objective carrier g_secureObjBonus 10 bonus for securing objective from slain carrier g_plantBonus 5 bonus for planting dynamite at objective g_diffuseBonus 5 bonus for diffusing dynamite g_destObjBonus* -1 bonus for destroying objective with dynamite g_capBlueObjBonus* -1 bonus for capturing allied objective g_capRedObjBonus* -1 bonus for capturing axis objective * These three bonuses are special in that the points given are specified in the map. To use the map's default values, set these cVars to -1. Anything above or below -1 will override the map's default values. Server-Side Commands Name Function launch * Launch throw * Throw fling * Fling launchn Launch thrown Throw flingn Fling cancelvote Cancel vote shuffle Shuffle teams clantag Place players with on same clan Place players with on same tag Place players with on same putteam Place player on specified team lock Lock specified team, preventing further joins unlock Unlock specified team respawn Respawn specified player immediately ignore Ignore specified player globally unignore Unignore specified player slap Slap specified player (-25 health + slap effects) killclient Kill specified player cp Print message in center of screen print Print message in console chat Print message in chat area orient Reset player's display and controls disorient Flip player's display or randomize controls shake Briefly shake player's display * You must enter the name without using colors. If there are duplicate matches, use the clientnumber-based commands instead. Client-Side Commands Name Function classes display number of each class on your team m * send a private message to another player msg * send a private message to another player pm * send a private message to another player +salute shove player/drag corpse spawnGuns drop 1-10 random guns (g_fun must be 1) spawnHats drop hats around player spawnNades nade shower (g_fun must be 1) stats display stats in console unlag enable/disable lag compensation giveammo give amount from reserves to player pointed at nocomplaints enable/disable complaint forms playdead play dead or get up mg send a PM to player(s) matching "name" msgg send a PM to player(s) matching "name" pmg send a PM to player(s) matching "name" clientnum find clientnumbers of player(s) matching "name" mine enable/disable proximity mine usemine enable/disable proximity mine * You must enter the name without using colors and with spaces replaced by backslashes (\). ================================================================================ 5. FEATURES ================================================================================ AIR STRIKE BLOCKING RECOGNITION - new for 2.05 -------------------------------------------------------------------------------- g_ASBlock default: 0 turn on/off air strike blocking recognition When g_ASBlock is on (1), players are recognized in the center of the screen when they block an air strike. ALLOW / DISALLOW SOLDIER GUNS -------------------------------------------------------------------------------- Cvars: g_allowPF default: 0 allow/disallow panzerfausts g_allowFlamer default: 1 allow/disallow flamethrowers g_allowMauser default: 1 allow/disallow mauser g_allowVenom default: 1 allow/disallow venom gun When g_allowPF is off (0), players will be unable to select the Panzerfaust as their weapon. If they attempt to, they are told that it is not allowed and are automatically switched to their team's default SMG (Thompson or MP40). New for 2.03: Flamethrowers, Mausers, Venoms can be selectively disabled using g_allowFlamer, g_allowMauser, and g_allowVenom, respectively. By default, those three variables are on (1). AMMO GIVING / DONATING - new for 2.07 -------------------------------------------------------------------------------- Cvars: g_giveAmmo default: 1 enable/disable ammo giving/donating Commands (client-side): giveammo When g_giveAmmo is on (1), players can donate spare ammo from their reserves to other players. This is accomplished by standing near a player and pointing at him, followed by issuing the command "/giveammo x", where x is the amount of ammo he wishes to give. This is useful in situations where a Lieutenant is not around, and one player has plenty of ammo to spare. The giveammo command can be bound to a key with a pre-determined amount of ammo for added convenience. Players can only give ammo to players with the same weapon as they one they are holding when g_giveAmmo is 1. When g_giveAmmo is 2, players can give ammo to other types of weapons using exchange rates proportional to the size of a weapon's clip. For example, if a player with a Venom wishes to give 500 ammo to a player with a MP40, the MP40 user will receive 32 bullets. For both methods, only bullet-based weapons can exchange ammo. AMMO HINTS - new for 2.07 -------------------------------------------------------------------------------- Cvars: g_ammoHints default: 1 turn on/off ammo hints g_ammoHintDelay default: 250 time (ms) between hint updates When g_ammoHints is on (1), Lieutenants will receive a readout of how much ammo a teammate is carrying when he points at a teammate from a close distance. This value will update every g_ammoHintDelay milliseconds. AMMO PACKS GIVE SYRINGES and PISTOL ROUNDS and HELMETS -------------------------------------------------------------------------------- Cvars: g_ammoGivesSyringe default: 1 turn on/off syringes in ammo packs g_ammoGivesPistol default: 1 turn on/off pistol rounds in ammo packs g_ammoGivesHelmet default: 1 turn on/off helmets in ammo packs When g_ammoGivesSyringe is on (1), medics will receive one syringe per ammo pack that they pick up. The ten syringe limit still applies. Similarly, when g_ammoGivesPistol is on (1), pistol ammo is refilled by ammo packs. New for 2.05: Ammo packs can return helmets when g_ammoGivesHelmet is on (1). This can be used in conjunction with helmet protection, detailed elsewhere. AXIS / ALLIES LEFT -------------------------------------------------------------------------------- Cvars: g_showTeamCount default: 1 turn team left reporting on/off g_teamCountConsole default: 1 enable/disable team counts in console When g_teamLeft is on (1), when a player enters limbo mode, the number of axis and allies left per team is displayed to every player in the center of his/her screen. These totals take into account who has respawns left, thus it is particularly useful for OLTL play. If g_maxlives is 0, this information is not displayed, regardless of g_teamLeft. New for 2.03: When g_teamCountConsole is off (0), team counts are not displayed in the console. BINOCULARS FOR NON-LTs - new for 2.05 -------------------------------------------------------------------------------- Cvars: g_binocs default: 0 set which other classes have binocs g_binocs has 7 modes of binocular distribution: 1 - all, 2 - soldiers, 3 - medics, 4 - engineers, 5 - medics and soldiers, 6 - soldiers and engineers, 7 - medics and engineers A setting of 0 disables this feature. Only LTs can call for artillery strikes. CANCEL VOTE -------------------------------------------------------------------------------- Commands (server-side): cancelvote Cancelvote cancels a vote taking place. CENSOR CHAT - new for 2.06 -------------------------------------------------------------------------------- Cvars: g_censor default: blank list of words to censor in chat g_censorPenalty default: 0 turn on/off gibbing for using censored words g_censorPenaltyMsg default: * message to display when censored word is used * g_censorPenaltyMsg defaults to "^1Note: ^7You have been killed for using a censored word" When g_censor is set, words in g_censor will be filtered from any chats on the server. They will be replaced with asterisks. For example, if g_censor is set like so: g_censor "swear curse blah" An attempt to say "I swear I'm going to curse and start swearing again." will appear as "I **** I'm going to ***** and start ****ing again." When a filtered word is encountered, the text is sent with the colors stripped out. Otherwise, colors remain intact. You must issue a map_restart if you make any changes to g_censor in order for the changes to apply. When g_censorPenalty is on (1), players explode when they say a censored word. They are also messaged with g_censorPenaltyMsg, which can be customized. Note: Both g_censor and g_censorPenaltyMsg must be set in a config file or in the console. Attempting to do so through rcon may result in only the first word you enter being set as that cvar. CLAN ALIGNMENT - new for 2.06 -------------------------------------------------------------------------------- Commands (server-side): clan Upon issuing the "clan" command with the appropriate parameters, players with the in their name will be moved to the specified . Everyone else will be moved to the opposite team, regardless of team balance. Spectators will be ignored. The team specified can be either axis, red, allies, or blue. The clan tag must not have any colors and can include spaces. CLASSES -------------------------------------------------------------------------------- Commands (client-side): classes Upon issuing the "classes" command (either via bind or in the console using /classes), a player will receive, in the center of his/her screen, the number of each class on his/her team. New for 2.05: The length of the printout has been shortened to prevent line breaks on large servers. CLIENT NUMBER FINDER - new for 2.07 -------------------------------------------------------------------------------- Commands (client-side): clientnum This command will return a list of players with in their name, their score, and, most importantly, their client number. This is a utility/helper function to assist in using commands that require client numbers in the event that you are not running WAB. CORPSE DRAGGING - new for 2.07 -------------------------------------------------------------------------------- Cvars: g_dragCorpse default: 1 enable/disable corpse dragging Commands (client-side): +salute When g_dragCorpse is on (1), players can drag other dead players around by crouching over the body and holding down the +salute key. It is recommended that +salute be bound to a mouse button, which makes dragging much easier. Corpse dragging is useful in situations where a medic is not nearby and a body can be stashed in a safe area while a medic arrives. Alternately, g_dragCorpse can be set to 2 to prevent players from dragging enemy corpses. CUSTOMIZE BONUS POINTS VALUES - new for 2.03 ------------------------------------------------------------------------------- Cvars: Name Default Function g_stealObjBonus 10 bonus for stealing objective g_captureObjBonus 15 default bonus for capturing objective g_killCarrierBonus 10 bonus for killing objective carrier g_secureObjBonus 10 bonus for securing objective from slain carrier g_plantBonus 5 bonus for planting dynamite at objective g_diffuseBonus 5 bonus for diffusing dynamite g_destObjBonus* -1 bonus for destroying objective with dynamite g_capBlueObjBonus* -1 bonus for capturing allied objective g_capRedObjBonus* -1 bonus for capturing axis objective * These three bonuses are special in that the points given are specified in the map. To use the map's default values, set these cVars to -1. Anything above or below -1 will override the map's default values. These values are fairly self-explanatory, however, note that g_capBlueObjBonus is added to an allied player who captures an objective for his team. For example, an allied player transmits the documents on mp_beach. Likewise, g_capRedObjBonus is for axis objectives. Note that g_captureObjBonus is rarely used. DISABLE CHECKPOINT FLAG WINS -------------------------------------------------------------------------------- Cvars: g_flagWins default: 1 enable/disable checkpoint flag wins When g_flagWins is off (0), checkpoint flags are removed from the map after a map_restart is called. This effectively turns any solely checkpoint map into a team deathmatch, and is not recommended for unlimited life games. DISABLE CORPSE SINKING - new for 2.02 -------------------------------------------------------------------------------- Cvars: g_sinkCorpses default: 1 turn on/off corpse sinking When g_sinkCorpses is off (0), corpses will remain on the ground indefinately, unless gibbed by an explosive or other force. Note that this setting will only take affect if g_maxlives is 1. DISABLE FLAG POINTS -------------------------------------------------------------------------------- Cvars: g_flagPoints default: 1 allow/disallow flag points When g_flagPoints is off (0), players do not receive points for retrieving flags. DISABLE MAP-STARTING VOTES -------------------------------------------------------------------------------- Cvars: g_allowStartVotes default: 1 allow/disallow map-starting votes g_maxStartVotes default: 3 number of attempts allowed before player is kicked When g_allowStartVotes is off (0), map-starting votes are disallowed. Specifically, start_match and map_restart are not allowed at any time, and reset_match is not allowed during warmup (so that reset_match can still be used during actual round play in the event of a massive, intentional teamkill). The number of attempts to call a disallowed vote is tracked, and players are warned not to call them after attempting to do so. If the number of attempts meets or exceeds g_maxStartVotes, the player is kicked. DISABLE MEDIC SELF-HEALING WHEN CARRYING AN OBJECTIVE - new for 2.04 -------------------------------------------------------------------------------- Cvars: g_medObjHeal default: 1 turn on/off medic self-healing when carrying obj When g_medObjHeal is off (0), medics cannot heal themselves with their health packs when they are carrying an objective. They may still pick up enemy health packs or health packs from other medics. DISALLOW LATE JOINS -------------------------------------------------------------------------------- Cvars: g_allowLateJoins default: 1 allow/disallow late joins g_lateJoinTime default: 15 time after round start when one is late If g_allowLateJoins is off (0), any players joining the game after g_lateJoinTime seconds will be killed. This method is preferrable to blocking joins using other methods since it allows players to pick their team immediately, without affecting gameplay. Late joins are logged in the following format: Late Joiner: : DISALLOW SPECIFIC VOTES - new for 2.06 -------------------------------------------------------------------------------- Cvars: g_disallowedVotes default: "freezetag headshot normal" Any vote strings contained in g_disallowedVotes will be denied if a user attempts to call a vote for them. For example, g_disallowedVotes can be changed to: g_disallowedVotes "freezetag headshot normal map" This will deny votes to change the map. Note that if you wish to use the "Disable Map-Starting Votes" feature, you must NOT place "map_restart", "start_match", or "reset_match" in the g_disallowedVotes cVar. DYNAMITE WARNINGS - new for 2.04 -------------------------------------------------------------------------------- Cvars: g_dynaWarn default: 5 dynamite warning notification time When g_dynaWarn is on (1), players near a friendly, armed dynamite are warned that the dynamite will detonate 5 seconds prior to it doing so. New for 2.05: g_dynaWarn now specifies the number of seconds before a dynamite blows that teammates are notified. It defaults to 5 seconds. When g_dynaWarn is 0, the feature is disabled. FORCE RESPAWN - new for 2.07 -------------------------------------------------------------------------------- Commands (server-side): respawn This command will immediately respawn a player who is either dead or in limbo, regardless of how many lives the player has left in a g_maxlives game. It requires a clientnumber, which can be found with the /clientnum helper function or used in conjunction with WAB. FORCE TEAM - new for 2.07 -------------------------------------------------------------------------------- Commands (server-side): putteam This command will immediately switch someone to the specified team, which can be either axis/red/r, allies/blue/b, or spectator/spec/s. It requires a clientnumber, which can be found with the /clientnum helper function or used in conjunction with WAB. FLAMETHROWER SELF-DAMAGE IN FF-OFF MODE - new for 2.06 -------------------------------------------------------------------------------- Cvars: g_flameDamage default: 0 turn on/off flamer self-damage in FF off mode When g_flameDamage is on (1), flamethrowers can damage themselves even if friendly fire is disabled. When friendly fire is enabled, flamethrowers can still damage themselves regardless of g_flameDamage. FREEZE TAG - new for 2.05 -------------------------------------------------------------------------------- Cvars: g_freezeTag default: 0 turn freeze tag on/off g_unFreezeTime default: 3 time to unfreeze g_freezeRespawn default: 0 unfreeze timeout g_unFreezeInvul default: 1 invulnerability time after unfreeze When g_freezeTag is on (1), freeze tag mode is enabled upon restarting the map. In freeze tag play, when a player "dies," he is frozen in place. A green icon hovers over the player's head to indicate that he is frozen. The player will not be able to move or shoot, but pivot around. To unfreeze teammates, one must stand next to him for g_unFreezeTime seconds. A player does not need to be facing the frozen teammate to unfreeze, so he can simply touch the frozen teammate and face an area of interest to defend himself. This time must be continuous. If a player begins to unfreeze someone, then ventures off and returns later, he will have to stand next to the teammate for the full g_unFreezetime duration. Medics can also unfreeze teammates instantly by using a needle, but medics can still unfreeze "manually" to save needles. Players receive 1 point for freezing an enemy, -3 points for freezing a team- mate, 2 points for unfreezing a teammate, and 1 point for unfreezing a teammate with a needle. The object of the game is to freeze the entire opposing team. Objective and checkpoint wins are still valid. It is highly recommended that you set g_maxlives to 1. This will disallow players from changing classes to become unfrozen. Note that even though g_maxlives is 1, players will technically never die. It is also recommended that you have enough time during warmup to allow players to switch classes. If desired, frozen players can be automatically unfrozen after a certain duration has passed since their initial freezing or a teammates' attempt at unfreezing them, whichever is greater. This can be set with g_freezeRespawn. For example, if g_freezeRespawn is set to 120, players will automatically unfreeze after two minutes of waiting. It is not recommended that this setting be used except in small games. g_unFreezeInvul controls the number of seconds a player is invulnerable after being unfrozen. It defaults to one second. Logging occurs in the following format: Freeze: (): froze Unfreeze: : unfroze End of round stats are logged in the same way as normal play, except gibs will always be 0. Frozen players can partially be walked through to prevent problems with blocking passageways, but this may also make it difficult to unfreeze with the needle in certain situations. The needle is also a "proximity unfreeze," since normal unfreezing has a proximity effect. Thus, it is possible to unfreeze multiple people with one needle. Note that if you are holding a ticking grenade and are frozen, the grenade will be frozen along with you. When you are unfrozen, the grenade will be thrown. Please report any bugs! New for 2.06: Implemented fix similar to medic revive unstick fix in 2.05. Additionally, players cannot drop their weapons while frozen. Freeze Tag can be voted for if "freezetag" is removed from g_disallowedVotes. See the documentation for g_disallowedVotes for details. It is highly recommended that you also remove "normal" from g_disallowedVotes if you decide to allow the "freezetag" vote. Players initiate relevant votes through the command "/callvote freezetag" or "/callvote normal". When g_freezeRespawn runs out, players are moved to the respawn queue instead of unfreezing at their current position. This works regardless of g_maxlives. FUN MODE -------------------------------------------------------------------------------- Cvars: g_fun default: 0 turn fun mode on/off When g_fun is on (1), the following applies: Commands: /spawnGuns drop between 1 to 10 random guns near player /spawnNades drop 10 nades randomly around player in a "nade shower" /spawnHats drop 10 hats randomly around the player Additional Features: Give Ammo on Demand - players are given one grenade and ammo for their two-handed weapon when calling for ammo Give Health on Demand - players are given 20 health when calling for a medic New for 2.04: Requests for ammo and health are silenced when fun mode is on to avoid flooding. Grenades given and PF ammo given has also been increased. g_allowLTF must also be on (1) for fun mode to be active. g_allowLTF can only be disabled in the command line (add "+set g_allowLTF 0" to the command). GIB REPORTING / GIB POINTS - new for 2.03: now configurable -------------------------------------------------------------------------------- Cvars: g_reportGibs default: 1 enable/disable gib reporting g_gibPoints default: 1 enable/disable gib points g_showTapOut default: 0 turn on/off "tapped out into limbo" msgs When g_reportGibs is on (1), player gibs (when someone transitions from being revivable to limbo or directly from alive to limbo) are now reported in the console and server log. Team gibs are given a red-colored message to distinguish themselves from enemy gibs. Server logging of gibs occurs even when g_reportGibs is off (0). FORMAT: Gib: : gibbed When g_gibPoints is on (1), players receive 1 point for gibbing an enemy and a 3 point deduction for gibbing teammates or gibbing himself. When g_showTapOut is on (1), "tapped out into limbo" messages are displayed in the console. GROUP / NAME-MATCHING PRIVATE MESSAGING - new for 2.07 -------------------------------------------------------------------------------- Cvars: g_privateMessages default: 1 turn on/off private messages g_minMsgChars default: 2 min number of characters in name Commands (client-side): msgg, pmg, or mg These commands differ from the regular private messaging commands in that they do not require a complete name to match. The syntax is: /msgg The same syntax applies to /pmg and /mg. The message is sent to every player who contains in their name. This can be one match or multiple matches. This is particularly useful for messaging an entire clan. This command is more versatile than the existing private messaging command and will eventually replace the existing private messaging commands. The string must be g_minMsgChars in length or greater to prevent abuse. HEADSHOT PRACTICE MODE - new for 2.06 -------------------------------------------------------------------------------- Cvars: g_headshot default: 0 turn headshot mode on/off g_headshotDmg default: 25 in headshot mode, damage per headshot By popular demand, headshot practice mode has been added with the permission of the Dead Penguin Clan. When g_headshot is on (1), only knives or head shots frombullet weapons do any damage. Adjusting g_headshotDmg adjusts the amount of damage each headshot inflicts. You may want to turn off Helmet Protection. Setting g_headshotDmg high (e.g. 1000) will gib a player after one head shot. During head shot mode, hit boxes will be drawn when a player lands a shot on another player to indicate where one is shooting. These boxes appear bright red and fade away after 400 milliseconds, though this can be adjusted on the client side through cg_railTrailTime. When a player receives a head shot, either a smiley face or "LOSER" is printed over his head and the player who lands the head shot receives an audible and textual confirmation. The text can be turned off by setting g_headshot to 2. Headshot mode is votable if "headshot" is removed from the g_disallowedVotes string. HELMET PROTECTS FROM HEAD SHOTS - now customizable for 2.03 -------------------------------------------------------------------------------- Cvars: g_helmetProtects default: 1 turn on/off helmet protection g_helmetDamage default: 5 amount of damage first head shot takes When g_helmetProtects is on (1), the first head shot a player receives will do g_helmetDamage damage on the player and knock off his helmet. The idea here is that the helmet largely protects a player from his first head shot. Note that this applies to all shots except those coming from a sniper, where normal damage still occurs. IGNORE CLIENTS - new for 2.07 -------------------------------------------------------------------------------- Commands (server-side): ignore unignore Ignoring a client will silence their chats, voice chats, callvotes, votes, and private messages. An ignored client does not count towards the vote totals. Unignoring a player has the opposite effect. These commands require a clientnumber, which can be found using the clientnum helper function or used in conjunction with WAB. Players can also call a vote to ignore a client using the vote "/callvote ignore ", where client is either a clientnumber or the name of the client (partial matches are accepted, colors should not be entered). Similarly, "/callvote unignore " will allow players to vote on unignoring a client. These two votes can be selectively disabled by adding them to g_disallowedVotes. IGNORE COMPLAINT FRORMS - new for 2.07 -------------------------------------------------------------------------------- Commands (client-side): nocomplaints A user can type "/nocomplaints 1" in the console to elect not to receive complaint forms for TKs. Alternately, complaint forms can be turned back on with "/nocomplaints 0". Simply typing "/nocomplaints" can be used to check whether one is ignoring complaint forms or not. KILL PLAYER - new for 2.07 -------------------------------------------------------------------------------- Commands (server-side): killclient This commmand kills a player on command. It requires a clientnumber. This command requires g_allowLTF to be on. LAG COMPENSATION - new for 2.07 -------------------------------------------------------------------------------- Cvars: g_unlag default: 0 turn on/off lag compensation Commands (client-side): unlag When g_unlag is on (1), lag compensation is enabled. The server will keep a record of the past half-second of player positions. When a player shoots, the server "rewinds" players to the position the shooter most likely saw them at based on their ping, and the server calculates hits based on those rewound positions. This virtually eliminates the effects of lag, allowing players with pings below 500 ms to not need to lead their shots. When g_unlag is on, players can turn off lag compensation calculations for their shots using the /unlag command. /unlag 0 will turn off lag compensation, while /unlag 1 will re-enable it if they had previously turned it off. Players may also use /unlag to check the status of their lag compensation. The unlag code was written by Neil Toronto and adapted for use in RTCW. LAUNCH/THROW/FLING -------------------------------------------------------------------------------- Cvars: g_allowLTF default: 1 enable/disable launch/throw/fling Commands (server-side): launch launch throw throw fling fling Launch propels a player into the air, while throw pushes them forward and slightly into the air. This is intented to be used in conjunction with programs such as Wolfenstein Admin Bot which can parse "say" or "say_team" commands for "launch" and "throw" and a player name and send the appropriate command along with the client number derived from the specified player name. However, there's nothing stopping you from experimenting with the command manually. e.g., if you're the first person to connect, a "launch 0" will launch yourself. New for 2.02: fling has the upwards velocity of launch and a random direction on the x-y plane. New for 2.04: launch/throw/fling have been renamed to launchn/thrown/flingn. New launch/throw/fling commands have been implemented that will allow you to use a client's name instead. Do not use colors when typing the client's name. You may have a maximum of three spaces in the name. If there are more than three spaces, use the client number instead. g_allowLTF must be on (1) for any of the launch/throw/fling commands to work. This variable can only be set to 0 through the command line (add the following: "+set g_allowLTF 0"). It cannot be modified through the console. This is useful for admins who wish to deny launch/throw/fling to rcon users. New for 2.05: The 3-space limitation no longer applies to launch/throw/fling. LEG SHOT TEMPORARY SPEED REDUCTION - new for 2.04 -------------------------------------------------------------------------------- Cvars: g_legDamage default: 0 turn on/off leg shot speed reduction g_legDmgTime default: 300 duration (in ms) of initial speed reduction g_legDmgAmount default: 2 speed reduction constant When g_legDamage is on (1), a player's speed is temporarily reduced when shot in the leg or foot. The reduction in speed is proportional to the ratio of damage taken to current health and the setting g_legDmgAmount. The greater the value of g_legDmgAmount, the greater the speed reduction. The initial speed reduction has a duration of g_legDmgTime milliseconds. After that time has expired, the speed begins to increase exponentially to the normal value. LIMIT SOLDIER WEAPONS - new for 2.06 -------------------------------------------------------------------------------- Cvars: g_maxFlamer default: -1 max flamers per team (-1 is unlimited) g_maxMauser default: -1 max mausers per team (-1 is unlimited) g_maxPF default: -1 max panzers per team (-1 is unlimited) g_maxVenom default: -1 max venoms per team (-1 is unlimited) When g_maxFlamer is 0, flamethrowers are disabled. If it is greater than 0, only g_maxFlamer flamethrowers will be allowed. Players who attempt to select a flamethrower after g_maxFlamer flamethrowers are already in use, then they will be notified of such and given an SMG instead. The functionality of the other three cVars is similar. Note that this is on a per-team basis. LOCK / UNLOCK TEAMS - new for 2.07 -------------------------------------------------------------------------------- Commands (server-side): lock unlock Locking a team will prevent further players from joining that team. The team specified can be either axis/red/r or allies/blue/b. Unlocking it has the opposite effect. ORIENT / DISORIENT / SHAKE PLAYER - new for 2.07s -------------------------------------------------------------------------------- Commands (server-side): orient disorient shake Disorienting a client has a random outcome, but it will either mix their directional controls around, flip their view upside-down, or a combination of both. Doing it multiple times is encouraged. Orienting a player reverts his controls and view to its normal state. Shaking a player wobbles his display for a short time. These functions require a clientnumber, which can be found with the /clientnum helper function or used in conjunction with WAB. These commands require g_allowLTF to be on. PLAY DEAD - new for 2.07 -------------------------------------------------------------------------------- Cvars: g_playDead default: 0 enable/disable playing dead g_playDeadLook default: 1 enable/disable looking around while PD Commands (client-side): playdead When g_playDead is on (1), players who issue the command "playdead" will drop to the ground and remain motionless, essentially feigning death. If g_playDeadLook is on (1), players can adjust their view angles to survey their surroundings, otherwise it is locked at the same angle they entered the playing dead state from. Players must remain playing dead for at least 2.5 seconds before they can get back up. Players get back up using the "playdead" command again. When they stand up, they are locked for 3 seconds. You cannot play dead while priming a nade. When you are playing dead, your "corpse" cannot be walked through, thus assisting others in identifying who is playing dead, but your corpse can be jumped over. This feature is particularly fun in One Life to Live mode with g_sinkCorpses off. PRINT COMMANDS - new for 2.07 -------------------------------------------------------------------------------- Commands (server-side): chat cp print Chat, cp, and print write text to the chat area, center of the screen, and console, respectively. Text from these commands is not preceeded by "Console:", and you may use \n to add a line break for chat and print. PRIVATE MESSAGING - new for 2.06 -------------------------------------------------------------------------------- Cvars: g_privateMessages default: 1 turn on/off private messages Commands (client-side): msg, pm, or m When g_privateMessages is on (1), users can send private messages to each other which are only seen by the sender and the recipient. This is done in the console using either /msg, /pm, or /m. The format is as follows: /msg The same applies for /m and /pm. The name must be entered without colors and with spaces replaced by backslashes (\). The message may have spaces and colors. For example, if my name is "^3I LIKE PIE", a valid private message to me is: /msg i\like\pie Hello. I like pie, too. The name is not case-sensitive. Note that private messages are subject to any filtering by g_censor. If duplicate matches are found, the command is aborted and the sender is notified of such. PROXIMITY MINES - new for 2.07 -------------------------------------------------------------------------------- Cvars: g_mines default: 0 enable/disable proximity mines g_mineActivate default: 3 seconds before an armed mine activates g_mineAutoDisarm default: 1 disarm mine when player limbos g_mineShootable default: 0 whether mine can be shot at or not Commands (client-side): mine, usemine When g_mines is on (1), engineers can plant proximity mines in the same manner that they plant dynamite. In order to set their next dynamite to become a mine, engineers must issue the command /mine or /usemine (it is recommended that these commands be bound to a key). They will receive confirmation on their screen that mines are enabled, and they can switch back to dynamite if they change their mind by issuing the command again. After planting a mine, they have g_mineActivate seconds to move away from the mine before it activates. When the mine is activated, it strobes red and is easily distinguishable from regular dynamite. When a player enters the red light radius and has sufficient line-of-sight with the mine, the mine will detonate. Mines can be destroyed using 2-3 grenades or other explosives. By default, mines can only take damage from explosives, but if g_mineShootable is on (1), mines can take damage from other weapons. It is recommended that g_mineShootable remain at its default. Engineers are limited to one mine at a time. By default, their mine will deactivate and sink into the ground if they die and enter limbo. If you prefer to have the mine persist across multiple respawns, set g_mineAutoDisarm to 0. PROPERTY DAMAGE - new for 2.05 -------------------------------------------------------------------------------- Cvars: g_propDamage default: 0 turn on/off property damage When g_propDamage is on (1), the amount of property damage each player does is tracked. E.g., if someone breaks a window or vase, that counts as property damage. These values are pulled from the item's density, and randomly generated for exploding barrels, statues, and chairs in a pre-determined range. At the end of the round, the player with the most property damage is recognized in the stats printout. REVIVE UNDERWATER - new for 2.06 -------------------------------------------------------------------------------- Cvars: g_waterRevive default: 0 turn on/off underwater reviving When g_waterRevive is on (1), medics can revive players underwater. ROTATING SERVER MESSAGES / MOTDs - new for 2.05 -------------------------------------------------------------------------------- g_showMsgs default: 0 turn off msgs/seconds between each msg g_msgPos default: 0 position of message g_msg1...g_msg10 default: blank messages When g_showMsgs is 0, this feature is off. Any integer above 0 is considered to be the number of seconds between each message. A value of 300 is recommended, corresponding to 5 minutes per message. When a delay is set with g_showMsgs, the text contained in g_msg1 through g_msg10 is cycled on users' screens. Not every g_msg slot needs to be filled, but they must be contiguous. If you only wish to have two messages, you must use g_msg1 and g_msg2 and leave the rest blank. It is highly recommended that you set these values in your server configuration file instead of in the console. Note that you can user colors and spaces if you surround the actual message in quotes, e.g. set g_msg1 "This server is running ^3shrub mod^7!" set g_msg2 "^4www.planetwolfenstein.com/shrub" set g_showMsgs 300 By default, the messages are displayed in the lower-left corner of the screen, where chat and voice commands are normally displayed. This can be changed with g_msgPos. Three options are available: 0 - bottom left, 1 - center, 2 - top left/in console The rotation is persistant across map rotations, so it will not reset to the first message when you start a new map. SHOVING -------------------------------------------------------------------------------- Cvars: g_shove default: 1 turn shoving on/off g_shoveAmount default: 80 amount of shove to apply g_shoveNoZ default: 1 turn z-axis shoving on/off (1 means off) Commands (client-side): +salute When g_shove is on (1), players can shove each other using +salute. For example, players may "/bind mouse2 +salute" in the console. Shoving will push the player they are pointing at an amount proportional to g_shoveAmount. Players can crouch and look up to give some lift to their shove force, but only if g_shoveNoZ is off (0). This feature is useful for use against players who are blocking doorways or other key areas. You can also have fun with it by turning g_shoveNoZ off (0) and increasing g_shoveAmount to something greater, e.g. 300. I'd recommend playing catch: one player stands on another, the bottom player shoves upwards and tries to catch the launched player. SHOW REVIVES - new for 2.03 -------------------------------------------------------------------------------- Cvars: g_showRevives default: 0 turn on/off printing revives in console When g_showRevives is on (1), revives are printed in the console in the format: was revived by SHUFFLE TEAMS & AUTO TEAM SHUFFLING - new for 2.06 -------------------------------------------------------------------------------- Cvars: g_shuffle default: 0 Commands (server-side): shuffle When g_shuffle is greater than 0, the teams will automatically be shuffled whenever one team has g_shuffle more wins than the other team. Swap_teams are accounted for. When g_shuffle is 0, no automatic shuffling takes place. The shuffles are completely random and not based on prior performance. Admins can call and immediate shuffle through the command "shuffle". Players can call a vote to shuffle teams using /callvote shuffle if "shuffle" is removed from g_disallowedVotes. SLAPPING - new for 2.07 -------------------------------------------------------------------------------- Commands (server-side): slap This command will slap the specified player around for 2.5 seconds and deduct approximately 25 health. This command requires a clietnumber, which can be found with the /clientnum helper function or used in conjunction with WAB. This command requires g_allowLTF to be on. SPECTATOR LOCKING - new for 2.03 -------------------------------------------------------------------------------- Cvars: g_lockSpecs default: 0 turn on/off spectator locking When g_lockSpecs is on (1), spectators cannot moved and are forced to look straight up. This is a simple mechanism to help curb any voice chat "cheating" that may occur. It's not perfect, however, as specs can still hear sounds. SPECTATORS CAN TALK TO NON-SPECS - new for 2.02 -------------------------------------------------------------------------------- Cvars: g_allowSpecChat default: 0 turn on/off spec chat to non-specs When g_allowSpecChat is on (1), spectator chat using the "say" command will also be relayed to non-spectator players, i.e. axis and allies. START OF ROUND AMMO REQUEST PENALTY - new for 2.04 -------------------------------------------------------------------------------- Cvars: g_startAmmoPenalty default: 5 start ammo penalty time When g_startAmmoPenalty is on (1), anyone who calls for ammo within the first 5 seconds of a round start receives an ammo reduction (20 for flamer, 50 for venom, 3 for others). Their request for ammo is also not broadcast. New for 2.05: g_startAmmoPenalty now specifies the number of seconds after the start of the round in which the penalty applies. When g_startAmmoPenalty is 0, the feature is disabled. STATISTICS -------------------------------------------------------------------------------- Cvars: g_showStats default: 1 turn limbo stats on/off g_logStats default: 1 log round stats enable/disable g_lifeStats default: 1 use life stats (1) or round stats (0) Commands (client-side): stats When g_showStats is on (1), upon entering limbo mode, players will be shown the number of kills and revives (if applicable) they made during that life. Additionally, the accuracy percentage (shots landed / shots fired) of any bullet weapons used is displayed. Note that accuracy is still displayed for flamers since they have a pistol and the ability to switch to a venom, mauser, or SMG. New for 2.02: Stats for the entire round (including team kills, gibs, team gibs, shots fired, shots hit, head shots, ammo given, and health given, in addition to the above stats) are now printed in the console at the end of the round for each player. This feature cannot be turned on/off. Current stats for the round may be viewed at any time using the client command "stats". New for 2.03: There seems to be some confusion over the life stats that are displayed during limbo. These particular stats are reset whenever a player dies. This, if a player kills someone, dies, is revived, dies again, and goes into limbo, his stats will display zero kills since he died and did not kill anyone after starting a new life by being respawned. However, that kill still remains counted in the round stats, which are displayed at the end of the round and accessable any time with /stats. With this in mind, if players do not prefer life stats, admins now have the option of setting g_lifeStats to zero (0), which will display the round stats during limbo. When g_logStats is on (1), stats are sent to the server log at the end of the round for all non-late joiners in the following format: ENDROUND: : : Note that lastClass can be either: 0 - Sold, 1 - Med, 2 - Engr, 3 - LT New for 2.04: The number of times one has been killed and the kill ratio for that round is now tracked and reported via /stats or the end-of-round stats. New for 2.05: The player with the most kills and the player with the most revives are recognized at the end of the round in the stats printout. TOUCH GIB -------------------------------------------------------------------------------- Cvars: g_touchgib default: 0 turn touch gibbing on/off When g_touchgib is on (1), players can gib others instantly by merely touching. Weapons are disabled, so a map_restart is recommended after setting g_touchgib to 1 in order to clear weapons from the game. After map_restart, touch gibbing is enabled 10 seconds after the map is restarted to allow time for players to disperse. If players are facing each other when they touch, there is a high probability that they will gib each other. Note: This is much more fun when respawn times are removed. To do this, use: g_useralliedrespawntime 1 g_useraxisrespawntime 1 To reset respawn times, set them both to 0. New for 2.05: When g_touchgib is set to 2, you cannot touch gib a teammate. UNCAP AMMO - new for 2.07 -------------------------------------------------------------------------------- Cvars: g_capAmmo default: 1 enable/disable 3-clip ammo limit When g_capAmmo is off (0), players can store an unlimited amount of ammo in their reserves. WARMUP DAMAGE - new for 2.07 -------------------------------------------------------------------------------- Cvars: g_warmupDamage default: 0 enable/disable warmup damage When g_warmupDamage is on (1), players can damage and kill other players and game objects during warmup. Kills, gibs, and revives are not logged. WARMUP FREEZING - new for 2.07 -------------------------------------------------------------------------------- Cvars: g_warmupFreeze default: 0 enable/disable warmup freezing When g_warmupFreeze is on (1), players are frozen during warmup. This encourages planning strategies during warmup, particularly for one-life servers with long warmup times. NON-MODIFIABLE/INTERACTIVE FEATURES -------------------------------------------------------------------------------- If you are an admin who would like to turn off one of these features, contact me and I'll make it customizable in the next build. -------------------------------------------------------------------------------- LT Ammo Distribution Prioritizer - new for 2.03 When an LT says "I'm a Lieutenant" to his team, he is told who the best person to give ammo to based on need and distance from the LT. Medic Reminders - new for 2.02 Moments after a player dies, the nearest, living medic is told that the player is down and needs a revive. This process is repeated every 10 seconds. New for 2.03: The location of the downed player is now sent. No Medic Reminders - new for 2.02 If a player dies but is revivable, and there is no medic left on his team in OLTL mode, he will be reminded of such. No LT Reminders - new for 2.03 If a player requests ammo and no LT is alive or has respawns left, the player is told that no LTs are left. Don't Drop Client if Down If a player is down and waiting for a revive, the server will not drop him/her for inactivity. Thus, g_inactivity can still be used without worrying about its effect on limited-life games. Revive Logging Revives are now logged in the server log. FORMAT: Revive: : revived 30 second team-change wait is disabled Players no longer need to wait 30 seconds before joining or switching teams. New for 2.03: Delay is back, with a 5 second requirement between team switches to avoid floods. /kill logging /kills are not logged as actual kills, but are logged in the following format: Suicide: : Black text can be used at beginning of name - new for 2.04 Black text can now be used at the beginning of a name. Preceeding black text with a karat is no longer necessary. Players can switch teams during warmup - new for 2.04 Regardless of the g_maxlives setting, players can always switch teams during the warmup period. Fixed "getting stuck in something after being revived" bug - new for 2.05 If you've ever been stuck under the trains in depot or in the boxes on base (and who hasn't?), you'll be pleased to know that it will no longer occur. Engineer Logging - new for 2.05 When an engineer repairs an MG42 that he has not destroyed, it is logged: EVENTREPAIR: : repaired an MG42 Similarly, when an engineer blows an objective, it is logged: EVENTTNT: : destroyed an objective Vote Logging - new for 2.07 Vote strings are now displayed in the "called a vote" line. ================================================================================ 6. KNOWN BUGS ================================================================================ - Freeze tag may freeze server 2.06 - There were at least two instances in which a server crashed while freeze tag was running. I've made some changes in 2.06 that will hopefully alleviate this. 2.06.1 - no crashes have been reported as of this release 2.07 - no crashes have been reported as of this release ================================================================================ 7. LICENSE ================================================================================ You may use the included .DLL or .SO file with your RTCW server. You may distribute the .DLL or .SO file if and only if this text file is included. You may not make modifications to the .DLL or .SO file. You may not hold "shrub" responsible for any damage of any kind resulting from the use of the included .DLL or .SO file. END OF FILE