This mod is completely server-side. Players don't need to download anything to benefit from it's features. Shrub Mod makes many changes to gameplay that would be useful to one-life, limited-lives, and unlimited-lives gameplay. Most of these changes are optional, at the administrator's discretion. The main features are:
Allow / Disallow Soldier Guns | Ammo Packs Give Syringes and Pistol Rounds and Helmets | Axis / Allies Left | Binoculars for Non-LTs | Cancel Vote | Censor Chat | Clan Alignment | Classes | Custom Bonus Points Values | Disable Checkpoint Flag Wins | Disable Corpse Sinking | Disable Flag Points | Disable Map-Starting Votes | Freeze Tag | Disable Medic Self-Healing when Carrying an Objective | Disallow Late Joins | Disallow Specific Votes | Dynamite Warnings | Flamethrower Self-Damage in FF-Off Mode | Fun Mode | Gib Reporting / Gib Points | Headshot Practice Mode | Helmet Protects from Head Shots | Launch / Throw / Fling | Leg Shot Temporary Speed Reduction | Limit Soldier Weapons | Private Messaging | Revive Underwater | LT Damage Return | Property Damage | Rotating Server Messages / MOTDs | Shoving | Show Revives | Shuffle Teams & Auto Team Shuffling | Spectator Locking | Spectators can Talk to Non-Specs | Start of Round Ammo Request Penalty | Statistics | Touch Gib
See shrub's site for further information.
================================================================= shrub mod for Return to Castle Wolfenstein 1.33 ----------------------------------------------------------------- Version 2.06b, Released 8/6/02 by shrub - [email protected] 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.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 FilesReturn to Castle Wolfensteinshrubmod - 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 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 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. ================================================================= 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_ammoGivesSyringes 1 turn on/off syringes in ammo packs g_ammoGivesPistol 1 turn on/off pistol rounds in ammo packs g_ASBlock 0 turn on/off air strike blocking recognition g_binocs 0 set which other classes have binocs 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_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_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_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_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 <clientname>* Launch <clientname> throw <clientname>* Throw <clientname> fling <clientname>* Fling <clientname> launchn <clientnumber> Launch <clientnumber> thrown <clientnumber> Throw <clientnumber> flingn <clientnumber> Fling <clientnumber> cancelvote Cancel vote shuffle Shuffle teams clantag <team> <clan tag> Place players with <clan tag> on same <team> clan <team> <clan tag> Place players with <clan tag> on same <team> tag <team> <clan tag> Place players with <clan tag> on same <team> * 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 <name> <message>* send a private message to another player msg <name> <message>* send a private message to another player pm <name> <message>* send a private message to another player +salute shove player (g_shove must be 1) 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 * 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 PACKS GIVE SYRINGES and PISTOL ROUNDS and HELMETS ----------------------------------------------------------------- Cvars: g_ammoGivesSyringes 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_ammoGivesSyringes 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 <team> <clan tag> Upon issuing the "clan" command with the appropriate parameters, players with the <clan tag> in their name will be moved to the specified <team>. 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. 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: <clientNum>: <clientName> 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. 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: <frozenNum> <freezerNum> (<method of death num>): <freezerName> froze <frozenName> Unfreeze: <frozenNum> <freezerNum>: <freezerName> unfroze <frozenName> 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: <gibberClientID> <gibbedClientID>: <gibberName> gibbed <gibbedName> 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. 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. LAUNCH/THROW/FLING ----------------------------------------------------------------- Cvars: g_allowLTF default: 1 enable/disable launch/throw/fling Commands (server-side): launch <clientname> launch <clientnumber> throw <clientname> throw <clientnumber> fling <clientname> fling <clientnumber> 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. 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 <name> <message> 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 ilikepie 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. 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. 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. 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<n> 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: <revivedName> was revived by <reviverName> 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. 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: <clientID>: <name>: <lastClass> <numKilled> <numTKed> <numGibbed> <numTGibbed> <numRevived> <healthGiven> <ammoGiven> <shotsFired> <shotsLanded> <headShotsLanded> 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. 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: <reviverClientID> <revivedClientID>: <reviverName> revived <revivedName> 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: <clientNum>: <clientName> 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: <clientNum>: <clientName> repaired an MG42 Similarly, when an engineer blows an objective, it is logged: EVENTTNT: <clientNum>: <clientName> destroyed an objective ================================================================= 6. KNOWN BUGS ================================================================= - Anti-late join feature may sometimes permit someone to late join (rare) 2.06 - does this still occur? Please let me know if it happens. I haven't noticed it recently. - 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. ================================================================= 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
There are no comments yet. Be the first!