<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mygamingtalk.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gaoesa</id>
	<title>MyGamingTalk - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mygamingtalk.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gaoesa"/>
	<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/Special:Contributions/Gaoesa"/>
	<updated>2026-04-13T08:47:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1325</id>
		<title>Silent Shrubbot</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1325"/>
		<updated>2015-10-15T14:08:47Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* userxdb.db */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What Is Shrubbot=&lt;br /&gt;
Shrubbot is an invention of Ryan Mannion. Shrubbot is an admin system that identifies the admin leveled players from silEnT and PunkBuster GUIDs without the need for passwords. Shrubbot is also very flexible and allows creating many different admin levels with entirely different command sets. silEnT shrubbot is based on the work of the ETPub team. silEnT extends the functionality of the shrubbot where ever it is needed. Including user database that holds all the players that have visited the server. To access this database, new commands have been added to the original shrubbot command set. Some commands have been renamed to ease their use and so that they resemble commands from other ET mods that have advanced admin systems.  &lt;br /&gt;
&lt;br /&gt;
If you want to use shrubbot, the cvar g_dbDirectory must be set. If it is not set, the shrubbot will not be in use. If you want to edit the default levels, you must create or copy existing shrubbot.cfg file to the directory defined by the g_dbDirectory setting. In case shrubbot command like !ban is used against a player and a shrubbot.cfg file does not already exist, a new shrubbot.cfg file is created  to store the needed data. &lt;br /&gt;
&lt;br /&gt;
The created file will also have the default level settings written to it. This file can be freely edited by hand and then, after !readconfig command has been issued, the changes take effect on the server.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Commands =&lt;br /&gt;
&lt;br /&gt;
== !admintest ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s current shrubbot admin level in global chat. When the NAME or SLOT are added and the user has the right shrubbot permission, the level of another player will be shown. However, if the target has incognito shrubbot flag, then 0 level is displayed regardless who does !admintest on him/her.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !admintest [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; a&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !aliases ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s stored aliases. Aliases are printed in the last seen first order.If there are more stored aliases than fit on one page, optional page parameter can be used to access different pages. The number of stored aliases depends of the g_dbMaxAliases cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !alises [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !ban ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off the server and will not let them connect again for SECONDS seconds, or, if a modifier (m, h, d, or w) is used, a given amount of time.  For example:&lt;br /&gt;
&lt;br /&gt;
90 = 90 seconds&lt;br /&gt;
&lt;br /&gt;
15m = 15 minutes&lt;br /&gt;
&lt;br /&gt;
3h = 3 hours&lt;br /&gt;
&lt;br /&gt;
5d = 5 days&lt;br /&gt;
&lt;br /&gt;
1w = 1 week&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !ban (NAME|SLOT) (SECONDS|TIME_WITH_MODIFIER) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !baninfo ==&lt;br /&gt;
&lt;br /&gt;
Shows detailed information of a ban in the ban list. Find the ban number with !showbans command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !baninfo (BAN NUMBER)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
== !burn ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME on fire.  REASON will be center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !burn (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; U&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !cancelvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress fail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !cancelvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; c&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !country ==&lt;br /&gt;
&lt;br /&gt;
Displays the country of the player. This command works only if GeoIP is enabled on server [http://mygamingtalk.com/wiki/index.php/Silent_Mod_Server_Cvar#g_countryFlags g_countryFlags]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !country&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== !crazygravity ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_gravity changes with 30 second interval. If enabled, the crazy gravity is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazygravity (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_speed changes with 30 second interval. If enabled, the crazy speed is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazyspeed (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !dewarn ==&lt;br /&gt;
&lt;br /&gt;
Shows all the warnings of a user. When warning number is used, the warning with that number will be removed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !dewarn (NAME|SLOT) [WARNING#]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !disorient ==&lt;br /&gt;
&lt;br /&gt;
Turns the view upside down for the client in slot number SLOT or with name containing NAME.  If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !disorient (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !finger ==&lt;br /&gt;
&lt;br /&gt;
Display the slot, partial guid, ip and clientversion of a player.&lt;br /&gt;
&lt;br /&gt;
NOTE: This command should be available only to the highest server admins!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !finger (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !freeze ==&lt;br /&gt;
&lt;br /&gt;
Freezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it freezes all players. Frozen player(s) cannot receive damage during this time. If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !freeze [NAME|SLOT] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !gib ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs the player in slot number SLOT or with name containing NAME. If name is -1 or all or if no name is entered, everybody will be gibbed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !gib (NAME|SLOT|-1|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; g&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !giba ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !giba&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !help ==&lt;br /&gt;
&lt;br /&gt;
Lists all the available shrubbot commands. If COMMAND is given, then prints the help of that specific command. !help is always available to all clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !help [COMMAND]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !howfair ==&lt;br /&gt;
&lt;br /&gt;
Prints a simple summary to everyone on the chat of team fairness based on player kill rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !howfair&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !kick ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off of the server. REASON is given to the client as the drop message. The client will be banned for 2 minutes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !kick (NAME|SLOT) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; k&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !levinfo ==&lt;br /&gt;
&lt;br /&gt;
Lists all the details of the specific admin level. The listed information includes The name of the level, the greeting, the greeting sound path and the privilege flags for the level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levinfo (Admin Level)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !levlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all the admin levels loaded from the shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levlist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !list ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of information about the connected players.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* slot number&lt;br /&gt;
&lt;br /&gt;
* team R=axis B=allies S=spectator C=connecting&lt;br /&gt;
&lt;br /&gt;
* first letter of fireteam name&lt;br /&gt;
&lt;br /&gt;
* admin level (and level name)&lt;br /&gt;
&lt;br /&gt;
* last 8 digits of guid&lt;br /&gt;
&lt;br /&gt;
* M if muted&lt;br /&gt;
&lt;br /&gt;
* W if warned&lt;br /&gt;
&lt;br /&gt;
* name&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !listteams ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of statistical information about each team. This lists ends with ratings information based on how likely each team is to win the current map. The team with more points is LESS likely to win, therefore a good way to balance the teams is to join the team with more points, or move people to that team, until the points are about even.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !listteams&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lock ==&lt;br /&gt;
&lt;br /&gt;
Locks the specified team. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lol ==&lt;br /&gt;
&lt;br /&gt;
Makes all players drop grenades.  If NAME or SLOT is provided only that player will drop grenades.  GRENADES is the number of grenades to be dropped (default is 1, maximum is 16).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lol [NAME|SLOT] [GRENADES]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; x&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !mute ==&lt;br /&gt;
&lt;br /&gt;
Mutes a player in a slot number SLOT or with a name containing NAME. TIME and REASON are optional. See !ban for more information on modifiers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !mute (NAME|SLOT) [SECONDS|TIME_WITH_MODIFIER] REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !news ==&lt;br /&gt;
&lt;br /&gt;
Plays the map specific news audio to all players if it is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !news&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; W&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !nextmap ==&lt;br /&gt;
&lt;br /&gt;
Moves to the next map in campaign or in the objective cycle end game intermission is skipped. With mapvoting gametype the game will go to the intermission.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !nextmap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; n&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog&#039;&#039;&#039;&lt;br /&gt;
* 0.4.0 The !nextmap will go to the intermission map voting when the gametype is set to 7 and the g_mapVoteFlags bitmask has flag 16 set.&lt;br /&gt;
* 0.5.1 The g_mapVoteFlags flag 16 was removed and the game will always go to the intermission with map voting game type. If old behaviour is needed, admin can create custom command executing &amp;quot;vstr nextmap&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== !orient ==&lt;br /&gt;
&lt;br /&gt;
Reverses the action of !disorient for the client in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !orient (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !panzerwar ==&lt;br /&gt;
&lt;br /&gt;
Enables panzerwar game mode. All the players will have their main weapon changed to panzerfaust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !panzerwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !passvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !passvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; V&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pause ==&lt;br /&gt;
&lt;br /&gt;
Pauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pip ==&lt;br /&gt;
&lt;br /&gt;
Draws sparks (pixie dust) around the player in slot number SLOT or with name containing NAME. Does it to all players if NAME/SLOT is not providied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pip [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pop ==&lt;br /&gt;
&lt;br /&gt;
Pops the helmet off from a player in a slot number SLOT or with a name containing NAME. If no parameter is provided, it pops the helmets off from all the players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pop [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !putteam ==&lt;br /&gt;
&lt;br /&gt;
Moves a player in a slot number SLOT or with a name containing NAME to the indicated team.&lt;br /&gt;
&lt;br /&gt;
* r - Allies&lt;br /&gt;
&lt;br /&gt;
* b - Axis&lt;br /&gt;
&lt;br /&gt;
* s - Spectators&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !putteam (NAME|SLOT) (r|b|s)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; p&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !readconfig ==&lt;br /&gt;
&lt;br /&gt;
Reads shrubbot.cfg file from the directory set by g_dbDirectory cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readconfig&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; G&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rename ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME to NEWNAME. The name change will not be persistent. The user database will store the renamed name for the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rename (NAME|SLOT) NEWNAME&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; N&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !reset ==&lt;br /&gt;
&lt;br /&gt;
Resets the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !reset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetmyxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player who runs this command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetmyxp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; M&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player in the slot number SLOT or with the name containing NAME.  If reason is provided it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetxp (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !restart ==&lt;br /&gt;
&lt;br /&gt;
Restarts the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !riflewar ==&lt;br /&gt;
&lt;br /&gt;
Enables riflewar game mode. All the players will have their main weapon changed to either K43 or Garand. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !riflewar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rmsubnetban ==&lt;br /&gt;
&lt;br /&gt;
Removes subnet ban. The given subnet ban number can be found using !subnets command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rmsubnetban [ban number]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !setlevel ==&lt;br /&gt;
&lt;br /&gt;
Sets the connected player in the slot number SLOT or with name containing NAME to the level indicated by LEVEL. A player cannot !setlevel another player to a lever higher than him/herself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !setlevel (NAME|SLOT) LEVEL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !showbans ==&lt;br /&gt;
&lt;br /&gt;
Lists up to 30 shrubbot bans currently in effect.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* ban number&lt;br /&gt;
&lt;br /&gt;
* banned player&#039;s name&lt;br /&gt;
&lt;br /&gt;
* date of the ban&lt;br /&gt;
&lt;br /&gt;
* name of the banning admin&lt;br /&gt;
&lt;br /&gt;
* when the ban will expire&lt;br /&gt;
&lt;br /&gt;
* reason for the ban&lt;br /&gt;
&lt;br /&gt;
If SKIP is provided, that number of bans are skipped before printing starts. SKIP can also be negative (e.g. &#039;!showbans -10&#039; would display the last 10 bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !showbans [SKIP]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !shuffle ==&lt;br /&gt;
&lt;br /&gt;
Shuffles teams, but does NOT restart (see !restart).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !shuffle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; S&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !slap ==&lt;br /&gt;
&lt;br /&gt;
Does DAMAGE (default 20) damage to player in slot SLOT or with name containing NAME. If REASON is specified it&#039;s center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !slap (NAME|SLOT) [DAMAGE] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !sniperwar ==&lt;br /&gt;
&lt;br /&gt;
Enables sniperwar game mode. All the players will have their main weapon changed to sniper rifles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !sniperwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spec999 ==&lt;br /&gt;
&lt;br /&gt;
Moves all the players with a ping of 999 to the spectators team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spec999&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; P&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spree ==&lt;br /&gt;
&lt;br /&gt;
Show the players current killing spree count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spree&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spreerecord ==&lt;br /&gt;
&lt;br /&gt;
Displays the map and the overall spreerecord.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spreerecord&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !stats ==&lt;br /&gt;
&lt;br /&gt;
Displays the Thompson, MP40 and PPSh total kills and deaths, kills and deaths during the map and accuracy, headshotratio and headshot distance during the map. Lists all connected players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !stats&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; t&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !subnets ==&lt;br /&gt;
&lt;br /&gt;
This command displays all the issued subnet bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnets (start at)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !subnetban ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can issue subnet ban. Subnet ban is a ban where the connecting player IP is matched against a larger IP range. The command accepts only subnets between range x.* - x.x.x.*. If the admin attempts to issue subnet ban that would ban himself the command refuses to add the subnet. This can be circumvented using rcon commands. If admin wants to add a subnet that would ban himself he must first whitelist himself with !userwl command. If silEnT can confirm the admin can connect the subnet ban is added. The command accepts full IP as it&#039;s parameter in which case the subnet is created to the x.x.x.* address. To remove subnet bans admin can use the !rmsubnetban command. The syntax with this commnd is the same kind with ban and userban commandand reason andtime can be given. The reason should be given so that any player connecting would know the reason for not being able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnetban [subnet] (time) (reason)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Require g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - Octets can be cut from inside with &#039;x&#039;. For example, &amp;quot;!subnetban 12x&amp;quot; will ban all IP addresses matching 12x.xxx.xxx.xxx.&lt;br /&gt;
&lt;br /&gt;
== !swap ==&lt;br /&gt;
&lt;br /&gt;
Swaps the players to the opposite team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !swap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; w&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !time ==&lt;br /&gt;
&lt;br /&gt;
Prints out localtime of the client in the chat. No other client can see this time message. The command doesn&#039;t have a flag but it is available to all clients always.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; No permission required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throw ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throw (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !tspree ==&lt;br /&gt;
&lt;br /&gt;
Show the top n current killing spree (default top 5).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !tspree [amount]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unban ==&lt;br /&gt;
&lt;br /&gt;
Removes the ban that !showbans lists as BAN_NUMBER.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unban BAN_NUMBER&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unfreeze ==&lt;br /&gt;
&lt;br /&gt;
Unfreezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it unfreezes all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unfreeze [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unpause ==&lt;br /&gt;
&lt;br /&gt;
Unpauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unpause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unmute ==&lt;br /&gt;
&lt;br /&gt;
Unmutes the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unmute (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unlock ==&lt;br /&gt;
&lt;br /&gt;
Unlocks the team specified. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unlock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !uptime ==&lt;br /&gt;
&lt;br /&gt;
Show how long the server has been up and running.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !uptime&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; u&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !fling ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !fling (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launch==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launch(NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throwa ==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throwa&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !flinga==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !flinga&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launcha==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launcha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !warn ==&lt;br /&gt;
&lt;br /&gt;
Plays the whistle sound and center-prints WARNING to the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !warn (NAME|SLOT) [WARNING]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
= User Database &amp;amp; Commands =&lt;br /&gt;
&lt;br /&gt;
User database is intended to store information of all the players that connect to the server. To enable user database g_dbDirectory must be set. The database stores information to identify different players and also XP data, rating data, overall stats data and shrubbot admin data. silEnT GUIDs are used to identify single players.&lt;br /&gt;
&lt;br /&gt;
Shrubbot includes functionality for server admins to handle database userdata. All commands that handle users in the database will take the last 8 characters of the player silEnT GUID to identify the player to edit. Internally, the full GUID is used to identify the players. Some commands have equivalent versions using last 8 characters of PunkBuster GUIDs to identify the player. These are needed for players who were stored into the database before the silEnT GUID was added and haven&#039;t connected to the server since.&lt;br /&gt;
&lt;br /&gt;
== !aliasesdel ==&lt;br /&gt;
&lt;br /&gt;
Command removes all the aliases from the player identified by the 8 character silEnT ID.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliasesdel [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !aliassearch ==&lt;br /&gt;
&lt;br /&gt;
This command searches the whole aliases database for the pattern in the names. Note, this command is the most resource intensive shrubbot command of all commands, and it is not recommended to be used without a reason. How fast it performs in practice depends of the aliases database size.&lt;br /&gt;
&lt;br /&gt;
For each player the following information is shown:&lt;br /&gt;
&lt;br /&gt;
:* identity information (silEnT ID)&lt;br /&gt;
&lt;br /&gt;
:* each used alias that fits the search pattern&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was first seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was last seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias the total playtime with it&lt;br /&gt;
&lt;br /&gt;
To see all the aliases of the found player, you can use &amp;quot;!userinfo aliases&amp;quot; command. In the case of all the data not fitting in one page, you can give an optional start parameter. The start parameter corresponds to the numbers shown in the first column of the results. So that each player has its own number and under that number, all the matching aliases from that player are printed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliassearch [name] [start]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !confirm ==&lt;br /&gt;
&lt;br /&gt;
Confirms the player identity with a protected admin level. As a result, the confirmed player and the server will transfer authentication information allowing the player to use admin commands from thereafter. Unconfirmed players are players with admin level that is protected but the server can not ensure the identity. This usually happens when players admin level changes with offlinecommands or the protected levels are extended. This command does not give the player admin levels, it only confirms the identity of a player whos admin level is already set. Also, if the player loses his admin level identification, this command can not be used to reinstate it.&lt;br /&gt;
&lt;br /&gt;
This command is safe to be given even to the lower levels of admins.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !confirm [SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== !userlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all users in the database. If PAGE is given, the list starts from that page. If PAGE is not given the first page of the database is printed. The command prints all users, including clients that have connected during the level time and are not yet in the database. The connected clients are always printed first and then the rest of the userbase.&lt;br /&gt;
&lt;br /&gt;
The printed rows have the following columns:&lt;br /&gt;
:*&#039;#&#039; ; This is the serial number of the user in the printout. The number doesn&#039;t correspond to anything in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;silEnT ID&#039; ; This is the 8 character silEnT GUID of the player. This is used to identify different players in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;PBGUID&#039; ; This is the 8 character PB GUID of the user. This is used to identify different users in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Last Seen&#039; ;	This tells how long time ago the user was last seen on the server. For connected clients, this will print &amp;quot;connected&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:*&#039;IP&#039; ; This tells the last IP address user has had on the server.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Ban&#039; ; This is the ban number if the player is banned from the server. If the player is whitelisted from IP bans, this column reads white capital W.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Name&#039; ; This tells the last name with user has been saved on the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With userlist command an admin can list all the users saved in the database and those that are connected page by page. Optional page number can be given to the command to tell which page is to be displayed about the users. One page can have up to 20 players printed. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userlist [PAGE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.4.0 - New column &#039;Ban&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - New column &#039;silEnT ID&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
== !userinfo ==&lt;br /&gt;
&lt;br /&gt;
Displays all information that is stored about the user in the database.&lt;br /&gt;
&lt;br /&gt;
This information includes:&lt;br /&gt;
&lt;br /&gt;
:*identity information (name, IP, 8 character PunkBuster GUID, silEnT ID, Client Identification)&lt;br /&gt;
&lt;br /&gt;
:*admin level&lt;br /&gt;
&lt;br /&gt;
:*personal greeting&lt;br /&gt;
&lt;br /&gt;
:*personal greeting sound&lt;br /&gt;
&lt;br /&gt;
:*personal shrubbot flags&lt;br /&gt;
&lt;br /&gt;
:*saved XP per skill&lt;br /&gt;
&lt;br /&gt;
:*rating values&lt;br /&gt;
&lt;br /&gt;
:*total kills and deaths with SMG weapons&lt;br /&gt;
&lt;br /&gt;
:*the ban number of the player or whitelisting&lt;br /&gt;
&lt;br /&gt;
:*list of stored aliases if the aliases database is enabled on the server&lt;br /&gt;
&lt;br /&gt;
Command can optionally print player&#039;s stored aliases if the optional aliases parameter is given and the aliases database is enabled by setting g_dbMaxAliases to a positive integer. If printed aliases don&#039;t fit in one page, optional page parameter can be used to access different pages. &lt;br /&gt;
&lt;br /&gt;
Command requires the last 8 characters of the player silEnT GUID. This GUID can be found with !userlist or !usersearch commands. This command works for both online and offline players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userinfo [silEnT ID] [aliases [page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:0.4.0 - Information of possible ban and whitelisting is added.&lt;br /&gt;
&lt;br /&gt;
:0.5.0 - silEnT ID is added.&lt;br /&gt;
&lt;br /&gt;
:0.6.0 - Aliases option is added.&lt;br /&gt;
&lt;br /&gt;
== !useredit ==&lt;br /&gt;
&lt;br /&gt;
Command is used to edit explicit userdata in the database. The command format is:&lt;br /&gt;
&lt;br /&gt;
!useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
The command parameters in detail:&lt;br /&gt;
&lt;br /&gt;
:*silEnT ID - This is the last 8 characters of the silEnT GUID of the player. This is needed to identify the player to edit.&lt;br /&gt;
&lt;br /&gt;
:*add - If the command is given this parameter, the value(s) in the [new value] field will be added to the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*remove - If the command is given this parameter, the value(s) in the [new value] field will be removed from the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*level	- If the command is given this parameter, the value in the [new value] field will be set as the players new level. The level may not be higher then the level of the player executing the command.&lt;br /&gt;
&lt;br /&gt;
:*greeting - If the command is given this parameter, the value in the [new value] field will be the players new personal greeting. If the [new value] field is empty, the personal greeting is cleared.&lt;br /&gt;
&lt;br /&gt;
:*sound	- If the command is given this parameter, the value in the [new value] field will be the file path to the players new personal greeting sound. If the [new value] field is empty, the personal greeting sound is cleared.&lt;br /&gt;
&lt;br /&gt;
:*new value - This field is used to give values to the command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the optional new value field is not set with greeting or sound parameter, the value will be set to empty and level values will be used again with these players.&lt;br /&gt;
&lt;br /&gt;
This command works with online and offline players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !usereditpb.&lt;br /&gt;
&lt;br /&gt;
== !givexp==&lt;br /&gt;
&lt;br /&gt;
Command gives the online or offline player identified by PBGUID a defined amount of XP points to the selected skill. The possible skills are:&lt;br /&gt;
&lt;br /&gt;
sold	Soldier or Heavy Weapons&lt;br /&gt;
&lt;br /&gt;
med	Medics or First Aid&lt;br /&gt;
&lt;br /&gt;
eng	 Engineering or Explosives and Construction&lt;br /&gt;
&lt;br /&gt;
fops	Field Ops or Signals&lt;br /&gt;
&lt;br /&gt;
cov	Covert Ops or Military Intelligence and Scoped Weapons&lt;br /&gt;
&lt;br /&gt;
light	Light Weapons&lt;br /&gt;
&lt;br /&gt;
battle	Battle Sense&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !givexp [silEnT ID] [sold|med|eng|fops|cov|light|battle] [amount to add]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !givexppb.&lt;br /&gt;
&lt;br /&gt;
== !userban ==&lt;br /&gt;
&lt;br /&gt;
Command bans user indentified by the 8 character silEnT GUID from the server. The data required for ban is taken from the database and the banned user does not need to be online when the command is given. Bot&#039;s cannot be banned with this command. Note that the bans are written in the human readable config file and you can still write the bans by hand if desired. Also, removing of the bans can be done by hand if desired. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userban [silEnT ID] [time] [reason]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userbanpb.&lt;br /&gt;
&lt;br /&gt;
== !userwl ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can whitelist or remove whitelisting from any player. Whitelisting means that the player IP is not checked against any IP bans. Including subnet bans and individual bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userwl [silEnT GUID] [add|remove]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !userdelete ==&lt;br /&gt;
&lt;br /&gt;
Command removes the user identified by the 8 character silEnT GUID from the database. The actual actions are taken at the level end if needed. However, once the !userdelete command has been issued to the user, the information of the user is no longer available and after the shutdown game, it is permanently lost.&lt;br /&gt;
&lt;br /&gt;
If the removed player is connected to the server while removing, a new entry is written to that player. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userdelete [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userdeletepb.&lt;br /&gt;
&lt;br /&gt;
== !usersearch ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can search the database for players with specific parameters. Arguments to the command can be pattern in the name, user admin system level and the beginning of the IP address. Additional page number can be given when the amount of found results exceed what can be shown in one page. All the arguments can be given in one command in any order. Any one of the arguments can be omitted, but each time when command is given at least one argument on top of the optional page number must be given. This command searches stored information only from the database. Connected players are not included unless they are already stored into the database.&lt;br /&gt;
&lt;br /&gt;
This command can be performance intensive and it is not recommended to use it only for maintenance operations. The command will internally always try to optimise itself. If the command is given repeatedly with same arguments but only changing the page number, new searches are not performed but only different pages of the already found results are displayed. The optimisations include that the silEnT will try to use the already found results as the basis for the new search (e.g. &amp;quot;!usersearch name gao&amp;quot; followed by &amp;quot;!usersearch name gaoe&amp;quot; will first search the whole db to find all users with the pattern gao in their names and the follow up search will refine the already found results for gaoe). The maximum amount of results one search can return is 256 users. Users are displayed in the console in pages with 20 users on each page. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !usersearch [name (name)]|&amp;amp;[level (level)]|&amp;amp;[IP (IP)] [page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !updatepbguid ==&lt;br /&gt;
&lt;br /&gt;
Updates the PB GUID that is stored in the database to the one which the player is currently using. With the exception that empty, invalid or dublicated PB GUIDs are not saved to the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !updatepbguid [Name|Slot]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !readadmins ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can read admin definitions from a specific admins.cfg file. The file must be placed in the directory pointed by g_dbDirectory server cvar. The file may have only admin definition blocks.&lt;br /&gt;
Admin definitions use always the following syntax. The syntax is exactly the same used by the ETPub.&lt;br /&gt;
&lt;br /&gt;
[admin]&lt;br /&gt;
&lt;br /&gt;
name     = name of the admin (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid    = full 32 character silEnT GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
guid     = full 32 character PB GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
level    = level number&amp;lt;br/&amp;gt;&lt;br /&gt;
flags    = personal admin flags (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting = personal greeting (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound = path to personal greeting sound (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the database doesn&#039;t yet have the player, it will be added there. Those players will have the last seen field reading NEVER with !userlist and !usersearch command outputs. If the player already exists in the database, the admin values will be overwritten with the ones in read from the admins.cfg file. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readadmins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; )	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* Starting from silEnT 0.5.0, the field sguid was added to the admin blocks. This allows adding admins using the silEnT GUIDs to identify them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example::&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name = ETPlayer&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 12345678912345678912345678912345 &amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 5&amp;lt;br/&amp;gt;&lt;br /&gt;
flags =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name =&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 12345678912345678912345678912345&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 3&amp;lt;br/&amp;gt;&lt;br /&gt;
flags = AbC&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== !resetpls ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can reset all stored statistics from an online or an offline player. The stored statistics include total SMG kills and deaths, the player K/D rating and PRW rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetpls [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; (	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - the command was changed to use silEnT ID instead of the last 8 characters of the PB GUID. There is no backward compatible command for PB GUIDs.&lt;br /&gt;
&lt;br /&gt;
= List of Permission Flags =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to privileges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:1 - Cannot be vote kicked, vote muted, or complained against.&lt;br /&gt;
:2 - Cannot be censored.&lt;br /&gt;
:3 - Can run shrubbot commands silently by adding &#039;/&#039; character in front of the command.&lt;br /&gt;
:4 - Can see Axis/Allies team chats as a spectator.&lt;br /&gt;
:5 - Can switch teams any time, regardless of balance.&lt;br /&gt;
:6 - Does not need to specify a reason for !mute, !kick or !ban.&lt;br /&gt;
:7 - Can call a vote at any time (regardless of disabled voting or voting limitations).&lt;br /&gt;
:8 - Does not need to specify a duration for a ban (defaults to PERMANENT).&lt;br /&gt;
:9 - Can do shrubbot commands via team and fireteam chats.&lt;br /&gt;
:0 - Is immune to g_inactivity and g_spectatorInactivity settings.&lt;br /&gt;
:! - Is immune to all shrubbot commands (useful for server admins). Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:@ - &amp;quot;incognito&amp;quot; flag shows the admin as level 0 with no a.k.a info in the output of !listplayers. Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:$ - Can do !admintest on other players.&lt;br /&gt;
:~ - Can read and write the adminchat with the /ma command. All referees and all other players with the ~ flag will be able to read this chat.&lt;br /&gt;
:&amp;amp; - Can rename himself regardless of g_maxNameChanges limit.&lt;br /&gt;
:? - Can see all private messages while being in spectators. g_tyranny must be set for this flag to take effect.&lt;br /&gt;
:/ - Cannot send private messages. Otherwise normal privileges.&lt;br /&gt;
: # - Cannot call votes.&lt;br /&gt;
: : - Can confirm admin identity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to commands&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:A - !slap&lt;br /&gt;
:a - !admintest&lt;br /&gt;
:B - !showbans, !subnets&lt;br /&gt;
:b - !ban, !unban&lt;br /&gt;
:C - !crazygravity, !crazyspeed&lt;br /&gt;
:c - !cancelvote&lt;br /&gt;
:d - !disorient, !orient&lt;br /&gt;
:E - !spree, !spreerecord, !tspree&lt;br /&gt;
:e - !baninfo, !finger, !aliases&lt;br /&gt;
:F - !freeze, !unfreeze&lt;br /&gt;
:G - !readconfig&lt;br /&gt;
:g - !gib&lt;br /&gt;
:I - !howfair, !listteams&lt;br /&gt;
:i - !list&lt;br /&gt;
:K - !lock, !unlock&lt;br /&gt;
:k - !kick&lt;br /&gt;
:L - !flinga, !launcha, !throwa&lt;br /&gt;
:l - !fling, !launch, !throw&lt;br /&gt;
:M - !resetmyxp&lt;br /&gt;
:m - !mute, !unmute&lt;br /&gt;
:N - !rename&lt;br /&gt;
:n - !nextmap&lt;br /&gt;
:P - !spec999&lt;br /&gt;
:p - !putteam&lt;br /&gt;
:R - !warn, !dewarn&lt;br /&gt;
:r - !reset, !restart&lt;br /&gt;
:S - !shuffle&lt;br /&gt;
:s - !setlevel, !levlist, !levinfo&lt;br /&gt;
:t - !stats&lt;br /&gt;
:U - !burn&lt;br /&gt;
:u - !uptime&lt;br /&gt;
:Q - !giba&lt;br /&gt;
:q - !panzerwar, !riflewar, !sniperwar&lt;br /&gt;
:V - !passvote&lt;br /&gt;
:W - !news&lt;br /&gt;
:w - !swap&lt;br /&gt;
:X - !resetxp&lt;br /&gt;
:x - !lol&lt;br /&gt;
:Z - !pause, !unpause&lt;br /&gt;
:z - !pip, !pop&lt;br /&gt;
:] - !userlist, !userinfo, !userban, !usersearch, !aliassearch&lt;br /&gt;
:[ - !useredit, !givexp, !userdelete, !aliasesdel&lt;br /&gt;
:) - !readadmins&lt;br /&gt;
:( - !resetpls&lt;br /&gt;
:. - !userwl, !rmsubnetban, !subnetban&lt;br /&gt;
:, - !updatepbguid&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Files =&lt;br /&gt;
&lt;br /&gt;
To use shrubbot the g_dbDirectory must be set. All the shrubbot files are placed into that directory.&lt;br /&gt;
&lt;br /&gt;
== shrubbot.cfg ==&lt;br /&gt;
&lt;br /&gt;
Shrubbot.cfg is the file that holds all the level definitions, custom commands, bans, warns and subnetbans for the server shrubbot. These configuration settings are hand editable. If the shrubbot.cfg file does not exists when !ban or!setlevel is used, a new one with default settings is created. The settings in the shrubbot.cfg are divided into following data blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[level]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
level    = The level number.&lt;br /&gt;
&lt;br /&gt;
name     = The nameof the level used in e.g. !list command.&lt;br /&gt;
&lt;br /&gt;
flags    = The permission flags for the level.&lt;br /&gt;
&lt;br /&gt;
greeting = The greetingtext that is displayed to every player joining the server with this level.&lt;br /&gt;
&lt;br /&gt;
greeting_sound = The greeting sound played for every playerjoining the server with this level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[command]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
command  = The name of the command.&lt;br /&gt;
&lt;br /&gt;
exec     = The executed command. These must be commands available to /rcon and these will be executed with rcon privileges.&lt;br /&gt;
&lt;br /&gt;
desc     = The help description of the cmmand.&lt;br /&gt;
&lt;br /&gt;
syntax   = List of parameters if the command uses them. This is used with !help and it is optional.&lt;br /&gt;
&lt;br /&gt;
levels   = Space separated list of levels this command is allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The exec field in the command block can use all the shortcuts that silEnT support. The shortcut is substituted as the command would have been a say from the player who issued the command. In addition to normal shortcuts, it is possible to use [i] which is replaced with the client number of the player who did the command.&lt;br /&gt;
* The exec field in the command block can additionally use parameter placeholders. These are [1] - [9] where the number is the n:th parameter given to the custom command. When these are used, the server will substitute the placeholder with the n:th parameter given to the command.&lt;br /&gt;
* Starting from silEnT 0.2.1, it is possible to add &#039;?&#039; to the parameter placeholders. This will make the server substitute the given string to a player name if only one player matches the string. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [command]&lt;br /&gt;
    command  = crybaby&lt;br /&gt;
    exec     = playsound path/to/sound.wav; chat ^7[1?]^7 is crying like a little baby!&lt;br /&gt;
    desc     = Make someone cry like a baby&lt;br /&gt;
    syntax   = [name]&lt;br /&gt;
    levels   = 0 1 2 3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[ban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the banned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The PunkBuster GUID of the banned player.&lt;br /&gt;
&lt;br /&gt;
sguid    = The silEnT GUID if the banned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP address of the banned player.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the ban was issued.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who banned the player.&lt;br /&gt;
&lt;br /&gt;
ident    = The silEnT ident if available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[subnetban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
subnet   = The subnet of the ban.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the subnet ban was created.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who created the ban.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[warning]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the warned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The silEnT GUID of the warned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP addressof the warned player.&lt;br /&gt;
&lt;br /&gt;
warning  = The reason of the warning.&lt;br /&gt;
&lt;br /&gt;
made     = The time when the warning was made.&lt;br /&gt;
&lt;br /&gt;
warner   = The name of the player who warned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[customvote]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The of the vote shown with the /callvote command. Maximum length 15 characters.&lt;br /&gt;
&lt;br /&gt;
exec     = Command string to execute if the vote passes. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
description = Description of the vote shown with the /callvote command. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
votetext = The text that is show for voters. Maximum length 255 characters.&lt;br /&gt;
&lt;br /&gt;
passtext = Optionally, a text that is shown to players if the vote passes.&lt;br /&gt;
&lt;br /&gt;
levels   = Optionally, admins can define the vote to be available to only specific levels. Same format that is used with the custom commands.&lt;br /&gt;
&lt;br /&gt;
== userdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where the silEnT stores information of the players. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify the file version for different silEnT versions and if necessary, silEnT will convert the file to a newer version. The old file will always be stored at the g_dbDirectory location with a _vxx added to its name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== userxdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where silEnT stores less often needed information about the players. Such as personalized greetings. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify the file version for different silEnT versions and if necessary, silEnT will convert the file to a newer version. The old file will always be stored at the g_dbDirectory location with a _vxx added to its name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== useradb.db ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this file holds the optional aliases database. To enable the database, g_dbMaxAliases cvar must be set to a positive integer. The aliases database can be disabled by setting g_dbMaxAliases to 0 at any time and then re-enabled by setting the value back to a positive integer without any effect to the file. However, if the g_dbMaxAliases cvar is set to a smaller value than it was before, the aliases that exceed the threshold will be lost and cannot be recovered.&lt;br /&gt;
&lt;br /&gt;
This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify the file version for different silEnT versions and if necessary, silEnT will convert the file to a newer version. The old file will always be stored at the g_dbDirectory location with a _vxx added to its name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. The error messages in the log are usually very descriptive about the errors.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Limitations =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of levels:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of shrubbot level name:&#039;&#039;&#039; 	35 (includes color codes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of players in the database:&#039;&#039;&#039; 	Unlimited&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of player bans:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of subnet bans:&#039;&#039;&#039; 128 (512 since 0.9.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of ban reason:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of admin-defined commands:&#039;&#039;&#039; 	63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command name length:&#039;&#039;&#039; 	63 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (executable part):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (help string):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of warnings:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
= Shortcuts = &lt;br /&gt;
&lt;br /&gt;
Server supports the replacement of the following keys in say messages&lt;br /&gt;
&lt;br /&gt;
[a]	last player who gave you ammo&lt;br /&gt;
&lt;br /&gt;
[d]	last player who killed you&lt;br /&gt;
&lt;br /&gt;
[g]	the last 8 characters of your GUID&lt;br /&gt;
&lt;br /&gt;
[h]	last player who gave you health&lt;br /&gt;
&lt;br /&gt;
[k]	last player you killed&lt;br /&gt;
&lt;br /&gt;
[l]	your location (letter,number)&lt;br /&gt;
&lt;br /&gt;
[n]	your name&lt;br /&gt;
&lt;br /&gt;
[r]	last player who revived you&lt;br /&gt;
&lt;br /&gt;
[p]	last player you looked at&lt;br /&gt;
&lt;br /&gt;
[s]	health remaining&lt;br /&gt;
&lt;br /&gt;
[w]	name of current weapon&lt;br /&gt;
&lt;br /&gt;
[t]	ammo for current weapon&lt;br /&gt;
&lt;br /&gt;
= Sample shrubbot config =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// silEnT mod - Sample Shrubbot.cfg file&lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 0&lt;br /&gt;
name	 = Prole&lt;br /&gt;
flags	 = iBaPzI&lt;br /&gt;
greeting = &lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 1&lt;br /&gt;
name	 = Level 1&lt;br /&gt;
flags	 = iBaPzIW1&lt;br /&gt;
greeting = Level 1 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 2&lt;br /&gt;
name	 = Level2&lt;br /&gt;
flags	 = iBaPzIW1mx&lt;br /&gt;
greeting = Level 2 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 3&lt;br /&gt;
name	 = Level 3&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259&lt;br /&gt;
greeting = Level 3 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 4&lt;br /&gt;
name	 = Level 4&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259kbcVNn34678&lt;br /&gt;
greeting = Level 4 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 5&lt;br /&gt;
name	 = Level 5&lt;br /&gt;
flags	 = *&lt;br /&gt;
greeting = Level 5 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1324</id>
		<title>Silent Shrubbot</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1324"/>
		<updated>2015-10-15T14:08:27Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* userdb.db */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What Is Shrubbot=&lt;br /&gt;
Shrubbot is an invention of Ryan Mannion. Shrubbot is an admin system that identifies the admin leveled players from silEnT and PunkBuster GUIDs without the need for passwords. Shrubbot is also very flexible and allows creating many different admin levels with entirely different command sets. silEnT shrubbot is based on the work of the ETPub team. silEnT extends the functionality of the shrubbot where ever it is needed. Including user database that holds all the players that have visited the server. To access this database, new commands have been added to the original shrubbot command set. Some commands have been renamed to ease their use and so that they resemble commands from other ET mods that have advanced admin systems.  &lt;br /&gt;
&lt;br /&gt;
If you want to use shrubbot, the cvar g_dbDirectory must be set. If it is not set, the shrubbot will not be in use. If you want to edit the default levels, you must create or copy existing shrubbot.cfg file to the directory defined by the g_dbDirectory setting. In case shrubbot command like !ban is used against a player and a shrubbot.cfg file does not already exist, a new shrubbot.cfg file is created  to store the needed data. &lt;br /&gt;
&lt;br /&gt;
The created file will also have the default level settings written to it. This file can be freely edited by hand and then, after !readconfig command has been issued, the changes take effect on the server.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Commands =&lt;br /&gt;
&lt;br /&gt;
== !admintest ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s current shrubbot admin level in global chat. When the NAME or SLOT are added and the user has the right shrubbot permission, the level of another player will be shown. However, if the target has incognito shrubbot flag, then 0 level is displayed regardless who does !admintest on him/her.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !admintest [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; a&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !aliases ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s stored aliases. Aliases are printed in the last seen first order.If there are more stored aliases than fit on one page, optional page parameter can be used to access different pages. The number of stored aliases depends of the g_dbMaxAliases cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !alises [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !ban ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off the server and will not let them connect again for SECONDS seconds, or, if a modifier (m, h, d, or w) is used, a given amount of time.  For example:&lt;br /&gt;
&lt;br /&gt;
90 = 90 seconds&lt;br /&gt;
&lt;br /&gt;
15m = 15 minutes&lt;br /&gt;
&lt;br /&gt;
3h = 3 hours&lt;br /&gt;
&lt;br /&gt;
5d = 5 days&lt;br /&gt;
&lt;br /&gt;
1w = 1 week&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !ban (NAME|SLOT) (SECONDS|TIME_WITH_MODIFIER) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !baninfo ==&lt;br /&gt;
&lt;br /&gt;
Shows detailed information of a ban in the ban list. Find the ban number with !showbans command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !baninfo (BAN NUMBER)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
== !burn ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME on fire.  REASON will be center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !burn (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; U&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !cancelvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress fail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !cancelvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; c&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !country ==&lt;br /&gt;
&lt;br /&gt;
Displays the country of the player. This command works only if GeoIP is enabled on server [http://mygamingtalk.com/wiki/index.php/Silent_Mod_Server_Cvar#g_countryFlags g_countryFlags]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !country&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== !crazygravity ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_gravity changes with 30 second interval. If enabled, the crazy gravity is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazygravity (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_speed changes with 30 second interval. If enabled, the crazy speed is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazyspeed (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !dewarn ==&lt;br /&gt;
&lt;br /&gt;
Shows all the warnings of a user. When warning number is used, the warning with that number will be removed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !dewarn (NAME|SLOT) [WARNING#]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !disorient ==&lt;br /&gt;
&lt;br /&gt;
Turns the view upside down for the client in slot number SLOT or with name containing NAME.  If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !disorient (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !finger ==&lt;br /&gt;
&lt;br /&gt;
Display the slot, partial guid, ip and clientversion of a player.&lt;br /&gt;
&lt;br /&gt;
NOTE: This command should be available only to the highest server admins!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !finger (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !freeze ==&lt;br /&gt;
&lt;br /&gt;
Freezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it freezes all players. Frozen player(s) cannot receive damage during this time. If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !freeze [NAME|SLOT] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !gib ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs the player in slot number SLOT or with name containing NAME. If name is -1 or all or if no name is entered, everybody will be gibbed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !gib (NAME|SLOT|-1|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; g&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !giba ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !giba&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !help ==&lt;br /&gt;
&lt;br /&gt;
Lists all the available shrubbot commands. If COMMAND is given, then prints the help of that specific command. !help is always available to all clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !help [COMMAND]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !howfair ==&lt;br /&gt;
&lt;br /&gt;
Prints a simple summary to everyone on the chat of team fairness based on player kill rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !howfair&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !kick ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off of the server. REASON is given to the client as the drop message. The client will be banned for 2 minutes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !kick (NAME|SLOT) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; k&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !levinfo ==&lt;br /&gt;
&lt;br /&gt;
Lists all the details of the specific admin level. The listed information includes The name of the level, the greeting, the greeting sound path and the privilege flags for the level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levinfo (Admin Level)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !levlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all the admin levels loaded from the shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levlist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !list ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of information about the connected players.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* slot number&lt;br /&gt;
&lt;br /&gt;
* team R=axis B=allies S=spectator C=connecting&lt;br /&gt;
&lt;br /&gt;
* first letter of fireteam name&lt;br /&gt;
&lt;br /&gt;
* admin level (and level name)&lt;br /&gt;
&lt;br /&gt;
* last 8 digits of guid&lt;br /&gt;
&lt;br /&gt;
* M if muted&lt;br /&gt;
&lt;br /&gt;
* W if warned&lt;br /&gt;
&lt;br /&gt;
* name&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !listteams ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of statistical information about each team. This lists ends with ratings information based on how likely each team is to win the current map. The team with more points is LESS likely to win, therefore a good way to balance the teams is to join the team with more points, or move people to that team, until the points are about even.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !listteams&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lock ==&lt;br /&gt;
&lt;br /&gt;
Locks the specified team. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lol ==&lt;br /&gt;
&lt;br /&gt;
Makes all players drop grenades.  If NAME or SLOT is provided only that player will drop grenades.  GRENADES is the number of grenades to be dropped (default is 1, maximum is 16).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lol [NAME|SLOT] [GRENADES]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; x&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !mute ==&lt;br /&gt;
&lt;br /&gt;
Mutes a player in a slot number SLOT or with a name containing NAME. TIME and REASON are optional. See !ban for more information on modifiers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !mute (NAME|SLOT) [SECONDS|TIME_WITH_MODIFIER] REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !news ==&lt;br /&gt;
&lt;br /&gt;
Plays the map specific news audio to all players if it is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !news&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; W&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !nextmap ==&lt;br /&gt;
&lt;br /&gt;
Moves to the next map in campaign or in the objective cycle end game intermission is skipped. With mapvoting gametype the game will go to the intermission.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !nextmap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; n&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog&#039;&#039;&#039;&lt;br /&gt;
* 0.4.0 The !nextmap will go to the intermission map voting when the gametype is set to 7 and the g_mapVoteFlags bitmask has flag 16 set.&lt;br /&gt;
* 0.5.1 The g_mapVoteFlags flag 16 was removed and the game will always go to the intermission with map voting game type. If old behaviour is needed, admin can create custom command executing &amp;quot;vstr nextmap&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== !orient ==&lt;br /&gt;
&lt;br /&gt;
Reverses the action of !disorient for the client in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !orient (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !panzerwar ==&lt;br /&gt;
&lt;br /&gt;
Enables panzerwar game mode. All the players will have their main weapon changed to panzerfaust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !panzerwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !passvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !passvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; V&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pause ==&lt;br /&gt;
&lt;br /&gt;
Pauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pip ==&lt;br /&gt;
&lt;br /&gt;
Draws sparks (pixie dust) around the player in slot number SLOT or with name containing NAME. Does it to all players if NAME/SLOT is not providied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pip [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pop ==&lt;br /&gt;
&lt;br /&gt;
Pops the helmet off from a player in a slot number SLOT or with a name containing NAME. If no parameter is provided, it pops the helmets off from all the players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pop [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !putteam ==&lt;br /&gt;
&lt;br /&gt;
Moves a player in a slot number SLOT or with a name containing NAME to the indicated team.&lt;br /&gt;
&lt;br /&gt;
* r - Allies&lt;br /&gt;
&lt;br /&gt;
* b - Axis&lt;br /&gt;
&lt;br /&gt;
* s - Spectators&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !putteam (NAME|SLOT) (r|b|s)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; p&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !readconfig ==&lt;br /&gt;
&lt;br /&gt;
Reads shrubbot.cfg file from the directory set by g_dbDirectory cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readconfig&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; G&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rename ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME to NEWNAME. The name change will not be persistent. The user database will store the renamed name for the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rename (NAME|SLOT) NEWNAME&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; N&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !reset ==&lt;br /&gt;
&lt;br /&gt;
Resets the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !reset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetmyxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player who runs this command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetmyxp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; M&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player in the slot number SLOT or with the name containing NAME.  If reason is provided it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetxp (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !restart ==&lt;br /&gt;
&lt;br /&gt;
Restarts the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !riflewar ==&lt;br /&gt;
&lt;br /&gt;
Enables riflewar game mode. All the players will have their main weapon changed to either K43 or Garand. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !riflewar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rmsubnetban ==&lt;br /&gt;
&lt;br /&gt;
Removes subnet ban. The given subnet ban number can be found using !subnets command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rmsubnetban [ban number]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !setlevel ==&lt;br /&gt;
&lt;br /&gt;
Sets the connected player in the slot number SLOT or with name containing NAME to the level indicated by LEVEL. A player cannot !setlevel another player to a lever higher than him/herself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !setlevel (NAME|SLOT) LEVEL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !showbans ==&lt;br /&gt;
&lt;br /&gt;
Lists up to 30 shrubbot bans currently in effect.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* ban number&lt;br /&gt;
&lt;br /&gt;
* banned player&#039;s name&lt;br /&gt;
&lt;br /&gt;
* date of the ban&lt;br /&gt;
&lt;br /&gt;
* name of the banning admin&lt;br /&gt;
&lt;br /&gt;
* when the ban will expire&lt;br /&gt;
&lt;br /&gt;
* reason for the ban&lt;br /&gt;
&lt;br /&gt;
If SKIP is provided, that number of bans are skipped before printing starts. SKIP can also be negative (e.g. &#039;!showbans -10&#039; would display the last 10 bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !showbans [SKIP]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !shuffle ==&lt;br /&gt;
&lt;br /&gt;
Shuffles teams, but does NOT restart (see !restart).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !shuffle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; S&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !slap ==&lt;br /&gt;
&lt;br /&gt;
Does DAMAGE (default 20) damage to player in slot SLOT or with name containing NAME. If REASON is specified it&#039;s center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !slap (NAME|SLOT) [DAMAGE] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !sniperwar ==&lt;br /&gt;
&lt;br /&gt;
Enables sniperwar game mode. All the players will have their main weapon changed to sniper rifles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !sniperwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spec999 ==&lt;br /&gt;
&lt;br /&gt;
Moves all the players with a ping of 999 to the spectators team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spec999&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; P&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spree ==&lt;br /&gt;
&lt;br /&gt;
Show the players current killing spree count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spree&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spreerecord ==&lt;br /&gt;
&lt;br /&gt;
Displays the map and the overall spreerecord.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spreerecord&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !stats ==&lt;br /&gt;
&lt;br /&gt;
Displays the Thompson, MP40 and PPSh total kills and deaths, kills and deaths during the map and accuracy, headshotratio and headshot distance during the map. Lists all connected players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !stats&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; t&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !subnets ==&lt;br /&gt;
&lt;br /&gt;
This command displays all the issued subnet bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnets (start at)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !subnetban ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can issue subnet ban. Subnet ban is a ban where the connecting player IP is matched against a larger IP range. The command accepts only subnets between range x.* - x.x.x.*. If the admin attempts to issue subnet ban that would ban himself the command refuses to add the subnet. This can be circumvented using rcon commands. If admin wants to add a subnet that would ban himself he must first whitelist himself with !userwl command. If silEnT can confirm the admin can connect the subnet ban is added. The command accepts full IP as it&#039;s parameter in which case the subnet is created to the x.x.x.* address. To remove subnet bans admin can use the !rmsubnetban command. The syntax with this commnd is the same kind with ban and userban commandand reason andtime can be given. The reason should be given so that any player connecting would know the reason for not being able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnetban [subnet] (time) (reason)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Require g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - Octets can be cut from inside with &#039;x&#039;. For example, &amp;quot;!subnetban 12x&amp;quot; will ban all IP addresses matching 12x.xxx.xxx.xxx.&lt;br /&gt;
&lt;br /&gt;
== !swap ==&lt;br /&gt;
&lt;br /&gt;
Swaps the players to the opposite team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !swap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; w&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !time ==&lt;br /&gt;
&lt;br /&gt;
Prints out localtime of the client in the chat. No other client can see this time message. The command doesn&#039;t have a flag but it is available to all clients always.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; No permission required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throw ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throw (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !tspree ==&lt;br /&gt;
&lt;br /&gt;
Show the top n current killing spree (default top 5).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !tspree [amount]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unban ==&lt;br /&gt;
&lt;br /&gt;
Removes the ban that !showbans lists as BAN_NUMBER.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unban BAN_NUMBER&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unfreeze ==&lt;br /&gt;
&lt;br /&gt;
Unfreezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it unfreezes all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unfreeze [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unpause ==&lt;br /&gt;
&lt;br /&gt;
Unpauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unpause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unmute ==&lt;br /&gt;
&lt;br /&gt;
Unmutes the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unmute (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unlock ==&lt;br /&gt;
&lt;br /&gt;
Unlocks the team specified. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unlock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !uptime ==&lt;br /&gt;
&lt;br /&gt;
Show how long the server has been up and running.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !uptime&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; u&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !fling ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !fling (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launch==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launch(NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throwa ==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throwa&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !flinga==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !flinga&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launcha==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launcha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !warn ==&lt;br /&gt;
&lt;br /&gt;
Plays the whistle sound and center-prints WARNING to the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !warn (NAME|SLOT) [WARNING]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
= User Database &amp;amp; Commands =&lt;br /&gt;
&lt;br /&gt;
User database is intended to store information of all the players that connect to the server. To enable user database g_dbDirectory must be set. The database stores information to identify different players and also XP data, rating data, overall stats data and shrubbot admin data. silEnT GUIDs are used to identify single players.&lt;br /&gt;
&lt;br /&gt;
Shrubbot includes functionality for server admins to handle database userdata. All commands that handle users in the database will take the last 8 characters of the player silEnT GUID to identify the player to edit. Internally, the full GUID is used to identify the players. Some commands have equivalent versions using last 8 characters of PunkBuster GUIDs to identify the player. These are needed for players who were stored into the database before the silEnT GUID was added and haven&#039;t connected to the server since.&lt;br /&gt;
&lt;br /&gt;
== !aliasesdel ==&lt;br /&gt;
&lt;br /&gt;
Command removes all the aliases from the player identified by the 8 character silEnT ID.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliasesdel [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !aliassearch ==&lt;br /&gt;
&lt;br /&gt;
This command searches the whole aliases database for the pattern in the names. Note, this command is the most resource intensive shrubbot command of all commands, and it is not recommended to be used without a reason. How fast it performs in practice depends of the aliases database size.&lt;br /&gt;
&lt;br /&gt;
For each player the following information is shown:&lt;br /&gt;
&lt;br /&gt;
:* identity information (silEnT ID)&lt;br /&gt;
&lt;br /&gt;
:* each used alias that fits the search pattern&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was first seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was last seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias the total playtime with it&lt;br /&gt;
&lt;br /&gt;
To see all the aliases of the found player, you can use &amp;quot;!userinfo aliases&amp;quot; command. In the case of all the data not fitting in one page, you can give an optional start parameter. The start parameter corresponds to the numbers shown in the first column of the results. So that each player has its own number and under that number, all the matching aliases from that player are printed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliassearch [name] [start]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !confirm ==&lt;br /&gt;
&lt;br /&gt;
Confirms the player identity with a protected admin level. As a result, the confirmed player and the server will transfer authentication information allowing the player to use admin commands from thereafter. Unconfirmed players are players with admin level that is protected but the server can not ensure the identity. This usually happens when players admin level changes with offlinecommands or the protected levels are extended. This command does not give the player admin levels, it only confirms the identity of a player whos admin level is already set. Also, if the player loses his admin level identification, this command can not be used to reinstate it.&lt;br /&gt;
&lt;br /&gt;
This command is safe to be given even to the lower levels of admins.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !confirm [SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== !userlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all users in the database. If PAGE is given, the list starts from that page. If PAGE is not given the first page of the database is printed. The command prints all users, including clients that have connected during the level time and are not yet in the database. The connected clients are always printed first and then the rest of the userbase.&lt;br /&gt;
&lt;br /&gt;
The printed rows have the following columns:&lt;br /&gt;
:*&#039;#&#039; ; This is the serial number of the user in the printout. The number doesn&#039;t correspond to anything in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;silEnT ID&#039; ; This is the 8 character silEnT GUID of the player. This is used to identify different players in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;PBGUID&#039; ; This is the 8 character PB GUID of the user. This is used to identify different users in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Last Seen&#039; ;	This tells how long time ago the user was last seen on the server. For connected clients, this will print &amp;quot;connected&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:*&#039;IP&#039; ; This tells the last IP address user has had on the server.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Ban&#039; ; This is the ban number if the player is banned from the server. If the player is whitelisted from IP bans, this column reads white capital W.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Name&#039; ; This tells the last name with user has been saved on the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With userlist command an admin can list all the users saved in the database and those that are connected page by page. Optional page number can be given to the command to tell which page is to be displayed about the users. One page can have up to 20 players printed. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userlist [PAGE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.4.0 - New column &#039;Ban&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - New column &#039;silEnT ID&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
== !userinfo ==&lt;br /&gt;
&lt;br /&gt;
Displays all information that is stored about the user in the database.&lt;br /&gt;
&lt;br /&gt;
This information includes:&lt;br /&gt;
&lt;br /&gt;
:*identity information (name, IP, 8 character PunkBuster GUID, silEnT ID, Client Identification)&lt;br /&gt;
&lt;br /&gt;
:*admin level&lt;br /&gt;
&lt;br /&gt;
:*personal greeting&lt;br /&gt;
&lt;br /&gt;
:*personal greeting sound&lt;br /&gt;
&lt;br /&gt;
:*personal shrubbot flags&lt;br /&gt;
&lt;br /&gt;
:*saved XP per skill&lt;br /&gt;
&lt;br /&gt;
:*rating values&lt;br /&gt;
&lt;br /&gt;
:*total kills and deaths with SMG weapons&lt;br /&gt;
&lt;br /&gt;
:*the ban number of the player or whitelisting&lt;br /&gt;
&lt;br /&gt;
:*list of stored aliases if the aliases database is enabled on the server&lt;br /&gt;
&lt;br /&gt;
Command can optionally print player&#039;s stored aliases if the optional aliases parameter is given and the aliases database is enabled by setting g_dbMaxAliases to a positive integer. If printed aliases don&#039;t fit in one page, optional page parameter can be used to access different pages. &lt;br /&gt;
&lt;br /&gt;
Command requires the last 8 characters of the player silEnT GUID. This GUID can be found with !userlist or !usersearch commands. This command works for both online and offline players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userinfo [silEnT ID] [aliases [page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:0.4.0 - Information of possible ban and whitelisting is added.&lt;br /&gt;
&lt;br /&gt;
:0.5.0 - silEnT ID is added.&lt;br /&gt;
&lt;br /&gt;
:0.6.0 - Aliases option is added.&lt;br /&gt;
&lt;br /&gt;
== !useredit ==&lt;br /&gt;
&lt;br /&gt;
Command is used to edit explicit userdata in the database. The command format is:&lt;br /&gt;
&lt;br /&gt;
!useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
The command parameters in detail:&lt;br /&gt;
&lt;br /&gt;
:*silEnT ID - This is the last 8 characters of the silEnT GUID of the player. This is needed to identify the player to edit.&lt;br /&gt;
&lt;br /&gt;
:*add - If the command is given this parameter, the value(s) in the [new value] field will be added to the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*remove - If the command is given this parameter, the value(s) in the [new value] field will be removed from the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*level	- If the command is given this parameter, the value in the [new value] field will be set as the players new level. The level may not be higher then the level of the player executing the command.&lt;br /&gt;
&lt;br /&gt;
:*greeting - If the command is given this parameter, the value in the [new value] field will be the players new personal greeting. If the [new value] field is empty, the personal greeting is cleared.&lt;br /&gt;
&lt;br /&gt;
:*sound	- If the command is given this parameter, the value in the [new value] field will be the file path to the players new personal greeting sound. If the [new value] field is empty, the personal greeting sound is cleared.&lt;br /&gt;
&lt;br /&gt;
:*new value - This field is used to give values to the command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the optional new value field is not set with greeting or sound parameter, the value will be set to empty and level values will be used again with these players.&lt;br /&gt;
&lt;br /&gt;
This command works with online and offline players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !usereditpb.&lt;br /&gt;
&lt;br /&gt;
== !givexp==&lt;br /&gt;
&lt;br /&gt;
Command gives the online or offline player identified by PBGUID a defined amount of XP points to the selected skill. The possible skills are:&lt;br /&gt;
&lt;br /&gt;
sold	Soldier or Heavy Weapons&lt;br /&gt;
&lt;br /&gt;
med	Medics or First Aid&lt;br /&gt;
&lt;br /&gt;
eng	 Engineering or Explosives and Construction&lt;br /&gt;
&lt;br /&gt;
fops	Field Ops or Signals&lt;br /&gt;
&lt;br /&gt;
cov	Covert Ops or Military Intelligence and Scoped Weapons&lt;br /&gt;
&lt;br /&gt;
light	Light Weapons&lt;br /&gt;
&lt;br /&gt;
battle	Battle Sense&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !givexp [silEnT ID] [sold|med|eng|fops|cov|light|battle] [amount to add]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !givexppb.&lt;br /&gt;
&lt;br /&gt;
== !userban ==&lt;br /&gt;
&lt;br /&gt;
Command bans user indentified by the 8 character silEnT GUID from the server. The data required for ban is taken from the database and the banned user does not need to be online when the command is given. Bot&#039;s cannot be banned with this command. Note that the bans are written in the human readable config file and you can still write the bans by hand if desired. Also, removing of the bans can be done by hand if desired. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userban [silEnT ID] [time] [reason]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userbanpb.&lt;br /&gt;
&lt;br /&gt;
== !userwl ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can whitelist or remove whitelisting from any player. Whitelisting means that the player IP is not checked against any IP bans. Including subnet bans and individual bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userwl [silEnT GUID] [add|remove]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !userdelete ==&lt;br /&gt;
&lt;br /&gt;
Command removes the user identified by the 8 character silEnT GUID from the database. The actual actions are taken at the level end if needed. However, once the !userdelete command has been issued to the user, the information of the user is no longer available and after the shutdown game, it is permanently lost.&lt;br /&gt;
&lt;br /&gt;
If the removed player is connected to the server while removing, a new entry is written to that player. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userdelete [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userdeletepb.&lt;br /&gt;
&lt;br /&gt;
== !usersearch ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can search the database for players with specific parameters. Arguments to the command can be pattern in the name, user admin system level and the beginning of the IP address. Additional page number can be given when the amount of found results exceed what can be shown in one page. All the arguments can be given in one command in any order. Any one of the arguments can be omitted, but each time when command is given at least one argument on top of the optional page number must be given. This command searches stored information only from the database. Connected players are not included unless they are already stored into the database.&lt;br /&gt;
&lt;br /&gt;
This command can be performance intensive and it is not recommended to use it only for maintenance operations. The command will internally always try to optimise itself. If the command is given repeatedly with same arguments but only changing the page number, new searches are not performed but only different pages of the already found results are displayed. The optimisations include that the silEnT will try to use the already found results as the basis for the new search (e.g. &amp;quot;!usersearch name gao&amp;quot; followed by &amp;quot;!usersearch name gaoe&amp;quot; will first search the whole db to find all users with the pattern gao in their names and the follow up search will refine the already found results for gaoe). The maximum amount of results one search can return is 256 users. Users are displayed in the console in pages with 20 users on each page. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !usersearch [name (name)]|&amp;amp;[level (level)]|&amp;amp;[IP (IP)] [page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !updatepbguid ==&lt;br /&gt;
&lt;br /&gt;
Updates the PB GUID that is stored in the database to the one which the player is currently using. With the exception that empty, invalid or dublicated PB GUIDs are not saved to the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !updatepbguid [Name|Slot]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !readadmins ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can read admin definitions from a specific admins.cfg file. The file must be placed in the directory pointed by g_dbDirectory server cvar. The file may have only admin definition blocks.&lt;br /&gt;
Admin definitions use always the following syntax. The syntax is exactly the same used by the ETPub.&lt;br /&gt;
&lt;br /&gt;
[admin]&lt;br /&gt;
&lt;br /&gt;
name     = name of the admin (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid    = full 32 character silEnT GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
guid     = full 32 character PB GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
level    = level number&amp;lt;br/&amp;gt;&lt;br /&gt;
flags    = personal admin flags (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting = personal greeting (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound = path to personal greeting sound (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the database doesn&#039;t yet have the player, it will be added there. Those players will have the last seen field reading NEVER with !userlist and !usersearch command outputs. If the player already exists in the database, the admin values will be overwritten with the ones in read from the admins.cfg file. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readadmins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; )	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* Starting from silEnT 0.5.0, the field sguid was added to the admin blocks. This allows adding admins using the silEnT GUIDs to identify them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example::&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name = ETPlayer&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 12345678912345678912345678912345 &amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 5&amp;lt;br/&amp;gt;&lt;br /&gt;
flags =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name =&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 12345678912345678912345678912345&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 3&amp;lt;br/&amp;gt;&lt;br /&gt;
flags = AbC&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== !resetpls ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can reset all stored statistics from an online or an offline player. The stored statistics include total SMG kills and deaths, the player K/D rating and PRW rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetpls [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; (	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - the command was changed to use silEnT ID instead of the last 8 characters of the PB GUID. There is no backward compatible command for PB GUIDs.&lt;br /&gt;
&lt;br /&gt;
= List of Permission Flags =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to privileges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:1 - Cannot be vote kicked, vote muted, or complained against.&lt;br /&gt;
:2 - Cannot be censored.&lt;br /&gt;
:3 - Can run shrubbot commands silently by adding &#039;/&#039; character in front of the command.&lt;br /&gt;
:4 - Can see Axis/Allies team chats as a spectator.&lt;br /&gt;
:5 - Can switch teams any time, regardless of balance.&lt;br /&gt;
:6 - Does not need to specify a reason for !mute, !kick or !ban.&lt;br /&gt;
:7 - Can call a vote at any time (regardless of disabled voting or voting limitations).&lt;br /&gt;
:8 - Does not need to specify a duration for a ban (defaults to PERMANENT).&lt;br /&gt;
:9 - Can do shrubbot commands via team and fireteam chats.&lt;br /&gt;
:0 - Is immune to g_inactivity and g_spectatorInactivity settings.&lt;br /&gt;
:! - Is immune to all shrubbot commands (useful for server admins). Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:@ - &amp;quot;incognito&amp;quot; flag shows the admin as level 0 with no a.k.a info in the output of !listplayers. Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:$ - Can do !admintest on other players.&lt;br /&gt;
:~ - Can read and write the adminchat with the /ma command. All referees and all other players with the ~ flag will be able to read this chat.&lt;br /&gt;
:&amp;amp; - Can rename himself regardless of g_maxNameChanges limit.&lt;br /&gt;
:? - Can see all private messages while being in spectators. g_tyranny must be set for this flag to take effect.&lt;br /&gt;
:/ - Cannot send private messages. Otherwise normal privileges.&lt;br /&gt;
: # - Cannot call votes.&lt;br /&gt;
: : - Can confirm admin identity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to commands&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:A - !slap&lt;br /&gt;
:a - !admintest&lt;br /&gt;
:B - !showbans, !subnets&lt;br /&gt;
:b - !ban, !unban&lt;br /&gt;
:C - !crazygravity, !crazyspeed&lt;br /&gt;
:c - !cancelvote&lt;br /&gt;
:d - !disorient, !orient&lt;br /&gt;
:E - !spree, !spreerecord, !tspree&lt;br /&gt;
:e - !baninfo, !finger, !aliases&lt;br /&gt;
:F - !freeze, !unfreeze&lt;br /&gt;
:G - !readconfig&lt;br /&gt;
:g - !gib&lt;br /&gt;
:I - !howfair, !listteams&lt;br /&gt;
:i - !list&lt;br /&gt;
:K - !lock, !unlock&lt;br /&gt;
:k - !kick&lt;br /&gt;
:L - !flinga, !launcha, !throwa&lt;br /&gt;
:l - !fling, !launch, !throw&lt;br /&gt;
:M - !resetmyxp&lt;br /&gt;
:m - !mute, !unmute&lt;br /&gt;
:N - !rename&lt;br /&gt;
:n - !nextmap&lt;br /&gt;
:P - !spec999&lt;br /&gt;
:p - !putteam&lt;br /&gt;
:R - !warn, !dewarn&lt;br /&gt;
:r - !reset, !restart&lt;br /&gt;
:S - !shuffle&lt;br /&gt;
:s - !setlevel, !levlist, !levinfo&lt;br /&gt;
:t - !stats&lt;br /&gt;
:U - !burn&lt;br /&gt;
:u - !uptime&lt;br /&gt;
:Q - !giba&lt;br /&gt;
:q - !panzerwar, !riflewar, !sniperwar&lt;br /&gt;
:V - !passvote&lt;br /&gt;
:W - !news&lt;br /&gt;
:w - !swap&lt;br /&gt;
:X - !resetxp&lt;br /&gt;
:x - !lol&lt;br /&gt;
:Z - !pause, !unpause&lt;br /&gt;
:z - !pip, !pop&lt;br /&gt;
:] - !userlist, !userinfo, !userban, !usersearch, !aliassearch&lt;br /&gt;
:[ - !useredit, !givexp, !userdelete, !aliasesdel&lt;br /&gt;
:) - !readadmins&lt;br /&gt;
:( - !resetpls&lt;br /&gt;
:. - !userwl, !rmsubnetban, !subnetban&lt;br /&gt;
:, - !updatepbguid&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Files =&lt;br /&gt;
&lt;br /&gt;
To use shrubbot the g_dbDirectory must be set. All the shrubbot files are placed into that directory.&lt;br /&gt;
&lt;br /&gt;
== shrubbot.cfg ==&lt;br /&gt;
&lt;br /&gt;
Shrubbot.cfg is the file that holds all the level definitions, custom commands, bans, warns and subnetbans for the server shrubbot. These configuration settings are hand editable. If the shrubbot.cfg file does not exists when !ban or!setlevel is used, a new one with default settings is created. The settings in the shrubbot.cfg are divided into following data blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[level]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
level    = The level number.&lt;br /&gt;
&lt;br /&gt;
name     = The nameof the level used in e.g. !list command.&lt;br /&gt;
&lt;br /&gt;
flags    = The permission flags for the level.&lt;br /&gt;
&lt;br /&gt;
greeting = The greetingtext that is displayed to every player joining the server with this level.&lt;br /&gt;
&lt;br /&gt;
greeting_sound = The greeting sound played for every playerjoining the server with this level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[command]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
command  = The name of the command.&lt;br /&gt;
&lt;br /&gt;
exec     = The executed command. These must be commands available to /rcon and these will be executed with rcon privileges.&lt;br /&gt;
&lt;br /&gt;
desc     = The help description of the cmmand.&lt;br /&gt;
&lt;br /&gt;
syntax   = List of parameters if the command uses them. This is used with !help and it is optional.&lt;br /&gt;
&lt;br /&gt;
levels   = Space separated list of levels this command is allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The exec field in the command block can use all the shortcuts that silEnT support. The shortcut is substituted as the command would have been a say from the player who issued the command. In addition to normal shortcuts, it is possible to use [i] which is replaced with the client number of the player who did the command.&lt;br /&gt;
* The exec field in the command block can additionally use parameter placeholders. These are [1] - [9] where the number is the n:th parameter given to the custom command. When these are used, the server will substitute the placeholder with the n:th parameter given to the command.&lt;br /&gt;
* Starting from silEnT 0.2.1, it is possible to add &#039;?&#039; to the parameter placeholders. This will make the server substitute the given string to a player name if only one player matches the string. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [command]&lt;br /&gt;
    command  = crybaby&lt;br /&gt;
    exec     = playsound path/to/sound.wav; chat ^7[1?]^7 is crying like a little baby!&lt;br /&gt;
    desc     = Make someone cry like a baby&lt;br /&gt;
    syntax   = [name]&lt;br /&gt;
    levels   = 0 1 2 3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[ban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the banned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The PunkBuster GUID of the banned player.&lt;br /&gt;
&lt;br /&gt;
sguid    = The silEnT GUID if the banned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP address of the banned player.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the ban was issued.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who banned the player.&lt;br /&gt;
&lt;br /&gt;
ident    = The silEnT ident if available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[subnetban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
subnet   = The subnet of the ban.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the subnet ban was created.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who created the ban.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[warning]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the warned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The silEnT GUID of the warned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP addressof the warned player.&lt;br /&gt;
&lt;br /&gt;
warning  = The reason of the warning.&lt;br /&gt;
&lt;br /&gt;
made     = The time when the warning was made.&lt;br /&gt;
&lt;br /&gt;
warner   = The name of the player who warned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[customvote]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The of the vote shown with the /callvote command. Maximum length 15 characters.&lt;br /&gt;
&lt;br /&gt;
exec     = Command string to execute if the vote passes. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
description = Description of the vote shown with the /callvote command. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
votetext = The text that is show for voters. Maximum length 255 characters.&lt;br /&gt;
&lt;br /&gt;
passtext = Optionally, a text that is shown to players if the vote passes.&lt;br /&gt;
&lt;br /&gt;
levels   = Optionally, admins can define the vote to be available to only specific levels. Same format that is used with the custom commands.&lt;br /&gt;
&lt;br /&gt;
== userdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where the silEnT stores information of the players. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify the file version for different silEnT versions and if necessary, silEnT will convert the file to a newer version. The old file will always be stored at the g_dbDirectory location with a _vxx added to its name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== userxdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where silEnT stores less often needed information about the players. Such as personalized greetings. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify the file version for different silEnT versions and if necessary, silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== useradb.db ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this file holds the optional aliases database. To enable the database, g_dbMaxAliases cvar must be set to a positive integer. The aliases database can be disabled by setting g_dbMaxAliases to 0 at any time and then re-enabled by setting the value back to a positive integer without any effect to the file. However, if the g_dbMaxAliases cvar is set to a smaller value than it was before, the aliases that exceed the threshold will be lost and cannot be recovered.&lt;br /&gt;
&lt;br /&gt;
This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify the file version for different silEnT versions and if necessary, silEnT will convert the file to a newer version. The old file will always be stored at the g_dbDirectory location with a _vxx added to its name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. The error messages in the log are usually very descriptive about the errors.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Limitations =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of levels:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of shrubbot level name:&#039;&#039;&#039; 	35 (includes color codes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of players in the database:&#039;&#039;&#039; 	Unlimited&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of player bans:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of subnet bans:&#039;&#039;&#039; 128 (512 since 0.9.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of ban reason:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of admin-defined commands:&#039;&#039;&#039; 	63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command name length:&#039;&#039;&#039; 	63 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (executable part):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (help string):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of warnings:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
= Shortcuts = &lt;br /&gt;
&lt;br /&gt;
Server supports the replacement of the following keys in say messages&lt;br /&gt;
&lt;br /&gt;
[a]	last player who gave you ammo&lt;br /&gt;
&lt;br /&gt;
[d]	last player who killed you&lt;br /&gt;
&lt;br /&gt;
[g]	the last 8 characters of your GUID&lt;br /&gt;
&lt;br /&gt;
[h]	last player who gave you health&lt;br /&gt;
&lt;br /&gt;
[k]	last player you killed&lt;br /&gt;
&lt;br /&gt;
[l]	your location (letter,number)&lt;br /&gt;
&lt;br /&gt;
[n]	your name&lt;br /&gt;
&lt;br /&gt;
[r]	last player who revived you&lt;br /&gt;
&lt;br /&gt;
[p]	last player you looked at&lt;br /&gt;
&lt;br /&gt;
[s]	health remaining&lt;br /&gt;
&lt;br /&gt;
[w]	name of current weapon&lt;br /&gt;
&lt;br /&gt;
[t]	ammo for current weapon&lt;br /&gt;
&lt;br /&gt;
= Sample shrubbot config =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// silEnT mod - Sample Shrubbot.cfg file&lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 0&lt;br /&gt;
name	 = Prole&lt;br /&gt;
flags	 = iBaPzI&lt;br /&gt;
greeting = &lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 1&lt;br /&gt;
name	 = Level 1&lt;br /&gt;
flags	 = iBaPzIW1&lt;br /&gt;
greeting = Level 1 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 2&lt;br /&gt;
name	 = Level2&lt;br /&gt;
flags	 = iBaPzIW1mx&lt;br /&gt;
greeting = Level 2 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 3&lt;br /&gt;
name	 = Level 3&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259&lt;br /&gt;
greeting = Level 3 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 4&lt;br /&gt;
name	 = Level 4&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259kbcVNn34678&lt;br /&gt;
greeting = Level 4 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 5&lt;br /&gt;
name	 = Level 5&lt;br /&gt;
flags	 = *&lt;br /&gt;
greeting = Level 5 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1323</id>
		<title>Silent Shrubbot</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1323"/>
		<updated>2015-10-15T14:07:20Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* userxdb.db */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What Is Shrubbot=&lt;br /&gt;
Shrubbot is an invention of Ryan Mannion. Shrubbot is an admin system that identifies the admin leveled players from silEnT and PunkBuster GUIDs without the need for passwords. Shrubbot is also very flexible and allows creating many different admin levels with entirely different command sets. silEnT shrubbot is based on the work of the ETPub team. silEnT extends the functionality of the shrubbot where ever it is needed. Including user database that holds all the players that have visited the server. To access this database, new commands have been added to the original shrubbot command set. Some commands have been renamed to ease their use and so that they resemble commands from other ET mods that have advanced admin systems.  &lt;br /&gt;
&lt;br /&gt;
If you want to use shrubbot, the cvar g_dbDirectory must be set. If it is not set, the shrubbot will not be in use. If you want to edit the default levels, you must create or copy existing shrubbot.cfg file to the directory defined by the g_dbDirectory setting. In case shrubbot command like !ban is used against a player and a shrubbot.cfg file does not already exist, a new shrubbot.cfg file is created  to store the needed data. &lt;br /&gt;
&lt;br /&gt;
The created file will also have the default level settings written to it. This file can be freely edited by hand and then, after !readconfig command has been issued, the changes take effect on the server.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Commands =&lt;br /&gt;
&lt;br /&gt;
== !admintest ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s current shrubbot admin level in global chat. When the NAME or SLOT are added and the user has the right shrubbot permission, the level of another player will be shown. However, if the target has incognito shrubbot flag, then 0 level is displayed regardless who does !admintest on him/her.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !admintest [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; a&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !aliases ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s stored aliases. Aliases are printed in the last seen first order.If there are more stored aliases than fit on one page, optional page parameter can be used to access different pages. The number of stored aliases depends of the g_dbMaxAliases cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !alises [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !ban ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off the server and will not let them connect again for SECONDS seconds, or, if a modifier (m, h, d, or w) is used, a given amount of time.  For example:&lt;br /&gt;
&lt;br /&gt;
90 = 90 seconds&lt;br /&gt;
&lt;br /&gt;
15m = 15 minutes&lt;br /&gt;
&lt;br /&gt;
3h = 3 hours&lt;br /&gt;
&lt;br /&gt;
5d = 5 days&lt;br /&gt;
&lt;br /&gt;
1w = 1 week&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !ban (NAME|SLOT) (SECONDS|TIME_WITH_MODIFIER) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !baninfo ==&lt;br /&gt;
&lt;br /&gt;
Shows detailed information of a ban in the ban list. Find the ban number with !showbans command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !baninfo (BAN NUMBER)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
== !burn ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME on fire.  REASON will be center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !burn (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; U&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !cancelvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress fail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !cancelvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; c&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !country ==&lt;br /&gt;
&lt;br /&gt;
Displays the country of the player. This command works only if GeoIP is enabled on server [http://mygamingtalk.com/wiki/index.php/Silent_Mod_Server_Cvar#g_countryFlags g_countryFlags]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !country&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== !crazygravity ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_gravity changes with 30 second interval. If enabled, the crazy gravity is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazygravity (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_speed changes with 30 second interval. If enabled, the crazy speed is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazyspeed (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !dewarn ==&lt;br /&gt;
&lt;br /&gt;
Shows all the warnings of a user. When warning number is used, the warning with that number will be removed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !dewarn (NAME|SLOT) [WARNING#]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !disorient ==&lt;br /&gt;
&lt;br /&gt;
Turns the view upside down for the client in slot number SLOT or with name containing NAME.  If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !disorient (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !finger ==&lt;br /&gt;
&lt;br /&gt;
Display the slot, partial guid, ip and clientversion of a player.&lt;br /&gt;
&lt;br /&gt;
NOTE: This command should be available only to the highest server admins!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !finger (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !freeze ==&lt;br /&gt;
&lt;br /&gt;
Freezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it freezes all players. Frozen player(s) cannot receive damage during this time. If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !freeze [NAME|SLOT] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !gib ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs the player in slot number SLOT or with name containing NAME. If name is -1 or all or if no name is entered, everybody will be gibbed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !gib (NAME|SLOT|-1|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; g&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !giba ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !giba&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !help ==&lt;br /&gt;
&lt;br /&gt;
Lists all the available shrubbot commands. If COMMAND is given, then prints the help of that specific command. !help is always available to all clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !help [COMMAND]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !howfair ==&lt;br /&gt;
&lt;br /&gt;
Prints a simple summary to everyone on the chat of team fairness based on player kill rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !howfair&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !kick ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off of the server. REASON is given to the client as the drop message. The client will be banned for 2 minutes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !kick (NAME|SLOT) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; k&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !levinfo ==&lt;br /&gt;
&lt;br /&gt;
Lists all the details of the specific admin level. The listed information includes The name of the level, the greeting, the greeting sound path and the privilege flags for the level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levinfo (Admin Level)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !levlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all the admin levels loaded from the shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levlist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !list ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of information about the connected players.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* slot number&lt;br /&gt;
&lt;br /&gt;
* team R=axis B=allies S=spectator C=connecting&lt;br /&gt;
&lt;br /&gt;
* first letter of fireteam name&lt;br /&gt;
&lt;br /&gt;
* admin level (and level name)&lt;br /&gt;
&lt;br /&gt;
* last 8 digits of guid&lt;br /&gt;
&lt;br /&gt;
* M if muted&lt;br /&gt;
&lt;br /&gt;
* W if warned&lt;br /&gt;
&lt;br /&gt;
* name&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !listteams ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of statistical information about each team. This lists ends with ratings information based on how likely each team is to win the current map. The team with more points is LESS likely to win, therefore a good way to balance the teams is to join the team with more points, or move people to that team, until the points are about even.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !listteams&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lock ==&lt;br /&gt;
&lt;br /&gt;
Locks the specified team. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lol ==&lt;br /&gt;
&lt;br /&gt;
Makes all players drop grenades.  If NAME or SLOT is provided only that player will drop grenades.  GRENADES is the number of grenades to be dropped (default is 1, maximum is 16).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lol [NAME|SLOT] [GRENADES]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; x&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !mute ==&lt;br /&gt;
&lt;br /&gt;
Mutes a player in a slot number SLOT or with a name containing NAME. TIME and REASON are optional. See !ban for more information on modifiers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !mute (NAME|SLOT) [SECONDS|TIME_WITH_MODIFIER] REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !news ==&lt;br /&gt;
&lt;br /&gt;
Plays the map specific news audio to all players if it is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !news&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; W&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !nextmap ==&lt;br /&gt;
&lt;br /&gt;
Moves to the next map in campaign or in the objective cycle end game intermission is skipped. With mapvoting gametype the game will go to the intermission.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !nextmap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; n&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog&#039;&#039;&#039;&lt;br /&gt;
* 0.4.0 The !nextmap will go to the intermission map voting when the gametype is set to 7 and the g_mapVoteFlags bitmask has flag 16 set.&lt;br /&gt;
* 0.5.1 The g_mapVoteFlags flag 16 was removed and the game will always go to the intermission with map voting game type. If old behaviour is needed, admin can create custom command executing &amp;quot;vstr nextmap&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== !orient ==&lt;br /&gt;
&lt;br /&gt;
Reverses the action of !disorient for the client in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !orient (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !panzerwar ==&lt;br /&gt;
&lt;br /&gt;
Enables panzerwar game mode. All the players will have their main weapon changed to panzerfaust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !panzerwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !passvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !passvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; V&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pause ==&lt;br /&gt;
&lt;br /&gt;
Pauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pip ==&lt;br /&gt;
&lt;br /&gt;
Draws sparks (pixie dust) around the player in slot number SLOT or with name containing NAME. Does it to all players if NAME/SLOT is not providied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pip [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pop ==&lt;br /&gt;
&lt;br /&gt;
Pops the helmet off from a player in a slot number SLOT or with a name containing NAME. If no parameter is provided, it pops the helmets off from all the players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pop [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !putteam ==&lt;br /&gt;
&lt;br /&gt;
Moves a player in a slot number SLOT or with a name containing NAME to the indicated team.&lt;br /&gt;
&lt;br /&gt;
* r - Allies&lt;br /&gt;
&lt;br /&gt;
* b - Axis&lt;br /&gt;
&lt;br /&gt;
* s - Spectators&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !putteam (NAME|SLOT) (r|b|s)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; p&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !readconfig ==&lt;br /&gt;
&lt;br /&gt;
Reads shrubbot.cfg file from the directory set by g_dbDirectory cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readconfig&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; G&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rename ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME to NEWNAME. The name change will not be persistent. The user database will store the renamed name for the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rename (NAME|SLOT) NEWNAME&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; N&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !reset ==&lt;br /&gt;
&lt;br /&gt;
Resets the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !reset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetmyxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player who runs this command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetmyxp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; M&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player in the slot number SLOT or with the name containing NAME.  If reason is provided it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetxp (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !restart ==&lt;br /&gt;
&lt;br /&gt;
Restarts the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !riflewar ==&lt;br /&gt;
&lt;br /&gt;
Enables riflewar game mode. All the players will have their main weapon changed to either K43 or Garand. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !riflewar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rmsubnetban ==&lt;br /&gt;
&lt;br /&gt;
Removes subnet ban. The given subnet ban number can be found using !subnets command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rmsubnetban [ban number]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !setlevel ==&lt;br /&gt;
&lt;br /&gt;
Sets the connected player in the slot number SLOT or with name containing NAME to the level indicated by LEVEL. A player cannot !setlevel another player to a lever higher than him/herself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !setlevel (NAME|SLOT) LEVEL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !showbans ==&lt;br /&gt;
&lt;br /&gt;
Lists up to 30 shrubbot bans currently in effect.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* ban number&lt;br /&gt;
&lt;br /&gt;
* banned player&#039;s name&lt;br /&gt;
&lt;br /&gt;
* date of the ban&lt;br /&gt;
&lt;br /&gt;
* name of the banning admin&lt;br /&gt;
&lt;br /&gt;
* when the ban will expire&lt;br /&gt;
&lt;br /&gt;
* reason for the ban&lt;br /&gt;
&lt;br /&gt;
If SKIP is provided, that number of bans are skipped before printing starts. SKIP can also be negative (e.g. &#039;!showbans -10&#039; would display the last 10 bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !showbans [SKIP]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !shuffle ==&lt;br /&gt;
&lt;br /&gt;
Shuffles teams, but does NOT restart (see !restart).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !shuffle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; S&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !slap ==&lt;br /&gt;
&lt;br /&gt;
Does DAMAGE (default 20) damage to player in slot SLOT or with name containing NAME. If REASON is specified it&#039;s center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !slap (NAME|SLOT) [DAMAGE] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !sniperwar ==&lt;br /&gt;
&lt;br /&gt;
Enables sniperwar game mode. All the players will have their main weapon changed to sniper rifles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !sniperwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spec999 ==&lt;br /&gt;
&lt;br /&gt;
Moves all the players with a ping of 999 to the spectators team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spec999&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; P&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spree ==&lt;br /&gt;
&lt;br /&gt;
Show the players current killing spree count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spree&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spreerecord ==&lt;br /&gt;
&lt;br /&gt;
Displays the map and the overall spreerecord.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spreerecord&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !stats ==&lt;br /&gt;
&lt;br /&gt;
Displays the Thompson, MP40 and PPSh total kills and deaths, kills and deaths during the map and accuracy, headshotratio and headshot distance during the map. Lists all connected players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !stats&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; t&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !subnets ==&lt;br /&gt;
&lt;br /&gt;
This command displays all the issued subnet bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnets (start at)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !subnetban ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can issue subnet ban. Subnet ban is a ban where the connecting player IP is matched against a larger IP range. The command accepts only subnets between range x.* - x.x.x.*. If the admin attempts to issue subnet ban that would ban himself the command refuses to add the subnet. This can be circumvented using rcon commands. If admin wants to add a subnet that would ban himself he must first whitelist himself with !userwl command. If silEnT can confirm the admin can connect the subnet ban is added. The command accepts full IP as it&#039;s parameter in which case the subnet is created to the x.x.x.* address. To remove subnet bans admin can use the !rmsubnetban command. The syntax with this commnd is the same kind with ban and userban commandand reason andtime can be given. The reason should be given so that any player connecting would know the reason for not being able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnetban [subnet] (time) (reason)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Require g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - Octets can be cut from inside with &#039;x&#039;. For example, &amp;quot;!subnetban 12x&amp;quot; will ban all IP addresses matching 12x.xxx.xxx.xxx.&lt;br /&gt;
&lt;br /&gt;
== !swap ==&lt;br /&gt;
&lt;br /&gt;
Swaps the players to the opposite team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !swap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; w&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !time ==&lt;br /&gt;
&lt;br /&gt;
Prints out localtime of the client in the chat. No other client can see this time message. The command doesn&#039;t have a flag but it is available to all clients always.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; No permission required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throw ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throw (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !tspree ==&lt;br /&gt;
&lt;br /&gt;
Show the top n current killing spree (default top 5).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !tspree [amount]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unban ==&lt;br /&gt;
&lt;br /&gt;
Removes the ban that !showbans lists as BAN_NUMBER.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unban BAN_NUMBER&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unfreeze ==&lt;br /&gt;
&lt;br /&gt;
Unfreezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it unfreezes all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unfreeze [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unpause ==&lt;br /&gt;
&lt;br /&gt;
Unpauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unpause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unmute ==&lt;br /&gt;
&lt;br /&gt;
Unmutes the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unmute (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unlock ==&lt;br /&gt;
&lt;br /&gt;
Unlocks the team specified. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unlock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !uptime ==&lt;br /&gt;
&lt;br /&gt;
Show how long the server has been up and running.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !uptime&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; u&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !fling ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !fling (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launch==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launch(NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throwa ==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throwa&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !flinga==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !flinga&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launcha==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launcha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !warn ==&lt;br /&gt;
&lt;br /&gt;
Plays the whistle sound and center-prints WARNING to the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !warn (NAME|SLOT) [WARNING]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
= User Database &amp;amp; Commands =&lt;br /&gt;
&lt;br /&gt;
User database is intended to store information of all the players that connect to the server. To enable user database g_dbDirectory must be set. The database stores information to identify different players and also XP data, rating data, overall stats data and shrubbot admin data. silEnT GUIDs are used to identify single players.&lt;br /&gt;
&lt;br /&gt;
Shrubbot includes functionality for server admins to handle database userdata. All commands that handle users in the database will take the last 8 characters of the player silEnT GUID to identify the player to edit. Internally, the full GUID is used to identify the players. Some commands have equivalent versions using last 8 characters of PunkBuster GUIDs to identify the player. These are needed for players who were stored into the database before the silEnT GUID was added and haven&#039;t connected to the server since.&lt;br /&gt;
&lt;br /&gt;
== !aliasesdel ==&lt;br /&gt;
&lt;br /&gt;
Command removes all the aliases from the player identified by the 8 character silEnT ID.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliasesdel [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !aliassearch ==&lt;br /&gt;
&lt;br /&gt;
This command searches the whole aliases database for the pattern in the names. Note, this command is the most resource intensive shrubbot command of all commands, and it is not recommended to be used without a reason. How fast it performs in practice depends of the aliases database size.&lt;br /&gt;
&lt;br /&gt;
For each player the following information is shown:&lt;br /&gt;
&lt;br /&gt;
:* identity information (silEnT ID)&lt;br /&gt;
&lt;br /&gt;
:* each used alias that fits the search pattern&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was first seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was last seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias the total playtime with it&lt;br /&gt;
&lt;br /&gt;
To see all the aliases of the found player, you can use &amp;quot;!userinfo aliases&amp;quot; command. In the case of all the data not fitting in one page, you can give an optional start parameter. The start parameter corresponds to the numbers shown in the first column of the results. So that each player has its own number and under that number, all the matching aliases from that player are printed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliassearch [name] [start]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !confirm ==&lt;br /&gt;
&lt;br /&gt;
Confirms the player identity with a protected admin level. As a result, the confirmed player and the server will transfer authentication information allowing the player to use admin commands from thereafter. Unconfirmed players are players with admin level that is protected but the server can not ensure the identity. This usually happens when players admin level changes with offlinecommands or the protected levels are extended. This command does not give the player admin levels, it only confirms the identity of a player whos admin level is already set. Also, if the player loses his admin level identification, this command can not be used to reinstate it.&lt;br /&gt;
&lt;br /&gt;
This command is safe to be given even to the lower levels of admins.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !confirm [SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== !userlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all users in the database. If PAGE is given, the list starts from that page. If PAGE is not given the first page of the database is printed. The command prints all users, including clients that have connected during the level time and are not yet in the database. The connected clients are always printed first and then the rest of the userbase.&lt;br /&gt;
&lt;br /&gt;
The printed rows have the following columns:&lt;br /&gt;
:*&#039;#&#039; ; This is the serial number of the user in the printout. The number doesn&#039;t correspond to anything in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;silEnT ID&#039; ; This is the 8 character silEnT GUID of the player. This is used to identify different players in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;PBGUID&#039; ; This is the 8 character PB GUID of the user. This is used to identify different users in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Last Seen&#039; ;	This tells how long time ago the user was last seen on the server. For connected clients, this will print &amp;quot;connected&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:*&#039;IP&#039; ; This tells the last IP address user has had on the server.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Ban&#039; ; This is the ban number if the player is banned from the server. If the player is whitelisted from IP bans, this column reads white capital W.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Name&#039; ; This tells the last name with user has been saved on the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With userlist command an admin can list all the users saved in the database and those that are connected page by page. Optional page number can be given to the command to tell which page is to be displayed about the users. One page can have up to 20 players printed. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userlist [PAGE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.4.0 - New column &#039;Ban&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - New column &#039;silEnT ID&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
== !userinfo ==&lt;br /&gt;
&lt;br /&gt;
Displays all information that is stored about the user in the database.&lt;br /&gt;
&lt;br /&gt;
This information includes:&lt;br /&gt;
&lt;br /&gt;
:*identity information (name, IP, 8 character PunkBuster GUID, silEnT ID, Client Identification)&lt;br /&gt;
&lt;br /&gt;
:*admin level&lt;br /&gt;
&lt;br /&gt;
:*personal greeting&lt;br /&gt;
&lt;br /&gt;
:*personal greeting sound&lt;br /&gt;
&lt;br /&gt;
:*personal shrubbot flags&lt;br /&gt;
&lt;br /&gt;
:*saved XP per skill&lt;br /&gt;
&lt;br /&gt;
:*rating values&lt;br /&gt;
&lt;br /&gt;
:*total kills and deaths with SMG weapons&lt;br /&gt;
&lt;br /&gt;
:*the ban number of the player or whitelisting&lt;br /&gt;
&lt;br /&gt;
:*list of stored aliases if the aliases database is enabled on the server&lt;br /&gt;
&lt;br /&gt;
Command can optionally print player&#039;s stored aliases if the optional aliases parameter is given and the aliases database is enabled by setting g_dbMaxAliases to a positive integer. If printed aliases don&#039;t fit in one page, optional page parameter can be used to access different pages. &lt;br /&gt;
&lt;br /&gt;
Command requires the last 8 characters of the player silEnT GUID. This GUID can be found with !userlist or !usersearch commands. This command works for both online and offline players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userinfo [silEnT ID] [aliases [page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:0.4.0 - Information of possible ban and whitelisting is added.&lt;br /&gt;
&lt;br /&gt;
:0.5.0 - silEnT ID is added.&lt;br /&gt;
&lt;br /&gt;
:0.6.0 - Aliases option is added.&lt;br /&gt;
&lt;br /&gt;
== !useredit ==&lt;br /&gt;
&lt;br /&gt;
Command is used to edit explicit userdata in the database. The command format is:&lt;br /&gt;
&lt;br /&gt;
!useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
The command parameters in detail:&lt;br /&gt;
&lt;br /&gt;
:*silEnT ID - This is the last 8 characters of the silEnT GUID of the player. This is needed to identify the player to edit.&lt;br /&gt;
&lt;br /&gt;
:*add - If the command is given this parameter, the value(s) in the [new value] field will be added to the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*remove - If the command is given this parameter, the value(s) in the [new value] field will be removed from the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*level	- If the command is given this parameter, the value in the [new value] field will be set as the players new level. The level may not be higher then the level of the player executing the command.&lt;br /&gt;
&lt;br /&gt;
:*greeting - If the command is given this parameter, the value in the [new value] field will be the players new personal greeting. If the [new value] field is empty, the personal greeting is cleared.&lt;br /&gt;
&lt;br /&gt;
:*sound	- If the command is given this parameter, the value in the [new value] field will be the file path to the players new personal greeting sound. If the [new value] field is empty, the personal greeting sound is cleared.&lt;br /&gt;
&lt;br /&gt;
:*new value - This field is used to give values to the command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the optional new value field is not set with greeting or sound parameter, the value will be set to empty and level values will be used again with these players.&lt;br /&gt;
&lt;br /&gt;
This command works with online and offline players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !usereditpb.&lt;br /&gt;
&lt;br /&gt;
== !givexp==&lt;br /&gt;
&lt;br /&gt;
Command gives the online or offline player identified by PBGUID a defined amount of XP points to the selected skill. The possible skills are:&lt;br /&gt;
&lt;br /&gt;
sold	Soldier or Heavy Weapons&lt;br /&gt;
&lt;br /&gt;
med	Medics or First Aid&lt;br /&gt;
&lt;br /&gt;
eng	 Engineering or Explosives and Construction&lt;br /&gt;
&lt;br /&gt;
fops	Field Ops or Signals&lt;br /&gt;
&lt;br /&gt;
cov	Covert Ops or Military Intelligence and Scoped Weapons&lt;br /&gt;
&lt;br /&gt;
light	Light Weapons&lt;br /&gt;
&lt;br /&gt;
battle	Battle Sense&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !givexp [silEnT ID] [sold|med|eng|fops|cov|light|battle] [amount to add]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !givexppb.&lt;br /&gt;
&lt;br /&gt;
== !userban ==&lt;br /&gt;
&lt;br /&gt;
Command bans user indentified by the 8 character silEnT GUID from the server. The data required for ban is taken from the database and the banned user does not need to be online when the command is given. Bot&#039;s cannot be banned with this command. Note that the bans are written in the human readable config file and you can still write the bans by hand if desired. Also, removing of the bans can be done by hand if desired. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userban [silEnT ID] [time] [reason]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userbanpb.&lt;br /&gt;
&lt;br /&gt;
== !userwl ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can whitelist or remove whitelisting from any player. Whitelisting means that the player IP is not checked against any IP bans. Including subnet bans and individual bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userwl [silEnT GUID] [add|remove]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !userdelete ==&lt;br /&gt;
&lt;br /&gt;
Command removes the user identified by the 8 character silEnT GUID from the database. The actual actions are taken at the level end if needed. However, once the !userdelete command has been issued to the user, the information of the user is no longer available and after the shutdown game, it is permanently lost.&lt;br /&gt;
&lt;br /&gt;
If the removed player is connected to the server while removing, a new entry is written to that player. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userdelete [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userdeletepb.&lt;br /&gt;
&lt;br /&gt;
== !usersearch ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can search the database for players with specific parameters. Arguments to the command can be pattern in the name, user admin system level and the beginning of the IP address. Additional page number can be given when the amount of found results exceed what can be shown in one page. All the arguments can be given in one command in any order. Any one of the arguments can be omitted, but each time when command is given at least one argument on top of the optional page number must be given. This command searches stored information only from the database. Connected players are not included unless they are already stored into the database.&lt;br /&gt;
&lt;br /&gt;
This command can be performance intensive and it is not recommended to use it only for maintenance operations. The command will internally always try to optimise itself. If the command is given repeatedly with same arguments but only changing the page number, new searches are not performed but only different pages of the already found results are displayed. The optimisations include that the silEnT will try to use the already found results as the basis for the new search (e.g. &amp;quot;!usersearch name gao&amp;quot; followed by &amp;quot;!usersearch name gaoe&amp;quot; will first search the whole db to find all users with the pattern gao in their names and the follow up search will refine the already found results for gaoe). The maximum amount of results one search can return is 256 users. Users are displayed in the console in pages with 20 users on each page. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !usersearch [name (name)]|&amp;amp;[level (level)]|&amp;amp;[IP (IP)] [page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !updatepbguid ==&lt;br /&gt;
&lt;br /&gt;
Updates the PB GUID that is stored in the database to the one which the player is currently using. With the exception that empty, invalid or dublicated PB GUIDs are not saved to the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !updatepbguid [Name|Slot]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !readadmins ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can read admin definitions from a specific admins.cfg file. The file must be placed in the directory pointed by g_dbDirectory server cvar. The file may have only admin definition blocks.&lt;br /&gt;
Admin definitions use always the following syntax. The syntax is exactly the same used by the ETPub.&lt;br /&gt;
&lt;br /&gt;
[admin]&lt;br /&gt;
&lt;br /&gt;
name     = name of the admin (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid    = full 32 character silEnT GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
guid     = full 32 character PB GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
level    = level number&amp;lt;br/&amp;gt;&lt;br /&gt;
flags    = personal admin flags (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting = personal greeting (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound = path to personal greeting sound (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the database doesn&#039;t yet have the player, it will be added there. Those players will have the last seen field reading NEVER with !userlist and !usersearch command outputs. If the player already exists in the database, the admin values will be overwritten with the ones in read from the admins.cfg file. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readadmins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; )	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* Starting from silEnT 0.5.0, the field sguid was added to the admin blocks. This allows adding admins using the silEnT GUIDs to identify them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example::&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name = ETPlayer&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 12345678912345678912345678912345 &amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 5&amp;lt;br/&amp;gt;&lt;br /&gt;
flags =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name =&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 12345678912345678912345678912345&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 3&amp;lt;br/&amp;gt;&lt;br /&gt;
flags = AbC&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== !resetpls ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can reset all stored statistics from an online or an offline player. The stored statistics include total SMG kills and deaths, the player K/D rating and PRW rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetpls [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; (	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - the command was changed to use silEnT ID instead of the last 8 characters of the PB GUID. There is no backward compatible command for PB GUIDs.&lt;br /&gt;
&lt;br /&gt;
= List of Permission Flags =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to privileges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:1 - Cannot be vote kicked, vote muted, or complained against.&lt;br /&gt;
:2 - Cannot be censored.&lt;br /&gt;
:3 - Can run shrubbot commands silently by adding &#039;/&#039; character in front of the command.&lt;br /&gt;
:4 - Can see Axis/Allies team chats as a spectator.&lt;br /&gt;
:5 - Can switch teams any time, regardless of balance.&lt;br /&gt;
:6 - Does not need to specify a reason for !mute, !kick or !ban.&lt;br /&gt;
:7 - Can call a vote at any time (regardless of disabled voting or voting limitations).&lt;br /&gt;
:8 - Does not need to specify a duration for a ban (defaults to PERMANENT).&lt;br /&gt;
:9 - Can do shrubbot commands via team and fireteam chats.&lt;br /&gt;
:0 - Is immune to g_inactivity and g_spectatorInactivity settings.&lt;br /&gt;
:! - Is immune to all shrubbot commands (useful for server admins). Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:@ - &amp;quot;incognito&amp;quot; flag shows the admin as level 0 with no a.k.a info in the output of !listplayers. Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:$ - Can do !admintest on other players.&lt;br /&gt;
:~ - Can read and write the adminchat with the /ma command. All referees and all other players with the ~ flag will be able to read this chat.&lt;br /&gt;
:&amp;amp; - Can rename himself regardless of g_maxNameChanges limit.&lt;br /&gt;
:? - Can see all private messages while being in spectators. g_tyranny must be set for this flag to take effect.&lt;br /&gt;
:/ - Cannot send private messages. Otherwise normal privileges.&lt;br /&gt;
: # - Cannot call votes.&lt;br /&gt;
: : - Can confirm admin identity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to commands&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:A - !slap&lt;br /&gt;
:a - !admintest&lt;br /&gt;
:B - !showbans, !subnets&lt;br /&gt;
:b - !ban, !unban&lt;br /&gt;
:C - !crazygravity, !crazyspeed&lt;br /&gt;
:c - !cancelvote&lt;br /&gt;
:d - !disorient, !orient&lt;br /&gt;
:E - !spree, !spreerecord, !tspree&lt;br /&gt;
:e - !baninfo, !finger, !aliases&lt;br /&gt;
:F - !freeze, !unfreeze&lt;br /&gt;
:G - !readconfig&lt;br /&gt;
:g - !gib&lt;br /&gt;
:I - !howfair, !listteams&lt;br /&gt;
:i - !list&lt;br /&gt;
:K - !lock, !unlock&lt;br /&gt;
:k - !kick&lt;br /&gt;
:L - !flinga, !launcha, !throwa&lt;br /&gt;
:l - !fling, !launch, !throw&lt;br /&gt;
:M - !resetmyxp&lt;br /&gt;
:m - !mute, !unmute&lt;br /&gt;
:N - !rename&lt;br /&gt;
:n - !nextmap&lt;br /&gt;
:P - !spec999&lt;br /&gt;
:p - !putteam&lt;br /&gt;
:R - !warn, !dewarn&lt;br /&gt;
:r - !reset, !restart&lt;br /&gt;
:S - !shuffle&lt;br /&gt;
:s - !setlevel, !levlist, !levinfo&lt;br /&gt;
:t - !stats&lt;br /&gt;
:U - !burn&lt;br /&gt;
:u - !uptime&lt;br /&gt;
:Q - !giba&lt;br /&gt;
:q - !panzerwar, !riflewar, !sniperwar&lt;br /&gt;
:V - !passvote&lt;br /&gt;
:W - !news&lt;br /&gt;
:w - !swap&lt;br /&gt;
:X - !resetxp&lt;br /&gt;
:x - !lol&lt;br /&gt;
:Z - !pause, !unpause&lt;br /&gt;
:z - !pip, !pop&lt;br /&gt;
:] - !userlist, !userinfo, !userban, !usersearch, !aliassearch&lt;br /&gt;
:[ - !useredit, !givexp, !userdelete, !aliasesdel&lt;br /&gt;
:) - !readadmins&lt;br /&gt;
:( - !resetpls&lt;br /&gt;
:. - !userwl, !rmsubnetban, !subnetban&lt;br /&gt;
:, - !updatepbguid&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Files =&lt;br /&gt;
&lt;br /&gt;
To use shrubbot the g_dbDirectory must be set. All the shrubbot files are placed into that directory.&lt;br /&gt;
&lt;br /&gt;
== shrubbot.cfg ==&lt;br /&gt;
&lt;br /&gt;
Shrubbot.cfg is the file that holds all the level definitions, custom commands, bans, warns and subnetbans for the server shrubbot. These configuration settings are hand editable. If the shrubbot.cfg file does not exists when !ban or!setlevel is used, a new one with default settings is created. The settings in the shrubbot.cfg are divided into following data blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[level]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
level    = The level number.&lt;br /&gt;
&lt;br /&gt;
name     = The nameof the level used in e.g. !list command.&lt;br /&gt;
&lt;br /&gt;
flags    = The permission flags for the level.&lt;br /&gt;
&lt;br /&gt;
greeting = The greetingtext that is displayed to every player joining the server with this level.&lt;br /&gt;
&lt;br /&gt;
greeting_sound = The greeting sound played for every playerjoining the server with this level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[command]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
command  = The name of the command.&lt;br /&gt;
&lt;br /&gt;
exec     = The executed command. These must be commands available to /rcon and these will be executed with rcon privileges.&lt;br /&gt;
&lt;br /&gt;
desc     = The help description of the cmmand.&lt;br /&gt;
&lt;br /&gt;
syntax   = List of parameters if the command uses them. This is used with !help and it is optional.&lt;br /&gt;
&lt;br /&gt;
levels   = Space separated list of levels this command is allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The exec field in the command block can use all the shortcuts that silEnT support. The shortcut is substituted as the command would have been a say from the player who issued the command. In addition to normal shortcuts, it is possible to use [i] which is replaced with the client number of the player who did the command.&lt;br /&gt;
* The exec field in the command block can additionally use parameter placeholders. These are [1] - [9] where the number is the n:th parameter given to the custom command. When these are used, the server will substitute the placeholder with the n:th parameter given to the command.&lt;br /&gt;
* Starting from silEnT 0.2.1, it is possible to add &#039;?&#039; to the parameter placeholders. This will make the server substitute the given string to a player name if only one player matches the string. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [command]&lt;br /&gt;
    command  = crybaby&lt;br /&gt;
    exec     = playsound path/to/sound.wav; chat ^7[1?]^7 is crying like a little baby!&lt;br /&gt;
    desc     = Make someone cry like a baby&lt;br /&gt;
    syntax   = [name]&lt;br /&gt;
    levels   = 0 1 2 3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[ban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the banned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The PunkBuster GUID of the banned player.&lt;br /&gt;
&lt;br /&gt;
sguid    = The silEnT GUID if the banned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP address of the banned player.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the ban was issued.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who banned the player.&lt;br /&gt;
&lt;br /&gt;
ident    = The silEnT ident if available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[subnetban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
subnet   = The subnet of the ban.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the subnet ban was created.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who created the ban.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[warning]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the warned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The silEnT GUID of the warned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP addressof the warned player.&lt;br /&gt;
&lt;br /&gt;
warning  = The reason of the warning.&lt;br /&gt;
&lt;br /&gt;
made     = The time when the warning was made.&lt;br /&gt;
&lt;br /&gt;
warner   = The name of the player who warned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[customvote]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The of the vote shown with the /callvote command. Maximum length 15 characters.&lt;br /&gt;
&lt;br /&gt;
exec     = Command string to execute if the vote passes. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
description = Description of the vote shown with the /callvote command. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
votetext = The text that is show for voters. Maximum length 255 characters.&lt;br /&gt;
&lt;br /&gt;
passtext = Optionally, a text that is shown to players if the vote passes.&lt;br /&gt;
&lt;br /&gt;
levels   = Optionally, admins can define the vote to be available to only specific levels. Same format that is used with the custom commands.&lt;br /&gt;
&lt;br /&gt;
== userdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where the silEnT stores information of the players. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== userxdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where silEnT stores less often needed information about the players. Such as personalized greetings. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify the file version for different silEnT versions and if necessary, silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== useradb.db ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this file holds the optional aliases database. To enable the database, g_dbMaxAliases cvar must be set to a positive integer. The aliases database can be disabled by setting g_dbMaxAliases to 0 at any time and then re-enabled by setting the value back to a positive integer without any effect to the file. However, if the g_dbMaxAliases cvar is set to a smaller value than it was before, the aliases that exceed the threshold will be lost and cannot be recovered.&lt;br /&gt;
&lt;br /&gt;
This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify the file version for different silEnT versions and if necessary, silEnT will convert the file to a newer version. The old file will always be stored at the g_dbDirectory location with a _vxx added to its name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. The error messages in the log are usually very descriptive about the errors.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Limitations =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of levels:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of shrubbot level name:&#039;&#039;&#039; 	35 (includes color codes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of players in the database:&#039;&#039;&#039; 	Unlimited&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of player bans:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of subnet bans:&#039;&#039;&#039; 128 (512 since 0.9.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of ban reason:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of admin-defined commands:&#039;&#039;&#039; 	63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command name length:&#039;&#039;&#039; 	63 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (executable part):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (help string):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of warnings:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
= Shortcuts = &lt;br /&gt;
&lt;br /&gt;
Server supports the replacement of the following keys in say messages&lt;br /&gt;
&lt;br /&gt;
[a]	last player who gave you ammo&lt;br /&gt;
&lt;br /&gt;
[d]	last player who killed you&lt;br /&gt;
&lt;br /&gt;
[g]	the last 8 characters of your GUID&lt;br /&gt;
&lt;br /&gt;
[h]	last player who gave you health&lt;br /&gt;
&lt;br /&gt;
[k]	last player you killed&lt;br /&gt;
&lt;br /&gt;
[l]	your location (letter,number)&lt;br /&gt;
&lt;br /&gt;
[n]	your name&lt;br /&gt;
&lt;br /&gt;
[r]	last player who revived you&lt;br /&gt;
&lt;br /&gt;
[p]	last player you looked at&lt;br /&gt;
&lt;br /&gt;
[s]	health remaining&lt;br /&gt;
&lt;br /&gt;
[w]	name of current weapon&lt;br /&gt;
&lt;br /&gt;
[t]	ammo for current weapon&lt;br /&gt;
&lt;br /&gt;
= Sample shrubbot config =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// silEnT mod - Sample Shrubbot.cfg file&lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 0&lt;br /&gt;
name	 = Prole&lt;br /&gt;
flags	 = iBaPzI&lt;br /&gt;
greeting = &lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 1&lt;br /&gt;
name	 = Level 1&lt;br /&gt;
flags	 = iBaPzIW1&lt;br /&gt;
greeting = Level 1 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 2&lt;br /&gt;
name	 = Level2&lt;br /&gt;
flags	 = iBaPzIW1mx&lt;br /&gt;
greeting = Level 2 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 3&lt;br /&gt;
name	 = Level 3&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259&lt;br /&gt;
greeting = Level 3 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 4&lt;br /&gt;
name	 = Level 4&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259kbcVNn34678&lt;br /&gt;
greeting = Level 4 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 5&lt;br /&gt;
name	 = Level 5&lt;br /&gt;
flags	 = *&lt;br /&gt;
greeting = Level 5 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1322</id>
		<title>Silent Shrubbot</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1322"/>
		<updated>2015-10-15T14:05:17Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* useradb.db */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What Is Shrubbot=&lt;br /&gt;
Shrubbot is an invention of Ryan Mannion. Shrubbot is an admin system that identifies the admin leveled players from silEnT and PunkBuster GUIDs without the need for passwords. Shrubbot is also very flexible and allows creating many different admin levels with entirely different command sets. silEnT shrubbot is based on the work of the ETPub team. silEnT extends the functionality of the shrubbot where ever it is needed. Including user database that holds all the players that have visited the server. To access this database, new commands have been added to the original shrubbot command set. Some commands have been renamed to ease their use and so that they resemble commands from other ET mods that have advanced admin systems.  &lt;br /&gt;
&lt;br /&gt;
If you want to use shrubbot, the cvar g_dbDirectory must be set. If it is not set, the shrubbot will not be in use. If you want to edit the default levels, you must create or copy existing shrubbot.cfg file to the directory defined by the g_dbDirectory setting. In case shrubbot command like !ban is used against a player and a shrubbot.cfg file does not already exist, a new shrubbot.cfg file is created  to store the needed data. &lt;br /&gt;
&lt;br /&gt;
The created file will also have the default level settings written to it. This file can be freely edited by hand and then, after !readconfig command has been issued, the changes take effect on the server.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Commands =&lt;br /&gt;
&lt;br /&gt;
== !admintest ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s current shrubbot admin level in global chat. When the NAME or SLOT are added and the user has the right shrubbot permission, the level of another player will be shown. However, if the target has incognito shrubbot flag, then 0 level is displayed regardless who does !admintest on him/her.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !admintest [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; a&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !aliases ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s stored aliases. Aliases are printed in the last seen first order.If there are more stored aliases than fit on one page, optional page parameter can be used to access different pages. The number of stored aliases depends of the g_dbMaxAliases cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !alises [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !ban ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off the server and will not let them connect again for SECONDS seconds, or, if a modifier (m, h, d, or w) is used, a given amount of time.  For example:&lt;br /&gt;
&lt;br /&gt;
90 = 90 seconds&lt;br /&gt;
&lt;br /&gt;
15m = 15 minutes&lt;br /&gt;
&lt;br /&gt;
3h = 3 hours&lt;br /&gt;
&lt;br /&gt;
5d = 5 days&lt;br /&gt;
&lt;br /&gt;
1w = 1 week&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !ban (NAME|SLOT) (SECONDS|TIME_WITH_MODIFIER) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !baninfo ==&lt;br /&gt;
&lt;br /&gt;
Shows detailed information of a ban in the ban list. Find the ban number with !showbans command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !baninfo (BAN NUMBER)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
== !burn ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME on fire.  REASON will be center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !burn (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; U&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !cancelvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress fail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !cancelvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; c&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !country ==&lt;br /&gt;
&lt;br /&gt;
Displays the country of the player. This command works only if GeoIP is enabled on server [http://mygamingtalk.com/wiki/index.php/Silent_Mod_Server_Cvar#g_countryFlags g_countryFlags]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !country&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== !crazygravity ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_gravity changes with 30 second interval. If enabled, the crazy gravity is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazygravity (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_speed changes with 30 second interval. If enabled, the crazy speed is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazyspeed (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !dewarn ==&lt;br /&gt;
&lt;br /&gt;
Shows all the warnings of a user. When warning number is used, the warning with that number will be removed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !dewarn (NAME|SLOT) [WARNING#]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !disorient ==&lt;br /&gt;
&lt;br /&gt;
Turns the view upside down for the client in slot number SLOT or with name containing NAME.  If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !disorient (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !finger ==&lt;br /&gt;
&lt;br /&gt;
Display the slot, partial guid, ip and clientversion of a player.&lt;br /&gt;
&lt;br /&gt;
NOTE: This command should be available only to the highest server admins!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !finger (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !freeze ==&lt;br /&gt;
&lt;br /&gt;
Freezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it freezes all players. Frozen player(s) cannot receive damage during this time. If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !freeze [NAME|SLOT] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !gib ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs the player in slot number SLOT or with name containing NAME. If name is -1 or all or if no name is entered, everybody will be gibbed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !gib (NAME|SLOT|-1|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; g&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !giba ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !giba&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !help ==&lt;br /&gt;
&lt;br /&gt;
Lists all the available shrubbot commands. If COMMAND is given, then prints the help of that specific command. !help is always available to all clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !help [COMMAND]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !howfair ==&lt;br /&gt;
&lt;br /&gt;
Prints a simple summary to everyone on the chat of team fairness based on player kill rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !howfair&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !kick ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off of the server. REASON is given to the client as the drop message. The client will be banned for 2 minutes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !kick (NAME|SLOT) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; k&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !levinfo ==&lt;br /&gt;
&lt;br /&gt;
Lists all the details of the specific admin level. The listed information includes The name of the level, the greeting, the greeting sound path and the privilege flags for the level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levinfo (Admin Level)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !levlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all the admin levels loaded from the shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levlist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !list ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of information about the connected players.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* slot number&lt;br /&gt;
&lt;br /&gt;
* team R=axis B=allies S=spectator C=connecting&lt;br /&gt;
&lt;br /&gt;
* first letter of fireteam name&lt;br /&gt;
&lt;br /&gt;
* admin level (and level name)&lt;br /&gt;
&lt;br /&gt;
* last 8 digits of guid&lt;br /&gt;
&lt;br /&gt;
* M if muted&lt;br /&gt;
&lt;br /&gt;
* W if warned&lt;br /&gt;
&lt;br /&gt;
* name&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !listteams ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of statistical information about each team. This lists ends with ratings information based on how likely each team is to win the current map. The team with more points is LESS likely to win, therefore a good way to balance the teams is to join the team with more points, or move people to that team, until the points are about even.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !listteams&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lock ==&lt;br /&gt;
&lt;br /&gt;
Locks the specified team. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lol ==&lt;br /&gt;
&lt;br /&gt;
Makes all players drop grenades.  If NAME or SLOT is provided only that player will drop grenades.  GRENADES is the number of grenades to be dropped (default is 1, maximum is 16).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lol [NAME|SLOT] [GRENADES]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; x&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !mute ==&lt;br /&gt;
&lt;br /&gt;
Mutes a player in a slot number SLOT or with a name containing NAME. TIME and REASON are optional. See !ban for more information on modifiers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !mute (NAME|SLOT) [SECONDS|TIME_WITH_MODIFIER] REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !news ==&lt;br /&gt;
&lt;br /&gt;
Plays the map specific news audio to all players if it is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !news&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; W&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !nextmap ==&lt;br /&gt;
&lt;br /&gt;
Moves to the next map in campaign or in the objective cycle end game intermission is skipped. With mapvoting gametype the game will go to the intermission.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !nextmap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; n&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog&#039;&#039;&#039;&lt;br /&gt;
* 0.4.0 The !nextmap will go to the intermission map voting when the gametype is set to 7 and the g_mapVoteFlags bitmask has flag 16 set.&lt;br /&gt;
* 0.5.1 The g_mapVoteFlags flag 16 was removed and the game will always go to the intermission with map voting game type. If old behaviour is needed, admin can create custom command executing &amp;quot;vstr nextmap&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== !orient ==&lt;br /&gt;
&lt;br /&gt;
Reverses the action of !disorient for the client in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !orient (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !panzerwar ==&lt;br /&gt;
&lt;br /&gt;
Enables panzerwar game mode. All the players will have their main weapon changed to panzerfaust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !panzerwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !passvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !passvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; V&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pause ==&lt;br /&gt;
&lt;br /&gt;
Pauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pip ==&lt;br /&gt;
&lt;br /&gt;
Draws sparks (pixie dust) around the player in slot number SLOT or with name containing NAME. Does it to all players if NAME/SLOT is not providied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pip [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pop ==&lt;br /&gt;
&lt;br /&gt;
Pops the helmet off from a player in a slot number SLOT or with a name containing NAME. If no parameter is provided, it pops the helmets off from all the players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pop [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !putteam ==&lt;br /&gt;
&lt;br /&gt;
Moves a player in a slot number SLOT or with a name containing NAME to the indicated team.&lt;br /&gt;
&lt;br /&gt;
* r - Allies&lt;br /&gt;
&lt;br /&gt;
* b - Axis&lt;br /&gt;
&lt;br /&gt;
* s - Spectators&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !putteam (NAME|SLOT) (r|b|s)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; p&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !readconfig ==&lt;br /&gt;
&lt;br /&gt;
Reads shrubbot.cfg file from the directory set by g_dbDirectory cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readconfig&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; G&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rename ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME to NEWNAME. The name change will not be persistent. The user database will store the renamed name for the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rename (NAME|SLOT) NEWNAME&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; N&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !reset ==&lt;br /&gt;
&lt;br /&gt;
Resets the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !reset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetmyxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player who runs this command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetmyxp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; M&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player in the slot number SLOT or with the name containing NAME.  If reason is provided it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetxp (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !restart ==&lt;br /&gt;
&lt;br /&gt;
Restarts the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !riflewar ==&lt;br /&gt;
&lt;br /&gt;
Enables riflewar game mode. All the players will have their main weapon changed to either K43 or Garand. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !riflewar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rmsubnetban ==&lt;br /&gt;
&lt;br /&gt;
Removes subnet ban. The given subnet ban number can be found using !subnets command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rmsubnetban [ban number]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !setlevel ==&lt;br /&gt;
&lt;br /&gt;
Sets the connected player in the slot number SLOT or with name containing NAME to the level indicated by LEVEL. A player cannot !setlevel another player to a lever higher than him/herself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !setlevel (NAME|SLOT) LEVEL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !showbans ==&lt;br /&gt;
&lt;br /&gt;
Lists up to 30 shrubbot bans currently in effect.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* ban number&lt;br /&gt;
&lt;br /&gt;
* banned player&#039;s name&lt;br /&gt;
&lt;br /&gt;
* date of the ban&lt;br /&gt;
&lt;br /&gt;
* name of the banning admin&lt;br /&gt;
&lt;br /&gt;
* when the ban will expire&lt;br /&gt;
&lt;br /&gt;
* reason for the ban&lt;br /&gt;
&lt;br /&gt;
If SKIP is provided, that number of bans are skipped before printing starts. SKIP can also be negative (e.g. &#039;!showbans -10&#039; would display the last 10 bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !showbans [SKIP]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !shuffle ==&lt;br /&gt;
&lt;br /&gt;
Shuffles teams, but does NOT restart (see !restart).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !shuffle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; S&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !slap ==&lt;br /&gt;
&lt;br /&gt;
Does DAMAGE (default 20) damage to player in slot SLOT or with name containing NAME. If REASON is specified it&#039;s center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !slap (NAME|SLOT) [DAMAGE] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !sniperwar ==&lt;br /&gt;
&lt;br /&gt;
Enables sniperwar game mode. All the players will have their main weapon changed to sniper rifles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !sniperwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spec999 ==&lt;br /&gt;
&lt;br /&gt;
Moves all the players with a ping of 999 to the spectators team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spec999&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; P&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spree ==&lt;br /&gt;
&lt;br /&gt;
Show the players current killing spree count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spree&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spreerecord ==&lt;br /&gt;
&lt;br /&gt;
Displays the map and the overall spreerecord.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spreerecord&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !stats ==&lt;br /&gt;
&lt;br /&gt;
Displays the Thompson, MP40 and PPSh total kills and deaths, kills and deaths during the map and accuracy, headshotratio and headshot distance during the map. Lists all connected players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !stats&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; t&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !subnets ==&lt;br /&gt;
&lt;br /&gt;
This command displays all the issued subnet bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnets (start at)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !subnetban ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can issue subnet ban. Subnet ban is a ban where the connecting player IP is matched against a larger IP range. The command accepts only subnets between range x.* - x.x.x.*. If the admin attempts to issue subnet ban that would ban himself the command refuses to add the subnet. This can be circumvented using rcon commands. If admin wants to add a subnet that would ban himself he must first whitelist himself with !userwl command. If silEnT can confirm the admin can connect the subnet ban is added. The command accepts full IP as it&#039;s parameter in which case the subnet is created to the x.x.x.* address. To remove subnet bans admin can use the !rmsubnetban command. The syntax with this commnd is the same kind with ban and userban commandand reason andtime can be given. The reason should be given so that any player connecting would know the reason for not being able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnetban [subnet] (time) (reason)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Require g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - Octets can be cut from inside with &#039;x&#039;. For example, &amp;quot;!subnetban 12x&amp;quot; will ban all IP addresses matching 12x.xxx.xxx.xxx.&lt;br /&gt;
&lt;br /&gt;
== !swap ==&lt;br /&gt;
&lt;br /&gt;
Swaps the players to the opposite team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !swap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; w&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !time ==&lt;br /&gt;
&lt;br /&gt;
Prints out localtime of the client in the chat. No other client can see this time message. The command doesn&#039;t have a flag but it is available to all clients always.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; No permission required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throw ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throw (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !tspree ==&lt;br /&gt;
&lt;br /&gt;
Show the top n current killing spree (default top 5).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !tspree [amount]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unban ==&lt;br /&gt;
&lt;br /&gt;
Removes the ban that !showbans lists as BAN_NUMBER.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unban BAN_NUMBER&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unfreeze ==&lt;br /&gt;
&lt;br /&gt;
Unfreezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it unfreezes all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unfreeze [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unpause ==&lt;br /&gt;
&lt;br /&gt;
Unpauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unpause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unmute ==&lt;br /&gt;
&lt;br /&gt;
Unmutes the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unmute (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unlock ==&lt;br /&gt;
&lt;br /&gt;
Unlocks the team specified. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unlock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !uptime ==&lt;br /&gt;
&lt;br /&gt;
Show how long the server has been up and running.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !uptime&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; u&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !fling ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !fling (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launch==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launch(NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throwa ==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throwa&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !flinga==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !flinga&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launcha==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launcha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !warn ==&lt;br /&gt;
&lt;br /&gt;
Plays the whistle sound and center-prints WARNING to the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !warn (NAME|SLOT) [WARNING]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
= User Database &amp;amp; Commands =&lt;br /&gt;
&lt;br /&gt;
User database is intended to store information of all the players that connect to the server. To enable user database g_dbDirectory must be set. The database stores information to identify different players and also XP data, rating data, overall stats data and shrubbot admin data. silEnT GUIDs are used to identify single players.&lt;br /&gt;
&lt;br /&gt;
Shrubbot includes functionality for server admins to handle database userdata. All commands that handle users in the database will take the last 8 characters of the player silEnT GUID to identify the player to edit. Internally, the full GUID is used to identify the players. Some commands have equivalent versions using last 8 characters of PunkBuster GUIDs to identify the player. These are needed for players who were stored into the database before the silEnT GUID was added and haven&#039;t connected to the server since.&lt;br /&gt;
&lt;br /&gt;
== !aliasesdel ==&lt;br /&gt;
&lt;br /&gt;
Command removes all the aliases from the player identified by the 8 character silEnT ID.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliasesdel [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !aliassearch ==&lt;br /&gt;
&lt;br /&gt;
This command searches the whole aliases database for the pattern in the names. Note, this command is the most resource intensive shrubbot command of all commands, and it is not recommended to be used without a reason. How fast it performs in practice depends of the aliases database size.&lt;br /&gt;
&lt;br /&gt;
For each player the following information is shown:&lt;br /&gt;
&lt;br /&gt;
:* identity information (silEnT ID)&lt;br /&gt;
&lt;br /&gt;
:* each used alias that fits the search pattern&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was first seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was last seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias the total playtime with it&lt;br /&gt;
&lt;br /&gt;
To see all the aliases of the found player, you can use &amp;quot;!userinfo aliases&amp;quot; command. In the case of all the data not fitting in one page, you can give an optional start parameter. The start parameter corresponds to the numbers shown in the first column of the results. So that each player has its own number and under that number, all the matching aliases from that player are printed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliassearch [name] [start]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !confirm ==&lt;br /&gt;
&lt;br /&gt;
Confirms the player identity with a protected admin level. As a result, the confirmed player and the server will transfer authentication information allowing the player to use admin commands from thereafter. Unconfirmed players are players with admin level that is protected but the server can not ensure the identity. This usually happens when players admin level changes with offlinecommands or the protected levels are extended. This command does not give the player admin levels, it only confirms the identity of a player whos admin level is already set. Also, if the player loses his admin level identification, this command can not be used to reinstate it.&lt;br /&gt;
&lt;br /&gt;
This command is safe to be given even to the lower levels of admins.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !confirm [SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== !userlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all users in the database. If PAGE is given, the list starts from that page. If PAGE is not given the first page of the database is printed. The command prints all users, including clients that have connected during the level time and are not yet in the database. The connected clients are always printed first and then the rest of the userbase.&lt;br /&gt;
&lt;br /&gt;
The printed rows have the following columns:&lt;br /&gt;
:*&#039;#&#039; ; This is the serial number of the user in the printout. The number doesn&#039;t correspond to anything in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;silEnT ID&#039; ; This is the 8 character silEnT GUID of the player. This is used to identify different players in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;PBGUID&#039; ; This is the 8 character PB GUID of the user. This is used to identify different users in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Last Seen&#039; ;	This tells how long time ago the user was last seen on the server. For connected clients, this will print &amp;quot;connected&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:*&#039;IP&#039; ; This tells the last IP address user has had on the server.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Ban&#039; ; This is the ban number if the player is banned from the server. If the player is whitelisted from IP bans, this column reads white capital W.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Name&#039; ; This tells the last name with user has been saved on the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With userlist command an admin can list all the users saved in the database and those that are connected page by page. Optional page number can be given to the command to tell which page is to be displayed about the users. One page can have up to 20 players printed. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userlist [PAGE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.4.0 - New column &#039;Ban&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - New column &#039;silEnT ID&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
== !userinfo ==&lt;br /&gt;
&lt;br /&gt;
Displays all information that is stored about the user in the database.&lt;br /&gt;
&lt;br /&gt;
This information includes:&lt;br /&gt;
&lt;br /&gt;
:*identity information (name, IP, 8 character PunkBuster GUID, silEnT ID, Client Identification)&lt;br /&gt;
&lt;br /&gt;
:*admin level&lt;br /&gt;
&lt;br /&gt;
:*personal greeting&lt;br /&gt;
&lt;br /&gt;
:*personal greeting sound&lt;br /&gt;
&lt;br /&gt;
:*personal shrubbot flags&lt;br /&gt;
&lt;br /&gt;
:*saved XP per skill&lt;br /&gt;
&lt;br /&gt;
:*rating values&lt;br /&gt;
&lt;br /&gt;
:*total kills and deaths with SMG weapons&lt;br /&gt;
&lt;br /&gt;
:*the ban number of the player or whitelisting&lt;br /&gt;
&lt;br /&gt;
:*list of stored aliases if the aliases database is enabled on the server&lt;br /&gt;
&lt;br /&gt;
Command can optionally print player&#039;s stored aliases if the optional aliases parameter is given and the aliases database is enabled by setting g_dbMaxAliases to a positive integer. If printed aliases don&#039;t fit in one page, optional page parameter can be used to access different pages. &lt;br /&gt;
&lt;br /&gt;
Command requires the last 8 characters of the player silEnT GUID. This GUID can be found with !userlist or !usersearch commands. This command works for both online and offline players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userinfo [silEnT ID] [aliases [page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:0.4.0 - Information of possible ban and whitelisting is added.&lt;br /&gt;
&lt;br /&gt;
:0.5.0 - silEnT ID is added.&lt;br /&gt;
&lt;br /&gt;
:0.6.0 - Aliases option is added.&lt;br /&gt;
&lt;br /&gt;
== !useredit ==&lt;br /&gt;
&lt;br /&gt;
Command is used to edit explicit userdata in the database. The command format is:&lt;br /&gt;
&lt;br /&gt;
!useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
The command parameters in detail:&lt;br /&gt;
&lt;br /&gt;
:*silEnT ID - This is the last 8 characters of the silEnT GUID of the player. This is needed to identify the player to edit.&lt;br /&gt;
&lt;br /&gt;
:*add - If the command is given this parameter, the value(s) in the [new value] field will be added to the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*remove - If the command is given this parameter, the value(s) in the [new value] field will be removed from the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*level	- If the command is given this parameter, the value in the [new value] field will be set as the players new level. The level may not be higher then the level of the player executing the command.&lt;br /&gt;
&lt;br /&gt;
:*greeting - If the command is given this parameter, the value in the [new value] field will be the players new personal greeting. If the [new value] field is empty, the personal greeting is cleared.&lt;br /&gt;
&lt;br /&gt;
:*sound	- If the command is given this parameter, the value in the [new value] field will be the file path to the players new personal greeting sound. If the [new value] field is empty, the personal greeting sound is cleared.&lt;br /&gt;
&lt;br /&gt;
:*new value - This field is used to give values to the command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the optional new value field is not set with greeting or sound parameter, the value will be set to empty and level values will be used again with these players.&lt;br /&gt;
&lt;br /&gt;
This command works with online and offline players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !usereditpb.&lt;br /&gt;
&lt;br /&gt;
== !givexp==&lt;br /&gt;
&lt;br /&gt;
Command gives the online or offline player identified by PBGUID a defined amount of XP points to the selected skill. The possible skills are:&lt;br /&gt;
&lt;br /&gt;
sold	Soldier or Heavy Weapons&lt;br /&gt;
&lt;br /&gt;
med	Medics or First Aid&lt;br /&gt;
&lt;br /&gt;
eng	 Engineering or Explosives and Construction&lt;br /&gt;
&lt;br /&gt;
fops	Field Ops or Signals&lt;br /&gt;
&lt;br /&gt;
cov	Covert Ops or Military Intelligence and Scoped Weapons&lt;br /&gt;
&lt;br /&gt;
light	Light Weapons&lt;br /&gt;
&lt;br /&gt;
battle	Battle Sense&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !givexp [silEnT ID] [sold|med|eng|fops|cov|light|battle] [amount to add]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !givexppb.&lt;br /&gt;
&lt;br /&gt;
== !userban ==&lt;br /&gt;
&lt;br /&gt;
Command bans user indentified by the 8 character silEnT GUID from the server. The data required for ban is taken from the database and the banned user does not need to be online when the command is given. Bot&#039;s cannot be banned with this command. Note that the bans are written in the human readable config file and you can still write the bans by hand if desired. Also, removing of the bans can be done by hand if desired. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userban [silEnT ID] [time] [reason]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userbanpb.&lt;br /&gt;
&lt;br /&gt;
== !userwl ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can whitelist or remove whitelisting from any player. Whitelisting means that the player IP is not checked against any IP bans. Including subnet bans and individual bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userwl [silEnT GUID] [add|remove]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !userdelete ==&lt;br /&gt;
&lt;br /&gt;
Command removes the user identified by the 8 character silEnT GUID from the database. The actual actions are taken at the level end if needed. However, once the !userdelete command has been issued to the user, the information of the user is no longer available and after the shutdown game, it is permanently lost.&lt;br /&gt;
&lt;br /&gt;
If the removed player is connected to the server while removing, a new entry is written to that player. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userdelete [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userdeletepb.&lt;br /&gt;
&lt;br /&gt;
== !usersearch ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can search the database for players with specific parameters. Arguments to the command can be pattern in the name, user admin system level and the beginning of the IP address. Additional page number can be given when the amount of found results exceed what can be shown in one page. All the arguments can be given in one command in any order. Any one of the arguments can be omitted, but each time when command is given at least one argument on top of the optional page number must be given. This command searches stored information only from the database. Connected players are not included unless they are already stored into the database.&lt;br /&gt;
&lt;br /&gt;
This command can be performance intensive and it is not recommended to use it only for maintenance operations. The command will internally always try to optimise itself. If the command is given repeatedly with same arguments but only changing the page number, new searches are not performed but only different pages of the already found results are displayed. The optimisations include that the silEnT will try to use the already found results as the basis for the new search (e.g. &amp;quot;!usersearch name gao&amp;quot; followed by &amp;quot;!usersearch name gaoe&amp;quot; will first search the whole db to find all users with the pattern gao in their names and the follow up search will refine the already found results for gaoe). The maximum amount of results one search can return is 256 users. Users are displayed in the console in pages with 20 users on each page. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !usersearch [name (name)]|&amp;amp;[level (level)]|&amp;amp;[IP (IP)] [page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !updatepbguid ==&lt;br /&gt;
&lt;br /&gt;
Updates the PB GUID that is stored in the database to the one which the player is currently using. With the exception that empty, invalid or dublicated PB GUIDs are not saved to the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !updatepbguid [Name|Slot]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !readadmins ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can read admin definitions from a specific admins.cfg file. The file must be placed in the directory pointed by g_dbDirectory server cvar. The file may have only admin definition blocks.&lt;br /&gt;
Admin definitions use always the following syntax. The syntax is exactly the same used by the ETPub.&lt;br /&gt;
&lt;br /&gt;
[admin]&lt;br /&gt;
&lt;br /&gt;
name     = name of the admin (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid    = full 32 character silEnT GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
guid     = full 32 character PB GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
level    = level number&amp;lt;br/&amp;gt;&lt;br /&gt;
flags    = personal admin flags (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting = personal greeting (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound = path to personal greeting sound (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the database doesn&#039;t yet have the player, it will be added there. Those players will have the last seen field reading NEVER with !userlist and !usersearch command outputs. If the player already exists in the database, the admin values will be overwritten with the ones in read from the admins.cfg file. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readadmins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; )	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* Starting from silEnT 0.5.0, the field sguid was added to the admin blocks. This allows adding admins using the silEnT GUIDs to identify them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example::&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name = ETPlayer&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 12345678912345678912345678912345 &amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 5&amp;lt;br/&amp;gt;&lt;br /&gt;
flags =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name =&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 12345678912345678912345678912345&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 3&amp;lt;br/&amp;gt;&lt;br /&gt;
flags = AbC&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== !resetpls ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can reset all stored statistics from an online or an offline player. The stored statistics include total SMG kills and deaths, the player K/D rating and PRW rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetpls [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; (	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - the command was changed to use silEnT ID instead of the last 8 characters of the PB GUID. There is no backward compatible command for PB GUIDs.&lt;br /&gt;
&lt;br /&gt;
= List of Permission Flags =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to privileges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:1 - Cannot be vote kicked, vote muted, or complained against.&lt;br /&gt;
:2 - Cannot be censored.&lt;br /&gt;
:3 - Can run shrubbot commands silently by adding &#039;/&#039; character in front of the command.&lt;br /&gt;
:4 - Can see Axis/Allies team chats as a spectator.&lt;br /&gt;
:5 - Can switch teams any time, regardless of balance.&lt;br /&gt;
:6 - Does not need to specify a reason for !mute, !kick or !ban.&lt;br /&gt;
:7 - Can call a vote at any time (regardless of disabled voting or voting limitations).&lt;br /&gt;
:8 - Does not need to specify a duration for a ban (defaults to PERMANENT).&lt;br /&gt;
:9 - Can do shrubbot commands via team and fireteam chats.&lt;br /&gt;
:0 - Is immune to g_inactivity and g_spectatorInactivity settings.&lt;br /&gt;
:! - Is immune to all shrubbot commands (useful for server admins). Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:@ - &amp;quot;incognito&amp;quot; flag shows the admin as level 0 with no a.k.a info in the output of !listplayers. Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:$ - Can do !admintest on other players.&lt;br /&gt;
:~ - Can read and write the adminchat with the /ma command. All referees and all other players with the ~ flag will be able to read this chat.&lt;br /&gt;
:&amp;amp; - Can rename himself regardless of g_maxNameChanges limit.&lt;br /&gt;
:? - Can see all private messages while being in spectators. g_tyranny must be set for this flag to take effect.&lt;br /&gt;
:/ - Cannot send private messages. Otherwise normal privileges.&lt;br /&gt;
: # - Cannot call votes.&lt;br /&gt;
: : - Can confirm admin identity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to commands&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:A - !slap&lt;br /&gt;
:a - !admintest&lt;br /&gt;
:B - !showbans, !subnets&lt;br /&gt;
:b - !ban, !unban&lt;br /&gt;
:C - !crazygravity, !crazyspeed&lt;br /&gt;
:c - !cancelvote&lt;br /&gt;
:d - !disorient, !orient&lt;br /&gt;
:E - !spree, !spreerecord, !tspree&lt;br /&gt;
:e - !baninfo, !finger, !aliases&lt;br /&gt;
:F - !freeze, !unfreeze&lt;br /&gt;
:G - !readconfig&lt;br /&gt;
:g - !gib&lt;br /&gt;
:I - !howfair, !listteams&lt;br /&gt;
:i - !list&lt;br /&gt;
:K - !lock, !unlock&lt;br /&gt;
:k - !kick&lt;br /&gt;
:L - !flinga, !launcha, !throwa&lt;br /&gt;
:l - !fling, !launch, !throw&lt;br /&gt;
:M - !resetmyxp&lt;br /&gt;
:m - !mute, !unmute&lt;br /&gt;
:N - !rename&lt;br /&gt;
:n - !nextmap&lt;br /&gt;
:P - !spec999&lt;br /&gt;
:p - !putteam&lt;br /&gt;
:R - !warn, !dewarn&lt;br /&gt;
:r - !reset, !restart&lt;br /&gt;
:S - !shuffle&lt;br /&gt;
:s - !setlevel, !levlist, !levinfo&lt;br /&gt;
:t - !stats&lt;br /&gt;
:U - !burn&lt;br /&gt;
:u - !uptime&lt;br /&gt;
:Q - !giba&lt;br /&gt;
:q - !panzerwar, !riflewar, !sniperwar&lt;br /&gt;
:V - !passvote&lt;br /&gt;
:W - !news&lt;br /&gt;
:w - !swap&lt;br /&gt;
:X - !resetxp&lt;br /&gt;
:x - !lol&lt;br /&gt;
:Z - !pause, !unpause&lt;br /&gt;
:z - !pip, !pop&lt;br /&gt;
:] - !userlist, !userinfo, !userban, !usersearch, !aliassearch&lt;br /&gt;
:[ - !useredit, !givexp, !userdelete, !aliasesdel&lt;br /&gt;
:) - !readadmins&lt;br /&gt;
:( - !resetpls&lt;br /&gt;
:. - !userwl, !rmsubnetban, !subnetban&lt;br /&gt;
:, - !updatepbguid&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Files =&lt;br /&gt;
&lt;br /&gt;
To use shrubbot the g_dbDirectory must be set. All the shrubbot files are placed into that directory.&lt;br /&gt;
&lt;br /&gt;
== shrubbot.cfg ==&lt;br /&gt;
&lt;br /&gt;
Shrubbot.cfg is the file that holds all the level definitions, custom commands, bans, warns and subnetbans for the server shrubbot. These configuration settings are hand editable. If the shrubbot.cfg file does not exists when !ban or!setlevel is used, a new one with default settings is created. The settings in the shrubbot.cfg are divided into following data blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[level]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
level    = The level number.&lt;br /&gt;
&lt;br /&gt;
name     = The nameof the level used in e.g. !list command.&lt;br /&gt;
&lt;br /&gt;
flags    = The permission flags for the level.&lt;br /&gt;
&lt;br /&gt;
greeting = The greetingtext that is displayed to every player joining the server with this level.&lt;br /&gt;
&lt;br /&gt;
greeting_sound = The greeting sound played for every playerjoining the server with this level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[command]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
command  = The name of the command.&lt;br /&gt;
&lt;br /&gt;
exec     = The executed command. These must be commands available to /rcon and these will be executed with rcon privileges.&lt;br /&gt;
&lt;br /&gt;
desc     = The help description of the cmmand.&lt;br /&gt;
&lt;br /&gt;
syntax   = List of parameters if the command uses them. This is used with !help and it is optional.&lt;br /&gt;
&lt;br /&gt;
levels   = Space separated list of levels this command is allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The exec field in the command block can use all the shortcuts that silEnT support. The shortcut is substituted as the command would have been a say from the player who issued the command. In addition to normal shortcuts, it is possible to use [i] which is replaced with the client number of the player who did the command.&lt;br /&gt;
* The exec field in the command block can additionally use parameter placeholders. These are [1] - [9] where the number is the n:th parameter given to the custom command. When these are used, the server will substitute the placeholder with the n:th parameter given to the command.&lt;br /&gt;
* Starting from silEnT 0.2.1, it is possible to add &#039;?&#039; to the parameter placeholders. This will make the server substitute the given string to a player name if only one player matches the string. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [command]&lt;br /&gt;
    command  = crybaby&lt;br /&gt;
    exec     = playsound path/to/sound.wav; chat ^7[1?]^7 is crying like a little baby!&lt;br /&gt;
    desc     = Make someone cry like a baby&lt;br /&gt;
    syntax   = [name]&lt;br /&gt;
    levels   = 0 1 2 3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[ban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the banned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The PunkBuster GUID of the banned player.&lt;br /&gt;
&lt;br /&gt;
sguid    = The silEnT GUID if the banned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP address of the banned player.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the ban was issued.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who banned the player.&lt;br /&gt;
&lt;br /&gt;
ident    = The silEnT ident if available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[subnetban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
subnet   = The subnet of the ban.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the subnet ban was created.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who created the ban.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[warning]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the warned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The silEnT GUID of the warned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP addressof the warned player.&lt;br /&gt;
&lt;br /&gt;
warning  = The reason of the warning.&lt;br /&gt;
&lt;br /&gt;
made     = The time when the warning was made.&lt;br /&gt;
&lt;br /&gt;
warner   = The name of the player who warned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[customvote]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The of the vote shown with the /callvote command. Maximum length 15 characters.&lt;br /&gt;
&lt;br /&gt;
exec     = Command string to execute if the vote passes. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
description = Description of the vote shown with the /callvote command. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
votetext = The text that is show for voters. Maximum length 255 characters.&lt;br /&gt;
&lt;br /&gt;
passtext = Optionally, a text that is shown to players if the vote passes.&lt;br /&gt;
&lt;br /&gt;
levels   = Optionally, admins can define the vote to be available to only specific levels. Same format that is used with the custom commands.&lt;br /&gt;
&lt;br /&gt;
== userdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where the silEnT stores information of the players. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== userxdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where the silEnT stores information of the players which is not needed for the most players. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== useradb.db ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this file holds the optional aliases database. To enable the database, g_dbMaxAliases cvar must be set to a positive integer. The aliases database can be disabled by setting g_dbMaxAliases to 0 at any time and then re-enabled by setting the value back to a positive integer without any effect to the file. However, if the g_dbMaxAliases cvar is set to a smaller value than it was before, the aliases that exceed the threshold will be lost and cannot be recovered.&lt;br /&gt;
&lt;br /&gt;
This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify the file version for different silEnT versions and if necessary, silEnT will convert the file to a newer version. The old file will always be stored at the g_dbDirectory location with a _vxx added to its name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. The error messages in the log are usually very descriptive about the errors.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Limitations =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of levels:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of shrubbot level name:&#039;&#039;&#039; 	35 (includes color codes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of players in the database:&#039;&#039;&#039; 	Unlimited&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of player bans:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of subnet bans:&#039;&#039;&#039; 128 (512 since 0.9.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of ban reason:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of admin-defined commands:&#039;&#039;&#039; 	63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command name length:&#039;&#039;&#039; 	63 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (executable part):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (help string):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of warnings:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
= Shortcuts = &lt;br /&gt;
&lt;br /&gt;
Server supports the replacement of the following keys in say messages&lt;br /&gt;
&lt;br /&gt;
[a]	last player who gave you ammo&lt;br /&gt;
&lt;br /&gt;
[d]	last player who killed you&lt;br /&gt;
&lt;br /&gt;
[g]	the last 8 characters of your GUID&lt;br /&gt;
&lt;br /&gt;
[h]	last player who gave you health&lt;br /&gt;
&lt;br /&gt;
[k]	last player you killed&lt;br /&gt;
&lt;br /&gt;
[l]	your location (letter,number)&lt;br /&gt;
&lt;br /&gt;
[n]	your name&lt;br /&gt;
&lt;br /&gt;
[r]	last player who revived you&lt;br /&gt;
&lt;br /&gt;
[p]	last player you looked at&lt;br /&gt;
&lt;br /&gt;
[s]	health remaining&lt;br /&gt;
&lt;br /&gt;
[w]	name of current weapon&lt;br /&gt;
&lt;br /&gt;
[t]	ammo for current weapon&lt;br /&gt;
&lt;br /&gt;
= Sample shrubbot config =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// silEnT mod - Sample Shrubbot.cfg file&lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 0&lt;br /&gt;
name	 = Prole&lt;br /&gt;
flags	 = iBaPzI&lt;br /&gt;
greeting = &lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 1&lt;br /&gt;
name	 = Level 1&lt;br /&gt;
flags	 = iBaPzIW1&lt;br /&gt;
greeting = Level 1 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 2&lt;br /&gt;
name	 = Level2&lt;br /&gt;
flags	 = iBaPzIW1mx&lt;br /&gt;
greeting = Level 2 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 3&lt;br /&gt;
name	 = Level 3&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259&lt;br /&gt;
greeting = Level 3 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 4&lt;br /&gt;
name	 = Level 4&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259kbcVNn34678&lt;br /&gt;
greeting = Level 4 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 5&lt;br /&gt;
name	 = Level 5&lt;br /&gt;
flags	 = *&lt;br /&gt;
greeting = Level 5 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1321</id>
		<title>Silent Shrubbot</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1321"/>
		<updated>2015-10-07T10:17:59Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* User Database &amp;amp; Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What Is Shrubbot=&lt;br /&gt;
Shrubbot is an invention of Ryan Mannion. Shrubbot is an admin system that identifies the admin leveled players from silEnT and PunkBuster GUIDs without the need for passwords. Shrubbot is also very flexible and allows creating many different admin levels with entirely different command sets. silEnT shrubbot is based on the work of the ETPub team. silEnT extends the functionality of the shrubbot where ever it is needed. Including user database that holds all the players that have visited the server. To access this database, new commands have been added to the original shrubbot command set. Some commands have been renamed to ease their use and so that they resemble commands from other ET mods that have advanced admin systems.  &lt;br /&gt;
&lt;br /&gt;
If you want to use shrubbot, the cvar g_dbDirectory must be set. If it is not set, the shrubbot will not be in use. If you want to edit the default levels, you must create or copy existing shrubbot.cfg file to the directory defined by the g_dbDirectory setting. In case shrubbot command like !ban is used against a player and a shrubbot.cfg file does not already exist, a new shrubbot.cfg file is created  to store the needed data. &lt;br /&gt;
&lt;br /&gt;
The created file will also have the default level settings written to it. This file can be freely edited by hand and then, after !readconfig command has been issued, the changes take effect on the server.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Commands =&lt;br /&gt;
&lt;br /&gt;
== !admintest ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s current shrubbot admin level in global chat. When the NAME or SLOT are added and the user has the right shrubbot permission, the level of another player will be shown. However, if the target has incognito shrubbot flag, then 0 level is displayed regardless who does !admintest on him/her.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !admintest [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; a&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !aliases ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s stored aliases. Aliases are printed in the last seen first order.If there are more stored aliases than fit on one page, optional page parameter can be used to access different pages. The number of stored aliases depends of the g_dbMaxAliases cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !alises [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !ban ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off the server and will not let them connect again for SECONDS seconds, or, if a modifier (m, h, d, or w) is used, a given amount of time.  For example:&lt;br /&gt;
&lt;br /&gt;
90 = 90 seconds&lt;br /&gt;
&lt;br /&gt;
15m = 15 minutes&lt;br /&gt;
&lt;br /&gt;
3h = 3 hours&lt;br /&gt;
&lt;br /&gt;
5d = 5 days&lt;br /&gt;
&lt;br /&gt;
1w = 1 week&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !ban (NAME|SLOT) (SECONDS|TIME_WITH_MODIFIER) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !baninfo ==&lt;br /&gt;
&lt;br /&gt;
Shows detailed information of a ban in the ban list. Find the ban number with !showbans command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !baninfo (BAN NUMBER)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
== !burn ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME on fire.  REASON will be center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !burn (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; U&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !cancelvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress fail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !cancelvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; c&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !country ==&lt;br /&gt;
&lt;br /&gt;
Displays the country of the player. This command works only if GeoIP is enabled on server [http://mygamingtalk.com/wiki/index.php/Silent_Mod_Server_Cvar#g_countryFlags g_countryFlags]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !country&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== !crazygravity ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_gravity changes with 30 second interval. If enabled, the crazy gravity is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazygravity (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_speed changes with 30 second interval. If enabled, the crazy speed is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazyspeed (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !dewarn ==&lt;br /&gt;
&lt;br /&gt;
Shows all the warnings of a user. When warning number is used, the warning with that number will be removed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !dewarn (NAME|SLOT) [WARNING#]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !disorient ==&lt;br /&gt;
&lt;br /&gt;
Turns the view upside down for the client in slot number SLOT or with name containing NAME.  If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !disorient (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !finger ==&lt;br /&gt;
&lt;br /&gt;
Display the slot, partial guid, ip and clientversion of a player.&lt;br /&gt;
&lt;br /&gt;
NOTE: This command should be available only to the highest server admins!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !finger (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !freeze ==&lt;br /&gt;
&lt;br /&gt;
Freezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it freezes all players. Frozen player(s) cannot receive damage during this time. If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !freeze [NAME|SLOT] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !gib ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs the player in slot number SLOT or with name containing NAME. If name is -1 or all or if no name is entered, everybody will be gibbed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !gib (NAME|SLOT|-1|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; g&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !giba ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !giba&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !help ==&lt;br /&gt;
&lt;br /&gt;
Lists all the available shrubbot commands. If COMMAND is given, then prints the help of that specific command. !help is always available to all clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !help [COMMAND]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !howfair ==&lt;br /&gt;
&lt;br /&gt;
Prints a simple summary to everyone on the chat of team fairness based on player kill rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !howfair&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !kick ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off of the server. REASON is given to the client as the drop message. The client will be banned for 2 minutes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !kick (NAME|SLOT) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; k&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !levinfo ==&lt;br /&gt;
&lt;br /&gt;
Lists all the details of the specific admin level. The listed information includes The name of the level, the greeting, the greeting sound path and the privilege flags for the level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levinfo (Admin Level)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !levlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all the admin levels loaded from the shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levlist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !list ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of information about the connected players.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* slot number&lt;br /&gt;
&lt;br /&gt;
* team R=axis B=allies S=spectator C=connecting&lt;br /&gt;
&lt;br /&gt;
* first letter of fireteam name&lt;br /&gt;
&lt;br /&gt;
* admin level (and level name)&lt;br /&gt;
&lt;br /&gt;
* last 8 digits of guid&lt;br /&gt;
&lt;br /&gt;
* M if muted&lt;br /&gt;
&lt;br /&gt;
* W if warned&lt;br /&gt;
&lt;br /&gt;
* name&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !listteams ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of statistical information about each team. This lists ends with ratings information based on how likely each team is to win the current map. The team with more points is LESS likely to win, therefore a good way to balance the teams is to join the team with more points, or move people to that team, until the points are about even.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !listteams&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lock ==&lt;br /&gt;
&lt;br /&gt;
Locks the specified team. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lol ==&lt;br /&gt;
&lt;br /&gt;
Makes all players drop grenades.  If NAME or SLOT is provided only that player will drop grenades.  GRENADES is the number of grenades to be dropped (default is 1, maximum is 16).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lol [NAME|SLOT] [GRENADES]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; x&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !mute ==&lt;br /&gt;
&lt;br /&gt;
Mutes a player in a slot number SLOT or with a name containing NAME. TIME and REASON are optional. See !ban for more information on modifiers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !mute (NAME|SLOT) [SECONDS|TIME_WITH_MODIFIER] REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !news ==&lt;br /&gt;
&lt;br /&gt;
Plays the map specific news audio to all players if it is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !news&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; W&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !nextmap ==&lt;br /&gt;
&lt;br /&gt;
Moves to the next map in campaign or in the objective cycle end game intermission is skipped. With mapvoting gametype the game will go to the intermission.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !nextmap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; n&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog&#039;&#039;&#039;&lt;br /&gt;
* 0.4.0 The !nextmap will go to the intermission map voting when the gametype is set to 7 and the g_mapVoteFlags bitmask has flag 16 set.&lt;br /&gt;
* 0.5.1 The g_mapVoteFlags flag 16 was removed and the game will always go to the intermission with map voting game type. If old behaviour is needed, admin can create custom command executing &amp;quot;vstr nextmap&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== !orient ==&lt;br /&gt;
&lt;br /&gt;
Reverses the action of !disorient for the client in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !orient (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !panzerwar ==&lt;br /&gt;
&lt;br /&gt;
Enables panzerwar game mode. All the players will have their main weapon changed to panzerfaust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !panzerwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !passvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !passvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; V&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pause ==&lt;br /&gt;
&lt;br /&gt;
Pauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pip ==&lt;br /&gt;
&lt;br /&gt;
Draws sparks (pixie dust) around the player in slot number SLOT or with name containing NAME. Does it to all players if NAME/SLOT is not providied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pip [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pop ==&lt;br /&gt;
&lt;br /&gt;
Pops the helmet off from a player in a slot number SLOT or with a name containing NAME. If no parameter is provided, it pops the helmets off from all the players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pop [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !putteam ==&lt;br /&gt;
&lt;br /&gt;
Moves a player in a slot number SLOT or with a name containing NAME to the indicated team.&lt;br /&gt;
&lt;br /&gt;
* r - Allies&lt;br /&gt;
&lt;br /&gt;
* b - Axis&lt;br /&gt;
&lt;br /&gt;
* s - Spectators&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !putteam (NAME|SLOT) (r|b|s)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; p&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !readconfig ==&lt;br /&gt;
&lt;br /&gt;
Reads shrubbot.cfg file from the directory set by g_dbDirectory cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readconfig&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; G&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rename ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME to NEWNAME. The name change will not be persistent. The user database will store the renamed name for the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rename (NAME|SLOT) NEWNAME&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; N&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !reset ==&lt;br /&gt;
&lt;br /&gt;
Resets the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !reset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetmyxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player who runs this command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetmyxp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; M&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player in the slot number SLOT or with the name containing NAME.  If reason is provided it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetxp (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !restart ==&lt;br /&gt;
&lt;br /&gt;
Restarts the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !riflewar ==&lt;br /&gt;
&lt;br /&gt;
Enables riflewar game mode. All the players will have their main weapon changed to either K43 or Garand. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !riflewar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rmsubnetban ==&lt;br /&gt;
&lt;br /&gt;
Removes subnet ban. The given subnet ban number can be found using !subnets command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rmsubnetban [ban number]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !setlevel ==&lt;br /&gt;
&lt;br /&gt;
Sets the connected player in the slot number SLOT or with name containing NAME to the level indicated by LEVEL. A player cannot !setlevel another player to a lever higher than him/herself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !setlevel (NAME|SLOT) LEVEL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !showbans ==&lt;br /&gt;
&lt;br /&gt;
Lists up to 30 shrubbot bans currently in effect.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* ban number&lt;br /&gt;
&lt;br /&gt;
* banned player&#039;s name&lt;br /&gt;
&lt;br /&gt;
* date of the ban&lt;br /&gt;
&lt;br /&gt;
* name of the banning admin&lt;br /&gt;
&lt;br /&gt;
* when the ban will expire&lt;br /&gt;
&lt;br /&gt;
* reason for the ban&lt;br /&gt;
&lt;br /&gt;
If SKIP is provided, that number of bans are skipped before printing starts. SKIP can also be negative (e.g. &#039;!showbans -10&#039; would display the last 10 bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !showbans [SKIP]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !shuffle ==&lt;br /&gt;
&lt;br /&gt;
Shuffles teams, but does NOT restart (see !restart).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !shuffle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; S&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !slap ==&lt;br /&gt;
&lt;br /&gt;
Does DAMAGE (default 20) damage to player in slot SLOT or with name containing NAME. If REASON is specified it&#039;s center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !slap (NAME|SLOT) [DAMAGE] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !sniperwar ==&lt;br /&gt;
&lt;br /&gt;
Enables sniperwar game mode. All the players will have their main weapon changed to sniper rifles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !sniperwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spec999 ==&lt;br /&gt;
&lt;br /&gt;
Moves all the players with a ping of 999 to the spectators team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spec999&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; P&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spree ==&lt;br /&gt;
&lt;br /&gt;
Show the players current killing spree count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spree&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spreerecord ==&lt;br /&gt;
&lt;br /&gt;
Displays the map and the overall spreerecord.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spreerecord&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !stats ==&lt;br /&gt;
&lt;br /&gt;
Displays the Thompson, MP40 and PPSh total kills and deaths, kills and deaths during the map and accuracy, headshotratio and headshot distance during the map. Lists all connected players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !stats&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; t&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !subnets ==&lt;br /&gt;
&lt;br /&gt;
This command displays all the issued subnet bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnets (start at)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !subnetban ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can issue subnet ban. Subnet ban is a ban where the connecting player IP is matched against a larger IP range. The command accepts only subnets between range x.* - x.x.x.*. If the admin attempts to issue subnet ban that would ban himself the command refuses to add the subnet. This can be circumvented using rcon commands. If admin wants to add a subnet that would ban himself he must first whitelist himself with !userwl command. If silEnT can confirm the admin can connect the subnet ban is added. The command accepts full IP as it&#039;s parameter in which case the subnet is created to the x.x.x.* address. To remove subnet bans admin can use the !rmsubnetban command. The syntax with this commnd is the same kind with ban and userban commandand reason andtime can be given. The reason should be given so that any player connecting would know the reason for not being able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnetban [subnet] (time) (reason)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Require g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - Octets can be cut from inside with &#039;x&#039;. For example, &amp;quot;!subnetban 12x&amp;quot; will ban all IP addresses matching 12x.xxx.xxx.xxx.&lt;br /&gt;
&lt;br /&gt;
== !swap ==&lt;br /&gt;
&lt;br /&gt;
Swaps the players to the opposite team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !swap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; w&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !time ==&lt;br /&gt;
&lt;br /&gt;
Prints out localtime of the client in the chat. No other client can see this time message. The command doesn&#039;t have a flag but it is available to all clients always.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; No permission required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throw ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throw (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !tspree ==&lt;br /&gt;
&lt;br /&gt;
Show the top n current killing spree (default top 5).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !tspree [amount]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unban ==&lt;br /&gt;
&lt;br /&gt;
Removes the ban that !showbans lists as BAN_NUMBER.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unban BAN_NUMBER&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unfreeze ==&lt;br /&gt;
&lt;br /&gt;
Unfreezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it unfreezes all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unfreeze [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unpause ==&lt;br /&gt;
&lt;br /&gt;
Unpauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unpause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unmute ==&lt;br /&gt;
&lt;br /&gt;
Unmutes the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unmute (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unlock ==&lt;br /&gt;
&lt;br /&gt;
Unlocks the team specified. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unlock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !uptime ==&lt;br /&gt;
&lt;br /&gt;
Show how long the server has been up and running.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !uptime&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; u&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !fling ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !fling (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launch==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launch(NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throwa ==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throwa&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !flinga==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !flinga&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launcha==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launcha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !warn ==&lt;br /&gt;
&lt;br /&gt;
Plays the whistle sound and center-prints WARNING to the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !warn (NAME|SLOT) [WARNING]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
= User Database &amp;amp; Commands =&lt;br /&gt;
&lt;br /&gt;
User database is intended to store information of all the players that connect to the server. To enable user database g_dbDirectory must be set. The database stores information to identify different players and also XP data, rating data, overall stats data and shrubbot admin data. silEnT GUIDs are used to identify single players.&lt;br /&gt;
&lt;br /&gt;
Shrubbot includes functionality for server admins to handle database userdata. All commands that handle users in the database will take the last 8 characters of the player silEnT GUID to identify the player to edit. Internally, the full GUID is used to identify the players. Some commands have equivalent versions using last 8 characters of PunkBuster GUIDs to identify the player. These are needed for players who were stored into the database before the silEnT GUID was added and haven&#039;t connected to the server since.&lt;br /&gt;
&lt;br /&gt;
== !aliasesdel ==&lt;br /&gt;
&lt;br /&gt;
Command removes all the aliases from the player identified by the 8 character silEnT ID.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliasesdel [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !aliassearch ==&lt;br /&gt;
&lt;br /&gt;
This command searches the whole aliases database for the pattern in the names. Note, this command is the most resource intensive shrubbot command of all commands, and it is not recommended to be used without a reason. How fast it performs in practice depends of the aliases database size.&lt;br /&gt;
&lt;br /&gt;
For each player the following information is shown:&lt;br /&gt;
&lt;br /&gt;
:* identity information (silEnT ID)&lt;br /&gt;
&lt;br /&gt;
:* each used alias that fits the search pattern&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was first seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was last seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias the total playtime with it&lt;br /&gt;
&lt;br /&gt;
To see all the aliases of the found player, you can use &amp;quot;!userinfo aliases&amp;quot; command. In the case of all the data not fitting in one page, you can give an optional start parameter. The start parameter corresponds to the numbers shown in the first column of the results. So that each player has its own number and under that number, all the matching aliases from that player are printed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliassearch [name] [start]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !confirm ==&lt;br /&gt;
&lt;br /&gt;
Confirms the player identity with a protected admin level. As a result, the confirmed player and the server will transfer authentication information allowing the player to use admin commands from thereafter. Unconfirmed players are players with admin level that is protected but the server can not ensure the identity. This usually happens when players admin level changes with offlinecommands or the protected levels are extended. This command does not give the player admin levels, it only confirms the identity of a player whos admin level is already set. Also, if the player loses his admin level identification, this command can not be used to reinstate it.&lt;br /&gt;
&lt;br /&gt;
This command is safe to be given even to the lower levels of admins.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !confirm [SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== !userlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all users in the database. If PAGE is given, the list starts from that page. If PAGE is not given the first page of the database is printed. The command prints all users, including clients that have connected during the level time and are not yet in the database. The connected clients are always printed first and then the rest of the userbase.&lt;br /&gt;
&lt;br /&gt;
The printed rows have the following columns:&lt;br /&gt;
:*&#039;#&#039; ; This is the serial number of the user in the printout. The number doesn&#039;t correspond to anything in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;silEnT ID&#039; ; This is the 8 character silEnT GUID of the player. This is used to identify different players in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;PBGUID&#039; ; This is the 8 character PB GUID of the user. This is used to identify different users in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Last Seen&#039; ;	This tells how long time ago the user was last seen on the server. For connected clients, this will print &amp;quot;connected&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:*&#039;IP&#039; ; This tells the last IP address user has had on the server.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Ban&#039; ; This is the ban number if the player is banned from the server. If the player is whitelisted from IP bans, this column reads white capital W.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Name&#039; ; This tells the last name with user has been saved on the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With userlist command an admin can list all the users saved in the database and those that are connected page by page. Optional page number can be given to the command to tell which page is to be displayed about the users. One page can have up to 20 players printed. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userlist [PAGE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.4.0 - New column &#039;Ban&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - New column &#039;silEnT ID&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
== !userinfo ==&lt;br /&gt;
&lt;br /&gt;
Displays all information that is stored about the user in the database.&lt;br /&gt;
&lt;br /&gt;
This information includes:&lt;br /&gt;
&lt;br /&gt;
:*identity information (name, IP, 8 character PunkBuster GUID, silEnT ID, Client Identification)&lt;br /&gt;
&lt;br /&gt;
:*admin level&lt;br /&gt;
&lt;br /&gt;
:*personal greeting&lt;br /&gt;
&lt;br /&gt;
:*personal greeting sound&lt;br /&gt;
&lt;br /&gt;
:*personal shrubbot flags&lt;br /&gt;
&lt;br /&gt;
:*saved XP per skill&lt;br /&gt;
&lt;br /&gt;
:*rating values&lt;br /&gt;
&lt;br /&gt;
:*total kills and deaths with SMG weapons&lt;br /&gt;
&lt;br /&gt;
:*the ban number of the player or whitelisting&lt;br /&gt;
&lt;br /&gt;
:*list of stored aliases if the aliases database is enabled on the server&lt;br /&gt;
&lt;br /&gt;
Command can optionally print player&#039;s stored aliases if the optional aliases parameter is given and the aliases database is enabled by setting g_dbMaxAliases to a positive integer. If printed aliases don&#039;t fit in one page, optional page parameter can be used to access different pages. &lt;br /&gt;
&lt;br /&gt;
Command requires the last 8 characters of the player silEnT GUID. This GUID can be found with !userlist or !usersearch commands. This command works for both online and offline players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userinfo [silEnT ID] [aliases [page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:0.4.0 - Information of possible ban and whitelisting is added.&lt;br /&gt;
&lt;br /&gt;
:0.5.0 - silEnT ID is added.&lt;br /&gt;
&lt;br /&gt;
:0.6.0 - Aliases option is added.&lt;br /&gt;
&lt;br /&gt;
== !useredit ==&lt;br /&gt;
&lt;br /&gt;
Command is used to edit explicit userdata in the database. The command format is:&lt;br /&gt;
&lt;br /&gt;
!useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
The command parameters in detail:&lt;br /&gt;
&lt;br /&gt;
:*silEnT ID - This is the last 8 characters of the silEnT GUID of the player. This is needed to identify the player to edit.&lt;br /&gt;
&lt;br /&gt;
:*add - If the command is given this parameter, the value(s) in the [new value] field will be added to the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*remove - If the command is given this parameter, the value(s) in the [new value] field will be removed from the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*level	- If the command is given this parameter, the value in the [new value] field will be set as the players new level. The level may not be higher then the level of the player executing the command.&lt;br /&gt;
&lt;br /&gt;
:*greeting - If the command is given this parameter, the value in the [new value] field will be the players new personal greeting. If the [new value] field is empty, the personal greeting is cleared.&lt;br /&gt;
&lt;br /&gt;
:*sound	- If the command is given this parameter, the value in the [new value] field will be the file path to the players new personal greeting sound. If the [new value] field is empty, the personal greeting sound is cleared.&lt;br /&gt;
&lt;br /&gt;
:*new value - This field is used to give values to the command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the optional new value field is not set with greeting or sound parameter, the value will be set to empty and level values will be used again with these players.&lt;br /&gt;
&lt;br /&gt;
This command works with online and offline players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !usereditpb.&lt;br /&gt;
&lt;br /&gt;
== !givexp==&lt;br /&gt;
&lt;br /&gt;
Command gives the online or offline player identified by PBGUID a defined amount of XP points to the selected skill. The possible skills are:&lt;br /&gt;
&lt;br /&gt;
sold	Soldier or Heavy Weapons&lt;br /&gt;
&lt;br /&gt;
med	Medics or First Aid&lt;br /&gt;
&lt;br /&gt;
eng	 Engineering or Explosives and Construction&lt;br /&gt;
&lt;br /&gt;
fops	Field Ops or Signals&lt;br /&gt;
&lt;br /&gt;
cov	Covert Ops or Military Intelligence and Scoped Weapons&lt;br /&gt;
&lt;br /&gt;
light	Light Weapons&lt;br /&gt;
&lt;br /&gt;
battle	Battle Sense&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !givexp [silEnT ID] [sold|med|eng|fops|cov|light|battle] [amount to add]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !givexppb.&lt;br /&gt;
&lt;br /&gt;
== !userban ==&lt;br /&gt;
&lt;br /&gt;
Command bans user indentified by the 8 character silEnT GUID from the server. The data required for ban is taken from the database and the banned user does not need to be online when the command is given. Bot&#039;s cannot be banned with this command. Note that the bans are written in the human readable config file and you can still write the bans by hand if desired. Also, removing of the bans can be done by hand if desired. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userban [silEnT ID] [time] [reason]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userbanpb.&lt;br /&gt;
&lt;br /&gt;
== !userwl ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can whitelist or remove whitelisting from any player. Whitelisting means that the player IP is not checked against any IP bans. Including subnet bans and individual bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userwl [silEnT GUID] [add|remove]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !userdelete ==&lt;br /&gt;
&lt;br /&gt;
Command removes the user identified by the 8 character silEnT GUID from the database. The actual actions are taken at the level end if needed. However, once the !userdelete command has been issued to the user, the information of the user is no longer available and after the shutdown game, it is permanently lost.&lt;br /&gt;
&lt;br /&gt;
If the removed player is connected to the server while removing, a new entry is written to that player. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userdelete [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userdeletepb.&lt;br /&gt;
&lt;br /&gt;
== !usersearch ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can search the database for players with specific parameters. Arguments to the command can be pattern in the name, user admin system level and the beginning of the IP address. Additional page number can be given when the amount of found results exceed what can be shown in one page. All the arguments can be given in one command in any order. Any one of the arguments can be omitted, but each time when command is given at least one argument on top of the optional page number must be given. This command searches stored information only from the database. Connected players are not included unless they are already stored into the database.&lt;br /&gt;
&lt;br /&gt;
This command can be performance intensive and it is not recommended to use it only for maintenance operations. The command will internally always try to optimise itself. If the command is given repeatedly with same arguments but only changing the page number, new searches are not performed but only different pages of the already found results are displayed. The optimisations include that the silEnT will try to use the already found results as the basis for the new search (e.g. &amp;quot;!usersearch name gao&amp;quot; followed by &amp;quot;!usersearch name gaoe&amp;quot; will first search the whole db to find all users with the pattern gao in their names and the follow up search will refine the already found results for gaoe). The maximum amount of results one search can return is 256 users. Users are displayed in the console in pages with 20 users on each page. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !usersearch [name (name)]|&amp;amp;[level (level)]|&amp;amp;[IP (IP)] [page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !updatepbguid ==&lt;br /&gt;
&lt;br /&gt;
Updates the PB GUID that is stored in the database to the one which the player is currently using. With the exception that empty, invalid or dublicated PB GUIDs are not saved to the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !updatepbguid [Name|Slot]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !readadmins ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can read admin definitions from a specific admins.cfg file. The file must be placed in the directory pointed by g_dbDirectory server cvar. The file may have only admin definition blocks.&lt;br /&gt;
Admin definitions use always the following syntax. The syntax is exactly the same used by the ETPub.&lt;br /&gt;
&lt;br /&gt;
[admin]&lt;br /&gt;
&lt;br /&gt;
name     = name of the admin (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid    = full 32 character silEnT GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
guid     = full 32 character PB GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
level    = level number&amp;lt;br/&amp;gt;&lt;br /&gt;
flags    = personal admin flags (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting = personal greeting (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound = path to personal greeting sound (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the database doesn&#039;t yet have the player, it will be added there. Those players will have the last seen field reading NEVER with !userlist and !usersearch command outputs. If the player already exists in the database, the admin values will be overwritten with the ones in read from the admins.cfg file. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readadmins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; )	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* Starting from silEnT 0.5.0, the field sguid was added to the admin blocks. This allows adding admins using the silEnT GUIDs to identify them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example::&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name = ETPlayer&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 12345678912345678912345678912345 &amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 5&amp;lt;br/&amp;gt;&lt;br /&gt;
flags =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name =&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 12345678912345678912345678912345&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 3&amp;lt;br/&amp;gt;&lt;br /&gt;
flags = AbC&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== !resetpls ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can reset all stored statistics from an online or an offline player. The stored statistics include total SMG kills and deaths, the player K/D rating and PRW rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetpls [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; (	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - the command was changed to use silEnT ID instead of the last 8 characters of the PB GUID. There is no backward compatible command for PB GUIDs.&lt;br /&gt;
&lt;br /&gt;
= List of Permission Flags =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to privileges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:1 - Cannot be vote kicked, vote muted, or complained against.&lt;br /&gt;
:2 - Cannot be censored.&lt;br /&gt;
:3 - Can run shrubbot commands silently by adding &#039;/&#039; character in front of the command.&lt;br /&gt;
:4 - Can see Axis/Allies team chats as a spectator.&lt;br /&gt;
:5 - Can switch teams any time, regardless of balance.&lt;br /&gt;
:6 - Does not need to specify a reason for !mute, !kick or !ban.&lt;br /&gt;
:7 - Can call a vote at any time (regardless of disabled voting or voting limitations).&lt;br /&gt;
:8 - Does not need to specify a duration for a ban (defaults to PERMANENT).&lt;br /&gt;
:9 - Can do shrubbot commands via team and fireteam chats.&lt;br /&gt;
:0 - Is immune to g_inactivity and g_spectatorInactivity settings.&lt;br /&gt;
:! - Is immune to all shrubbot commands (useful for server admins). Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:@ - &amp;quot;incognito&amp;quot; flag shows the admin as level 0 with no a.k.a info in the output of !listplayers. Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:$ - Can do !admintest on other players.&lt;br /&gt;
:~ - Can read and write the adminchat with the /ma command. All referees and all other players with the ~ flag will be able to read this chat.&lt;br /&gt;
:&amp;amp; - Can rename himself regardless of g_maxNameChanges limit.&lt;br /&gt;
:? - Can see all private messages while being in spectators. g_tyranny must be set for this flag to take effect.&lt;br /&gt;
:/ - Cannot send private messages. Otherwise normal privileges.&lt;br /&gt;
: # - Cannot call votes.&lt;br /&gt;
: : - Can confirm admin identity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to commands&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:A - !slap&lt;br /&gt;
:a - !admintest&lt;br /&gt;
:B - !showbans, !subnets&lt;br /&gt;
:b - !ban, !unban&lt;br /&gt;
:C - !crazygravity, !crazyspeed&lt;br /&gt;
:c - !cancelvote&lt;br /&gt;
:d - !disorient, !orient&lt;br /&gt;
:E - !spree, !spreerecord, !tspree&lt;br /&gt;
:e - !baninfo, !finger, !aliases&lt;br /&gt;
:F - !freeze, !unfreeze&lt;br /&gt;
:G - !readconfig&lt;br /&gt;
:g - !gib&lt;br /&gt;
:I - !howfair, !listteams&lt;br /&gt;
:i - !list&lt;br /&gt;
:K - !lock, !unlock&lt;br /&gt;
:k - !kick&lt;br /&gt;
:L - !flinga, !launcha, !throwa&lt;br /&gt;
:l - !fling, !launch, !throw&lt;br /&gt;
:M - !resetmyxp&lt;br /&gt;
:m - !mute, !unmute&lt;br /&gt;
:N - !rename&lt;br /&gt;
:n - !nextmap&lt;br /&gt;
:P - !spec999&lt;br /&gt;
:p - !putteam&lt;br /&gt;
:R - !warn, !dewarn&lt;br /&gt;
:r - !reset, !restart&lt;br /&gt;
:S - !shuffle&lt;br /&gt;
:s - !setlevel, !levlist, !levinfo&lt;br /&gt;
:t - !stats&lt;br /&gt;
:U - !burn&lt;br /&gt;
:u - !uptime&lt;br /&gt;
:Q - !giba&lt;br /&gt;
:q - !panzerwar, !riflewar, !sniperwar&lt;br /&gt;
:V - !passvote&lt;br /&gt;
:W - !news&lt;br /&gt;
:w - !swap&lt;br /&gt;
:X - !resetxp&lt;br /&gt;
:x - !lol&lt;br /&gt;
:Z - !pause, !unpause&lt;br /&gt;
:z - !pip, !pop&lt;br /&gt;
:] - !userlist, !userinfo, !userban, !usersearch, !aliassearch&lt;br /&gt;
:[ - !useredit, !givexp, !userdelete, !aliasesdel&lt;br /&gt;
:) - !readadmins&lt;br /&gt;
:( - !resetpls&lt;br /&gt;
:. - !userwl, !rmsubnetban, !subnetban&lt;br /&gt;
:, - !updatepbguid&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Files =&lt;br /&gt;
&lt;br /&gt;
To use shrubbot the g_dbDirectory must be set. All the shrubbot files are placed into that directory.&lt;br /&gt;
&lt;br /&gt;
== shrubbot.cfg ==&lt;br /&gt;
&lt;br /&gt;
Shrubbot.cfg is the file that holds all the level definitions, custom commands, bans, warns and subnetbans for the server shrubbot. These configuration settings are hand editable. If the shrubbot.cfg file does not exists when !ban or!setlevel is used, a new one with default settings is created. The settings in the shrubbot.cfg are divided into following data blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[level]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
level    = The level number.&lt;br /&gt;
&lt;br /&gt;
name     = The nameof the level used in e.g. !list command.&lt;br /&gt;
&lt;br /&gt;
flags    = The permission flags for the level.&lt;br /&gt;
&lt;br /&gt;
greeting = The greetingtext that is displayed to every player joining the server with this level.&lt;br /&gt;
&lt;br /&gt;
greeting_sound = The greeting sound played for every playerjoining the server with this level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[command]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
command  = The name of the command.&lt;br /&gt;
&lt;br /&gt;
exec     = The executed command. These must be commands available to /rcon and these will be executed with rcon privileges.&lt;br /&gt;
&lt;br /&gt;
desc     = The help description of the cmmand.&lt;br /&gt;
&lt;br /&gt;
syntax   = List of parameters if the command uses them. This is used with !help and it is optional.&lt;br /&gt;
&lt;br /&gt;
levels   = Space separated list of levels this command is allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The exec field in the command block can use all the shortcuts that silEnT support. The shortcut is substituted as the command would have been a say from the player who issued the command. In addition to normal shortcuts, it is possible to use [i] which is replaced with the client number of the player who did the command.&lt;br /&gt;
* The exec field in the command block can additionally use parameter placeholders. These are [1] - [9] where the number is the n:th parameter given to the custom command. When these are used, the server will substitute the placeholder with the n:th parameter given to the command.&lt;br /&gt;
* Starting from silEnT 0.2.1, it is possible to add &#039;?&#039; to the parameter placeholders. This will make the server substitute the given string to a player name if only one player matches the string. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [command]&lt;br /&gt;
    command  = crybaby&lt;br /&gt;
    exec     = playsound path/to/sound.wav; chat ^7[1?]^7 is crying like a little baby!&lt;br /&gt;
    desc     = Make someone cry like a baby&lt;br /&gt;
    syntax   = [name]&lt;br /&gt;
    levels   = 0 1 2 3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[ban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the banned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The PunkBuster GUID of the banned player.&lt;br /&gt;
&lt;br /&gt;
sguid    = The silEnT GUID if the banned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP address of the banned player.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the ban was issued.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who banned the player.&lt;br /&gt;
&lt;br /&gt;
ident    = The silEnT ident if available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[subnetban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
subnet   = The subnet of the ban.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the subnet ban was created.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who created the ban.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[warning]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the warned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The silEnT GUID of the warned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP addressof the warned player.&lt;br /&gt;
&lt;br /&gt;
warning  = The reason of the warning.&lt;br /&gt;
&lt;br /&gt;
made     = The time when the warning was made.&lt;br /&gt;
&lt;br /&gt;
warner   = The name of the player who warned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[customvote]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The of the vote shown with the /callvote command. Maximum length 15 characters.&lt;br /&gt;
&lt;br /&gt;
exec     = Command string to execute if the vote passes. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
description = Description of the vote shown with the /callvote command. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
votetext = The text that is show for voters. Maximum length 255 characters.&lt;br /&gt;
&lt;br /&gt;
passtext = Optionally, a text that is shown to players if the vote passes.&lt;br /&gt;
&lt;br /&gt;
levels   = Optionally, admins can define the vote to be available to only specific levels. Same format that is used with the custom commands.&lt;br /&gt;
&lt;br /&gt;
== userdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where the silEnT stores information of the players. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== userxdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where the silEnT stores information of the players which is not needed for the most players. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== useradb.db ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this file holds the optional aliases database. To enable the database, g_dbMaxAliases cvar must be set to a positive integer. The aliases database can be disabled by setting g_dbMaxAliases to 0 value at any time and then re-enable the database by setting the value back to a positive integer without any effect to the file. However, if the g_dbMaxAliases cvar is set to a smaller value then it was before, the aliases that exceed the threshold will be lost unrecoverably.&lt;br /&gt;
&lt;br /&gt;
This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. The error messages in the log are usually very descriptive about the erros.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Limitations =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of levels:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of shrubbot level name:&#039;&#039;&#039; 	35 (includes color codes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of players in the database:&#039;&#039;&#039; 	Unlimited&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of player bans:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of subnet bans:&#039;&#039;&#039; 128 (512 since 0.9.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of ban reason:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of admin-defined commands:&#039;&#039;&#039; 	63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command name length:&#039;&#039;&#039; 	63 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (executable part):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (help string):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of warnings:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
= Shortcuts = &lt;br /&gt;
&lt;br /&gt;
Server supports the replacement of the following keys in say messages&lt;br /&gt;
&lt;br /&gt;
[a]	last player who gave you ammo&lt;br /&gt;
&lt;br /&gt;
[d]	last player who killed you&lt;br /&gt;
&lt;br /&gt;
[g]	the last 8 characters of your GUID&lt;br /&gt;
&lt;br /&gt;
[h]	last player who gave you health&lt;br /&gt;
&lt;br /&gt;
[k]	last player you killed&lt;br /&gt;
&lt;br /&gt;
[l]	your location (letter,number)&lt;br /&gt;
&lt;br /&gt;
[n]	your name&lt;br /&gt;
&lt;br /&gt;
[r]	last player who revived you&lt;br /&gt;
&lt;br /&gt;
[p]	last player you looked at&lt;br /&gt;
&lt;br /&gt;
[s]	health remaining&lt;br /&gt;
&lt;br /&gt;
[w]	name of current weapon&lt;br /&gt;
&lt;br /&gt;
[t]	ammo for current weapon&lt;br /&gt;
&lt;br /&gt;
= Sample shrubbot config =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// silEnT mod - Sample Shrubbot.cfg file&lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 0&lt;br /&gt;
name	 = Prole&lt;br /&gt;
flags	 = iBaPzI&lt;br /&gt;
greeting = &lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 1&lt;br /&gt;
name	 = Level 1&lt;br /&gt;
flags	 = iBaPzIW1&lt;br /&gt;
greeting = Level 1 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 2&lt;br /&gt;
name	 = Level2&lt;br /&gt;
flags	 = iBaPzIW1mx&lt;br /&gt;
greeting = Level 2 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 3&lt;br /&gt;
name	 = Level 3&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259&lt;br /&gt;
greeting = Level 3 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 4&lt;br /&gt;
name	 = Level 4&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259kbcVNn34678&lt;br /&gt;
greeting = Level 4 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 5&lt;br /&gt;
name	 = Level 5&lt;br /&gt;
flags	 = *&lt;br /&gt;
greeting = Level 5 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1320</id>
		<title>Silent Shrubbot</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1320"/>
		<updated>2015-10-07T10:14:24Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* User Database &amp;amp; Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What Is Shrubbot=&lt;br /&gt;
Shrubbot is an invention of Ryan Mannion. Shrubbot is an admin system that identifies the admin leveled players from silEnT and PunkBuster GUIDs without the need for passwords. Shrubbot is also very flexible and allows creating many different admin levels with entirely different command sets. silEnT shrubbot is based on the work of the ETPub team. silEnT extends the functionality of the shrubbot where ever it is needed. Including user database that holds all the players that have visited the server. To access this database, new commands have been added to the original shrubbot command set. Some commands have been renamed to ease their use and so that they resemble commands from other ET mods that have advanced admin systems.  &lt;br /&gt;
&lt;br /&gt;
If you want to use shrubbot, the cvar g_dbDirectory must be set. If it is not set, the shrubbot will not be in use. If you want to edit the default levels, you must create or copy existing shrubbot.cfg file to the directory defined by the g_dbDirectory setting. In case shrubbot command like !ban is used against a player and a shrubbot.cfg file does not already exist, a new shrubbot.cfg file is created  to store the needed data. &lt;br /&gt;
&lt;br /&gt;
The created file will also have the default level settings written to it. This file can be freely edited by hand and then, after !readconfig command has been issued, the changes take effect on the server.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Commands =&lt;br /&gt;
&lt;br /&gt;
== !admintest ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s current shrubbot admin level in global chat. When the NAME or SLOT are added and the user has the right shrubbot permission, the level of another player will be shown. However, if the target has incognito shrubbot flag, then 0 level is displayed regardless who does !admintest on him/her.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !admintest [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; a&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !aliases ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s stored aliases. Aliases are printed in the last seen first order.If there are more stored aliases than fit on one page, optional page parameter can be used to access different pages. The number of stored aliases depends of the g_dbMaxAliases cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !alises [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !ban ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off the server and will not let them connect again for SECONDS seconds, or, if a modifier (m, h, d, or w) is used, a given amount of time.  For example:&lt;br /&gt;
&lt;br /&gt;
90 = 90 seconds&lt;br /&gt;
&lt;br /&gt;
15m = 15 minutes&lt;br /&gt;
&lt;br /&gt;
3h = 3 hours&lt;br /&gt;
&lt;br /&gt;
5d = 5 days&lt;br /&gt;
&lt;br /&gt;
1w = 1 week&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !ban (NAME|SLOT) (SECONDS|TIME_WITH_MODIFIER) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !baninfo ==&lt;br /&gt;
&lt;br /&gt;
Shows detailed information of a ban in the ban list. Find the ban number with !showbans command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !baninfo (BAN NUMBER)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
== !burn ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME on fire.  REASON will be center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !burn (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; U&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !cancelvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress fail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !cancelvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; c&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !country ==&lt;br /&gt;
&lt;br /&gt;
Displays the country of the player. This command works only if GeoIP is enabled on server [http://mygamingtalk.com/wiki/index.php/Silent_Mod_Server_Cvar#g_countryFlags g_countryFlags]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !country&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== !crazygravity ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_gravity changes with 30 second interval. If enabled, the crazy gravity is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazygravity (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_speed changes with 30 second interval. If enabled, the crazy speed is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazyspeed (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !dewarn ==&lt;br /&gt;
&lt;br /&gt;
Shows all the warnings of a user. When warning number is used, the warning with that number will be removed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !dewarn (NAME|SLOT) [WARNING#]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !disorient ==&lt;br /&gt;
&lt;br /&gt;
Turns the view upside down for the client in slot number SLOT or with name containing NAME.  If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !disorient (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !finger ==&lt;br /&gt;
&lt;br /&gt;
Display the slot, partial guid, ip and clientversion of a player.&lt;br /&gt;
&lt;br /&gt;
NOTE: This command should be available only to the highest server admins!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !finger (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !freeze ==&lt;br /&gt;
&lt;br /&gt;
Freezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it freezes all players. Frozen player(s) cannot receive damage during this time. If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !freeze [NAME|SLOT] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !gib ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs the player in slot number SLOT or with name containing NAME. If name is -1 or all or if no name is entered, everybody will be gibbed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !gib (NAME|SLOT|-1|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; g&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !giba ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !giba&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !help ==&lt;br /&gt;
&lt;br /&gt;
Lists all the available shrubbot commands. If COMMAND is given, then prints the help of that specific command. !help is always available to all clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !help [COMMAND]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !howfair ==&lt;br /&gt;
&lt;br /&gt;
Prints a simple summary to everyone on the chat of team fairness based on player kill rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !howfair&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !kick ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off of the server. REASON is given to the client as the drop message. The client will be banned for 2 minutes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !kick (NAME|SLOT) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; k&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !levinfo ==&lt;br /&gt;
&lt;br /&gt;
Lists all the details of the specific admin level. The listed information includes The name of the level, the greeting, the greeting sound path and the privilege flags for the level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levinfo (Admin Level)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !levlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all the admin levels loaded from the shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levlist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !list ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of information about the connected players.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* slot number&lt;br /&gt;
&lt;br /&gt;
* team R=axis B=allies S=spectator C=connecting&lt;br /&gt;
&lt;br /&gt;
* first letter of fireteam name&lt;br /&gt;
&lt;br /&gt;
* admin level (and level name)&lt;br /&gt;
&lt;br /&gt;
* last 8 digits of guid&lt;br /&gt;
&lt;br /&gt;
* M if muted&lt;br /&gt;
&lt;br /&gt;
* W if warned&lt;br /&gt;
&lt;br /&gt;
* name&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !listteams ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of statistical information about each team. This lists ends with ratings information based on how likely each team is to win the current map. The team with more points is LESS likely to win, therefore a good way to balance the teams is to join the team with more points, or move people to that team, until the points are about even.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !listteams&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lock ==&lt;br /&gt;
&lt;br /&gt;
Locks the specified team. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lol ==&lt;br /&gt;
&lt;br /&gt;
Makes all players drop grenades.  If NAME or SLOT is provided only that player will drop grenades.  GRENADES is the number of grenades to be dropped (default is 1, maximum is 16).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lol [NAME|SLOT] [GRENADES]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; x&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !mute ==&lt;br /&gt;
&lt;br /&gt;
Mutes a player in a slot number SLOT or with a name containing NAME. TIME and REASON are optional. See !ban for more information on modifiers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !mute (NAME|SLOT) [SECONDS|TIME_WITH_MODIFIER] REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !news ==&lt;br /&gt;
&lt;br /&gt;
Plays the map specific news audio to all players if it is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !news&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; W&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !nextmap ==&lt;br /&gt;
&lt;br /&gt;
Moves to the next map in campaign or in the objective cycle end game intermission is skipped. With mapvoting gametype the game will go to the intermission.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !nextmap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; n&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog&#039;&#039;&#039;&lt;br /&gt;
* 0.4.0 The !nextmap will go to the intermission map voting when the gametype is set to 7 and the g_mapVoteFlags bitmask has flag 16 set.&lt;br /&gt;
* 0.5.1 The g_mapVoteFlags flag 16 was removed and the game will always go to the intermission with map voting game type. If old behaviour is needed, admin can create custom command executing &amp;quot;vstr nextmap&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== !orient ==&lt;br /&gt;
&lt;br /&gt;
Reverses the action of !disorient for the client in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !orient (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !panzerwar ==&lt;br /&gt;
&lt;br /&gt;
Enables panzerwar game mode. All the players will have their main weapon changed to panzerfaust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !panzerwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !passvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !passvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; V&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pause ==&lt;br /&gt;
&lt;br /&gt;
Pauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pip ==&lt;br /&gt;
&lt;br /&gt;
Draws sparks (pixie dust) around the player in slot number SLOT or with name containing NAME. Does it to all players if NAME/SLOT is not providied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pip [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pop ==&lt;br /&gt;
&lt;br /&gt;
Pops the helmet off from a player in a slot number SLOT or with a name containing NAME. If no parameter is provided, it pops the helmets off from all the players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pop [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !putteam ==&lt;br /&gt;
&lt;br /&gt;
Moves a player in a slot number SLOT or with a name containing NAME to the indicated team.&lt;br /&gt;
&lt;br /&gt;
* r - Allies&lt;br /&gt;
&lt;br /&gt;
* b - Axis&lt;br /&gt;
&lt;br /&gt;
* s - Spectators&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !putteam (NAME|SLOT) (r|b|s)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; p&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !readconfig ==&lt;br /&gt;
&lt;br /&gt;
Reads shrubbot.cfg file from the directory set by g_dbDirectory cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readconfig&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; G&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rename ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME to NEWNAME. The name change will not be persistent. The user database will store the renamed name for the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rename (NAME|SLOT) NEWNAME&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; N&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !reset ==&lt;br /&gt;
&lt;br /&gt;
Resets the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !reset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetmyxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player who runs this command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetmyxp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; M&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player in the slot number SLOT or with the name containing NAME.  If reason is provided it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetxp (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !restart ==&lt;br /&gt;
&lt;br /&gt;
Restarts the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !riflewar ==&lt;br /&gt;
&lt;br /&gt;
Enables riflewar game mode. All the players will have their main weapon changed to either K43 or Garand. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !riflewar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rmsubnetban ==&lt;br /&gt;
&lt;br /&gt;
Removes subnet ban. The given subnet ban number can be found using !subnets command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rmsubnetban [ban number]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !setlevel ==&lt;br /&gt;
&lt;br /&gt;
Sets the connected player in the slot number SLOT or with name containing NAME to the level indicated by LEVEL. A player cannot !setlevel another player to a lever higher than him/herself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !setlevel (NAME|SLOT) LEVEL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !showbans ==&lt;br /&gt;
&lt;br /&gt;
Lists up to 30 shrubbot bans currently in effect.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* ban number&lt;br /&gt;
&lt;br /&gt;
* banned player&#039;s name&lt;br /&gt;
&lt;br /&gt;
* date of the ban&lt;br /&gt;
&lt;br /&gt;
* name of the banning admin&lt;br /&gt;
&lt;br /&gt;
* when the ban will expire&lt;br /&gt;
&lt;br /&gt;
* reason for the ban&lt;br /&gt;
&lt;br /&gt;
If SKIP is provided, that number of bans are skipped before printing starts. SKIP can also be negative (e.g. &#039;!showbans -10&#039; would display the last 10 bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !showbans [SKIP]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !shuffle ==&lt;br /&gt;
&lt;br /&gt;
Shuffles teams, but does NOT restart (see !restart).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !shuffle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; S&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !slap ==&lt;br /&gt;
&lt;br /&gt;
Does DAMAGE (default 20) damage to player in slot SLOT or with name containing NAME. If REASON is specified it&#039;s center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !slap (NAME|SLOT) [DAMAGE] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !sniperwar ==&lt;br /&gt;
&lt;br /&gt;
Enables sniperwar game mode. All the players will have their main weapon changed to sniper rifles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !sniperwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spec999 ==&lt;br /&gt;
&lt;br /&gt;
Moves all the players with a ping of 999 to the spectators team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spec999&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; P&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spree ==&lt;br /&gt;
&lt;br /&gt;
Show the players current killing spree count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spree&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spreerecord ==&lt;br /&gt;
&lt;br /&gt;
Displays the map and the overall spreerecord.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spreerecord&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !stats ==&lt;br /&gt;
&lt;br /&gt;
Displays the Thompson, MP40 and PPSh total kills and deaths, kills and deaths during the map and accuracy, headshotratio and headshot distance during the map. Lists all connected players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !stats&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; t&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !subnets ==&lt;br /&gt;
&lt;br /&gt;
This command displays all the issued subnet bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnets (start at)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !subnetban ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can issue subnet ban. Subnet ban is a ban where the connecting player IP is matched against a larger IP range. The command accepts only subnets between range x.* - x.x.x.*. If the admin attempts to issue subnet ban that would ban himself the command refuses to add the subnet. This can be circumvented using rcon commands. If admin wants to add a subnet that would ban himself he must first whitelist himself with !userwl command. If silEnT can confirm the admin can connect the subnet ban is added. The command accepts full IP as it&#039;s parameter in which case the subnet is created to the x.x.x.* address. To remove subnet bans admin can use the !rmsubnetban command. The syntax with this commnd is the same kind with ban and userban commandand reason andtime can be given. The reason should be given so that any player connecting would know the reason for not being able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnetban [subnet] (time) (reason)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Require g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - Octets can be cut from inside with &#039;x&#039;. For example, &amp;quot;!subnetban 12x&amp;quot; will ban all IP addresses matching 12x.xxx.xxx.xxx.&lt;br /&gt;
&lt;br /&gt;
== !swap ==&lt;br /&gt;
&lt;br /&gt;
Swaps the players to the opposite team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !swap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; w&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !time ==&lt;br /&gt;
&lt;br /&gt;
Prints out localtime of the client in the chat. No other client can see this time message. The command doesn&#039;t have a flag but it is available to all clients always.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; No permission required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throw ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throw (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !tspree ==&lt;br /&gt;
&lt;br /&gt;
Show the top n current killing spree (default top 5).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !tspree [amount]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unban ==&lt;br /&gt;
&lt;br /&gt;
Removes the ban that !showbans lists as BAN_NUMBER.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unban BAN_NUMBER&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unfreeze ==&lt;br /&gt;
&lt;br /&gt;
Unfreezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it unfreezes all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unfreeze [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unpause ==&lt;br /&gt;
&lt;br /&gt;
Unpauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unpause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unmute ==&lt;br /&gt;
&lt;br /&gt;
Unmutes the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unmute (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unlock ==&lt;br /&gt;
&lt;br /&gt;
Unlocks the team specified. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unlock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !uptime ==&lt;br /&gt;
&lt;br /&gt;
Show how long the server has been up and running.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !uptime&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; u&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !fling ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !fling (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launch==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launch(NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throwa ==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throwa&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !flinga==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !flinga&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launcha==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launcha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !warn ==&lt;br /&gt;
&lt;br /&gt;
Plays the whistle sound and center-prints WARNING to the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !warn (NAME|SLOT) [WARNING]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
= User Database &amp;amp; Commands =&lt;br /&gt;
&lt;br /&gt;
User database is intended to store information of all the players that connect to the server. To enable user database g_dbDirectory must be set. The database stores information to identify different players and also XP data, rating data, overall stats data and shrubbot admin data. silEnT GUIDs are used to identify single players.&lt;br /&gt;
&lt;br /&gt;
Shrubbot includes functionality for server admins to handle database userdata. All commands that handle users in the database will take the last 8 characters of the player PunkBuster GUID to identify the player to edit. This is not an unique identification but because EvenBalance has seen this to have enough uniqueness, it is good for the use of the database commands. Internally, the full GUID is used to identify the players.&lt;br /&gt;
&lt;br /&gt;
== !aliasesdel ==&lt;br /&gt;
&lt;br /&gt;
Command removes all the aliases from the player identified by the 8 character silEnT ID.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliasesdel [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !aliassearch ==&lt;br /&gt;
&lt;br /&gt;
This command searches the whole aliases database for the pattern in the names. Note, this command is the most resource intensive shrubbot command of all commands, and it is not recommended to be used without a reason. How fast it performs in practice depends of the aliases database size.&lt;br /&gt;
&lt;br /&gt;
For each player the following information is shown:&lt;br /&gt;
&lt;br /&gt;
:* identity information (silEnT ID)&lt;br /&gt;
&lt;br /&gt;
:* each used alias that fits the search pattern&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was first seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was last seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias the total playtime with it&lt;br /&gt;
&lt;br /&gt;
To see all the aliases of the found player, you can use &amp;quot;!userinfo aliases&amp;quot; command. In the case of all the data not fitting in one page, you can give an optional start parameter. The start parameter corresponds to the numbers shown in the first column of the results. So that each player has its own number and under that number, all the matching aliases from that player are printed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliassearch [name] [start]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !confirm ==&lt;br /&gt;
&lt;br /&gt;
Confirms the player identity with a protected admin level. As a result, the confirmed player and the server will transfer authentication information allowing the player to use admin commands from thereafter. Unconfirmed players are players with admin level that is protected but the server can not ensure the identity. This usually happens when players admin level changes with offlinecommands or the protected levels are extended. This command does not give the player admin levels, it only confirms the identity of a player whos admin level is already set. Also, if the player loses his admin level identification, this command can not be used to reinstate it.&lt;br /&gt;
&lt;br /&gt;
This command is safe to be given even to the lower levels of admins.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !confirm [SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== !userlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all users in the database. If PAGE is given, the list starts from that page. If PAGE is not given the first page of the database is printed. The command prints all users, including clients that have connected during the level time and are not yet in the database. The connected clients are always printed first and then the rest of the userbase.&lt;br /&gt;
&lt;br /&gt;
The printed rows have the following columns:&lt;br /&gt;
:*&#039;#&#039; ; This is the serial number of the user in the printout. The number doesn&#039;t correspond to anything in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;silEnT ID&#039; ; This is the 8 character silEnT GUID of the player. This is used to identify different players in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;PBGUID&#039; ; This is the 8 character PB GUID of the user. This is used to identify different users in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Last Seen&#039; ;	This tells how long time ago the user was last seen on the server. For connected clients, this will print &amp;quot;connected&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:*&#039;IP&#039; ; This tells the last IP address user has had on the server.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Ban&#039; ; This is the ban number if the player is banned from the server. If the player is whitelisted from IP bans, this column reads white capital W.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Name&#039; ; This tells the last name with user has been saved on the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With userlist command an admin can list all the users saved in the database and those that are connected page by page. Optional page number can be given to the command to tell which page is to be displayed about the users. One page can have up to 20 players printed. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userlist [PAGE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.4.0 - New column &#039;Ban&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - New column &#039;silEnT ID&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
== !userinfo ==&lt;br /&gt;
&lt;br /&gt;
Displays all information that is stored about the user in the database.&lt;br /&gt;
&lt;br /&gt;
This information includes:&lt;br /&gt;
&lt;br /&gt;
:*identity information (name, IP, 8 character PunkBuster GUID, silEnT ID, Client Identification)&lt;br /&gt;
&lt;br /&gt;
:*admin level&lt;br /&gt;
&lt;br /&gt;
:*personal greeting&lt;br /&gt;
&lt;br /&gt;
:*personal greeting sound&lt;br /&gt;
&lt;br /&gt;
:*personal shrubbot flags&lt;br /&gt;
&lt;br /&gt;
:*saved XP per skill&lt;br /&gt;
&lt;br /&gt;
:*rating values&lt;br /&gt;
&lt;br /&gt;
:*total kills and deaths with SMG weapons&lt;br /&gt;
&lt;br /&gt;
:*the ban number of the player or whitelisting&lt;br /&gt;
&lt;br /&gt;
:*list of stored aliases if the aliases database is enabled on the server&lt;br /&gt;
&lt;br /&gt;
Command can optionally print player&#039;s stored aliases if the optional aliases parameter is given and the aliases database is enabled by setting g_dbMaxAliases to a positive integer. If printed aliases don&#039;t fit in one page, optional page parameter can be used to access different pages. &lt;br /&gt;
&lt;br /&gt;
Command requires the last 8 characters of the player silEnT GUID. This GUID can be found with !userlist or !usersearch commands. This command works for both online and offline players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userinfo [silEnT ID] [aliases [page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:0.4.0 - Information of possible ban and whitelisting is added.&lt;br /&gt;
&lt;br /&gt;
:0.5.0 - silEnT ID is added.&lt;br /&gt;
&lt;br /&gt;
:0.6.0 - Aliases option is added.&lt;br /&gt;
&lt;br /&gt;
== !useredit ==&lt;br /&gt;
&lt;br /&gt;
Command is used to edit explicit userdata in the database. The command format is:&lt;br /&gt;
&lt;br /&gt;
!useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
The command parameters in detail:&lt;br /&gt;
&lt;br /&gt;
:*silEnT ID - This is the last 8 characters of the silEnT GUID of the player. This is needed to identify the player to edit.&lt;br /&gt;
&lt;br /&gt;
:*add - If the command is given this parameter, the value(s) in the [new value] field will be added to the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*remove - If the command is given this parameter, the value(s) in the [new value] field will be removed from the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*level	- If the command is given this parameter, the value in the [new value] field will be set as the players new level. The level may not be higher then the level of the player executing the command.&lt;br /&gt;
&lt;br /&gt;
:*greeting - If the command is given this parameter, the value in the [new value] field will be the players new personal greeting. If the [new value] field is empty, the personal greeting is cleared.&lt;br /&gt;
&lt;br /&gt;
:*sound	- If the command is given this parameter, the value in the [new value] field will be the file path to the players new personal greeting sound. If the [new value] field is empty, the personal greeting sound is cleared.&lt;br /&gt;
&lt;br /&gt;
:*new value - This field is used to give values to the command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the optional new value field is not set with greeting or sound parameter, the value will be set to empty and level values will be used again with these players.&lt;br /&gt;
&lt;br /&gt;
This command works with online and offline players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !usereditpb.&lt;br /&gt;
&lt;br /&gt;
== !givexp==&lt;br /&gt;
&lt;br /&gt;
Command gives the online or offline player identified by PBGUID a defined amount of XP points to the selected skill. The possible skills are:&lt;br /&gt;
&lt;br /&gt;
sold	Soldier or Heavy Weapons&lt;br /&gt;
&lt;br /&gt;
med	Medics or First Aid&lt;br /&gt;
&lt;br /&gt;
eng	 Engineering or Explosives and Construction&lt;br /&gt;
&lt;br /&gt;
fops	Field Ops or Signals&lt;br /&gt;
&lt;br /&gt;
cov	Covert Ops or Military Intelligence and Scoped Weapons&lt;br /&gt;
&lt;br /&gt;
light	Light Weapons&lt;br /&gt;
&lt;br /&gt;
battle	Battle Sense&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !givexp [silEnT ID] [sold|med|eng|fops|cov|light|battle] [amount to add]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !givexppb.&lt;br /&gt;
&lt;br /&gt;
== !userban ==&lt;br /&gt;
&lt;br /&gt;
Command bans user indentified by the 8 character silEnT GUID from the server. The data required for ban is taken from the database and the banned user does not need to be online when the command is given. Bot&#039;s cannot be banned with this command. Note that the bans are written in the human readable config file and you can still write the bans by hand if desired. Also, removing of the bans can be done by hand if desired. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userban [silEnT ID] [time] [reason]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userbanpb.&lt;br /&gt;
&lt;br /&gt;
== !userwl ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can whitelist or remove whitelisting from any player. Whitelisting means that the player IP is not checked against any IP bans. Including subnet bans and individual bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userwl [silEnT GUID] [add|remove]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !userdelete ==&lt;br /&gt;
&lt;br /&gt;
Command removes the user identified by the 8 character silEnT GUID from the database. The actual actions are taken at the level end if needed. However, once the !userdelete command has been issued to the user, the information of the user is no longer available and after the shutdown game, it is permanently lost.&lt;br /&gt;
&lt;br /&gt;
If the removed player is connected to the server while removing, a new entry is written to that player. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userdelete [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userdeletepb.&lt;br /&gt;
&lt;br /&gt;
== !usersearch ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can search the database for players with specific parameters. Arguments to the command can be pattern in the name, user admin system level and the beginning of the IP address. Additional page number can be given when the amount of found results exceed what can be shown in one page. All the arguments can be given in one command in any order. Any one of the arguments can be omitted, but each time when command is given at least one argument on top of the optional page number must be given. This command searches stored information only from the database. Connected players are not included unless they are already stored into the database.&lt;br /&gt;
&lt;br /&gt;
This command can be performance intensive and it is not recommended to use it only for maintenance operations. The command will internally always try to optimise itself. If the command is given repeatedly with same arguments but only changing the page number, new searches are not performed but only different pages of the already found results are displayed. The optimisations include that the silEnT will try to use the already found results as the basis for the new search (e.g. &amp;quot;!usersearch name gao&amp;quot; followed by &amp;quot;!usersearch name gaoe&amp;quot; will first search the whole db to find all users with the pattern gao in their names and the follow up search will refine the already found results for gaoe). The maximum amount of results one search can return is 256 users. Users are displayed in the console in pages with 20 users on each page. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !usersearch [name (name)]|&amp;amp;[level (level)]|&amp;amp;[IP (IP)] [page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !updatepbguid ==&lt;br /&gt;
&lt;br /&gt;
Updates the PB GUID that is stored in the database to the one which the player is currently using. With the exception that empty, invalid or dublicated PB GUIDs are not saved to the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !updatepbguid [Name|Slot]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !readadmins ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can read admin definitions from a specific admins.cfg file. The file must be placed in the directory pointed by g_dbDirectory server cvar. The file may have only admin definition blocks.&lt;br /&gt;
Admin definitions use always the following syntax. The syntax is exactly the same used by the ETPub.&lt;br /&gt;
&lt;br /&gt;
[admin]&lt;br /&gt;
&lt;br /&gt;
name     = name of the admin (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid    = full 32 character silEnT GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
guid     = full 32 character PB GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
level    = level number&amp;lt;br/&amp;gt;&lt;br /&gt;
flags    = personal admin flags (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting = personal greeting (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound = path to personal greeting sound (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the database doesn&#039;t yet have the player, it will be added there. Those players will have the last seen field reading NEVER with !userlist and !usersearch command outputs. If the player already exists in the database, the admin values will be overwritten with the ones in read from the admins.cfg file. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readadmins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; )	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* Starting from silEnT 0.5.0, the field sguid was added to the admin blocks. This allows adding admins using the silEnT GUIDs to identify them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example::&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name = ETPlayer&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 12345678912345678912345678912345 &amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 5&amp;lt;br/&amp;gt;&lt;br /&gt;
flags =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name =&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 12345678912345678912345678912345&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 3&amp;lt;br/&amp;gt;&lt;br /&gt;
flags = AbC&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== !resetpls ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can reset all stored statistics from an online or an offline player. The stored statistics include total SMG kills and deaths, the player K/D rating and PRW rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetpls [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; (	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - the command was changed to use silEnT ID instead of the last 8 characters of the PB GUID. There is no backward compatible command for PB GUIDs.&lt;br /&gt;
&lt;br /&gt;
= List of Permission Flags =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to privileges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:1 - Cannot be vote kicked, vote muted, or complained against.&lt;br /&gt;
:2 - Cannot be censored.&lt;br /&gt;
:3 - Can run shrubbot commands silently by adding &#039;/&#039; character in front of the command.&lt;br /&gt;
:4 - Can see Axis/Allies team chats as a spectator.&lt;br /&gt;
:5 - Can switch teams any time, regardless of balance.&lt;br /&gt;
:6 - Does not need to specify a reason for !mute, !kick or !ban.&lt;br /&gt;
:7 - Can call a vote at any time (regardless of disabled voting or voting limitations).&lt;br /&gt;
:8 - Does not need to specify a duration for a ban (defaults to PERMANENT).&lt;br /&gt;
:9 - Can do shrubbot commands via team and fireteam chats.&lt;br /&gt;
:0 - Is immune to g_inactivity and g_spectatorInactivity settings.&lt;br /&gt;
:! - Is immune to all shrubbot commands (useful for server admins). Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:@ - &amp;quot;incognito&amp;quot; flag shows the admin as level 0 with no a.k.a info in the output of !listplayers. Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:$ - Can do !admintest on other players.&lt;br /&gt;
:~ - Can read and write the adminchat with the /ma command. All referees and all other players with the ~ flag will be able to read this chat.&lt;br /&gt;
:&amp;amp; - Can rename himself regardless of g_maxNameChanges limit.&lt;br /&gt;
:? - Can see all private messages while being in spectators. g_tyranny must be set for this flag to take effect.&lt;br /&gt;
:/ - Cannot send private messages. Otherwise normal privileges.&lt;br /&gt;
: # - Cannot call votes.&lt;br /&gt;
: : - Can confirm admin identity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to commands&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:A - !slap&lt;br /&gt;
:a - !admintest&lt;br /&gt;
:B - !showbans, !subnets&lt;br /&gt;
:b - !ban, !unban&lt;br /&gt;
:C - !crazygravity, !crazyspeed&lt;br /&gt;
:c - !cancelvote&lt;br /&gt;
:d - !disorient, !orient&lt;br /&gt;
:E - !spree, !spreerecord, !tspree&lt;br /&gt;
:e - !baninfo, !finger, !aliases&lt;br /&gt;
:F - !freeze, !unfreeze&lt;br /&gt;
:G - !readconfig&lt;br /&gt;
:g - !gib&lt;br /&gt;
:I - !howfair, !listteams&lt;br /&gt;
:i - !list&lt;br /&gt;
:K - !lock, !unlock&lt;br /&gt;
:k - !kick&lt;br /&gt;
:L - !flinga, !launcha, !throwa&lt;br /&gt;
:l - !fling, !launch, !throw&lt;br /&gt;
:M - !resetmyxp&lt;br /&gt;
:m - !mute, !unmute&lt;br /&gt;
:N - !rename&lt;br /&gt;
:n - !nextmap&lt;br /&gt;
:P - !spec999&lt;br /&gt;
:p - !putteam&lt;br /&gt;
:R - !warn, !dewarn&lt;br /&gt;
:r - !reset, !restart&lt;br /&gt;
:S - !shuffle&lt;br /&gt;
:s - !setlevel, !levlist, !levinfo&lt;br /&gt;
:t - !stats&lt;br /&gt;
:U - !burn&lt;br /&gt;
:u - !uptime&lt;br /&gt;
:Q - !giba&lt;br /&gt;
:q - !panzerwar, !riflewar, !sniperwar&lt;br /&gt;
:V - !passvote&lt;br /&gt;
:W - !news&lt;br /&gt;
:w - !swap&lt;br /&gt;
:X - !resetxp&lt;br /&gt;
:x - !lol&lt;br /&gt;
:Z - !pause, !unpause&lt;br /&gt;
:z - !pip, !pop&lt;br /&gt;
:] - !userlist, !userinfo, !userban, !usersearch, !aliassearch&lt;br /&gt;
:[ - !useredit, !givexp, !userdelete, !aliasesdel&lt;br /&gt;
:) - !readadmins&lt;br /&gt;
:( - !resetpls&lt;br /&gt;
:. - !userwl, !rmsubnetban, !subnetban&lt;br /&gt;
:, - !updatepbguid&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Files =&lt;br /&gt;
&lt;br /&gt;
To use shrubbot the g_dbDirectory must be set. All the shrubbot files are placed into that directory.&lt;br /&gt;
&lt;br /&gt;
== shrubbot.cfg ==&lt;br /&gt;
&lt;br /&gt;
Shrubbot.cfg is the file that holds all the level definitions, custom commands, bans, warns and subnetbans for the server shrubbot. These configuration settings are hand editable. If the shrubbot.cfg file does not exists when !ban or!setlevel is used, a new one with default settings is created. The settings in the shrubbot.cfg are divided into following data blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[level]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
level    = The level number.&lt;br /&gt;
&lt;br /&gt;
name     = The nameof the level used in e.g. !list command.&lt;br /&gt;
&lt;br /&gt;
flags    = The permission flags for the level.&lt;br /&gt;
&lt;br /&gt;
greeting = The greetingtext that is displayed to every player joining the server with this level.&lt;br /&gt;
&lt;br /&gt;
greeting_sound = The greeting sound played for every playerjoining the server with this level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[command]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
command  = The name of the command.&lt;br /&gt;
&lt;br /&gt;
exec     = The executed command. These must be commands available to /rcon and these will be executed with rcon privileges.&lt;br /&gt;
&lt;br /&gt;
desc     = The help description of the cmmand.&lt;br /&gt;
&lt;br /&gt;
syntax   = List of parameters if the command uses them. This is used with !help and it is optional.&lt;br /&gt;
&lt;br /&gt;
levels   = Space separated list of levels this command is allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The exec field in the command block can use all the shortcuts that silEnT support. The shortcut is substituted as the command would have been a say from the player who issued the command. In addition to normal shortcuts, it is possible to use [i] which is replaced with the client number of the player who did the command.&lt;br /&gt;
* The exec field in the command block can additionally use parameter placeholders. These are [1] - [9] where the number is the n:th parameter given to the custom command. When these are used, the server will substitute the placeholder with the n:th parameter given to the command.&lt;br /&gt;
* Starting from silEnT 0.2.1, it is possible to add &#039;?&#039; to the parameter placeholders. This will make the server substitute the given string to a player name if only one player matches the string. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [command]&lt;br /&gt;
    command  = crybaby&lt;br /&gt;
    exec     = playsound path/to/sound.wav; chat ^7[1?]^7 is crying like a little baby!&lt;br /&gt;
    desc     = Make someone cry like a baby&lt;br /&gt;
    syntax   = [name]&lt;br /&gt;
    levels   = 0 1 2 3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[ban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the banned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The PunkBuster GUID of the banned player.&lt;br /&gt;
&lt;br /&gt;
sguid    = The silEnT GUID if the banned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP address of the banned player.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the ban was issued.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who banned the player.&lt;br /&gt;
&lt;br /&gt;
ident    = The silEnT ident if available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[subnetban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
subnet   = The subnet of the ban.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the subnet ban was created.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who created the ban.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[warning]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the warned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The silEnT GUID of the warned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP addressof the warned player.&lt;br /&gt;
&lt;br /&gt;
warning  = The reason of the warning.&lt;br /&gt;
&lt;br /&gt;
made     = The time when the warning was made.&lt;br /&gt;
&lt;br /&gt;
warner   = The name of the player who warned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[customvote]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The of the vote shown with the /callvote command. Maximum length 15 characters.&lt;br /&gt;
&lt;br /&gt;
exec     = Command string to execute if the vote passes. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
description = Description of the vote shown with the /callvote command. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
votetext = The text that is show for voters. Maximum length 255 characters.&lt;br /&gt;
&lt;br /&gt;
passtext = Optionally, a text that is shown to players if the vote passes.&lt;br /&gt;
&lt;br /&gt;
levels   = Optionally, admins can define the vote to be available to only specific levels. Same format that is used with the custom commands.&lt;br /&gt;
&lt;br /&gt;
== userdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where the silEnT stores information of the players. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== userxdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where the silEnT stores information of the players which is not needed for the most players. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== useradb.db ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this file holds the optional aliases database. To enable the database, g_dbMaxAliases cvar must be set to a positive integer. The aliases database can be disabled by setting g_dbMaxAliases to 0 value at any time and then re-enable the database by setting the value back to a positive integer without any effect to the file. However, if the g_dbMaxAliases cvar is set to a smaller value then it was before, the aliases that exceed the threshold will be lost unrecoverably.&lt;br /&gt;
&lt;br /&gt;
This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. The error messages in the log are usually very descriptive about the erros.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Limitations =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of levels:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of shrubbot level name:&#039;&#039;&#039; 	35 (includes color codes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of players in the database:&#039;&#039;&#039; 	Unlimited&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of player bans:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of subnet bans:&#039;&#039;&#039; 128 (512 since 0.9.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of ban reason:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of admin-defined commands:&#039;&#039;&#039; 	63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command name length:&#039;&#039;&#039; 	63 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (executable part):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (help string):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of warnings:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
= Shortcuts = &lt;br /&gt;
&lt;br /&gt;
Server supports the replacement of the following keys in say messages&lt;br /&gt;
&lt;br /&gt;
[a]	last player who gave you ammo&lt;br /&gt;
&lt;br /&gt;
[d]	last player who killed you&lt;br /&gt;
&lt;br /&gt;
[g]	the last 8 characters of your GUID&lt;br /&gt;
&lt;br /&gt;
[h]	last player who gave you health&lt;br /&gt;
&lt;br /&gt;
[k]	last player you killed&lt;br /&gt;
&lt;br /&gt;
[l]	your location (letter,number)&lt;br /&gt;
&lt;br /&gt;
[n]	your name&lt;br /&gt;
&lt;br /&gt;
[r]	last player who revived you&lt;br /&gt;
&lt;br /&gt;
[p]	last player you looked at&lt;br /&gt;
&lt;br /&gt;
[s]	health remaining&lt;br /&gt;
&lt;br /&gt;
[w]	name of current weapon&lt;br /&gt;
&lt;br /&gt;
[t]	ammo for current weapon&lt;br /&gt;
&lt;br /&gt;
= Sample shrubbot config =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// silEnT mod - Sample Shrubbot.cfg file&lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 0&lt;br /&gt;
name	 = Prole&lt;br /&gt;
flags	 = iBaPzI&lt;br /&gt;
greeting = &lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 1&lt;br /&gt;
name	 = Level 1&lt;br /&gt;
flags	 = iBaPzIW1&lt;br /&gt;
greeting = Level 1 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 2&lt;br /&gt;
name	 = Level2&lt;br /&gt;
flags	 = iBaPzIW1mx&lt;br /&gt;
greeting = Level 2 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 3&lt;br /&gt;
name	 = Level 3&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259&lt;br /&gt;
greeting = Level 3 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 4&lt;br /&gt;
name	 = Level 4&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259kbcVNn34678&lt;br /&gt;
greeting = Level 4 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 5&lt;br /&gt;
name	 = Level 5&lt;br /&gt;
flags	 = *&lt;br /&gt;
greeting = Level 5 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1319</id>
		<title>Silent Shrubbot</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1319"/>
		<updated>2015-10-07T10:06:10Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Shrubbot Limitations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What Is Shrubbot=&lt;br /&gt;
Shrubbot is an invention of Ryan Mannion. Shrubbot is an admin system that identifies the admin leveled players from silEnT and PunkBuster GUIDs without the need for passwords. Shrubbot is also very flexible and allows creating many different admin levels with entirely different command sets. silEnT shrubbot is based on the work of the ETPub team. silEnT extends the functionality of the shrubbot where ever it is needed. Including user database that holds all the players that have visited the server. To access this database, new commands have been added to the original shrubbot command set. Some commands have been renamed to ease their use and so that they resemble commands from other ET mods that have advanced admin systems.  &lt;br /&gt;
&lt;br /&gt;
If you want to use shrubbot, the cvar g_dbDirectory must be set. If it is not set, the shrubbot will not be in use. If you want to edit the default levels, you must create or copy existing shrubbot.cfg file to the directory defined by the g_dbDirectory setting. In case shrubbot command like !ban is used against a player and a shrubbot.cfg file does not already exist, a new shrubbot.cfg file is created  to store the needed data. &lt;br /&gt;
&lt;br /&gt;
The created file will also have the default level settings written to it. This file can be freely edited by hand and then, after !readconfig command has been issued, the changes take effect on the server.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Commands =&lt;br /&gt;
&lt;br /&gt;
== !admintest ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s current shrubbot admin level in global chat. When the NAME or SLOT are added and the user has the right shrubbot permission, the level of another player will be shown. However, if the target has incognito shrubbot flag, then 0 level is displayed regardless who does !admintest on him/her.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !admintest [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; a&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !aliases ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s stored aliases. Aliases are printed in the last seen first order.If there are more stored aliases than fit on one page, optional page parameter can be used to access different pages. The number of stored aliases depends of the g_dbMaxAliases cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !alises [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !ban ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off the server and will not let them connect again for SECONDS seconds, or, if a modifier (m, h, d, or w) is used, a given amount of time.  For example:&lt;br /&gt;
&lt;br /&gt;
90 = 90 seconds&lt;br /&gt;
&lt;br /&gt;
15m = 15 minutes&lt;br /&gt;
&lt;br /&gt;
3h = 3 hours&lt;br /&gt;
&lt;br /&gt;
5d = 5 days&lt;br /&gt;
&lt;br /&gt;
1w = 1 week&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !ban (NAME|SLOT) (SECONDS|TIME_WITH_MODIFIER) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !baninfo ==&lt;br /&gt;
&lt;br /&gt;
Shows detailed information of a ban in the ban list. Find the ban number with !showbans command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !baninfo (BAN NUMBER)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
== !burn ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME on fire.  REASON will be center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !burn (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; U&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !cancelvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress fail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !cancelvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; c&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !country ==&lt;br /&gt;
&lt;br /&gt;
Displays the country of the player. This command works only if GeoIP is enabled on server [http://mygamingtalk.com/wiki/index.php/Silent_Mod_Server_Cvar#g_countryFlags g_countryFlags]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !country&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== !crazygravity ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_gravity changes with 30 second interval. If enabled, the crazy gravity is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazygravity (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_speed changes with 30 second interval. If enabled, the crazy speed is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazyspeed (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !dewarn ==&lt;br /&gt;
&lt;br /&gt;
Shows all the warnings of a user. When warning number is used, the warning with that number will be removed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !dewarn (NAME|SLOT) [WARNING#]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !disorient ==&lt;br /&gt;
&lt;br /&gt;
Turns the view upside down for the client in slot number SLOT or with name containing NAME.  If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !disorient (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !finger ==&lt;br /&gt;
&lt;br /&gt;
Display the slot, partial guid, ip and clientversion of a player.&lt;br /&gt;
&lt;br /&gt;
NOTE: This command should be available only to the highest server admins!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !finger (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !freeze ==&lt;br /&gt;
&lt;br /&gt;
Freezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it freezes all players. Frozen player(s) cannot receive damage during this time. If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !freeze [NAME|SLOT] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !gib ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs the player in slot number SLOT or with name containing NAME. If name is -1 or all or if no name is entered, everybody will be gibbed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !gib (NAME|SLOT|-1|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; g&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !giba ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !giba&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !help ==&lt;br /&gt;
&lt;br /&gt;
Lists all the available shrubbot commands. If COMMAND is given, then prints the help of that specific command. !help is always available to all clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !help [COMMAND]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !howfair ==&lt;br /&gt;
&lt;br /&gt;
Prints a simple summary to everyone on the chat of team fairness based on player kill rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !howfair&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !kick ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off of the server. REASON is given to the client as the drop message. The client will be banned for 2 minutes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !kick (NAME|SLOT) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; k&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !levinfo ==&lt;br /&gt;
&lt;br /&gt;
Lists all the details of the specific admin level. The listed information includes The name of the level, the greeting, the greeting sound path and the privilege flags for the level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levinfo (Admin Level)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !levlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all the admin levels loaded from the shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levlist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !list ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of information about the connected players.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* slot number&lt;br /&gt;
&lt;br /&gt;
* team R=axis B=allies S=spectator C=connecting&lt;br /&gt;
&lt;br /&gt;
* first letter of fireteam name&lt;br /&gt;
&lt;br /&gt;
* admin level (and level name)&lt;br /&gt;
&lt;br /&gt;
* last 8 digits of guid&lt;br /&gt;
&lt;br /&gt;
* M if muted&lt;br /&gt;
&lt;br /&gt;
* W if warned&lt;br /&gt;
&lt;br /&gt;
* name&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !listteams ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of statistical information about each team. This lists ends with ratings information based on how likely each team is to win the current map. The team with more points is LESS likely to win, therefore a good way to balance the teams is to join the team with more points, or move people to that team, until the points are about even.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !listteams&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lock ==&lt;br /&gt;
&lt;br /&gt;
Locks the specified team. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lol ==&lt;br /&gt;
&lt;br /&gt;
Makes all players drop grenades.  If NAME or SLOT is provided only that player will drop grenades.  GRENADES is the number of grenades to be dropped (default is 1, maximum is 16).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lol [NAME|SLOT] [GRENADES]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; x&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !mute ==&lt;br /&gt;
&lt;br /&gt;
Mutes a player in a slot number SLOT or with a name containing NAME. TIME and REASON are optional. See !ban for more information on modifiers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !mute (NAME|SLOT) [SECONDS|TIME_WITH_MODIFIER] REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !news ==&lt;br /&gt;
&lt;br /&gt;
Plays the map specific news audio to all players if it is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !news&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; W&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !nextmap ==&lt;br /&gt;
&lt;br /&gt;
Moves to the next map in campaign or in the objective cycle end game intermission is skipped. With mapvoting gametype the game will go to the intermission.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !nextmap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; n&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog&#039;&#039;&#039;&lt;br /&gt;
* 0.4.0 The !nextmap will go to the intermission map voting when the gametype is set to 7 and the g_mapVoteFlags bitmask has flag 16 set.&lt;br /&gt;
* 0.5.1 The g_mapVoteFlags flag 16 was removed and the game will always go to the intermission with map voting game type. If old behaviour is needed, admin can create custom command executing &amp;quot;vstr nextmap&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== !orient ==&lt;br /&gt;
&lt;br /&gt;
Reverses the action of !disorient for the client in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !orient (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !panzerwar ==&lt;br /&gt;
&lt;br /&gt;
Enables panzerwar game mode. All the players will have their main weapon changed to panzerfaust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !panzerwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !passvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !passvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; V&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pause ==&lt;br /&gt;
&lt;br /&gt;
Pauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pip ==&lt;br /&gt;
&lt;br /&gt;
Draws sparks (pixie dust) around the player in slot number SLOT or with name containing NAME. Does it to all players if NAME/SLOT is not providied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pip [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pop ==&lt;br /&gt;
&lt;br /&gt;
Pops the helmet off from a player in a slot number SLOT or with a name containing NAME. If no parameter is provided, it pops the helmets off from all the players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pop [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !putteam ==&lt;br /&gt;
&lt;br /&gt;
Moves a player in a slot number SLOT or with a name containing NAME to the indicated team.&lt;br /&gt;
&lt;br /&gt;
* r - Allies&lt;br /&gt;
&lt;br /&gt;
* b - Axis&lt;br /&gt;
&lt;br /&gt;
* s - Spectators&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !putteam (NAME|SLOT) (r|b|s)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; p&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !readconfig ==&lt;br /&gt;
&lt;br /&gt;
Reads shrubbot.cfg file from the directory set by g_dbDirectory cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readconfig&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; G&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rename ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME to NEWNAME. The name change will not be persistent. The user database will store the renamed name for the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rename (NAME|SLOT) NEWNAME&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; N&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !reset ==&lt;br /&gt;
&lt;br /&gt;
Resets the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !reset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetmyxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player who runs this command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetmyxp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; M&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player in the slot number SLOT or with the name containing NAME.  If reason is provided it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetxp (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !restart ==&lt;br /&gt;
&lt;br /&gt;
Restarts the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !riflewar ==&lt;br /&gt;
&lt;br /&gt;
Enables riflewar game mode. All the players will have their main weapon changed to either K43 or Garand. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !riflewar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rmsubnetban ==&lt;br /&gt;
&lt;br /&gt;
Removes subnet ban. The given subnet ban number can be found using !subnets command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rmsubnetban [ban number]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !setlevel ==&lt;br /&gt;
&lt;br /&gt;
Sets the connected player in the slot number SLOT or with name containing NAME to the level indicated by LEVEL. A player cannot !setlevel another player to a lever higher than him/herself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !setlevel (NAME|SLOT) LEVEL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !showbans ==&lt;br /&gt;
&lt;br /&gt;
Lists up to 30 shrubbot bans currently in effect.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* ban number&lt;br /&gt;
&lt;br /&gt;
* banned player&#039;s name&lt;br /&gt;
&lt;br /&gt;
* date of the ban&lt;br /&gt;
&lt;br /&gt;
* name of the banning admin&lt;br /&gt;
&lt;br /&gt;
* when the ban will expire&lt;br /&gt;
&lt;br /&gt;
* reason for the ban&lt;br /&gt;
&lt;br /&gt;
If SKIP is provided, that number of bans are skipped before printing starts. SKIP can also be negative (e.g. &#039;!showbans -10&#039; would display the last 10 bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !showbans [SKIP]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !shuffle ==&lt;br /&gt;
&lt;br /&gt;
Shuffles teams, but does NOT restart (see !restart).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !shuffle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; S&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !slap ==&lt;br /&gt;
&lt;br /&gt;
Does DAMAGE (default 20) damage to player in slot SLOT or with name containing NAME. If REASON is specified it&#039;s center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !slap (NAME|SLOT) [DAMAGE] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !sniperwar ==&lt;br /&gt;
&lt;br /&gt;
Enables sniperwar game mode. All the players will have their main weapon changed to sniper rifles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !sniperwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spec999 ==&lt;br /&gt;
&lt;br /&gt;
Moves all the players with a ping of 999 to the spectators team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spec999&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; P&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spree ==&lt;br /&gt;
&lt;br /&gt;
Show the players current killing spree count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spree&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spreerecord ==&lt;br /&gt;
&lt;br /&gt;
Displays the map and the overall spreerecord.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spreerecord&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !stats ==&lt;br /&gt;
&lt;br /&gt;
Displays the Thompson, MP40 and PPSh total kills and deaths, kills and deaths during the map and accuracy, headshotratio and headshot distance during the map. Lists all connected players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !stats&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; t&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !subnets ==&lt;br /&gt;
&lt;br /&gt;
This command displays all the issued subnet bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnets (start at)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !subnetban ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can issue subnet ban. Subnet ban is a ban where the connecting player IP is matched against a larger IP range. The command accepts only subnets between range x.* - x.x.x.*. If the admin attempts to issue subnet ban that would ban himself the command refuses to add the subnet. This can be circumvented using rcon commands. If admin wants to add a subnet that would ban himself he must first whitelist himself with !userwl command. If silEnT can confirm the admin can connect the subnet ban is added. The command accepts full IP as it&#039;s parameter in which case the subnet is created to the x.x.x.* address. To remove subnet bans admin can use the !rmsubnetban command. The syntax with this commnd is the same kind with ban and userban commandand reason andtime can be given. The reason should be given so that any player connecting would know the reason for not being able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnetban [subnet] (time) (reason)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Require g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - Octets can be cut from inside with &#039;x&#039;. For example, &amp;quot;!subnetban 12x&amp;quot; will ban all IP addresses matching 12x.xxx.xxx.xxx.&lt;br /&gt;
&lt;br /&gt;
== !swap ==&lt;br /&gt;
&lt;br /&gt;
Swaps the players to the opposite team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !swap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; w&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !time ==&lt;br /&gt;
&lt;br /&gt;
Prints out localtime of the client in the chat. No other client can see this time message. The command doesn&#039;t have a flag but it is available to all clients always.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; No permission required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throw ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throw (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !tspree ==&lt;br /&gt;
&lt;br /&gt;
Show the top n current killing spree (default top 5).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !tspree [amount]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unban ==&lt;br /&gt;
&lt;br /&gt;
Removes the ban that !showbans lists as BAN_NUMBER.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unban BAN_NUMBER&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unfreeze ==&lt;br /&gt;
&lt;br /&gt;
Unfreezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it unfreezes all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unfreeze [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unpause ==&lt;br /&gt;
&lt;br /&gt;
Unpauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unpause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unmute ==&lt;br /&gt;
&lt;br /&gt;
Unmutes the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unmute (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unlock ==&lt;br /&gt;
&lt;br /&gt;
Unlocks the team specified. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unlock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !uptime ==&lt;br /&gt;
&lt;br /&gt;
Show how long the server has been up and running.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !uptime&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; u&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !fling ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !fling (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launch==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launch(NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throwa ==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throwa&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !flinga==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !flinga&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launcha==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launcha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !warn ==&lt;br /&gt;
&lt;br /&gt;
Plays the whistle sound and center-prints WARNING to the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !warn (NAME|SLOT) [WARNING]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
= User Database &amp;amp; Commands =&lt;br /&gt;
&lt;br /&gt;
User database is intended to store information of all the players that connect to the server. To enable user database g_dbDirectory must be set. The database stores information to identify different players and also XP data, rating data, overall stats data and shrubbot admin data. PunkBuster GUIDs are used to identify single players. If a player joining the server doesn&#039;t have a PB GUID, data about that player can not be saved. However, the user database can still be used to store data of those players who have enabled punkbuster on the client side.&lt;br /&gt;
&lt;br /&gt;
Shrubbot includes functionality for server admins to handle database userdata. All commands that handle users in the database will take the last 8 characters of the player PunkBuster GUID to identify the player to edit. This is not an unique identification but because EvenBalance has seen this to have enough uniqueness, it is good for the use of the database commands. Internally, the full GUID is used to identify the players.&lt;br /&gt;
&lt;br /&gt;
== !aliasesdel ==&lt;br /&gt;
&lt;br /&gt;
Command removes all the aliases from the player identified by the 8 character silEnT ID.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliasesdel [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !aliassearch ==&lt;br /&gt;
&lt;br /&gt;
This command searches the whole aliases database for the pattern in the names. Note, this command is the most resource intensive shrubbot command of all commands, and it is not recommended to be used without a reason. How fast it performs in practice depends of the aliases database size.&lt;br /&gt;
&lt;br /&gt;
For each player the following information is shown:&lt;br /&gt;
&lt;br /&gt;
:* identity information (silEnT ID)&lt;br /&gt;
&lt;br /&gt;
:* each used alias that fits the search pattern&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was first seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was last seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias the total playtime with it&lt;br /&gt;
&lt;br /&gt;
To see all the aliases of the found player, you can use &amp;quot;!userinfo aliases&amp;quot; command. In the case of all the data not fitting in one page, you can give an optional start parameter. The start parameter corresponds to the numbers shown in the first column of the results. So that each player has its own number and under that number, all the matching aliases from that player are printed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliassearch [name] [start]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !confirm ==&lt;br /&gt;
&lt;br /&gt;
Confirms the player identity with a protected admin level. As a result, the confirmed player and the server will transfer authentication information allowing the player to use admin commands from thereafter. Unconfirmed players are players with admin level that is protected but the server can not ensure the identity. This usually happens when players admin level changes with offlinecommands or the protected levels are extended. This command does not give the player admin levels, it only confirms the identity of a player whos admin level is already set. Also, if the player loses his admin level identification, this command can not be used to reinstate it.&lt;br /&gt;
&lt;br /&gt;
This command is safe to be given even to the lower levels of admins.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !confirm [SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== !userlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all users in the database. If PAGE is given, the list starts from that page. If PAGE is not given the first page of the database is printed. The command prints all users, including clients that have connected during the level time and are not yet in the database. The connected clients are always printed first and then the rest of the userbase.&lt;br /&gt;
&lt;br /&gt;
The printed rows have the following columns:&lt;br /&gt;
:*&#039;#&#039; ; This is the serial number of the user in the printout. The number doesn&#039;t correspond to anything in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;silEnT ID&#039; ; This is the 8 character silEnT GUID of the player. This is used to identify different players in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;PBGUID&#039; ; This is the 8 character PB GUID of the user. This is used to identify different users in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Last Seen&#039; ;	This tells how long time ago the user was last seen on the server. For connected clients, this will print &amp;quot;connected&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:*&#039;IP&#039; ; This tells the last IP address user has had on the server.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Ban&#039; ; This is the ban number if the player is banned from the server. If the player is whitelisted from IP bans, this column reads white capital W.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Name&#039; ; This tells the last name with user has been saved on the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With userlist command an admin can list all the users saved in the database and those that are connected page by page. Optional page number can be given to the command to tell which page is to be displayed about the users. One page can have up to 20 players printed. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userlist [PAGE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.4.0 - New column &#039;Ban&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - New column &#039;silEnT ID&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
== !userinfo ==&lt;br /&gt;
&lt;br /&gt;
Displays all information that is stored about the user in the database.&lt;br /&gt;
&lt;br /&gt;
This information includes:&lt;br /&gt;
&lt;br /&gt;
:*identity information (name, IP, 8 character PunkBuster GUID, silEnT ID, Client Identification)&lt;br /&gt;
&lt;br /&gt;
:*admin level&lt;br /&gt;
&lt;br /&gt;
:*personal greeting&lt;br /&gt;
&lt;br /&gt;
:*personal greeting sound&lt;br /&gt;
&lt;br /&gt;
:*personal shrubbot flags&lt;br /&gt;
&lt;br /&gt;
:*saved XP per skill&lt;br /&gt;
&lt;br /&gt;
:*rating values&lt;br /&gt;
&lt;br /&gt;
:*total kills and deaths with SMG weapons&lt;br /&gt;
&lt;br /&gt;
:*the ban number of the player or whitelisting&lt;br /&gt;
&lt;br /&gt;
:*list of stored aliases if the aliases database is enabled on the server&lt;br /&gt;
&lt;br /&gt;
Command can optionally print player&#039;s stored aliases if the optional aliases parameter is given and the aliases database is enabled by setting g_dbMaxAliases to a positive integer. If printed aliases don&#039;t fit in one page, optional page parameter can be used to access different pages. &lt;br /&gt;
&lt;br /&gt;
Command requires the last 8 characters of the player silEnT GUID. This GUID can be found with !userlist or !usersearch commands. This command works for both online and offline players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userinfo [silEnT ID] [aliases [page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:0.4.0 - Information of possible ban and whitelisting is added.&lt;br /&gt;
&lt;br /&gt;
:0.5.0 - silEnT ID is added.&lt;br /&gt;
&lt;br /&gt;
:0.6.0 - Aliases option is added.&lt;br /&gt;
&lt;br /&gt;
== !useredit ==&lt;br /&gt;
&lt;br /&gt;
Command is used to edit explicit userdata in the database. The command format is:&lt;br /&gt;
&lt;br /&gt;
!useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
The command parameters in detail:&lt;br /&gt;
&lt;br /&gt;
:*silEnT ID - This is the last 8 characters of the silEnT GUID of the player. This is needed to identify the player to edit.&lt;br /&gt;
&lt;br /&gt;
:*add - If the command is given this parameter, the value(s) in the [new value] field will be added to the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*remove - If the command is given this parameter, the value(s) in the [new value] field will be removed from the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*level	- If the command is given this parameter, the value in the [new value] field will be set as the players new level. The level may not be higher then the level of the player executing the command.&lt;br /&gt;
&lt;br /&gt;
:*greeting - If the command is given this parameter, the value in the [new value] field will be the players new personal greeting. If the [new value] field is empty, the personal greeting is cleared.&lt;br /&gt;
&lt;br /&gt;
:*sound	- If the command is given this parameter, the value in the [new value] field will be the file path to the players new personal greeting sound. If the [new value] field is empty, the personal greeting sound is cleared.&lt;br /&gt;
&lt;br /&gt;
:*new value - This field is used to give values to the command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the optional new value field is not set with greeting or sound parameter, the value will be set to empty and level values will be used again with these players.&lt;br /&gt;
&lt;br /&gt;
This command works with online and offline players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !usereditpb.&lt;br /&gt;
&lt;br /&gt;
== !givexp==&lt;br /&gt;
&lt;br /&gt;
Command gives the online or offline player identified by PBGUID a defined amount of XP points to the selected skill. The possible skills are:&lt;br /&gt;
&lt;br /&gt;
sold	Soldier or Heavy Weapons&lt;br /&gt;
&lt;br /&gt;
med	Medics or First Aid&lt;br /&gt;
&lt;br /&gt;
eng	 Engineering or Explosives and Construction&lt;br /&gt;
&lt;br /&gt;
fops	Field Ops or Signals&lt;br /&gt;
&lt;br /&gt;
cov	Covert Ops or Military Intelligence and Scoped Weapons&lt;br /&gt;
&lt;br /&gt;
light	Light Weapons&lt;br /&gt;
&lt;br /&gt;
battle	Battle Sense&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !givexp [silEnT ID] [sold|med|eng|fops|cov|light|battle] [amount to add]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !givexppb.&lt;br /&gt;
&lt;br /&gt;
== !userban ==&lt;br /&gt;
&lt;br /&gt;
Command bans user indentified by the 8 character silEnT GUID from the server. The data required for ban is taken from the database and the banned user does not need to be online when the command is given. Bot&#039;s cannot be banned with this command. Note that the bans are written in the human readable config file and you can still write the bans by hand if desired. Also, removing of the bans can be done by hand if desired. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userban [silEnT ID] [time] [reason]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userbanpb.&lt;br /&gt;
&lt;br /&gt;
== !userwl ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can whitelist or remove whitelisting from any player. Whitelisting means that the player IP is not checked against any IP bans. Including subnet bans and individual bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userwl [silEnT GUID] [add|remove]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !userdelete ==&lt;br /&gt;
&lt;br /&gt;
Command removes the user identified by the 8 character silEnT GUID from the database. The actual actions are taken at the level end if needed. However, once the !userdelete command has been issued to the user, the information of the user is no longer available and after the shutdown game, it is permanently lost.&lt;br /&gt;
&lt;br /&gt;
If the removed player is connected to the server while removing, a new entry is written to that player. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userdelete [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userdeletepb.&lt;br /&gt;
&lt;br /&gt;
== !usersearch ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can search the database for players with specific parameters. Arguments to the command can be pattern in the name, user admin system level and the beginning of the IP address. Additional page number can be given when the amount of found results exceed what can be shown in one page. All the arguments can be given in one command in any order. Any one of the arguments can be omitted, but each time when command is given at least one argument on top of the optional page number must be given. This command searches stored information only from the database. Connected players are not included unless they are already stored into the database.&lt;br /&gt;
&lt;br /&gt;
This command can be performance intensive and it is not recommended to use it only for maintenance operations. The command will internally always try to optimise itself. If the command is given repeatedly with same arguments but only changing the page number, new searches are not performed but only different pages of the already found results are displayed. The optimisations include that the silEnT will try to use the already found results as the basis for the new search (e.g. &amp;quot;!usersearch name gao&amp;quot; followed by &amp;quot;!usersearch name gaoe&amp;quot; will first search the whole db to find all users with the pattern gao in their names and the follow up search will refine the already found results for gaoe). The maximum amount of results one search can return is 256 users. Users are displayed in the console in pages with 20 users on each page. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !usersearch [name (name)]|&amp;amp;[level (level)]|&amp;amp;[IP (IP)] [page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !updatepbguid ==&lt;br /&gt;
&lt;br /&gt;
Updates the PB GUID that is stored in the database to the one which the player is currently using. With the exception that empty, invalid or dublicated PB GUIDs are not saved to the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !updatepbguid [Name|Slot]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !readadmins ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can read admin definitions from a specific admins.cfg file. The file must be placed in the directory pointed by g_dbDirectory server cvar. The file may have only admin definition blocks.&lt;br /&gt;
Admin definitions use always the following syntax. The syntax is exactly the same used by the ETPub.&lt;br /&gt;
&lt;br /&gt;
[admin]&lt;br /&gt;
&lt;br /&gt;
name     = name of the admin (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid    = full 32 character silEnT GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
guid     = full 32 character PB GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
level    = level number&amp;lt;br/&amp;gt;&lt;br /&gt;
flags    = personal admin flags (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting = personal greeting (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound = path to personal greeting sound (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the database doesn&#039;t yet have the player, it will be added there. Those players will have the last seen field reading NEVER with !userlist and !usersearch command outputs. If the player already exists in the database, the admin values will be overwritten with the ones in read from the admins.cfg file. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readadmins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; )	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* Starting from silEnT 0.5.0, the field sguid was added to the admin blocks. This allows adding admins using the silEnT GUIDs to identify them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example::&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name = ETPlayer&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 12345678912345678912345678912345 &amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 5&amp;lt;br/&amp;gt;&lt;br /&gt;
flags =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name =&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 12345678912345678912345678912345&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 3&amp;lt;br/&amp;gt;&lt;br /&gt;
flags = AbC&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== !resetpls ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can reset all stored statistics from an online or an offline player. The stored statistics include total SMG kills and deaths, the player K/D rating and PRW rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetpls [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; (	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - the command was changed to use silEnT ID instead of the last 8 characters of the PB GUID. There is no backward compatible command for PB GUIDs.&lt;br /&gt;
&lt;br /&gt;
= List of Permission Flags =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to privileges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:1 - Cannot be vote kicked, vote muted, or complained against.&lt;br /&gt;
:2 - Cannot be censored.&lt;br /&gt;
:3 - Can run shrubbot commands silently by adding &#039;/&#039; character in front of the command.&lt;br /&gt;
:4 - Can see Axis/Allies team chats as a spectator.&lt;br /&gt;
:5 - Can switch teams any time, regardless of balance.&lt;br /&gt;
:6 - Does not need to specify a reason for !mute, !kick or !ban.&lt;br /&gt;
:7 - Can call a vote at any time (regardless of disabled voting or voting limitations).&lt;br /&gt;
:8 - Does not need to specify a duration for a ban (defaults to PERMANENT).&lt;br /&gt;
:9 - Can do shrubbot commands via team and fireteam chats.&lt;br /&gt;
:0 - Is immune to g_inactivity and g_spectatorInactivity settings.&lt;br /&gt;
:! - Is immune to all shrubbot commands (useful for server admins). Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:@ - &amp;quot;incognito&amp;quot; flag shows the admin as level 0 with no a.k.a info in the output of !listplayers. Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:$ - Can do !admintest on other players.&lt;br /&gt;
:~ - Can read and write the adminchat with the /ma command. All referees and all other players with the ~ flag will be able to read this chat.&lt;br /&gt;
:&amp;amp; - Can rename himself regardless of g_maxNameChanges limit.&lt;br /&gt;
:? - Can see all private messages while being in spectators. g_tyranny must be set for this flag to take effect.&lt;br /&gt;
:/ - Cannot send private messages. Otherwise normal privileges.&lt;br /&gt;
: # - Cannot call votes.&lt;br /&gt;
: : - Can confirm admin identity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to commands&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:A - !slap&lt;br /&gt;
:a - !admintest&lt;br /&gt;
:B - !showbans, !subnets&lt;br /&gt;
:b - !ban, !unban&lt;br /&gt;
:C - !crazygravity, !crazyspeed&lt;br /&gt;
:c - !cancelvote&lt;br /&gt;
:d - !disorient, !orient&lt;br /&gt;
:E - !spree, !spreerecord, !tspree&lt;br /&gt;
:e - !baninfo, !finger, !aliases&lt;br /&gt;
:F - !freeze, !unfreeze&lt;br /&gt;
:G - !readconfig&lt;br /&gt;
:g - !gib&lt;br /&gt;
:I - !howfair, !listteams&lt;br /&gt;
:i - !list&lt;br /&gt;
:K - !lock, !unlock&lt;br /&gt;
:k - !kick&lt;br /&gt;
:L - !flinga, !launcha, !throwa&lt;br /&gt;
:l - !fling, !launch, !throw&lt;br /&gt;
:M - !resetmyxp&lt;br /&gt;
:m - !mute, !unmute&lt;br /&gt;
:N - !rename&lt;br /&gt;
:n - !nextmap&lt;br /&gt;
:P - !spec999&lt;br /&gt;
:p - !putteam&lt;br /&gt;
:R - !warn, !dewarn&lt;br /&gt;
:r - !reset, !restart&lt;br /&gt;
:S - !shuffle&lt;br /&gt;
:s - !setlevel, !levlist, !levinfo&lt;br /&gt;
:t - !stats&lt;br /&gt;
:U - !burn&lt;br /&gt;
:u - !uptime&lt;br /&gt;
:Q - !giba&lt;br /&gt;
:q - !panzerwar, !riflewar, !sniperwar&lt;br /&gt;
:V - !passvote&lt;br /&gt;
:W - !news&lt;br /&gt;
:w - !swap&lt;br /&gt;
:X - !resetxp&lt;br /&gt;
:x - !lol&lt;br /&gt;
:Z - !pause, !unpause&lt;br /&gt;
:z - !pip, !pop&lt;br /&gt;
:] - !userlist, !userinfo, !userban, !usersearch, !aliassearch&lt;br /&gt;
:[ - !useredit, !givexp, !userdelete, !aliasesdel&lt;br /&gt;
:) - !readadmins&lt;br /&gt;
:( - !resetpls&lt;br /&gt;
:. - !userwl, !rmsubnetban, !subnetban&lt;br /&gt;
:, - !updatepbguid&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Files =&lt;br /&gt;
&lt;br /&gt;
To use shrubbot the g_dbDirectory must be set. All the shrubbot files are placed into that directory.&lt;br /&gt;
&lt;br /&gt;
== shrubbot.cfg ==&lt;br /&gt;
&lt;br /&gt;
Shrubbot.cfg is the file that holds all the level definitions, custom commands, bans, warns and subnetbans for the server shrubbot. These configuration settings are hand editable. If the shrubbot.cfg file does not exists when !ban or!setlevel is used, a new one with default settings is created. The settings in the shrubbot.cfg are divided into following data blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[level]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
level    = The level number.&lt;br /&gt;
&lt;br /&gt;
name     = The nameof the level used in e.g. !list command.&lt;br /&gt;
&lt;br /&gt;
flags    = The permission flags for the level.&lt;br /&gt;
&lt;br /&gt;
greeting = The greetingtext that is displayed to every player joining the server with this level.&lt;br /&gt;
&lt;br /&gt;
greeting_sound = The greeting sound played for every playerjoining the server with this level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[command]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
command  = The name of the command.&lt;br /&gt;
&lt;br /&gt;
exec     = The executed command. These must be commands available to /rcon and these will be executed with rcon privileges.&lt;br /&gt;
&lt;br /&gt;
desc     = The help description of the cmmand.&lt;br /&gt;
&lt;br /&gt;
syntax   = List of parameters if the command uses them. This is used with !help and it is optional.&lt;br /&gt;
&lt;br /&gt;
levels   = Space separated list of levels this command is allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The exec field in the command block can use all the shortcuts that silEnT support. The shortcut is substituted as the command would have been a say from the player who issued the command. In addition to normal shortcuts, it is possible to use [i] which is replaced with the client number of the player who did the command.&lt;br /&gt;
* The exec field in the command block can additionally use parameter placeholders. These are [1] - [9] where the number is the n:th parameter given to the custom command. When these are used, the server will substitute the placeholder with the n:th parameter given to the command.&lt;br /&gt;
* Starting from silEnT 0.2.1, it is possible to add &#039;?&#039; to the parameter placeholders. This will make the server substitute the given string to a player name if only one player matches the string. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [command]&lt;br /&gt;
    command  = crybaby&lt;br /&gt;
    exec     = playsound path/to/sound.wav; chat ^7[1?]^7 is crying like a little baby!&lt;br /&gt;
    desc     = Make someone cry like a baby&lt;br /&gt;
    syntax   = [name]&lt;br /&gt;
    levels   = 0 1 2 3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[ban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the banned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The PunkBuster GUID of the banned player.&lt;br /&gt;
&lt;br /&gt;
sguid    = The silEnT GUID if the banned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP address of the banned player.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the ban was issued.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who banned the player.&lt;br /&gt;
&lt;br /&gt;
ident    = The silEnT ident if available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[subnetban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
subnet   = The subnet of the ban.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the subnet ban was created.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who created the ban.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[warning]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the warned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The silEnT GUID of the warned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP addressof the warned player.&lt;br /&gt;
&lt;br /&gt;
warning  = The reason of the warning.&lt;br /&gt;
&lt;br /&gt;
made     = The time when the warning was made.&lt;br /&gt;
&lt;br /&gt;
warner   = The name of the player who warned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[customvote]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The of the vote shown with the /callvote command. Maximum length 15 characters.&lt;br /&gt;
&lt;br /&gt;
exec     = Command string to execute if the vote passes. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
description = Description of the vote shown with the /callvote command. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
votetext = The text that is show for voters. Maximum length 255 characters.&lt;br /&gt;
&lt;br /&gt;
passtext = Optionally, a text that is shown to players if the vote passes.&lt;br /&gt;
&lt;br /&gt;
levels   = Optionally, admins can define the vote to be available to only specific levels. Same format that is used with the custom commands.&lt;br /&gt;
&lt;br /&gt;
== userdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where the silEnT stores information of the players. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== userxdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where the silEnT stores information of the players which is not needed for the most players. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== useradb.db ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this file holds the optional aliases database. To enable the database, g_dbMaxAliases cvar must be set to a positive integer. The aliases database can be disabled by setting g_dbMaxAliases to 0 value at any time and then re-enable the database by setting the value back to a positive integer without any effect to the file. However, if the g_dbMaxAliases cvar is set to a smaller value then it was before, the aliases that exceed the threshold will be lost unrecoverably.&lt;br /&gt;
&lt;br /&gt;
This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. The error messages in the log are usually very descriptive about the erros.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Limitations =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of levels:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of shrubbot level name:&#039;&#039;&#039; 	35 (includes color codes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of players in the database:&#039;&#039;&#039; 	Unlimited&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of player bans:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of subnet bans:&#039;&#039;&#039; 128 (512 since 0.9.0)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of ban reason:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of admin-defined commands:&#039;&#039;&#039; 	63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command name length:&#039;&#039;&#039; 	63 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (executable part):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (help string):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of warnings:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
= Shortcuts = &lt;br /&gt;
&lt;br /&gt;
Server supports the replacement of the following keys in say messages&lt;br /&gt;
&lt;br /&gt;
[a]	last player who gave you ammo&lt;br /&gt;
&lt;br /&gt;
[d]	last player who killed you&lt;br /&gt;
&lt;br /&gt;
[g]	the last 8 characters of your GUID&lt;br /&gt;
&lt;br /&gt;
[h]	last player who gave you health&lt;br /&gt;
&lt;br /&gt;
[k]	last player you killed&lt;br /&gt;
&lt;br /&gt;
[l]	your location (letter,number)&lt;br /&gt;
&lt;br /&gt;
[n]	your name&lt;br /&gt;
&lt;br /&gt;
[r]	last player who revived you&lt;br /&gt;
&lt;br /&gt;
[p]	last player you looked at&lt;br /&gt;
&lt;br /&gt;
[s]	health remaining&lt;br /&gt;
&lt;br /&gt;
[w]	name of current weapon&lt;br /&gt;
&lt;br /&gt;
[t]	ammo for current weapon&lt;br /&gt;
&lt;br /&gt;
= Sample shrubbot config =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// silEnT mod - Sample Shrubbot.cfg file&lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 0&lt;br /&gt;
name	 = Prole&lt;br /&gt;
flags	 = iBaPzI&lt;br /&gt;
greeting = &lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 1&lt;br /&gt;
name	 = Level 1&lt;br /&gt;
flags	 = iBaPzIW1&lt;br /&gt;
greeting = Level 1 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 2&lt;br /&gt;
name	 = Level2&lt;br /&gt;
flags	 = iBaPzIW1mx&lt;br /&gt;
greeting = Level 2 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 3&lt;br /&gt;
name	 = Level 3&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259&lt;br /&gt;
greeting = Level 3 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 4&lt;br /&gt;
name	 = Level 4&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259kbcVNn34678&lt;br /&gt;
greeting = Level 4 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 5&lt;br /&gt;
name	 = Level 5&lt;br /&gt;
flags	 = *&lt;br /&gt;
greeting = Level 5 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1318</id>
		<title>Silent Mod Server Cvar</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1318"/>
		<updated>2015-09-18T12:02:27Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* g_logOptions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= silEnT Mod Anti Cheat =&lt;br /&gt;
&lt;br /&gt;
== g_silentac ==&lt;br /&gt;
&lt;br /&gt;
;Description&lt;br /&gt;
Enables actions based on silEnT AntiCheat. The g_cheatLog will always have one line telling if a player is found with cheats. The cheat detection&#039;s are based mostly on heuristically detecting hacking techniques. If you suspect a false positive, please supply the silEnT team a method to reproduce it. Do note that this feature has been in extensive testing well before the 0.8.0 version. When silEnT AC is set to autoban busted players, sv_sac cvar auto changes it value to 1. sv_sac is read only variable. This cvar can be used by external server trackers to enable/disable server anti cheat status on their lists. We recommend setting the value to 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Show player AntiCheat status in the !finger output.&lt;br /&gt;
&lt;br /&gt;
2 Automatically ban players for 365 days with cheats.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
== g_clientBinaries ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
silEnT mod can be configured to not allow players with unknown client binaries to play on the server. This cvar controls the server behaviour when the client binary is not one of the recognized ones.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;List of recognized binaries:&#039;&#039;&#039;&lt;br /&gt;
*Official client binaries&lt;br /&gt;
*Binary edited executables from etmaster.net&lt;br /&gt;
*Equivalent to etmaster.net binary edited executables from BigBear&lt;br /&gt;
*ETPatchSelector binaries&lt;br /&gt;
*Official ET Legacy b4&lt;br /&gt;
*Official ET Legacy b5&lt;br /&gt;
*Many ET Legacy binaries including RC1 versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow players with unknown client executables.&amp;lt;br&amp;gt;&lt;br /&gt;
2	Log unknown executables to the g_cheatLog. Note, if the server does not allow unknown client binaries the log message will be different for message.&amp;lt;br&amp;gt;&lt;br /&gt;
4	Report unknown executables to admin chat. Note, if the server does not allow unknown client binaries the players will not be reported to admin chat.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - If the flag 4 is set, known cheat binaries are clearly reported to the admin chat.&lt;br /&gt;
&lt;br /&gt;
== g_identOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from version 0.3.0, the silEnT mod can be configured to enforce bans using hardware based identification. This is not any fool proof system but it is made to be an addition to the already existing ban methods. The hardware identification cannot be seen in human readable form by admins while on the server. The data that is sent to the server can be seen in the client by writing /cg_ident to the console. The result is a hexadecimal string that changes its value between maps. The format and data used to create the client identification may change between different versions of the silEnT mod. The server can be configured with the g_identOptions server cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Kick clients that are spoofing the client identification to enter the server&lt;br /&gt;
&lt;br /&gt;
2	Kick clients that are not sending the identification to the server&lt;br /&gt;
&lt;br /&gt;
4	Enforce bans using the identification&lt;br /&gt;
&lt;br /&gt;
8	Report all actions taken based on client identification to the adminchat&lt;br /&gt;
&lt;br /&gt;
16	If a player is caught of circumventing a ban, a new ban is created with for it. The ban reason will have additional (Automated copy of a ban for xxxxxxxx) where xxxxxxxx is replaced with the 8 character PB GUID of the old ban.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_ssDirectory ==&lt;br /&gt;
&lt;br /&gt;
;Description&lt;br /&gt;
Officially since 0.9.0. This cvar is required for the Screenshot System (SS) to work correctly. It defines where to store the screenshots. Create &amp;quot;screenshot&amp;quot; folder under silent mod folder and add set g_ssDirectory &amp;quot;screenshot&amp;quot; in your server config. All of screenshots of players will go under this folder.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [string]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.9.0&lt;br /&gt;
&lt;br /&gt;
= Announcements and Messages =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_privateMessages ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If set to 1, players can send private messages to one another with the /m playername/slot command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disable Private Messages&lt;br /&gt;
&lt;br /&gt;
1 Enable Private messages&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Clients can reject private message from other individual clients with the /ignore client command. Also, private messages can be disabled from individuals/levels using shrubbot flag &#039;/&#039;.&lt;br /&gt;
&lt;br /&gt;
== g_spreeOptions  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Options to control the display of killingsprees. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: bitmask &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Enable killingsprees &lt;br /&gt;
&lt;br /&gt;
2 Enable killingspree ends &lt;br /&gt;
&lt;br /&gt;
4 Enable multikills &lt;br /&gt;
&lt;br /&gt;
8 When set, a top 3 current killing sprees message will be printed every minute, similar to binoc masters, and a map&#039;s longest killing spree will be printed every two minutes &lt;br /&gt;
&lt;br /&gt;
16 At the beginning of the intermission the highest spree and the 3 highest sprees which are still active will be shown &lt;br /&gt;
&lt;br /&gt;
32 /kill will end a spree &lt;br /&gt;
&lt;br /&gt;
64 Teamswitching will end a spree &lt;br /&gt;
&lt;br /&gt;
128 Multikill messages will be delayed g_multikillTime milliseconds, to prevent the doublekill -&amp;amp;gt; multikill -&amp;amp;gt; megakill -&amp;amp;gt; etc. flooding &lt;br /&gt;
&lt;br /&gt;
256 Killing bots doesn&#039;t count for multikills or killingsprees (Note: they DO count for ending kill/deathsprees) &lt;br /&gt;
&lt;br /&gt;
512 Display the map and overall spree record when entering intmission &lt;br /&gt;
&lt;br /&gt;
1024 Summary: don&#039;t enable this flag if you don&#039;t have enabled g_spreeOptions flag 512 OR g_XPSave flag 16 or Shrubbot flag t &lt;br /&gt;
&lt;br /&gt;
Spree records are automatically saved into XPSave file when a map ends. By enabling this flag, you also store the spreerecord at the points where g_XPSave flag 16 would store XP. When you don&#039;t have set XPSave flag 16 and g_spreeOptions flag 512 and not allow users to use&amp;amp;nbsp;!spreerecord you should NOT set this flag as it takes some extra resources. When XPSave flag 16 is set this doesn&#039;t matter (it actually takes much less resources then). When only g_spreeOptions flag 512 or shrubbot flag t is set it won&#039;t do much harm anyway (your server won&#039;t explode) &lt;br /&gt;
&lt;br /&gt;
2048 Enable revivesprees&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_multikillTime  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The time (in milliseconds) in which two kills should be made in order to count them as multikills.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_obituary  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This cvar controls will the server send obituary events to the clients. If this is set to 0, no obituary events will be sent. If set to any nonzero value, obituary events will be sent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dropMsg  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Message to add to the drop screen when a client is kicked or banned.&amp;amp;nbsp;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;&amp;amp;nbsp;String&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot; &amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; g_dropMsg&amp;amp;nbsp;&amp;quot;Please protest ban on forums&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_landmineNotifyType  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Decide which landmine reveal notifications server should send.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Server can send two types of landmines reveal notification. Standard one, generated (sent) for each landmine revealed and summary one,&amp;amp;nbsp;which is sent after player spotting landmines stops using binoculars.&amp;amp;nbsp;It&#039;s generated after each binculars zoom. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
0 Only standard notfications (for each landmine revealed).&lt;br /&gt;
&lt;br /&gt;
1 Only single summary notifications for one binocs zoom. New type of notification. For example: during one binocs zoom, 3 mines were revealed, but only 1 summary notification is sent. It contains information: 3 mines spotted by &amp;quot;player name&amp;quot; and last one was in location &amp;quot;some location&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t send any landmine notifications.&lt;br /&gt;
&lt;br /&gt;
3 Send all notifications. For example: for 3 spotted landmines send 4 notifications (3 for each landmine + 1 summary notification). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_banners  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should be set to the name of your banners.cfg file if you want to enable banners. See [[Silent Banners]] for more information about this file.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&amp;lt;br&amp;gt;set g_banners &amp;quot;banners.cfg&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== g_recognition ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables additional recognition notifications for players doing objective, e.g. for planting dynamite, disarming it, destroying objective.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Additional recognition notifications disabled.&lt;br /&gt;
&lt;br /&gt;
1 Additional recognition notifications enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= User Database, Shrubbot and Bans =&lt;br /&gt;
&lt;br /&gt;
== g_dbDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, the server stores various information about server statistics, map information, sprees, users, bans and XP save to the location pointed by this cvar. The directory defined by this cvar is relative to the fs_game directory. Absolute paths can not be used. All the used file names in the g_dbDirectory are predefined, and cannot be changed. For security reasons, this cvar must be set during server initialization. (i.e. It can not be changed while the server is running.) The following files are stored into this directory:&lt;br /&gt;
&lt;br /&gt;
* userdb.db - This is a binary format file that contains all the basic information about shrubbot users and also all saved XP if the server is set to save XP&lt;br /&gt;
* userxdb.db - This is a binary format file that contains information related to players playing on the server&lt;br /&gt;
* useradb.db - This is a binary format file that contains player aliases.&lt;br /&gt;
* serverstat.cfg; This is a human readable file that contain server statistics and map sprees if the server is set to store them&lt;br /&gt;
* shrubbot.cfg - This is a human readable file that contain level configurations, custom commands and bans. This file is auto-created if it does not exist and used functionality requires it, but admins usually to edit this file for the configuration of their server.&lt;br /&gt;
* mapvoteinfo.cfg - This file contains information relating g_gametype 6, which is map voting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the required files will be created automatically to the directory when needed if the files don&#039;t already exist. silEnT mod will not overwrite userdb.db, userxdb.db or useradb.db files if files with those names exist, but the files are not suitable for use. In such case, the server log will have information about the failure to open the file and features requiring the missing files are disabled.&lt;br /&gt;
&lt;br /&gt;
You can freely edit the human readable files by hand as long as their correct format remains. The shrubbot.cfg can be edited even while the server is running as long as the !readconfig shrubbot command is run before the map changes. Otherwise the changes to the file will be lost. If you want to hand edit the contents of the serverstat.cfg or mapvoteinfo.cfg files, the server must be shutdown to not lose the changes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;database&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar from the config file only during the server start, or alternatively from the server start command parameters. It cannot be changed using RCON. If you want to store all the files in the same root directory where all the pk3 files and binaries are, you can set this cvar to value &amp;quot;.&amp;quot;. It will then use the fs_game directory.&lt;br /&gt;
&lt;br /&gt;
== g_dbUserMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that player is saved to the database since the player has last visited on the server.&lt;br /&gt;
&lt;br /&gt;
The database cleaning is done during intermission so this should not cause any performance problems when actions are taken. However, by setting this value to 0 or not setting the value at all, will disable the feature.&lt;br /&gt;
For servers with high database sizes, this can improve performance since users that are not needed will be removed automatically.&lt;br /&gt;
&lt;br /&gt;
You can use a modifiers with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar only from the config file executed before the mod launches the first time or from the command line. It cannot be edited using RCON.&lt;br /&gt;
&lt;br /&gt;
== g_dbMaxAliases ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The silEnT mod can store player aliases in an additional database. To enable this database, set this value to higher then 0. If this value is a positive integer, it defines how many aliases are stored in the database for one player. If the player has more aliases then this value, the oldest aliases are deleted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minumum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar can be set only at startup, before the mod launches. It cannot be changed on a live server using rcon.&lt;br /&gt;
&lt;br /&gt;
== g_minCommandWaitTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Time you have to wait between using 2 shrubbot commands in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tyranny ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls the use of administrator commands that could be used by admins to cheat or abuse players. If it is set to 0 you will not be able to use commands on your server such as !gib, !slap, !burn, etc.&lt;br /&gt;
&lt;br /&gt;
Also, you will not be able to use g_logOptions flag 256 (log private messages) unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
g_tyranny must also be enabled in order to specify a client in using the &#039;playsound&#039; server command.&lt;br /&gt;
&lt;br /&gt;
&#039;g_tyranny&#039; and its value appear in the serverInfo string to serve as a warning for perspective players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you enable this, you MUST do so immediately when the server starts (before the first map is loaded). This means putting &amp;quot;set g_tyranny 1&amp;quot; in the .cfg file that is exec&#039;ed on server start. If you try to change this on a running server, you will get the message &amp;quot;g_tyranny is read only.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_warningOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar changes the behaviour of the shrubbot !warn command. By setting flag 1 or 2 you activate the advanced warning (storage) system&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Link stored warnings to the guid of a player&lt;br /&gt;
&lt;br /&gt;
2	Link stored warnings to the ip of the player&lt;br /&gt;
&lt;br /&gt;
4	Remove the oldest warning when the total maximum ammount of warnings is reached&lt;br /&gt;
&lt;br /&gt;
8	Auto-kick a player for 2 minutes when he has more than g_maxWarnings warnings&lt;br /&gt;
&lt;br /&gt;
16	Allow clients to see their own warnings with the /warnings command&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarnings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The ammount of warnings that can be stored for 1 player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_warningDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in hours that a warning will be stored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 24&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBan ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, anyone kicked for the reasons you specify, will be temporarily banned for g_autoTempBanTime seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Tempban when reaching g_teamDamageRestriction&lt;br /&gt;
&lt;br /&gt;
2	Tempban when someone is kicked by a shrubbot admin (using the !kick command). A normal shrubbot !kick kicks for 120 seconds&lt;br /&gt;
&lt;br /&gt;
4	Tempban when someone is kicked by the advanced warning system. A normal kick by the warning system lasts 120 seconds&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifically in version 0.5.0, this feature is bugged and can cause broken shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBanTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds kicked for when g_autoTempBan is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1800&lt;br /&gt;
&lt;br /&gt;
== g_minConnectLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The minimum shrubbot adminlevel required for players to be able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This only works for positive levels, any value &amp;lt;= 0 will allow everyone to connect. Bots won&#039;t be able to connect either.&lt;br /&gt;
&lt;br /&gt;
== g_greetingPos ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Location where the shrubbot greetings are displayed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3|4]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Chat area&lt;br /&gt;
&lt;br /&gt;
1	Center of screen&lt;br /&gt;
&lt;br /&gt;
2	Left notification area&lt;br /&gt;
&lt;br /&gt;
3	Top of the screen&lt;br /&gt;
&lt;br /&gt;
4	Console only&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adminProtection ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins levels can be protected against spoofing. The protection works by establishing trust between the client and the server. The trust must be confirmed by an online human admin for the new trusted admins to gain access to their assigned level. Specific command !confirm is used for it. Do note that establishing the trust between the server and the player is not the same as assigning admin level. In fact, anyone who is capable of recognizing the real admin can be safely allowed to use the !confirm command. The !setlevel command will automatically establish the trust if the admin level protection is enabled and the level is above or equal to the g_protectMinLevel. The admin protection is designed so that only the important admin levels are protected. This mean that levels above the g_protectMinLevel require established trust between the server and the client. Normal guests do not need this. It is also advisable to not set the g_protectMinLevel too low to avoid server load with these admins.&lt;br /&gt;
&lt;br /&gt;
The trust needs to be established only once. After that, the client and the server can negotiate the confirmation silently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technical Details:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The trust is established using one-way hashes. When the !setlevel or !confirm is used on a player, the server generates 2 unique 32 character long values. Both of these values are stored both in the client (silent.dat) and the server database. Their meanings are server identification and a client key.&lt;br /&gt;
&lt;br /&gt;
Authentication negotiation:&lt;br /&gt;
&lt;br /&gt;
1. When the player next time connects to the server, the server sends one of the stored values as server identification and another, newly generated random 32 character value, to initiate the negotiation.&lt;br /&gt;
&lt;br /&gt;
2. The client will use the server identification value it received from the server to match with the key value associated with the server identification. It will hash the 32 character key value with the supplied random 32 character value and send the result back to the server.&lt;br /&gt;
&lt;br /&gt;
3. The server, knowing both values, the client key and the random character string it sent, can compare the hash against a hash it generates itself with the same values.&lt;br /&gt;
&lt;br /&gt;
4. If the hashes match (one supplied from client and the one it just generated), the client is authenticated to his admin level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Log succesfull authentications to the cheat log&lt;br /&gt;
&lt;br /&gt;
2	Log admin spoofing attempts to the cheat log&lt;br /&gt;
&lt;br /&gt;
4	Report admins waiting for confirmation on their level to the admin chat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_protectMinLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins can be protected against spoofing. The protection works by establishing trust between the client and the server if the admin level is higher then the g_protectMinLevel. Setting this to -1 will disable the freature. Do note that when you enable the feature, noone has yet established trust with the server and the first one to have it, must be confirmed by an rcon command. Either !setlevel if the database still doesn&#039;t have admins or !confirm if the admin has been set in the database already.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_muteRename ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to 1 the muted player won&#039;t be allowed to change his name while he is muted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Disabled. Allow players to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow player to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimium required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
= XP Save =&lt;br /&gt;
&lt;br /&gt;
== g_XPSave ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls XP save behaviours.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Store xp when a client disconnects. This is always required for the XP save to work.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t reset xp to the pre-map start values on a map restart, shuffle, etc.&lt;br /&gt;
&lt;br /&gt;
4 Never reset xp (ever).&lt;br /&gt;
&lt;br /&gt;
8 Force the disconnection of clients with the same GUID as the connecting client. This is useful in saving the stored XP of players with unreliable network connections since they should still get their stored XP even if reconnecting immediately with a new IP address.&lt;br /&gt;
This feature is enabled by default unless you have sv_wwwDlDisconnected enabled. sv_wwwDlDisconnected seems to interfere with this feature, so do not enable this flag if you change pk3&#039;s on your server often because stored XP will be lost over disconnected downloads.&lt;br /&gt;
&lt;br /&gt;
16 Store the XP at restarts, nextmaps, mapvotes, campaignvotes and similar cases.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge_xp ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her xp skills. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;120m&amp;quot; - 120 minutes &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If g_XPSaveMaxAge is less than g_XPSaveMaxAge_xp, g_XPSaveMaxAge will be used.&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her skills/killrating/playerrating/mute status. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier for this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See also g_XPSaveMaxAge_xp &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1w&lt;br /&gt;
&lt;br /&gt;
== g_resetXPMapCount  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How many maps occur before XP is reset. If g_XPSave flag 4 is set, g_resetXPMapCount is ignored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting is only valid when the g_gametype is 6 (see Map Voting)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMinXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The increment of XP during one map that is required for the XP gained during the map to get saved and the time of the latest XP save to get updated. The silEnT mod separates the XP save and the connection times so that players who visit spectators without playing will not be removed by the g_dbUserMaxAge but can still lose their stored XP if they do not play. Admins can adjust the requirement with this value. Using -1 will disable the requirement and XP save will consider every connection valid for the XP save. Using value 0, will consider XP save valid if the player has gained even 1 XP point during the map. Please note that the value is only for one map and using high values may cause some players to not achieve enough XP to get their XP updated. Also note, that this does not prevent SMG weapon statistics or rating values to get updated into the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_maxXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a vicious cvar that will reset a players XP once their overall XP score reaches it.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_maxXPResetWarn ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Displays a message warning players whose XP is close to being reset due to the g_maxXP setting. The warning is displayed every thirty seconds once the warning threshold is passed.&lt;br /&gt;
&lt;br /&gt;
This setting can have an integer value (eg, 950), in which case it means that the player will be warned every thirty seconds once he has more than 950 XP.&lt;br /&gt;
&lt;br /&gt;
This setting can also have percentage value (eg, &amp;quot;90%&amp;quot;), and that will cause the warnings to start when the player reaches 90% of g_maxXP XP.&lt;br /&gt;
&lt;br /&gt;
If you specify a negative value, players will be warned when that offset is hit. For example:&lt;br /&gt;
&lt;br /&gt;
For a value of -75, warnings will to display then players have g_maxXP - 75 XP&lt;br /&gt;
&lt;br /&gt;
For a value of -2%, warnings will display when players have 98% of g_maxXP&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optionally enables the awarding of XP based upon the amount of damage a player has done to the opposing team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disabled: use normal ET XP awarding methods&lt;br /&gt;
&lt;br /&gt;
1 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the skill category of the weapon used. When this mode is enabled, kills (regardless of method) are awarded a fixed value of 1 point of XP.&lt;br /&gt;
&lt;br /&gt;
2 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the Battle Sense category. Normal XP amounts are awarded for kills (typically 3-5 XP).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXPLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting determines the amount of damage that a player must do to earn 1 point of XP. See g_damageXP for additional information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_XPDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a bitmask that controls the XP decay feature.&lt;br /&gt;
&lt;br /&gt;
See also g_XPDecayRate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Enable XP Decay&lt;br /&gt;
&lt;br /&gt;
2	Do not decay a player&#039;s XP when they are disconnected from the server&lt;br /&gt;
&lt;br /&gt;
4	Do not decay a player&#039;s XP for the class they are currently playing as (e.g. Medic).&lt;br /&gt;
&lt;br /&gt;
8	Do not decay a player&#039;s XP while they are spectating&lt;br /&gt;
&lt;br /&gt;
16	Do not decay a player&#039;s XP during warmup/intermission&lt;br /&gt;
&lt;br /&gt;
32	Do not decay a player&#039;s XP when he/she is playing. This means that they are on a Allies or Axis and the game is active.&lt;br /&gt;
&lt;br /&gt;
64	Do not decay a player&#039;s Battle Sense XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
128	Do not decay a player&#039;s Light Weapons XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayRate ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the rate (in skillpoints per second) that XP skill points for each skill will decay when g_XPDecay is enabled.&lt;br /&gt;
&lt;br /&gt;
Setting this to 0.1 would result in a player losing 6 points per minute IN ALL SKILLS, so up to 42XP per minute if the player has skill points for each skill.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;5000/o&amp;quot; - Decay 5000xp per skill per month&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;1000/w&amp;quot; - Decay 1000xp per skill per week&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;500/d&amp;quot; - Decay 500xp per skill per day&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;40/h&amp;quot; - Decay 40xp per skill per hour&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;2/m&amp;quot; - Decay 2xp per skill per minute &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayFloor ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the minimum that any particular skill can be reduced to by g_XPDecay.&lt;br /&gt;
&lt;br /&gt;
For example, setting this to 140.0 will ensure that no player will ever lose rank or skill levels due to g_XPDecay. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flood Protection = &lt;br /&gt;
&lt;br /&gt;
== g_floodprotect  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable/disable silEnT flood protect. Flooding means that a client is sending too many messages to the server (vsays, callvotes, etc...). Enabling g_floodprotect disables the engine&#039;s sv_floodprotect functionality. If you enable g_floodprotect, make sure you set a value for g_floodthreshold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&amp;amp;nbsp;&#039;&#039;&#039;1&lt;br /&gt;
&lt;br /&gt;
== g_floodthreshold  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of messages per second before ignoring the client&#039;s messages. Only in effect when g_floodprotect is turned on.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
== g_floodWait  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of milliseconds between two messages when g_floodprotect is enabled. This is a hard limit so admins aren&#039;t allowed to override it. 1000 milliseconds copies sv_floodprotect behaviour. This CVAR should not have a value below 500 in order to keep a public server playable.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_voiceChatsAllowed  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of voicechats allowed in minute.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Player Statistics, Rating and Team Balance =&lt;br /&gt;
&lt;br /&gt;
== g_stats  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a bitflag cvar used to control the way statistics are handled.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&amp;lt;br&amp;gt;1 When shooting a corpse to gib, do not count it as a hit.&amp;lt;br&amp;gt;2 When shooting a corpse to gib, do not count it as a shot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;amp;nbsp;Set this to 3 to use the behaviour of etmain and shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_playerRating_minplayers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of players that must participate in a map in order for it to count towards each player&#039;s player rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 8&lt;br /&gt;
&lt;br /&gt;
== g_shuffle_rating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the rating system used by shuffle.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 | 4 | 5 ]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player XP&amp;lt;br&amp;gt;2 Use the rate at which players have gained XP since connecting.&amp;lt;br&amp;gt;3 Use the killRating (g_killRating must be nonzero)&amp;lt;br&amp;gt;4 Use the playerRating (g_playerRating must be nonzero)&amp;lt;br&amp;gt;5 Use the playerRating (g_playerRating must be nonzero), but take the map into account and give the teams closest to 50/50&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_killRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to 0, silEnT will track a player&#039;s killing ability using an ELO type statistic similar to chess. Each kill will increase a player&#039;s kill rating based on how hard the kill was. Killing unskilled players will result in very few points whereas an unskilled player killing a skilled player will result in more points.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use kill rating. A dummy flag since any non-zero value for g_killRating will enable it.&amp;lt;br&amp;gt;2 Make kill rating visible. Players can use /killrating and at the end of each map a message will display the top killers for the map and overall.&amp;lt;br&amp;gt;4 Log files will include the GUIDs of the players involved in kills. This makes kill tracking a lot easier.&amp;lt;br&amp;gt;8 Disable kill rating from the score board. This can prevent players from playing for higher kill rating alone. This does not prevent the &amp;quot;killrating&amp;quot; client command enabled with flag 2 from working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_playerRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to non zero positive value, silEnT will track a player&#039;s ability to win against good teams using an ELO type statistic similar to chess. Each win will increase a player&#039;s rating based on how hard the opposing team was. Skilled teams defeating less skilled teams will result in very few points whereas an relatively low- rated team defeating a good team will result in more points. Player rating also takes into account the number of players on each team (less points when a very large defeats a small one) and which side tends to win more often on the current map (e.g. Allies tend to win tc_base).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player rating. A dummy flag since any non-zero value for g_playerRating will enable it.&amp;lt;br&amp;gt;2 Make player rating visible. Players can use /playerrating and at the end of each map a message will display the top player.&amp;lt;br&amp;gt;4 Put player rating on the scoreboard instead of the XP.&amp;lt;br&amp;gt;8 Print out extra info at the end of a round that can be used to further refine the playerrating model.&amp;lt;br&amp;gt;16 The same as flag 8 except a lot more info is output.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamDiff  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If g_teamForceBalance is set, setting g_unevenTeamDiff will notify all players when team numbers are off by g_unevenTeamDiff or more. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamFreq&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;: Set to 0 to disable this feature&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamFreq  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How often the team disparity notification occurs. Only valid when g_unevenTeamDiff is set to a positive value. Value is in seconds.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamDiff&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
= Class and Weapon Restrictions =&lt;br /&gt;
&lt;br /&gt;
== g_medicChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the medic charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 45000&lt;br /&gt;
&lt;br /&gt;
== g_engineerChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the engineer charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== g_LTChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the field ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 40000&lt;br /&gt;
&lt;br /&gt;
== g_soldierChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the soldier charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20000&lt;br /&gt;
&lt;br /&gt;
== g_covertopsChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the covert ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== team_maxPanzers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxPanzers, team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 panzerfaust soldiers, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team with few players (for example, 5) will be able to have 1 panzerfaust soldier. They will be able to have their second panzerfaust soldier when they have 11 players on the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team will not be able to have any panzerfaust soldiers until there are 10 players in the team. They will be able to have their second panzerfaust soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMortars  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 mortar soldiers, regardless of how many players are on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team with few players (for example, 5) will be able to have 1 mortar soldier. They will be able to have their second mortar soldier when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team will not be able to have any mortar soldiers until there are 10 players in the team. They will be able to have their second mortar soldier when there are 20 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Set this to -1 to disable limits&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFlamers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 flamethrower soldiers, regardless of how many players are on the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team with too few players (for example, 5) will be able to have 1 flamethrowe soldier. They will be able to have their second flamethrowe soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team will not be able to have any flamethrower soldiers until there are 10 players in the team. They will be able to have their second flamethrower when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMG42s  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 MG42 soldiers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team with too few players (for example, 5) will be able to have 1 MG42 soldier. They will be able to have their second MG42 soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team will not be able to have any MG42 soldiers until there are 10 players in the team. They will be able to have their second MG42 soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxGrenLaunchers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 grenade launchers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team with too few players (for example, 5) will be able to have 1 grenade launcher. They will be able to have their second grenade launcher when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team will not be able to have any grenade launchers until there are 10 players in the team. They will be able to have their second grenade launcher when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMedics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 medics, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team with too few players (for example, 3) will be able to have 1 medic. They will be able to have their second medic when they have 7 players in the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team will not be able to have medics until there are 7 players in the team. They will be able to have their second medic when there are 14 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxEngineers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 engineers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team with too few players (for example, 3) will be able to have 1 engineer. They will be able to have their second engineer when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team will not be able to have engineers until there are 7 players in the team. They will be able to have their second engineer when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFieldOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 field opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team with too few players (for example, 3) will be able to have 1 field ops. They will be able to have their second field ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team will not be able to have field opses until there are 7 players in the team. They will be able to have their second field ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxCovertOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 covert opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as coert opses, and a team with too few players (for example, 3) will be able to have 1 covert ops. They will be able to have their second covert ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as covert opses, and a team will not be able to have covert opses until there are 7 players in the team. They will be able to have their second covert ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_minAirstrikeTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airstrikes PER TEAM.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_minArtyTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airtillery strikes PER TEAM. Attempts to do airstrike before the timeout will get &amp;quot;Insuffient fire support&amp;quot; message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamLandmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of landmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamTripmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of tripmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_minGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of clients needed to start a match.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The maximum allowed amount of active clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Player Inactivity =&lt;br /&gt;
&lt;br /&gt;
== g_inactivity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity before the player is made a spectator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_spectatorInactivity==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity as spectator before the player is kicked/dropped from server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_inactivityOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional inactivity options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Don&#039;t drop shoutcasters&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t drop spectators when in following mode&lt;br /&gt;
&lt;br /&gt;
4 ETmain inactivity behavior (don&#039;t wait for a full server)&lt;br /&gt;
&lt;br /&gt;
8 Shrubbot flag &#039;0&#039; admins will be moved to spectators due to team inactivity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Gametypes =&lt;br /&gt;
&lt;br /&gt;
== g_gametype	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please see Map Voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [2|3|4|5|6|7]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
2 Objective&lt;br /&gt;
&lt;br /&gt;
3 Stopwatch&lt;br /&gt;
&lt;br /&gt;
4 Campaign&lt;br /&gt;
&lt;br /&gt;
5 Last Man Standing&lt;br /&gt;
&lt;br /&gt;
6 Map Voting&lt;br /&gt;
&lt;br /&gt;
7 Team Death Match&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== Campaign ==&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
&lt;br /&gt;
== Last Man Standing ==&lt;br /&gt;
&lt;br /&gt;
== Map Voting  ==&lt;br /&gt;
&lt;br /&gt;
This gametype allows for the players to decide on the map that is played next. When g_gametype is set to 6 a new screen is introduced during intermission. This screen list, depending on server configuration, a list of up to 32 maps that are loaded on the server, and that all players can vote on. Once intermission ends, the server totals the votes, and plays the next map based upon the vote results &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;;Miscellaneous notes about mapvoting:&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
Total maps allowed is 32. If server admin has more than 32 .bsp files, only the first 32 are used Tie breaker. The default tie-breaker is such that if 2 or more maps are tied with the same number of votes, the map that was played most recently is selected. Bots and connecting players do NOT count for mapvoting, everyone else (including spectators) does. If no maps are voted for, the default &amp;quot;nextmap&amp;quot; cvar is used, so server admins have to specify a default map cycle of sort, usually in the following format: &lt;br /&gt;
&amp;lt;blockquote&amp;gt;set d1 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map oasis&amp;amp;nbsp;; set nextmap vstr d2&amp;quot;&amp;lt;br&amp;gt;set d2 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map battery&amp;amp;nbsp;; set nextmap vstr d3&amp;quot;&amp;lt;br&amp;gt;set d3 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map goldrush&amp;amp;nbsp;; set nextmap vstr d1&amp;quot;&amp;lt;br&amp;gt;vstr d1&amp;lt;br&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
This means that the default map, upon server start, will be oasis. From there, map voting will be used. If at any point, no map is voted for, battery will be played, etc &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== g_mapVoteFlags  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; This cvar controls the behaviour of the map voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Changes the tie breaker so that the map not played in the longest wins&amp;lt;br&amp;gt;2 Intermission doesn&#039;t end until g_intermissionReadyPercent people have voted. If there are no players connected to the server, intermission will end at the timeout. (WARNING: This means that if there are spectators connected and not voting, the next map will not load until those spectators either vote, disconnect, or get kicked by the system)&amp;lt;br&amp;gt;4 Multi vote: Allows everybody to vote for 3 maps instead of one, first choice map gets 3 votes, second choice gets 2, third choice gets one&amp;lt;br&amp;gt;8 Don&#039;t randomize the maps, so they will always appear in the same order&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_maxMapsVotedFor  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;How many maps are available to players for voting upon during intermission.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6 &lt;br /&gt;
&lt;br /&gt;
=== g_minMapAge  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
How long a map is ineligible for voting during intermission, after it is played last time.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
=== g_includedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Used to include map regardless of any other restrictions. Including g_excludedMaps setting. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; or otherwise the map will be ignored in the list.&lt;br /&gt;
Only valid when map voting is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
=== g_excludedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Used to exclude map that would otherwise be listed in the map voting list. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; otherwise the map will not be excluded. &amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; To exclude railgun and battery maps from map voting use below command:&amp;lt;br&amp;gt; &lt;br /&gt;
set g_excludedMaps &amp;quot;:railgun:battery:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Team Death Match (TDM) ==&lt;br /&gt;
&lt;br /&gt;
=== g_TDMType	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The type of the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map ends only when timelimit hits&lt;br /&gt;
&lt;br /&gt;
2 Map ends when either the target score is reached or the timelimit hits&lt;br /&gt;
&lt;br /&gt;
3 Map ends only when the target score is reached&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_TDMOptions	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Possible options for the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map voting is enabled during the intermission (i.e. The players vote for the next map to play during the intermission.)&lt;br /&gt;
&lt;br /&gt;
2 Completing the map objective will give the team score bonus that is controlled by the g_TDMObjBonus server cvar&lt;br /&gt;
&lt;br /&gt;
4 Teams get negative points when they do selfkills or teamkills&lt;br /&gt;
&lt;br /&gt;
8 Players cannot selfkill during the TDM. Regardless of other selfkill settings the server has configured&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
=== g_TDMScore===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the target score the teams attempt to make to win the game in TDM game types 2 and 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
=== g_TDMObjBonus===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the value that is added to the team score if the team completes the map objective. Adding the bonus does not depend of the TDM type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
= Mapconfigs and Mapscripts =&lt;br /&gt;
&lt;br /&gt;
== g_mapConfigs	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On each map load, the silEnT server will execute 2 configs if possible. The default.cfg and after that a map specifig config file [mapname].cfg. For example if you set g_mapConfigs to &#039;mapcfg&#039;, when the map fueldump starts, the server will try to exec &#039;mapcfg/fueldump.cfg&#039;.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;&amp;quot; to disable it.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;.&amp;quot; to look for the cfg file in the current directory (fs_homepath).&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.5.2, admins can add settings that are executed for specific player amounts. The commands are enclosed in [players low-high] ... [/players] blocks. The low is the lowest amount of players for those settings and high is the maximum amount of players for those settings. For example:&lt;br /&gt;
&lt;br /&gt;
[players 0-10]&amp;lt;br&amp;gt;&lt;br /&gt;
set team_maxPanzers 0&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will disable panzerfaust when player amount is less or equal to 10. The blocks can be placed anywhere in the map config files. If the block is closed with [/players], the following commands do not depend on the player amounts. The player blocks can not be nested. If two player blocks follow each other, the second definition opens a new one and the old one closes. For example:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 0-15]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:mlb_temple:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 16-*]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:adlernest:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will exclude map MLB Temple if the player amount is less or equal to 15 and exclude map Adlernest if the player amount is 16 or more. The player amount counting is controlled with g_playerCounting server cvar.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When in g_gametype 6 mode (Map Voting) and g_resetXPMapCount is set, an additional file named vote_X.cfg is also exec&#039;ed. X indicates the position of the next map in the campaign. For example, vote_2.cfg will exec&#039;ed such that when map 1 ends, any cvars in vote_2.cfg will affect map voting for map 2. Player blocks are not used with vote_X.cfg files.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_mapScriptDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to ETPro&#039;s b_mapscriptsdirectory.  Set it to the name of a directory in your fs_path that contains custom map scripts. For example you can copy the &#039;etpromapscripts&#039; directory from the ETPro distribution to your &#039;silent&#039; directory and add: set g_mapScriptDirectory &amp;quot;etpromapscripts&amp;quot; to your cfg. Setting g_mapScriptDirectory to &amp;amp;quot;&amp;amp;quot; disables any use of map .script files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
It is strongly recommended that you use the map scripts distributed with silEnT or ETPub since these updated scripts fix very important bugs in some of the original map scripts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_campaignFile  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
If you set this to the name of a file in your fs_path it will be interpreted as a .campaign script and all other .campaign scripts in your pk3 files will be ignored. This is useful for making custom campaigns since you don&#039;t need to offer a pk3 file containing a custom .campaign script for all clients to download. However, if the client has not downloaded this .campaign file in a pk3, they will not see information about the campaign. &lt;br /&gt;
&lt;br /&gt;
Such information includes: &lt;br /&gt;
&lt;br /&gt;
*will not display in the VOTE -&amp;amp;gt; MAP list &lt;br /&gt;
*map locations will not draw on the map of Europe. &lt;br /&gt;
*campaign description will not draw in the right panel &lt;br /&gt;
*total number of maps and current maps order in the campaign &lt;br /&gt;
*will not be shown in the intermission screens.&lt;br /&gt;
&lt;br /&gt;
Also, even though the built-in campaigns cmpgn_centraleurope and cmpgn_northafrica will not be valid, they will still appear in the client&#039;s VOTE -&amp;amp;gt; MAP menu. If a vote for one of them passes, nothing will happen. &lt;br /&gt;
&lt;br /&gt;
Setting this to &amp;quot;&amp;quot; disables it. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_playerCounting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls how the player amount is calculated for the mapconfigs. The player amount value is the highest number of simultaneously fully connected players during the map or warmup. The player counting can be disabled from the warmup period. If the player counting is enabled during the warmup, the players are counted right at the end of the warmup. This allows the teams to stabilize after intermission. Similarly the counting is triggered always with a 3 second delay from the change in the teams. Team changes include players joining the server and staying &lt;br /&gt;
in the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable filtering. This will add the 2 latest values together and divide them by 2.&lt;br /&gt;
&lt;br /&gt;
2 No player counting during warmup.&lt;br /&gt;
&lt;br /&gt;
4 Count spectators into players. Without this flag, only players in the playing teams are counted.&lt;br /&gt;
&lt;br /&gt;
8 Bots are not included into the player count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= Censoring =&lt;br /&gt;
&lt;br /&gt;
== g_censor==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the chat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the player names.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorPenalty==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This controls the censoring behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kill the player&lt;br /&gt;
&lt;br /&gt;
2 Kick players with names containing words in g_censorNames&lt;br /&gt;
&lt;br /&gt;
4 Kill, but don&#039;t gib&lt;br /&gt;
&lt;br /&gt;
8 Auto-mute for g_censorMuteTime [60] seconds&lt;br /&gt;
&lt;br /&gt;
16 Lose the amount of xp specified in g_censorXP&lt;br /&gt;
&lt;br /&gt;
32 Burn&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use both 1 and 4, it will gib (like shrub did).&lt;br /&gt;
&lt;br /&gt;
== g_censorNeil==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter. It&#039;ll catch some symbol and number replacements,&lt;br /&gt;
and spaces now. It also adds some common words and common words with &amp;quot;swears&amp;quot; in them&lt;br /&gt;
that should really be OK. For example, it will not censor &amp;quot;assassin&amp;quot; but it will&lt;br /&gt;
censor &amp;quot;ass&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorNeilNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter for player names.  See g_censorNeil description for&lt;br /&gt;
details.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorMuteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds to auto-mute as a censor penalty. Only works if bitflag 8 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_censorXP==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of XP to lose as a censor penalty. Only works if bitflag 16 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
= Voting =&lt;br /&gt;
&lt;br /&gt;
== g_voting	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Control&#039;s voting behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Votes will pass on the number of votes cast rather than total eligible voters.&lt;br /&gt;
&lt;br /&gt;
2 Votes that pass do not count against the vote_limit for the caller.&lt;br /&gt;
&lt;br /&gt;
4 &amp;quot; (called by NAME)&amp;quot; is appended to the vote description where NAME is the name of the player that called the vote.&lt;br /&gt;
&lt;br /&gt;
8 Show the number of YES and NO votes after a votes has passed or failed. This also shows if a vote is canceled or passed by an admin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== vote_limit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This value defines how many votes one player can invoke during one map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== vote_percent==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The required percentage of yes votes for the vote to pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== vote_allow_comp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for competition settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_gametype==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for gametype.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_kick==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for kicking a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for map to be played.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_mutespecs==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for starting the next map in the map rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_pub==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for public game settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_referee==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for making a player a referee.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams based on XP.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for swapping the teams. Allied players go to the axis team and axis players go to the allied team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_friendlyfire==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the map time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_warmupdamage==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling/enemies only warmup damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_antilag==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling antilag.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_balancedteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling balanced teams enforcing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_muting==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting/unmuting a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for surrendering the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the campaign.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the campaign to the next one in the campaign rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows making freely written polls using the vote system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams without restarting the map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_cointoss==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for doing cointoss.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_putspec==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for moving a player to the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_block_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the match allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams without restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for starting the next map in the map rotation allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for swapping the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for surrendering the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for played map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for changing the map time allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for polls allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for next campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_noVoteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds must pass between two votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_voteResultsMinLevel==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the minimum admin level for the players to see the results of the votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_votedMuteLength==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the length in seconds of the mute issued by a passed mute vote. You can use modifiers with this value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3h&lt;br /&gt;
&lt;br /&gt;
= Weapons, Classes and Skills =&lt;br /&gt;
&lt;br /&gt;
== g_poison	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Gives medics the ability to poison enemies by sticking with their medic&lt;br /&gt;
syringe.  Enemies will be damaged at g_poison/second when g_poison is&lt;br /&gt;
set to a value more than 0.  Setting to 0 will disable poison needles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_poisonFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the effects of g_poison.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Poisoned player&#039;s screen shakes.&lt;br /&gt;
&lt;br /&gt;
2 Other players see the poisoned player&#039;s head shaking.&lt;br /&gt;
&lt;br /&gt;
4 Poisoned player appears to bend over (hurl) every 2 seconds. (poisoned player does not see this happen.)&lt;br /&gt;
&lt;br /&gt;
8 Poisoned player cannot use +attack.  NOTE: because of client side prediction, the client may see the gun firing occasionally if they hold down +attack, but no shots are fired.&lt;br /&gt;
&lt;br /&gt;
16 Poisoned player is disoriented (view turned upside down).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
== g_medics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the medic, to nerf or otherwise change their behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Medics can&#039;t pick up their own health packs to cure themselves of poison needle effects.&lt;br /&gt;
&lt;br /&gt;
2 Medics can&#039;t pick up their own health packs at all.&lt;br /&gt;
&lt;br /&gt;
4 A level 4 medic will always be revived to full health (no matter what the level of the reviving medic is).&lt;br /&gt;
&lt;br /&gt;
8 Value is not in use.&lt;br /&gt;
&lt;br /&gt;
16 Medics do not spawn with akimbo pistols, regardless of their light weapons skill.&lt;br /&gt;
&lt;br /&gt;
32 Medics spawn with pistol only, and can&#039;t pick up SMG of either team. However, any class can steal a medics uniform, if the g_classChange is set to 1, and receive the medic benefits while retaining their current weapons, including akimbos and SMG.&lt;br /&gt;
&lt;br /&gt;
64 Medics can use syringes to heal living teammates as an alternative to the tk/revive cycle.&lt;br /&gt;
&lt;br /&gt;
128 Level 4 medics can inject other players with their adrenaline.  This can be done when holding the revive needle by pressing the alt-fire button, or with the /adrenother client command.&lt;br /&gt;
&lt;br /&gt;
256 Level 4 medics cannot adrenaline self.  If this flag is on, Medics will not receive adrenaline upon reaching level 4. (This won&#039;t affect flag 128)&lt;br /&gt;
&lt;br /&gt;
512 Adrenaline use takes only half of the chargebar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adrenDmgReduction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
The percentage damage reduction after injecting adrenaline. g_adrenDmgReduction is now independent percentage of the caused damage that is inflected when the adrenaline is on. 0 means no damage and 100 means full damage from the weapon. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_medicHealthRegen==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The rate at which medics regenerate health (in HP per second).  This rate is divided into two parts:  The first is from 1 to 110-125 HP (depending on the number of medics per team), and then above that.  The system default is 3/2 (3 HP per second, then 2 HP per second).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 3/2&lt;br /&gt;
&lt;br /&gt;
1 2/2&lt;br /&gt;
&lt;br /&gt;
2 2/1&lt;br /&gt;
&lt;br /&gt;
3 2/0&lt;br /&gt;
&lt;br /&gt;
4 1/1&lt;br /&gt;
&lt;br /&gt;
5 1/0&lt;br /&gt;
&lt;br /&gt;
6 0/0&lt;br /&gt;
&lt;br /&gt;
7 0/1&lt;br /&gt;
&lt;br /&gt;
8 0/2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_throwableKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable knife throwing. The amount of throwable knives is g_maxKnives - 1. Any non zero value will enable knife throwing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of knives a player can posses. Take note that if g_throvableKnives is enabled, the last knife cannot be thrown.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_knifeChargeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long it takes in milliseconds for the &amp;quot;knife&amp;quot; to charge to the maximum throw speed/force.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 800&lt;br /&gt;
&lt;br /&gt;
== g_constructibleXPSharing==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When multiple engineers help build a constructible, each gets his share of XP&lt;br /&gt;
once the constructible is build.  The share of gained XP is proportional to&lt;br /&gt;
how much the engineer built.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_asblock	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Airstrike blocking.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Make an announcement whenever an airstrike is blocked.&lt;br /&gt;
&lt;br /&gt;
2 A player may easily block an airstrike by crouching, standing, or proning over the enemy&#039;s canister to block the airstrike.&lt;br /&gt;
&lt;br /&gt;
4 Reserved.&lt;br /&gt;
&lt;br /&gt;
8 Lvl 3 FieldOPs and higher cannot have the airstrikes blocked by players.&lt;br /&gt;
&lt;br /&gt;
16 Disables teammates blocking airstrikes.&lt;br /&gt;
&lt;br /&gt;
32 Give 2 Battle Sense XP to player that blocks the air strike. No XP given for blocking teammates or your own air strike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_panzersSpeed	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Speed of the panzers. Normal panzer speed is 2500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2500&lt;br /&gt;
&lt;br /&gt;
== g_panzersGravity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzer trajectory will be affected by gravity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dyno==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dynamite Behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmaks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Sudden Death Dynamites enabled. If there is 30 seconds or less on the clock and dynamite is planted on an objective, the clock will continue to run past zero. The match will not end until the dynamite either explodes, or is disarmed. You are not allowed to plant additional dynamite during sudden death.&lt;br /&gt;
&lt;br /&gt;
2 Dynamite chaining enabled. Dynamite will cause other similar dynamites to explode when exploding (only if within blast radius). Dynamites not planted on an objective will blow any other dynamite not on an objective. Dynamite planted on an objective will only blow dynamite on the same objective.&lt;br /&gt;
&lt;br /&gt;
4 Adds a dynamite symbol with the location and the time remaining to all the players on the team of the player who plants the dynamite. This will only happen when dynamite is placed on an objective. The players in the other team will see the dynamite symbol too, but they won&#039;t see the time remaining.&lt;br /&gt;
&lt;br /&gt;
8 Dynamite cannot be disarmed by your team (inlcuding yourself), so only the other team can defuse it.&lt;br /&gt;
&lt;br /&gt;
16 Enable dynamite ID. You can see the owner of a dynamite when you point at it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKick	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Canister and grenade kicking.&lt;br /&gt;
&lt;br /&gt;
Allows players to kick smoke, and air strike canisters, along with grendaes. The integer adjust the amount of force put behind the kick. 75 is a good value, anything below 60 is about useless, and above about 125 is probably too much.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKickOwner	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kicked Canister Ownership.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Kicker does not take ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
1 Kicker takes ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_staminaRecharge	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiplies the rate at which stamina is rebuilt. Setting this value to zero will cause players to not regain any stamina once it is used except through the use of adrenalin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_mineid	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turns on identification of your teammates landmines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_medicSelfhealTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in milliseconds that a medic cannot heal himself after being hit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxPanzerSuicides	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, a player can kill himself g_maxPanzerSuicides times with a panzerfaust. The next panzerselfkill will result in a panzer shooting medpacks.&lt;br /&gt;
&lt;br /&gt;
The amount of suicides is reset every map.&lt;br /&gt;
&lt;br /&gt;
Set to -1 to disable, -2 to always enable (no normal panzers anymore)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_panzerPackDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the g_packDistance for the medpacks fired by the panzerfaust when g_maxPanzerSuicides is enabled.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to use default (etmain)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_weapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_weapons cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 0 field ops doesn&#039;t get binoculars (unless he has &amp;gt;= level 1 Battle Sense)&lt;br /&gt;
&lt;br /&gt;
2 Syringes work underwater&lt;br /&gt;
&lt;br /&gt;
4 Pliers work underwater&lt;br /&gt;
&lt;br /&gt;
8 Fully restore Field ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
16 Half restore FIeld ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
32 Ammo packs restore helmets&lt;br /&gt;
&lt;br /&gt;
64 Drop binoculars if player has them&lt;br /&gt;
&lt;br /&gt;
128 Soldiers with level 4 heavy weapons don&#039;t lose their pistols&lt;br /&gt;
&lt;br /&gt;
256 Garands can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
512 Balance the clip size between the allies and axis rifles. allied rifles get same clip sizes and max ammo as the k43.&lt;br /&gt;
&lt;br /&gt;
1024 Creates a hitbox for mortar shells.  This reduces (or eliminates in some cases) the ability to fire mortars through smaller windows and bunker slits.&lt;br /&gt;
&lt;br /&gt;
2048 Knives will always gib a body (not a player, use g_dmgKnife instead if you want that)&lt;br /&gt;
&lt;br /&gt;
4096 Players drop all of their ammo when they die, instead of just the ammo that is in the current clip.&lt;br /&gt;
&lt;br /&gt;
8192 &amp;quot;Ammo&amp;quot;/&amp;quot;No ammo&amp;quot; icon is shown for dropped weapons.&lt;br /&gt;
&lt;br /&gt;
16384 Enable fast shooting for Thompson, MP40, PPSh and Sten. 110 ms between shots.&lt;br /&gt;
&lt;br /&gt;
32768 Kill by the shot tripmine is counted for the shooter not the player that planted it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 16384 was added in version 0.6.2.&lt;br /&gt;
&lt;br /&gt;
== g_classWeapons==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar enables certain weapons per class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable PPSH for soldiers&lt;br /&gt;
&lt;br /&gt;
2 Enable PPSH for engineers&lt;br /&gt;
&lt;br /&gt;
4 Enable PPSH for fieldops&lt;br /&gt;
&lt;br /&gt;
8 Enable MP40 and Thompson to be available to both teams in limbo menu&lt;br /&gt;
&lt;br /&gt;
16 Enable MP40 for soldiers.&lt;br /&gt;
&lt;br /&gt;
32 Enable Thompson for soldiers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 8 was added in version 0.6.0.&lt;br /&gt;
&lt;br /&gt;
Flags 16 and 32 were added in version 0.6.2. Also the default value was changed from 15 to 63.&lt;br /&gt;
&lt;br /&gt;
== g_mg42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls optional machine gun behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Machine Guns can make headshots&lt;br /&gt;
&lt;br /&gt;
2 Machine Guns can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_coverts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the Covert Op class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 4 Coverts have more accurate scoped weapons.&lt;br /&gt;
&lt;br /&gt;
2 Disguised coverts can only be identified with the &amp;quot;crosshair name&amp;quot; by level 4 Field Ops.&lt;br /&gt;
&lt;br /&gt;
4 After detonating a satchel charge, the primary weapon will be selected instead of satchel again.&lt;br /&gt;
&lt;br /&gt;
8 Coverts in disguise take half the normal combat damage.&lt;br /&gt;
&lt;br /&gt;
16 Coverts in disguise take no splash damage.&lt;br /&gt;
&lt;br /&gt;
32 Coverts do not automatically lose their uniform if an enemy sees them firing a weapon.&lt;br /&gt;
&lt;br /&gt;
64 Coverts do not automatically lose their uniform if they fire a non-silent weapon.&lt;br /&gt;
&lt;br /&gt;
128 Coverts do not automatically lose their uniforms if they attach to an emplaced MG weapon.  Note that this flag has nothing to do with firing.&lt;br /&gt;
&lt;br /&gt;
256 Coverts are awarded xp for constructive use of smoke.&lt;br /&gt;
&lt;br /&gt;
512 Coverts will lose their uniform if an enemy sees him using ANY weapon (otherwise knife/satchel/smoke/binoc will never lose uni).&lt;br /&gt;
&lt;br /&gt;
1024 A disguised covert can still steal enemy uniforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_enableTMines	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disables/enables tripmines. Tripmines are available only for engineers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_enableDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Improvised Demolition weapon for soldier class.&lt;br /&gt;
Improvised Demolition weapon was introduced in 0.8.0 version of the silEnT mod.&lt;br /&gt;
As mentioned in the original WWII Tank-destruction manual, a big charge could be made of 6 stickgrenade heads around one complete grenade, fixed with wire or rope.&lt;br /&gt;
The central grenade would make the other 6 grenade detonate as well causing an explosion which could damage the light armoured vehicles.&lt;br /&gt;
&lt;br /&gt;
In silEnT mod this weapon is designed to suit exactly the purpose described above.&lt;br /&gt;
To gain the weapon player has to gain 3rd engineer level and 4th soldier level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_skills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optional skill related flags.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players with level 4 battle sense can spot landmines for teammates&lt;br /&gt;
&lt;br /&gt;
2 Players with level 4 engineering can keep the flak jacket for other classes&lt;br /&gt;
&lt;br /&gt;
4 Players with level 4 first aid can keep adrenaline for other classes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== skill_soldier==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in soldier ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_medic	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in medic ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_engineer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in engineer ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_fieldops	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in fieldop ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_covertops==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in covert op ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_battlesense	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in battle sense ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_lightweapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in light weapon ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_panzersVulnerable==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzers that are shot in mid-air will explode.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_maxMarkers ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many danger zones can be marked by the covert ops.&lt;br /&gt;
&lt;br /&gt;
Danger zones were introduced in 0.7.0 version of the silEnT mod. They can be marked by Covert Ops to indicate that some area can be considered dangerous. Such area is then visible on the command map as the red circle zone. Additionally, when the Command Post is built, players are notified by sound and visual signs about entering the danger zone. Players can customize the way they are notified via the HUD editor and the silEnT customize HUD menu.&lt;br /&gt;
&lt;br /&gt;
To mark the danger zone Covert Ops needs to look through his binoculars and press the left mouse button (attack button). The same way Field Ops calls for an airstrike.&lt;br /&gt;
&lt;br /&gt;
To disable the feature set the g_maxMarkers to 0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Friendly Fire =&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFire  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
To enable / disable friendly fire on server.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [0|1] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFireOpts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows greater control over friendly fire events.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
2 Allow &#039;grenade boosting&#039; when friendly fire is off&lt;br /&gt;
&lt;br /&gt;
4 Non-engineer players do not trigger landmines on their own team&lt;br /&gt;
&lt;br /&gt;
8 Players do not trigger trip mines on their own team&lt;br /&gt;
&lt;br /&gt;
16 Tripmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
32 Only engineer that planted the landmine can trigger/defuse it (concerns team landmines only). This flag requires that the flag 4 is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 32 was added in version 0.5.1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_reflectFriendlyFire ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to Shrub&#039;s g_friendlyfire 2 cvar. A multiplier value that determines how much friendly-fire damage, if any, is reflected back to the player that caused the damage. This setting is independent of g_friendlyfire, so damage can be set to reflect on both FF and non-FF servers.&lt;br /&gt;
&lt;br /&gt;
A value of 1.0 would reflect full damage.&lt;br /&gt;
&lt;br /&gt;
A value of 0.5 would reflect half damage.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to disable reflected friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_reflectFFWeapons ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects which category of weapon will reflect when g_reflectFriendlyFire is non-zero.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable reflected damage for Firearms (all types of guns)&lt;br /&gt;
&lt;br /&gt;
2 Enable reflected damage for Grenades and grenade launchers&lt;br /&gt;
&lt;br /&gt;
4 Enable reflected damage for Knives (includes thrown knives)&lt;br /&gt;
&lt;br /&gt;
8 Enable reflected damage for Panzers&lt;br /&gt;
&lt;br /&gt;
16 Enable reflected damage for Flamethrowers&lt;br /&gt;
&lt;br /&gt;
32 Enable reflected damage for Mortars&lt;br /&gt;
&lt;br /&gt;
64 Enable reflected damage for Satchel Charges&lt;br /&gt;
&lt;br /&gt;
128 Enable reflected damage for Artillery and Air Strikes&lt;br /&gt;
&lt;br /&gt;
256 Enable reflected damage for Dynamite and Construction Damage&lt;br /&gt;
&lt;br /&gt;
512 Enable reflected damage for Landmines&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setting this value to zero will override any multiplier set via g_reflectFriendlyFire, effectively disabling reflecting damage.&lt;br /&gt;
&lt;br /&gt;
== g_teamDamageRestriction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When greater than 0, anybody that has this percentage of hits inflicted on a teammate will automatically be kicked. A minimum of g_minhits hits total required before this is calculated. Client can see current stats for themselves by doing a /damage in console. Implemented to mimic shrub behavior as much as is possible, there are other ways to implement this feature, which may be implemented in addition to current manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_minHits ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum number of damaging hits required before calculating if player has reached g_teamDamageRestriction threshold. Flamethrower and landmine hits are adjusted similar to shrub. Medics get -2 hits for every revive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
= Hitboxes, Physics &amp;amp; Anti Lag Settings =&lt;br /&gt;
&lt;br /&gt;
== g_antilagDelay	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Manually delay the antilag of every player on the server. Might give very weird behaviour, so use at own risk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysics==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Creates a smoother movement when enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysicsfps	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Makes the fixedphysics act like all the clients have the same framerate, so that players with &amp;quot;magic&amp;quot; quake engine framerates don&#039;t have an unfair advantage. This CVAR must be between 60 and 333.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 125&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t actually change the framerates in clients, so the clients can keep their own framerates.&lt;br /&gt;
&lt;br /&gt;
== g_antiwarp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro-style antiwarp. This gives non-lagging players a much better game but for laggers it will be a bit more uncomfortable. This CVAR overrides both g_maxWarp AND g_skipCorrection in order to keep things consistent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_realBody ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If server admin sets this, the player hitboxes are adjusted smaller and harder to hit. Value 0 corresponds to the hitboxes used up to 0.5.0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Hitboxes used up to 0.5.0&lt;br /&gt;
&lt;br /&gt;
1 Use smaller hitboxes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see the differences in the hitboxes, use g_debughitboxes server cvar. Do note that this kind of testing should not be done with many players because it will cause huge amount of lag.&lt;br /&gt;
&lt;br /&gt;
== g_skipCorrection	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 to enable Neil Toronto&#039;s unlagged2 skip correction. This will smooth out the movement of players with high packet loss (to a degree). This is similar to etpro&#039;s antiwarp, but has some differences. Neil likes this version better, bani likes his better.&lt;br /&gt;
&lt;br /&gt;
This replaces g_smoothClients from etmain.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarp	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This allows you to control the amount of &amp;quot;warping&amp;quot; that players with high packet loss can do.  The [integer] is the number of server frames that you allow a player to miss before their next movement is put in check.&lt;br /&gt;
&lt;br /&gt;
A server frame is 50ms on a typical server (sv_fps set to 20).  This means that if you set g_maxWarp to 5 you won&#039;t allow players to warp from point A to point B if that distance takes an normal player 1/4&lt;br /&gt;
of a second to travel. Setting this to 1 is a good way to drive off just about everyone from your server.&lt;br /&gt;
&lt;br /&gt;
As far as I can tell, 1000ms is allowed by default in the game, so setting this to any value higher than 39 should have no effect if sv_fps is set to 10.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Fun Wars and Crazy Settings =&lt;br /&gt;
&lt;br /&gt;
== g_panzerwar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Panzerwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_sniperwar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Sniperwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_riflewar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Riflewar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set maximum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 540&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set max speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Watermark =&lt;br /&gt;
&lt;br /&gt;
== g_watermark==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set a watermark that will be displayed to all clients. The watermark must be put in a folder named &amp;quot;watermark&amp;quot; and then this whole folder needs to be zipped into a .pk3 file. The silEnT watermark is &amp;quot;logo_silent.tga&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeAfter	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermark is set, the watermark will fade out after [integer] number of seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermarkFadeAfter is set, the watermark will fade out in [integer] seconds. (So the fading process from 1.0 alpha to 0.0 alpha takes [integer] seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Hitsounds =&lt;br /&gt;
&lt;br /&gt;
== g_hitsounds	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server side hitsound options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable hitsounds&lt;br /&gt;
&lt;br /&gt;
2 Disable hitsounds when shooting wounded players&lt;br /&gt;
&lt;br /&gt;
4 Disable the headshot sound when shooting wounded player in the head. (default hitsound will be used in it&#039;s place)&lt;br /&gt;
&lt;br /&gt;
8 Enable warning sound from hitting team mates&lt;br /&gt;
&lt;br /&gt;
16 Disable hitsounds from poison damage&lt;br /&gt;
&lt;br /&gt;
32 Disable hitsounds from explosive weapons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A client can disable hitsounds with cg_hitSounds client cvar. Also an option to play only headshots is available.&lt;br /&gt;
&lt;br /&gt;
== g_defaultHitSounds ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects the default hit sounds on the server. Starting from silEnT 0.6.0, it is possible for the players to choose what kind of hit sounds are played. If the client cvar cg_hitSoundType is 0, the g_defaultHitSounds determines what type of hit sounds are used. Also, if the client cvar cg_hitSoundType is 0, the server may also add custom hit sound files in a custom pk3 file. These sounds are automatically loaded if available. However, if the client cvar cg_hitSoundType is 1, 2 or 3, the client will use strictly the hit sounds they have selected. Custom hit sounds are placed to the root folder &amp;quot;sounds/hitsounds&amp;quot; in the custom pk3. They must never overload any of the files in the subfolders, silent, etpro or etpub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 No selection, will default to silEnT in the client end.&lt;br /&gt;
&lt;br /&gt;
1 Defaults silEnT hitsounds.&lt;br /&gt;
&lt;br /&gt;
2 Defaults ETPro hitsounds.&lt;br /&gt;
&lt;br /&gt;
3 Defaults ETPub hitsounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
= Intermission =&lt;br /&gt;
&lt;br /&gt;
== g_intermissionTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the length of time the end of game screens displays before loading the next map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_intermissionReadyPercent	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The percent of connected players who need to hit the &amp;quot;READY&amp;quot; button to move on to the next map without waiting g_intermissionTime to run out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
= Miscellaneous =&lt;br /&gt;
&lt;br /&gt;
== g_proneDelay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set, there will be 1750 ms delay after every prone or getting up before the player can prone or get up again. Also, weapon spread will be maxed for 1 second after proning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_realPlayTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Show additional real play time of the payer (without spec time) in the debriefing screen at the end of the map.&lt;br /&gt;
For instance: 6/10 would mean that player played 6 minutes, was on the server for 10 minutes and 4 minutes was in spec.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== g_extraStatistics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional statistics over the end game awards.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player with most mine kills&lt;br /&gt;
&lt;br /&gt;
2 Player with most mine damage inflicted&lt;br /&gt;
&lt;br /&gt;
4 Player with most knife kills&lt;br /&gt;
&lt;br /&gt;
8 Player with most gibs&lt;br /&gt;
&lt;br /&gt;
16 Player with most artillery kills&lt;br /&gt;
&lt;br /&gt;
32 Player with most airstrike kills&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_packDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the distance at which health packs and ammo packs are thrown. Set this to 0 to make it just like etmain.  The settings should be similar to shrubet so set this to 2 for a subtle improvement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, medics will drop [integer] number of health packs when they are gibbed.  If set to -1, medics will drop the number of health packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropAmmo	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, fieldops will drop [integer] number of ammo packs when they are gibbed.  If set to -1, fieldops will drop the number of ammo packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tossDistance==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the velocity at which health or ammo packs are tossed from the dead body when g_dropHealth or g_dropAmmo are activated. This changes the distance that these packs travel from the corpse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_misc==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Miscellaneous options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Type: &#039;&#039;&#039;bitmask&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable double jump.&lt;br /&gt;
&lt;br /&gt;
2 Enable binoc master competition. Requires g_weapons 64 to be set.&lt;br /&gt;
&lt;br /&gt;
4 When a player is killed he can see the HP the killer has left.&lt;br /&gt;
&lt;br /&gt;
8 Disable self damage.&lt;br /&gt;
&lt;br /&gt;
16 Players can not jump if stamina is too low.&lt;br /&gt;
&lt;br /&gt;
32 Enable Jaymod style doublejump.&lt;br /&gt;
&lt;br /&gt;
64 Disable Falling Damage.&lt;br /&gt;
&lt;br /&gt;
128 Announce revives.&lt;br /&gt;
&lt;br /&gt;
256 Setting this flag disables the &amp;quot;First Blood&amp;quot; announcement.&lt;br /&gt;
&lt;br /&gt;
512 Full body predict. This makes it harder to get inside for example walls and stones. Same as ETPub g_misc 32 + 256. Do note that this can cause problems when proning through windows and similar narrow passages&lt;br /&gt;
&lt;br /&gt;
1024 Enable the enemy team objective carry indicator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
* Flag 1024 was added in version 0.8.2.&lt;br /&gt;
&lt;br /&gt;
== g_moverScale	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiply the speed of movers (e.g. tanks) by float.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_slashKill==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the behavior of the /kill command. See also g_fear and g_maxSelfkills.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player spawns with half charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
2 Player spawns with 0 charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
4 Restores the charge bar to the same state it was in at the moment the player issued /kill (regardless of how long they were in limbo)&lt;br /&gt;
&lt;br /&gt;
8 Disable /kill when player is frozen&lt;br /&gt;
&lt;br /&gt;
16 Disable /kill when player is poisoned&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxSelfkills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of times a player can use /kill per map. Setting this to -1 will result in normal behaviour (infinite selfkills). Setting this to 0 will disable /kill.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_ammoCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between ammo cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60000&lt;br /&gt;
&lt;br /&gt;
== g_healthCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between health cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10000&lt;br /&gt;
&lt;br /&gt;
== g_spectator==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls spectator behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 When in freelook mode, you can &#039;fire&#039; at a player to follow. If you miss a player, nothing happens.&lt;br /&gt;
&lt;br /&gt;
2 When in freelook mode with the 1 flag set, if you shoot and miss you start following the next available player.&lt;br /&gt;
&lt;br /&gt;
4 When the player you&#039;re following goes into limbo, don&#039;t move to the next available player.&lt;br /&gt;
&lt;br /&gt;
8 When the player you&#039;re following goes into limbo, go to freelook instead of following the next available player. (4 has precedence)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_truePing	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to see how much their local game is behind the top time (the time of the latest server frame). Pings will show around 50 ms better than if the ping would show network latency, but it&#039;s more accurate. Remember that the server is sending a snapshot to players in every 50 ms. This makes the players to inherenty play in the past from the server point of view.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropObj	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets the number of times a player can drop/toss the objective (e.g. parts on radar) per life.&lt;br /&gt;
&lt;br /&gt;
The parts are dropped by pressing the +activate key (usually bound to F) when there&#039;s nothing else around to be activated.&lt;br /&gt;
&lt;br /&gt;
Before enabling this recall how spammy the voiceovers can be. Then picture a player tossing the parts to himself over and over again. For this reason you probably don&#039;t want to set this very high.&lt;br /&gt;
&lt;br /&gt;
Players must switch to knife in order to drop the objective. If they are not holding knife and hit +activate they will see a message that notifies them that they must switch to knife.  This change was made to prevent accidental dropping of the objective when trying to push, drag, pick up, or activate something else.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_doubleJumpHeight	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adjusts the height of the second jump in a double jump.  This value is a multiplier to the default jump velocity. The greater g_doubleJumpHeight is, the greater the height of the second jump.  This setting has no effect if double jump is disabled in g_misc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.4&lt;br /&gt;
&lt;br /&gt;
== g_serverInfo==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use this cvar to change the behaviour of the &#039;serverinfo&#039; string.  This string is printed in response to the &#039;getstatus&#039; primative command used by game browsers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Display player team information using the &#039;P&#039; cvar in the server info string. (etpro and etmain 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
2 Display player team information using the &#039;Players_Axis&#039; and &#039;Players_Allies&#039; cvars in the server info string. (etmain &amp;lt; 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
4 Display the &#039;campaign_maps&#039; cvar in the server info string. This contains a comma delimited list off all the maps in the current campaign. Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
8 Displays the &#039;C&#039; CVAR in the server info string.  This is a string containing the current map number in the campaign, and total maps in current campaign, in the form of &amp;amp;quot;xx,yy&amp;amp;quot;.  Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
16 The class charge times will not be present in the server info string unless this flag is set. They are removed by default in order to make room in the serverInfo string for more useful information. These cvars are g_medicChargeTime, g_engineerChargeTime, g_LTChargeTime, g_covertopChargeTime, g_soldierChargeTime.&lt;br /&gt;
&lt;br /&gt;
32 Send KR (KillRating) instead of XP in SERVERINFO string.  This is overriden by flag 64.&lt;br /&gt;
&lt;br /&gt;
64 Send PR (PlayerRating) instead of XP/KR in SERVERINFO string. Overrides flag 32.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar MUST be set prior to loading the first map. You will not be able to change this cvar once the game code is loaded. The serverInfo string has a fixed length of 1024 characters.  This space is shared with any cvar you create on your server with the &#039;sets&#039; command.  If you use up too much space with &#039;sets&#039;, your server will fail to start.  It will print the message &amp;quot;Info string length exceeded&amp;quot; if you don&#039;t have enough space left in your serverinfo string to handle the g_serverInfo flags you&#039;ve selected. To fix this, either remove some sets cvars from your config, or use different g_serverInfo flags.&lt;br /&gt;
&lt;br /&gt;
== g_fear	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If a player uses the /kill command within g_fear milliseconds after taking damage from an enemy, the attacker that last damaged that player will recieve full credit for the kill and the mode of death will be recorded as MOD_FEAR.  Other restrictions are that the attacker must be on the opposite team and the attacker must still be alive.&lt;br /&gt;
&lt;br /&gt;
G_fear applies also to players that try to switch teams within g_fear milliseconds. The player will remain in the same team and the usual g_fear behavior applies.&lt;br /&gt;
&lt;br /&gt;
In-game statistics will reflect that the death was caused by the weapon that did the last recorded damage to the player.&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable this behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2000&lt;br /&gt;
&lt;br /&gt;
== g_maxNameChanges	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Limit the number of namechanges per player per map by setting this cvar. This is especially needed if you have cheaters that autochange their name every second. Set to -1 to disable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_disableComplaints	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable teamkill complaints for some weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines&lt;br /&gt;
&lt;br /&gt;
2 Artillery and airstrikes&lt;br /&gt;
&lt;br /&gt;
4 Mortar&lt;br /&gt;
&lt;br /&gt;
8 Dynamite&lt;br /&gt;
&lt;br /&gt;
16 Tripmines&lt;br /&gt;
&lt;br /&gt;
32 Completely&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_countryFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets whether the players will see the GeoIP country flags in the crosshair when aiming at someone and in the scoreboard. Players can enable/disable it with cg_countryFlags (default 1).&lt;br /&gt;
&lt;br /&gt;
You will need the GeoIP.dat file in your server&#039;s silent folder. You should read and accept the license of the GeoIP.dat database!&lt;br /&gt;
&lt;br /&gt;
Read the database license at http://geolite.maxmind.com/download/geoip/database/LICENSE.txt&lt;br /&gt;
Download the latest database at http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_incognitoCountryFlag ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the country flag to be used for the incognito admin. If the incognito admin joins the server, the country flag set by this cvar is displayed for him. Please check this table silEnT geoIP countries to check what to use as the value. GeoIP has to be enabled for this cvar to work, please read: g_countryFlags. To disable set to -1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [-1|255]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_noSkillUpgrades==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, disables player skill upgrades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
0 No skill locking.&lt;br /&gt;
&lt;br /&gt;
1 Lock skills.&lt;br /&gt;
&lt;br /&gt;
2 Lock skills and hide all HUD elemnts that would show the skill levels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.6.0, this cvar will lock the skills to the always enabled levels. See the skill_x cvars. Also, it is possible to hide the skill levels from the player HUDs setting this cvar to value 2.&lt;br /&gt;
&lt;br /&gt;
== g_flushItems	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Evens the dropped items out with the surface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxConnsPerIP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of connections allowed from one particular IP. This prevents the fake clients Denial of Service attack.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== shoutcastPassword	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables shoutcaster status on the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;none&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_headshot==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional head shot options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Headshots only&lt;br /&gt;
&lt;br /&gt;
2 Instagib damage (controlled by g_instagibDamage)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_instagibDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Damage used for instagib mode (e.g. set this to 160 so that a player can still be revived after being shot.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_ettvFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional ETTV options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Prevent ettv slaves from being callvote kicked&lt;br /&gt;
&lt;br /&gt;
2 Grant shoutcaster status to ettv slaves&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_mode==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls some additional modes for fun or for testing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players will spawn instantly&lt;br /&gt;
&lt;br /&gt;
2 Each class receives adrenaline&lt;br /&gt;
&lt;br /&gt;
4 No damage on players&lt;br /&gt;
&lt;br /&gt;
8 Players can pick up any weapon on the ground (Removing this bitflag will force all players to respawn!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_playDead	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to use the &#039;playdead&#039; command and their character will act like it is dead until the playdead command is used again (or they really die).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_shove	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to push other players with the &amp;quot;use&amp;quot; key.  The integer adjusts the amount of force players shove with. 80 seems fair.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 80&lt;br /&gt;
&lt;br /&gt;
== g_shoveNoZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 if you want to disable shove in the up/down direction (a.k.a &amp;quot;boosting&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dragCorpse	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players do drag wounded players with the use key when moving backward slowly.  Works best when crouching or prone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_classChange	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to take the class of a gibbed teammate temporarily similarly to how a covert steals an uniform.  Class changing does not latch, so the original class the player had will be restored on respawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_forceLimboHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0 it takes about 3 shots to gib a wounded player, if set to 1 it takes about 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_goomba==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, players can damage each other by landing on each other. The integer is multiplier that determines how much damage should be done to the player that was fallen on.  Also the impact for the falling player will be broken so that they only recieve 20% of the damage they would have normally.  It is also possible to do small amounts of damage (5HP) to other players by hopping up and down on them.&lt;br /&gt;
&lt;br /&gt;
Falling damage can be either 500, 50, 25, 15, or 10 depending on the length of the fall.  So if you set g_goomba to 5 and land on a player from a fall that would have damaged you 10HP, you will inflict 50HP of damage on the player you land on, and you will only recieve 2HP of damage.&lt;br /&gt;
&lt;br /&gt;
See also g_goombaFlags&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_goombaFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the way g_goomba is handled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Cannot do goomba damage to teammates.&lt;br /&gt;
&lt;br /&gt;
2 Short falls (hopping) on another player does no damage.&lt;br /&gt;
&lt;br /&gt;
4 Short falls (hopping) does no damage to teammates. (not necessary if 1 or 2 flag is set)&lt;br /&gt;
&lt;br /&gt;
8 Falling player recieves no damage when landing on any other player. (default is to recieve 20% of the damage the fall would have given if not landing on a player).&lt;br /&gt;
&lt;br /&gt;
16 Insta-gib goomba. All goomba damage will be 500HP regardless of fall distance. The exception is hopping on anther player which still does 5HP of damage.&lt;br /&gt;
&lt;br /&gt;
32 Falling corpses won&#039;t cause damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 31 to have g_goomba work like shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvul	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds players will be invincible after they spawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvulFair	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes the spawn protection when the player fires his first shot (note : the spawn protection will still be removed after the g_spawnInvul time)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_spinCorpse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allow players to use +left and +right binds to spin their corpse when dead or playing dead.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_teamChangeKills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0, players are allowed one non-killing team change per respawn cycle.  If a player changes teams, he will be instantly spawned in the other teams default spawn point.  Players will die (but not lose a life) if they change teams a second time in one spawn cycle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxIgnoresPerMap ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The maximum number of times one player can ignore another player during one map. This can prevent spamming other players with the ignore command. The value can be between 0 and 255. Any value higher than 255 will always allow ignoring. Any value below 1 will disable ignoring completely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Logs =&lt;br /&gt;
&lt;br /&gt;
== g_logOptions==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_logOptions cvar, but so far the only implemented flags are:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Server outputs obituaries to chat.&lt;br /&gt;
&lt;br /&gt;
2 Adrenaline countdown displayed.&lt;br /&gt;
&lt;br /&gt;
4 Disable display of tap-out confirmation box.&lt;br /&gt;
&lt;br /&gt;
8 Display connection attempts by banned players.&lt;br /&gt;
&lt;br /&gt;
16 Display gib reports (&amp;quot;&amp;amp;lt;victim&amp;amp;gt; was gibbed by &amp;amp;lt;attacker&amp;amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
32 Omit &amp;quot;item&amp;quot; lines from log file.&lt;br /&gt;
&lt;br /&gt;
64 Report gibs.&lt;br /&gt;
&lt;br /&gt;
128 GUID&#039;s are logged in the game log. Note, if this option is enabled the VSP log parser will not work.&lt;br /&gt;
&lt;br /&gt;
256 Log all private messages (/m commands).  This setting won&#039;t have any effect unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
512 Logs the real time into logs, instead of the normal uptime of the server.&lt;br /&gt;
&lt;br /&gt;
1024 This flag allows logging every player drop. It can be usefull for inspecting the server operation, but it will also cause lot of needless log writes.&lt;br /&gt;
&lt;br /&gt;
2048 Unused.&lt;br /&gt;
&lt;br /&gt;
4096 Log client cvar values.&lt;br /&gt;
&lt;br /&gt;
8192 Log cvar values only when found from the client. Note that flag 4096 must also be set if using this flag.&lt;br /&gt;
&lt;br /&gt;
16384 Admin log will use new format that is more readable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.3 - Flags 4096 and 8192 were added.&lt;br /&gt;
&lt;br /&gt;
0.8.0 - Flag 16384. When this flag is set, the admin log will use new format.&lt;br /&gt;
&lt;br /&gt;
== g_logAdmin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file that all shrubbot commands will be logged to. For example, g_logAdmin &amp;quot;admin.log&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_cheatLog ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file, where all cheat related prints are logged. If this is not specified, server log is used.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Omni-Bots =&lt;br /&gt;
&lt;br /&gt;
== omnibot_enable ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, Omni-bot functionality is enabled. You still need to have Omni-bots installed correctly in order for the bots to work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== omnibot_path	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The path where the Omni-bot dll/so file is installed. If you installed Omni-bot to the default locations, then you do not need to modify this cvar. Leaving this cvar blank will search for the Omni-bot dll/so file from the default locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_bot_maxXP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Any bots present will have their XP reset after this much XP is reached. If g_maxXP is also set to a value greater than -1, then the bot XP will be reset whenever the lower limit of the two is hit. Set this to -1 to disable this feature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== omnibot_flags==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes bot management/behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Disables XPSave for bots&lt;br /&gt;
&lt;br /&gt;
2 Bots cannot mount tanks&lt;br /&gt;
&lt;br /&gt;
4 Bots cannot mount emplaced guns&lt;br /&gt;
&lt;br /&gt;
8 Don&#039;t track bot count in omnibot_playing cvar&lt;br /&gt;
&lt;br /&gt;
16 Bots will target ungibbed enemies&lt;br /&gt;
&lt;br /&gt;
32 Bots will trigger team and spotted mines&lt;br /&gt;
&lt;br /&gt;
64 Bots can use g_shove&lt;br /&gt;
&lt;br /&gt;
65536 Bots are granted shrubbot command immunity (the same as shrubbot flag !)&lt;br /&gt;
&lt;br /&gt;
131072 Bots cannot be !kicked or !banned&lt;br /&gt;
&lt;br /&gt;
262144 Disable shrubbot greeting for bots&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Lua =&lt;br /&gt;
&lt;br /&gt;
== lua_modules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of files to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. The paths are relative to the mod&#039;s directory, and can optionally be placed inside pk3 archieves. We are aiming for compatibility with ETPro&#039;s Lua Mod API found at http://wolfwiki.anime.net/index.php/Lua_Mod_API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== lua_allowedModules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of sha1 signatures for the lua modules to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. Only lua modules with the matching sha1 signature listed in this cvar will be allowed to load by the Lua API engine (ACL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Weapon Damage and Radius Settings =&lt;br /&gt;
&lt;br /&gt;
== g_dmg	==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables experimental advanced combat options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Use traditional ET settings for combat.&lt;br /&gt;
&lt;br /&gt;
1 Use Advanced Hit Locations: Differentiates between Head, Body, Arm, and Leg shot when computing damage.&lt;br /&gt;
&lt;br /&gt;
2 Applies a more realistic damage vs. range equation for short-ranged weapons. This will reduce the effectiveness of these weapons at longer ranges.&lt;br /&gt;
&lt;br /&gt;
4 Gives a damage bonus to short-range weapons when used in close combat situations.  This will increase the effectiveness of these weapons at closer ranges.&lt;br /&gt;
&lt;br /&gt;
8 Use bullet fall-off approximations when computing shot trajectory.&lt;br /&gt;
&lt;br /&gt;
16 Improve accuracy of non-scoped single-shot rifles.&lt;br /&gt;
&lt;br /&gt;
32 Use alternate bullet-spread characteristics for automatic or rapid-fire weapons.&lt;br /&gt;
&lt;br /&gt;
64 Damage from players who are spectators or have disconnected is ignored, and XP is not awarded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotMin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This represents the minimum damage done by a headshot regardless of the weapon used to make the shot.&lt;br /&gt;
&lt;br /&gt;
Headshots that would do damage below this value will be adjusted upward to equal g_dmgHeadshotMin. Headshots from a weapon with damage at or above this value will do a multiple of their damage, as specified by g_dmgHeadShotRatio. (The actual damage may undergo additional modification due to range and other conditions)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotRatio	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This specifies the multiplier used for headshots that do damage ABOVE g_dmgHeadShotMin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_dmgKnife	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the knife.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_dmgSten	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the sten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 14&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 15&lt;br /&gt;
&lt;br /&gt;
== g_dmgPistol==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the pistol weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgSMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the SMG weapons (Thompson and MP-40).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the MG42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an emplaced MG.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42Scope==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42 when scoped.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
== g_dmgInfRifle	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by unscoped rifles (K43 and Garand).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 34&lt;br /&gt;
&lt;br /&gt;
== g_dmgSniper	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a scoped Garand or K43.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgFlamer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the a flamethrower. Also controls the per-tick damage done to a player who has been set on fire by a flamethrower and is still burning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenade==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenadeRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncher	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncherRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blas radius of an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgTMine==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a tripmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 260&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmine	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmineRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchel	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchelRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzerRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortarRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamite	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamiteRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAir	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAirRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArty	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour (can do damage, but to a very small radius, making damage unlikely)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArtyRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour. The spotting round can do damage, but to a very small radius making damage unlikely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1100&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolitionRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_knifeThrowDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage a thrown knife will cause to enemy.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgPPSh==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage done by a PPSh.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 19&lt;br /&gt;
&lt;br /&gt;
= Debugging =&lt;br /&gt;
&lt;br /&gt;
== g_debugBullets ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, server will produce debug information of fired bullets. Enabling g_debugBullets require sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If 1 is set as if the cvar was a bitmask, blue lines for the fired shots is enabled. With any positive value, server will print impact area on the hit player to the center of the screen. Possibilities are &amp;quot;Head Shot&amp;quot;, &amp;quot;Body Shot&amp;quot;, &amp;quot;Leg Shot&amp;quot; and &amp;quot;Arm Shot&amp;quot;. If the value is set to 2 or more, the bounding box of the hit player is drawn. If the value is set to 3 or more, the hit player head box is drawn. If the value is set to -2 or smaller, boxes are drawn to impacted surfaces.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default: 0&lt;br /&gt;
&lt;br /&gt;
== g_debugDamage ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, damage inflicted to players is logged into the server log. Enabling this cvar requiers sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_debugHitboxes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is enabled, hit boxes around the players are drawn. This cvar does not require sv_cheats. However, do note that if this is enabled, the server will produce constant flow of extra entities, which will make playing impossible on a live server. Test this with only couple players to prevent everyone from lagging out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to any positive value, boxes are drawn. If the value is set to 8 or more, it will draw only the boxes that are used for the initial trace. Each bullet causes two traces to happen, where the second trace confirms the impact on the more refined area of the player body, such as head or legs.&lt;br /&gt;
&lt;br /&gt;
= Deprecated Cvars =&lt;br /&gt;
&lt;br /&gt;
== g_realHead==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro headboxes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Regular headbox positions.&lt;br /&gt;
&lt;br /&gt;
1 Server tracks the animations so the headbox will match the playermodels exactly. This is the recommended value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This code was originally from ETPro (b_realhead).  It was contributed by zinx and added to ETPub by forty. silEnT is based on the ETPub source and this code has not been altered from the ETPub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.1 - The option was removed. The ETPro headboxes are always used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_spoofOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Options for PunkBuster GUID and IP spoof detections and behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kick for GUIDspoofing.&lt;br /&gt;
&lt;br /&gt;
2 Kick for IPspoofing.&lt;br /&gt;
&lt;br /&gt;
4 Display a global warning when someone is GUIDspoofing. (When flag 1 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
8 Display a global warning when someone is IPspoofing. (When flag 2 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
16 Don&#039;t use the stored GUID. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
32 Don&#039;t use the stored IP. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do NOT change this CVAR unless you encounter problems!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar was removed in version 0.5.1 and spoofing is checked unconditionally in 0.5.1 and later versions.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1308</id>
		<title>Silent Creating Custom Menu</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1308"/>
		<updated>2015-09-14T18:18:23Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Customized Voice Chat Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, the following files have changed their name:&lt;br /&gt;
&lt;br /&gt;
wm_quickmessage.menu =&amp;gt; wm_quickmessage_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_quickmessageAlt.menu =&amp;gt; wm_quickmessageAlt_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_ftquickmessageAlt.menu =&amp;gt; wm_ftquickmessageAlt_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_ftquickmessage.menu =&amp;gt; wm_ftquickmessage_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using customized voice chats, please make sure the menu files are named as such. No other changes are required when converting between the versions.&lt;br /&gt;
&lt;br /&gt;
== Customized Server Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, server admins have the option to have a second, server customized menu. This is opposed to&lt;br /&gt;
editing the official menus.&lt;br /&gt;
&lt;br /&gt;
The second menu is always opened automatically if present when player opens the menus by pressing ESC. If&lt;br /&gt;
the user clicks either menu, the official or the server custom menu, the other menu automatically closes.&lt;br /&gt;
The server custom menus have the same commands as the official menus, with the exception that onOpen event can not be defined.&lt;br /&gt;
If onOpen is defined, it is ignored.&lt;br /&gt;
&lt;br /&gt;
Following is an example of a server custom menu:&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Customized server menu has one requirement, there must be a file called menus_server_custom.txt. This file is used exactly like the old menus.txt. It defines the .menu files that are loaded for the custom menu. An example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// menu defs&lt;br /&gt;
// &lt;br /&gt;
{&lt;br /&gt;
	loadMenu { &amp;quot;ui/custom_main.menu&amp;quot; }&lt;br /&gt;
	loadMenu { &amp;quot;ui/rules.menu&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The custom_main.menu defined in the menus_server_custom.txt in this example, could look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		16&lt;br /&gt;
#define WINDOW_Y		232&lt;br /&gt;
#define WINDOW_WIDTH	160&lt;br /&gt;
#define WINDOW_HEIGHT	60&lt;br /&gt;
&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpCustomMain&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Main Menu //&lt;br /&gt;
&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;custom_main&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		0&lt;br /&gt;
	&lt;br /&gt;
	onEsc {&lt;br /&gt;
		close custom_main ;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;^7Example&amp;quot;, 232 )&lt;br /&gt;
	&lt;br /&gt;
// Buttons //&lt;br /&gt;
&lt;br /&gt;
	BUTTON( 6, 32, WINDOW_WIDTH-12, 18, &amp;quot;^7Rules&amp;quot;, .3, 14, close custom_main ; open rules )&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And finally, the rules.menu could look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		100&lt;br /&gt;
#define WINDOW_Y		16&lt;br /&gt;
#define WINDOW_WIDTH	128&lt;br /&gt;
#define WINDOW_HEIGHT	152&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpRules&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
// Options Menu //&lt;br /&gt;
	&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;rules&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		WINDOW_STYLE_FILLED&lt;br /&gt;
	&lt;br /&gt;
	onESC {&lt;br /&gt;
		close rules;&lt;br /&gt;
		open custom_main;&lt;br /&gt;
                open ingame_main&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;RULES&amp;quot;, 94 )&lt;br /&gt;
	&lt;br /&gt;
	... Stuff for players to read in menu controls ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the menu is not complete. You can delete the &amp;quot;... Stuff for players to read in menu controls ...&amp;quot; or insert some controls that work in its place.&lt;br /&gt;
&lt;br /&gt;
The resulting files need to be packed into a zip file that is renamed to pk3 so that all the menu files and the &amp;quot;menus_server_custom.txt&amp;quot; are in and under ui directory.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
* When user opens the menus, both the official menu and the server customized menu are opened. The menus are opened in a way that the official menu is always on top in case the two menus overlap.&lt;br /&gt;
* If user clicks a button in either menu, the other menu is automatically closed by the mod. This also includes the case when user presses ESC to close the menus.&lt;br /&gt;
* The onOpen event is ignored in the custom menus.&lt;br /&gt;
* Menu files in the etmain directory or the official menus can not be modified and the server refuses to start if it detects such modifications.&lt;br /&gt;
* Old way of customizing the menus still work if the user already has the menus or he manually adds the menus. The restriction is that the server can not reference pk3 files that modify the menus.&lt;br /&gt;
* Menus for the customized voice chats are excluded from the checks.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1307</id>
		<title>Silent Creating Custom Menu</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1307"/>
		<updated>2015-09-14T18:07:48Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Customized Voice Chat Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, the following files have changed their name:&lt;br /&gt;
&lt;br /&gt;
wm_quickmessage.menu =&amp;gt; wm_quickmessage_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_quickmessageAlt.menu =&amp;gt; wm_quickmessageAlt_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_ftquickmessageAlt.menu =&amp;gt; wm_ftquickmessageAlt_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_ftquickmessage.menu =&amp;gt; wm_ftquickmessage_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using customized voice chats, please make sure the menu files are named as such. No other changes are required when converting between the versions.&lt;br /&gt;
&lt;br /&gt;
== Customized Server Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, server admins have the option to have a second, server customized menu. This is opposed to&lt;br /&gt;
editing the official menus.&lt;br /&gt;
&lt;br /&gt;
The second menu is always opened automatically if present when player opens the menus by pressing ESC. If&lt;br /&gt;
the user clicks either menu, the official or the server custom menu, the other menu automatically closes.&lt;br /&gt;
The server custom menus have the same commands as the official menus, with the exception that onOpen event can not be defined.&lt;br /&gt;
If onOpen is defined, it is ignored.&lt;br /&gt;
&lt;br /&gt;
Following is an example of a server custom menu:&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Customized server menu has one requirement, there must be a file called menus_server_custom.txt. This file is used exactly like the old menus.txt. It defines the .menu files that are loaded for the custom menu. An example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// menu defs&lt;br /&gt;
// &lt;br /&gt;
{&lt;br /&gt;
	loadMenu { &amp;quot;ui/custom_main.menu&amp;quot; }&lt;br /&gt;
	loadMenu { &amp;quot;ui/rules.menu&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The custom_main.menu defined in the menus_server_custom.txt in this example, could look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		16&lt;br /&gt;
#define WINDOW_Y		232&lt;br /&gt;
#define WINDOW_WIDTH	160&lt;br /&gt;
#define WINDOW_HEIGHT	60&lt;br /&gt;
&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpCustomMain&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Main Menu //&lt;br /&gt;
&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;custom_main&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		0&lt;br /&gt;
	&lt;br /&gt;
	onEsc {&lt;br /&gt;
		close custom_main ;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;^7Example&amp;quot;, 232 )&lt;br /&gt;
	&lt;br /&gt;
// Buttons //&lt;br /&gt;
&lt;br /&gt;
	BUTTON( 6, 32, WINDOW_WIDTH-12, 18, &amp;quot;^7Rules&amp;quot;, .3, 14, close custom_main ; open rules )&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And finally, the rules.menu could look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		100&lt;br /&gt;
#define WINDOW_Y		16&lt;br /&gt;
#define WINDOW_WIDTH	128&lt;br /&gt;
#define WINDOW_HEIGHT	152&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpRules&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
// Options Menu //&lt;br /&gt;
	&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;rules&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		WINDOW_STYLE_FILLED&lt;br /&gt;
	&lt;br /&gt;
	onESC {&lt;br /&gt;
		close rules;&lt;br /&gt;
		open custom_main&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;RULES&amp;quot;, 94 )&lt;br /&gt;
	&lt;br /&gt;
	... Stuff for players to read in menu controls ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the menu is not complete. You can delete the &amp;quot;... Stuff for players to read in menu controls ...&amp;quot; or insert some controls that work in its place.&lt;br /&gt;
&lt;br /&gt;
The resulting files need to be packed into a zip file that is renamed to pk3 so that all the menu files and the &amp;quot;menus_server_custom.txt&amp;quot; are in and under ui directory.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
* When user opens the menus, both the official menu and the server customized menu are opened. The menus are opened in a way that the official menu is always on top in case the two menus overlap.&lt;br /&gt;
* If user clicks a button in either menu, the other menu is automatically closed by the mod. This also includes the case when user presses ESC to close the menus.&lt;br /&gt;
* The onOpen event is ignored in the custom menus.&lt;br /&gt;
* Menu files in the etmain directory or the official menus can not be modified and the server refuses to start if it detects such modifications.&lt;br /&gt;
* Old way of customizing the menus still work if the user already has the menus or he manually adds the menus. The restriction is that the server can not reference pk3 files that modify the menus.&lt;br /&gt;
* Menus for the customized voice chats are excluded from the checks.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1306</id>
		<title>Silent Creating Custom Menu</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1306"/>
		<updated>2015-09-14T18:02:16Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Customized Voice Chat Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, the following files have changed their name:&lt;br /&gt;
&lt;br /&gt;
wm_quickmessage.menu =&amp;gt; wm_quickmessage_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_quickmessageAlt.menu =&amp;gt; wm_quickmessageAlt_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_ftquickmessageAlt.menu =&amp;gt; wm_ftquickmessageAlt_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_ftquickmessage.menu =&amp;gt; wm_ftquickmessage_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using customized voice chats, please make sure the menu files are named as such. No other changes are required when converting between the versions.&lt;br /&gt;
&lt;br /&gt;
== Customized Server Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, server admins have the option to have a second, server customized menu. This is opposed to&lt;br /&gt;
editing the official menus.&lt;br /&gt;
&lt;br /&gt;
The second menu is always opened automatically if present when player opens the menus by pressing ESC. If&lt;br /&gt;
the user clicks either menu, the official or the server custom menu, the other menu automatically closes.&lt;br /&gt;
The server custom menus have the same commands as the official menus, with the exception that onOpen event can not be defined.&lt;br /&gt;
If onOpen is defined, it is ignored.&lt;br /&gt;
&lt;br /&gt;
Following is an example of a server custom menu:&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Customized server menu has one requirement, there must be a file called menus_server_custom.txt. This file is used exactly like the old menus.txt. It defines the .menu files that are loaded for the custom menu. An example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// menu defs&lt;br /&gt;
// &lt;br /&gt;
{&lt;br /&gt;
	loadMenu { &amp;quot;ui/custom_main.menu&amp;quot; }&lt;br /&gt;
	loadMenu { &amp;quot;ui/rules.menu&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The custom_main.menu defined in the menus_server_custom.txt in this example, could look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		16&lt;br /&gt;
#define WINDOW_Y		232&lt;br /&gt;
#define WINDOW_WIDTH	160&lt;br /&gt;
#define WINDOW_HEIGHT	60&lt;br /&gt;
&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpCustomMain&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Main Menu //&lt;br /&gt;
&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;custom_main&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		0&lt;br /&gt;
	&lt;br /&gt;
	onEsc {&lt;br /&gt;
		close custom_main ;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;^7Example&amp;quot;, 232 )&lt;br /&gt;
	&lt;br /&gt;
// Buttons //&lt;br /&gt;
&lt;br /&gt;
	BUTTON( 6, 32, WINDOW_WIDTH-12, 18, &amp;quot;^7Rules&amp;quot;, .3, 14, close custom_main ; open rules )&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And finally, the rules.menu could look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		100&lt;br /&gt;
#define WINDOW_Y		16&lt;br /&gt;
#define WINDOW_WIDTH	128&lt;br /&gt;
#define WINDOW_HEIGHT	152&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpRules&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
// Options Menu //&lt;br /&gt;
	&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;rules&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		WINDOW_STYLE_FILLED&lt;br /&gt;
	&lt;br /&gt;
	onESC {&lt;br /&gt;
		close rules;&lt;br /&gt;
		open custom_main;&lt;br /&gt;
                open main&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;RULES&amp;quot;, 94 )&lt;br /&gt;
	&lt;br /&gt;
	... Stuff for players to read in menu controls ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the menu is not complete. You can delete the &amp;quot;... Stuff for players to read in menu controls ...&amp;quot; or insert some controls that work in its place.&lt;br /&gt;
&lt;br /&gt;
The resulting files need to be packed into a zip file that is renamed to pk3 so that all the menu files and the &amp;quot;menus_server_custom.txt&amp;quot; are in and under ui directory.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
* When user opens the menus, both the official menu and the server customized menu are opened. The menus are opened in a way that the official menu is always on top in case the two menus overlap.&lt;br /&gt;
* If user clicks a button in either menu, the other menu is automatically closed by the mod. This also includes the case when user presses ESC to close the menus.&lt;br /&gt;
* The onOpen event is ignored in the custom menus.&lt;br /&gt;
* Menu files in the etmain directory or the official menus can not be modified and the server refuses to start if it detects such modifications.&lt;br /&gt;
* Old way of customizing the menus still work if the user already has the menus or he manually adds the menus. The restriction is that the server can not reference pk3 files that modify the menus.&lt;br /&gt;
* Menus for the customized voice chats are excluded from the checks.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1305</id>
		<title>Silent Creating Custom Menu</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1305"/>
		<updated>2015-09-14T14:04:04Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Customized Voice Chat Menus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Customized Voice Chat Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, the following files have changed their name:&lt;br /&gt;
&lt;br /&gt;
wm_quickmessage.menu =&amp;gt; wm_quickmessage_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_quickmessageAlt.menu =&amp;gt; wm_quickmessageAlt_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_ftquickmessageAlt.menu =&amp;gt; wm_ftquickmessageAlt_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_ftquickmessage.menu =&amp;gt; wm_ftquickmessage_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using customized voice chats, please make sure the menu files are named as such. No other changes are required when converting between the versions.&lt;br /&gt;
&lt;br /&gt;
== Customized Server Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, server admins have the option to have a second, server customized menu. This is opposed to&lt;br /&gt;
editing the official menus.&lt;br /&gt;
&lt;br /&gt;
The second menu is always opened automatically if present when player opens the menus by pressing ESC. If&lt;br /&gt;
the user clicks either menu, the official or the server custom menu, the other menu automatically closes.&lt;br /&gt;
The server custom menus have the same commands as the official menus, with the exception that onOpen event can not be defined.&lt;br /&gt;
If onOpen is defined, it is ignored.&lt;br /&gt;
&lt;br /&gt;
Following is an example of a server custom menu:&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Customized server menu has one requirement, there must be a file called menus_server_custom.txt. This file is used exactly like the old menus.txt. It defines the .menu files that are loaded for the custom menu. An example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// menu defs&lt;br /&gt;
// &lt;br /&gt;
{&lt;br /&gt;
	loadMenu { &amp;quot;ui/custom_main.menu&amp;quot; }&lt;br /&gt;
	loadMenu { &amp;quot;ui/rules.menu&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The custom_main.menu defined in the menus_server_custom.txt in this example, could look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		16&lt;br /&gt;
#define WINDOW_Y		232&lt;br /&gt;
#define WINDOW_WIDTH	160&lt;br /&gt;
#define WINDOW_HEIGHT	60&lt;br /&gt;
&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpCustomMain&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Main Menu //&lt;br /&gt;
&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;custom_main&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		0&lt;br /&gt;
	&lt;br /&gt;
	onEsc {&lt;br /&gt;
		close custom_main ;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;^7Example&amp;quot;, 232 )&lt;br /&gt;
	&lt;br /&gt;
// Buttons //&lt;br /&gt;
&lt;br /&gt;
	BUTTON( 6, 32, WINDOW_WIDTH-12, 18, &amp;quot;^7Rules&amp;quot;, .3, 14, close custom_main ; open rules )&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And finally, the rules.menu could look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		100&lt;br /&gt;
#define WINDOW_Y		16&lt;br /&gt;
#define WINDOW_WIDTH	128&lt;br /&gt;
#define WINDOW_HEIGHT	152&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpRules&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
// Options Menu //&lt;br /&gt;
	&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;rules&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		WINDOW_STYLE_FILLED&lt;br /&gt;
	&lt;br /&gt;
	onESC {&lt;br /&gt;
		close rules ;&lt;br /&gt;
		open custom_main&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;RULES&amp;quot;, 94 )&lt;br /&gt;
	&lt;br /&gt;
	... Stuff for players to read in menu controls ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the menu is not complete. You can delete the &amp;quot;... Stuff for players to read in menu controls ...&amp;quot; or insert some controls that work in its place.&lt;br /&gt;
&lt;br /&gt;
The resulting files need to be packed into a zip file that is renamed to pk3 so that all the menu files and the &amp;quot;menus_server_custom.txt&amp;quot; are in and under ui directory.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
* When user opens the menus, both the official menu and the server customized menu are opened. The menus are opened in a way that the official menu is always on top in case the two menus overlap.&lt;br /&gt;
* If user clicks a button in either menu, the other menu is automatically closed by the mod. This also includes the case when user presses ESC to close the menus.&lt;br /&gt;
* The onOpen event is ignored in the custom menus.&lt;br /&gt;
* Menu files in the etmain directory or the official menus can not be modified and the server refuses to start if it detects such modifications.&lt;br /&gt;
* Old way of customizing the menus still work if the user already has the menus or he manually adds the menus. The restriction is that the server can not reference pk3 files that modify the menus.&lt;br /&gt;
* Menus for the customized voice chats are excluded from the checks.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Changelog&amp;diff=1304</id>
		<title>Silent Changelog</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Changelog&amp;diff=1304"/>
		<updated>2015-09-14T13:23:48Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Version 0.9.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 0.9.0 ==&lt;br /&gt;
* Added: Server customizable menu that is opened in addition to the silEnT mod menu.&lt;br /&gt;
* Added: Possibility for admins to modify the loading screen of their server. As opposed to modifying the loading screen of every server.&lt;br /&gt;
* Added: New client command mem_report. This command prints diagnostics of the client memory pooling.&lt;br /&gt;
* Added: New client cvars: cg_numPopups, cg_popupStayTime and cg_popupFadeTime for controlling popup behaviour.&lt;br /&gt;
* Added: Server checks the setup and refuses to start if problems are found. This includes checks that official menus are not modified.&lt;br /&gt;
* Added: New option g_forceLimboHealth 2, which matches the ETPro gib damage (125).The option 1 remains as the original ETPub gib health (150).&lt;br /&gt;
* Added: Rate setting is incresed automatically step by step if fragmented snapshots are received from the server. This improves the playability and removes the need to force this setting to players.&lt;br /&gt;
* Added: Server extension modules. With this technology, server functionality can be expanded to various tasks without bloating the qagame library or forcing every admin to use same extension.&lt;br /&gt;
* Added: Statistics module. This module collects various game play data into a relational database. Current choices are SQLite3 and PostgreSQL.&lt;br /&gt;
* Added: Censor module. This module can be configured to censor names and chat with real regular expressions.&lt;br /&gt;
* Added: new fun wars: !knifewar, !stenwar, !riflenadewar, !rifleshootwar, !pistolwar (added g_headshot bitmask value 4 to control instagib of headshot for pistolwar).&lt;br /&gt;
* Added: New server cvar: g_incognitoCountryFlag to control the country flag displayed for the incognito admin.&lt;br /&gt;
* Added: If g_dmg is set server side, body hitsounds have different volumes depending of the damage. This can be disabled by the players.&lt;br /&gt;
* Added: Forcing some cvars is now restricted. These include the client side hitsound selection and theme.&lt;br /&gt;
* Added: Player screenshots. 2.6b clients and forward are supported. Screenshot will have Server name, IP, Player Name, silEnT GUID, PB GUID and Player IP in it.&lt;br /&gt;
* Fixed: G_QueryClientCvar/et_CvarValue can no longer be used to query rcon password.&lt;br /&gt;
* Fixed: The arm hit detection was not working correctly from the side shots. Fixed by adding additional temporary box for the torso.&lt;br /&gt;
* Fixed: !rename admin command doesn&#039;t allow adding backslashes to names anymore.&lt;br /&gt;
* Fixed: sv_cvar OUT handling.&lt;br /&gt;
* Fixed: Objective carry icon counting spectators too.&lt;br /&gt;
* Fixed: Crashes related to UI_Alloc running out of memory. It does not run out of memory.&lt;br /&gt;
* Fixed: Ties on highest fragger are solved by comparing kill/death difference. I.e. less deaths will win.&lt;br /&gt;
* Fixed: When g_realbody was set to 1. With certain crouch animations the middle box was not high enough to cover shoulders.&lt;br /&gt;
* Fixed: Ties on the most headshots are solved by comparing the amount of shots fired to reach the amount. The player with less shots fired will win.&lt;br /&gt;
* Fixed: et_UpgradeSkill Lua hook was passing invalid client numbers to scripts.&lt;br /&gt;
* Fixed: Allied hand grenades erroneously recorded kills as axis hand grenades. This change should be noted by all log parsers that parse MOD_ values from kills.&lt;br /&gt;
* Fixed: g_headshot bitmask value 2. It used to apply the g_instagibDamage to every hit. Fixed to apply the damage to only headshots.&lt;br /&gt;
* Fixed: tripmine palcement bug leading to exploit (thanks to Beck for the report).&lt;br /&gt;
* Fixed: theme bug regarding small titled windows.&lt;br /&gt;
* Fixed: report bug official menu had bad background definition (with widescreen).&lt;br /&gt;
* Fixed: The g_weapons flag 32768 was treated as always enabled if any of the g_weapons flags was set.&lt;br /&gt;
* Fixed: Missing ETPro icon from the SD credits menu.&lt;br /&gt;
* Fixed: Non-literal characters not allowed in names anymore.&lt;br /&gt;
* Fixed: Omni-bot + tripmine crash when the map script is missing &amp;quot;script_multiplayer&amp;quot;.&lt;br /&gt;
* Removed: ui_autoredirect client cvar. This is used to hack player games. Redirecting still works, but players are presented a choice in a popup.&lt;br /&gt;
* Improved: silEnT AC update.&lt;br /&gt;
* Improved: rifle war nade shooting is not influenced by the charge bar anymore.&lt;br /&gt;
* Improved: Menus cleaned. All options can be found under the Options button.&lt;br /&gt;
* Improved: Increased subnet ban limit to 512.&lt;br /&gt;
&lt;br /&gt;
== Version 0.8.2 ==&lt;br /&gt;
&lt;br /&gt;
*Added: g_goatSound server cvar to enable/disable goat sounds on knife kills.&lt;br /&gt;
*Added: enemy team objective carry indicator. Use g_misc flag 1024 to enable it on the server and cg_objcarry client cvar to enable it in the HUD.&lt;br /&gt;
*Fixed: Players carrying objectives are now shown correctly.&lt;br /&gt;
*Fixed: !useredit was not able to set level higher than 99 when executed as rcon. !setlevel was working correctly.&lt;br /&gt;
*Fixed: The name of the disguised covert op was not drawn to spectators.&lt;br /&gt;
*Fixed: The class icon in the crosshair player name to be the current class instead of the latched class.&lt;br /&gt;
*Fixed: wm_sayPlayerClass now announces the latched class correctly, even when using class swithcer.&lt;br /&gt;
*Fixed: If map voting was enabled but g_mapVoteFlags 4 was not enabled. It was possible to issue multiple votes by hand using /mapvote command.&lt;br /&gt;
*Fixed: debriefing screen buttons didn&#039;t handle highlight theme parameter properly.&lt;br /&gt;
*Fixed: The output of finger command didn&#039;t show warnings if there were more than 2 in total.&lt;br /&gt;
*Fixed: UI crash in menu&lt;br /&gt;
*Fixed: Minor bug with g_maxPanzerSuicides introduced in 0.8.0. If panzer suicides were disallowed completely, the player was not informed about it.&lt;br /&gt;
*Fixed: g_muteRename allowed to change the name when player used /reconnect&lt;br /&gt;
*Fixed: When unmuting/muting during intermission/warmup, the mute wasn&#039;t saved.&lt;br /&gt;
*Fixed: cg_effectDistance was affecting the played sounds.&lt;br /&gt;
*Fixed: g_classWeapons not working for class command&lt;br /&gt;
*Fixed: class command not handling secondary weapon parameter properly, it didn&#039;t influence the limbo menu, e.g. /class s 3 2 wouldn&#039;t select akimbo pistols or SMG as secondary in limbo.&lt;br /&gt;
*Fixed: switching problem with double SMG&lt;br /&gt;
*Improved: If player is completely dead in the game, the scoreboard shows the player&#039;s latched class to other team members.&lt;br /&gt;
*Improved: UI tabbing to edit field makes it focused.&lt;br /&gt;
*Improved: limbo weapons menu for soldier class.&lt;br /&gt;
*Improved: sort order of the map vote menu map list.&lt;br /&gt;
&lt;br /&gt;
== Version 0.8.1 ==&lt;br /&gt;
*Added: Flag 32 to g_disableComplaints to disable complaints completely.&lt;br /&gt;
*Added: ETPro style g_proneDelay.&lt;br /&gt;
*Added: Custom, admin defined, votes.&lt;br /&gt;
*Added: 3rd UI theme that resembles the original ET look.&lt;br /&gt;
*Added: MorphOS support.&lt;br /&gt;
*Improved: engineer work progress bar (construct/arm/disarm) and covert ops progress bar (mines spotting, uniform stealing) - added background to display the amount of work to do.&lt;br /&gt;
*Fixed: Some text bugs related to g_recognition cvar.&lt;br /&gt;
*Fixed: ETTV clients were kicked for not having silEnT GUIDs.&lt;br /&gt;
*Fixed: Admin log was missing some data with g_logOption 16384. Also, new format with admin log when using this option.&lt;br /&gt;
*Fixed: Client exploit affecting various mods which caused the server to stall until the engine watchdog triggered.&lt;br /&gt;
*Fixed: The shrubbot.cfg configuration file is cleaned automatically from expired bans and warnings on each map start. Instead of waiting for it to be written as a result of an admin command.&lt;br /&gt;
*Fixed: Memory leak with subnet bans.&lt;br /&gt;
*Fixed: Axis covertop couldn&#039;t select pistols through weapon banks.&lt;br /&gt;
*Fixed: UI; tooltip text color theming.&lt;br /&gt;
*Fixed: Improvised Demolition not showing up in final map stats.&lt;br /&gt;
*Fixed: mines spotting progress bar not always displayed.&lt;br /&gt;
&lt;br /&gt;
== Version 0.8.0 ==&lt;br /&gt;
*Added: silEnT AntiCheat, this is an old feature existing several versions in the mod, that is now made public. Control the behaviour with g_silentac.&lt;br /&gt;
*Added: New read only cvar, sv_sac. When silEnT AC is set to autoban, this cvar is set. This cvar can be used by external server trackers to enable/disable server anti cheat status on their lists.&lt;br /&gt;
*Added: New Lua hook et_IntermissionStarts( round ). This hook is called right before the intermission. So that any changes to the cvars in the script, will take effect before the actual intermission. Do note that this will not run in the background and the script will need to exit fast just like always during the game.&lt;br /&gt;
*Added: New g_logOptions flag 16384. When this flag is set, the admin log will use new format.&lt;br /&gt;
*Added: Game minimizer, so far for linux only (minimize via menu or /minimize command).&lt;br /&gt;
*Added: New weapon for Soldier: Improvised Demolition Charge (g_enableDemolition cvar).&lt;br /&gt;
*Added: g_recognition cvar to enable/disable additional recognition notifications for players doing objective.&lt;br /&gt;
*Added: !country command that displays the country of the player.&lt;br /&gt;
*Added: g_muteRename cvar which, if enabled (set to 1), doesn&#039;t allow the muted player to change his name.&lt;br /&gt;
*Added: cg_debugBullets. In combination with g_debugBullets, it can be used to visually test the antilag.&lt;br /&gt;
*Improvement: UI - items selected by keyboard (TAB, arrows) drawn as hovered, now we know which one has focus.&lt;br /&gt;
*Improvement: Danger zone marker size based on the map size.&lt;br /&gt;
*Fixed: Distorted player icon in map when in spectator and wide screen aspect ratio.&lt;br /&gt;
*Fixed: Player scoreboard no longer displays 0.000 to PRW or KR when server doesn&#039;t have those enabled but the client cg_scoreboard cvar is set to show those.&lt;br /&gt;
*Fixed: XP save doesn&#039;t need to be enabled to save mutes, weapon statistic, KR or PRW.&lt;br /&gt;
*Fixed: Wrong compass grid and map position with widescreen.&lt;br /&gt;
*Fixed: Antilag issue regarding Omni-bots. The Omni-bot hitboxes were not in the place where the players saw the bots while running.&lt;br /&gt;
*Fixed: Last blood message was not printed if the client number of the player who made the last kill was 0.&lt;br /&gt;
*Fixed: MG42 will not make headshots unless enabled.&lt;br /&gt;
*Fixed: Many typos regarding log prints on reading different config files.&lt;br /&gt;
*Fixed: Announcement positions for custom max values.&lt;br /&gt;
*Fixed: osp fight sound not played fully (if the sound is longer).&lt;br /&gt;
*Fixed: Memory leak in Lua et.trap_FS_Read.&lt;br /&gt;
*Fixed: panzerwar bugs: 1) g_maxPanzerScuicides behavior, 2) weapon charge bar behavior, 3) panzerfaust auto switching to nades after couple fires&lt;br /&gt;
*Fixed: giba minor bug (did not gib players that were protected by g_spawnInvul)&lt;br /&gt;
*Fixed: Panzerwar and sniperwar no longer lose original weapon values when map changes.&lt;br /&gt;
*Fixed: Missing head box when g_debugBullets is 3 or higher.&lt;br /&gt;
*Fixed: Fixed no_ammo icon shown for binoculars (g_weapons, flag 8192)&lt;br /&gt;
*Fixed: riflewar bug with animation of grenade being unloaded after each shot.&lt;br /&gt;
*Fixed: Very rare client crash.&lt;br /&gt;
&lt;br /&gt;
== Version 0.7.2 ==&lt;br /&gt;
*Added: Lua can access sess.rating, sess.rating_variance, sess.overall_killrating and sess.overall_killvariance with gentity_get function. These values are read only.&lt;br /&gt;
*Fixed: Tapping new weapon while reloading the old weapon, could result changing to a new weapon after reloading but when switching back, the old weapon was empty (http://mygamingtalk....-184-reload-bug)&lt;br /&gt;
*Fixed: Class restriction bug introduced in 0.7.0.&lt;br /&gt;
*Fixed: Limbo panel displays the latched class. Always. Introduced in 0.7.1.&lt;br /&gt;
*Fixed: !givexp performs proper skill upgrade for the player.&lt;br /&gt;
*Fixed: panzerwar mode: shooting panzerfaust (in regard to chargebar) and run speed.&lt;br /&gt;
*Fixed: Omni-bots stealing restricted weapons from other players.&lt;br /&gt;
&lt;br /&gt;
== Version 0.7.1 ==&lt;br /&gt;
&lt;br /&gt;
*Fixed: Spawning with non selected class bug introduced in 0.7.0.&lt;br /&gt;
*Fixed: Enemy player positions seen by covert ops in the compass.&lt;br /&gt;
&lt;br /&gt;
== Version 0.7.0 ==&lt;br /&gt;
&lt;br /&gt;
*Added: New rcon command dbcleanup that can be used to clean up the database records. The command includes removing duplicated or unusable records and GUID checks.&lt;br /&gt;
*Added: New shrubbot command !teamstats that can be used to see the player kill and ratings statistics from one team.&lt;br /&gt;
*Added: Shrubbot flags 6(does not need to specify a reason) and 8(does not need to specify a duration) now work with the !mute command.&lt;br /&gt;
*Added: g_maxIgnoresPerMap server cvar. This controls how many times one player can ignore another player during one map and stops players from spamming others with the ignore command.&lt;br /&gt;
*Added: g_killRating flag 8. With this flag admins can disable kill rating from the scoreboards. This does not have effect on the flag 2.&lt;br /&gt;
*Added: Full body prediction from ETPub. g_misc flag 512. Same as ETPub g_misc 32+256. This makes it harder to get inside walls etc, but can also cause problems when proning through windows etc.&lt;br /&gt;
*Added: Danger zones - new covert ops function/ability (read more in the documentation)&lt;br /&gt;
*Added: icons for popup messages (ammo, medpacks, danger zones).&lt;br /&gt;
*Added: new flag 32768 to g_weapons cvar - causes the player that shot the tripmine (and by this killed other player) to score the kill&lt;br /&gt;
*Improved: timerset and resettimer commands can be used during warmup&lt;br /&gt;
*Improved: some improvements to the screen resolutions chooser.&lt;br /&gt;
*Improved: !finger command now also displays warnings issued to the player if there are any.&lt;br /&gt;
*Improved: compass command map drawing.&lt;br /&gt;
*Improved: crazygravity and crazyspeed commands can be tuned by additional cvars if default values are not enough (g_min_crazyspeed, g_max_crazyspeed, g_min_crazygravity, g_max_crazygravity).&lt;br /&gt;
*Fixed: When banning from team damage, only using shrubbot bans without specifying the kick time.&lt;br /&gt;
*Fixed: Some command map icons were missing when in spectator team.&lt;br /&gt;
*Fixed: When switching from rifle to another weapon too fast after firing the grenade and switching back to the rifle, the weapon was in the alternate mode but without loaded grenade.&lt;br /&gt;
*Fixed: Many prediction errors. Including double dropping the panzer shell after shot.&lt;br /&gt;
*Fixed: Players can no longer select classes that are not available in the limbo menu.&lt;br /&gt;
*Fixed: Only real characters allowed in names.&lt;br /&gt;
*Fixed: If the selected weapon is not available for next spawn, the class command will not change the class.&lt;br /&gt;
*Fixed: The condition with g_classWeapons settings and weapon limitations that caused players to get kicked from the server when clicking the team button.&lt;br /&gt;
*Fixed: Bug in the handling of g_spectator flag 1. Players were able to enter opponent players after all teammates were dead.&lt;br /&gt;
*Fixed: Client crashes related to cg_gun_frame being set.&lt;br /&gt;
*Fixed: !subnets command was printing itself as showsbans instead of subnets.&lt;br /&gt;
*Fixed: Reading subnet bans with full octets and treating them as partial. Also writing them as partial on next shrubbot write.&lt;br /&gt;
*Fixed: g_classWeapons too restrictive, couldn&#039;t pick up enemy SMGs from the ground.&lt;br /&gt;
*Fixed: g_classWeapons with g_mode. When g_mode was set to 8 Thompson and MP40 couldn&#039;t be picked up by coverts.&lt;br /&gt;
*Fixed: command map entities were not removed on team switch/disconnect. Concerned: landmines, trip mines, danger zone markers.&lt;br /&gt;
&lt;br /&gt;
== Version 0.6.3 ==&lt;br /&gt;
&lt;br /&gt;
Fixed: Incompatibility with ET Legacy introduced in 0.6.2.&lt;br /&gt;
&lt;br /&gt;
== Version 0.6.2 ==&lt;br /&gt;
&lt;br /&gt;
*Added: !subnetban command can now cut the IP inside the octet with &#039;x&#039;. For example, &amp;quot;!subnetban 12x&amp;quot; will ban IP adresses 12x.xxx.xxx.xxx.&lt;br /&gt;
*Added: IP address is logged when player is blocked by a subnetban.&lt;br /&gt;
*Added: Lua callback et_ClientBinary( client, checksum ) which passes the checksums of client binaries to the Lua scripts.&lt;br /&gt;
*Added: Functionality to query client cvars with Lua. API function et.G_QueryClientCvar and callback et_CvarValue.&lt;br /&gt;
*Added: New server cvar g_includedMaps. Maps set in this cvar string, will be always included in the map voting list. Regardless of any other restrictions.&lt;br /&gt;
*Added: 2 new flags to g_classWeapons (16,32) to enable/disable MP40 and Thompson for soldiers.&lt;br /&gt;
*Added: admin chat messsage window.&lt;br /&gt;
*Added: more ET:Legacy binaries added to the list of known client binaries.&lt;br /&gt;
*Added: fast shooting. Use g_weapons flag 16384 to enable it.&lt;br /&gt;
*Added: !crazygravity and !crazyspeed commands.&lt;br /&gt;
*Reworked: When g_clientBinaries flag 4 is set, and the binary is a already known cheat binary, it is clearly reported instead of the usual unknown client binary.&lt;br /&gt;
*Reworked: match_warmupDamage, if set to 2 it is effective also when FF is disabled.&lt;br /&gt;
*Fixed: Sometimes, the information of the person who muted was not displayed.&lt;br /&gt;
*Fixed: Unique silEnT GUIDs required between connected players. This caused little confusion when banning.&lt;br /&gt;
*Fixed: g_antiwarp from the ETPub repository.&lt;br /&gt;
*Fixed: g_dyno chaining blast radious fix from crapshoot.&lt;br /&gt;
*Fixed: userxdb.db was slowly filling with records that were not used or needed.&lt;br /&gt;
*Fixed: Lua API function et.G_EntitiesFree.&lt;br /&gt;
*Fixed: Full mod URL shown in the serverinfo menu.&lt;br /&gt;
*Fixed: Some alignment issues with the smaller score board.&lt;br /&gt;
*Fixed: Revive icons are shown again.&lt;br /&gt;
*Fixed: With forcecvar and sv_cvar, the existing limits are checked and updated if the cvar already exists in the limits. Instead of just adding the same cvar at the end of the config strings.&lt;br /&gt;
*Fixed: Clients protected against overflowing sv_cvar and forcecvar config strings.&lt;br /&gt;
*Fixed: Custom commands can now have quotes. This is usefull if the command is then forwarded to a new tokenizer. For example, Lua scripts can access arguments correctly.&lt;br /&gt;
*Fixed: Rcon can now call custom commands as well. Before, the command line was truncated when doing shortcut replacement for the console.&lt;br /&gt;
*Fixed: Class stealing no longer kicks old players out from their classes if the class is full. The stealing is prevented.&lt;br /&gt;
*Fixed: Server crash when player was muted through rcon.&lt;br /&gt;
*Fixed: !finger command output is now easier to read if the entity who muted a player is player himself even if the player would have named himself as silEnT or Console.&lt;br /&gt;
*Fixed: weapon pickup bugs&lt;br /&gt;
*Fixed: knife bug when throwing knives are disabled by g_throwableKnives cvar.&lt;br /&gt;
*Fixed: no progress indicator during disarming dyna after class steal&lt;br /&gt;
&lt;br /&gt;
== Version 0.6.1 ==&lt;br /&gt;
&lt;br /&gt;
*Added: New optional parameter &amp;quot;syntax&amp;quot; to custom command blocks. This allows creating proper syntax help to show with !help command.&lt;br /&gt;
*Added: Shrubot custom commands can now have color codes. The colors are not required when using the commands.&lt;br /&gt;
*Changed: The maximum number of custom commands increased to 95.&lt;br /&gt;
*Fixed: Double amount of level stars in the map change debriefing.&lt;br /&gt;
*Fixed: Many coloring errors related to white nicks.&lt;br /&gt;
*Fixed: Server side was not handling the new skill_(x) cvars correctly.&lt;br /&gt;
*Fixed: Killed sniper had scope enabled with normal fov after revive. Depending how the sniper was killed.&lt;br /&gt;
*Fixed: !baninfo was not displaying permanent bans in Expires in field.&lt;br /&gt;
*Fixed: Stamina bar color bug.&lt;br /&gt;
*Fixed: Lua documentation. The G_ClientNumberFromString is actually ClientNumberFromString.&lt;br /&gt;
*Fixed: Some typos with shrubbot commands and inconsistencies with !help.&lt;br /&gt;
*Fixed: Shrubbot !help now accepts the command names with ! infront.&lt;br /&gt;
*Fixed: Unified !help syntax notation.&lt;br /&gt;
*Fixed: Player names that were both online and previously stored, were printed twice in the !aliassearch command output.&lt;br /&gt;
*Fixed: Formatting bug when more the 10 matching aliases for a player.&lt;br /&gt;
*Fixed: With custom commands, the missing command line parameters are stripped from the command.&lt;br /&gt;
*Fixed: Player name replacement gives better error messages for every case, including the command name.&lt;br /&gt;
*Fixed: Teammate healthbars were flashing wrong health data. Bug introduced in version 0.6.0.&lt;br /&gt;
*Fixed: Player idents were enforcing bans to a wide range of innocent players. Bug introduced in 0.6.0.&lt;br /&gt;
&lt;br /&gt;
== Version 0.6.0 ==&lt;br /&gt;
&lt;br /&gt;
*Added: New dialog window under silEnT menu for screen resolutions. This dialog has autodetected possible resolution and includes widescreen resolutions.&lt;br /&gt;
*Added: ETPro compatible access to sess.aWeaponStats (a GET by weapon index returns a 5-element table of numbers), from pheno of ETPub.&lt;br /&gt;
*Added: Optional aliases database. New commands !aliases, !aliasesdel, !aliassearch and !userinfo now has an option to show the stored aliases. New server cvar g_dbMaxAliases.&lt;br /&gt;
*Added: Mute information is displayed in with the !finger command. This includes time left, mute reason and who muted.&lt;br /&gt;
*Added: Players can freely choose the type of hit sounds they prefer. This is controlled with cg_hitSoundType cvar. Related to this, server admins can configure the type of hit sounds the players default if they do not specifically select any type. By defult, the cg_hitSoundType is 0, which means server configured hit sounds and allowing custom hit sounds in custom pk3 files. Read documentation about g_hitsounds, g_defaultHitSounds and cg_hitSoundType. There is also an additional paragraph about adding custom hit sounds.&lt;br /&gt;
*Added: g_misc flag 256. Setting this flag disables the &amp;quot;First Blood&amp;quot; announcement.&lt;br /&gt;
*Added: g_logOptions flag 1024. This flag allows logging every player drop. It can be usefull for inspecting the server operation, but it will also cause lot of needless log writes.&lt;br /&gt;
*Added: g_realPlayTime cvar. Used to show additional real play time of the payer (without spec time) in the debriefing screen.&lt;br /&gt;
*Added: Flag 8 to g_playerCounting. Bots are not included into the player count.&lt;br /&gt;
*Added: Cvar based enabling of both Thompson and MP40 to the limbo menu selection regardless of the team (g_classWeapons, flag 8)&lt;br /&gt;
*Added: cg_effectDistance client cvar which can be used to control the maximum distance to draw the bullet effects.&lt;br /&gt;
*Reworked: Class skills can be freely enabled/disabled in any order using 0 and -1 in the skill_(x) server cvars.&lt;br /&gt;
*Reworked: The !finger command now shows the client operating system, again. This information was removed in the 0.5.2 because of unreliability in the full string.&lt;br /&gt;
*Reworked: PPSh first person view model.&lt;br /&gt;
*Reworked: The commands !gib, !lol, !pip and !pop no longer do it to everyone if target is not specified.&lt;br /&gt;
*Fixed: Statistics bug with satchel charge.&lt;br /&gt;
*Fixed: Shrubbot commands !useredit and !usereditpb didn&#039;t allow editing players with level higher then 32 when attempted with rcon.&lt;br /&gt;
*Fixed: A bug in the player name cleaning allowed empty names using spaces.&lt;br /&gt;
*Fixed: Player name doesn&#039;t change anymore everytime the name edit field loses focus. OK button must be clicked for the changes to take effect.&lt;br /&gt;
*Fixed: Persistent SMG kills and deaths were getting lost if the player reconnected during the map.&lt;br /&gt;
*Fixed: Dropping the helmet multiple times when repeated hits to the head. With antilag enabled.&lt;br /&gt;
*Fixed: g_inactivityOptions flag 4 was not moving players to spectator. Fix from pheno of ETPub.&lt;br /&gt;
*Fixed: Lagometer transparency (couldn&#039;t change lagometer transparency)&lt;br /&gt;
*Fixed: Fireteam window transparency (improper drawing)&lt;br /&gt;
*Fixed: Fireteam member information going over the window edge when latching to another class.&lt;br /&gt;
*Fixed: g_noSkillUpgrades now locks the skills to the enabled ones, instead of changing every skill to 0.&lt;br /&gt;
*Fixed: !readadmins command did not add admins correctly into the database. Versions affected on various levels from 0.5.0 to 0.5.2.&lt;br /&gt;
*Fixed: Client inactivity timer ETPro compatible. Fix from pheno of ETPub.&lt;br /&gt;
*Fixed: animation timing bug mainly for weapalts (switch to/from)&lt;br /&gt;
*Fixed: reverted back (removed) fix for thrown knife dodging introduced in 0.5.2 version.&lt;br /&gt;
&lt;br /&gt;
== Version 0.5.2 ==&lt;br /&gt;
&lt;br /&gt;
*Added: g_playerCounting server cvar. This is used with optional player blocks.&lt;br /&gt;
*Added: Optional [player] blocks to the map configs. Map config commands can be executed based on the player amount on the server.&lt;br /&gt;
*Added: g_clientBinaries server cvar. Server admins may choose to refuse players with unknown binaries. List of known binaries in the documentation.&lt;br /&gt;
*Added: tripmines ids, check g_mineid cvar for details. Now tripmines get ids as well, so we can see who planted them.&lt;br /&gt;
*Added: all game types shown in server browser (Map Voting - MV, Team Death Match - TDM). Filters handling new types as well.&lt;br /&gt;
*Added: restriction to g_skills 1, non covert players can spot mines for the team only if they are close enough.&lt;br /&gt;
*Added: ammo of the weapon is shown for the weapon we want to pickup from the ground. Set server side with g_weapons cvar (flag 8192)&lt;br /&gt;
*Added: stance indicator (can be enabled in the HUD editor, disabled by default)&lt;br /&gt;
*Added: themed HUD bars (health, stamina, weap recharge). cg_themedBars cvar to turn it on/off. Avalable also in silent THEMES menu.&lt;br /&gt;
*Added: multiple recipient private messages command and multiple selecting for Private Messages in PM list window.&lt;br /&gt;
*Added: Possibility for new announcement sounds for death sprees and spree ends.&lt;br /&gt;
*Added: New shrubbot command !updatepbguid which can be used to manually update the stored PB GUID to the current one of the player.&lt;br /&gt;
*Added: New shrubbot command !levlist which lists all the server admin levels.&lt;br /&gt;
*Added: New shrubbot command !levinfo which displays all the information about the admin level.&lt;br /&gt;
*Improvement: Possible FPS improvement for players that have low FPS performance.&lt;br /&gt;
*Fixed: Potential crash bug with subnet bans.&lt;br /&gt;
*Fixed: The Admin Level Protection was not giving authentication with !setlevel to the lowest protected level.&lt;br /&gt;
*Fixed: stamina changes not visible in spec.&lt;br /&gt;
*Fixed: !finger command now shows the current PB GUID. This was supposed to be changed in 0.5.1 but was not. The !finger command is now properly verbose about PB GUID differences and displays the player admin level as well. Also, the command no longer displays non relevant information of the server bots but only the name, the slot number and the admin level of the bot.&lt;br /&gt;
*Fixed: Ban escalation printed garbage short GUIDs in the ban messages itself (8 character GUID) when the previous ban did not have PB GUID associated with it.&lt;br /&gt;
*Fixed: Added N!trox&#039;s teamchat height fix during intermission.&lt;br /&gt;
*Fixed: HUD editor help window position and themed it.&lt;br /&gt;
*Fixed: Player positions were sometimes wrong in the command map.&lt;br /&gt;
*Fixed: Aspect ratio issues with command map entities.&lt;br /&gt;
*Fixed: Boosting (pushing) team players by shooting at them when FF is off.&lt;br /&gt;
*Fixed: silEnT GUIDs were not always recognzed correctly. Bug was introduced in the 0.5.1.&lt;br /&gt;
*Fixed: ETPro behaviour, et_ClientBegin Lua is called only once for player and not for every team change.&lt;br /&gt;
*Fixed: !baninfo command was displaying bad short GUIDs for bans without GUIDs.&lt;br /&gt;
*Fixed: When FF was not enabled, the disguised friendly covert op health was displayed incorrectly.&lt;br /&gt;
*Fixed: team_maxSoldiers restriction was not enforced.&lt;br /&gt;
*Changed: The default value of cg_gun_fovscale changed to &amp;quot;0&amp;quot;. No longer the need for admins to force it to players.&lt;br /&gt;
&lt;br /&gt;
== Version 0.5.1 ==&lt;br /&gt;
*Added: !hstats, command will display the hitregions players are hitting.&lt;br /&gt;
*Added: g_medics flag 512, adrenaline takes only half charge.&lt;br /&gt;
*Added: g_adrendmgreduction, admins can control the damage reduction when players under the effect of adrenaline are hit.&lt;br /&gt;
*Added: themed Draws (time, fps, timer, speedometer), K/D/S display and lagometer. New cvar for this: cg_themedDraws {0,1}: 0-use the old style, 1- themed style&lt;br /&gt;
*Added: new flag to g_friendlyFireOpts: 32. Only the engineer that planted the landmine can trigger/defuse it.&lt;br /&gt;
*Added: g_realbody, possibility for server admins to set up smaller body hitboxes&lt;br /&gt;
*Fixed: !userlist command was not working if noone was online on the server.&lt;br /&gt;
*Fixed: In certain cases same player was displayed multiple times on the userlist output.&lt;br /&gt;
*Fixed: SP_team_WOLF_objective: exceeded MAX_MULTI_SPAWNTARGETS (16), fix from flms of ETPub&lt;br /&gt;
*Fixed: !showbans didn&#039;t always display bans properly when the banned player didn&#039;t have PB GUID. Also, silEnT ID is now included in the list.&lt;br /&gt;
*Fixed: Warmup was not dislayed to players before the warmup countdown started.&lt;br /&gt;
*Fixed: Proned players moving when others were standing on their backs.&lt;br /&gt;
*Fixed: vid_restart crash&lt;br /&gt;
*Fixed: Temp Ban System didn&#039;t handle silEnT GUIDs&lt;br /&gt;
*Fixed: Passed nextmap vote will now correctly go into intermission when map voting is enabled.&lt;br /&gt;
*Fixed: maps not listed in the vote menu when game type is mapvoting or TDM&lt;br /&gt;
*Fixed: not themed fireteam menus&lt;br /&gt;
*Fixed: additional space behind location in fireteam window&lt;br /&gt;
*Reworked: The K/D in the scores is renamed to KR to reduce confusion about it.&lt;br /&gt;
*Reworked: The !finger output prints the current PB GUID of the player. Not the one that is stored in the database.&lt;br /&gt;
*Reworked: The silEnT GUID handling is changed a little. This prevents certain types of copy paste spoofings. Note, players that are not stored to the database with valid PB GUIDs will create new player records. Also, from the old ban lists, at least the silEnT GUID (sguid) fields must be cleared to prevent false bans.&lt;br /&gt;
*Reworked: Lua interpreter is now built into the server binary. This will make installing easier.&lt;br /&gt;
*Removed: g_realHead realistic hitboxes from ETPub/zinx are now used always&lt;br /&gt;
*Removed: g_mapVoteFlags no longer has flag 16. If admin needs a command to get next map in rotation when map voting is enabled, he can easily create one executing &amp;quot;vstr nextmap&amp;quot;.&lt;br /&gt;
*Removed: g_spoofOptions, the spoofing is now checked unconditionally.&lt;br /&gt;
*Removed: g_punkbuster, the PunkBuster is no longer supported by EvenBalance and this cvar is no longer needed.&lt;br /&gt;
&lt;br /&gt;
== Version 0.5.0 ==&lt;br /&gt;
*Added: dboptimize server console command. Read the manual for more information.Do note that this command is server resource intensive and should not be used often.&lt;br /&gt;
*Added: support for revive spree sounds. Admins can add custom sound files revive3.wav, revive5.wav and revive10.wav under the sound/announces if they like.&lt;br /&gt;
*Added: g_XPSaveMinXP, when this value is set to above 0 or above, the XP save system will use different timestamp for the XP save then the rest of the database. This allows cvars like g_XPSaveMaxAge_xp to work correctly.&lt;br /&gt;
*Added: referee hack attempts are logged&lt;br /&gt;
*Added: Admin Level Protection (ALP), with this mechanism, the server can ensure that admins on protected levels are properly authenticated&lt;br /&gt;
*Added: silEnT GUID, the new silEnT GUIDs replace the PB GUIDs in everywhere, but compatibility is provided for the old PB GUIDs also&lt;br /&gt;
*Added: g_cheatLog, server will log all non gaming related information into this log if enabled&lt;br /&gt;
*Added: debriefing, mouse wheel scrolling of the lists when the cursor is over the list, not only over the scroll bar&lt;br /&gt;
*Added: omnibot support for tripmines (tripmines can be planted by bots)&lt;br /&gt;
*Fixed: vote blocking will not block referee commands&lt;br /&gt;
*Fixed: missing original mouse cursor in the menus for Windows builds&lt;br /&gt;
*Fixed: silenced colt anim bug&lt;br /&gt;
*Fixed: XP for team kills made with tripmines: http://mygamingtalk....112-xp-for-tks/&lt;br /&gt;
Reworked: tripmines can&#039;t be destroyed when they are not armed, now it takes 2 shots instead of 1 to destroy the tmine.&lt;br /&gt;
&lt;br /&gt;
== Version 0.4.0  ==&lt;br /&gt;
&lt;br /&gt;
* Added: different power bolt colors for fops to show arty/airstrikes availability (http://mygamingtalk....ops-air-strike/)&lt;br /&gt;
* Added: tripmines can be tripped by movers (doors etc.) when they cross the wire.&lt;br /&gt;
* Added: different power bolt color for fops depending on airstrike and arty availability&lt;br /&gt;
* Added: new UI with 2 themes. Themes can be switched with &amp;quot;ui_theme&amp;quot; cvar {1,2}&lt;br /&gt;
* Added: tripmines markers on the command map.&lt;br /&gt;
* Added: new tripmine wire shaders.&lt;br /&gt;
* Added: tripmines can be now spotted by coverts to be marked on the command map.&lt;br /&gt;
* Added: Possibility for server admins to enable Jaymod style double jumping This is controlled with g_misc flag 32.&lt;br /&gt;
* Added: hint for tripmine placement (hint is displayed when tripmine can be attached to the pointed place)&lt;br /&gt;
* Added: new cvar: cg_themedCMap {0,1}, which activates/deactivates themed command map frame&lt;br /&gt;
* Added: New shrubbot flag &#039;#&#039;. Players or levels with this flag are not allowed to call votes. Voting is automatically denied from players without PB GUIDs. Do note, it does not require the punkbuster to be enabled on the server for a player to have a PB GUID.&lt;br /&gt;
* Added: new private message which allows to select players from the list or just type the name in&lt;br /&gt;
* Added: Possiblity to mute only global chat sounds with cg_noVoiceChats 2. Also added into the menu.&lt;br /&gt;
* Reworked: new tripmine model, new tripmine icons&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-42-fireteam-selction-notification/| Fireteam selction notification]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-43-covie-bug-i-think/| Covie Bug - I Think]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-44-watermark-bug/| Watermark bug]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-56-nextmap-callvote-nextmap-dont-work-with-g-gametype-6/| !nextmap &amp;amp; callvote nextmap, don&#039;t work with g_gametype 6]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-71-knife-bug/| knife bug]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-77-single-pistol-bug/| Single Pistol Bug]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-79-shoutcaster/| Shoutcaster]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-80-missing-text-for-to-follow-previous-player/| Missing text for to follow previous player]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-81-weapons-list-appears-when-throwing-knife/| Weapons list appears when throwing knife]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-82-limbomenu-doesnt-show-xp-until-you-have-joined-into-a-team/| Limbomenu doesn&#039;t show xp until you have joined into a team]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-83-join-into-a-team-even-close-limbomenu/| Join into a team even close limbomenu]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-86-throwing-knives-disappear/| Throwing Knives Disappear]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-93-map-slider-only-works-if-you-drag-it/| Map slider only works if you drag it]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-94-throwing-knives-in-air/| Throwing Knives in Air]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-95-trip-mines/| Trip Mines]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-97-gui-cutting-of-at-edges/| GUI cutting of at edges]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-103-tripmines/| Tripmines]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-107-player-class-icon-off-map/| Player class icon off map]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-109-blank-spot-in-vote-menu-select-hidden-map/| Blank spot in vote menu select hidden map]&lt;br /&gt;
*Renamed: g_settings renamed to g_banners. That is what it is only for so the change is to clarify the purpose.&lt;br /&gt;
*Removed: /rcon ban. This command was causing issues because of the similar name to !ban. Also, there was no unban method.&lt;br /&gt;
&lt;br /&gt;
== Version 0.3.3  ==&lt;br /&gt;
&lt;br /&gt;
*Fixed: alternative fire bug introduced in 0.3.2.&lt;br /&gt;
&lt;br /&gt;
== Version 0.3.2  ==&lt;br /&gt;
&lt;br /&gt;
*Readded: Class awards. They should now work correctly with XP save. &lt;br /&gt;
*Added: possibility for server admins to enable teamhit sounds. &lt;br /&gt;
*Added: flag 8 to g_identOptions. Actions taken based on client identifications are reported in the adminchat. &lt;br /&gt;
*Added: default silEnT watermark. &lt;br /&gt;
*Fixed: bug with missing hitsounds (http://mygamingtalk.com/forums/tracker/issue-54-no-hitsound-on-enemy-with-mortar/). &lt;br /&gt;
*Fixed: bug with class stealing (http://mygamingtalk.com/forums/tracker/issue-46-weapon-on-class-change-go-empty-clip-and-change-weapon/). &lt;br /&gt;
*Fixed: bug with soldier secondary weapon changing to akimbos. &lt;br /&gt;
*Fixed: throw last knife bug (http://mygamingtalk.com/forums/topic/587-knife-bug/). &lt;br /&gt;
*Fixed: fireteam overlay bug. &lt;br /&gt;
*Fixed: server list server name filter bug/crash. &lt;br /&gt;
*Fixed: bug with say_teamnl command that allowed muted players to write in team chat. (http://mygamingtalk.com/forums/tracker/issue-73-say-teamnl-working-with-muted-players/) &lt;br /&gt;
*Fixed: bug with g_classWeapons cvar (http://mygamingtalk.com/forums/tracker/issue-72-g-classweapons/). &lt;br /&gt;
*Fixed: bug in the TDM timebar. &lt;br /&gt;
*Fixed: some bugs with the win probabilities. Not in algorithms, but with the calls to calculate them. &lt;br /&gt;
*Removed: Active Team Balance. &lt;br /&gt;
*Removed: g_teamForceBalance_playerrating. &lt;br /&gt;
*Removed:&amp;amp;nbsp;!balance admin command. &lt;br /&gt;
*Enhancement: The g_XPSave flag 8 will no longer kick guidless players for duplicates. &lt;br /&gt;
*Enhancement: The&amp;amp;nbsp;!howfair command now uses K/D determining fairness. &lt;br /&gt;
*Enhancement: Possibilities for invalid kicks for spoofed client identification reduced.&lt;br /&gt;
&lt;br /&gt;
== Version 0.3.1  ==&lt;br /&gt;
&lt;br /&gt;
*Added: g_votedMuteLength which controls the lengths of the voted mutes. Default is 3 hours. &lt;br /&gt;
*Reworked: The tripmine shaders. Visually still defaults to the old look. &lt;br /&gt;
*Optimization: Some code cleanup and minor optimizations. &lt;br /&gt;
*Binaries compiled with optimization settings &lt;br /&gt;
*Bug fixes: Generate list from tracker.&lt;br /&gt;
&lt;br /&gt;
== Version 0.3.0  ==&lt;br /&gt;
&lt;br /&gt;
*Added: Weapon banks shown during weapon change - incorporated into HUD editor (introduced new client cvars for this: cg_wbShowDuration, cg_wbOrientation, cg_wbWideSlots). &lt;br /&gt;
*Added: New game type: Team Death Match (easy to be configured server side and client side). &lt;br /&gt;
*Added: When alternate HUD is chosen with compass in the lower part of the screen the compass slides out to bottom. &lt;br /&gt;
*Added: New command&amp;amp;nbsp;!baninfo. &lt;br /&gt;
*Added: New server cvar g_punkBuster. Servers that don&#039;t have PunkBuster enabled can still force clients enabling punkbuster for them to have GUIDs. This does not guarantee that every player will have a GUID but if the player has it, it will be sent to the server. &lt;br /&gt;
*Added: Warmup countdown (last 3 seconds). Can be turned off by setting cg_showCountDown client cvar to &amp;quot;0&amp;quot;. &lt;br /&gt;
*Added: g_classWeapons server cvar. Enables weapons per class (so far only PPSh is handled) &lt;br /&gt;
*Added: Muted players can&#039;t call votes. &lt;br /&gt;
*Added: New command&amp;amp;nbsp;!readadmins. &lt;br /&gt;
*Added: Separate meaning of death for shoving to death (enemy killing and team killing supported). &lt;br /&gt;
*Added: New type of revealed landmines notifications (cg_landmineNotifyType client cvar and g_landmineNotifyType server cvar provided for this). &lt;br /&gt;
*Added: New command&amp;amp;nbsp;!resetpls that reset individual player stats leaving XP save untouched. There has been some cases when the stats have bugged and this is an easy command for admins to correct such stats. &lt;br /&gt;
*Added: Players can customise or even disable the announcements if they like. &lt;br /&gt;
*Added: silEnT mod icon displayed on loading screen. &lt;br /&gt;
*Added: New PPSH weapon model and enhanced the weapon overall (sounds). &lt;br /&gt;
*Added: Possibility for First Blood sound for server admins. &lt;br /&gt;
*Added: New shrubbot flag &#039;/&#039; that will disables private messages from levels or individual players. &lt;br /&gt;
*Added: Kills/Deaths/Spree counters HUD display managed by cg_killsDisplay cvar. &lt;br /&gt;
*Added: Predefined HUDs can be now chosen from the HUD configuration menu. &lt;br /&gt;
*Added: New predefined HUDs: etpro, etpro2 (thanks to Dragon). &lt;br /&gt;
*Added: New server cvar g_punkBuster that helps server without PunkBuster enabled with GUIDless players. &lt;br /&gt;
*Added: Hardware based client identification. This is used to help banning players. Controlled by g_identOptions cvar. &lt;br /&gt;
*Fixed: defect with following FT (killed player was picked when he/she was the FT leader - but next FT member should be picked) &lt;br /&gt;
*Improved: The database performance. &lt;br /&gt;
*Reworked: cg_hitSounds client cvar. Now a new option play only headshots is available. &lt;br /&gt;
*Fixed: Headshots from proned players. &lt;br /&gt;
*Fixed: Follow Fire Team bug with spec not switching outside of FT for &amp;quot;FT first&amp;quot; option. &lt;br /&gt;
*Fixed: Spectator follow bug: SPACE + RMB caused wrong behavior. &lt;br /&gt;
*Fixed: pmove_fixed is now recognised by the server if the players sets it. &lt;br /&gt;
*Fixed:&amp;amp;nbsp;!useredit add command. Before the command checked only valid command flags were added. Now it accepts any flags. &lt;br /&gt;
*Fixed: Intermission pings. (http://mygamingtalk....c/437-big-ping/) &lt;br /&gt;
*Fixed: Bans that did not have GUID information are still enforced but not based on the GUID. &lt;br /&gt;
*Removed: cg_damageKick client cvar. &lt;br /&gt;
*Changed: Allied tripmine beam color changed to blue.&lt;br /&gt;
&lt;br /&gt;
== Version 0.2.1  ==&lt;br /&gt;
&lt;br /&gt;
*Added:&amp;amp;nbsp;!usersearch shrubbot command. This command can search user database for name, level and IP address. &lt;br /&gt;
*Added: Breath bar when underwater. &lt;br /&gt;
*Added: Backward following in spec mode. &lt;br /&gt;
*Added: Following Fire Team members in spec in regard to followFT client cvar. &lt;br /&gt;
*Added: Muted player indicator in scoreboard. &lt;br /&gt;
*Added: New placeholder &#039;?&#039; to custom commands. When this is inluded with a numerical placeholder, the parameter is then seen as partial name and will be replaced with the real player name if only one name matches the pattern. &lt;br /&gt;
*Added: The vote menu during intermission displays the top 3 vote winning maps with colors. &lt;br /&gt;
*Added: Muted players can&#039;t send private messages or chat in adminchat. &lt;br /&gt;
*Reworked: Shortcuts. Fixes a bug in them and gives better performance. &lt;br /&gt;
*Reworked: Knife throw headshot. Thrown knife triggers now a headshot sound when hitting to the opponent&#039;s head. &lt;br /&gt;
*Reworked: Grenades can&#039;t be thrown underwater from now on. &lt;br /&gt;
*Reworked: Forcecvar. Players can&#039;t lag out forcecvar commands anymore. &lt;br /&gt;
*Reworked: Icons shown over player&#039;s head - now possible multiple icons. &lt;br /&gt;
*Fixed: Center print priorities. The previous kill no longer blocks the health info. &lt;br /&gt;
*Fixed: Tripmines energy cost bug (charge time). Now it behaves the same way as for landmines. &lt;br /&gt;
*Fixed: Tripmine arming bug which allowed to exceed team tripmines limit. &lt;br /&gt;
*Fixed: Knives can be thrown underwater (bug #20). &lt;br /&gt;
*Fixed: Defect #16: knives bounce off enemies. &lt;br /&gt;
*Fixed: The client side shrubbot commands now work also in console. &lt;br /&gt;
*Fixed: Intermission chat can now handle extended ASCII and also commands in the same way as other chats. &lt;br /&gt;
*Removed: G_tactics.&lt;br /&gt;
&lt;br /&gt;
== Version 0.2.0  ==&lt;br /&gt;
&lt;br /&gt;
*Added: New sound for thrown knife. &lt;br /&gt;
*Added: g_dbUserMaxAge server cvar. If this cvar is set, users that are older then then this value are automatically removed from the user database. Default value is 0 which also disables the automated functionality. &lt;br /&gt;
*Added:&amp;amp;nbsp;!givexp command. With this command admin can add to an online or an offline player a specific amount of XP to a specific skill. &lt;br /&gt;
*Added:&amp;amp;nbsp;!userdelete command. With this command any users except bots can be removed from the database. &lt;br /&gt;
*Added:&amp;amp;nbsp;!userban command. A handy online command for banning offline players. &lt;br /&gt;
*Added:&amp;amp;nbsp;!userlist command. With this command admin can view all the players that are stored in the database. &lt;br /&gt;
*Added:&amp;amp;nbsp;!useredit command. This command can be used to edit any player that has visited the server. &lt;br /&gt;
*Added: User database. This holds information of all the users that have visited the server (during the lifetime of the database). &lt;br /&gt;
*Added: Quick chat box can be used to give commands. &lt;br /&gt;
*Added: New shrubbot flag &#039;?&#039; that will allow speccing admins to see private messages when they are in spec. &lt;br /&gt;
*Changed: g_knifeDamage is now g_knifeThrowDamage. Also, the actual damage is no longer randmon. &lt;br /&gt;
*Changed:&amp;amp;nbsp;!listplayers is now plain&amp;amp;nbsp;!list. &lt;br /&gt;
*Changed: ETPub&amp;amp;nbsp;!userinfo renamed to&amp;amp;nbsp;!finger. In future a new&amp;amp;nbsp;!userinfo command will give different information. &lt;br /&gt;
*Reworked:&amp;amp;nbsp;!stats command now shows total and session specific kills and deaths made by Thompson, MP40 and PPSh weapons. &lt;br /&gt;
*Reworked: Private message sound is now built in and not configurable. sound file can be overridden though. &lt;br /&gt;
*Reworked: If poison sound is enabled, the poison sound is played only to the player who has been poisoned. &lt;br /&gt;
*Reworked:&amp;amp;nbsp;!time command shows the clients local time. &lt;br /&gt;
*Reworked: To throw knife +attack2 must be used as the command. &lt;br /&gt;
*Reworked: Knives throwing. Now knives are held while they charge power. &lt;br /&gt;
*Reworked: Knifes rotate when thrown. &lt;br /&gt;
*Reworked: Knife icon enlarges when +attack2 button is pressed and held (e.g. nade icon pulsates) &lt;br /&gt;
*Removed: Without the need to support several client versions, the server will now send all obituaries as events. (&#039;&#039;This change removes all excess flags from g_obituary. From now on, the server will send obituary events to clients with any nonzero value in g_obituary cvar and will not send events if it is set to 0&#039;&#039;). &lt;br /&gt;
*Removed: Party panzers removed. &lt;br /&gt;
*Removed: g_XPSaveFile. This is now controlled with new cvar g_dbDirectory. &lt;br /&gt;
*Removed: g_shrubbot. This is now controlled with new cvar g_dbDirectory. &lt;br /&gt;
*Fixed: Memory leaking in the ETPub settings.cfg handling. &lt;br /&gt;
*Fixed: During the intermission, the full width of the chatbox is now used. &lt;br /&gt;
*Fixed: During the gameplay, the chat no longer overlaps with the gun icon. &lt;br /&gt;
*Fixed: Player can&#039;t throw his/hers last knife. &lt;br /&gt;
*Added: vote blocking &lt;br /&gt;
*Enhancement: lot of rewriting to the data sent from server to the client. &lt;br /&gt;
*Reworked:!freeze command now needs parameter to avoid freezing all player. &lt;br /&gt;
*Added: Knife Model &lt;br /&gt;
*Fixed: Team change spam to stop server crash&lt;br /&gt;
&lt;br /&gt;
== Version 0.1.4  ==&lt;br /&gt;
&lt;br /&gt;
*Reworked: Scoreboard worked &lt;br /&gt;
*Added: New awards &lt;br /&gt;
*Configurable option to pickup extra ammo with dropped weapons. &lt;br /&gt;
*Enhancement: Tripmines need to be armed &lt;br /&gt;
*Enhancement: No Tripmines for coverts from this version on &lt;br /&gt;
*Enhancement: Different tripmines beam colours for each team &lt;br /&gt;
*Fixed: tripmines ammo defect &lt;br /&gt;
*Fixed: Scoreboard fixes &lt;br /&gt;
*Fixed: The reward printing bug on map starts &lt;br /&gt;
*Fixed: limbomenu bug &lt;br /&gt;
*Added: sv_cvar and sv_cvarempty commands&lt;br /&gt;
&lt;br /&gt;
== Version 0.1.2  ==&lt;br /&gt;
&lt;br /&gt;
*Added: New weapon PPSh &lt;br /&gt;
*Added: New Weapon Tripmine &lt;br /&gt;
*Reworked: Hitsounds handled differently (No more netspam) &lt;br /&gt;
*Reworked: The bounding box code worked (This is different then ETPub and at least old NQ) &lt;br /&gt;
*Removed: Many Etpub related server cvars removed.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_FAQ&amp;diff=1303</id>
		<title>Silent FAQ</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_FAQ&amp;diff=1303"/>
		<updated>2015-09-13T20:32:53Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Mod Setup Questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Statistics / Rankings Terms  =&lt;br /&gt;
&amp;lt;div&amp;gt;There are several settings in silEnT that attempt to determine how &amp;quot;good&amp;quot; a player is in terms (hopefully) more meaningful than just XP or XP per unit of time. Here are the terms used and their definitions:&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Kill Rating  ==&lt;br /&gt;
&amp;lt;div&amp;gt;How good of a killer the player is, based on how many other players the player kills, and their kill rating. In other words, killing players with a high kill rating increases the shooter&#039;s kill rating more than killing players with a low kill rating.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Player Rating  ==&lt;br /&gt;
&amp;lt;div&amp;gt;This is a measure of how much the player contributes to winning a map. This measure is calculated by seeing how many times this player is on the winning team after every map, and how good the opposing team was. Like kill rating, winning against teams with a high average player rating results in player rating increasing faster.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
== Win Probability  ==&lt;br /&gt;
&amp;lt;div&amp;gt;The probability that a team will win a map (based on the players&#039; player rating, team size, and the map).&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;These statistics are gathered by silEnT and the data is saved to local files on disk. This feature is originally from ETPub and no alterations have been made to it by silEnT team.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;The ETPub development team member responsible for implementing these player rankings and ratings is Josh Menke. He has been kind enough to begin working on an academic write-up to explain the mathematics and statistics methods behind these rankings. Due to time constraints the document is being gradually updated and expanded. The latest version can be seen [http://axon.cs.byu.edu/~josh/etstats/update_bayes.pdf here].&amp;lt;/div&amp;gt; &lt;br /&gt;
= Hardware Based Identification  =&lt;br /&gt;
&lt;br /&gt;
Starting from version 0.3.0, the silEnT mod can be configured to enforce bans using hardware based identification. This is not any fool proof system but it is made to be an addition to the already existing ban methods. The hardware identification cannot be seen in human readable form while on the server. The data that is sent to the server can be seen in the client by making /cg_ident in the console. That is a hexadecimal string which changes its value between maps. &lt;br /&gt;
&lt;br /&gt;
The format and data used to create the client Identification may change between the versions of the silEnT mod. The server can be configured with the g_identOptions server cvar. The cvar is bit flagged which means, you can combine the values by adding them together. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &#039;&#039;g_identOptions&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
1&amp;amp;nbsp;; Kick clients that are spoofing the client identification to enter the server. &lt;br /&gt;
&lt;br /&gt;
2&amp;amp;nbsp;; Kick clients that are not sending the identification to the server. &lt;br /&gt;
&lt;br /&gt;
4&amp;amp;nbsp;; Enforce bans using the identification. &lt;br /&gt;
&lt;br /&gt;
8&amp;amp;nbsp;; Report all actions taken based on client identification to the adminchat &lt;br /&gt;
&lt;br /&gt;
16&amp;amp;nbsp;; If a player is caught of circumventing a ban, a new ban is created for the player. The ban reason will have additional (Automated copy of a ban for xxxxxxxx) where xxxxxxxx is replaced with the 8 character PB GUID of the old ban. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Server admins can use the&amp;amp;nbsp;!finger command to see the status of any players identification. &lt;br /&gt;
&lt;br /&gt;
If the server is configured to kick for spoofed client identification, it can happen legitimately if the client connects directly from one silEnT server to another. Or if the server they are playing shuts down and they instantly reconnect. Instantly reconnecting again after the Spoofed Client Identification kick will work and the spoofed kick is a single event. If you find out more of these cases, please share the information with the silEnT community on forums. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Death Match  =&lt;br /&gt;
&lt;br /&gt;
Starting from the silEnT version 0.3.0, there is a new gametype available. Team Death Match is a gametype where 2 teams score for kills. A TDM map can be &amp;lt;br&amp;gt;ended by Score limit, time limit or by both. The TDM game type is controlled by 4 server cvars. &lt;br /&gt;
&lt;br /&gt;
g_TDMType &amp;lt;br&amp;gt;g_TDMOptions&amp;lt;br&amp;gt;g_TDMScore&amp;lt;br&amp;gt;g_TDMObjBonus &lt;br /&gt;
&lt;br /&gt;
= Weapon Numbers = &lt;br /&gt;
&lt;br /&gt;
MOD_UNKNOWN		// 0&lt;br /&gt;
&lt;br /&gt;
MOD_MACHINEGUN		// 1&lt;br /&gt;
&lt;br /&gt;
MOD_BROWNING		// 2&lt;br /&gt;
&lt;br /&gt;
MOD_MG42		// 3&lt;br /&gt;
&lt;br /&gt;
MOD_GRENADE		// 4&lt;br /&gt;
&lt;br /&gt;
MOD_ROCKET		// 5&lt;br /&gt;
&lt;br /&gt;
MOD_KNIFE		// 6&lt;br /&gt;
&lt;br /&gt;
MOD_LUGER		// 7&lt;br /&gt;
&lt;br /&gt;
MOD_COLT		// 8&lt;br /&gt;
&lt;br /&gt;
MOD_MP40		// 9&lt;br /&gt;
&lt;br /&gt;
MOD_THOMPSON		// 10&lt;br /&gt;
&lt;br /&gt;
MOD_STEN&lt;br /&gt;
&lt;br /&gt;
MOD_GARAND&lt;br /&gt;
&lt;br /&gt;
MOD_SNOOPERSCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_SILENCER&lt;br /&gt;
&lt;br /&gt;
MOD_FG42		// 15&lt;br /&gt;
&lt;br /&gt;
MOD_FG42SCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_PANZERFAUST&lt;br /&gt;
&lt;br /&gt;
MOD_GRENADE_LAUNCHER&lt;br /&gt;
&lt;br /&gt;
MOD_FLAMETHROWER&lt;br /&gt;
&lt;br /&gt;
MOD_GRENADE_PINEAPPLE   // 20&lt;br /&gt;
&lt;br /&gt;
MOD_CROSS&lt;br /&gt;
&lt;br /&gt;
MOD_MAPMORTAR&lt;br /&gt;
&lt;br /&gt;
MOD_MAPMORTAR_SPLASH&lt;br /&gt;
&lt;br /&gt;
MOD_KICKED&lt;br /&gt;
&lt;br /&gt;
MOD_GRABBER		// 25&lt;br /&gt;
&lt;br /&gt;
MOD_DYNAMITE&lt;br /&gt;
&lt;br /&gt;
MOD_AIRSTRIKE&lt;br /&gt;
&lt;br /&gt;
MOD_SYRINGE&lt;br /&gt;
&lt;br /&gt;
MOD_AMMO&lt;br /&gt;
&lt;br /&gt;
MOD_ARTY		// 30&lt;br /&gt;
&lt;br /&gt;
MOD_WATER&lt;br /&gt;
&lt;br /&gt;
MOD_SLIME&lt;br /&gt;
&lt;br /&gt;
MOD_LAVA&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH&lt;br /&gt;
&lt;br /&gt;
MOD_TELEFRAG		// 35&lt;br /&gt;
&lt;br /&gt;
MOD_FALLING&lt;br /&gt;
&lt;br /&gt;
MOD_SUICIDE&lt;br /&gt;
&lt;br /&gt;
MOD_TARGET_LASER&lt;br /&gt;
&lt;br /&gt;
MOD_TRIGGER_HURT&lt;br /&gt;
&lt;br /&gt;
MOD_EXPLOSIVE		// 40&lt;br /&gt;
&lt;br /&gt;
MOD_CARBINE&lt;br /&gt;
&lt;br /&gt;
MOD_KAR98&lt;br /&gt;
&lt;br /&gt;
MOD_GPG40&lt;br /&gt;
&lt;br /&gt;
MOD_M7&lt;br /&gt;
&lt;br /&gt;
MOD_LANDMINE		// 45&lt;br /&gt;
&lt;br /&gt;
MOD_SATCHEL&lt;br /&gt;
&lt;br /&gt;
MOD_TRIPMINE&lt;br /&gt;
&lt;br /&gt;
MOD_SMOKEBOMB&lt;br /&gt;
&lt;br /&gt;
MOD_MOBILE_MG42&lt;br /&gt;
&lt;br /&gt;
MOD_SILENCED_COLT	// 50&lt;br /&gt;
&lt;br /&gt;
MOD_GARAND_SCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH_CONSTRUCTION&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH_CONSTRUCTIONDEATH&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH_CONSTRUCTIONDEATH_NOATTACKER&lt;br /&gt;
&lt;br /&gt;
MOD_K43			// 55&lt;br /&gt;
&lt;br /&gt;
MOD_K43_SCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_MORTAR&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_COLT&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_LUGER&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_SILENCEDCOLT  // 60&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_SILENCEDLUGER&lt;br /&gt;
&lt;br /&gt;
MOD_SMOKEGRENADE&lt;br /&gt;
&lt;br /&gt;
MOD_SWAP_PLACES&lt;br /&gt;
&lt;br /&gt;
MOD_SWITCHTEAM&lt;br /&gt;
&lt;br /&gt;
MOD_GOOMBA		// 65&lt;br /&gt;
&lt;br /&gt;
MOD_POISON&lt;br /&gt;
&lt;br /&gt;
MOD_FEAR&lt;br /&gt;
&lt;br /&gt;
MOD_THROWN_KNIFE&lt;br /&gt;
&lt;br /&gt;
MOD_REFLECTED_FF	// 69&lt;br /&gt;
&lt;br /&gt;
MOD_PPSH		// 70&lt;br /&gt;
&lt;br /&gt;
MOD_SHOVE		// 71&lt;br /&gt;
&lt;br /&gt;
= Mod Setup Questions  =&lt;br /&gt;
&lt;br /&gt;
== Friendly Fire hitsounds ==&lt;br /&gt;
Q: Friendly Fire hitsounds are not working.&lt;br /&gt;
&lt;br /&gt;
A: Please try to enable warning sound of friendly fire using:&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
set g_hitsounds &amp;quot;9&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== XP save not working ==&lt;br /&gt;
Q: How to get XP save and player stats for one year?&lt;br /&gt;
&lt;br /&gt;
A: Try below settings in your server config: &amp;lt;br&amp;gt;&lt;br /&gt;
set g_XPSave 21 &amp;lt;br&amp;gt;&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;365d&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;365d&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;365d&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Forcecvar &amp;amp; sv_cvar ==&lt;br /&gt;
Q: How do I make forcecvar or sv_cvar work? &lt;br /&gt;
&lt;br /&gt;
A: silEnT server is able to force client cvars to certain values or ranges by using forcecvar and sv_cvar commands. sv_cvarempty will clear all the sv_cvar commands the server has loaded.&lt;br /&gt;
&lt;br /&gt;
To use the possibility, the g_mapConfigs must be set. All forcecvar and sv_cvar commands that are placed in the default.cfg, will be executed on every map start. Those settings can be overloaded by using a map specific cfg name [mapname].cfg. More help is available at silEnT forums.&lt;br /&gt;
&lt;br /&gt;
== Player screenshots ==&lt;br /&gt;
Q: How do I take player screenshot? &amp;lt;br /&amp;gt;&lt;br /&gt;
A: Currently we support 2.6b clients for taking player screenshots. You can add custom command in your shrubbot.cfg config to capture player screenshot. Through custom command you customize command alias and configure which level has permission to access it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Custom command &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 [command]&lt;br /&gt;
 command  = ss&lt;br /&gt;
 exec     = takess &amp;quot;[1?]&amp;quot; [i]&lt;br /&gt;
 desc     = take screenshot from someone&lt;br /&gt;
 syntax   = [name|number]&lt;br /&gt;
 levels   = 5 6 7 8 9 10&lt;br /&gt;
&lt;br /&gt;
== Customizing Loading Screen ==&lt;br /&gt;
Q: How do I customize the loading screen?&lt;br /&gt;
&lt;br /&gt;
A: Starting from silEnT 0.9.0, server admins can customize the loading screen. This is opposed to modifying the global loading screen.&lt;br /&gt;
These modifications are loaded and used only when connecting to a server that references the custom loading screen.&lt;br /&gt;
&lt;br /&gt;
To convet existing loading screen customizations to silEnT mod, start a local server which references the old file and&lt;br /&gt;
read logs. The logs will inform all the needed changes for the loading screen. The modification is generally done by adding&lt;br /&gt;
_silent to the name of the image file.&lt;br /&gt;
&lt;br /&gt;
== Voice Chats ==&lt;br /&gt;
Q: I have uploaded custom voice chat menu to the server but when I&#039;m on the server the original voice chat menu opens without my customizations.&lt;br /&gt;
&lt;br /&gt;
A: See [[Silent_Creating_Custom_Menu|Creating Custom Menu]].&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1302</id>
		<title>Silent Creating Custom Menu</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1302"/>
		<updated>2015-09-13T18:30:08Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Customized Voice Chat Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, the following files have changed their name:&lt;br /&gt;
&lt;br /&gt;
wm_quickmessageT.menu =&amp;gt; wm_quickmessage_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_quickmessageAlt.menu =&amp;gt; wm_quickmessageAlt_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_ftquickmessageAlt.menu =&amp;gt; wm_ftquickmessageAlt_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
wm_ftquickmessage.menu =&amp;gt; wm_ftquickmessage_silEnT.menu&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using customized voice chats, please make sure the menu files are named as such. No other changes are required when converting between the versions.&lt;br /&gt;
&lt;br /&gt;
== Customized Server Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, server admins have the option to have a second, server customized menu. This is opposed to&lt;br /&gt;
editing the official menus.&lt;br /&gt;
&lt;br /&gt;
The second menu is always opened automatically if present when player opens the menus by pressing ESC. If&lt;br /&gt;
the user clicks either menu, the official or the server custom menu, the other menu automatically closes.&lt;br /&gt;
The server custom menus have the same commands as the official menus, with the exception that onOpen event can not be defined.&lt;br /&gt;
If onOpen is defined, it is ignored.&lt;br /&gt;
&lt;br /&gt;
Following is an example of a server custom menu:&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Customized server menu has one requirement, there must be a file called menus_server_custom.txt. This file is used exactly like the old menus.txt. It defines the .menu files that are loaded for the custom menu. An example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// menu defs&lt;br /&gt;
// &lt;br /&gt;
{&lt;br /&gt;
	loadMenu { &amp;quot;ui/custom_main.menu&amp;quot; }&lt;br /&gt;
	loadMenu { &amp;quot;ui/rules.menu&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The custom_main.menu defined in the menus_server_custom.txt in this example, could look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		16&lt;br /&gt;
#define WINDOW_Y		232&lt;br /&gt;
#define WINDOW_WIDTH	160&lt;br /&gt;
#define WINDOW_HEIGHT	60&lt;br /&gt;
&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpCustomMain&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Main Menu //&lt;br /&gt;
&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;custom_main&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		0&lt;br /&gt;
	&lt;br /&gt;
	onEsc {&lt;br /&gt;
		close custom_main ;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;^7Example&amp;quot;, 232 )&lt;br /&gt;
	&lt;br /&gt;
// Buttons //&lt;br /&gt;
&lt;br /&gt;
	BUTTON( 6, 32, WINDOW_WIDTH-12, 18, &amp;quot;^7Rules&amp;quot;, .3, 14, close custom_main ; open rules )&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And finally, the rules.menu could look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		100&lt;br /&gt;
#define WINDOW_Y		16&lt;br /&gt;
#define WINDOW_WIDTH	128&lt;br /&gt;
#define WINDOW_HEIGHT	152&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpRules&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
// Options Menu //&lt;br /&gt;
	&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;rules&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		WINDOW_STYLE_FILLED&lt;br /&gt;
	&lt;br /&gt;
	onESC {&lt;br /&gt;
		close rules ;&lt;br /&gt;
		open custom_main&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;RULES&amp;quot;, 94 )&lt;br /&gt;
	&lt;br /&gt;
	... Stuff for players to read in menu controls ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the menu is not complete. You can delete the &amp;quot;... Stuff for players to read in menu controls ...&amp;quot; or insert some controls that work in its place.&lt;br /&gt;
&lt;br /&gt;
The resulting files need to be packed into a zip file that is renamed to pk3 so that all the menu files and the &amp;quot;menus_server_custom.txt&amp;quot; are in and under ui directory.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
* When user opens the menus, both the official menu and the server customized menu are opened. The menus are opened in a way that the official menu is always on top in case the two menus overlap.&lt;br /&gt;
* If user clicks a button in either menu, the other menu is automatically closed by the mod. This also includes the case when user presses ESC to close the menus.&lt;br /&gt;
* The onOpen event is ignored in the custom menus.&lt;br /&gt;
* Menu files in the etmain directory or the official menus can not be modified and the server refuses to start if it detects such modifications.&lt;br /&gt;
* Old way of customizing the menus still work if the user already has the menus or he manually adds the menus. The restriction is that the server can not reference pk3 files that modify the menus.&lt;br /&gt;
* Menus for the customized voice chats are excluded from the checks.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1301</id>
		<title>Silent Creating Custom Menu</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1301"/>
		<updated>2015-09-13T12:26:43Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Customized Server Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, server admins have the option to have a second, server customized menu. This is opposed to&lt;br /&gt;
editing the official menus.&lt;br /&gt;
&lt;br /&gt;
The second menu is always opened automatically if present when player opens the menus by pressing ESC. If&lt;br /&gt;
the user clicks either menu, the official or the server custom menu, the other menu automatically closes.&lt;br /&gt;
The server custom menus have the same commands as the official menus, with the exception that onOpen event can not be defined.&lt;br /&gt;
If onOpen is defined, it is ignored.&lt;br /&gt;
&lt;br /&gt;
Following is an example of a server custom menu:&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Customized server menu has one requirement, there must be a file called menus_server_custom.txt. This file is used exactly like the old menus.txt. It defines the .menu files that are loaded for the custom menu. An example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// menu defs&lt;br /&gt;
// &lt;br /&gt;
{&lt;br /&gt;
	loadMenu { &amp;quot;ui/custom_main.menu&amp;quot; }&lt;br /&gt;
	loadMenu { &amp;quot;ui/rules.menu&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The custom_main.menu defined in the menus_server_custom.txt in this example, could look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		16&lt;br /&gt;
#define WINDOW_Y		232&lt;br /&gt;
#define WINDOW_WIDTH	160&lt;br /&gt;
#define WINDOW_HEIGHT	60&lt;br /&gt;
&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpCustomMain&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Main Menu //&lt;br /&gt;
&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;custom_main&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		0&lt;br /&gt;
	&lt;br /&gt;
	onEsc {&lt;br /&gt;
		close custom_main ;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;^7Example&amp;quot;, 232 )&lt;br /&gt;
	&lt;br /&gt;
// Buttons //&lt;br /&gt;
&lt;br /&gt;
	BUTTON( 6, 32, WINDOW_WIDTH-12, 18, &amp;quot;^7Rules&amp;quot;, .3, 14, close custom_main ; open rules )&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And finally, the rules.menu could look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		100&lt;br /&gt;
#define WINDOW_Y		16&lt;br /&gt;
#define WINDOW_WIDTH	128&lt;br /&gt;
#define WINDOW_HEIGHT	152&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpRules&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
// Options Menu //&lt;br /&gt;
	&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;rules&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		WINDOW_STYLE_FILLED&lt;br /&gt;
	&lt;br /&gt;
	onESC {&lt;br /&gt;
		close rules ;&lt;br /&gt;
		open custom_main&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;RULES&amp;quot;, 94 )&lt;br /&gt;
	&lt;br /&gt;
	... Stuff for players to read in menu controls ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the menu is not complete. You can delete the &amp;quot;... Stuff for players to read in menu controls ...&amp;quot; or insert some controls that work in its place.&lt;br /&gt;
&lt;br /&gt;
The resulting files need to be packed into a zip file that is renamed to pk3 so that all the menu files and the &amp;quot;menus_server_custom.txt&amp;quot; are in and under ui directory.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
* When user opens the menus, both the official menu and the server customized menu are opened. The menus are opened in a way that the official menu is always on top in case the two menus overlap.&lt;br /&gt;
* If user clicks a button in either menu, the other menu is automatically closed by the mod. This also includes the case when user presses ESC to close the menus.&lt;br /&gt;
* The onOpen event is ignored in the custom menus.&lt;br /&gt;
* Menu files in the etmain directory or the official menus can not be modified and the server refuses to start if it detects such modifications.&lt;br /&gt;
* Old way of customizing the menus still work if the user already has the menus or he manually adds the menus. The restriction is that the server can not reference pk3 files that modify the menus.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_FAQ&amp;diff=1300</id>
		<title>Silent FAQ</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_FAQ&amp;diff=1300"/>
		<updated>2015-09-13T12:00:34Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Customizing Loading Screen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Statistics / Rankings Terms  =&lt;br /&gt;
&amp;lt;div&amp;gt;There are several settings in silEnT that attempt to determine how &amp;quot;good&amp;quot; a player is in terms (hopefully) more meaningful than just XP or XP per unit of time. Here are the terms used and their definitions:&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Kill Rating  ==&lt;br /&gt;
&amp;lt;div&amp;gt;How good of a killer the player is, based on how many other players the player kills, and their kill rating. In other words, killing players with a high kill rating increases the shooter&#039;s kill rating more than killing players with a low kill rating.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Player Rating  ==&lt;br /&gt;
&amp;lt;div&amp;gt;This is a measure of how much the player contributes to winning a map. This measure is calculated by seeing how many times this player is on the winning team after every map, and how good the opposing team was. Like kill rating, winning against teams with a high average player rating results in player rating increasing faster.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
== Win Probability  ==&lt;br /&gt;
&amp;lt;div&amp;gt;The probability that a team will win a map (based on the players&#039; player rating, team size, and the map).&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;These statistics are gathered by silEnT and the data is saved to local files on disk. This feature is originally from ETPub and no alterations have been made to it by silEnT team.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;The ETPub development team member responsible for implementing these player rankings and ratings is Josh Menke. He has been kind enough to begin working on an academic write-up to explain the mathematics and statistics methods behind these rankings. Due to time constraints the document is being gradually updated and expanded. The latest version can be seen [http://axon.cs.byu.edu/~josh/etstats/update_bayes.pdf here].&amp;lt;/div&amp;gt; &lt;br /&gt;
= Hardware Based Identification  =&lt;br /&gt;
&lt;br /&gt;
Starting from version 0.3.0, the silEnT mod can be configured to enforce bans using hardware based identification. This is not any fool proof system but it is made to be an addition to the already existing ban methods. The hardware identification cannot be seen in human readable form while on the server. The data that is sent to the server can be seen in the client by making /cg_ident in the console. That is a hexadecimal string which changes its value between maps. &lt;br /&gt;
&lt;br /&gt;
The format and data used to create the client Identification may change between the versions of the silEnT mod. The server can be configured with the g_identOptions server cvar. The cvar is bit flagged which means, you can combine the values by adding them together. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &#039;&#039;g_identOptions&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
1&amp;amp;nbsp;; Kick clients that are spoofing the client identification to enter the server. &lt;br /&gt;
&lt;br /&gt;
2&amp;amp;nbsp;; Kick clients that are not sending the identification to the server. &lt;br /&gt;
&lt;br /&gt;
4&amp;amp;nbsp;; Enforce bans using the identification. &lt;br /&gt;
&lt;br /&gt;
8&amp;amp;nbsp;; Report all actions taken based on client identification to the adminchat &lt;br /&gt;
&lt;br /&gt;
16&amp;amp;nbsp;; If a player is caught of circumventing a ban, a new ban is created for the player. The ban reason will have additional (Automated copy of a ban for xxxxxxxx) where xxxxxxxx is replaced with the 8 character PB GUID of the old ban. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Server admins can use the&amp;amp;nbsp;!finger command to see the status of any players identification. &lt;br /&gt;
&lt;br /&gt;
If the server is configured to kick for spoofed client identification, it can happen legitimately if the client connects directly from one silEnT server to another. Or if the server they are playing shuts down and they instantly reconnect. Instantly reconnecting again after the Spoofed Client Identification kick will work and the spoofed kick is a single event. If you find out more of these cases, please share the information with the silEnT community on forums. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Death Match  =&lt;br /&gt;
&lt;br /&gt;
Starting from the silEnT version 0.3.0, there is a new gametype available. Team Death Match is a gametype where 2 teams score for kills. A TDM map can be &amp;lt;br&amp;gt;ended by Score limit, time limit or by both. The TDM game type is controlled by 4 server cvars. &lt;br /&gt;
&lt;br /&gt;
g_TDMType &amp;lt;br&amp;gt;g_TDMOptions&amp;lt;br&amp;gt;g_TDMScore&amp;lt;br&amp;gt;g_TDMObjBonus &lt;br /&gt;
&lt;br /&gt;
= Weapon Numbers = &lt;br /&gt;
&lt;br /&gt;
MOD_UNKNOWN		// 0&lt;br /&gt;
&lt;br /&gt;
MOD_MACHINEGUN		// 1&lt;br /&gt;
&lt;br /&gt;
MOD_BROWNING		// 2&lt;br /&gt;
&lt;br /&gt;
MOD_MG42		// 3&lt;br /&gt;
&lt;br /&gt;
MOD_GRENADE		// 4&lt;br /&gt;
&lt;br /&gt;
MOD_ROCKET		// 5&lt;br /&gt;
&lt;br /&gt;
MOD_KNIFE		// 6&lt;br /&gt;
&lt;br /&gt;
MOD_LUGER		// 7&lt;br /&gt;
&lt;br /&gt;
MOD_COLT		// 8&lt;br /&gt;
&lt;br /&gt;
MOD_MP40		// 9&lt;br /&gt;
&lt;br /&gt;
MOD_THOMPSON		// 10&lt;br /&gt;
&lt;br /&gt;
MOD_STEN&lt;br /&gt;
&lt;br /&gt;
MOD_GARAND&lt;br /&gt;
&lt;br /&gt;
MOD_SNOOPERSCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_SILENCER&lt;br /&gt;
&lt;br /&gt;
MOD_FG42		// 15&lt;br /&gt;
&lt;br /&gt;
MOD_FG42SCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_PANZERFAUST&lt;br /&gt;
&lt;br /&gt;
MOD_GRENADE_LAUNCHER&lt;br /&gt;
&lt;br /&gt;
MOD_FLAMETHROWER&lt;br /&gt;
&lt;br /&gt;
MOD_GRENADE_PINEAPPLE   // 20&lt;br /&gt;
&lt;br /&gt;
MOD_CROSS&lt;br /&gt;
&lt;br /&gt;
MOD_MAPMORTAR&lt;br /&gt;
&lt;br /&gt;
MOD_MAPMORTAR_SPLASH&lt;br /&gt;
&lt;br /&gt;
MOD_KICKED&lt;br /&gt;
&lt;br /&gt;
MOD_GRABBER		// 25&lt;br /&gt;
&lt;br /&gt;
MOD_DYNAMITE&lt;br /&gt;
&lt;br /&gt;
MOD_AIRSTRIKE&lt;br /&gt;
&lt;br /&gt;
MOD_SYRINGE&lt;br /&gt;
&lt;br /&gt;
MOD_AMMO&lt;br /&gt;
&lt;br /&gt;
MOD_ARTY		// 30&lt;br /&gt;
&lt;br /&gt;
MOD_WATER&lt;br /&gt;
&lt;br /&gt;
MOD_SLIME&lt;br /&gt;
&lt;br /&gt;
MOD_LAVA&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH&lt;br /&gt;
&lt;br /&gt;
MOD_TELEFRAG		// 35&lt;br /&gt;
&lt;br /&gt;
MOD_FALLING&lt;br /&gt;
&lt;br /&gt;
MOD_SUICIDE&lt;br /&gt;
&lt;br /&gt;
MOD_TARGET_LASER&lt;br /&gt;
&lt;br /&gt;
MOD_TRIGGER_HURT&lt;br /&gt;
&lt;br /&gt;
MOD_EXPLOSIVE		// 40&lt;br /&gt;
&lt;br /&gt;
MOD_CARBINE&lt;br /&gt;
&lt;br /&gt;
MOD_KAR98&lt;br /&gt;
&lt;br /&gt;
MOD_GPG40&lt;br /&gt;
&lt;br /&gt;
MOD_M7&lt;br /&gt;
&lt;br /&gt;
MOD_LANDMINE		// 45&lt;br /&gt;
&lt;br /&gt;
MOD_SATCHEL&lt;br /&gt;
&lt;br /&gt;
MOD_TRIPMINE&lt;br /&gt;
&lt;br /&gt;
MOD_SMOKEBOMB&lt;br /&gt;
&lt;br /&gt;
MOD_MOBILE_MG42&lt;br /&gt;
&lt;br /&gt;
MOD_SILENCED_COLT	// 50&lt;br /&gt;
&lt;br /&gt;
MOD_GARAND_SCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH_CONSTRUCTION&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH_CONSTRUCTIONDEATH&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH_CONSTRUCTIONDEATH_NOATTACKER&lt;br /&gt;
&lt;br /&gt;
MOD_K43			// 55&lt;br /&gt;
&lt;br /&gt;
MOD_K43_SCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_MORTAR&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_COLT&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_LUGER&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_SILENCEDCOLT  // 60&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_SILENCEDLUGER&lt;br /&gt;
&lt;br /&gt;
MOD_SMOKEGRENADE&lt;br /&gt;
&lt;br /&gt;
MOD_SWAP_PLACES&lt;br /&gt;
&lt;br /&gt;
MOD_SWITCHTEAM&lt;br /&gt;
&lt;br /&gt;
MOD_GOOMBA		// 65&lt;br /&gt;
&lt;br /&gt;
MOD_POISON&lt;br /&gt;
&lt;br /&gt;
MOD_FEAR&lt;br /&gt;
&lt;br /&gt;
MOD_THROWN_KNIFE&lt;br /&gt;
&lt;br /&gt;
MOD_REFLECTED_FF	// 69&lt;br /&gt;
&lt;br /&gt;
MOD_PPSH		// 70&lt;br /&gt;
&lt;br /&gt;
MOD_SHOVE		// 71&lt;br /&gt;
&lt;br /&gt;
= Mod Setup Questions  =&lt;br /&gt;
&lt;br /&gt;
== Friendly Fire hitsounds ==&lt;br /&gt;
Q: Friendly Fire hitsounds are not working.&lt;br /&gt;
&lt;br /&gt;
A: Please try to enable warning sound of friendly fire using:&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
set g_hitsounds &amp;quot;9&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== XP save not working ==&lt;br /&gt;
Q: How to get XP save and player stats for one year?&lt;br /&gt;
&lt;br /&gt;
A: Try below settings in your server config: &amp;lt;br&amp;gt;&lt;br /&gt;
set g_XPSave 21 &amp;lt;br&amp;gt;&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;365d&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;365d&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;365d&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Forcecvar &amp;amp; sv_cvar ==&lt;br /&gt;
Q: How do I make forcecvar or sv_cvar work? &lt;br /&gt;
&lt;br /&gt;
A: silEnT server is able to force client cvars to certain values or ranges by using forcecvar and sv_cvar commands. sv_cvarempty will clear all the sv_cvar commands the server has loaded.&lt;br /&gt;
&lt;br /&gt;
To use the possibility, the g_mapConfigs must be set. All forcecvar and sv_cvar commands that are placed in the default.cfg, will be executed on every map start. Those settings can be overloaded by using a map specific cfg name [mapname].cfg. More help is available at silEnT forums.&lt;br /&gt;
&lt;br /&gt;
== Player screenshots ==&lt;br /&gt;
Q: How do I take player screenshot? &amp;lt;br /&amp;gt;&lt;br /&gt;
A: Currently we support 2.6b clients for taking player screenshots. You can add custom command in your shrubbot.cfg config to capture player screenshot. Through custom command you customize command alias and configure which level has permission to access it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Custom command &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 [command]&lt;br /&gt;
 command  = ss&lt;br /&gt;
 exec     = takess &amp;quot;[1?]&amp;quot; [i]&lt;br /&gt;
 desc     = take screenshot from someone&lt;br /&gt;
 syntax   = [name|number]&lt;br /&gt;
 levels   = 5 6 7 8 9 10&lt;br /&gt;
&lt;br /&gt;
== Customizing Loading Screen ==&lt;br /&gt;
Q: How do I customize the loading screen?&lt;br /&gt;
&lt;br /&gt;
A: Starting from silEnT 0.9.0, server admins can customize the loading screen. This is opposed to modifying the global loading screen.&lt;br /&gt;
These modifications are loaded and used only when connecting to a server that references the custom loading screen.&lt;br /&gt;
&lt;br /&gt;
To convet existing loading screen customizations to silEnT mod, start a local server which references the old file and&lt;br /&gt;
read logs. The logs will inform all the needed changes for the loading screen. The modification is generally done by adding&lt;br /&gt;
_silent to the name of the image file.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1299</id>
		<title>Silent Creating Custom Menu</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1299"/>
		<updated>2015-09-13T11:59:08Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Customized Server Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, server admins have the option to have a second, server customized menu. This is opposed to&lt;br /&gt;
editing the official menus.&lt;br /&gt;
&lt;br /&gt;
The second menu is always opened automatically if present when player opens the menus by pressing ESC. If&lt;br /&gt;
the user clicks either menu, the official or the server custom menu, the other menu automatically closes.&lt;br /&gt;
The server custom menus have the same commands as the official menus, with the exception that onOpen event can not be defined.&lt;br /&gt;
If onOpen is defined, it is ignored.&lt;br /&gt;
&lt;br /&gt;
Following is an example of a server custom menu:&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Customized server menu has one requirement, there must be a file called menus_server_custom.txt. This file is used exactly like the old menus.txt. It defines the .menu files that are loaded for the custom menu. An example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// menu defs&lt;br /&gt;
// &lt;br /&gt;
{&lt;br /&gt;
	loadMenu { &amp;quot;ui/custom_main.menu&amp;quot; }&lt;br /&gt;
	loadMenu { &amp;quot;ui/rules.menu&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The custom_main.menu defined in the menus_server_custom.txt in this example, could look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		16&lt;br /&gt;
#define WINDOW_Y		232&lt;br /&gt;
#define WINDOW_WIDTH	160&lt;br /&gt;
#define WINDOW_HEIGHT	60&lt;br /&gt;
&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpCustomMain&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Main Menu //&lt;br /&gt;
&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;custom_main&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		0&lt;br /&gt;
	&lt;br /&gt;
	onEsc {&lt;br /&gt;
		close custom_main ;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;^7Example&amp;quot;, 232 )&lt;br /&gt;
	&lt;br /&gt;
// Buttons //&lt;br /&gt;
&lt;br /&gt;
	BUTTON( 6, 32, WINDOW_WIDTH-12, 18, &amp;quot;^7Rules&amp;quot;, .3, 14, close custom_main ; open rules )&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And finally, the rules.menu could look something like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		100&lt;br /&gt;
#define WINDOW_Y		16&lt;br /&gt;
#define WINDOW_WIDTH	128&lt;br /&gt;
#define WINDOW_HEIGHT	152&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpRules&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
// Options Menu //&lt;br /&gt;
	&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;rules&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		WINDOW_STYLE_FILLED&lt;br /&gt;
	&lt;br /&gt;
	onESC {&lt;br /&gt;
		close rules ;&lt;br /&gt;
		open custom_main&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;RULES&amp;quot;, 94 )&lt;br /&gt;
	&lt;br /&gt;
	... Stuff for players to read in menu controls ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that the menu is not complete. You can delete the &amp;quot;... Stuff for players to read in menu controls ...&amp;quot; or insert some controls that work in its place.&lt;br /&gt;
&lt;br /&gt;
The resulting files need to be packed into a zip file that is renamed to pk3 so that all the menu files and the &amp;quot;menus_server_custom.txt&amp;quot; are in and under ui directory.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
* When user opens the menus, both the official menu and the server customized menu are opened. The menus are opened in a way that the official menu is always on top in case the two menus overlap.&lt;br /&gt;
* If user clicks a button in either menu, the other menu is automatically closed by the mod. This also includes the case when user presses ESC to close the menus.&lt;br /&gt;
* The onOpen event is ignored in the custom menus.&lt;br /&gt;
* Menu files in the etmain directory or the official menus can not be modified and the server refuses to start if it detects such modifications.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1298</id>
		<title>Silent Creating Custom Menu</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1298"/>
		<updated>2015-09-13T11:55:22Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Customized Server Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, server admins have the option to have a second, server customized menu. This is opposed to&lt;br /&gt;
editing the official menus.&lt;br /&gt;
&lt;br /&gt;
The second menu is always opened automatically if present when player opens the menus by pressing ESC. If&lt;br /&gt;
the user clicks either menu, the official or the server custom menu, the other menu automatically closes.&lt;br /&gt;
The server custom menus have the same commands as the official menus, with the exception that onOpen event can not be defined.&lt;br /&gt;
If onOpen is defined, it is ignored.&lt;br /&gt;
&lt;br /&gt;
Following is an example of a server custom menu:&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Customized server menu has one requirement, there must be a file called menus_server_custom.txt. This file is used exactly like the old menus.txt. It defines the .menu files that are loaded for the custom menu. An example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// menu defs&lt;br /&gt;
// &lt;br /&gt;
{&lt;br /&gt;
	loadMenu { &amp;quot;ui/custom_main.menu&amp;quot; }&lt;br /&gt;
	loadMenu { &amp;quot;ui/rules.menu&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The custom_main.menu defined in the menus_server_custom.txt in this example, could look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;ui/menudef.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Defines //&lt;br /&gt;
&lt;br /&gt;
#define WINDOW_X		16&lt;br /&gt;
#define WINDOW_Y		232&lt;br /&gt;
#define WINDOW_WIDTH	160&lt;br /&gt;
#define WINDOW_HEIGHT	60&lt;br /&gt;
&lt;br /&gt;
#define GROUP_NAME		&amp;quot;grpCustomMain&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Macros //&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;ui/menumacros.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Main Menu //&lt;br /&gt;
&lt;br /&gt;
menuDef {&lt;br /&gt;
	name		&amp;quot;custom_main&amp;quot;&lt;br /&gt;
	visible		0&lt;br /&gt;
	fullscreen	0&lt;br /&gt;
	rect		WINDOW_X WINDOW_Y WINDOW_WIDTH WINDOW_HEIGHT&lt;br /&gt;
	style		0&lt;br /&gt;
	&lt;br /&gt;
	onEsc {&lt;br /&gt;
		close custom_main ;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
// Window //&lt;br /&gt;
&lt;br /&gt;
	WINDOW( &amp;quot;^7Example&amp;quot;, 232 )&lt;br /&gt;
	&lt;br /&gt;
// Buttons //&lt;br /&gt;
&lt;br /&gt;
	BUTTON( 6, 32, WINDOW_WIDTH-12, 18, &amp;quot;^7Rules&amp;quot;, .3, 14, close custom_main ; open rules )&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The resulting files need to be packed into a zip file that is renamed to pk3 so that all the menu files and the &amp;quot;menus_server_custom.txt&amp;quot; are in and under ui directory.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
* When user opens the menus, both the official menu and the server customized menu are opened. The menus are opened in a way that the official menu is always on top in case the two menus overlap.&lt;br /&gt;
* If user clicks a button in either menu, the other menu is automatically closed by the mod. This also includes the case when user presses ESC to close the menus.&lt;br /&gt;
* The onOpen event is ignored in the custom menus.&lt;br /&gt;
* Menu files in the etmain directory or the official menus can not be modified and the server refuses to start if it detects such modifications.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1297</id>
		<title>Silent Creating Custom Menu</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1297"/>
		<updated>2015-09-13T11:53:03Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Customized Server Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, server admins have the option to have a second, server customized menu. This is opposed to&lt;br /&gt;
editing the official menus.&lt;br /&gt;
&lt;br /&gt;
The second menu is always opened automatically if present when player opens the menus by pressing ESC. If&lt;br /&gt;
the user clicks either menu, the official or the server custom menu, the other menu automatically closes.&lt;br /&gt;
The server custom menus have the same commands as the official menus, with the exception that onOpen event can not be defined.&lt;br /&gt;
If onOpen is defined, it is ignored.&lt;br /&gt;
&lt;br /&gt;
Following is an example of a server custom menu:&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Customized server menu has one requirement, there must be a file called menus_server_custom.txt. This file is used exactly like the old menus.txt. It defines the .menu files that are loaded for the custom menu. An example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// menu defs&lt;br /&gt;
// &lt;br /&gt;
{&lt;br /&gt;
	loadMenu { &amp;quot;ui/custom_main.menu&amp;quot; }&lt;br /&gt;
	loadMenu { &amp;quot;ui/rules.menu&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The resulting files need to be packed into a zip file that is renamed to pk3 so that all the menu files and the &amp;quot;menus_server_custom.txt&amp;quot; are in and under ui directory.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
* When user opens the menus, both the official menu and the server customized menu are opened. The menus are opened in a way that the official menu is always on top in case the two menus overlap.&lt;br /&gt;
* If user clicks a button in either menu, the other menu is automatically closed by the mod. This also includes the case when user presses ESC to close the menus.&lt;br /&gt;
* The onOpen event is ignored in the custom menus.&lt;br /&gt;
* Menu files in the etmain directory or the official menus can not be modified and the server refuses to start if it detects such modifications.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1296</id>
		<title>Silent Creating Custom Menu</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1296"/>
		<updated>2015-09-13T11:52:00Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Customized Server Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, server admins have the option to have a second, server customized menu. This is opposed to&lt;br /&gt;
editing the official menus.&lt;br /&gt;
&lt;br /&gt;
The second menu is always opened automatically if present when player opens the menus by pressing ESC. If&lt;br /&gt;
the user clicks either menu, the official or the server custom menu, the other menu automatically closes.&lt;br /&gt;
The server custom menus have the same commands as the official menus, with the exception that onOpen event can not be defined.&lt;br /&gt;
If onOpen is defined, it is ignored.&lt;br /&gt;
&lt;br /&gt;
Following is an example of a server custom menu:&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Customized server menu has one requirement, there must be a file called menus_server_custom.txt. This file is used exactly like the old menus.txt. It defines the .menu files that are loaded for the custom menu. An example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// menu defs&lt;br /&gt;
// &lt;br /&gt;
{&lt;br /&gt;
	loadMenu { &amp;quot;ui/custom_main.menu&amp;quot; }&lt;br /&gt;
	loadMenu { &amp;quot;ui/rules.menu&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The resulting files need to be packed into a zip file that is renamed to pk3 so that all the menu files and the &amp;quot;menus_server_custom.txt&amp;quot; are in and under ui directory.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
*  When user opens themenus, both the official menu and the server customized menu are opened. The menus are opened in a way that the official menu is always on top in case the two menus overlap.&lt;br /&gt;
*  If user clicks a button in either menu, the other menu is automatically closed by the mod. This also includes the case when user presses ESC to close the menus.&lt;br /&gt;
* The onOpen event is ignored in the custom menus.&lt;br /&gt;
* Menu files in the etmain directory or the official menus can not be modified and the server refuses to start if it detects such modifications.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1295</id>
		<title>Silent Creating Custom Menu</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1295"/>
		<updated>2015-09-13T11:51:23Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Customized Server Menus ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.9.0, server admins have the option to have a second, server customized menu. This is opposed to&lt;br /&gt;
editing the official menus.&lt;br /&gt;
&lt;br /&gt;
The second menu is always opened automatically if present when player opens the menus by pressing ESC. If&lt;br /&gt;
the user clicks either menu, the official or the server custom menu, the other menu automatically closes.&lt;br /&gt;
The server custom menus have the same commands as the official menus, with the exception that onOpen event can not be defined.&lt;br /&gt;
If onOpen is defined, it is ignored.&lt;br /&gt;
&lt;br /&gt;
Following is an example of a server custom menu:&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Customized server menu has one requirement, there must be a file called menus_server_custom.txt. This file is used exactly like the old menus.txt. It defines the .menu files that are laded for the custom menu. An example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// menu defs&lt;br /&gt;
// &lt;br /&gt;
{&lt;br /&gt;
	loadMenu { &amp;quot;ui/custom_main.menu&amp;quot; }&lt;br /&gt;
	loadMenu { &amp;quot;ui/rules.menu&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The resulting files need to be packed into a zip file that is renamed to pk3 so that all the menu files and the &amp;quot;menus_server_custom.txt&amp;quot; are in and under ui directory.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
*  When user opens themenus, both the official menu and the server customized menu are opened. The menus are opened in a way that the official menu is always on top in case the two menus overlap.&lt;br /&gt;
*  If user clicks a button in either menu, the other menu is automatically closed by the mod. This also includes the case when user presses ESC to close the menus.&lt;br /&gt;
* The onOpen event is ignored in the custom menus.&lt;br /&gt;
* Menu files in the etmain directory or the official menus can not be modified and the server refuses to start if it detects such modifications.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_FAQ&amp;diff=1294</id>
		<title>Silent FAQ</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_FAQ&amp;diff=1294"/>
		<updated>2015-09-13T11:10:23Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Customizing Loading Screen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Statistics / Rankings Terms  =&lt;br /&gt;
&amp;lt;div&amp;gt;There are several settings in silEnT that attempt to determine how &amp;quot;good&amp;quot; a player is in terms (hopefully) more meaningful than just XP or XP per unit of time. Here are the terms used and their definitions:&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Kill Rating  ==&lt;br /&gt;
&amp;lt;div&amp;gt;How good of a killer the player is, based on how many other players the player kills, and their kill rating. In other words, killing players with a high kill rating increases the shooter&#039;s kill rating more than killing players with a low kill rating.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Player Rating  ==&lt;br /&gt;
&amp;lt;div&amp;gt;This is a measure of how much the player contributes to winning a map. This measure is calculated by seeing how many times this player is on the winning team after every map, and how good the opposing team was. Like kill rating, winning against teams with a high average player rating results in player rating increasing faster.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
== Win Probability  ==&lt;br /&gt;
&amp;lt;div&amp;gt;The probability that a team will win a map (based on the players&#039; player rating, team size, and the map).&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;These statistics are gathered by silEnT and the data is saved to local files on disk. This feature is originally from ETPub and no alterations have been made to it by silEnT team.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;The ETPub development team member responsible for implementing these player rankings and ratings is Josh Menke. He has been kind enough to begin working on an academic write-up to explain the mathematics and statistics methods behind these rankings. Due to time constraints the document is being gradually updated and expanded. The latest version can be seen [http://axon.cs.byu.edu/~josh/etstats/update_bayes.pdf here].&amp;lt;/div&amp;gt; &lt;br /&gt;
= Hardware Based Identification  =&lt;br /&gt;
&lt;br /&gt;
Starting from version 0.3.0, the silEnT mod can be configured to enforce bans using hardware based identification. This is not any fool proof system but it is made to be an addition to the already existing ban methods. The hardware identification cannot be seen in human readable form while on the server. The data that is sent to the server can be seen in the client by making /cg_ident in the console. That is a hexadecimal string which changes its value between maps. &lt;br /&gt;
&lt;br /&gt;
The format and data used to create the client Identification may change between the versions of the silEnT mod. The server can be configured with the g_identOptions server cvar. The cvar is bit flagged which means, you can combine the values by adding them together. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &#039;&#039;g_identOptions&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
1&amp;amp;nbsp;; Kick clients that are spoofing the client identification to enter the server. &lt;br /&gt;
&lt;br /&gt;
2&amp;amp;nbsp;; Kick clients that are not sending the identification to the server. &lt;br /&gt;
&lt;br /&gt;
4&amp;amp;nbsp;; Enforce bans using the identification. &lt;br /&gt;
&lt;br /&gt;
8&amp;amp;nbsp;; Report all actions taken based on client identification to the adminchat &lt;br /&gt;
&lt;br /&gt;
16&amp;amp;nbsp;; If a player is caught of circumventing a ban, a new ban is created for the player. The ban reason will have additional (Automated copy of a ban for xxxxxxxx) where xxxxxxxx is replaced with the 8 character PB GUID of the old ban. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Server admins can use the&amp;amp;nbsp;!finger command to see the status of any players identification. &lt;br /&gt;
&lt;br /&gt;
If the server is configured to kick for spoofed client identification, it can happen legitimately if the client connects directly from one silEnT server to another. Or if the server they are playing shuts down and they instantly reconnect. Instantly reconnecting again after the Spoofed Client Identification kick will work and the spoofed kick is a single event. If you find out more of these cases, please share the information with the silEnT community on forums. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Death Match  =&lt;br /&gt;
&lt;br /&gt;
Starting from the silEnT version 0.3.0, there is a new gametype available. Team Death Match is a gametype where 2 teams score for kills. A TDM map can be &amp;lt;br&amp;gt;ended by Score limit, time limit or by both. The TDM game type is controlled by 4 server cvars. &lt;br /&gt;
&lt;br /&gt;
g_TDMType &amp;lt;br&amp;gt;g_TDMOptions&amp;lt;br&amp;gt;g_TDMScore&amp;lt;br&amp;gt;g_TDMObjBonus &lt;br /&gt;
&lt;br /&gt;
= Weapon Numbers = &lt;br /&gt;
&lt;br /&gt;
MOD_UNKNOWN		// 0&lt;br /&gt;
&lt;br /&gt;
MOD_MACHINEGUN		// 1&lt;br /&gt;
&lt;br /&gt;
MOD_BROWNING		// 2&lt;br /&gt;
&lt;br /&gt;
MOD_MG42		// 3&lt;br /&gt;
&lt;br /&gt;
MOD_GRENADE		// 4&lt;br /&gt;
&lt;br /&gt;
MOD_ROCKET		// 5&lt;br /&gt;
&lt;br /&gt;
MOD_KNIFE		// 6&lt;br /&gt;
&lt;br /&gt;
MOD_LUGER		// 7&lt;br /&gt;
&lt;br /&gt;
MOD_COLT		// 8&lt;br /&gt;
&lt;br /&gt;
MOD_MP40		// 9&lt;br /&gt;
&lt;br /&gt;
MOD_THOMPSON		// 10&lt;br /&gt;
&lt;br /&gt;
MOD_STEN&lt;br /&gt;
&lt;br /&gt;
MOD_GARAND&lt;br /&gt;
&lt;br /&gt;
MOD_SNOOPERSCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_SILENCER&lt;br /&gt;
&lt;br /&gt;
MOD_FG42		// 15&lt;br /&gt;
&lt;br /&gt;
MOD_FG42SCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_PANZERFAUST&lt;br /&gt;
&lt;br /&gt;
MOD_GRENADE_LAUNCHER&lt;br /&gt;
&lt;br /&gt;
MOD_FLAMETHROWER&lt;br /&gt;
&lt;br /&gt;
MOD_GRENADE_PINEAPPLE   // 20&lt;br /&gt;
&lt;br /&gt;
MOD_CROSS&lt;br /&gt;
&lt;br /&gt;
MOD_MAPMORTAR&lt;br /&gt;
&lt;br /&gt;
MOD_MAPMORTAR_SPLASH&lt;br /&gt;
&lt;br /&gt;
MOD_KICKED&lt;br /&gt;
&lt;br /&gt;
MOD_GRABBER		// 25&lt;br /&gt;
&lt;br /&gt;
MOD_DYNAMITE&lt;br /&gt;
&lt;br /&gt;
MOD_AIRSTRIKE&lt;br /&gt;
&lt;br /&gt;
MOD_SYRINGE&lt;br /&gt;
&lt;br /&gt;
MOD_AMMO&lt;br /&gt;
&lt;br /&gt;
MOD_ARTY		// 30&lt;br /&gt;
&lt;br /&gt;
MOD_WATER&lt;br /&gt;
&lt;br /&gt;
MOD_SLIME&lt;br /&gt;
&lt;br /&gt;
MOD_LAVA&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH&lt;br /&gt;
&lt;br /&gt;
MOD_TELEFRAG		// 35&lt;br /&gt;
&lt;br /&gt;
MOD_FALLING&lt;br /&gt;
&lt;br /&gt;
MOD_SUICIDE&lt;br /&gt;
&lt;br /&gt;
MOD_TARGET_LASER&lt;br /&gt;
&lt;br /&gt;
MOD_TRIGGER_HURT&lt;br /&gt;
&lt;br /&gt;
MOD_EXPLOSIVE		// 40&lt;br /&gt;
&lt;br /&gt;
MOD_CARBINE&lt;br /&gt;
&lt;br /&gt;
MOD_KAR98&lt;br /&gt;
&lt;br /&gt;
MOD_GPG40&lt;br /&gt;
&lt;br /&gt;
MOD_M7&lt;br /&gt;
&lt;br /&gt;
MOD_LANDMINE		// 45&lt;br /&gt;
&lt;br /&gt;
MOD_SATCHEL&lt;br /&gt;
&lt;br /&gt;
MOD_TRIPMINE&lt;br /&gt;
&lt;br /&gt;
MOD_SMOKEBOMB&lt;br /&gt;
&lt;br /&gt;
MOD_MOBILE_MG42&lt;br /&gt;
&lt;br /&gt;
MOD_SILENCED_COLT	// 50&lt;br /&gt;
&lt;br /&gt;
MOD_GARAND_SCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH_CONSTRUCTION&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH_CONSTRUCTIONDEATH&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH_CONSTRUCTIONDEATH_NOATTACKER&lt;br /&gt;
&lt;br /&gt;
MOD_K43			// 55&lt;br /&gt;
&lt;br /&gt;
MOD_K43_SCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_MORTAR&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_COLT&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_LUGER&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_SILENCEDCOLT  // 60&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_SILENCEDLUGER&lt;br /&gt;
&lt;br /&gt;
MOD_SMOKEGRENADE&lt;br /&gt;
&lt;br /&gt;
MOD_SWAP_PLACES&lt;br /&gt;
&lt;br /&gt;
MOD_SWITCHTEAM&lt;br /&gt;
&lt;br /&gt;
MOD_GOOMBA		// 65&lt;br /&gt;
&lt;br /&gt;
MOD_POISON&lt;br /&gt;
&lt;br /&gt;
MOD_FEAR&lt;br /&gt;
&lt;br /&gt;
MOD_THROWN_KNIFE&lt;br /&gt;
&lt;br /&gt;
MOD_REFLECTED_FF	// 69&lt;br /&gt;
&lt;br /&gt;
MOD_PPSH		// 70&lt;br /&gt;
&lt;br /&gt;
MOD_SHOVE		// 71&lt;br /&gt;
&lt;br /&gt;
= Mod Setup Questions  =&lt;br /&gt;
&lt;br /&gt;
== Friendly Fire hitsounds ==&lt;br /&gt;
Q: Friendly Fire hitsounds are not working.&lt;br /&gt;
&lt;br /&gt;
A: Please try to enable warning sound of friendly fire using:&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
set g_hitsounds &amp;quot;9&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== XP save not working ==&lt;br /&gt;
Q: How to get XP save and player stats for one year?&lt;br /&gt;
&lt;br /&gt;
A: Try below settings in your server config: &amp;lt;br&amp;gt;&lt;br /&gt;
set g_XPSave 21 &amp;lt;br&amp;gt;&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;365d&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;365d&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;365d&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Forcecvar &amp;amp; sv_cvar ==&lt;br /&gt;
Q: How do I make forcecvar or sv_cvar work? &lt;br /&gt;
&lt;br /&gt;
A: silEnT server is able to force client cvars to certain values or ranges by using forcecvar and sv_cvar commands. sv_cvarempty will clear all the sv_cvar commands the server has loaded.&lt;br /&gt;
&lt;br /&gt;
To use the possibility, the g_mapConfigs must be set. All forcecvar and sv_cvar commands that are placed in the default.cfg, will be executed on every map start. Those settings can be overloaded by using a map specific cfg name [mapname].cfg. More help is available at silEnT forums.&lt;br /&gt;
&lt;br /&gt;
== Player screenshots ==&lt;br /&gt;
Q: How do I take player screenshot? &amp;lt;br /&amp;gt;&lt;br /&gt;
A: Currently we support 2.6b clients for taking player screenshots. You can add custom command in your shrubbot.cfg config to capture player screenshot. Through custom command you customize command alias and configure which level has permission to access it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Custom command &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 [command]&lt;br /&gt;
 command  = ss&lt;br /&gt;
 exec     = takess &amp;quot;[1?]&amp;quot; [i]&lt;br /&gt;
 desc     = take screenshot from someone&lt;br /&gt;
 syntax   = [name|number]&lt;br /&gt;
 levels   = 5 6 7 8 9 10&lt;br /&gt;
&lt;br /&gt;
== Customizing Loading Screen ==&lt;br /&gt;
Starting from silEnT 0.9.0, server admins can customize the loading screen. This is opposed to modifying the global loading screen.&lt;br /&gt;
These modifications are loaded and used only when connecting to a server that references the custom loading screen.&lt;br /&gt;
&lt;br /&gt;
To convet existing loading screen customizations to silEnT mod, start a local server which references the old file and&lt;br /&gt;
read logs. The logs will inform all the needed changes for the loading screen. The modification is generally done by adding&lt;br /&gt;
_silent to the name of the image file.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_FAQ&amp;diff=1293</id>
		<title>Silent FAQ</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_FAQ&amp;diff=1293"/>
		<updated>2015-09-13T11:05:47Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Statistics / Rankings Terms  =&lt;br /&gt;
&amp;lt;div&amp;gt;There are several settings in silEnT that attempt to determine how &amp;quot;good&amp;quot; a player is in terms (hopefully) more meaningful than just XP or XP per unit of time. Here are the terms used and their definitions:&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Kill Rating  ==&lt;br /&gt;
&amp;lt;div&amp;gt;How good of a killer the player is, based on how many other players the player kills, and their kill rating. In other words, killing players with a high kill rating increases the shooter&#039;s kill rating more than killing players with a low kill rating.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Player Rating  ==&lt;br /&gt;
&amp;lt;div&amp;gt;This is a measure of how much the player contributes to winning a map. This measure is calculated by seeing how many times this player is on the winning team after every map, and how good the opposing team was. Like kill rating, winning against teams with a high average player rating results in player rating increasing faster.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
== Win Probability  ==&lt;br /&gt;
&amp;lt;div&amp;gt;The probability that a team will win a map (based on the players&#039; player rating, team size, and the map).&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;These statistics are gathered by silEnT and the data is saved to local files on disk. This feature is originally from ETPub and no alterations have been made to it by silEnT team.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;The ETPub development team member responsible for implementing these player rankings and ratings is Josh Menke. He has been kind enough to begin working on an academic write-up to explain the mathematics and statistics methods behind these rankings. Due to time constraints the document is being gradually updated and expanded. The latest version can be seen [http://axon.cs.byu.edu/~josh/etstats/update_bayes.pdf here].&amp;lt;/div&amp;gt; &lt;br /&gt;
= Hardware Based Identification  =&lt;br /&gt;
&lt;br /&gt;
Starting from version 0.3.0, the silEnT mod can be configured to enforce bans using hardware based identification. This is not any fool proof system but it is made to be an addition to the already existing ban methods. The hardware identification cannot be seen in human readable form while on the server. The data that is sent to the server can be seen in the client by making /cg_ident in the console. That is a hexadecimal string which changes its value between maps. &lt;br /&gt;
&lt;br /&gt;
The format and data used to create the client Identification may change between the versions of the silEnT mod. The server can be configured with the g_identOptions server cvar. The cvar is bit flagged which means, you can combine the values by adding them together. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &#039;&#039;g_identOptions&#039;&#039;: &lt;br /&gt;
&lt;br /&gt;
1&amp;amp;nbsp;; Kick clients that are spoofing the client identification to enter the server. &lt;br /&gt;
&lt;br /&gt;
2&amp;amp;nbsp;; Kick clients that are not sending the identification to the server. &lt;br /&gt;
&lt;br /&gt;
4&amp;amp;nbsp;; Enforce bans using the identification. &lt;br /&gt;
&lt;br /&gt;
8&amp;amp;nbsp;; Report all actions taken based on client identification to the adminchat &lt;br /&gt;
&lt;br /&gt;
16&amp;amp;nbsp;; If a player is caught of circumventing a ban, a new ban is created for the player. The ban reason will have additional (Automated copy of a ban for xxxxxxxx) where xxxxxxxx is replaced with the 8 character PB GUID of the old ban. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; Server admins can use the&amp;amp;nbsp;!finger command to see the status of any players identification. &lt;br /&gt;
&lt;br /&gt;
If the server is configured to kick for spoofed client identification, it can happen legitimately if the client connects directly from one silEnT server to another. Or if the server they are playing shuts down and they instantly reconnect. Instantly reconnecting again after the Spoofed Client Identification kick will work and the spoofed kick is a single event. If you find out more of these cases, please share the information with the silEnT community on forums. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team Death Match  =&lt;br /&gt;
&lt;br /&gt;
Starting from the silEnT version 0.3.0, there is a new gametype available. Team Death Match is a gametype where 2 teams score for kills. A TDM map can be &amp;lt;br&amp;gt;ended by Score limit, time limit or by both. The TDM game type is controlled by 4 server cvars. &lt;br /&gt;
&lt;br /&gt;
g_TDMType &amp;lt;br&amp;gt;g_TDMOptions&amp;lt;br&amp;gt;g_TDMScore&amp;lt;br&amp;gt;g_TDMObjBonus &lt;br /&gt;
&lt;br /&gt;
= Weapon Numbers = &lt;br /&gt;
&lt;br /&gt;
MOD_UNKNOWN		// 0&lt;br /&gt;
&lt;br /&gt;
MOD_MACHINEGUN		// 1&lt;br /&gt;
&lt;br /&gt;
MOD_BROWNING		// 2&lt;br /&gt;
&lt;br /&gt;
MOD_MG42		// 3&lt;br /&gt;
&lt;br /&gt;
MOD_GRENADE		// 4&lt;br /&gt;
&lt;br /&gt;
MOD_ROCKET		// 5&lt;br /&gt;
&lt;br /&gt;
MOD_KNIFE		// 6&lt;br /&gt;
&lt;br /&gt;
MOD_LUGER		// 7&lt;br /&gt;
&lt;br /&gt;
MOD_COLT		// 8&lt;br /&gt;
&lt;br /&gt;
MOD_MP40		// 9&lt;br /&gt;
&lt;br /&gt;
MOD_THOMPSON		// 10&lt;br /&gt;
&lt;br /&gt;
MOD_STEN&lt;br /&gt;
&lt;br /&gt;
MOD_GARAND&lt;br /&gt;
&lt;br /&gt;
MOD_SNOOPERSCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_SILENCER&lt;br /&gt;
&lt;br /&gt;
MOD_FG42		// 15&lt;br /&gt;
&lt;br /&gt;
MOD_FG42SCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_PANZERFAUST&lt;br /&gt;
&lt;br /&gt;
MOD_GRENADE_LAUNCHER&lt;br /&gt;
&lt;br /&gt;
MOD_FLAMETHROWER&lt;br /&gt;
&lt;br /&gt;
MOD_GRENADE_PINEAPPLE   // 20&lt;br /&gt;
&lt;br /&gt;
MOD_CROSS&lt;br /&gt;
&lt;br /&gt;
MOD_MAPMORTAR&lt;br /&gt;
&lt;br /&gt;
MOD_MAPMORTAR_SPLASH&lt;br /&gt;
&lt;br /&gt;
MOD_KICKED&lt;br /&gt;
&lt;br /&gt;
MOD_GRABBER		// 25&lt;br /&gt;
&lt;br /&gt;
MOD_DYNAMITE&lt;br /&gt;
&lt;br /&gt;
MOD_AIRSTRIKE&lt;br /&gt;
&lt;br /&gt;
MOD_SYRINGE&lt;br /&gt;
&lt;br /&gt;
MOD_AMMO&lt;br /&gt;
&lt;br /&gt;
MOD_ARTY		// 30&lt;br /&gt;
&lt;br /&gt;
MOD_WATER&lt;br /&gt;
&lt;br /&gt;
MOD_SLIME&lt;br /&gt;
&lt;br /&gt;
MOD_LAVA&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH&lt;br /&gt;
&lt;br /&gt;
MOD_TELEFRAG		// 35&lt;br /&gt;
&lt;br /&gt;
MOD_FALLING&lt;br /&gt;
&lt;br /&gt;
MOD_SUICIDE&lt;br /&gt;
&lt;br /&gt;
MOD_TARGET_LASER&lt;br /&gt;
&lt;br /&gt;
MOD_TRIGGER_HURT&lt;br /&gt;
&lt;br /&gt;
MOD_EXPLOSIVE		// 40&lt;br /&gt;
&lt;br /&gt;
MOD_CARBINE&lt;br /&gt;
&lt;br /&gt;
MOD_KAR98&lt;br /&gt;
&lt;br /&gt;
MOD_GPG40&lt;br /&gt;
&lt;br /&gt;
MOD_M7&lt;br /&gt;
&lt;br /&gt;
MOD_LANDMINE		// 45&lt;br /&gt;
&lt;br /&gt;
MOD_SATCHEL&lt;br /&gt;
&lt;br /&gt;
MOD_TRIPMINE&lt;br /&gt;
&lt;br /&gt;
MOD_SMOKEBOMB&lt;br /&gt;
&lt;br /&gt;
MOD_MOBILE_MG42&lt;br /&gt;
&lt;br /&gt;
MOD_SILENCED_COLT	// 50&lt;br /&gt;
&lt;br /&gt;
MOD_GARAND_SCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH_CONSTRUCTION&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH_CONSTRUCTIONDEATH&lt;br /&gt;
&lt;br /&gt;
MOD_CRUSH_CONSTRUCTIONDEATH_NOATTACKER&lt;br /&gt;
&lt;br /&gt;
MOD_K43			// 55&lt;br /&gt;
&lt;br /&gt;
MOD_K43_SCOPE&lt;br /&gt;
&lt;br /&gt;
MOD_MORTAR&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_COLT&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_LUGER&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_SILENCEDCOLT  // 60&lt;br /&gt;
&lt;br /&gt;
MOD_AKIMBO_SILENCEDLUGER&lt;br /&gt;
&lt;br /&gt;
MOD_SMOKEGRENADE&lt;br /&gt;
&lt;br /&gt;
MOD_SWAP_PLACES&lt;br /&gt;
&lt;br /&gt;
MOD_SWITCHTEAM&lt;br /&gt;
&lt;br /&gt;
MOD_GOOMBA		// 65&lt;br /&gt;
&lt;br /&gt;
MOD_POISON&lt;br /&gt;
&lt;br /&gt;
MOD_FEAR&lt;br /&gt;
&lt;br /&gt;
MOD_THROWN_KNIFE&lt;br /&gt;
&lt;br /&gt;
MOD_REFLECTED_FF	// 69&lt;br /&gt;
&lt;br /&gt;
MOD_PPSH		// 70&lt;br /&gt;
&lt;br /&gt;
MOD_SHOVE		// 71&lt;br /&gt;
&lt;br /&gt;
= Mod Setup Questions  =&lt;br /&gt;
&lt;br /&gt;
== Friendly Fire hitsounds ==&lt;br /&gt;
Q: Friendly Fire hitsounds are not working.&lt;br /&gt;
&lt;br /&gt;
A: Please try to enable warning sound of friendly fire using:&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
set g_hitsounds &amp;quot;9&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== XP save not working ==&lt;br /&gt;
Q: How to get XP save and player stats for one year?&lt;br /&gt;
&lt;br /&gt;
A: Try below settings in your server config: &amp;lt;br&amp;gt;&lt;br /&gt;
set g_XPSave 21 &amp;lt;br&amp;gt;&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;365d&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;365d&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;365d&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Forcecvar &amp;amp; sv_cvar ==&lt;br /&gt;
Q: How do I make forcecvar or sv_cvar work? &lt;br /&gt;
&lt;br /&gt;
A: silEnT server is able to force client cvars to certain values or ranges by using forcecvar and sv_cvar commands. sv_cvarempty will clear all the sv_cvar commands the server has loaded.&lt;br /&gt;
&lt;br /&gt;
To use the possibility, the g_mapConfigs must be set. All forcecvar and sv_cvar commands that are placed in the default.cfg, will be executed on every map start. Those settings can be overloaded by using a map specific cfg name [mapname].cfg. More help is available at silEnT forums.&lt;br /&gt;
&lt;br /&gt;
== Player screenshots ==&lt;br /&gt;
Q: How do I take player screenshot? &amp;lt;br /&amp;gt;&lt;br /&gt;
A: Currently we support 2.6b clients for taking player screenshots. You can add custom command in your shrubbot.cfg config to capture player screenshot. Through custom command you customize command alias and configure which level has permission to access it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Custom command &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 [command]&lt;br /&gt;
 command  = ss&lt;br /&gt;
 exec     = takess &amp;quot;[1?]&amp;quot; [i]&lt;br /&gt;
 desc     = take screenshot from someone&lt;br /&gt;
 syntax   = [name|number]&lt;br /&gt;
 levels   = 5 6 7 8 9 10&lt;br /&gt;
&lt;br /&gt;
== Customizing Loading Screen ==&lt;br /&gt;
Starting from silEnT 0.9.0, server admins can customize the loading screen. This is oppsed to modifying the global loading screen.&lt;br /&gt;
These modifications are loaded and used only when connecting to a server that references the custom loading screen.&lt;br /&gt;
&lt;br /&gt;
To convet existing loading screen customizations to silEnT mod, start a local server which references the old file and&lt;br /&gt;
read logs. The logs will inform all the needed changes for the loading screen. The modification is generally done by adding&lt;br /&gt;
_silent to the name of the image file.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1292</id>
		<title>Silent Creating Custom Menu</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Menu&amp;diff=1292"/>
		<updated>2015-09-13T11:04:05Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: Created page with &amp;quot;Starting from silEnT 0.9.0, server admins have the option to have a second, server customized menu. This is opposed to editing the official menus.  The second menu is always o...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Starting from silEnT 0.9.0, server admins have the option to have a second, server customized menu. This is opposed to&lt;br /&gt;
editing the official menus.&lt;br /&gt;
&lt;br /&gt;
The second menu is always opened automatically if present when player opens the menus by pressing ESC. If&lt;br /&gt;
the user clicks either menu, the official or the server custom menu, the other menu automatically closes.&lt;br /&gt;
The server custom menus have the same commands as the official menus, with the exception that onOpen event can not be defined.&lt;br /&gt;
If onOpen is defined, it is ignored.&lt;br /&gt;
&lt;br /&gt;
Following is an example of a server custom menu:&lt;br /&gt;
&amp;lt;added later&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=SilEnT_Mod&amp;diff=1291</id>
		<title>SilEnT Mod</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=SilEnT_Mod&amp;diff=1291"/>
		<updated>2015-09-13T11:01:08Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SilEnT Mod is a modification for game Wolfenstein: Enemy Territory by [http://www.splashdamage.com/ SplashDamage].&lt;br /&gt;
&lt;br /&gt;
Our goals with the mod are high quality, high performance and high configurability for both, the server and the client side.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Some important features of silEnT mod are:&lt;br /&gt;
&lt;br /&gt;
*Fixed many small bugs that affected the gameplay. These include fixing the sniper zoom exploit and pmove_fixed bug.&lt;br /&gt;
*Lots of code optimisations in many places.&lt;br /&gt;
*New database system for shrubbot with enhanced commands. Now you can ban players even if they are not on server, search players, edit their greeting text, sound, levels, etc.&lt;br /&gt;
*We have added new weapons PPSh, Tripmines and improvised demolition with carefull consideration that they will not alter the game flow that the Enemy Territory is known of. Admins can also easily configure or disable these weapons on their servers.&lt;br /&gt;
*We improved bandwidth usage by rewriting big part of the data transmissions between the server and client and this way gained big performance improvement resulting in more smoother game and stable FPS.&lt;br /&gt;
*Removed many exploitable cvars including cg_noDamageKick.&lt;br /&gt;
*New User Interface with 3 themes. Themes can be switched with &amp;quot;ui_theme&amp;quot; cvar {1,2,3} (Since 0.4.0)&lt;br /&gt;
*Widescreen support. (Since 0.4.0)&lt;br /&gt;
*New front end user interface for private message system. (Since 0.4.0)&lt;br /&gt;
*3rd person view for knife throw animations. (Since 0.4.0)&lt;br /&gt;
*Enhanced Hardware Based Identification system. g_identOptions 16. The server will automatically create a new ban for a player that is circumventing old ban and the client identification catches it. &lt;br /&gt;
*Subnet ban feature to replace pb_sv_banmask. (Since 0.4.0)&lt;br /&gt;
*Possiblity to mute only global chat sounds with cg_noVoiceChats 2. Also added into the menu. (Since 0.4.0)&lt;br /&gt;
*silEnT Mod Anti Cheat to help admins against cheaters. (Since 0.8.0) Feel free to send us non detected cheats through [http://mygamingtalk.com/forums/index.php?app=contactus&amp;amp;module=contato&amp;amp;section=form&amp;amp;id=2 Cheat Submission Page].&lt;br /&gt;
*Customized votes. (Since 0.8.1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For full list of features, please follow full documentation. &lt;br /&gt;
&lt;br /&gt;
== Content  ==&lt;br /&gt;
&lt;br /&gt;
*[http://mygamingtalk.com/forums/files/file/38-silent/ Download] &lt;br /&gt;
*[[Silent Mod Installation|Installation]] &lt;br /&gt;
*Server Cvar &lt;br /&gt;
**[[Silent Mod Server Cvar|silEnT Mod Server Cvar]] &lt;br /&gt;
**[[Generic Server Cvar|Generic Server Cvar]] &lt;br /&gt;
*Client Cvar &lt;br /&gt;
**[[Silent Mod Client Cvar|silEnT Mod Client Cvar]] &lt;br /&gt;
**[[Generic Client Cvar|Generic Client Cvar]] &lt;br /&gt;
*[[Silent Server Console Commands|Server Console Commands]]&lt;br /&gt;
*[[Silent Shrubbot|Shrubbot and User Database]] &lt;br /&gt;
*[[Silent Forcing Client Settings|Forcing Client Settings]]&lt;br /&gt;
*[[Silent Creating Custom Commands|Creating Custom Commands]]&lt;br /&gt;
*[[Silent Creating Custom Menu|Creating Custom Menu]]&lt;br /&gt;
*[[Silent Banners|Banners]] &lt;br /&gt;
*[[Silent Shortcuts|Shortcuts]] &lt;br /&gt;
*[[Silent Sounds|Hit Sounds, Spree Sounds and Announcements]]&lt;br /&gt;
*Lua Scripting&lt;br /&gt;
**[[Silent Lua|silEnT Lua API]] &lt;br /&gt;
**[[Lua Examples|Lua Examples]]&lt;br /&gt;
*[[Silent FAQ|Frequently Asked Questions]] &lt;br /&gt;
*[[Silent Server Config| silEnT Mod Server Config]]&lt;br /&gt;
*[[Silent Changelog|Changelog]] &lt;br /&gt;
*[[Silent Credits|Credits]]&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Changelog&amp;diff=1286</id>
		<title>Silent Changelog</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Changelog&amp;diff=1286"/>
		<updated>2015-08-12T18:54:59Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Version 0.9.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 0.9.0 ==&lt;br /&gt;
* Added: Server customizable menu that is opened in addition to the silEnT mod menu.&lt;br /&gt;
* Added: Possibility for admins to modify the loading screen of their server. As opposed to modifying the loading screen of every server.&lt;br /&gt;
* Added: New client command mem_report. This command prints diagnostics of the client memory pooling.&lt;br /&gt;
* Added: New client cvars: cg_numPopups, cg_popupStayTime and cg_popupFadeTime for controlling popup behaviour.&lt;br /&gt;
* Added: Server checks the setup and refuses to start if problems are found. This includes checks that official menus are not modified.&lt;br /&gt;
* Added: New option g_forceLimboHealth 2, which matches the ETPro gib damage (125).The option 1 remains as the original ETPub gib health (150).&lt;br /&gt;
* Added: Rate setting is incresed automatically step by step if fragmented snapshots are received from the server. This improves the playability and removes the need to force this setting to players.&lt;br /&gt;
* Added: Server extension modules. With this technology, server functionality can be expanded to various tasks without bloating the qagame library or forcing every admin to use same extension.&lt;br /&gt;
* Added: Statistics module. This module collects various game play data into a relational database. Current choices are SQLite3 and PostgreSQL.&lt;br /&gt;
* Added: Censor module. This module can be configured to censor names and chat with real regular expressions.&lt;br /&gt;
* Added: new fun wars: !knifewar, !stenwar, !riflenadewar, !rifleshootwar, !pistolwar (added g_headshot bitmask value 4 to control instagib of headshot for pistolwar).&lt;br /&gt;
* Added: New server cvar: g_incognitoCountryFlag to control the country flag displayed for the incognito admin.&lt;br /&gt;
* Added: If g_dmg is set server side, body hitsounds have different volumes depending of the damage. This can be disabled by the players.&lt;br /&gt;
* Added: Forcing some cvars is now restricted. These include the client side hitsound selection and theme.&lt;br /&gt;
* Added: Player screenshots. 2.6b clients and forward are supported. Screenshot will have Server name, IP, Player Name, silEnT GUID, PB GUID and Player IP in it.&lt;br /&gt;
* Fixed: G_QueryClientCvar/et_CvarValue can no longer be used to query rcon password.&lt;br /&gt;
* Fixed: The arm hit detection was not working correctly from the side shots. Fixed by adding additional temporary box for the torso.&lt;br /&gt;
* Fixed: !rename admin command doesn&#039;t allow adding backslashes to names anymore.&lt;br /&gt;
* Fixed: sv_cvar OUT handling.&lt;br /&gt;
* Fixed: Objective carry icon counting spectators too.&lt;br /&gt;
* Fixed: Crashes related to UI_Alloc running out of memory. It does not run out of memory.&lt;br /&gt;
* Fixed: Ties on highest fragger are solved by comparing kill/death difference. I.e. less deaths will win.&lt;br /&gt;
* Fixed: When g_realbody was set to 1. With certain crouch animations the middle box was not high enough to cover shoulders.&lt;br /&gt;
* Fixed: Ties on the most headshots are solved by comparing the amount of shots fired to reach the amount. The player with less shots fired will win.&lt;br /&gt;
* Fixed: et_UpgradeSkill Lua hook was passing invalid client numbers to scripts.&lt;br /&gt;
* Fixed: Allied hand grenades erroneously recorded kills as axis hand grenades. This change should be noted by all log parsers that parse MOD_ values from kills.&lt;br /&gt;
* Fixed: g_headshot bitmask value 2. It used to apply the g_instagibDamage to every hit. Fixed to apply the damage to only headshots.&lt;br /&gt;
* Fixed: tripmine palcement bug leading to exploit (thanks to Beck for the report).&lt;br /&gt;
* Fixed: theme bug regarding small titled windows.&lt;br /&gt;
* Fixed: report bug official menu had bad background definition (with widescreen).&lt;br /&gt;
* Fixed: The g_weapons flag 32768 was treated as always enabled if any of the g_weapons flags was set.&lt;br /&gt;
* Fixed: Missing ETPro icon from the SD credits menu.&lt;br /&gt;
* Fixed: Non-literal characters not allowed in names anymore.&lt;br /&gt;
* Removed: ui_autoredirect client cvar. This is used to hack player games. Redirecting still works, but players are presented a choice in a popup.&lt;br /&gt;
* Improved: silEnT AC update.&lt;br /&gt;
* Improved: rifle war nade shooting is not influenced by the charge bar anymore.&lt;br /&gt;
* Improved: Menus cleaned. All options can be found under the Options button.&lt;br /&gt;
* Improved: Increased subnet ban limit to 512.&lt;br /&gt;
&lt;br /&gt;
== Version 0.8.2 ==&lt;br /&gt;
&lt;br /&gt;
*Added: g_goatSound server cvar to enable/disable goat sounds on knife kills.&lt;br /&gt;
*Added: enemy team objective carry indicator. Use g_misc flag 1024 to enable it on the server and cg_objcarry client cvar to enable it in the HUD.&lt;br /&gt;
*Fixed: Players carrying objectives are now shown correctly.&lt;br /&gt;
*Fixed: !useredit was not able to set level higher than 99 when executed as rcon. !setlevel was working correctly.&lt;br /&gt;
*Fixed: The name of the disguised covert op was not drawn to spectators.&lt;br /&gt;
*Fixed: The class icon in the crosshair player name to be the current class instead of the latched class.&lt;br /&gt;
*Fixed: wm_sayPlayerClass now announces the latched class correctly, even when using class swithcer.&lt;br /&gt;
*Fixed: If map voting was enabled but g_mapVoteFlags 4 was not enabled. It was possible to issue multiple votes by hand using /mapvote command.&lt;br /&gt;
*Fixed: debriefing screen buttons didn&#039;t handle highlight theme parameter properly.&lt;br /&gt;
*Fixed: The output of finger command didn&#039;t show warnings if there were more than 2 in total.&lt;br /&gt;
*Fixed: UI crash in menu&lt;br /&gt;
*Fixed: Minor bug with g_maxPanzerSuicides introduced in 0.8.0. If panzer suicides were disallowed completely, the player was not informed about it.&lt;br /&gt;
*Fixed: g_muteRename allowed to change the name when player used /reconnect&lt;br /&gt;
*Fixed: When unmuting/muting during intermission/warmup, the mute wasn&#039;t saved.&lt;br /&gt;
*Fixed: cg_effectDistance was affecting the played sounds.&lt;br /&gt;
*Fixed: g_classWeapons not working for class command&lt;br /&gt;
*Fixed: class command not handling secondary weapon parameter properly, it didn&#039;t influence the limbo menu, e.g. /class s 3 2 wouldn&#039;t select akimbo pistols or SMG as secondary in limbo.&lt;br /&gt;
*Fixed: switching problem with double SMG&lt;br /&gt;
*Improved: If player is completely dead in the game, the scoreboard shows the player&#039;s latched class to other team members.&lt;br /&gt;
*Improved: UI tabbing to edit field makes it focused.&lt;br /&gt;
*Improved: limbo weapons menu for soldier class.&lt;br /&gt;
*Improved: sort order of the map vote menu map list.&lt;br /&gt;
&lt;br /&gt;
== Version 0.8.1 ==&lt;br /&gt;
*Added: Flag 32 to g_disableComplaints to disable complaints completely.&lt;br /&gt;
*Added: ETPro style g_proneDelay.&lt;br /&gt;
*Added: Custom, admin defined, votes.&lt;br /&gt;
*Added: 3rd UI theme that resembles the original ET look.&lt;br /&gt;
*Added: MorphOS support.&lt;br /&gt;
*Improved: engineer work progress bar (construct/arm/disarm) and covert ops progress bar (mines spotting, uniform stealing) - added background to display the amount of work to do.&lt;br /&gt;
*Fixed: Some text bugs related to g_recognition cvar.&lt;br /&gt;
*Fixed: ETTV clients were kicked for not having silEnT GUIDs.&lt;br /&gt;
*Fixed: Admin log was missing some data with g_logOption 16384. Also, new format with admin log when using this option.&lt;br /&gt;
*Fixed: Client exploit affecting various mods which caused the server to stall until the engine watchdog triggered.&lt;br /&gt;
*Fixed: The shrubbot.cfg configuration file is cleaned automatically from expired bans and warnings on each map start. Instead of waiting for it to be written as a result of an admin command.&lt;br /&gt;
*Fixed: Memory leak with subnet bans.&lt;br /&gt;
*Fixed: Axis covertop couldn&#039;t select pistols through weapon banks.&lt;br /&gt;
*Fixed: UI; tooltip text color theming.&lt;br /&gt;
*Fixed: Improvised Demolition not showing up in final map stats.&lt;br /&gt;
*Fixed: mines spotting progress bar not always displayed.&lt;br /&gt;
&lt;br /&gt;
== Version 0.8.0 ==&lt;br /&gt;
*Added: silEnT AntiCheat, this is an old feature existing several versions in the mod, that is now made public. Control the behaviour with g_silentac.&lt;br /&gt;
*Added: New read only cvar, sv_sac. When silEnT AC is set to autoban, this cvar is set. This cvar can be used by external server trackers to enable/disable server anti cheat status on their lists.&lt;br /&gt;
*Added: New Lua hook et_IntermissionStarts( round ). This hook is called right before the intermission. So that any changes to the cvars in the script, will take effect before the actual intermission. Do note that this will not run in the background and the script will need to exit fast just like always during the game.&lt;br /&gt;
*Added: New g_logOptions flag 16384. When this flag is set, the admin log will use new format.&lt;br /&gt;
*Added: Game minimizer, so far for linux only (minimize via menu or /minimize command).&lt;br /&gt;
*Added: New weapon for Soldier: Improvised Demolition Charge (g_enableDemolition cvar).&lt;br /&gt;
*Added: g_recognition cvar to enable/disable additional recognition notifications for players doing objective.&lt;br /&gt;
*Added: !country command that displays the country of the player.&lt;br /&gt;
*Added: g_muteRename cvar which, if enabled (set to 1), doesn&#039;t allow the muted player to change his name.&lt;br /&gt;
*Added: cg_debugBullets. In combination with g_debugBullets, it can be used to visually test the antilag.&lt;br /&gt;
*Improvement: UI - items selected by keyboard (TAB, arrows) drawn as hovered, now we know which one has focus.&lt;br /&gt;
*Improvement: Danger zone marker size based on the map size.&lt;br /&gt;
*Fixed: Distorted player icon in map when in spectator and wide screen aspect ratio.&lt;br /&gt;
*Fixed: Player scoreboard no longer displays 0.000 to PRW or KR when server doesn&#039;t have those enabled but the client cg_scoreboard cvar is set to show those.&lt;br /&gt;
*Fixed: XP save doesn&#039;t need to be enabled to save mutes, weapon statistic, KR or PRW.&lt;br /&gt;
*Fixed: Wrong compass grid and map position with widescreen.&lt;br /&gt;
*Fixed: Antilag issue regarding Omni-bots. The Omni-bot hitboxes were not in the place where the players saw the bots while running.&lt;br /&gt;
*Fixed: Last blood message was not printed if the client number of the player who made the last kill was 0.&lt;br /&gt;
*Fixed: MG42 will not make headshots unless enabled.&lt;br /&gt;
*Fixed: Many typos regarding log prints on reading different config files.&lt;br /&gt;
*Fixed: Announcement positions for custom max values.&lt;br /&gt;
*Fixed: osp fight sound not played fully (if the sound is longer).&lt;br /&gt;
*Fixed: Memory leak in Lua et.trap_FS_Read.&lt;br /&gt;
*Fixed: panzerwar bugs: 1) g_maxPanzerScuicides behavior, 2) weapon charge bar behavior, 3) panzerfaust auto switching to nades after couple fires&lt;br /&gt;
*Fixed: giba minor bug (did not gib players that were protected by g_spawnInvul)&lt;br /&gt;
*Fixed: Panzerwar and sniperwar no longer lose original weapon values when map changes.&lt;br /&gt;
*Fixed: Missing head box when g_debugBullets is 3 or higher.&lt;br /&gt;
*Fixed: Fixed no_ammo icon shown for binoculars (g_weapons, flag 8192)&lt;br /&gt;
*Fixed: riflewar bug with animation of grenade being unloaded after each shot.&lt;br /&gt;
*Fixed: Very rare client crash.&lt;br /&gt;
&lt;br /&gt;
== Version 0.7.2 ==&lt;br /&gt;
*Added: Lua can access sess.rating, sess.rating_variance, sess.overall_killrating and sess.overall_killvariance with gentity_get function. These values are read only.&lt;br /&gt;
*Fixed: Tapping new weapon while reloading the old weapon, could result changing to a new weapon after reloading but when switching back, the old weapon was empty (http://mygamingtalk....-184-reload-bug)&lt;br /&gt;
*Fixed: Class restriction bug introduced in 0.7.0.&lt;br /&gt;
*Fixed: Limbo panel displays the latched class. Always. Introduced in 0.7.1.&lt;br /&gt;
*Fixed: !givexp performs proper skill upgrade for the player.&lt;br /&gt;
*Fixed: panzerwar mode: shooting panzerfaust (in regard to chargebar) and run speed.&lt;br /&gt;
*Fixed: Omni-bots stealing restricted weapons from other players.&lt;br /&gt;
&lt;br /&gt;
== Version 0.7.1 ==&lt;br /&gt;
&lt;br /&gt;
*Fixed: Spawning with non selected class bug introduced in 0.7.0.&lt;br /&gt;
*Fixed: Enemy player positions seen by covert ops in the compass.&lt;br /&gt;
&lt;br /&gt;
== Version 0.7.0 ==&lt;br /&gt;
&lt;br /&gt;
*Added: New rcon command dbcleanup that can be used to clean up the database records. The command includes removing duplicated or unusable records and GUID checks.&lt;br /&gt;
*Added: New shrubbot command !teamstats that can be used to see the player kill and ratings statistics from one team.&lt;br /&gt;
*Added: Shrubbot flags 6(does not need to specify a reason) and 8(does not need to specify a duration) now work with the !mute command.&lt;br /&gt;
*Added: g_maxIgnoresPerMap server cvar. This controls how many times one player can ignore another player during one map and stops players from spamming others with the ignore command.&lt;br /&gt;
*Added: g_killRating flag 8. With this flag admins can disable kill rating from the scoreboards. This does not have effect on the flag 2.&lt;br /&gt;
*Added: Full body prediction from ETPub. g_misc flag 512. Same as ETPub g_misc 32+256. This makes it harder to get inside walls etc, but can also cause problems when proning through windows etc.&lt;br /&gt;
*Added: Danger zones - new covert ops function/ability (read more in the documentation)&lt;br /&gt;
*Added: icons for popup messages (ammo, medpacks, danger zones).&lt;br /&gt;
*Added: new flag 32768 to g_weapons cvar - causes the player that shot the tripmine (and by this killed other player) to score the kill&lt;br /&gt;
*Improved: timerset and resettimer commands can be used during warmup&lt;br /&gt;
*Improved: some improvements to the screen resolutions chooser.&lt;br /&gt;
*Improved: !finger command now also displays warnings issued to the player if there are any.&lt;br /&gt;
*Improved: compass command map drawing.&lt;br /&gt;
*Improved: crazygravity and crazyspeed commands can be tuned by additional cvars if default values are not enough (g_min_crazyspeed, g_max_crazyspeed, g_min_crazygravity, g_max_crazygravity).&lt;br /&gt;
*Fixed: When banning from team damage, only using shrubbot bans without specifying the kick time.&lt;br /&gt;
*Fixed: Some command map icons were missing when in spectator team.&lt;br /&gt;
*Fixed: When switching from rifle to another weapon too fast after firing the grenade and switching back to the rifle, the weapon was in the alternate mode but without loaded grenade.&lt;br /&gt;
*Fixed: Many prediction errors. Including double dropping the panzer shell after shot.&lt;br /&gt;
*Fixed: Players can no longer select classes that are not available in the limbo menu.&lt;br /&gt;
*Fixed: Only real characters allowed in names.&lt;br /&gt;
*Fixed: If the selected weapon is not available for next spawn, the class command will not change the class.&lt;br /&gt;
*Fixed: The condition with g_classWeapons settings and weapon limitations that caused players to get kicked from the server when clicking the team button.&lt;br /&gt;
*Fixed: Bug in the handling of g_spectator flag 1. Players were able to enter opponent players after all teammates were dead.&lt;br /&gt;
*Fixed: Client crashes related to cg_gun_frame being set.&lt;br /&gt;
*Fixed: !subnets command was printing itself as showsbans instead of subnets.&lt;br /&gt;
*Fixed: Reading subnet bans with full octets and treating them as partial. Also writing them as partial on next shrubbot write.&lt;br /&gt;
*Fixed: g_classWeapons too restrictive, couldn&#039;t pick up enemy SMGs from the ground.&lt;br /&gt;
*Fixed: g_classWeapons with g_mode. When g_mode was set to 8 Thompson and MP40 couldn&#039;t be picked up by coverts.&lt;br /&gt;
*Fixed: command map entities were not removed on team switch/disconnect. Concerned: landmines, trip mines, danger zone markers.&lt;br /&gt;
&lt;br /&gt;
== Version 0.6.3 ==&lt;br /&gt;
&lt;br /&gt;
Fixed: Incompatibility with ET Legacy introduced in 0.6.2.&lt;br /&gt;
&lt;br /&gt;
== Version 0.6.2 ==&lt;br /&gt;
&lt;br /&gt;
*Added: !subnetban command can now cut the IP inside the octet with &#039;x&#039;. For example, &amp;quot;!subnetban 12x&amp;quot; will ban IP adresses 12x.xxx.xxx.xxx.&lt;br /&gt;
*Added: IP address is logged when player is blocked by a subnetban.&lt;br /&gt;
*Added: Lua callback et_ClientBinary( client, checksum ) which passes the checksums of client binaries to the Lua scripts.&lt;br /&gt;
*Added: Functionality to query client cvars with Lua. API function et.G_QueryClientCvar and callback et_CvarValue.&lt;br /&gt;
*Added: New server cvar g_includedMaps. Maps set in this cvar string, will be always included in the map voting list. Regardless of any other restrictions.&lt;br /&gt;
*Added: 2 new flags to g_classWeapons (16,32) to enable/disable MP40 and Thompson for soldiers.&lt;br /&gt;
*Added: admin chat messsage window.&lt;br /&gt;
*Added: more ET:Legacy binaries added to the list of known client binaries.&lt;br /&gt;
*Added: fast shooting. Use g_weapons flag 16384 to enable it.&lt;br /&gt;
*Added: !crazygravity and !crazyspeed commands.&lt;br /&gt;
*Reworked: When g_clientBinaries flag 4 is set, and the binary is a already known cheat binary, it is clearly reported instead of the usual unknown client binary.&lt;br /&gt;
*Reworked: match_warmupDamage, if set to 2 it is effective also when FF is disabled.&lt;br /&gt;
*Fixed: Sometimes, the information of the person who muted was not displayed.&lt;br /&gt;
*Fixed: Unique silEnT GUIDs required between connected players. This caused little confusion when banning.&lt;br /&gt;
*Fixed: g_antiwarp from the ETPub repository.&lt;br /&gt;
*Fixed: g_dyno chaining blast radious fix from crapshoot.&lt;br /&gt;
*Fixed: userxdb.db was slowly filling with records that were not used or needed.&lt;br /&gt;
*Fixed: Lua API function et.G_EntitiesFree.&lt;br /&gt;
*Fixed: Full mod URL shown in the serverinfo menu.&lt;br /&gt;
*Fixed: Some alignment issues with the smaller score board.&lt;br /&gt;
*Fixed: Revive icons are shown again.&lt;br /&gt;
*Fixed: With forcecvar and sv_cvar, the existing limits are checked and updated if the cvar already exists in the limits. Instead of just adding the same cvar at the end of the config strings.&lt;br /&gt;
*Fixed: Clients protected against overflowing sv_cvar and forcecvar config strings.&lt;br /&gt;
*Fixed: Custom commands can now have quotes. This is usefull if the command is then forwarded to a new tokenizer. For example, Lua scripts can access arguments correctly.&lt;br /&gt;
*Fixed: Rcon can now call custom commands as well. Before, the command line was truncated when doing shortcut replacement for the console.&lt;br /&gt;
*Fixed: Class stealing no longer kicks old players out from their classes if the class is full. The stealing is prevented.&lt;br /&gt;
*Fixed: Server crash when player was muted through rcon.&lt;br /&gt;
*Fixed: !finger command output is now easier to read if the entity who muted a player is player himself even if the player would have named himself as silEnT or Console.&lt;br /&gt;
*Fixed: weapon pickup bugs&lt;br /&gt;
*Fixed: knife bug when throwing knives are disabled by g_throwableKnives cvar.&lt;br /&gt;
*Fixed: no progress indicator during disarming dyna after class steal&lt;br /&gt;
&lt;br /&gt;
== Version 0.6.1 ==&lt;br /&gt;
&lt;br /&gt;
*Added: New optional parameter &amp;quot;syntax&amp;quot; to custom command blocks. This allows creating proper syntax help to show with !help command.&lt;br /&gt;
*Added: Shrubot custom commands can now have color codes. The colors are not required when using the commands.&lt;br /&gt;
*Changed: The maximum number of custom commands increased to 95.&lt;br /&gt;
*Fixed: Double amount of level stars in the map change debriefing.&lt;br /&gt;
*Fixed: Many coloring errors related to white nicks.&lt;br /&gt;
*Fixed: Server side was not handling the new skill_(x) cvars correctly.&lt;br /&gt;
*Fixed: Killed sniper had scope enabled with normal fov after revive. Depending how the sniper was killed.&lt;br /&gt;
*Fixed: !baninfo was not displaying permanent bans in Expires in field.&lt;br /&gt;
*Fixed: Stamina bar color bug.&lt;br /&gt;
*Fixed: Lua documentation. The G_ClientNumberFromString is actually ClientNumberFromString.&lt;br /&gt;
*Fixed: Some typos with shrubbot commands and inconsistencies with !help.&lt;br /&gt;
*Fixed: Shrubbot !help now accepts the command names with ! infront.&lt;br /&gt;
*Fixed: Unified !help syntax notation.&lt;br /&gt;
*Fixed: Player names that were both online and previously stored, were printed twice in the !aliassearch command output.&lt;br /&gt;
*Fixed: Formatting bug when more the 10 matching aliases for a player.&lt;br /&gt;
*Fixed: With custom commands, the missing command line parameters are stripped from the command.&lt;br /&gt;
*Fixed: Player name replacement gives better error messages for every case, including the command name.&lt;br /&gt;
*Fixed: Teammate healthbars were flashing wrong health data. Bug introduced in version 0.6.0.&lt;br /&gt;
*Fixed: Player idents were enforcing bans to a wide range of innocent players. Bug introduced in 0.6.0.&lt;br /&gt;
&lt;br /&gt;
== Version 0.6.0 ==&lt;br /&gt;
&lt;br /&gt;
*Added: New dialog window under silEnT menu for screen resolutions. This dialog has autodetected possible resolution and includes widescreen resolutions.&lt;br /&gt;
*Added: ETPro compatible access to sess.aWeaponStats (a GET by weapon index returns a 5-element table of numbers), from pheno of ETPub.&lt;br /&gt;
*Added: Optional aliases database. New commands !aliases, !aliasesdel, !aliassearch and !userinfo now has an option to show the stored aliases. New server cvar g_dbMaxAliases.&lt;br /&gt;
*Added: Mute information is displayed in with the !finger command. This includes time left, mute reason and who muted.&lt;br /&gt;
*Added: Players can freely choose the type of hit sounds they prefer. This is controlled with cg_hitSoundType cvar. Related to this, server admins can configure the type of hit sounds the players default if they do not specifically select any type. By defult, the cg_hitSoundType is 0, which means server configured hit sounds and allowing custom hit sounds in custom pk3 files. Read documentation about g_hitsounds, g_defaultHitSounds and cg_hitSoundType. There is also an additional paragraph about adding custom hit sounds.&lt;br /&gt;
*Added: g_misc flag 256. Setting this flag disables the &amp;quot;First Blood&amp;quot; announcement.&lt;br /&gt;
*Added: g_logOptions flag 1024. This flag allows logging every player drop. It can be usefull for inspecting the server operation, but it will also cause lot of needless log writes.&lt;br /&gt;
*Added: g_realPlayTime cvar. Used to show additional real play time of the payer (without spec time) in the debriefing screen.&lt;br /&gt;
*Added: Flag 8 to g_playerCounting. Bots are not included into the player count.&lt;br /&gt;
*Added: Cvar based enabling of both Thompson and MP40 to the limbo menu selection regardless of the team (g_classWeapons, flag 8)&lt;br /&gt;
*Added: cg_effectDistance client cvar which can be used to control the maximum distance to draw the bullet effects.&lt;br /&gt;
*Reworked: Class skills can be freely enabled/disabled in any order using 0 and -1 in the skill_(x) server cvars.&lt;br /&gt;
*Reworked: The !finger command now shows the client operating system, again. This information was removed in the 0.5.2 because of unreliability in the full string.&lt;br /&gt;
*Reworked: PPSh first person view model.&lt;br /&gt;
*Reworked: The commands !gib, !lol, !pip and !pop no longer do it to everyone if target is not specified.&lt;br /&gt;
*Fixed: Statistics bug with satchel charge.&lt;br /&gt;
*Fixed: Shrubbot commands !useredit and !usereditpb didn&#039;t allow editing players with level higher then 32 when attempted with rcon.&lt;br /&gt;
*Fixed: A bug in the player name cleaning allowed empty names using spaces.&lt;br /&gt;
*Fixed: Player name doesn&#039;t change anymore everytime the name edit field loses focus. OK button must be clicked for the changes to take effect.&lt;br /&gt;
*Fixed: Persistent SMG kills and deaths were getting lost if the player reconnected during the map.&lt;br /&gt;
*Fixed: Dropping the helmet multiple times when repeated hits to the head. With antilag enabled.&lt;br /&gt;
*Fixed: g_inactivityOptions flag 4 was not moving players to spectator. Fix from pheno of ETPub.&lt;br /&gt;
*Fixed: Lagometer transparency (couldn&#039;t change lagometer transparency)&lt;br /&gt;
*Fixed: Fireteam window transparency (improper drawing)&lt;br /&gt;
*Fixed: Fireteam member information going over the window edge when latching to another class.&lt;br /&gt;
*Fixed: g_noSkillUpgrades now locks the skills to the enabled ones, instead of changing every skill to 0.&lt;br /&gt;
*Fixed: !readadmins command did not add admins correctly into the database. Versions affected on various levels from 0.5.0 to 0.5.2.&lt;br /&gt;
*Fixed: Client inactivity timer ETPro compatible. Fix from pheno of ETPub.&lt;br /&gt;
*Fixed: animation timing bug mainly for weapalts (switch to/from)&lt;br /&gt;
*Fixed: reverted back (removed) fix for thrown knife dodging introduced in 0.5.2 version.&lt;br /&gt;
&lt;br /&gt;
== Version 0.5.2 ==&lt;br /&gt;
&lt;br /&gt;
*Added: g_playerCounting server cvar. This is used with optional player blocks.&lt;br /&gt;
*Added: Optional [player] blocks to the map configs. Map config commands can be executed based on the player amount on the server.&lt;br /&gt;
*Added: g_clientBinaries server cvar. Server admins may choose to refuse players with unknown binaries. List of known binaries in the documentation.&lt;br /&gt;
*Added: tripmines ids, check g_mineid cvar for details. Now tripmines get ids as well, so we can see who planted them.&lt;br /&gt;
*Added: all game types shown in server browser (Map Voting - MV, Team Death Match - TDM). Filters handling new types as well.&lt;br /&gt;
*Added: restriction to g_skills 1, non covert players can spot mines for the team only if they are close enough.&lt;br /&gt;
*Added: ammo of the weapon is shown for the weapon we want to pickup from the ground. Set server side with g_weapons cvar (flag 8192)&lt;br /&gt;
*Added: stance indicator (can be enabled in the HUD editor, disabled by default)&lt;br /&gt;
*Added: themed HUD bars (health, stamina, weap recharge). cg_themedBars cvar to turn it on/off. Avalable also in silent THEMES menu.&lt;br /&gt;
*Added: multiple recipient private messages command and multiple selecting for Private Messages in PM list window.&lt;br /&gt;
*Added: Possibility for new announcement sounds for death sprees and spree ends.&lt;br /&gt;
*Added: New shrubbot command !updatepbguid which can be used to manually update the stored PB GUID to the current one of the player.&lt;br /&gt;
*Added: New shrubbot command !levlist which lists all the server admin levels.&lt;br /&gt;
*Added: New shrubbot command !levinfo which displays all the information about the admin level.&lt;br /&gt;
*Improvement: Possible FPS improvement for players that have low FPS performance.&lt;br /&gt;
*Fixed: Potential crash bug with subnet bans.&lt;br /&gt;
*Fixed: The Admin Level Protection was not giving authentication with !setlevel to the lowest protected level.&lt;br /&gt;
*Fixed: stamina changes not visible in spec.&lt;br /&gt;
*Fixed: !finger command now shows the current PB GUID. This was supposed to be changed in 0.5.1 but was not. The !finger command is now properly verbose about PB GUID differences and displays the player admin level as well. Also, the command no longer displays non relevant information of the server bots but only the name, the slot number and the admin level of the bot.&lt;br /&gt;
*Fixed: Ban escalation printed garbage short GUIDs in the ban messages itself (8 character GUID) when the previous ban did not have PB GUID associated with it.&lt;br /&gt;
*Fixed: Added N!trox&#039;s teamchat height fix during intermission.&lt;br /&gt;
*Fixed: HUD editor help window position and themed it.&lt;br /&gt;
*Fixed: Player positions were sometimes wrong in the command map.&lt;br /&gt;
*Fixed: Aspect ratio issues with command map entities.&lt;br /&gt;
*Fixed: Boosting (pushing) team players by shooting at them when FF is off.&lt;br /&gt;
*Fixed: silEnT GUIDs were not always recognzed correctly. Bug was introduced in the 0.5.1.&lt;br /&gt;
*Fixed: ETPro behaviour, et_ClientBegin Lua is called only once for player and not for every team change.&lt;br /&gt;
*Fixed: !baninfo command was displaying bad short GUIDs for bans without GUIDs.&lt;br /&gt;
*Fixed: When FF was not enabled, the disguised friendly covert op health was displayed incorrectly.&lt;br /&gt;
*Fixed: team_maxSoldiers restriction was not enforced.&lt;br /&gt;
*Changed: The default value of cg_gun_fovscale changed to &amp;quot;0&amp;quot;. No longer the need for admins to force it to players.&lt;br /&gt;
&lt;br /&gt;
== Version 0.5.1 ==&lt;br /&gt;
*Added: !hstats, command will display the hitregions players are hitting.&lt;br /&gt;
*Added: g_medics flag 512, adrenaline takes only half charge.&lt;br /&gt;
*Added: g_adrendmgreduction, admins can control the damage reduction when players under the effect of adrenaline are hit.&lt;br /&gt;
*Added: themed Draws (time, fps, timer, speedometer), K/D/S display and lagometer. New cvar for this: cg_themedDraws {0,1}: 0-use the old style, 1- themed style&lt;br /&gt;
*Added: new flag to g_friendlyFireOpts: 32. Only the engineer that planted the landmine can trigger/defuse it.&lt;br /&gt;
*Added: g_realbody, possibility for server admins to set up smaller body hitboxes&lt;br /&gt;
*Fixed: !userlist command was not working if noone was online on the server.&lt;br /&gt;
*Fixed: In certain cases same player was displayed multiple times on the userlist output.&lt;br /&gt;
*Fixed: SP_team_WOLF_objective: exceeded MAX_MULTI_SPAWNTARGETS (16), fix from flms of ETPub&lt;br /&gt;
*Fixed: !showbans didn&#039;t always display bans properly when the banned player didn&#039;t have PB GUID. Also, silEnT ID is now included in the list.&lt;br /&gt;
*Fixed: Warmup was not dislayed to players before the warmup countdown started.&lt;br /&gt;
*Fixed: Proned players moving when others were standing on their backs.&lt;br /&gt;
*Fixed: vid_restart crash&lt;br /&gt;
*Fixed: Temp Ban System didn&#039;t handle silEnT GUIDs&lt;br /&gt;
*Fixed: Passed nextmap vote will now correctly go into intermission when map voting is enabled.&lt;br /&gt;
*Fixed: maps not listed in the vote menu when game type is mapvoting or TDM&lt;br /&gt;
*Fixed: not themed fireteam menus&lt;br /&gt;
*Fixed: additional space behind location in fireteam window&lt;br /&gt;
*Reworked: The K/D in the scores is renamed to KR to reduce confusion about it.&lt;br /&gt;
*Reworked: The !finger output prints the current PB GUID of the player. Not the one that is stored in the database.&lt;br /&gt;
*Reworked: The silEnT GUID handling is changed a little. This prevents certain types of copy paste spoofings. Note, players that are not stored to the database with valid PB GUIDs will create new player records. Also, from the old ban lists, at least the silEnT GUID (sguid) fields must be cleared to prevent false bans.&lt;br /&gt;
*Reworked: Lua interpreter is now built into the server binary. This will make installing easier.&lt;br /&gt;
*Removed: g_realHead realistic hitboxes from ETPub/zinx are now used always&lt;br /&gt;
*Removed: g_mapVoteFlags no longer has flag 16. If admin needs a command to get next map in rotation when map voting is enabled, he can easily create one executing &amp;quot;vstr nextmap&amp;quot;.&lt;br /&gt;
*Removed: g_spoofOptions, the spoofing is now checked unconditionally.&lt;br /&gt;
*Removed: g_punkbuster, the PunkBuster is no longer supported by EvenBalance and this cvar is no longer needed.&lt;br /&gt;
&lt;br /&gt;
== Version 0.5.0 ==&lt;br /&gt;
*Added: dboptimize server console command. Read the manual for more information.Do note that this command is server resource intensive and should not be used often.&lt;br /&gt;
*Added: support for revive spree sounds. Admins can add custom sound files revive3.wav, revive5.wav and revive10.wav under the sound/announces if they like.&lt;br /&gt;
*Added: g_XPSaveMinXP, when this value is set to above 0 or above, the XP save system will use different timestamp for the XP save then the rest of the database. This allows cvars like g_XPSaveMaxAge_xp to work correctly.&lt;br /&gt;
*Added: referee hack attempts are logged&lt;br /&gt;
*Added: Admin Level Protection (ALP), with this mechanism, the server can ensure that admins on protected levels are properly authenticated&lt;br /&gt;
*Added: silEnT GUID, the new silEnT GUIDs replace the PB GUIDs in everywhere, but compatibility is provided for the old PB GUIDs also&lt;br /&gt;
*Added: g_cheatLog, server will log all non gaming related information into this log if enabled&lt;br /&gt;
*Added: debriefing, mouse wheel scrolling of the lists when the cursor is over the list, not only over the scroll bar&lt;br /&gt;
*Added: omnibot support for tripmines (tripmines can be planted by bots)&lt;br /&gt;
*Fixed: vote blocking will not block referee commands&lt;br /&gt;
*Fixed: missing original mouse cursor in the menus for Windows builds&lt;br /&gt;
*Fixed: silenced colt anim bug&lt;br /&gt;
*Fixed: XP for team kills made with tripmines: http://mygamingtalk....112-xp-for-tks/&lt;br /&gt;
Reworked: tripmines can&#039;t be destroyed when they are not armed, now it takes 2 shots instead of 1 to destroy the tmine.&lt;br /&gt;
&lt;br /&gt;
== Version 0.4.0  ==&lt;br /&gt;
&lt;br /&gt;
* Added: different power bolt colors for fops to show arty/airstrikes availability (http://mygamingtalk....ops-air-strike/)&lt;br /&gt;
* Added: tripmines can be tripped by movers (doors etc.) when they cross the wire.&lt;br /&gt;
* Added: different power bolt color for fops depending on airstrike and arty availability&lt;br /&gt;
* Added: new UI with 2 themes. Themes can be switched with &amp;quot;ui_theme&amp;quot; cvar {1,2}&lt;br /&gt;
* Added: tripmines markers on the command map.&lt;br /&gt;
* Added: new tripmine wire shaders.&lt;br /&gt;
* Added: tripmines can be now spotted by coverts to be marked on the command map.&lt;br /&gt;
* Added: Possibility for server admins to enable Jaymod style double jumping This is controlled with g_misc flag 32.&lt;br /&gt;
* Added: hint for tripmine placement (hint is displayed when tripmine can be attached to the pointed place)&lt;br /&gt;
* Added: new cvar: cg_themedCMap {0,1}, which activates/deactivates themed command map frame&lt;br /&gt;
* Added: New shrubbot flag &#039;#&#039;. Players or levels with this flag are not allowed to call votes. Voting is automatically denied from players without PB GUIDs. Do note, it does not require the punkbuster to be enabled on the server for a player to have a PB GUID.&lt;br /&gt;
* Added: new private message which allows to select players from the list or just type the name in&lt;br /&gt;
* Added: Possiblity to mute only global chat sounds with cg_noVoiceChats 2. Also added into the menu.&lt;br /&gt;
* Reworked: new tripmine model, new tripmine icons&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-42-fireteam-selction-notification/| Fireteam selction notification]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-43-covie-bug-i-think/| Covie Bug - I Think]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-44-watermark-bug/| Watermark bug]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-56-nextmap-callvote-nextmap-dont-work-with-g-gametype-6/| !nextmap &amp;amp; callvote nextmap, don&#039;t work with g_gametype 6]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-71-knife-bug/| knife bug]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-77-single-pistol-bug/| Single Pistol Bug]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-79-shoutcaster/| Shoutcaster]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-80-missing-text-for-to-follow-previous-player/| Missing text for to follow previous player]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-81-weapons-list-appears-when-throwing-knife/| Weapons list appears when throwing knife]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-82-limbomenu-doesnt-show-xp-until-you-have-joined-into-a-team/| Limbomenu doesn&#039;t show xp until you have joined into a team]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-83-join-into-a-team-even-close-limbomenu/| Join into a team even close limbomenu]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-86-throwing-knives-disappear/| Throwing Knives Disappear]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-93-map-slider-only-works-if-you-drag-it/| Map slider only works if you drag it]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-94-throwing-knives-in-air/| Throwing Knives in Air]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-95-trip-mines/| Trip Mines]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-97-gui-cutting-of-at-edges/| GUI cutting of at edges]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-103-tripmines/| Tripmines]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-107-player-class-icon-off-map/| Player class icon off map]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-109-blank-spot-in-vote-menu-select-hidden-map/| Blank spot in vote menu select hidden map]&lt;br /&gt;
*Renamed: g_settings renamed to g_banners. That is what it is only for so the change is to clarify the purpose.&lt;br /&gt;
*Removed: /rcon ban. This command was causing issues because of the similar name to !ban. Also, there was no unban method.&lt;br /&gt;
&lt;br /&gt;
== Version 0.3.3  ==&lt;br /&gt;
&lt;br /&gt;
*Fixed: alternative fire bug introduced in 0.3.2.&lt;br /&gt;
&lt;br /&gt;
== Version 0.3.2  ==&lt;br /&gt;
&lt;br /&gt;
*Readded: Class awards. They should now work correctly with XP save. &lt;br /&gt;
*Added: possibility for server admins to enable teamhit sounds. &lt;br /&gt;
*Added: flag 8 to g_identOptions. Actions taken based on client identifications are reported in the adminchat. &lt;br /&gt;
*Added: default silEnT watermark. &lt;br /&gt;
*Fixed: bug with missing hitsounds (http://mygamingtalk.com/forums/tracker/issue-54-no-hitsound-on-enemy-with-mortar/). &lt;br /&gt;
*Fixed: bug with class stealing (http://mygamingtalk.com/forums/tracker/issue-46-weapon-on-class-change-go-empty-clip-and-change-weapon/). &lt;br /&gt;
*Fixed: bug with soldier secondary weapon changing to akimbos. &lt;br /&gt;
*Fixed: throw last knife bug (http://mygamingtalk.com/forums/topic/587-knife-bug/). &lt;br /&gt;
*Fixed: fireteam overlay bug. &lt;br /&gt;
*Fixed: server list server name filter bug/crash. &lt;br /&gt;
*Fixed: bug with say_teamnl command that allowed muted players to write in team chat. (http://mygamingtalk.com/forums/tracker/issue-73-say-teamnl-working-with-muted-players/) &lt;br /&gt;
*Fixed: bug with g_classWeapons cvar (http://mygamingtalk.com/forums/tracker/issue-72-g-classweapons/). &lt;br /&gt;
*Fixed: bug in the TDM timebar. &lt;br /&gt;
*Fixed: some bugs with the win probabilities. Not in algorithms, but with the calls to calculate them. &lt;br /&gt;
*Removed: Active Team Balance. &lt;br /&gt;
*Removed: g_teamForceBalance_playerrating. &lt;br /&gt;
*Removed:&amp;amp;nbsp;!balance admin command. &lt;br /&gt;
*Enhancement: The g_XPSave flag 8 will no longer kick guidless players for duplicates. &lt;br /&gt;
*Enhancement: The&amp;amp;nbsp;!howfair command now uses K/D determining fairness. &lt;br /&gt;
*Enhancement: Possibilities for invalid kicks for spoofed client identification reduced.&lt;br /&gt;
&lt;br /&gt;
== Version 0.3.1  ==&lt;br /&gt;
&lt;br /&gt;
*Added: g_votedMuteLength which controls the lengths of the voted mutes. Default is 3 hours. &lt;br /&gt;
*Reworked: The tripmine shaders. Visually still defaults to the old look. &lt;br /&gt;
*Optimization: Some code cleanup and minor optimizations. &lt;br /&gt;
*Binaries compiled with optimization settings &lt;br /&gt;
*Bug fixes: Generate list from tracker.&lt;br /&gt;
&lt;br /&gt;
== Version 0.3.0  ==&lt;br /&gt;
&lt;br /&gt;
*Added: Weapon banks shown during weapon change - incorporated into HUD editor (introduced new client cvars for this: cg_wbShowDuration, cg_wbOrientation, cg_wbWideSlots). &lt;br /&gt;
*Added: New game type: Team Death Match (easy to be configured server side and client side). &lt;br /&gt;
*Added: When alternate HUD is chosen with compass in the lower part of the screen the compass slides out to bottom. &lt;br /&gt;
*Added: New command&amp;amp;nbsp;!baninfo. &lt;br /&gt;
*Added: New server cvar g_punkBuster. Servers that don&#039;t have PunkBuster enabled can still force clients enabling punkbuster for them to have GUIDs. This does not guarantee that every player will have a GUID but if the player has it, it will be sent to the server. &lt;br /&gt;
*Added: Warmup countdown (last 3 seconds). Can be turned off by setting cg_showCountDown client cvar to &amp;quot;0&amp;quot;. &lt;br /&gt;
*Added: g_classWeapons server cvar. Enables weapons per class (so far only PPSh is handled) &lt;br /&gt;
*Added: Muted players can&#039;t call votes. &lt;br /&gt;
*Added: New command&amp;amp;nbsp;!readadmins. &lt;br /&gt;
*Added: Separate meaning of death for shoving to death (enemy killing and team killing supported). &lt;br /&gt;
*Added: New type of revealed landmines notifications (cg_landmineNotifyType client cvar and g_landmineNotifyType server cvar provided for this). &lt;br /&gt;
*Added: New command&amp;amp;nbsp;!resetpls that reset individual player stats leaving XP save untouched. There has been some cases when the stats have bugged and this is an easy command for admins to correct such stats. &lt;br /&gt;
*Added: Players can customise or even disable the announcements if they like. &lt;br /&gt;
*Added: silEnT mod icon displayed on loading screen. &lt;br /&gt;
*Added: New PPSH weapon model and enhanced the weapon overall (sounds). &lt;br /&gt;
*Added: Possibility for First Blood sound for server admins. &lt;br /&gt;
*Added: New shrubbot flag &#039;/&#039; that will disables private messages from levels or individual players. &lt;br /&gt;
*Added: Kills/Deaths/Spree counters HUD display managed by cg_killsDisplay cvar. &lt;br /&gt;
*Added: Predefined HUDs can be now chosen from the HUD configuration menu. &lt;br /&gt;
*Added: New predefined HUDs: etpro, etpro2 (thanks to Dragon). &lt;br /&gt;
*Added: New server cvar g_punkBuster that helps server without PunkBuster enabled with GUIDless players. &lt;br /&gt;
*Added: Hardware based client identification. This is used to help banning players. Controlled by g_identOptions cvar. &lt;br /&gt;
*Fixed: defect with following FT (killed player was picked when he/she was the FT leader - but next FT member should be picked) &lt;br /&gt;
*Improved: The database performance. &lt;br /&gt;
*Reworked: cg_hitSounds client cvar. Now a new option play only headshots is available. &lt;br /&gt;
*Fixed: Headshots from proned players. &lt;br /&gt;
*Fixed: Follow Fire Team bug with spec not switching outside of FT for &amp;quot;FT first&amp;quot; option. &lt;br /&gt;
*Fixed: Spectator follow bug: SPACE + RMB caused wrong behavior. &lt;br /&gt;
*Fixed: pmove_fixed is now recognised by the server if the players sets it. &lt;br /&gt;
*Fixed:&amp;amp;nbsp;!useredit add command. Before the command checked only valid command flags were added. Now it accepts any flags. &lt;br /&gt;
*Fixed: Intermission pings. (http://mygamingtalk....c/437-big-ping/) &lt;br /&gt;
*Fixed: Bans that did not have GUID information are still enforced but not based on the GUID. &lt;br /&gt;
*Removed: cg_damageKick client cvar. &lt;br /&gt;
*Changed: Allied tripmine beam color changed to blue.&lt;br /&gt;
&lt;br /&gt;
== Version 0.2.1  ==&lt;br /&gt;
&lt;br /&gt;
*Added:&amp;amp;nbsp;!usersearch shrubbot command. This command can search user database for name, level and IP address. &lt;br /&gt;
*Added: Breath bar when underwater. &lt;br /&gt;
*Added: Backward following in spec mode. &lt;br /&gt;
*Added: Following Fire Team members in spec in regard to followFT client cvar. &lt;br /&gt;
*Added: Muted player indicator in scoreboard. &lt;br /&gt;
*Added: New placeholder &#039;?&#039; to custom commands. When this is inluded with a numerical placeholder, the parameter is then seen as partial name and will be replaced with the real player name if only one name matches the pattern. &lt;br /&gt;
*Added: The vote menu during intermission displays the top 3 vote winning maps with colors. &lt;br /&gt;
*Added: Muted players can&#039;t send private messages or chat in adminchat. &lt;br /&gt;
*Reworked: Shortcuts. Fixes a bug in them and gives better performance. &lt;br /&gt;
*Reworked: Knife throw headshot. Thrown knife triggers now a headshot sound when hitting to the opponent&#039;s head. &lt;br /&gt;
*Reworked: Grenades can&#039;t be thrown underwater from now on. &lt;br /&gt;
*Reworked: Forcecvar. Players can&#039;t lag out forcecvar commands anymore. &lt;br /&gt;
*Reworked: Icons shown over player&#039;s head - now possible multiple icons. &lt;br /&gt;
*Fixed: Center print priorities. The previous kill no longer blocks the health info. &lt;br /&gt;
*Fixed: Tripmines energy cost bug (charge time). Now it behaves the same way as for landmines. &lt;br /&gt;
*Fixed: Tripmine arming bug which allowed to exceed team tripmines limit. &lt;br /&gt;
*Fixed: Knives can be thrown underwater (bug #20). &lt;br /&gt;
*Fixed: Defect #16: knives bounce off enemies. &lt;br /&gt;
*Fixed: The client side shrubbot commands now work also in console. &lt;br /&gt;
*Fixed: Intermission chat can now handle extended ASCII and also commands in the same way as other chats. &lt;br /&gt;
*Removed: G_tactics.&lt;br /&gt;
&lt;br /&gt;
== Version 0.2.0  ==&lt;br /&gt;
&lt;br /&gt;
*Added: New sound for thrown knife. &lt;br /&gt;
*Added: g_dbUserMaxAge server cvar. If this cvar is set, users that are older then then this value are automatically removed from the user database. Default value is 0 which also disables the automated functionality. &lt;br /&gt;
*Added:&amp;amp;nbsp;!givexp command. With this command admin can add to an online or an offline player a specific amount of XP to a specific skill. &lt;br /&gt;
*Added:&amp;amp;nbsp;!userdelete command. With this command any users except bots can be removed from the database. &lt;br /&gt;
*Added:&amp;amp;nbsp;!userban command. A handy online command for banning offline players. &lt;br /&gt;
*Added:&amp;amp;nbsp;!userlist command. With this command admin can view all the players that are stored in the database. &lt;br /&gt;
*Added:&amp;amp;nbsp;!useredit command. This command can be used to edit any player that has visited the server. &lt;br /&gt;
*Added: User database. This holds information of all the users that have visited the server (during the lifetime of the database). &lt;br /&gt;
*Added: Quick chat box can be used to give commands. &lt;br /&gt;
*Added: New shrubbot flag &#039;?&#039; that will allow speccing admins to see private messages when they are in spec. &lt;br /&gt;
*Changed: g_knifeDamage is now g_knifeThrowDamage. Also, the actual damage is no longer randmon. &lt;br /&gt;
*Changed:&amp;amp;nbsp;!listplayers is now plain&amp;amp;nbsp;!list. &lt;br /&gt;
*Changed: ETPub&amp;amp;nbsp;!userinfo renamed to&amp;amp;nbsp;!finger. In future a new&amp;amp;nbsp;!userinfo command will give different information. &lt;br /&gt;
*Reworked:&amp;amp;nbsp;!stats command now shows total and session specific kills and deaths made by Thompson, MP40 and PPSh weapons. &lt;br /&gt;
*Reworked: Private message sound is now built in and not configurable. sound file can be overridden though. &lt;br /&gt;
*Reworked: If poison sound is enabled, the poison sound is played only to the player who has been poisoned. &lt;br /&gt;
*Reworked:&amp;amp;nbsp;!time command shows the clients local time. &lt;br /&gt;
*Reworked: To throw knife +attack2 must be used as the command. &lt;br /&gt;
*Reworked: Knives throwing. Now knives are held while they charge power. &lt;br /&gt;
*Reworked: Knifes rotate when thrown. &lt;br /&gt;
*Reworked: Knife icon enlarges when +attack2 button is pressed and held (e.g. nade icon pulsates) &lt;br /&gt;
*Removed: Without the need to support several client versions, the server will now send all obituaries as events. (&#039;&#039;This change removes all excess flags from g_obituary. From now on, the server will send obituary events to clients with any nonzero value in g_obituary cvar and will not send events if it is set to 0&#039;&#039;). &lt;br /&gt;
*Removed: Party panzers removed. &lt;br /&gt;
*Removed: g_XPSaveFile. This is now controlled with new cvar g_dbDirectory. &lt;br /&gt;
*Removed: g_shrubbot. This is now controlled with new cvar g_dbDirectory. &lt;br /&gt;
*Fixed: Memory leaking in the ETPub settings.cfg handling. &lt;br /&gt;
*Fixed: During the intermission, the full width of the chatbox is now used. &lt;br /&gt;
*Fixed: During the gameplay, the chat no longer overlaps with the gun icon. &lt;br /&gt;
*Fixed: Player can&#039;t throw his/hers last knife. &lt;br /&gt;
*Added: vote blocking &lt;br /&gt;
*Enhancement: lot of rewriting to the data sent from server to the client. &lt;br /&gt;
*Reworked:!freeze command now needs parameter to avoid freezing all player. &lt;br /&gt;
*Added: Knife Model &lt;br /&gt;
*Fixed: Team change spam to stop server crash&lt;br /&gt;
&lt;br /&gt;
== Version 0.1.4  ==&lt;br /&gt;
&lt;br /&gt;
*Reworked: Scoreboard worked &lt;br /&gt;
*Added: New awards &lt;br /&gt;
*Configurable option to pickup extra ammo with dropped weapons. &lt;br /&gt;
*Enhancement: Tripmines need to be armed &lt;br /&gt;
*Enhancement: No Tripmines for coverts from this version on &lt;br /&gt;
*Enhancement: Different tripmines beam colours for each team &lt;br /&gt;
*Fixed: tripmines ammo defect &lt;br /&gt;
*Fixed: Scoreboard fixes &lt;br /&gt;
*Fixed: The reward printing bug on map starts &lt;br /&gt;
*Fixed: limbomenu bug &lt;br /&gt;
*Added: sv_cvar and sv_cvarempty commands&lt;br /&gt;
&lt;br /&gt;
== Version 0.1.2  ==&lt;br /&gt;
&lt;br /&gt;
*Added: New weapon PPSh &lt;br /&gt;
*Added: New Weapon Tripmine &lt;br /&gt;
*Reworked: Hitsounds handled differently (No more netspam) &lt;br /&gt;
*Reworked: The bounding box code worked (This is different then ETPub and at least old NQ) &lt;br /&gt;
*Removed: Many Etpub related server cvars removed.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Changelog&amp;diff=1285</id>
		<title>Silent Changelog</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Changelog&amp;diff=1285"/>
		<updated>2015-08-05T09:41:49Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Version 0.9.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Version 0.9.0 ==&lt;br /&gt;
* Added: Server customizable menu that is opened in addition to the silEnT mod menu.&lt;br /&gt;
* Added: Possibility for admins to modify the loading screen of their server. As opposed to modifying the loading screen of every server.&lt;br /&gt;
* Added: New client command mem_report. This command prints diagnostics of the client memory pooling.&lt;br /&gt;
* Added: New client cvars: cg_numPopups, cg_popupStayTime and cg_popupFadeTime for controlling popup behaviour.&lt;br /&gt;
* Added: Server checks the setup and refuses to start if problems are found. This includes checks that official menus are not modified.&lt;br /&gt;
* Added: New option g_forceLimboHealth 2, which matches the ETPro gib damage (125).The option 1 remains as the original ETPub gib health (150).&lt;br /&gt;
* Added: Rate setting is incresed automatically step by step if fragmented snapshots are received from the server. This improves the playability and removes the need to force this setting to players.&lt;br /&gt;
* Added: Server extension modules. With this technology, server functionality can be expanded to various tasks without bloating the qagame library or forcing every admin to use same extension.&lt;br /&gt;
* Added: Statistics module. This module collects various game play data into a relational database. Current choices are SQLit3 and PostgreSQL.&lt;br /&gt;
* Added: Censor module. This module can be configured to censor names and chat with real regular expressions.&lt;br /&gt;
* Added: new fun wars: !knifewar, !stenwar, !riflenadewar, !rifleshootwar, !pistolwar (added g_headshot bitmask value 4 to control instagib of headshot for pistolwar).&lt;br /&gt;
* Added: New server cvar: g_incognitoCountryFlag to control the country flag displayed for the incognito admin.&lt;br /&gt;
* Added: If g_dmg is set server side, body hitsounds have different volumes depending of the damage. This can be disabled by the players.&lt;br /&gt;
* Added: Forcing some cvars is now restricted. These include the client side hitsound selection and theme.&lt;br /&gt;
* Added: Player screenshots. 2.6b clients and forward are supported. Screenshot will have Server name, IP, Player Name, silEnT GUID, PB GUID and Player IP in it.&lt;br /&gt;
* Fixed: G_QueryClientCvar/et_CvarValue can no longer be used to query rcon password.&lt;br /&gt;
* Fixed: The arm hit detection was not working correctly from the side shots. Fixed by adding additional temporary box for the torso.&lt;br /&gt;
* Fixed: !rename admin command doesn&#039;t allow adding backslashes to names anymore.&lt;br /&gt;
* Fixed: sv_cvar OUT handling.&lt;br /&gt;
* Fixed: Objective carry icon counting spectators too.&lt;br /&gt;
* Fixed: Crashes related to UI_Alloc running out of memory. It does not run out of memory.&lt;br /&gt;
* Fixed: Ties on highest fragger are solved by comparing kill/death difference. I.e. less deaths will win.&lt;br /&gt;
* Fixed: When g_realbody was set to 1. With certain crouch animations the middle box was not high enough to cover shoulders.&lt;br /&gt;
* Fixed: Ties on the most headshots are solved by comparing the amount of shots fired to reach the amount. The player with less shots fired will win.&lt;br /&gt;
* Fixed: et_UpgradeSkill Lua hook was passing invalid client numbers to scripts.&lt;br /&gt;
* Fixed: Allied hand grenades erroneously recorded kills as axis hand grenades. This change should be noted by all log parsers that parse MOD_ values from kills.&lt;br /&gt;
* Fixed: g_headshot bitmask value 2. It used to apply the g_instagibDamage to every hit. Fixed to apply the damage to only headshots.&lt;br /&gt;
* Fixed: tripmine palcement bug leading to exploit (thanks to Beck for the report).&lt;br /&gt;
* Fixed: theme bug regarding small titled windows.&lt;br /&gt;
* Fixed: report bug official menu had bad background definition (with widescreen).&lt;br /&gt;
* Fixed: The g_weapons flag 32768 was treated as always enabled if any of the g_weapons flags was set.&lt;br /&gt;
* Fixed: Missing ETPro icon from the SD credits menu.&lt;br /&gt;
* Fixed: Non-literal characters not allowed in names anymore.&lt;br /&gt;
* Removed: ui_autoredirect client cvar. This is used to hack player games. Redirecting still works, but players are presented a choice in a popup.&lt;br /&gt;
* Improved: silEnT AC update.&lt;br /&gt;
* Improved: rifle war nade shooting is not influenced by the charge bar anymore.&lt;br /&gt;
* Improved: Menus cleaned. All options can be found under the Options button.&lt;br /&gt;
* Improved: Increased subnet ban limit to 512.&lt;br /&gt;
&lt;br /&gt;
== Version 0.8.2 ==&lt;br /&gt;
&lt;br /&gt;
*Added: g_goatSound server cvar to enable/disable goat sounds on knife kills.&lt;br /&gt;
*Added: enemy team objective carry indicator. Use g_misc flag 1024 to enable it on the server and cg_objcarry client cvar to enable it in the HUD.&lt;br /&gt;
*Fixed: Players carrying objectives are now shown correctly.&lt;br /&gt;
*Fixed: !useredit was not able to set level higher than 99 when executed as rcon. !setlevel was working correctly.&lt;br /&gt;
*Fixed: The name of the disguised covert op was not drawn to spectators.&lt;br /&gt;
*Fixed: The class icon in the crosshair player name to be the current class instead of the latched class.&lt;br /&gt;
*Fixed: wm_sayPlayerClass now announces the latched class correctly, even when using class swithcer.&lt;br /&gt;
*Fixed: If map voting was enabled but g_mapVoteFlags 4 was not enabled. It was possible to issue multiple votes by hand using /mapvote command.&lt;br /&gt;
*Fixed: debriefing screen buttons didn&#039;t handle highlight theme parameter properly.&lt;br /&gt;
*Fixed: The output of finger command didn&#039;t show warnings if there were more than 2 in total.&lt;br /&gt;
*Fixed: UI crash in menu&lt;br /&gt;
*Fixed: Minor bug with g_maxPanzerSuicides introduced in 0.8.0. If panzer suicides were disallowed completely, the player was not informed about it.&lt;br /&gt;
*Fixed: g_muteRename allowed to change the name when player used /reconnect&lt;br /&gt;
*Fixed: When unmuting/muting during intermission/warmup, the mute wasn&#039;t saved.&lt;br /&gt;
*Fixed: cg_effectDistance was affecting the played sounds.&lt;br /&gt;
*Fixed: g_classWeapons not working for class command&lt;br /&gt;
*Fixed: class command not handling secondary weapon parameter properly, it didn&#039;t influence the limbo menu, e.g. /class s 3 2 wouldn&#039;t select akimbo pistols or SMG as secondary in limbo.&lt;br /&gt;
*Fixed: switching problem with double SMG&lt;br /&gt;
*Improved: If player is completely dead in the game, the scoreboard shows the player&#039;s latched class to other team members.&lt;br /&gt;
*Improved: UI tabbing to edit field makes it focused.&lt;br /&gt;
*Improved: limbo weapons menu for soldier class.&lt;br /&gt;
*Improved: sort order of the map vote menu map list.&lt;br /&gt;
&lt;br /&gt;
== Version 0.8.1 ==&lt;br /&gt;
*Added: Flag 32 to g_disableComplaints to disable complaints completely.&lt;br /&gt;
*Added: ETPro style g_proneDelay.&lt;br /&gt;
*Added: Custom, admin defined, votes.&lt;br /&gt;
*Added: 3rd UI theme that resembles the original ET look.&lt;br /&gt;
*Added: MorphOS support.&lt;br /&gt;
*Improved: engineer work progress bar (construct/arm/disarm) and covert ops progress bar (mines spotting, uniform stealing) - added background to display the amount of work to do.&lt;br /&gt;
*Fixed: Some text bugs related to g_recognition cvar.&lt;br /&gt;
*Fixed: ETTV clients were kicked for not having silEnT GUIDs.&lt;br /&gt;
*Fixed: Admin log was missing some data with g_logOption 16384. Also, new format with admin log when using this option.&lt;br /&gt;
*Fixed: Client exploit affecting various mods which caused the server to stall until the engine watchdog triggered.&lt;br /&gt;
*Fixed: The shrubbot.cfg configuration file is cleaned automatically from expired bans and warnings on each map start. Instead of waiting for it to be written as a result of an admin command.&lt;br /&gt;
*Fixed: Memory leak with subnet bans.&lt;br /&gt;
*Fixed: Axis covertop couldn&#039;t select pistols through weapon banks.&lt;br /&gt;
*Fixed: UI; tooltip text color theming.&lt;br /&gt;
*Fixed: Improvised Demolition not showing up in final map stats.&lt;br /&gt;
*Fixed: mines spotting progress bar not always displayed.&lt;br /&gt;
&lt;br /&gt;
== Version 0.8.0 ==&lt;br /&gt;
*Added: silEnT AntiCheat, this is an old feature existing several versions in the mod, that is now made public. Control the behaviour with g_silentac.&lt;br /&gt;
*Added: New read only cvar, sv_sac. When silEnT AC is set to autoban, this cvar is set. This cvar can be used by external server trackers to enable/disable server anti cheat status on their lists.&lt;br /&gt;
*Added: New Lua hook et_IntermissionStarts( round ). This hook is called right before the intermission. So that any changes to the cvars in the script, will take effect before the actual intermission. Do note that this will not run in the background and the script will need to exit fast just like always during the game.&lt;br /&gt;
*Added: New g_logOptions flag 16384. When this flag is set, the admin log will use new format.&lt;br /&gt;
*Added: Game minimizer, so far for linux only (minimize via menu or /minimize command).&lt;br /&gt;
*Added: New weapon for Soldier: Improvised Demolition Charge (g_enableDemolition cvar).&lt;br /&gt;
*Added: g_recognition cvar to enable/disable additional recognition notifications for players doing objective.&lt;br /&gt;
*Added: !country command that displays the country of the player.&lt;br /&gt;
*Added: g_muteRename cvar which, if enabled (set to 1), doesn&#039;t allow the muted player to change his name.&lt;br /&gt;
*Added: cg_debugBullets. In combination with g_debugBullets, it can be used to visually test the antilag.&lt;br /&gt;
*Improvement: UI - items selected by keyboard (TAB, arrows) drawn as hovered, now we know which one has focus.&lt;br /&gt;
*Improvement: Danger zone marker size based on the map size.&lt;br /&gt;
*Fixed: Distorted player icon in map when in spectator and wide screen aspect ratio.&lt;br /&gt;
*Fixed: Player scoreboard no longer displays 0.000 to PRW or KR when server doesn&#039;t have those enabled but the client cg_scoreboard cvar is set to show those.&lt;br /&gt;
*Fixed: XP save doesn&#039;t need to be enabled to save mutes, weapon statistic, KR or PRW.&lt;br /&gt;
*Fixed: Wrong compass grid and map position with widescreen.&lt;br /&gt;
*Fixed: Antilag issue regarding Omni-bots. The Omni-bot hitboxes were not in the place where the players saw the bots while running.&lt;br /&gt;
*Fixed: Last blood message was not printed if the client number of the player who made the last kill was 0.&lt;br /&gt;
*Fixed: MG42 will not make headshots unless enabled.&lt;br /&gt;
*Fixed: Many typos regarding log prints on reading different config files.&lt;br /&gt;
*Fixed: Announcement positions for custom max values.&lt;br /&gt;
*Fixed: osp fight sound not played fully (if the sound is longer).&lt;br /&gt;
*Fixed: Memory leak in Lua et.trap_FS_Read.&lt;br /&gt;
*Fixed: panzerwar bugs: 1) g_maxPanzerScuicides behavior, 2) weapon charge bar behavior, 3) panzerfaust auto switching to nades after couple fires&lt;br /&gt;
*Fixed: giba minor bug (did not gib players that were protected by g_spawnInvul)&lt;br /&gt;
*Fixed: Panzerwar and sniperwar no longer lose original weapon values when map changes.&lt;br /&gt;
*Fixed: Missing head box when g_debugBullets is 3 or higher.&lt;br /&gt;
*Fixed: Fixed no_ammo icon shown for binoculars (g_weapons, flag 8192)&lt;br /&gt;
*Fixed: riflewar bug with animation of grenade being unloaded after each shot.&lt;br /&gt;
*Fixed: Very rare client crash.&lt;br /&gt;
&lt;br /&gt;
== Version 0.7.2 ==&lt;br /&gt;
*Added: Lua can access sess.rating, sess.rating_variance, sess.overall_killrating and sess.overall_killvariance with gentity_get function. These values are read only.&lt;br /&gt;
*Fixed: Tapping new weapon while reloading the old weapon, could result changing to a new weapon after reloading but when switching back, the old weapon was empty (http://mygamingtalk....-184-reload-bug)&lt;br /&gt;
*Fixed: Class restriction bug introduced in 0.7.0.&lt;br /&gt;
*Fixed: Limbo panel displays the latched class. Always. Introduced in 0.7.1.&lt;br /&gt;
*Fixed: !givexp performs proper skill upgrade for the player.&lt;br /&gt;
*Fixed: panzerwar mode: shooting panzerfaust (in regard to chargebar) and run speed.&lt;br /&gt;
*Fixed: Omni-bots stealing restricted weapons from other players.&lt;br /&gt;
&lt;br /&gt;
== Version 0.7.1 ==&lt;br /&gt;
&lt;br /&gt;
*Fixed: Spawning with non selected class bug introduced in 0.7.0.&lt;br /&gt;
*Fixed: Enemy player positions seen by covert ops in the compass.&lt;br /&gt;
&lt;br /&gt;
== Version 0.7.0 ==&lt;br /&gt;
&lt;br /&gt;
*Added: New rcon command dbcleanup that can be used to clean up the database records. The command includes removing duplicated or unusable records and GUID checks.&lt;br /&gt;
*Added: New shrubbot command !teamstats that can be used to see the player kill and ratings statistics from one team.&lt;br /&gt;
*Added: Shrubbot flags 6(does not need to specify a reason) and 8(does not need to specify a duration) now work with the !mute command.&lt;br /&gt;
*Added: g_maxIgnoresPerMap server cvar. This controls how many times one player can ignore another player during one map and stops players from spamming others with the ignore command.&lt;br /&gt;
*Added: g_killRating flag 8. With this flag admins can disable kill rating from the scoreboards. This does not have effect on the flag 2.&lt;br /&gt;
*Added: Full body prediction from ETPub. g_misc flag 512. Same as ETPub g_misc 32+256. This makes it harder to get inside walls etc, but can also cause problems when proning through windows etc.&lt;br /&gt;
*Added: Danger zones - new covert ops function/ability (read more in the documentation)&lt;br /&gt;
*Added: icons for popup messages (ammo, medpacks, danger zones).&lt;br /&gt;
*Added: new flag 32768 to g_weapons cvar - causes the player that shot the tripmine (and by this killed other player) to score the kill&lt;br /&gt;
*Improved: timerset and resettimer commands can be used during warmup&lt;br /&gt;
*Improved: some improvements to the screen resolutions chooser.&lt;br /&gt;
*Improved: !finger command now also displays warnings issued to the player if there are any.&lt;br /&gt;
*Improved: compass command map drawing.&lt;br /&gt;
*Improved: crazygravity and crazyspeed commands can be tuned by additional cvars if default values are not enough (g_min_crazyspeed, g_max_crazyspeed, g_min_crazygravity, g_max_crazygravity).&lt;br /&gt;
*Fixed: When banning from team damage, only using shrubbot bans without specifying the kick time.&lt;br /&gt;
*Fixed: Some command map icons were missing when in spectator team.&lt;br /&gt;
*Fixed: When switching from rifle to another weapon too fast after firing the grenade and switching back to the rifle, the weapon was in the alternate mode but without loaded grenade.&lt;br /&gt;
*Fixed: Many prediction errors. Including double dropping the panzer shell after shot.&lt;br /&gt;
*Fixed: Players can no longer select classes that are not available in the limbo menu.&lt;br /&gt;
*Fixed: Only real characters allowed in names.&lt;br /&gt;
*Fixed: If the selected weapon is not available for next spawn, the class command will not change the class.&lt;br /&gt;
*Fixed: The condition with g_classWeapons settings and weapon limitations that caused players to get kicked from the server when clicking the team button.&lt;br /&gt;
*Fixed: Bug in the handling of g_spectator flag 1. Players were able to enter opponent players after all teammates were dead.&lt;br /&gt;
*Fixed: Client crashes related to cg_gun_frame being set.&lt;br /&gt;
*Fixed: !subnets command was printing itself as showsbans instead of subnets.&lt;br /&gt;
*Fixed: Reading subnet bans with full octets and treating them as partial. Also writing them as partial on next shrubbot write.&lt;br /&gt;
*Fixed: g_classWeapons too restrictive, couldn&#039;t pick up enemy SMGs from the ground.&lt;br /&gt;
*Fixed: g_classWeapons with g_mode. When g_mode was set to 8 Thompson and MP40 couldn&#039;t be picked up by coverts.&lt;br /&gt;
*Fixed: command map entities were not removed on team switch/disconnect. Concerned: landmines, trip mines, danger zone markers.&lt;br /&gt;
&lt;br /&gt;
== Version 0.6.3 ==&lt;br /&gt;
&lt;br /&gt;
Fixed: Incompatibility with ET Legacy introduced in 0.6.2.&lt;br /&gt;
&lt;br /&gt;
== Version 0.6.2 ==&lt;br /&gt;
&lt;br /&gt;
*Added: !subnetban command can now cut the IP inside the octet with &#039;x&#039;. For example, &amp;quot;!subnetban 12x&amp;quot; will ban IP adresses 12x.xxx.xxx.xxx.&lt;br /&gt;
*Added: IP address is logged when player is blocked by a subnetban.&lt;br /&gt;
*Added: Lua callback et_ClientBinary( client, checksum ) which passes the checksums of client binaries to the Lua scripts.&lt;br /&gt;
*Added: Functionality to query client cvars with Lua. API function et.G_QueryClientCvar and callback et_CvarValue.&lt;br /&gt;
*Added: New server cvar g_includedMaps. Maps set in this cvar string, will be always included in the map voting list. Regardless of any other restrictions.&lt;br /&gt;
*Added: 2 new flags to g_classWeapons (16,32) to enable/disable MP40 and Thompson for soldiers.&lt;br /&gt;
*Added: admin chat messsage window.&lt;br /&gt;
*Added: more ET:Legacy binaries added to the list of known client binaries.&lt;br /&gt;
*Added: fast shooting. Use g_weapons flag 16384 to enable it.&lt;br /&gt;
*Added: !crazygravity and !crazyspeed commands.&lt;br /&gt;
*Reworked: When g_clientBinaries flag 4 is set, and the binary is a already known cheat binary, it is clearly reported instead of the usual unknown client binary.&lt;br /&gt;
*Reworked: match_warmupDamage, if set to 2 it is effective also when FF is disabled.&lt;br /&gt;
*Fixed: Sometimes, the information of the person who muted was not displayed.&lt;br /&gt;
*Fixed: Unique silEnT GUIDs required between connected players. This caused little confusion when banning.&lt;br /&gt;
*Fixed: g_antiwarp from the ETPub repository.&lt;br /&gt;
*Fixed: g_dyno chaining blast radious fix from crapshoot.&lt;br /&gt;
*Fixed: userxdb.db was slowly filling with records that were not used or needed.&lt;br /&gt;
*Fixed: Lua API function et.G_EntitiesFree.&lt;br /&gt;
*Fixed: Full mod URL shown in the serverinfo menu.&lt;br /&gt;
*Fixed: Some alignment issues with the smaller score board.&lt;br /&gt;
*Fixed: Revive icons are shown again.&lt;br /&gt;
*Fixed: With forcecvar and sv_cvar, the existing limits are checked and updated if the cvar already exists in the limits. Instead of just adding the same cvar at the end of the config strings.&lt;br /&gt;
*Fixed: Clients protected against overflowing sv_cvar and forcecvar config strings.&lt;br /&gt;
*Fixed: Custom commands can now have quotes. This is usefull if the command is then forwarded to a new tokenizer. For example, Lua scripts can access arguments correctly.&lt;br /&gt;
*Fixed: Rcon can now call custom commands as well. Before, the command line was truncated when doing shortcut replacement for the console.&lt;br /&gt;
*Fixed: Class stealing no longer kicks old players out from their classes if the class is full. The stealing is prevented.&lt;br /&gt;
*Fixed: Server crash when player was muted through rcon.&lt;br /&gt;
*Fixed: !finger command output is now easier to read if the entity who muted a player is player himself even if the player would have named himself as silEnT or Console.&lt;br /&gt;
*Fixed: weapon pickup bugs&lt;br /&gt;
*Fixed: knife bug when throwing knives are disabled by g_throwableKnives cvar.&lt;br /&gt;
*Fixed: no progress indicator during disarming dyna after class steal&lt;br /&gt;
&lt;br /&gt;
== Version 0.6.1 ==&lt;br /&gt;
&lt;br /&gt;
*Added: New optional parameter &amp;quot;syntax&amp;quot; to custom command blocks. This allows creating proper syntax help to show with !help command.&lt;br /&gt;
*Added: Shrubot custom commands can now have color codes. The colors are not required when using the commands.&lt;br /&gt;
*Changed: The maximum number of custom commands increased to 95.&lt;br /&gt;
*Fixed: Double amount of level stars in the map change debriefing.&lt;br /&gt;
*Fixed: Many coloring errors related to white nicks.&lt;br /&gt;
*Fixed: Server side was not handling the new skill_(x) cvars correctly.&lt;br /&gt;
*Fixed: Killed sniper had scope enabled with normal fov after revive. Depending how the sniper was killed.&lt;br /&gt;
*Fixed: !baninfo was not displaying permanent bans in Expires in field.&lt;br /&gt;
*Fixed: Stamina bar color bug.&lt;br /&gt;
*Fixed: Lua documentation. The G_ClientNumberFromString is actually ClientNumberFromString.&lt;br /&gt;
*Fixed: Some typos with shrubbot commands and inconsistencies with !help.&lt;br /&gt;
*Fixed: Shrubbot !help now accepts the command names with ! infront.&lt;br /&gt;
*Fixed: Unified !help syntax notation.&lt;br /&gt;
*Fixed: Player names that were both online and previously stored, were printed twice in the !aliassearch command output.&lt;br /&gt;
*Fixed: Formatting bug when more the 10 matching aliases for a player.&lt;br /&gt;
*Fixed: With custom commands, the missing command line parameters are stripped from the command.&lt;br /&gt;
*Fixed: Player name replacement gives better error messages for every case, including the command name.&lt;br /&gt;
*Fixed: Teammate healthbars were flashing wrong health data. Bug introduced in version 0.6.0.&lt;br /&gt;
*Fixed: Player idents were enforcing bans to a wide range of innocent players. Bug introduced in 0.6.0.&lt;br /&gt;
&lt;br /&gt;
== Version 0.6.0 ==&lt;br /&gt;
&lt;br /&gt;
*Added: New dialog window under silEnT menu for screen resolutions. This dialog has autodetected possible resolution and includes widescreen resolutions.&lt;br /&gt;
*Added: ETPro compatible access to sess.aWeaponStats (a GET by weapon index returns a 5-element table of numbers), from pheno of ETPub.&lt;br /&gt;
*Added: Optional aliases database. New commands !aliases, !aliasesdel, !aliassearch and !userinfo now has an option to show the stored aliases. New server cvar g_dbMaxAliases.&lt;br /&gt;
*Added: Mute information is displayed in with the !finger command. This includes time left, mute reason and who muted.&lt;br /&gt;
*Added: Players can freely choose the type of hit sounds they prefer. This is controlled with cg_hitSoundType cvar. Related to this, server admins can configure the type of hit sounds the players default if they do not specifically select any type. By defult, the cg_hitSoundType is 0, which means server configured hit sounds and allowing custom hit sounds in custom pk3 files. Read documentation about g_hitsounds, g_defaultHitSounds and cg_hitSoundType. There is also an additional paragraph about adding custom hit sounds.&lt;br /&gt;
*Added: g_misc flag 256. Setting this flag disables the &amp;quot;First Blood&amp;quot; announcement.&lt;br /&gt;
*Added: g_logOptions flag 1024. This flag allows logging every player drop. It can be usefull for inspecting the server operation, but it will also cause lot of needless log writes.&lt;br /&gt;
*Added: g_realPlayTime cvar. Used to show additional real play time of the payer (without spec time) in the debriefing screen.&lt;br /&gt;
*Added: Flag 8 to g_playerCounting. Bots are not included into the player count.&lt;br /&gt;
*Added: Cvar based enabling of both Thompson and MP40 to the limbo menu selection regardless of the team (g_classWeapons, flag 8)&lt;br /&gt;
*Added: cg_effectDistance client cvar which can be used to control the maximum distance to draw the bullet effects.&lt;br /&gt;
*Reworked: Class skills can be freely enabled/disabled in any order using 0 and -1 in the skill_(x) server cvars.&lt;br /&gt;
*Reworked: The !finger command now shows the client operating system, again. This information was removed in the 0.5.2 because of unreliability in the full string.&lt;br /&gt;
*Reworked: PPSh first person view model.&lt;br /&gt;
*Reworked: The commands !gib, !lol, !pip and !pop no longer do it to everyone if target is not specified.&lt;br /&gt;
*Fixed: Statistics bug with satchel charge.&lt;br /&gt;
*Fixed: Shrubbot commands !useredit and !usereditpb didn&#039;t allow editing players with level higher then 32 when attempted with rcon.&lt;br /&gt;
*Fixed: A bug in the player name cleaning allowed empty names using spaces.&lt;br /&gt;
*Fixed: Player name doesn&#039;t change anymore everytime the name edit field loses focus. OK button must be clicked for the changes to take effect.&lt;br /&gt;
*Fixed: Persistent SMG kills and deaths were getting lost if the player reconnected during the map.&lt;br /&gt;
*Fixed: Dropping the helmet multiple times when repeated hits to the head. With antilag enabled.&lt;br /&gt;
*Fixed: g_inactivityOptions flag 4 was not moving players to spectator. Fix from pheno of ETPub.&lt;br /&gt;
*Fixed: Lagometer transparency (couldn&#039;t change lagometer transparency)&lt;br /&gt;
*Fixed: Fireteam window transparency (improper drawing)&lt;br /&gt;
*Fixed: Fireteam member information going over the window edge when latching to another class.&lt;br /&gt;
*Fixed: g_noSkillUpgrades now locks the skills to the enabled ones, instead of changing every skill to 0.&lt;br /&gt;
*Fixed: !readadmins command did not add admins correctly into the database. Versions affected on various levels from 0.5.0 to 0.5.2.&lt;br /&gt;
*Fixed: Client inactivity timer ETPro compatible. Fix from pheno of ETPub.&lt;br /&gt;
*Fixed: animation timing bug mainly for weapalts (switch to/from)&lt;br /&gt;
*Fixed: reverted back (removed) fix for thrown knife dodging introduced in 0.5.2 version.&lt;br /&gt;
&lt;br /&gt;
== Version 0.5.2 ==&lt;br /&gt;
&lt;br /&gt;
*Added: g_playerCounting server cvar. This is used with optional player blocks.&lt;br /&gt;
*Added: Optional [player] blocks to the map configs. Map config commands can be executed based on the player amount on the server.&lt;br /&gt;
*Added: g_clientBinaries server cvar. Server admins may choose to refuse players with unknown binaries. List of known binaries in the documentation.&lt;br /&gt;
*Added: tripmines ids, check g_mineid cvar for details. Now tripmines get ids as well, so we can see who planted them.&lt;br /&gt;
*Added: all game types shown in server browser (Map Voting - MV, Team Death Match - TDM). Filters handling new types as well.&lt;br /&gt;
*Added: restriction to g_skills 1, non covert players can spot mines for the team only if they are close enough.&lt;br /&gt;
*Added: ammo of the weapon is shown for the weapon we want to pickup from the ground. Set server side with g_weapons cvar (flag 8192)&lt;br /&gt;
*Added: stance indicator (can be enabled in the HUD editor, disabled by default)&lt;br /&gt;
*Added: themed HUD bars (health, stamina, weap recharge). cg_themedBars cvar to turn it on/off. Avalable also in silent THEMES menu.&lt;br /&gt;
*Added: multiple recipient private messages command and multiple selecting for Private Messages in PM list window.&lt;br /&gt;
*Added: Possibility for new announcement sounds for death sprees and spree ends.&lt;br /&gt;
*Added: New shrubbot command !updatepbguid which can be used to manually update the stored PB GUID to the current one of the player.&lt;br /&gt;
*Added: New shrubbot command !levlist which lists all the server admin levels.&lt;br /&gt;
*Added: New shrubbot command !levinfo which displays all the information about the admin level.&lt;br /&gt;
*Improvement: Possible FPS improvement for players that have low FPS performance.&lt;br /&gt;
*Fixed: Potential crash bug with subnet bans.&lt;br /&gt;
*Fixed: The Admin Level Protection was not giving authentication with !setlevel to the lowest protected level.&lt;br /&gt;
*Fixed: stamina changes not visible in spec.&lt;br /&gt;
*Fixed: !finger command now shows the current PB GUID. This was supposed to be changed in 0.5.1 but was not. The !finger command is now properly verbose about PB GUID differences and displays the player admin level as well. Also, the command no longer displays non relevant information of the server bots but only the name, the slot number and the admin level of the bot.&lt;br /&gt;
*Fixed: Ban escalation printed garbage short GUIDs in the ban messages itself (8 character GUID) when the previous ban did not have PB GUID associated with it.&lt;br /&gt;
*Fixed: Added N!trox&#039;s teamchat height fix during intermission.&lt;br /&gt;
*Fixed: HUD editor help window position and themed it.&lt;br /&gt;
*Fixed: Player positions were sometimes wrong in the command map.&lt;br /&gt;
*Fixed: Aspect ratio issues with command map entities.&lt;br /&gt;
*Fixed: Boosting (pushing) team players by shooting at them when FF is off.&lt;br /&gt;
*Fixed: silEnT GUIDs were not always recognzed correctly. Bug was introduced in the 0.5.1.&lt;br /&gt;
*Fixed: ETPro behaviour, et_ClientBegin Lua is called only once for player and not for every team change.&lt;br /&gt;
*Fixed: !baninfo command was displaying bad short GUIDs for bans without GUIDs.&lt;br /&gt;
*Fixed: When FF was not enabled, the disguised friendly covert op health was displayed incorrectly.&lt;br /&gt;
*Fixed: team_maxSoldiers restriction was not enforced.&lt;br /&gt;
*Changed: The default value of cg_gun_fovscale changed to &amp;quot;0&amp;quot;. No longer the need for admins to force it to players.&lt;br /&gt;
&lt;br /&gt;
== Version 0.5.1 ==&lt;br /&gt;
*Added: !hstats, command will display the hitregions players are hitting.&lt;br /&gt;
*Added: g_medics flag 512, adrenaline takes only half charge.&lt;br /&gt;
*Added: g_adrendmgreduction, admins can control the damage reduction when players under the effect of adrenaline are hit.&lt;br /&gt;
*Added: themed Draws (time, fps, timer, speedometer), K/D/S display and lagometer. New cvar for this: cg_themedDraws {0,1}: 0-use the old style, 1- themed style&lt;br /&gt;
*Added: new flag to g_friendlyFireOpts: 32. Only the engineer that planted the landmine can trigger/defuse it.&lt;br /&gt;
*Added: g_realbody, possibility for server admins to set up smaller body hitboxes&lt;br /&gt;
*Fixed: !userlist command was not working if noone was online on the server.&lt;br /&gt;
*Fixed: In certain cases same player was displayed multiple times on the userlist output.&lt;br /&gt;
*Fixed: SP_team_WOLF_objective: exceeded MAX_MULTI_SPAWNTARGETS (16), fix from flms of ETPub&lt;br /&gt;
*Fixed: !showbans didn&#039;t always display bans properly when the banned player didn&#039;t have PB GUID. Also, silEnT ID is now included in the list.&lt;br /&gt;
*Fixed: Warmup was not dislayed to players before the warmup countdown started.&lt;br /&gt;
*Fixed: Proned players moving when others were standing on their backs.&lt;br /&gt;
*Fixed: vid_restart crash&lt;br /&gt;
*Fixed: Temp Ban System didn&#039;t handle silEnT GUIDs&lt;br /&gt;
*Fixed: Passed nextmap vote will now correctly go into intermission when map voting is enabled.&lt;br /&gt;
*Fixed: maps not listed in the vote menu when game type is mapvoting or TDM&lt;br /&gt;
*Fixed: not themed fireteam menus&lt;br /&gt;
*Fixed: additional space behind location in fireteam window&lt;br /&gt;
*Reworked: The K/D in the scores is renamed to KR to reduce confusion about it.&lt;br /&gt;
*Reworked: The !finger output prints the current PB GUID of the player. Not the one that is stored in the database.&lt;br /&gt;
*Reworked: The silEnT GUID handling is changed a little. This prevents certain types of copy paste spoofings. Note, players that are not stored to the database with valid PB GUIDs will create new player records. Also, from the old ban lists, at least the silEnT GUID (sguid) fields must be cleared to prevent false bans.&lt;br /&gt;
*Reworked: Lua interpreter is now built into the server binary. This will make installing easier.&lt;br /&gt;
*Removed: g_realHead realistic hitboxes from ETPub/zinx are now used always&lt;br /&gt;
*Removed: g_mapVoteFlags no longer has flag 16. If admin needs a command to get next map in rotation when map voting is enabled, he can easily create one executing &amp;quot;vstr nextmap&amp;quot;.&lt;br /&gt;
*Removed: g_spoofOptions, the spoofing is now checked unconditionally.&lt;br /&gt;
*Removed: g_punkbuster, the PunkBuster is no longer supported by EvenBalance and this cvar is no longer needed.&lt;br /&gt;
&lt;br /&gt;
== Version 0.5.0 ==&lt;br /&gt;
*Added: dboptimize server console command. Read the manual for more information.Do note that this command is server resource intensive and should not be used often.&lt;br /&gt;
*Added: support for revive spree sounds. Admins can add custom sound files revive3.wav, revive5.wav and revive10.wav under the sound/announces if they like.&lt;br /&gt;
*Added: g_XPSaveMinXP, when this value is set to above 0 or above, the XP save system will use different timestamp for the XP save then the rest of the database. This allows cvars like g_XPSaveMaxAge_xp to work correctly.&lt;br /&gt;
*Added: referee hack attempts are logged&lt;br /&gt;
*Added: Admin Level Protection (ALP), with this mechanism, the server can ensure that admins on protected levels are properly authenticated&lt;br /&gt;
*Added: silEnT GUID, the new silEnT GUIDs replace the PB GUIDs in everywhere, but compatibility is provided for the old PB GUIDs also&lt;br /&gt;
*Added: g_cheatLog, server will log all non gaming related information into this log if enabled&lt;br /&gt;
*Added: debriefing, mouse wheel scrolling of the lists when the cursor is over the list, not only over the scroll bar&lt;br /&gt;
*Added: omnibot support for tripmines (tripmines can be planted by bots)&lt;br /&gt;
*Fixed: vote blocking will not block referee commands&lt;br /&gt;
*Fixed: missing original mouse cursor in the menus for Windows builds&lt;br /&gt;
*Fixed: silenced colt anim bug&lt;br /&gt;
*Fixed: XP for team kills made with tripmines: http://mygamingtalk....112-xp-for-tks/&lt;br /&gt;
Reworked: tripmines can&#039;t be destroyed when they are not armed, now it takes 2 shots instead of 1 to destroy the tmine.&lt;br /&gt;
&lt;br /&gt;
== Version 0.4.0  ==&lt;br /&gt;
&lt;br /&gt;
* Added: different power bolt colors for fops to show arty/airstrikes availability (http://mygamingtalk....ops-air-strike/)&lt;br /&gt;
* Added: tripmines can be tripped by movers (doors etc.) when they cross the wire.&lt;br /&gt;
* Added: different power bolt color for fops depending on airstrike and arty availability&lt;br /&gt;
* Added: new UI with 2 themes. Themes can be switched with &amp;quot;ui_theme&amp;quot; cvar {1,2}&lt;br /&gt;
* Added: tripmines markers on the command map.&lt;br /&gt;
* Added: new tripmine wire shaders.&lt;br /&gt;
* Added: tripmines can be now spotted by coverts to be marked on the command map.&lt;br /&gt;
* Added: Possibility for server admins to enable Jaymod style double jumping This is controlled with g_misc flag 32.&lt;br /&gt;
* Added: hint for tripmine placement (hint is displayed when tripmine can be attached to the pointed place)&lt;br /&gt;
* Added: new cvar: cg_themedCMap {0,1}, which activates/deactivates themed command map frame&lt;br /&gt;
* Added: New shrubbot flag &#039;#&#039;. Players or levels with this flag are not allowed to call votes. Voting is automatically denied from players without PB GUIDs. Do note, it does not require the punkbuster to be enabled on the server for a player to have a PB GUID.&lt;br /&gt;
* Added: new private message which allows to select players from the list or just type the name in&lt;br /&gt;
* Added: Possiblity to mute only global chat sounds with cg_noVoiceChats 2. Also added into the menu.&lt;br /&gt;
* Reworked: new tripmine model, new tripmine icons&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-42-fireteam-selction-notification/| Fireteam selction notification]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-43-covie-bug-i-think/| Covie Bug - I Think]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-44-watermark-bug/| Watermark bug]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-56-nextmap-callvote-nextmap-dont-work-with-g-gametype-6/| !nextmap &amp;amp; callvote nextmap, don&#039;t work with g_gametype 6]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-71-knife-bug/| knife bug]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-77-single-pistol-bug/| Single Pistol Bug]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-79-shoutcaster/| Shoutcaster]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-80-missing-text-for-to-follow-previous-player/| Missing text for to follow previous player]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-81-weapons-list-appears-when-throwing-knife/| Weapons list appears when throwing knife]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-82-limbomenu-doesnt-show-xp-until-you-have-joined-into-a-team/| Limbomenu doesn&#039;t show xp until you have joined into a team]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-83-join-into-a-team-even-close-limbomenu/| Join into a team even close limbomenu]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-86-throwing-knives-disappear/| Throwing Knives Disappear]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-93-map-slider-only-works-if-you-drag-it/| Map slider only works if you drag it]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-94-throwing-knives-in-air/| Throwing Knives in Air]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-95-trip-mines/| Trip Mines]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-97-gui-cutting-of-at-edges/| GUI cutting of at edges]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-103-tripmines/| Tripmines]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-107-player-class-icon-off-map/| Player class icon off map]&lt;br /&gt;
*Fixed: [http://mygamingtalk.com/forums/tracker/issue-109-blank-spot-in-vote-menu-select-hidden-map/| Blank spot in vote menu select hidden map]&lt;br /&gt;
*Renamed: g_settings renamed to g_banners. That is what it is only for so the change is to clarify the purpose.&lt;br /&gt;
*Removed: /rcon ban. This command was causing issues because of the similar name to !ban. Also, there was no unban method.&lt;br /&gt;
&lt;br /&gt;
== Version 0.3.3  ==&lt;br /&gt;
&lt;br /&gt;
*Fixed: alternative fire bug introduced in 0.3.2.&lt;br /&gt;
&lt;br /&gt;
== Version 0.3.2  ==&lt;br /&gt;
&lt;br /&gt;
*Readded: Class awards. They should now work correctly with XP save. &lt;br /&gt;
*Added: possibility for server admins to enable teamhit sounds. &lt;br /&gt;
*Added: flag 8 to g_identOptions. Actions taken based on client identifications are reported in the adminchat. &lt;br /&gt;
*Added: default silEnT watermark. &lt;br /&gt;
*Fixed: bug with missing hitsounds (http://mygamingtalk.com/forums/tracker/issue-54-no-hitsound-on-enemy-with-mortar/). &lt;br /&gt;
*Fixed: bug with class stealing (http://mygamingtalk.com/forums/tracker/issue-46-weapon-on-class-change-go-empty-clip-and-change-weapon/). &lt;br /&gt;
*Fixed: bug with soldier secondary weapon changing to akimbos. &lt;br /&gt;
*Fixed: throw last knife bug (http://mygamingtalk.com/forums/topic/587-knife-bug/). &lt;br /&gt;
*Fixed: fireteam overlay bug. &lt;br /&gt;
*Fixed: server list server name filter bug/crash. &lt;br /&gt;
*Fixed: bug with say_teamnl command that allowed muted players to write in team chat. (http://mygamingtalk.com/forums/tracker/issue-73-say-teamnl-working-with-muted-players/) &lt;br /&gt;
*Fixed: bug with g_classWeapons cvar (http://mygamingtalk.com/forums/tracker/issue-72-g-classweapons/). &lt;br /&gt;
*Fixed: bug in the TDM timebar. &lt;br /&gt;
*Fixed: some bugs with the win probabilities. Not in algorithms, but with the calls to calculate them. &lt;br /&gt;
*Removed: Active Team Balance. &lt;br /&gt;
*Removed: g_teamForceBalance_playerrating. &lt;br /&gt;
*Removed:&amp;amp;nbsp;!balance admin command. &lt;br /&gt;
*Enhancement: The g_XPSave flag 8 will no longer kick guidless players for duplicates. &lt;br /&gt;
*Enhancement: The&amp;amp;nbsp;!howfair command now uses K/D determining fairness. &lt;br /&gt;
*Enhancement: Possibilities for invalid kicks for spoofed client identification reduced.&lt;br /&gt;
&lt;br /&gt;
== Version 0.3.1  ==&lt;br /&gt;
&lt;br /&gt;
*Added: g_votedMuteLength which controls the lengths of the voted mutes. Default is 3 hours. &lt;br /&gt;
*Reworked: The tripmine shaders. Visually still defaults to the old look. &lt;br /&gt;
*Optimization: Some code cleanup and minor optimizations. &lt;br /&gt;
*Binaries compiled with optimization settings &lt;br /&gt;
*Bug fixes: Generate list from tracker.&lt;br /&gt;
&lt;br /&gt;
== Version 0.3.0  ==&lt;br /&gt;
&lt;br /&gt;
*Added: Weapon banks shown during weapon change - incorporated into HUD editor (introduced new client cvars for this: cg_wbShowDuration, cg_wbOrientation, cg_wbWideSlots). &lt;br /&gt;
*Added: New game type: Team Death Match (easy to be configured server side and client side). &lt;br /&gt;
*Added: When alternate HUD is chosen with compass in the lower part of the screen the compass slides out to bottom. &lt;br /&gt;
*Added: New command&amp;amp;nbsp;!baninfo. &lt;br /&gt;
*Added: New server cvar g_punkBuster. Servers that don&#039;t have PunkBuster enabled can still force clients enabling punkbuster for them to have GUIDs. This does not guarantee that every player will have a GUID but if the player has it, it will be sent to the server. &lt;br /&gt;
*Added: Warmup countdown (last 3 seconds). Can be turned off by setting cg_showCountDown client cvar to &amp;quot;0&amp;quot;. &lt;br /&gt;
*Added: g_classWeapons server cvar. Enables weapons per class (so far only PPSh is handled) &lt;br /&gt;
*Added: Muted players can&#039;t call votes. &lt;br /&gt;
*Added: New command&amp;amp;nbsp;!readadmins. &lt;br /&gt;
*Added: Separate meaning of death for shoving to death (enemy killing and team killing supported). &lt;br /&gt;
*Added: New type of revealed landmines notifications (cg_landmineNotifyType client cvar and g_landmineNotifyType server cvar provided for this). &lt;br /&gt;
*Added: New command&amp;amp;nbsp;!resetpls that reset individual player stats leaving XP save untouched. There has been some cases when the stats have bugged and this is an easy command for admins to correct such stats. &lt;br /&gt;
*Added: Players can customise or even disable the announcements if they like. &lt;br /&gt;
*Added: silEnT mod icon displayed on loading screen. &lt;br /&gt;
*Added: New PPSH weapon model and enhanced the weapon overall (sounds). &lt;br /&gt;
*Added: Possibility for First Blood sound for server admins. &lt;br /&gt;
*Added: New shrubbot flag &#039;/&#039; that will disables private messages from levels or individual players. &lt;br /&gt;
*Added: Kills/Deaths/Spree counters HUD display managed by cg_killsDisplay cvar. &lt;br /&gt;
*Added: Predefined HUDs can be now chosen from the HUD configuration menu. &lt;br /&gt;
*Added: New predefined HUDs: etpro, etpro2 (thanks to Dragon). &lt;br /&gt;
*Added: New server cvar g_punkBuster that helps server without PunkBuster enabled with GUIDless players. &lt;br /&gt;
*Added: Hardware based client identification. This is used to help banning players. Controlled by g_identOptions cvar. &lt;br /&gt;
*Fixed: defect with following FT (killed player was picked when he/she was the FT leader - but next FT member should be picked) &lt;br /&gt;
*Improved: The database performance. &lt;br /&gt;
*Reworked: cg_hitSounds client cvar. Now a new option play only headshots is available. &lt;br /&gt;
*Fixed: Headshots from proned players. &lt;br /&gt;
*Fixed: Follow Fire Team bug with spec not switching outside of FT for &amp;quot;FT first&amp;quot; option. &lt;br /&gt;
*Fixed: Spectator follow bug: SPACE + RMB caused wrong behavior. &lt;br /&gt;
*Fixed: pmove_fixed is now recognised by the server if the players sets it. &lt;br /&gt;
*Fixed:&amp;amp;nbsp;!useredit add command. Before the command checked only valid command flags were added. Now it accepts any flags. &lt;br /&gt;
*Fixed: Intermission pings. (http://mygamingtalk....c/437-big-ping/) &lt;br /&gt;
*Fixed: Bans that did not have GUID information are still enforced but not based on the GUID. &lt;br /&gt;
*Removed: cg_damageKick client cvar. &lt;br /&gt;
*Changed: Allied tripmine beam color changed to blue.&lt;br /&gt;
&lt;br /&gt;
== Version 0.2.1  ==&lt;br /&gt;
&lt;br /&gt;
*Added:&amp;amp;nbsp;!usersearch shrubbot command. This command can search user database for name, level and IP address. &lt;br /&gt;
*Added: Breath bar when underwater. &lt;br /&gt;
*Added: Backward following in spec mode. &lt;br /&gt;
*Added: Following Fire Team members in spec in regard to followFT client cvar. &lt;br /&gt;
*Added: Muted player indicator in scoreboard. &lt;br /&gt;
*Added: New placeholder &#039;?&#039; to custom commands. When this is inluded with a numerical placeholder, the parameter is then seen as partial name and will be replaced with the real player name if only one name matches the pattern. &lt;br /&gt;
*Added: The vote menu during intermission displays the top 3 vote winning maps with colors. &lt;br /&gt;
*Added: Muted players can&#039;t send private messages or chat in adminchat. &lt;br /&gt;
*Reworked: Shortcuts. Fixes a bug in them and gives better performance. &lt;br /&gt;
*Reworked: Knife throw headshot. Thrown knife triggers now a headshot sound when hitting to the opponent&#039;s head. &lt;br /&gt;
*Reworked: Grenades can&#039;t be thrown underwater from now on. &lt;br /&gt;
*Reworked: Forcecvar. Players can&#039;t lag out forcecvar commands anymore. &lt;br /&gt;
*Reworked: Icons shown over player&#039;s head - now possible multiple icons. &lt;br /&gt;
*Fixed: Center print priorities. The previous kill no longer blocks the health info. &lt;br /&gt;
*Fixed: Tripmines energy cost bug (charge time). Now it behaves the same way as for landmines. &lt;br /&gt;
*Fixed: Tripmine arming bug which allowed to exceed team tripmines limit. &lt;br /&gt;
*Fixed: Knives can be thrown underwater (bug #20). &lt;br /&gt;
*Fixed: Defect #16: knives bounce off enemies. &lt;br /&gt;
*Fixed: The client side shrubbot commands now work also in console. &lt;br /&gt;
*Fixed: Intermission chat can now handle extended ASCII and also commands in the same way as other chats. &lt;br /&gt;
*Removed: G_tactics.&lt;br /&gt;
&lt;br /&gt;
== Version 0.2.0  ==&lt;br /&gt;
&lt;br /&gt;
*Added: New sound for thrown knife. &lt;br /&gt;
*Added: g_dbUserMaxAge server cvar. If this cvar is set, users that are older then then this value are automatically removed from the user database. Default value is 0 which also disables the automated functionality. &lt;br /&gt;
*Added:&amp;amp;nbsp;!givexp command. With this command admin can add to an online or an offline player a specific amount of XP to a specific skill. &lt;br /&gt;
*Added:&amp;amp;nbsp;!userdelete command. With this command any users except bots can be removed from the database. &lt;br /&gt;
*Added:&amp;amp;nbsp;!userban command. A handy online command for banning offline players. &lt;br /&gt;
*Added:&amp;amp;nbsp;!userlist command. With this command admin can view all the players that are stored in the database. &lt;br /&gt;
*Added:&amp;amp;nbsp;!useredit command. This command can be used to edit any player that has visited the server. &lt;br /&gt;
*Added: User database. This holds information of all the users that have visited the server (during the lifetime of the database). &lt;br /&gt;
*Added: Quick chat box can be used to give commands. &lt;br /&gt;
*Added: New shrubbot flag &#039;?&#039; that will allow speccing admins to see private messages when they are in spec. &lt;br /&gt;
*Changed: g_knifeDamage is now g_knifeThrowDamage. Also, the actual damage is no longer randmon. &lt;br /&gt;
*Changed:&amp;amp;nbsp;!listplayers is now plain&amp;amp;nbsp;!list. &lt;br /&gt;
*Changed: ETPub&amp;amp;nbsp;!userinfo renamed to&amp;amp;nbsp;!finger. In future a new&amp;amp;nbsp;!userinfo command will give different information. &lt;br /&gt;
*Reworked:&amp;amp;nbsp;!stats command now shows total and session specific kills and deaths made by Thompson, MP40 and PPSh weapons. &lt;br /&gt;
*Reworked: Private message sound is now built in and not configurable. sound file can be overridden though. &lt;br /&gt;
*Reworked: If poison sound is enabled, the poison sound is played only to the player who has been poisoned. &lt;br /&gt;
*Reworked:&amp;amp;nbsp;!time command shows the clients local time. &lt;br /&gt;
*Reworked: To throw knife +attack2 must be used as the command. &lt;br /&gt;
*Reworked: Knives throwing. Now knives are held while they charge power. &lt;br /&gt;
*Reworked: Knifes rotate when thrown. &lt;br /&gt;
*Reworked: Knife icon enlarges when +attack2 button is pressed and held (e.g. nade icon pulsates) &lt;br /&gt;
*Removed: Without the need to support several client versions, the server will now send all obituaries as events. (&#039;&#039;This change removes all excess flags from g_obituary. From now on, the server will send obituary events to clients with any nonzero value in g_obituary cvar and will not send events if it is set to 0&#039;&#039;). &lt;br /&gt;
*Removed: Party panzers removed. &lt;br /&gt;
*Removed: g_XPSaveFile. This is now controlled with new cvar g_dbDirectory. &lt;br /&gt;
*Removed: g_shrubbot. This is now controlled with new cvar g_dbDirectory. &lt;br /&gt;
*Fixed: Memory leaking in the ETPub settings.cfg handling. &lt;br /&gt;
*Fixed: During the intermission, the full width of the chatbox is now used. &lt;br /&gt;
*Fixed: During the gameplay, the chat no longer overlaps with the gun icon. &lt;br /&gt;
*Fixed: Player can&#039;t throw his/hers last knife. &lt;br /&gt;
*Added: vote blocking &lt;br /&gt;
*Enhancement: lot of rewriting to the data sent from server to the client. &lt;br /&gt;
*Reworked:!freeze command now needs parameter to avoid freezing all player. &lt;br /&gt;
*Added: Knife Model &lt;br /&gt;
*Fixed: Team change spam to stop server crash&lt;br /&gt;
&lt;br /&gt;
== Version 0.1.4  ==&lt;br /&gt;
&lt;br /&gt;
*Reworked: Scoreboard worked &lt;br /&gt;
*Added: New awards &lt;br /&gt;
*Configurable option to pickup extra ammo with dropped weapons. &lt;br /&gt;
*Enhancement: Tripmines need to be armed &lt;br /&gt;
*Enhancement: No Tripmines for coverts from this version on &lt;br /&gt;
*Enhancement: Different tripmines beam colours for each team &lt;br /&gt;
*Fixed: tripmines ammo defect &lt;br /&gt;
*Fixed: Scoreboard fixes &lt;br /&gt;
*Fixed: The reward printing bug on map starts &lt;br /&gt;
*Fixed: limbomenu bug &lt;br /&gt;
*Added: sv_cvar and sv_cvarempty commands&lt;br /&gt;
&lt;br /&gt;
== Version 0.1.2  ==&lt;br /&gt;
&lt;br /&gt;
*Added: New weapon PPSh &lt;br /&gt;
*Added: New Weapon Tripmine &lt;br /&gt;
*Reworked: Hitsounds handled differently (No more netspam) &lt;br /&gt;
*Reworked: The bounding box code worked (This is different then ETPub and at least old NQ) &lt;br /&gt;
*Removed: Many Etpub related server cvars removed.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Banners&amp;diff=1274</id>
		<title>Silent Banners</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Banners&amp;diff=1274"/>
		<updated>2015-07-05T09:19:20Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Banners */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Banners ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Servers can be configured to show banners to players. The banners are defined in a separate configuration file. You can enable banners by setting g_banners to point to that file.  The maximum amount of banners is 32 and the maximum length of an individual banner is 255 characters.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
set g_banners &amp;quot;banners.cfg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The file consists of [banner] blocks (similar to shrubbot). A [banner] block adds a banner to the server banner queue.&lt;br /&gt;
&lt;br /&gt;
A [banner] block has the following fields:&lt;br /&gt;
&lt;br /&gt;
:[banner]&lt;br /&gt;
:message    = ^1Check out our banner!&lt;br /&gt;
:wait       = 30&lt;br /&gt;
:position   = bp&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;message&amp;quot; is the actual message that is displayed to all the players on the server. The &amp;quot;wait&amp;quot; field determines when the next banner will be displayed. Setting this to 30 means the next banner will show up 30 seconds after this banner. Setting the wait to 0 means the next banner will be displayed at the same moment as this one. This in combination with the &amp;quot;position&amp;quot; field that determines the position of the banner, allows the same text to be displayed at one time at multiple positions. The position field can use following values: &#039;&#039;&#039;&#039;&#039;chat&#039;&#039;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;&#039;cpm&#039;&#039;&#039;&#039;&#039; (popup), &#039;&#039;&#039;&#039;&#039;cp&#039;&#039;&#039;&#039;&#039; (center), &#039;&#039;&#039;&#039;&#039;bp&#039;&#039;&#039;&#039;&#039; (banner) or &#039;&#039;&#039;&#039;&#039;print&#039;&#039;&#039;&#039;&#039; (console).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In versions prior to 0.4.0, the &#039;&#039;g_banners&#039;&#039; is named as &#039;&#039;g_settings&#039;&#039;. The cvar name was changed in the 0.4.0 version because the file no longer contained anything else but banner blocks.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Installation&amp;diff=1273</id>
		<title>Silent Mod Installation</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Installation&amp;diff=1273"/>
		<updated>2015-06-07T12:44:57Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Omni-bots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installation Guide  =&lt;br /&gt;
&lt;br /&gt;
This document describes the installation of the silEnT mod to an already installed Enemy Territory server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Download silEnT =&lt;br /&gt;
&lt;br /&gt;
Download the latest copy of the silEnT mod from [http://mygamingtalk.com/forums/files/file/38-silent/ here]&lt;br /&gt;
&lt;br /&gt;
= Quick Install =&lt;br /&gt;
&lt;br /&gt;
== Rented Game Server Hosting ==&lt;br /&gt;
&lt;br /&gt;
1. Unzip the file on your local PC. &lt;br /&gt;
&lt;br /&gt;
2. Upload all the contens of &#039;&#039;silent&#039;&#039; folder to your server FTP next to etmain folder.&lt;br /&gt;
&lt;br /&gt;
3. Go to the game server control panel and change the fs_game setting to silent. Change the executed config to silent.cfg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== VPS and Dedicated Server with Shell Access ==&lt;br /&gt;
&lt;br /&gt;
1. Backup old etmain and silent folders if you have them but do not delete the etmain folder.&lt;br /&gt;
&lt;br /&gt;
2. Upload the silent.zip found from inside the silent-0.x.x.zip to the root of the ET installation. Next to etded.&lt;br /&gt;
&lt;br /&gt;
3. Unzip the silent.zip.&lt;br /&gt;
&lt;br /&gt;
4a. Start your Windows server with command line &amp;quot;etded +set dedicated 2 +set fs_game silent +exec silent.cfg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4b. Start your Linux server with command line &amp;quot;etded +set dedicated 2 +set fs_game silent +set fs_homepath /path/to/your/et/ +exec silent.cfg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Config Files =&lt;br /&gt;
&lt;br /&gt;
With silEnT mod there are many config files. Some of the config files are important to get the server running and fully operational. Other config files are only meant for customizing the server to your and your community&#039;s needs. Note, If you are experienced with configuring your own Enemy Territory servers, you can of course create your own config file structure. This document describes only what is available in the default installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== silent.cfg ==&lt;br /&gt;
&lt;br /&gt;
The silent.cfg will set all the settings for the Enemy Territory server and for the silEnT mod. This config file is large and also has lot of commenting. A comment is a descriptive text that comes after &amp;quot;//&amp;quot; sequence in the file. Notice that there is no space in between the two &amp;quot;/&amp;quot; characters. Infact, everything on a line after these characters is a comment. After all the settings are done, the config file executes objectivecycle.cfg. The objectivecycle config file will launch the mod and load the specified map. The cvars that are set inside this config file can be mostly found from the chapters [[Silent Mod Server Cvar|silEnT Mod Server Cvar]] and [[Generic Server Cvar|Generic Server Cvar]] and will not be handled in this document.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can place this file either in the etmain folder or in the silent folder. The etmain folder was chosen for the default installation based on the current practices of the time. However, do not place this file to both of the folders because that will make it harder to know which version is being executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the end of the config file you will find the following&lt;br /&gt;
{| style=&amp;quot;border: 1px dotted darkgrey; padding: 1em; background: #f9f9f9;&amp;quot;&lt;br /&gt;
| exec objectivecycle.cfg&lt;br /&gt;
|-&lt;br /&gt;
| set com_watchdog 60&lt;br /&gt;
|-&lt;br /&gt;
| set com_watchdog_cmd &amp;quot;exec objectivecycle.cfg&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first line executes the map rotation cfg of your server. This must be placed at the end of the config file because this config file will also launch the silEnT mod. There are certain settings that cannot be altered anymore after the mod is launched. Also, some settings such as g_XPSave should be set to the correct value. If the g_XPSave is 0 when the mod is launched and then set to the desired value. It will result all the players losing XP at every server start. You can create different map rotations and just change the config file name on this line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The second line sets the interval for the watchdog. The watchdog is an inbuilt feature of the engine which will automatically execute any specified command if the mod hangs for any reason. Reason can be a programming error in the mod or a configuration error in the server. The value is in seconds. In this case, if the mod will stop responding to the engine for 60 seconds, the engine will execute the command specified with com_watchdog_cmd.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The last line is the command the engine will execute when the watchdog time trigers. In this case it will execute the objectivecycle.cfg, which will restart the server.&lt;br /&gt;
&lt;br /&gt;
== objectivecycle.cfg ==&lt;br /&gt;
&lt;br /&gt;
This config file defines the map rotation on your server. The default content of the config file is&lt;br /&gt;
{| style=&amp;quot;border: 1px dotted darkgrey; padding: 1em; background: #f9f9f9;&amp;quot;&lt;br /&gt;
| set d1 &amp;quot;set g_gametype 2 ; map oasis ; set nextmap vstr d2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d2 &amp;quot;set g_gametype 2 ; map battery ; set nextmap vstr d3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d3 &amp;quot;set g_gametype 2 ; map goldrush ; set nextmap vstr d4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d4 &amp;quot;set g_gametype 2 ; map radar ; set nextmap vstr d5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d5 &amp;quot;set g_gametype 2 ; map railgun ; set nextmap vstr d6&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d6 &amp;quot;set g_gametype 2 ; map fueldump ; set nextmap vstr d1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| vstr d1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Commands used in the config file:&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;set&#039;&#039;&#039;&lt;br /&gt;
| This command sets the value of a cvar. If the cvar does not exist, the cvar will be created. Created cvars are custom cvars that do not mean anything to the mod or to the game. But they can be usefull for configuring the server. In this case the cvars from d1 to d6 are custom cvars.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;map&#039;&#039;&#039;&lt;br /&gt;
| This command starts the silEnT mod to play the specified map. The map name used with the command must be the raw bsp name of the map. For custom maps, you can find the map name by unzipping the pk3 file (pk3 files are infact just zipped files with changed file ending) and looking inside the maps folder.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;vstr&#039;&#039;&#039;&lt;br /&gt;
| This command expands the value of a cvar when executed. This feature is necessary to be able to create automatic map rotation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each lines that define cvars from d1 to d6 are infact one map. The g_gametype is set to objective, the map is launched and the inbuilt cvar nextmap is set to contain the vstr of the next map in the rotation. Note that the vstr is important here because it allows creating a loop in the nextmap rotating back to the beginning. Even without the loop, trying to expand the d1 to d6 by hand would not look good.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== mapvotecycle.cfg ==&lt;br /&gt;
&lt;br /&gt;
This config file is otherwise similar to the objectivecycle.cfg, except that it sets the g_gametype to 6. Which is the map voting game type. This cfg file is an alternative for the objectivecycle.cfg. Replacing the objectivecycle.cfg in the silent.cfg, you can easily change your server to map voting gametype.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== banners.cfg ==&lt;br /&gt;
&lt;br /&gt;
This config file is located in the silent folder. The config file is not required for your server to run, it is used only to create banners to your server. Detailed description how to configure banners and use this config file is found from the [[Silent Banners|Banners]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== shrubbot.cfg ==&lt;br /&gt;
&lt;br /&gt;
Finally, this config file is used to configure the admin levels of your server. Also, this file will store all the warnings, bans, subnet bans and custom commands you add to your server. Detailed description of the shrubbot.cfg can be found from the [[Silent Shrubbot|Shrubbot and User Database]]. Read the sub paragraph Shrubbot Files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Omni-bots =&lt;br /&gt;
&lt;br /&gt;
Omni-bots provide a method to the admins for adding artificial players to the server to fill the teams when there aren&#039;t much real players. The bots can be recognized from the real players in the score board from their flag if GeoIP is enabled and from &#039;-&#039; in the ping column.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The recommended version at the time of this writing for silEnT mod is 0.82. You can download it from [http://omni-bot.invisionzone.com/index.php?/files/ here]. The best place to find the installation instructions how to install the Omni-bot is the official [http://omni-bot.invisionzone.com/wiki/index.php?title=Main_Page#tab=Getting_started Wiki].&lt;br /&gt;
&lt;br /&gt;
Up to silEnT 0.8.2, some defected maps can cause the server to crash. The work around for these maps is to disable trip mines or Omni-Bots using map configs. Those maps are rare and can be identified from an &amp;quot;ERROR: No &#039;script_multiplayer&#039; found in map&amp;quot; entry in the server log.&lt;br /&gt;
&lt;br /&gt;
= Advanced =&lt;br /&gt;
&lt;br /&gt;
== Important Command Line Parameters ==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;fs_basepath&#039;&#039;&#039;&lt;br /&gt;
| This is the path to the installation of the Enemy Territory. From this path, the etded.x86/etded.exe is found.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;fs_homepath&#039;&#039;&#039;&lt;br /&gt;
| This is the path where the Enemy Territory will save your config files and downloaded pk3 files. For Linux server, this path is often manually set to the same location as the fs_basepath. In Windows, the fs_basepath and fs_homepath always point to the same location. For silEnT database, it is important that this is set so that the database path can be constructed to the valid location.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;fs_game&#039;&#039;&#039;&lt;br /&gt;
| This is the mod folder under the fs_basepath from where the mod files are loaded.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;dedicated&#039;&#039;&#039;&lt;br /&gt;
| This value tells the type of the server to spawn. Value 2 means dedicated internet server. Value 1 means dedicated LAN server.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;com_hunkMegs&#039;&#039;&#039;&lt;br /&gt;
| This value tells how much memory the spawned ET server should allocate for its use. Note that this value is latched and can not be changed when the server is running.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;net_ip&#039;&#039;&#039;&lt;br /&gt;
| This is the IP address of the server. If you don&#039;t set this value, it will be localhost by default. The difference between the localhost and defined IP address is that if this value is set to localhost, it will receive and send the game packets from all the interfaces of the server. And it will bind the game server port defined with net_port to all of these interfaces for the use of the game server. This affects your server if it has multiple interfaces with multiple IP addresses.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;net_port&#039;&#039;&#039;&lt;br /&gt;
| This is the port the game server uses to send and receive game packets. By default this is set to 27960 and if this port is not available, the server will attempt to find a free port stepping up one by one until it has failed with the port 27969. If you do set the port to a custom value that is not available, the same stepping will still happen starting from the port you defined.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* In linux, the fs_homepath is by default a hidden folder in the user home directory. If this path is not set to the server installation, the silEnT will not be able to function fully. This value is usually set to have the same value as the fs_basepath.&lt;br /&gt;
&lt;br /&gt;
* Often the default com_hunkMegs setting (56) is not enough for a customized server. Increase this value to avoid problems. We recommend either any value from 128M to 256M.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Installation&amp;diff=1272</id>
		<title>Silent Mod Installation</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Installation&amp;diff=1272"/>
		<updated>2015-06-01T20:02:37Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Omni-bots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installation Guide  =&lt;br /&gt;
&lt;br /&gt;
This document describes the installation of the silEnT mod to an already installed Enemy Territory server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Download silEnT =&lt;br /&gt;
&lt;br /&gt;
Download the latest copy of the silEnT mod from [http://mygamingtalk.com/forums/files/file/38-silent/ here]&lt;br /&gt;
&lt;br /&gt;
= Quick Install =&lt;br /&gt;
&lt;br /&gt;
== Rented Game Server Hosting ==&lt;br /&gt;
&lt;br /&gt;
1. Unzip the file on your local PC. &lt;br /&gt;
&lt;br /&gt;
2. Upload all the contens of &#039;&#039;silent&#039;&#039; folder to your server FTP next to etmain folder.&lt;br /&gt;
&lt;br /&gt;
3. Go to the game server control panel and change the fs_game setting to silent. Change the executed config to silent.cfg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== VPS and Dedicated Server with Shell Access ==&lt;br /&gt;
&lt;br /&gt;
1. Backup old etmain and silent folders if you have them but do not delete the etmain folder.&lt;br /&gt;
&lt;br /&gt;
2. Upload the silent.zip found from inside the silent-0.x.x.zip to the root of the ET installation. Next to etded.&lt;br /&gt;
&lt;br /&gt;
3. Unzip the silent.zip.&lt;br /&gt;
&lt;br /&gt;
4a. Start your Windows server with command line &amp;quot;etded +set dedicated 2 +set fs_game silent +exec silent.cfg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4b. Start your Linux server with command line &amp;quot;etded +set dedicated 2 +set fs_game silent +set fs_homepath /path/to/your/et/ +exec silent.cfg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Config Files =&lt;br /&gt;
&lt;br /&gt;
With silEnT mod there are many config files. Some of the config files are important to get the server running and fully operational. Other config files are only meant for customizing the server to your and your community&#039;s needs. Note, If you are experienced with configuring your own Enemy Territory servers, you can of course create your own config file structure. This document describes only what is available in the default installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== silent.cfg ==&lt;br /&gt;
&lt;br /&gt;
The silent.cfg will set all the settings for the Enemy Territory server and for the silEnT mod. This config file is large and also has lot of commenting. A comment is a descriptive text that comes after &amp;quot;//&amp;quot; sequence in the file. Notice that there is no space in between the two &amp;quot;/&amp;quot; characters. Infact, everything on a line after these characters is a comment. After all the settings are done, the config file executes objectivecycle.cfg. The objectivecycle config file will launch the mod and load the specified map. The cvars that are set inside this config file can be mostly found from the chapters [[Silent Mod Server Cvar|silEnT Mod Server Cvar]] and [[Generic Server Cvar|Generic Server Cvar]] and will not be handled in this document.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can place this file either in the etmain folder or in the silent folder. The etmain folder was chosen for the default installation based on the current practices of the time. However, do not place this file to both of the folders because that will make it harder to know which version is being executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the end of the config file you will find the following&lt;br /&gt;
{| style=&amp;quot;border: 1px dotted darkgrey; padding: 1em; background: #f9f9f9;&amp;quot;&lt;br /&gt;
| exec objectivecycle.cfg&lt;br /&gt;
|-&lt;br /&gt;
| set com_watchdog 60&lt;br /&gt;
|-&lt;br /&gt;
| set com_watchdog_cmd &amp;quot;exec objectivecycle.cfg&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first line executes the map rotation cfg of your server. This must be placed at the end of the config file because this config file will also launch the silEnT mod. There are certain settings that cannot be altered anymore after the mod is launched. Also, some settings such as g_XPSave should be set to the correct value. If the g_XPSave is 0 when the mod is launched and then set to the desired value. It will result all the players losing XP at every server start. You can create different map rotations and just change the config file name on this line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The second line sets the interval for the watchdog. The watchdog is an inbuilt feature of the engine which will automatically execute any specified command if the mod hangs for any reason. Reason can be a programming error in the mod or a configuration error in the server. The value is in seconds. In this case, if the mod will stop responding to the engine for 60 seconds, the engine will execute the command specified with com_watchdog_cmd.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The last line is the command the engine will execute when the watchdog time trigers. In this case it will execute the objectivecycle.cfg, which will restart the server.&lt;br /&gt;
&lt;br /&gt;
== objectivecycle.cfg ==&lt;br /&gt;
&lt;br /&gt;
This config file defines the map rotation on your server. The default content of the config file is&lt;br /&gt;
{| style=&amp;quot;border: 1px dotted darkgrey; padding: 1em; background: #f9f9f9;&amp;quot;&lt;br /&gt;
| set d1 &amp;quot;set g_gametype 2 ; map oasis ; set nextmap vstr d2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d2 &amp;quot;set g_gametype 2 ; map battery ; set nextmap vstr d3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d3 &amp;quot;set g_gametype 2 ; map goldrush ; set nextmap vstr d4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d4 &amp;quot;set g_gametype 2 ; map radar ; set nextmap vstr d5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d5 &amp;quot;set g_gametype 2 ; map railgun ; set nextmap vstr d6&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d6 &amp;quot;set g_gametype 2 ; map fueldump ; set nextmap vstr d1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| vstr d1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Commands used in the config file:&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;set&#039;&#039;&#039;&lt;br /&gt;
| This command sets the value of a cvar. If the cvar does not exist, the cvar will be created. Created cvars are custom cvars that do not mean anything to the mod or to the game. But they can be usefull for configuring the server. In this case the cvars from d1 to d6 are custom cvars.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;map&#039;&#039;&#039;&lt;br /&gt;
| This command starts the silEnT mod to play the specified map. The map name used with the command must be the raw bsp name of the map. For custom maps, you can find the map name by unzipping the pk3 file (pk3 files are infact just zipped files with changed file ending) and looking inside the maps folder.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;vstr&#039;&#039;&#039;&lt;br /&gt;
| This command expands the value of a cvar when executed. This feature is necessary to be able to create automatic map rotation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each lines that define cvars from d1 to d6 are infact one map. The g_gametype is set to objective, the map is launched and the inbuilt cvar nextmap is set to contain the vstr of the next map in the rotation. Note that the vstr is important here because it allows creating a loop in the nextmap rotating back to the beginning. Even without the loop, trying to expand the d1 to d6 by hand would not look good.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== mapvotecycle.cfg ==&lt;br /&gt;
&lt;br /&gt;
This config file is otherwise similar to the objectivecycle.cfg, except that it sets the g_gametype to 6. Which is the map voting game type. This cfg file is an alternative for the objectivecycle.cfg. Replacing the objectivecycle.cfg in the silent.cfg, you can easily change your server to map voting gametype.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== banners.cfg ==&lt;br /&gt;
&lt;br /&gt;
This config file is located in the silent folder. The config file is not required for your server to run, it is used only to create banners to your server. Detailed description how to configure banners and use this config file is found from the [[Silent Banners|Banners]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== shrubbot.cfg ==&lt;br /&gt;
&lt;br /&gt;
Finally, this config file is used to configure the admin levels of your server. Also, this file will store all the warnings, bans, subnet bans and custom commands you add to your server. Detailed description of the shrubbot.cfg can be found from the [[Silent Shrubbot|Shrubbot and User Database]]. Read the sub paragraph Shrubbot Files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Omni-bots =&lt;br /&gt;
&lt;br /&gt;
Omni-bots provide a method to the admins for adding artificial players to the server to fill the teams when there aren&#039;t much real players. The bots can be recognized from the real players in the score board from their flag if GeoIP is enabled and from &#039;-&#039; in the ping column.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The recommended version at the time of this writing for silEnT mod is 0.82. You can download it from [http://omni-bot.invisionzone.com/index.php?/files/ here]. The best place to find the installation instructions how to install the Omni-bot is the official [http://omni-bot.invisionzone.com/wiki/index.php?title=Main_Page#tab=Getting_started Wiki].&lt;br /&gt;
&lt;br /&gt;
Up to silEnT 0.8.2, some faulty maps can cause the server to crash. The work around for these maps is to disable trip mines on those or to disable Omni-Bots using map configs. Those maps are rare and can be identified from a &amp;quot;ERROR: No &#039;script_multiplayer&#039; found in map&amp;quot; entry in the server log.&lt;br /&gt;
&lt;br /&gt;
= Advanced =&lt;br /&gt;
&lt;br /&gt;
== Important Command Line Parameters ==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;fs_basepath&#039;&#039;&#039;&lt;br /&gt;
| This is the path to the installation of the Enemy Territory. From this path, the etded.x86/etded.exe is found.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;fs_homepath&#039;&#039;&#039;&lt;br /&gt;
| This is the path where the Enemy Territory will save your config files and downloaded pk3 files. For Linux server, this path is often manually set to the same location as the fs_basepath. In Windows, the fs_basepath and fs_homepath always point to the same location. For silEnT database, it is important that this is set so that the database path can be constructed to the valid location.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;fs_game&#039;&#039;&#039;&lt;br /&gt;
| This is the mod folder under the fs_basepath from where the mod files are loaded.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;dedicated&#039;&#039;&#039;&lt;br /&gt;
| This value tells the type of the server to spawn. Value 2 means dedicated internet server. Value 1 means dedicated LAN server.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;com_hunkMegs&#039;&#039;&#039;&lt;br /&gt;
| This value tells how much memory the spawned ET server should allocate for its use. Note that this value is latched and can not be changed when the server is running.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;net_ip&#039;&#039;&#039;&lt;br /&gt;
| This is the IP address of the server. If you don&#039;t set this value, it will be localhost by default. The difference between the localhost and defined IP address is that if this value is set to localhost, it will receive and send the game packets from all the interfaces of the server. And it will bind the game server port defined with net_port to all of these interfaces for the use of the game server. This affects your server if it has multiple interfaces with multiple IP addresses.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;net_port&#039;&#039;&#039;&lt;br /&gt;
| This is the port the game server uses to send and receive game packets. By default this is set to 27960 and if this port is not available, the server will attempt to find a free port stepping up one by one until it has failed with the port 27969. If you do set the port to a custom value that is not available, the same stepping will still happen starting from the port you defined.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* In linux, the fs_homepath is by default a hidden folder in the user home directory. If this path is not set to the server installation, the silEnT will not be able to function fully. This value is usually set to have the same value as the fs_basepath.&lt;br /&gt;
&lt;br /&gt;
* Often the default com_hunkMegs setting (56) is not enough for a customized server. Increase this value to avoid problems. We recommend either any value from 128M to 256M.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Installation&amp;diff=1271</id>
		<title>Silent Mod Installation</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Installation&amp;diff=1271"/>
		<updated>2015-06-01T11:27:31Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Omni-bots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installation Guide  =&lt;br /&gt;
&lt;br /&gt;
This document describes the installation of the silEnT mod to an already installed Enemy Territory server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Download silEnT =&lt;br /&gt;
&lt;br /&gt;
Download the latest copy of the silEnT mod from [http://mygamingtalk.com/forums/files/file/38-silent/ here]&lt;br /&gt;
&lt;br /&gt;
= Quick Install =&lt;br /&gt;
&lt;br /&gt;
== Rented Game Server Hosting ==&lt;br /&gt;
&lt;br /&gt;
1. Unzip the file on your local PC. &lt;br /&gt;
&lt;br /&gt;
2. Upload all the contens of &#039;&#039;silent&#039;&#039; folder to your server FTP next to etmain folder.&lt;br /&gt;
&lt;br /&gt;
3. Go to the game server control panel and change the fs_game setting to silent. Change the executed config to silent.cfg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== VPS and Dedicated Server with Shell Access ==&lt;br /&gt;
&lt;br /&gt;
1. Backup old etmain and silent folders if you have them but do not delete the etmain folder.&lt;br /&gt;
&lt;br /&gt;
2. Upload the silent.zip found from inside the silent-0.x.x.zip to the root of the ET installation. Next to etded.&lt;br /&gt;
&lt;br /&gt;
3. Unzip the silent.zip.&lt;br /&gt;
&lt;br /&gt;
4a. Start your Windows server with command line &amp;quot;etded +set dedicated 2 +set fs_game silent +exec silent.cfg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4b. Start your Linux server with command line &amp;quot;etded +set dedicated 2 +set fs_game silent +set fs_homepath /path/to/your/et/ +exec silent.cfg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Config Files =&lt;br /&gt;
&lt;br /&gt;
With silEnT mod there are many config files. Some of the config files are important to get the server running and fully operational. Other config files are only meant for customizing the server to your and your community&#039;s needs. Note, If you are experienced with configuring your own Enemy Territory servers, you can of course create your own config file structure. This document describes only what is available in the default installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== silent.cfg ==&lt;br /&gt;
&lt;br /&gt;
The silent.cfg will set all the settings for the Enemy Territory server and for the silEnT mod. This config file is large and also has lot of commenting. A comment is a descriptive text that comes after &amp;quot;//&amp;quot; sequence in the file. Notice that there is no space in between the two &amp;quot;/&amp;quot; characters. Infact, everything on a line after these characters is a comment. After all the settings are done, the config file executes objectivecycle.cfg. The objectivecycle config file will launch the mod and load the specified map. The cvars that are set inside this config file can be mostly found from the chapters [[Silent Mod Server Cvar|silEnT Mod Server Cvar]] and [[Generic Server Cvar|Generic Server Cvar]] and will not be handled in this document.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can place this file either in the etmain folder or in the silent folder. The etmain folder was chosen for the default installation based on the current practices of the time. However, do not place this file to both of the folders because that will make it harder to know which version is being executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the end of the config file you will find the following&lt;br /&gt;
{| style=&amp;quot;border: 1px dotted darkgrey; padding: 1em; background: #f9f9f9;&amp;quot;&lt;br /&gt;
| exec objectivecycle.cfg&lt;br /&gt;
|-&lt;br /&gt;
| set com_watchdog 60&lt;br /&gt;
|-&lt;br /&gt;
| set com_watchdog_cmd &amp;quot;exec objectivecycle.cfg&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first line executes the map rotation cfg of your server. This must be placed at the end of the config file because this config file will also launch the silEnT mod. There are certain settings that cannot be altered anymore after the mod is launched. Also, some settings such as g_XPSave should be set to the correct value. If the g_XPSave is 0 when the mod is launched and then set to the desired value. It will result all the players losing XP at every server start. You can create different map rotations and just change the config file name on this line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The second line sets the interval for the watchdog. The watchdog is an inbuilt feature of the engine which will automatically execute any specified command if the mod hangs for any reason. Reason can be a programming error in the mod or a configuration error in the server. The value is in seconds. In this case, if the mod will stop responding to the engine for 60 seconds, the engine will execute the command specified with com_watchdog_cmd.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The last line is the command the engine will execute when the watchdog time trigers. In this case it will execute the objectivecycle.cfg, which will restart the server.&lt;br /&gt;
&lt;br /&gt;
== objectivecycle.cfg ==&lt;br /&gt;
&lt;br /&gt;
This config file defines the map rotation on your server. The default content of the config file is&lt;br /&gt;
{| style=&amp;quot;border: 1px dotted darkgrey; padding: 1em; background: #f9f9f9;&amp;quot;&lt;br /&gt;
| set d1 &amp;quot;set g_gametype 2 ; map oasis ; set nextmap vstr d2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d2 &amp;quot;set g_gametype 2 ; map battery ; set nextmap vstr d3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d3 &amp;quot;set g_gametype 2 ; map goldrush ; set nextmap vstr d4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d4 &amp;quot;set g_gametype 2 ; map radar ; set nextmap vstr d5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d5 &amp;quot;set g_gametype 2 ; map railgun ; set nextmap vstr d6&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d6 &amp;quot;set g_gametype 2 ; map fueldump ; set nextmap vstr d1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| vstr d1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Commands used in the config file:&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;set&#039;&#039;&#039;&lt;br /&gt;
| This command sets the value of a cvar. If the cvar does not exist, the cvar will be created. Created cvars are custom cvars that do not mean anything to the mod or to the game. But they can be usefull for configuring the server. In this case the cvars from d1 to d6 are custom cvars.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;map&#039;&#039;&#039;&lt;br /&gt;
| This command starts the silEnT mod to play the specified map. The map name used with the command must be the raw bsp name of the map. For custom maps, you can find the map name by unzipping the pk3 file (pk3 files are infact just zipped files with changed file ending) and looking inside the maps folder.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;vstr&#039;&#039;&#039;&lt;br /&gt;
| This command expands the value of a cvar when executed. This feature is necessary to be able to create automatic map rotation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each lines that define cvars from d1 to d6 are infact one map. The g_gametype is set to objective, the map is launched and the inbuilt cvar nextmap is set to contain the vstr of the next map in the rotation. Note that the vstr is important here because it allows creating a loop in the nextmap rotating back to the beginning. Even without the loop, trying to expand the d1 to d6 by hand would not look good.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== mapvotecycle.cfg ==&lt;br /&gt;
&lt;br /&gt;
This config file is otherwise similar to the objectivecycle.cfg, except that it sets the g_gametype to 6. Which is the map voting game type. This cfg file is an alternative for the objectivecycle.cfg. Replacing the objectivecycle.cfg in the silent.cfg, you can easily change your server to map voting gametype.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== banners.cfg ==&lt;br /&gt;
&lt;br /&gt;
This config file is located in the silent folder. The config file is not required for your server to run, it is used only to create banners to your server. Detailed description how to configure banners and use this config file is found from the [[Silent Banners|Banners]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== shrubbot.cfg ==&lt;br /&gt;
&lt;br /&gt;
Finally, this config file is used to configure the admin levels of your server. Also, this file will store all the warnings, bans, subnet bans and custom commands you add to your server. Detailed description of the shrubbot.cfg can be found from the [[Silent Shrubbot|Shrubbot and User Database]]. Read the sub paragraph Shrubbot Files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Omni-bots =&lt;br /&gt;
&lt;br /&gt;
Omni-bots provide a method to the admins for adding artificial players to the server to fill the teams when there aren&#039;t much real players. The bots can be recognized from the real players in the score board from their flag if GeoIP is enabled and from &#039;-&#039; in the ping column.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The recommended version at the time of this writing for silEnT mod is 0.82. You can download it from [http://omni-bot.invisionzone.com/index.php?/files/ here]. The best place to find the installation instructions how to install the Omni-bot is the official [http://omni-bot.invisionzone.com/wiki/index.php?title=Main_Page#tab=Getting_started Wiki].&lt;br /&gt;
&lt;br /&gt;
In later versions there is a reported incompatibility with trip mines. With few maps, the server crashes if there are no omni-bot scripts for that map. Potential work around is to disable the trip mines for those maps or disabling the bots with map configs using /bot maxbots and /bot kickall commands.&lt;br /&gt;
&lt;br /&gt;
= Advanced =&lt;br /&gt;
&lt;br /&gt;
== Important Command Line Parameters ==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;fs_basepath&#039;&#039;&#039;&lt;br /&gt;
| This is the path to the installation of the Enemy Territory. From this path, the etded.x86/etded.exe is found.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;fs_homepath&#039;&#039;&#039;&lt;br /&gt;
| This is the path where the Enemy Territory will save your config files and downloaded pk3 files. For Linux server, this path is often manually set to the same location as the fs_basepath. In Windows, the fs_basepath and fs_homepath always point to the same location. For silEnT database, it is important that this is set so that the database path can be constructed to the valid location.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;fs_game&#039;&#039;&#039;&lt;br /&gt;
| This is the mod folder under the fs_basepath from where the mod files are loaded.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;dedicated&#039;&#039;&#039;&lt;br /&gt;
| This value tells the type of the server to spawn. Value 2 means dedicated internet server. Value 1 means dedicated LAN server.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;com_hunkMegs&#039;&#039;&#039;&lt;br /&gt;
| This value tells how much memory the spawned ET server should allocate for its use. Note that this value is latched and can not be changed when the server is running.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;net_ip&#039;&#039;&#039;&lt;br /&gt;
| This is the IP address of the server. If you don&#039;t set this value, it will be localhost by default. The difference between the localhost and defined IP address is that if this value is set to localhost, it will receive and send the game packets from all the interfaces of the server. And it will bind the game server port defined with net_port to all of these interfaces for the use of the game server. This affects your server if it has multiple interfaces with multiple IP addresses.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;net_port&#039;&#039;&#039;&lt;br /&gt;
| This is the port the game server uses to send and receive game packets. By default this is set to 27960 and if this port is not available, the server will attempt to find a free port stepping up one by one until it has failed with the port 27969. If you do set the port to a custom value that is not available, the same stepping will still happen starting from the port you defined.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* In linux, the fs_homepath is by default a hidden folder in the user home directory. If this path is not set to the server installation, the silEnT will not be able to function fully. This value is usually set to have the same value as the fs_basepath.&lt;br /&gt;
&lt;br /&gt;
* Often the default com_hunkMegs setting (56) is not enough for a customized server. Increase this value to avoid problems. We recommend either any value from 128M to 256M.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Installation&amp;diff=1270</id>
		<title>Silent Mod Installation</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Installation&amp;diff=1270"/>
		<updated>2015-06-01T11:21:31Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Omni-bots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installation Guide  =&lt;br /&gt;
&lt;br /&gt;
This document describes the installation of the silEnT mod to an already installed Enemy Territory server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Download silEnT =&lt;br /&gt;
&lt;br /&gt;
Download the latest copy of the silEnT mod from [http://mygamingtalk.com/forums/files/file/38-silent/ here]&lt;br /&gt;
&lt;br /&gt;
= Quick Install =&lt;br /&gt;
&lt;br /&gt;
== Rented Game Server Hosting ==&lt;br /&gt;
&lt;br /&gt;
1. Unzip the file on your local PC. &lt;br /&gt;
&lt;br /&gt;
2. Upload all the contens of &#039;&#039;silent&#039;&#039; folder to your server FTP next to etmain folder.&lt;br /&gt;
&lt;br /&gt;
3. Go to the game server control panel and change the fs_game setting to silent. Change the executed config to silent.cfg.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== VPS and Dedicated Server with Shell Access ==&lt;br /&gt;
&lt;br /&gt;
1. Backup old etmain and silent folders if you have them but do not delete the etmain folder.&lt;br /&gt;
&lt;br /&gt;
2. Upload the silent.zip found from inside the silent-0.x.x.zip to the root of the ET installation. Next to etded.&lt;br /&gt;
&lt;br /&gt;
3. Unzip the silent.zip.&lt;br /&gt;
&lt;br /&gt;
4a. Start your Windows server with command line &amp;quot;etded +set dedicated 2 +set fs_game silent +exec silent.cfg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4b. Start your Linux server with command line &amp;quot;etded +set dedicated 2 +set fs_game silent +set fs_homepath /path/to/your/et/ +exec silent.cfg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Config Files =&lt;br /&gt;
&lt;br /&gt;
With silEnT mod there are many config files. Some of the config files are important to get the server running and fully operational. Other config files are only meant for customizing the server to your and your community&#039;s needs. Note, If you are experienced with configuring your own Enemy Territory servers, you can of course create your own config file structure. This document describes only what is available in the default installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== silent.cfg ==&lt;br /&gt;
&lt;br /&gt;
The silent.cfg will set all the settings for the Enemy Territory server and for the silEnT mod. This config file is large and also has lot of commenting. A comment is a descriptive text that comes after &amp;quot;//&amp;quot; sequence in the file. Notice that there is no space in between the two &amp;quot;/&amp;quot; characters. Infact, everything on a line after these characters is a comment. After all the settings are done, the config file executes objectivecycle.cfg. The objectivecycle config file will launch the mod and load the specified map. The cvars that are set inside this config file can be mostly found from the chapters [[Silent Mod Server Cvar|silEnT Mod Server Cvar]] and [[Generic Server Cvar|Generic Server Cvar]] and will not be handled in this document.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can place this file either in the etmain folder or in the silent folder. The etmain folder was chosen for the default installation based on the current practices of the time. However, do not place this file to both of the folders because that will make it harder to know which version is being executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the end of the config file you will find the following&lt;br /&gt;
{| style=&amp;quot;border: 1px dotted darkgrey; padding: 1em; background: #f9f9f9;&amp;quot;&lt;br /&gt;
| exec objectivecycle.cfg&lt;br /&gt;
|-&lt;br /&gt;
| set com_watchdog 60&lt;br /&gt;
|-&lt;br /&gt;
| set com_watchdog_cmd &amp;quot;exec objectivecycle.cfg&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first line executes the map rotation cfg of your server. This must be placed at the end of the config file because this config file will also launch the silEnT mod. There are certain settings that cannot be altered anymore after the mod is launched. Also, some settings such as g_XPSave should be set to the correct value. If the g_XPSave is 0 when the mod is launched and then set to the desired value. It will result all the players losing XP at every server start. You can create different map rotations and just change the config file name on this line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The second line sets the interval for the watchdog. The watchdog is an inbuilt feature of the engine which will automatically execute any specified command if the mod hangs for any reason. Reason can be a programming error in the mod or a configuration error in the server. The value is in seconds. In this case, if the mod will stop responding to the engine for 60 seconds, the engine will execute the command specified with com_watchdog_cmd.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The last line is the command the engine will execute when the watchdog time trigers. In this case it will execute the objectivecycle.cfg, which will restart the server.&lt;br /&gt;
&lt;br /&gt;
== objectivecycle.cfg ==&lt;br /&gt;
&lt;br /&gt;
This config file defines the map rotation on your server. The default content of the config file is&lt;br /&gt;
{| style=&amp;quot;border: 1px dotted darkgrey; padding: 1em; background: #f9f9f9;&amp;quot;&lt;br /&gt;
| set d1 &amp;quot;set g_gametype 2 ; map oasis ; set nextmap vstr d2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d2 &amp;quot;set g_gametype 2 ; map battery ; set nextmap vstr d3&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d3 &amp;quot;set g_gametype 2 ; map goldrush ; set nextmap vstr d4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d4 &amp;quot;set g_gametype 2 ; map radar ; set nextmap vstr d5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d5 &amp;quot;set g_gametype 2 ; map railgun ; set nextmap vstr d6&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| set d6 &amp;quot;set g_gametype 2 ; map fueldump ; set nextmap vstr d1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| vstr d1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Commands used in the config file:&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;set&#039;&#039;&#039;&lt;br /&gt;
| This command sets the value of a cvar. If the cvar does not exist, the cvar will be created. Created cvars are custom cvars that do not mean anything to the mod or to the game. But they can be usefull for configuring the server. In this case the cvars from d1 to d6 are custom cvars.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;map&#039;&#039;&#039;&lt;br /&gt;
| This command starts the silEnT mod to play the specified map. The map name used with the command must be the raw bsp name of the map. For custom maps, you can find the map name by unzipping the pk3 file (pk3 files are infact just zipped files with changed file ending) and looking inside the maps folder.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;vstr&#039;&#039;&#039;&lt;br /&gt;
| This command expands the value of a cvar when executed. This feature is necessary to be able to create automatic map rotation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each lines that define cvars from d1 to d6 are infact one map. The g_gametype is set to objective, the map is launched and the inbuilt cvar nextmap is set to contain the vstr of the next map in the rotation. Note that the vstr is important here because it allows creating a loop in the nextmap rotating back to the beginning. Even without the loop, trying to expand the d1 to d6 by hand would not look good.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== mapvotecycle.cfg ==&lt;br /&gt;
&lt;br /&gt;
This config file is otherwise similar to the objectivecycle.cfg, except that it sets the g_gametype to 6. Which is the map voting game type. This cfg file is an alternative for the objectivecycle.cfg. Replacing the objectivecycle.cfg in the silent.cfg, you can easily change your server to map voting gametype.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== banners.cfg ==&lt;br /&gt;
&lt;br /&gt;
This config file is located in the silent folder. The config file is not required for your server to run, it is used only to create banners to your server. Detailed description how to configure banners and use this config file is found from the [[Silent Banners|Banners]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== shrubbot.cfg ==&lt;br /&gt;
&lt;br /&gt;
Finally, this config file is used to configure the admin levels of your server. Also, this file will store all the warnings, bans, subnet bans and custom commands you add to your server. Detailed description of the shrubbot.cfg can be found from the [[Silent Shrubbot|Shrubbot and User Database]]. Read the sub paragraph Shrubbot Files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Omni-bots =&lt;br /&gt;
&lt;br /&gt;
Omni-bots provide a method to the admins for adding artificial players to the server to fill the teams when there aren&#039;t much real players. The bots can be recognized from the real players in the score board from their flag if GeoIP is enabled and from &#039;-&#039; in the ping column.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The recommended version at the time of this writing for silEnT mod is 0.82. You can download it from [http://omni-bot.invisionzone.com/index.php?/files/ here]. The best place to find the installation instructions how to install the Omni-bot is the official [http://omni-bot.invisionzone.com/wiki/index.php?title=Main_Page#tab=Getting_started Wiki].&lt;br /&gt;
&lt;br /&gt;
In later versions there is a reported incompatibility with trip mines. With few maps, the server crashes if there are no omni-bot scripts for that map. Potential work around is to disable the trip mines for those maps.&lt;br /&gt;
&lt;br /&gt;
= Advanced =&lt;br /&gt;
&lt;br /&gt;
== Important Command Line Parameters ==&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;fs_basepath&#039;&#039;&#039;&lt;br /&gt;
| This is the path to the installation of the Enemy Territory. From this path, the etded.x86/etded.exe is found.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;fs_homepath&#039;&#039;&#039;&lt;br /&gt;
| This is the path where the Enemy Territory will save your config files and downloaded pk3 files. For Linux server, this path is often manually set to the same location as the fs_basepath. In Windows, the fs_basepath and fs_homepath always point to the same location. For silEnT database, it is important that this is set so that the database path can be constructed to the valid location.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;fs_game&#039;&#039;&#039;&lt;br /&gt;
| This is the mod folder under the fs_basepath from where the mod files are loaded.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;dedicated&#039;&#039;&#039;&lt;br /&gt;
| This value tells the type of the server to spawn. Value 2 means dedicated internet server. Value 1 means dedicated LAN server.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;com_hunkMegs&#039;&#039;&#039;&lt;br /&gt;
| This value tells how much memory the spawned ET server should allocate for its use. Note that this value is latched and can not be changed when the server is running.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;net_ip&#039;&#039;&#039;&lt;br /&gt;
| This is the IP address of the server. If you don&#039;t set this value, it will be localhost by default. The difference between the localhost and defined IP address is that if this value is set to localhost, it will receive and send the game packets from all the interfaces of the server. And it will bind the game server port defined with net_port to all of these interfaces for the use of the game server. This affects your server if it has multiple interfaces with multiple IP addresses.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &#039;&#039;&#039;net_port&#039;&#039;&#039;&lt;br /&gt;
| This is the port the game server uses to send and receive game packets. By default this is set to 27960 and if this port is not available, the server will attempt to find a free port stepping up one by one until it has failed with the port 27969. If you do set the port to a custom value that is not available, the same stepping will still happen starting from the port you defined.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* In linux, the fs_homepath is by default a hidden folder in the user home directory. If this path is not set to the server installation, the silEnT will not be able to function fully. This value is usually set to have the same value as the fs_basepath.&lt;br /&gt;
&lt;br /&gt;
* Often the default com_hunkMegs setting (56) is not enough for a customized server. Increase this value to avoid problems. We recommend either any value from 128M to 256M.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1259</id>
		<title>Silent Mod Server Cvar</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1259"/>
		<updated>2015-04-28T09:39:38Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* g_weapons */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= silEnT Mod Anti Cheat =&lt;br /&gt;
&lt;br /&gt;
== g_silentac ==&lt;br /&gt;
&lt;br /&gt;
;Description&lt;br /&gt;
Enables actions based on silEnT AntiCheat. The g_cheatLog will always have one line telling if a player is found with cheats. The cheat detection&#039;s are based mostly on heuristically detecting hacking techniques. If you suspect a false positive, please supply the silEnT team a method to reproduce it. Do note that this feature has been in extensive testing well before the 0.8.0 version. When silEnT AC is set to autoban busted players, sv_sac cvar auto changes it value to 1. sv_sac is read only variable. This cvar can be used by external server trackers to enable/disable server anti cheat status on their lists. We recommend setting the value to 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Show player AntiCheat status in the !finger output.&lt;br /&gt;
&lt;br /&gt;
2 Automatically ban players for 365 days with cheats.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
== g_clientBinaries ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
silEnT mod can be configured to not allow players with unknown client binaries to play on the server. This cvar controls the server behaviour when the client binary is not one of the recognized ones.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;List of recognized binaries:&#039;&#039;&#039;&lt;br /&gt;
*Official client binaries&lt;br /&gt;
*Binary edited executables from etmaster.net&lt;br /&gt;
*Equivalent to etmaster.net binary edited executables from BigBear&lt;br /&gt;
*ETPatchSelector binaries&lt;br /&gt;
*Official ET Legacy b4&lt;br /&gt;
*Official ET Legacy b5&lt;br /&gt;
*Many ET Legacy binaries including RC1 versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow players with unknown client executables.&amp;lt;br&amp;gt;&lt;br /&gt;
2	Log unknown executables to the g_cheatLog. Note, if the server does not allow unknown client binaries the log message will be different for message.&amp;lt;br&amp;gt;&lt;br /&gt;
4	Report unknown executables to admin chat. Note, if the server does not allow unknown client binaries the players will not be reported to admin chat.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - If the flag 4 is set, known cheat binaries are clearly reported to the admin chat.&lt;br /&gt;
&lt;br /&gt;
== g_identOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from version 0.3.0, the silEnT mod can be configured to enforce bans using hardware based identification. This is not any fool proof system but it is made to be an addition to the already existing ban methods. The hardware identification cannot be seen in human readable form by admins while on the server. The data that is sent to the server can be seen in the client by writing /cg_ident to the console. The result is a hexadecimal string that changes its value between maps. The format and data used to create the client identification may change between different versions of the silEnT mod. The server can be configured with the g_identOptions server cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Kick clients that are spoofing the client identification to enter the server&lt;br /&gt;
&lt;br /&gt;
2	Kick clients that are not sending the identification to the server&lt;br /&gt;
&lt;br /&gt;
4	Enforce bans using the identification&lt;br /&gt;
&lt;br /&gt;
8	Report all actions taken based on client identification to the adminchat&lt;br /&gt;
&lt;br /&gt;
16	If a player is caught of circumventing a ban, a new ban is created with for it. The ban reason will have additional (Automated copy of a ban for xxxxxxxx) where xxxxxxxx is replaced with the 8 character PB GUID of the old ban.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Announcements and Messages =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_privateMessages ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If set to 1, players can send private messages to one another with the /m playername/slot command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disable Private Messages&lt;br /&gt;
&lt;br /&gt;
1 Enable Private messages&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Clients can reject private message from other individual clients with the /ignore client command. Also, private messages can be disabled from individuals/levels using shrubbot flag &#039;/&#039;.&lt;br /&gt;
&lt;br /&gt;
== g_spreeOptions  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Options to control the display of killingsprees. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: bitmask &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Enable killingsprees &lt;br /&gt;
&lt;br /&gt;
2 Enable killingspree ends &lt;br /&gt;
&lt;br /&gt;
4 Enable multikills &lt;br /&gt;
&lt;br /&gt;
8 When set, a top 3 current killing sprees message will be printed every minute, similar to binoc masters, and a map&#039;s longest killing spree will be printed every two minutes &lt;br /&gt;
&lt;br /&gt;
16 At the beginning of the intermission the highest spree and the 3 highest sprees which are still active will be shown &lt;br /&gt;
&lt;br /&gt;
32 /kill will end a spree &lt;br /&gt;
&lt;br /&gt;
64 Teamswitching will end a spree &lt;br /&gt;
&lt;br /&gt;
128 Multikill messages will be delayed g_multikillTime milliseconds, to prevent the doublekill -&amp;amp;gt; multikill -&amp;amp;gt; megakill -&amp;amp;gt; etc. flooding &lt;br /&gt;
&lt;br /&gt;
256 Killing bots doesn&#039;t count for multikills or killingsprees (Note: they DO count for ending kill/deathsprees) &lt;br /&gt;
&lt;br /&gt;
512 Display the map and overall spree record when entering intmission &lt;br /&gt;
&lt;br /&gt;
1024 Summary: don&#039;t enable this flag if you don&#039;t have enabled g_spreeOptions flag 512 OR g_XPSave flag 16 or Shrubbot flag t &lt;br /&gt;
&lt;br /&gt;
Spree records are automatically saved into XPSave file when a map ends. By enabling this flag, you also store the spreerecord at the points where g_XPSave flag 16 would store XP. When you don&#039;t have set XPSave flag 16 and g_spreeOptions flag 512 and not allow users to use&amp;amp;nbsp;!spreerecord you should NOT set this flag as it takes some extra resources. When XPSave flag 16 is set this doesn&#039;t matter (it actually takes much less resources then). When only g_spreeOptions flag 512 or shrubbot flag t is set it won&#039;t do much harm anyway (your server won&#039;t explode) &lt;br /&gt;
&lt;br /&gt;
2048 Enable revivesprees&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_multikillTime  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The time (in milliseconds) in which two kills should be made in order to count them as multikills.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_obituary  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This cvar controls will the server send obituary events to the clients. If this is set to 0, no obituary events will be sent. If set to any nonzero value, obituary events will be sent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dropMsg  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Message to add to the drop screen when a client is kicked or banned.&amp;amp;nbsp;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;&amp;amp;nbsp;String&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot; &amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; g_dropMsg&amp;amp;nbsp;&amp;quot;Please protest ban on forums&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_landmineNotifyType  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Decide which landmine reveal notifications server should send.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Server can send two types of landmines reveal notification. Standard one, generated (sent) for each landmine revealed and summary one,&amp;amp;nbsp;which is sent after player spotting landmines stops using binoculars.&amp;amp;nbsp;It&#039;s generated after each binculars zoom. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
0 Only standard notfications (for each landmine revealed).&lt;br /&gt;
&lt;br /&gt;
1 Only single summary notifications for one binocs zoom. New type of notification. For example: during one binocs zoom, 3 mines were revealed, but only 1 summary notification is sent. It contains information: 3 mines spotted by &amp;quot;player name&amp;quot; and last one was in location &amp;quot;some location&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t send any landmine notifications.&lt;br /&gt;
&lt;br /&gt;
3 Send all notifications. For example: for 3 spotted landmines send 4 notifications (3 for each landmine + 1 summary notification). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_banners  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should be set to the name of your banners.cfg file if you want to enable banners. See [[Silent Banners]] for more information about this file.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&amp;lt;br&amp;gt;set g_banners &amp;quot;banners.cfg&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== g_recognition ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables additional recognition notifications for players doing objective, e.g. for planting dynamite, disarming it, destroying objective.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Additional recognition notifications disabled.&lt;br /&gt;
&lt;br /&gt;
1 Additional recognition notifications enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= User Database, Shrubbot and Bans =&lt;br /&gt;
&lt;br /&gt;
== g_dbDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, the server stores various information about server statistics, map information, sprees, users, bans and XP save to the location pointed by this cvar. The directory defined by this cvar is relative to the fs_game directory. Absolute paths can not be used. All the used file names in the g_dbDirectory are predefined, and cannot be changed. For security reasons, this cvar must be set during server initialization. (i.e. It can not be changed while the server is running.) The following files are stored into this directory:&lt;br /&gt;
&lt;br /&gt;
* userdb.db - This is a binary format file that contains all the basic information about shrubbot users and also all saved XP if the server is set to save XP&lt;br /&gt;
* userxdb.db - This is a binary format file that contains information related to players playing on the server&lt;br /&gt;
* useradb.db - This is a binary format file that contains player aliases.&lt;br /&gt;
* serverstat.cfg; This is a human readable file that contain server statistics and map sprees if the server is set to store them&lt;br /&gt;
* shrubbot.cfg - This is a human readable file that contain level configurations, custom commands and bans. This file is auto-created if it does not exist and used functionality requires it, but admins usually to edit this file for the configuration of their server.&lt;br /&gt;
* mapvoteinfo.cfg - This file contains information relating g_gametype 6, which is map voting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the required files will be created automatically to the directory when needed if the files don&#039;t already exist. silEnT mod will not overwrite userdb.db, userxdb.db or useradb.db files if files with those names exist, but the files are not suitable for use. In such case, the server log will have information about the failure to open the file and features requiring the missing files are disabled.&lt;br /&gt;
&lt;br /&gt;
You can freely edit the human readable files by hand as long as their correct format remains. The shrubbot.cfg can be edited even while the server is running as long as the !readconfig shrubbot command is run before the map changes. Otherwise the changes to the file will be lost. If you want to hand edit the contents of the serverstat.cfg or mapvoteinfo.cfg files, the server must be shutdown to not lose the changes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;database&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar from the config file only during the server start, or alternatively from the server start command parameters. It cannot be changed using RCON. If you want to store all the files in the same root directory where all the pk3 files and binaries are, you can set this cvar to value &amp;quot;.&amp;quot;. It will then use the fs_game directory.&lt;br /&gt;
&lt;br /&gt;
== g_dbUserMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that player is saved to the database since the player has last visited on the server.&lt;br /&gt;
&lt;br /&gt;
The database cleaning is done during intermission so this should not cause any performance problems when actions are taken. However, by setting this value to 0 or not setting the value at all, will disable the feature.&lt;br /&gt;
For servers with high database sizes, this can improve performance since users that are not needed will be removed automatically.&lt;br /&gt;
&lt;br /&gt;
You can use a modifiers with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar only from the config file executed before the mod launches the first time or from the command line. It cannot be edited using RCON.&lt;br /&gt;
&lt;br /&gt;
== g_dbMaxAliases ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The silEnT mod can store player aliases in an additional database. To enable this database, set this value to higher then 0. If this value is a positive integer, it defines how many aliases are stored in the database for one player. If the player has more aliases then this value, the oldest aliases are deleted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minumum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar can be set only at startup, before the mod launches. It cannot be changed on a live server using rcon.&lt;br /&gt;
&lt;br /&gt;
== g_minCommandWaitTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Time you have to wait between using 2 shrubbot commands in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tyranny ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls the use of administrator commands that could be used by admins to cheat or abuse players. If it is set to 0 you will not be able to use commands on your server such as !gib, !slap, !burn, etc.&lt;br /&gt;
&lt;br /&gt;
Also, you will not be able to use g_logOptions flag 256 (log private messages) unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
g_tyranny must also be enabled in order to specify a client in using the &#039;playsound&#039; server command.&lt;br /&gt;
&lt;br /&gt;
&#039;g_tyranny&#039; and its value appear in the serverInfo string to serve as a warning for perspective players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you enable this, you MUST do so immediately when the server starts (before the first map is loaded). This means putting &amp;quot;set g_tyranny 1&amp;quot; in the .cfg file that is exec&#039;ed on server start. If you try to change this on a running server, you will get the message &amp;quot;g_tyranny is read only.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_warningOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar changes the behaviour of the shrubbot !warn command. By setting flag 1 or 2 you activate the advanced warning (storage) system&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Link stored warnings to the guid of a player&lt;br /&gt;
&lt;br /&gt;
2	Link stored warnings to the ip of the player&lt;br /&gt;
&lt;br /&gt;
4	Remove the oldest warning when the total maximum ammount of warnings is reached&lt;br /&gt;
&lt;br /&gt;
8	Auto-kick a player for 2 minutes when he has more than g_maxWarnings warnings&lt;br /&gt;
&lt;br /&gt;
16	Allow clients to see their own warnings with the /warnings command&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarnings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The ammount of warnings that can be stored for 1 player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_warningDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in hours that a warning will be stored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 24&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBan ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, anyone kicked for the reasons you specify, will be temporarily banned for g_autoTempBanTime seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Tempban when reaching g_teamDamageRestriction&lt;br /&gt;
&lt;br /&gt;
2	Tempban when someone is kicked by a shrubbot admin (using the !kick command). A normal shrubbot !kick kicks for 120 seconds&lt;br /&gt;
&lt;br /&gt;
4	Tempban when someone is kicked by the advanced warning system. A normal kick by the warning system lasts 120 seconds&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifically in version 0.5.0, this feature is bugged and can cause broken shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBanTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds kicked for when g_autoTempBan is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1800&lt;br /&gt;
&lt;br /&gt;
== g_minConnectLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The minimum shrubbot adminlevel required for players to be able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This only works for positive levels, any value &amp;lt;= 0 will allow everyone to connect. Bots won&#039;t be able to connect either.&lt;br /&gt;
&lt;br /&gt;
== g_greetingPos ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Location where the shrubbot greetings are displayed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3|4]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Chat area&lt;br /&gt;
&lt;br /&gt;
1	Center of screen&lt;br /&gt;
&lt;br /&gt;
2	Left notification area&lt;br /&gt;
&lt;br /&gt;
3	Top of the screen&lt;br /&gt;
&lt;br /&gt;
4	Console only&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adminProtection ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins levels can be protected against spoofing. The protection works by establishing trust between the client and the server. The trust must be confirmed by an online human admin for the new trusted admins to gain access to their assigned level. Specific command !confirm is used for it. Do note that establishing the trust between the server and the player is not the same as assigning admin level. In fact, anyone who is capable of recognizing the real admin can be safely allowed to use the !confirm command. The !setlevel command will automatically establish the trust if the admin level protection is enabled and the level is above or equal to the g_protectMinLevel. The admin protection is designed so that only the important admin levels are protected. This mean that levels above the g_protectMinLevel require established trust between the server and the client. Normal guests do not need this. It is also advisable to not set the g_protectMinLevel too low to avoid server load with these admins.&lt;br /&gt;
&lt;br /&gt;
The trust needs to be established only once. After that, the client and the server can negotiate the confirmation silently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technical Details:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The trust is established using one-way hashes. When the !setlevel or !confirm is used on a player, the server generates 2 unique 32 character long values. Both of these values are stored both in the client (silent.dat) and the server database. Their meanings are server identification and a client key.&lt;br /&gt;
&lt;br /&gt;
Authentication negotiation:&lt;br /&gt;
&lt;br /&gt;
1. When the player next time connects to the server, the server sends one of the stored values as server identification and another, newly generated random 32 character value, to initiate the negotiation.&lt;br /&gt;
&lt;br /&gt;
2. The client will use the server identification value it received from the server to match with the key value associated with the server identification. It will hash the 32 character key value with the supplied random 32 character value and send the result back to the server.&lt;br /&gt;
&lt;br /&gt;
3. The server, knowing both values, the client key and the random character string it sent, can compare the hash against a hash it generates itself with the same values.&lt;br /&gt;
&lt;br /&gt;
4. If the hashes match (one supplied from client and the one it just generated), the client is authenticated to his admin level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Log succesfull authentications to the cheat log&lt;br /&gt;
&lt;br /&gt;
2	Log admin spoofing attempts to the cheat log&lt;br /&gt;
&lt;br /&gt;
4	Report admins waiting for confirmation on their level to the admin chat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_protectMinLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins can be protected against spoofing. The protection works by establishing trust between the client and the server if the admin level is higher then the g_protectMinLevel. Setting this to -1 will disable the freature. Do note that when you enable the feature, noone has yet established trust with the server and the first one to have it, must be confirmed by an rcon command. Either !setlevel if the database still doesn&#039;t have admins or !confirm if the admin has been set in the database already.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_muteRename ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to 1 the muted player won&#039;t be allowed to change his name while he is muted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Disabled. Allow players to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow player to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimium required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
= XP Save =&lt;br /&gt;
&lt;br /&gt;
== g_XPSave ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls XP save behaviours.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Store xp when a client disconnects. This is always required for the XP save to work.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t reset xp to the pre-map start values on a map restart, shuffle, etc.&lt;br /&gt;
&lt;br /&gt;
4 Never reset xp (ever).&lt;br /&gt;
&lt;br /&gt;
8 Force the disconnection of clients with the same GUID as the connecting client. This is useful in saving the stored XP of players with unreliable network connections since they should still get their stored XP even if reconnecting immediately with a new IP address.&lt;br /&gt;
This feature is enabled by default unless you have sv_wwwDlDisconnected enabled. sv_wwwDlDisconnected seems to interfere with this feature, so do not enable this flag if you change pk3&#039;s on your server often because stored XP will be lost over disconnected downloads.&lt;br /&gt;
&lt;br /&gt;
16 Store the XP at restarts, nextmaps, mapvotes, campaignvotes and similar cases.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge_xp ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her xp skills. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;120m&amp;quot; - 120 minutes &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If g_XPSaveMaxAge is less than g_XPSaveMaxAge_xp, g_XPSaveMaxAge will be used.&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her skills/killrating/playerrating/mute status. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier for this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See also g_XPSaveMaxAge_xp &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1w&lt;br /&gt;
&lt;br /&gt;
== g_resetXPMapCount  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How many maps occur before XP is reset. If g_XPSave flag 4 is set, g_resetXPMapCount is ignored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting is only valid when the g_gametype is 6 (see Map Voting)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMinXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The increment of XP during one map that is required for the XP gained during the map to get saved and the time of the latest XP save to get updated. The silEnT mod separates the XP save and the connection times so that players who visit spectators without playing will not be removed by the g_dbUserMaxAge but can still lose their stored XP if they do not play. Admins can adjust the requirement with this value. Using -1 will disable the requirement and XP save will consider every connection valid for the XP save. Using value 0, will consider XP save valid if the player has gained even 1 XP point during the map. Please note that the value is only for one map and using high values may cause some players to not achieve enough XP to get their XP updated. Also note, that this does not prevent SMG weapon statistics or rating values to get updated into the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_maxXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a vicious cvar that will reset a players XP once their overall XP score reaches it.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_maxXPResetWarn ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Displays a message warning players whose XP is close to being reset due to the g_maxXP setting. The warning is displayed every thirty seconds once the warning threshold is passed.&lt;br /&gt;
&lt;br /&gt;
This setting can have an integer value (eg, 950), in which case it means that the player will be warned every thirty seconds once he has more than 950 XP.&lt;br /&gt;
&lt;br /&gt;
This setting can also have percentage value (eg, &amp;quot;90%&amp;quot;), and that will cause the warnings to start when the player reaches 90% of g_maxXP XP.&lt;br /&gt;
&lt;br /&gt;
If you specify a negative value, players will be warned when that offset is hit. For example:&lt;br /&gt;
&lt;br /&gt;
For a value of -75, warnings will to display then players have g_maxXP - 75 XP&lt;br /&gt;
&lt;br /&gt;
For a value of -2%, warnings will display when players have 98% of g_maxXP&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optionally enables the awarding of XP based upon the amount of damage a player has done to the opposing team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disabled: use normal ET XP awarding methods&lt;br /&gt;
&lt;br /&gt;
1 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the skill category of the weapon used. When this mode is enabled, kills (regardless of method) are awarded a fixed value of 1 point of XP.&lt;br /&gt;
&lt;br /&gt;
2 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the Battle Sense category. Normal XP amounts are awarded for kills (typically 3-5 XP).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXPLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting determines the amount of damage that a player must do to earn 1 point of XP. See g_damageXP for additional information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_XPDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a bitmask that controls the XP decay feature.&lt;br /&gt;
&lt;br /&gt;
See also g_XPDecayRate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Enable XP Decay&lt;br /&gt;
&lt;br /&gt;
2	Do not decay a player&#039;s XP when they are disconnected from the server&lt;br /&gt;
&lt;br /&gt;
4	Do not decay a player&#039;s XP for the class they are currently playing as (e.g. Medic).&lt;br /&gt;
&lt;br /&gt;
8	Do not decay a player&#039;s XP while they are spectating&lt;br /&gt;
&lt;br /&gt;
16	Do not decay a player&#039;s XP during warmup/intermission&lt;br /&gt;
&lt;br /&gt;
32	Do not decay a player&#039;s XP when he/she is playing. This means that they are on a Allies or Axis and the game is active.&lt;br /&gt;
&lt;br /&gt;
64	Do not decay a player&#039;s Battle Sense XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
128	Do not decay a player&#039;s Light Weapons XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayRate ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the rate (in skillpoints per second) that XP skill points for each skill will decay when g_XPDecay is enabled.&lt;br /&gt;
&lt;br /&gt;
Setting this to 0.1 would result in a player losing 6 points per minute IN ALL SKILLS, so up to 42XP per minute if the player has skill points for each skill.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;5000/o&amp;quot; - Decay 5000xp per skill per month&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;1000/w&amp;quot; - Decay 1000xp per skill per week&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;500/d&amp;quot; - Decay 500xp per skill per day&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;40/h&amp;quot; - Decay 40xp per skill per hour&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;2/m&amp;quot; - Decay 2xp per skill per minute &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayFloor ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the minimum that any particular skill can be reduced to by g_XPDecay.&lt;br /&gt;
&lt;br /&gt;
For example, setting this to 140.0 will ensure that no player will ever lose rank or skill levels due to g_XPDecay. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flood Protection = &lt;br /&gt;
&lt;br /&gt;
== g_floodprotect  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable/disable silEnT flood protect. Flooding means that a client is sending too many messages to the server (vsays, callvotes, etc...). Enabling g_floodprotect disables the engine&#039;s sv_floodprotect functionality. If you enable g_floodprotect, make sure you set a value for g_floodthreshold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&amp;amp;nbsp;&#039;&#039;&#039;1&lt;br /&gt;
&lt;br /&gt;
== g_floodthreshold  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of messages per second before ignoring the client&#039;s messages. Only in effect when g_floodprotect is turned on.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
== g_floodWait  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of milliseconds between two messages when g_floodprotect is enabled. This is a hard limit so admins aren&#039;t allowed to override it. 1000 milliseconds copies sv_floodprotect behaviour. This CVAR should not have a value below 500 in order to keep a public server playable.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_voiceChatsAllowed  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of voicechats allowed in minute.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Player Statistics, Rating and Team Balance =&lt;br /&gt;
&lt;br /&gt;
== g_stats  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a bitflag cvar used to control the way statistics are handled.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&amp;lt;br&amp;gt;1 When shooting a corpse to gib, do not count it as a hit.&amp;lt;br&amp;gt;2 When shooting a corpse to gib, do not count it as a shot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;amp;nbsp;Set this to 3 to use the behaviour of etmain and shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_playerRating_minplayers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of players that must participate in a map in order for it to count towards each player&#039;s player rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 8&lt;br /&gt;
&lt;br /&gt;
== g_shuffle_rating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the rating system used by shuffle.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 | 4 | 5 ]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player XP&amp;lt;br&amp;gt;2 Use the rate at which players have gained XP since connecting.&amp;lt;br&amp;gt;3 Use the killRating (g_killRating must be nonzero)&amp;lt;br&amp;gt;4 Use the playerRating (g_playerRating must be nonzero)&amp;lt;br&amp;gt;5 Use the playerRating (g_playerRating must be nonzero), but take the map into account and give the teams closest to 50/50&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_killRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to 0, silEnT will track a player&#039;s killing ability using an ELO type statistic similar to chess. Each kill will increase a player&#039;s kill rating based on how hard the kill was. Killing unskilled players will result in very few points whereas an unskilled player killing a skilled player will result in more points.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use kill rating. A dummy flag since any non-zero value for g_killRating will enable it.&amp;lt;br&amp;gt;2 Make kill rating visible. Players can use /killrating and at the end of each map a message will display the top killers for the map and overall.&amp;lt;br&amp;gt;4 Log files will include the GUIDs of the players involved in kills. This makes kill tracking a lot easier.&amp;lt;br&amp;gt;8 Disable kill rating from the score board. This can prevent players from playing for higher kill rating alone. This does not prevent the &amp;quot;killrating&amp;quot; client command enabled with flag 2 from working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_playerRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to non zero positive value, silEnT will track a player&#039;s ability to win against good teams using an ELO type statistic similar to chess. Each win will increase a player&#039;s rating based on how hard the opposing team was. Skilled teams defeating less skilled teams will result in very few points whereas an relatively low- rated team defeating a good team will result in more points. Player rating also takes into account the number of players on each team (less points when a very large defeats a small one) and which side tends to win more often on the current map (e.g. Allies tend to win tc_base).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player rating. A dummy flag since any non-zero value for g_playerRating will enable it.&amp;lt;br&amp;gt;2 Make player rating visible. Players can use /playerrating and at the end of each map a message will display the top player.&amp;lt;br&amp;gt;4 Put player rating on the scoreboard instead of the XP.&amp;lt;br&amp;gt;8 Print out extra info at the end of a round that can be used to further refine the playerrating model.&amp;lt;br&amp;gt;16 The same as flag 8 except a lot more info is output.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamDiff  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If g_teamForceBalance is set, setting g_unevenTeamDiff will notify all players when team numbers are off by g_unevenTeamDiff or more. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamFreq&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;: Set to 0 to disable this feature&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamFreq  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How often the team disparity notification occurs. Only valid when g_unevenTeamDiff is set to a positive value. Value is in seconds.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamDiff&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
= Class and Weapon Restrictions =&lt;br /&gt;
&lt;br /&gt;
== g_medicChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the medic charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 45000&lt;br /&gt;
&lt;br /&gt;
== g_engineerChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the engineer charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== g_LTChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the field ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 40000&lt;br /&gt;
&lt;br /&gt;
== g_soldierChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the soldier charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20000&lt;br /&gt;
&lt;br /&gt;
== g_covertopsChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the covert ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== team_maxPanzers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxPanzers, team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 panzerfaust soldiers, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team with few players (for example, 5) will be able to have 1 panzerfaust soldier. They will be able to have their second panzerfaust soldier when they have 11 players on the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team will not be able to have any panzerfaust soldiers until there are 10 players in the team. They will be able to have their second panzerfaust soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMortars  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 mortar soldiers, regardless of how many players are on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team with few players (for example, 5) will be able to have 1 mortar soldier. They will be able to have their second mortar soldier when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team will not be able to have any mortar soldiers until there are 10 players in the team. They will be able to have their second mortar soldier when there are 20 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Set this to -1 to disable limits&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFlamers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 flamethrower soldiers, regardless of how many players are on the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team with too few players (for example, 5) will be able to have 1 flamethrowe soldier. They will be able to have their second flamethrowe soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team will not be able to have any flamethrower soldiers until there are 10 players in the team. They will be able to have their second flamethrower when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMG42s  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 MG42 soldiers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team with too few players (for example, 5) will be able to have 1 MG42 soldier. They will be able to have their second MG42 soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team will not be able to have any MG42 soldiers until there are 10 players in the team. They will be able to have their second MG42 soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxGrenLaunchers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 grenade launchers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team with too few players (for example, 5) will be able to have 1 grenade launcher. They will be able to have their second grenade launcher when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team will not be able to have any grenade launchers until there are 10 players in the team. They will be able to have their second grenade launcher when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMedics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 medics, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team with too few players (for example, 3) will be able to have 1 medic. They will be able to have their second medic when they have 7 players in the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team will not be able to have medics until there are 7 players in the team. They will be able to have their second medic when there are 14 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxEngineers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 engineers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team with too few players (for example, 3) will be able to have 1 engineer. They will be able to have their second engineer when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team will not be able to have engineers until there are 7 players in the team. They will be able to have their second engineer when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFieldOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 field opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team with too few players (for example, 3) will be able to have 1 field ops. They will be able to have their second field ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team will not be able to have field opses until there are 7 players in the team. They will be able to have their second field ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxCovertOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 covert opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as coert opses, and a team with too few players (for example, 3) will be able to have 1 covert ops. They will be able to have their second covert ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as covert opses, and a team will not be able to have covert opses until there are 7 players in the team. They will be able to have their second covert ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_minAirstrikeTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airstrikes PER TEAM.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_minArtyTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airtillery strikes PER TEAM. Attempts to do airstrike before the timeout will get &amp;quot;Insuffient fire support&amp;quot; message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamLandmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of landmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamTripmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of tripmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_minGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of clients needed to start a match.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The maximum allowed amount of active clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Player Inactivity =&lt;br /&gt;
&lt;br /&gt;
== g_inactivity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity before the player is made a spectator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_spectatorInactivity==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity as spectator before the player is kicked/dropped from server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_inactivityOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional inactivity options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Don&#039;t drop shoutcasters&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t drop spectators when in following mode&lt;br /&gt;
&lt;br /&gt;
4 ETmain inactivity behavior (don&#039;t wait for a full server)&lt;br /&gt;
&lt;br /&gt;
8 Shrubbot flag &#039;0&#039; admins will be moved to spectators due to team inactivity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Gametypes =&lt;br /&gt;
&lt;br /&gt;
== g_gametype	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please see Map Voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [2|3|4|5|6|7]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
2 Objective&lt;br /&gt;
&lt;br /&gt;
3 Stopwatch&lt;br /&gt;
&lt;br /&gt;
4 Campaign&lt;br /&gt;
&lt;br /&gt;
5 Last Man Standing&lt;br /&gt;
&lt;br /&gt;
6 Map Voting&lt;br /&gt;
&lt;br /&gt;
7 Team Death Match&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== Campaign ==&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
&lt;br /&gt;
== Last Man Standing ==&lt;br /&gt;
&lt;br /&gt;
== Map Voting  ==&lt;br /&gt;
&lt;br /&gt;
This gametype allows for the players to decide on the map that is played next. When g_gametype is set to 6 a new screen is introduced during intermission. This screen list, depending on server configuration, a list of up to 32 maps that are loaded on the server, and that all players can vote on. Once intermission ends, the server totals the votes, and plays the next map based upon the vote results &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;;Miscellaneous notes about mapvoting:&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
Total maps allowed is 32. If server admin has more than 32 .bsp files, only the first 32 are used Tie breaker. The default tie-breaker is such that if 2 or more maps are tied with the same number of votes, the map that was played most recently is selected. Bots and connecting players do NOT count for mapvoting, everyone else (including spectators) does. If no maps are voted for, the default &amp;quot;nextmap&amp;quot; cvar is used, so server admins have to specify a default map cycle of sort, usually in the following format: &lt;br /&gt;
&amp;lt;blockquote&amp;gt;set d1 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map oasis&amp;amp;nbsp;; set nextmap vstr d2&amp;quot;&amp;lt;br&amp;gt;set d2 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map battery&amp;amp;nbsp;; set nextmap vstr d3&amp;quot;&amp;lt;br&amp;gt;set d3 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map goldrush&amp;amp;nbsp;; set nextmap vstr d1&amp;quot;&amp;lt;br&amp;gt;vstr d1&amp;lt;br&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
This means that the default map, upon server start, will be oasis. From there, map voting will be used. If at any point, no map is voted for, battery will be played, etc &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== g_mapVoteFlags  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; This cvar controls the behaviour of the map voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Changes the tie breaker so that the map not played in the longest wins&amp;lt;br&amp;gt;2 Intermission doesn&#039;t end until g_intermissionReadyPercent people have voted. If there are no players connected to the server, intermission will end at the timeout. (WARNING: This means that if there are spectators connected and not voting, the next map will not load until those spectators either vote, disconnect, or get kicked by the system)&amp;lt;br&amp;gt;4 Multi vote: Allows everybody to vote for 3 maps instead of one, first choice map gets 3 votes, second choice gets 2, third choice gets one&amp;lt;br&amp;gt;8 Don&#039;t randomize the maps, so they will always appear in the same order&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_maxMapsVotedFor  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;How many maps are available to players for voting upon during intermission.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6 &lt;br /&gt;
&lt;br /&gt;
=== g_minMapAge  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
How long a map is ineligible for voting during intermission, after it is played last time.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
=== g_includedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Used to include map regardless of any other restrictions. Including g_excludedMaps setting. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; or otherwise the map will be ignored in the list.&lt;br /&gt;
Only valid when map voting is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
=== g_excludedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Used to exclude map that would otherwise be listed in the map voting list. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; otherwise the map will not be excluded. &amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; To exclude railgun and battery maps from map voting use below command:&amp;lt;br&amp;gt; &lt;br /&gt;
set g_excludedMaps &amp;quot;:railgun:battery:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Team Death Match (TDM) ==&lt;br /&gt;
&lt;br /&gt;
=== g_TDMType	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The type of the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map ends only when timelimit hits&lt;br /&gt;
&lt;br /&gt;
2 Map ends when either the target score is reached or the timelimit hits&lt;br /&gt;
&lt;br /&gt;
3 Map ends only when the target score is reached&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_TDMOptions	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Possible options for the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map voting is enabled during the intermission (i.e. The players vote for the next map to play during the intermission.)&lt;br /&gt;
&lt;br /&gt;
2 Completing the map objective will give the team score bonus that is controlled by the g_TDMObjBonus server cvar&lt;br /&gt;
&lt;br /&gt;
4 Teams get negative points when they do selfkills or teamkills&lt;br /&gt;
&lt;br /&gt;
8 Players cannot selfkill during the TDM. Regardless of other selfkill settings the server has configured&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
=== g_TDMScore===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the target score the teams attempt to make to win the game in TDM game types 2 and 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
=== g_TDMObjBonus===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the value that is added to the team score if the team completes the map objective. Adding the bonus does not depend of the TDM type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
= Mapconfigs and Mapscripts =&lt;br /&gt;
&lt;br /&gt;
== g_mapConfigs	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On each map load, the silEnT server will execute 2 configs if possible. The default.cfg and after that a map specifig config file [mapname].cfg. For example if you set g_mapConfigs to &#039;mapcfg&#039;, when the map fueldump starts, the server will try to exec &#039;mapcfg/fueldump.cfg&#039;.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;&amp;quot; to disable it.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;.&amp;quot; to look for the cfg file in the current directory (fs_homepath).&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.5.2, admins can add settings that are executed for specific player amounts. The commands are enclosed in [players low-high] ... [/players] blocks. The low is the lowest amount of players for those settings and high is the maximum amount of players for those settings. For example:&lt;br /&gt;
&lt;br /&gt;
[players 0-10]&amp;lt;br&amp;gt;&lt;br /&gt;
set team_maxPanzers 0&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will disable panzerfaust when player amount is less or equal to 10. The blocks can be placed anywhere in the map config files. If the block is closed with [/players], the following commands do not depend on the player amounts. The player blocks can not be nested. If two player blocks follow each other, the second definition opens a new one and the old one closes. For example:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 0-15]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:mlb_temple:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 16-*]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:adlernest:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will exclude map MLB Temple if the player amount is less or equal to 15 and exclude map Adlernest if the player amount is 16 or more. The player amount counting is controlled with g_playerCounting server cvar.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When in g_gametype 6 mode (Map Voting) and g_resetXPMapCount is set, an additional file named vote_X.cfg is also exec&#039;ed. X indicates the position of the next map in the campaign. For example, vote_2.cfg will exec&#039;ed such that when map 1 ends, any cvars in vote_2.cfg will affect map voting for map 2. Player blocks are not used with vote_X.cfg files.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_mapScriptDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to ETPro&#039;s b_mapscriptsdirectory.  Set it to the name of a directory in your fs_path that contains custom map scripts. For example you can copy the &#039;etpromapscripts&#039; directory from the ETPro distribution to your &#039;silent&#039; directory and add: set g_mapScriptDirectory &amp;quot;etpromapscripts&amp;quot; to your cfg. Setting g_mapScriptDirectory to &amp;amp;quot;&amp;amp;quot; disables any use of map .script files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
It is strongly recommended that you use the map scripts distributed with silEnT or ETPub since these updated scripts fix very important bugs in some of the original map scripts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_campaignFile  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
If you set this to the name of a file in your fs_path it will be interpreted as a .campaign script and all other .campaign scripts in your pk3 files will be ignored. This is useful for making custom campaigns since you don&#039;t need to offer a pk3 file containing a custom .campaign script for all clients to download. However, if the client has not downloaded this .campaign file in a pk3, they will not see information about the campaign. &lt;br /&gt;
&lt;br /&gt;
Such information includes: &lt;br /&gt;
&lt;br /&gt;
*will not display in the VOTE -&amp;amp;gt; MAP list &lt;br /&gt;
*map locations will not draw on the map of Europe. &lt;br /&gt;
*campaign description will not draw in the right panel &lt;br /&gt;
*total number of maps and current maps order in the campaign &lt;br /&gt;
*will not be shown in the intermission screens.&lt;br /&gt;
&lt;br /&gt;
Also, even though the built-in campaigns cmpgn_centraleurope and cmpgn_northafrica will not be valid, they will still appear in the client&#039;s VOTE -&amp;amp;gt; MAP menu. If a vote for one of them passes, nothing will happen. &lt;br /&gt;
&lt;br /&gt;
Setting this to &amp;quot;&amp;quot; disables it. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_playerCounting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls how the player amount is calculated for the mapconfigs. The player amount value is the highest number of simultaneously fully connected players during the map or warmup. The player counting can be disabled from the warmup period. If the player counting is enabled during the warmup, the players are counted right at the end of the warmup. This allows the teams to stabilize after intermission. Similarly the counting is triggered always with a 3 second delay from the change in the teams. Team changes include players joining the server and staying &lt;br /&gt;
in the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable filtering. This will add the 2 latest values together and divide them by 2.&lt;br /&gt;
&lt;br /&gt;
2 No player counting during warmup.&lt;br /&gt;
&lt;br /&gt;
4 Count spectators into players. Without this flag, only players in the playing teams are counted.&lt;br /&gt;
&lt;br /&gt;
8 Bots are not included into the player count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= Censoring =&lt;br /&gt;
&lt;br /&gt;
== g_censor==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the chat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the player names.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorPenalty==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This controls the censoring behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kill the player&lt;br /&gt;
&lt;br /&gt;
2 Kick players with names containing words in g_censorNames&lt;br /&gt;
&lt;br /&gt;
4 Kill, but don&#039;t gib&lt;br /&gt;
&lt;br /&gt;
8 Auto-mute for g_censorMuteTime [60] seconds&lt;br /&gt;
&lt;br /&gt;
16 Lose the amount of xp specified in g_censorXP&lt;br /&gt;
&lt;br /&gt;
32 Burn&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use both 1 and 4, it will gib (like shrub did).&lt;br /&gt;
&lt;br /&gt;
== g_censorNeil==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter. It&#039;ll catch some symbol and number replacements,&lt;br /&gt;
and spaces now. It also adds some common words and common words with &amp;quot;swears&amp;quot; in them&lt;br /&gt;
that should really be OK. For example, it will not censor &amp;quot;assassin&amp;quot; but it will&lt;br /&gt;
censor &amp;quot;ass&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorNeilNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter for player names.  See g_censorNeil description for&lt;br /&gt;
details.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorMuteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds to auto-mute as a censor penalty. Only works if bitflag 8 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_censorXP==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of XP to lose as a censor penalty. Only works if bitflag 16 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
= Voting =&lt;br /&gt;
&lt;br /&gt;
== g_voting	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Control&#039;s voting behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Votes will pass on the number of votes cast rather than total eligible voters.&lt;br /&gt;
&lt;br /&gt;
2 Votes that pass do not count against the vote_limit for the caller.&lt;br /&gt;
&lt;br /&gt;
4 &amp;quot; (called by NAME)&amp;quot; is appended to the vote description where NAME is the name of the player that called the vote.&lt;br /&gt;
&lt;br /&gt;
8 Show the number of YES and NO votes after a votes has passed or failed. This also shows if a vote is canceled or passed by an admin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== vote_limit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This value defines how many votes one player can invoke during one map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== vote_percent==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The required percentage of yes votes for the vote to pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== vote_allow_comp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for competition settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_gametype==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for gametype.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_kick==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for kicking a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for map to be played.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_mutespecs==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for starting the next map in the map rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_pub==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for public game settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_referee==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for making a player a referee.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams based on XP.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for swapping the teams. Allied players go to the axis team and axis players go to the allied team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_friendlyfire==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the map time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_warmupdamage==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling/enemies only warmup damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_antilag==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling antilag.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_balancedteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling balanced teams enforcing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_muting==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting/unmuting a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for surrendering the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the campaign.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the campaign to the next one in the campaign rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows making freely written polls using the vote system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams without restarting the map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_cointoss==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for doing cointoss.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_putspec==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for moving a player to the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_block_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the match allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams without restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for starting the next map in the map rotation allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for swapping the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for surrendering the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for played map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for changing the map time allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for polls allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for next campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_noVoteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds must pass between two votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_voteResultsMinLevel==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the minimum admin level for the players to see the results of the votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_votedMuteLength==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the length in seconds of the mute issued by a passed mute vote. You can use modifiers with this value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3h&lt;br /&gt;
&lt;br /&gt;
= Weapons, Classes and Skills =&lt;br /&gt;
&lt;br /&gt;
== g_poison	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Gives medics the ability to poison enemies by sticking with their medic&lt;br /&gt;
syringe.  Enemies will be damaged at g_poison/second when g_poison is&lt;br /&gt;
set to a value more than 0.  Setting to 0 will disable poison needles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_poisonFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the effects of g_poison.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Poisoned player&#039;s screen shakes.&lt;br /&gt;
&lt;br /&gt;
2 Other players see the poisoned player&#039;s head shaking.&lt;br /&gt;
&lt;br /&gt;
4 Poisoned player appears to bend over (hurl) every 2 seconds. (poisoned player does not see this happen.)&lt;br /&gt;
&lt;br /&gt;
8 Poisoned player cannot use +attack.  NOTE: because of client side prediction, the client may see the gun firing occasionally if they hold down +attack, but no shots are fired.&lt;br /&gt;
&lt;br /&gt;
16 Poisoned player is disoriented (view turned upside down).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
== g_medics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the medic, to nerf or otherwise change their behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Medics can&#039;t pick up their own health packs to cure themselves of poison needle effects.&lt;br /&gt;
&lt;br /&gt;
2 Medics can&#039;t pick up their own health packs at all.&lt;br /&gt;
&lt;br /&gt;
4 A level 4 medic will always be revived to full health (no matter what the level of the reviving medic is).&lt;br /&gt;
&lt;br /&gt;
8 Value is not in use.&lt;br /&gt;
&lt;br /&gt;
16 Medics do not spawn with akimbo pistols, regardless of their light weapons skill.&lt;br /&gt;
&lt;br /&gt;
32 Medics spawn with pistol only, and can&#039;t pick up SMG of either team. However, any class can steal a medics uniform, if the g_classChange is set to 1, and receive the medic benefits while retaining their current weapons, including akimbos and SMG.&lt;br /&gt;
&lt;br /&gt;
64 Medics can use syringes to heal living teammates as an alternative to the tk/revive cycle.&lt;br /&gt;
&lt;br /&gt;
128 Level 4 medics can inject other players with their adrenaline.  This can be done when holding the revive needle by pressing the alt-fire button, or with the /adrenother client command.&lt;br /&gt;
&lt;br /&gt;
256 Level 4 medics cannot adrenaline self.  If this flag is on, Medics will not receive adrenaline upon reaching level 4. (This won&#039;t affect flag 128)&lt;br /&gt;
&lt;br /&gt;
512 Adrenaline use takes only half of the chargebar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adrenDmgReduction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
The percentage damage reduction after injecting adrenaline. g_adrenDmgReduction is now independent percentage of the caused damage that is inflected when the adrenaline is on. 0 means no damage and 100 means full damage from the weapon. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_medicHealthRegen==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The rate at which medics regenerate health (in HP per second).  This rate is divided into two parts:  The first is from 1 to 110-125 HP (depending on the number of medics per team), and then above that.  The system default is 3/2 (3 HP per second, then 2 HP per second).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 3/2&lt;br /&gt;
&lt;br /&gt;
1 2/2&lt;br /&gt;
&lt;br /&gt;
2 2/1&lt;br /&gt;
&lt;br /&gt;
3 2/0&lt;br /&gt;
&lt;br /&gt;
4 1/1&lt;br /&gt;
&lt;br /&gt;
5 1/0&lt;br /&gt;
&lt;br /&gt;
6 0/0&lt;br /&gt;
&lt;br /&gt;
7 0/1&lt;br /&gt;
&lt;br /&gt;
8 0/2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_throwableKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable knife throwing. The amount of throwable knives is g_maxKnives - 1. Any non zero value will enable knife throwing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of knives a player can posses. Take note that if g_throvableKnives is enabled, the last knife cannot be thrown.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_knifeChargeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long it takes in milliseconds for the &amp;quot;knife&amp;quot; to charge to the maximum throw speed/force.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 800&lt;br /&gt;
&lt;br /&gt;
== g_constructibleXPSharing==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When multiple engineers help build a constructible, each gets his share of XP&lt;br /&gt;
once the constructible is build.  The share of gained XP is proportional to&lt;br /&gt;
how much the engineer built.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_asblock	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Airstrike blocking.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Make an announcement whenever an airstrike is blocked.&lt;br /&gt;
&lt;br /&gt;
2 A player may easily block an airstrike by crouching, standing, or proning over the enemy&#039;s canister to block the airstrike.&lt;br /&gt;
&lt;br /&gt;
4 Reserved.&lt;br /&gt;
&lt;br /&gt;
8 Lvl 3 FieldOPs and higher cannot have the airstrikes blocked by players.&lt;br /&gt;
&lt;br /&gt;
16 Disables teammates blocking airstrikes.&lt;br /&gt;
&lt;br /&gt;
32 Give 2 Battle Sense XP to player that blocks the air strike. No XP given for blocking teammates or your own air strike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_panzersSpeed	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Speed of the panzers. Normal panzer speed is 2500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2500&lt;br /&gt;
&lt;br /&gt;
== g_panzersGravity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzer trajectory will be affected by gravity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dyno==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dynamite Behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmaks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Sudden Death Dynamites enabled. If there is 30 seconds or less on the clock and dynamite is planted on an objective, the clock will continue to run past zero. The match will not end until the dynamite either explodes, or is disarmed. You are not allowed to plant additional dynamite during sudden death.&lt;br /&gt;
&lt;br /&gt;
2 Dynamite chaining enabled. Dynamite will cause other similar dynamites to explode when exploding (only if within blast radius). Dynamites not planted on an objective will blow any other dynamite not on an objective. Dynamite planted on an objective will only blow dynamite on the same objective.&lt;br /&gt;
&lt;br /&gt;
4 Adds a dynamite symbol with the location and the time remaining to all the players on the team of the player who plants the dynamite. This will only happen when dynamite is placed on an objective. The players in the other team will see the dynamite symbol too, but they won&#039;t see the time remaining.&lt;br /&gt;
&lt;br /&gt;
8 Dynamite cannot be disarmed by your team (inlcuding yourself), so only the other team can defuse it.&lt;br /&gt;
&lt;br /&gt;
16 Enable dynamite ID. You can see the owner of a dynamite when you point at it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKick	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Canister and grenade kicking.&lt;br /&gt;
&lt;br /&gt;
Allows players to kick smoke, and air strike canisters, along with grendaes. The integer adjust the amount of force put behind the kick. 75 is a good value, anything below 60 is about useless, and above about 125 is probably too much.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKickOwner	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kicked Canister Ownership.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Kicker does not take ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
1 Kicker takes ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_staminaRecharge	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiplies the rate at which stamina is rebuilt. Setting this value to zero will cause players to not regain any stamina once it is used except through the use of adrenalin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_mineid	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turns on identification of your teammates landmines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_medicSelfhealTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in milliseconds that a medic cannot heal himself after being hit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxPanzerSuicides	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, a player can kill himself g_maxPanzerSuicides times with a panzerfaust. The next panzerselfkill will result in a panzer shooting medpacks.&lt;br /&gt;
&lt;br /&gt;
The amount of suicides is reset every map.&lt;br /&gt;
&lt;br /&gt;
Set to -1 to disable, -2 to always enable (no normal panzers anymore)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_panzerPackDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the g_packDistance for the medpacks fired by the panzerfaust when g_maxPanzerSuicides is enabled.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to use default (etmain)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_weapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_weapons cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 0 field ops doesn&#039;t get binoculars (unless he has &amp;gt;= level 1 Battle Sense)&lt;br /&gt;
&lt;br /&gt;
2 Syringes work underwater&lt;br /&gt;
&lt;br /&gt;
4 Pliers work underwater&lt;br /&gt;
&lt;br /&gt;
8 Fully restore Field ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
16 Half restore FIeld ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
32 Ammo packs restore helmets&lt;br /&gt;
&lt;br /&gt;
64 Drop binoculars if player has them&lt;br /&gt;
&lt;br /&gt;
128 Soldiers with level 4 heavy weapons don&#039;t lose their pistols&lt;br /&gt;
&lt;br /&gt;
256 Garands can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
512 Balance the clip size between the allies and axis rifles. allied rifles get same clip sizes and max ammo as the k43.&lt;br /&gt;
&lt;br /&gt;
1024 Creates a hitbox for mortar shells.  This reduces (or eliminates in some cases) the ability to fire mortars through smaller windows and bunker slits.&lt;br /&gt;
&lt;br /&gt;
2048 Knives will always gib a body (not a player, use g_dmgKnife instead if you want that)&lt;br /&gt;
&lt;br /&gt;
4096 Players drop all of their ammo when they die, instead of just the ammo that is in the current clip.&lt;br /&gt;
&lt;br /&gt;
8192 &amp;quot;Ammo&amp;quot;/&amp;quot;No ammo&amp;quot; icon is shown for dropped weapons.&lt;br /&gt;
&lt;br /&gt;
16384 Enable fast shooting for Thompson, MP40, PPSh and Sten. 110 ms between shots.&lt;br /&gt;
&lt;br /&gt;
32768 Kill by the shot tripmine is counted for the shooter not the player that planted it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 16384 was added in version 0.6.2.&lt;br /&gt;
&lt;br /&gt;
== g_classWeapons==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar enables certain weapons per class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable PPSH for soldiers&lt;br /&gt;
&lt;br /&gt;
2 Enable PPSH for engineers&lt;br /&gt;
&lt;br /&gt;
4 Enable PPSH for fieldops&lt;br /&gt;
&lt;br /&gt;
8 Enable MP40 and Thompson to be available to both teams in limbo menu&lt;br /&gt;
&lt;br /&gt;
16 Enable MP40 for soldiers.&lt;br /&gt;
&lt;br /&gt;
32 Enable Thompson for soldiers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 8 was added in version 0.6.0.&lt;br /&gt;
&lt;br /&gt;
Flags 16 and 32 were added in version 0.6.2. Also the default value was changed from 15 to 63.&lt;br /&gt;
&lt;br /&gt;
== g_mg42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls optional machine gun behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Machine Guns can make headshots&lt;br /&gt;
&lt;br /&gt;
2 Machine Guns can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_coverts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the Covert Op class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 4 Coverts have more accurate scoped weapons.&lt;br /&gt;
&lt;br /&gt;
2 Disguised coverts can only be identified with the &amp;quot;crosshair name&amp;quot; by level 4 Field Ops.&lt;br /&gt;
&lt;br /&gt;
4 After detonating a satchel charge, the primary weapon will be selected instead of satchel again.&lt;br /&gt;
&lt;br /&gt;
8 Coverts in disguise take half the normal combat damage.&lt;br /&gt;
&lt;br /&gt;
16 Coverts in disguise take no splash damage.&lt;br /&gt;
&lt;br /&gt;
32 Coverts do not automatically lose their uniform if an enemy sees them firing a weapon.&lt;br /&gt;
&lt;br /&gt;
64 Coverts do not automatically lose their uniform if they fire a non-silent weapon.&lt;br /&gt;
&lt;br /&gt;
128 Coverts do not automatically lose their uniforms if they attach to an emplaced MG weapon.  Note that this flag has nothing to do with firing.&lt;br /&gt;
&lt;br /&gt;
256 Coverts are awarded xp for constructive use of smoke.&lt;br /&gt;
&lt;br /&gt;
512 Coverts will lose their uniform if an enemy sees him using ANY weapon (otherwise knife/satchel/smoke/binoc will never lose uni).&lt;br /&gt;
&lt;br /&gt;
1024 A disguised covert can still steal enemy uniforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_enableTMines	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disables/enables tripmines. Tripmines are available only for engineers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_enableDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Improvised Demolition weapon for soldier class.&lt;br /&gt;
Improvised Demolition weapon was introduced in 0.8.0 version of the silEnT mod.&lt;br /&gt;
As mentioned in the original WWII Tank-destruction manual, a big charge could be made of 6 stickgrenade heads around one complete grenade, fixed with wire or rope.&lt;br /&gt;
The central grenade would make the other 6 grenade detonate as well causing an explosion which could damage the light armoured vehicles.&lt;br /&gt;
&lt;br /&gt;
In silEnT mod this weapon is designed to suit exactly the purpose described above.&lt;br /&gt;
To gain the weapon player has to gain 3rd engineer level and 4th soldier level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_skills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optional skill related flags.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players with level 4 battle sense can spot landmines for teammates&lt;br /&gt;
&lt;br /&gt;
2 Players with level 4 engineering can keep the flak jacket for other classes&lt;br /&gt;
&lt;br /&gt;
4 Players with level 4 first aid can keep adrenaline for other classes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== skill_soldier==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in soldier ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_medic	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in medic ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_engineer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in engineer ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_fieldops	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in fieldop ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_covertops==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in covert op ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_battlesense	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in battle sense ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_lightweapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in light weapon ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_panzersVulnerable==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzers that are shot in mid-air will explode.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_maxMarkers ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many danger zones can be marked by the covert ops.&lt;br /&gt;
&lt;br /&gt;
Danger zones were introduced in 0.7.0 version of the silEnT mod. They can be marked by Covert Ops to indicate that some area can be considered dangerous. Such area is then visible on the command map as the red circle zone. Additionally, when the Command Post is built, players are notified by sound and visual signs about entering the danger zone. Players can customize the way they are notified via the HUD editor and the silEnT customize HUD menu.&lt;br /&gt;
&lt;br /&gt;
To mark the danger zone Covert Ops needs to look through his binoculars and press the left mouse button (attack button). The same way Field Ops calls for an airstrike.&lt;br /&gt;
&lt;br /&gt;
To disable the feature set the g_maxMarkers to 0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Friendly Fire =&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFire  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
To enable / disable friendly fire on server.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [0|1] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFireOpts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows greater control over friendly fire events.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
2 Allow &#039;grenade boosting&#039; when friendly fire is off&lt;br /&gt;
&lt;br /&gt;
4 Non-engineer players do not trigger landmines on their own team&lt;br /&gt;
&lt;br /&gt;
8 Players do not trigger trip mines on their own team&lt;br /&gt;
&lt;br /&gt;
16 Tripmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
32 Only engineer that planted the landmine can trigger/defuse it (concerns team landmines only). This flag requires that the flag 4 is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 32 was added in version 0.5.1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_reflectFriendlyFire ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to Shrub&#039;s g_friendlyfire 2 cvar. A multiplier value that determines how much friendly-fire damage, if any, is reflected back to the player that caused the damage. This setting is independent of g_friendlyfire, so damage can be set to reflect on both FF and non-FF servers.&lt;br /&gt;
&lt;br /&gt;
A value of 1.0 would reflect full damage.&lt;br /&gt;
&lt;br /&gt;
A value of 0.5 would reflect half damage.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to disable reflected friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_reflectFFWeapons ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects which category of weapon will reflect when g_reflectFriendlyFire is non-zero.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable reflected damage for Firearms (all types of guns)&lt;br /&gt;
&lt;br /&gt;
2 Enable reflected damage for Grenades and grenade launchers&lt;br /&gt;
&lt;br /&gt;
4 Enable reflected damage for Knives (includes thrown knives)&lt;br /&gt;
&lt;br /&gt;
8 Enable reflected damage for Panzers&lt;br /&gt;
&lt;br /&gt;
16 Enable reflected damage for Flamethrowers&lt;br /&gt;
&lt;br /&gt;
32 Enable reflected damage for Mortars&lt;br /&gt;
&lt;br /&gt;
64 Enable reflected damage for Satchel Charges&lt;br /&gt;
&lt;br /&gt;
128 Enable reflected damage for Artillery and Air Strikes&lt;br /&gt;
&lt;br /&gt;
256 Enable reflected damage for Dynamite and Construction Damage&lt;br /&gt;
&lt;br /&gt;
512 Enable reflected damage for Landmines&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setting this value to zero will override any multiplier set via g_reflectFriendlyFire, effectively disabling reflecting damage.&lt;br /&gt;
&lt;br /&gt;
== g_teamDamageRestriction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When greater than 0, anybody that has this percentage of hits inflicted on a teammate will automatically be kicked. A minimum of g_minhits hits total required before this is calculated. Client can see current stats for themselves by doing a /damage in console. Implemented to mimic shrub behavior as much as is possible, there are other ways to implement this feature, which may be implemented in addition to current manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_minHits ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum number of damaging hits required before calculating if player has reached g_teamDamageRestriction threshold. Flamethrower and landmine hits are adjusted similar to shrub. Medics get -2 hits for every revive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
= Hitboxes, Physics &amp;amp; Anti Lag Settings =&lt;br /&gt;
&lt;br /&gt;
== g_antilagDelay	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Manually delay the antilag of every player on the server. Might give very weird behaviour, so use at own risk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysics==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Creates a smoother movement when enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysicsfps	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Makes the fixedphysics act like all the clients have the same framerate, so that players with &amp;quot;magic&amp;quot; quake engine framerates don&#039;t have an unfair advantage. This CVAR must be between 60 and 333.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 125&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t actually change the framerates in clients, so the clients can keep their own framerates.&lt;br /&gt;
&lt;br /&gt;
== g_antiwarp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro-style antiwarp. This gives non-lagging players a much better game but for laggers it will be a bit more uncomfortable. This CVAR overrides both g_maxWarp AND g_skipCorrection in order to keep things consistent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_realBody ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If server admin sets this, the player hitboxes are adjusted smaller and harder to hit. Value 0 corresponds to the hitboxes used up to 0.5.0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Hitboxes used up to 0.5.0&lt;br /&gt;
&lt;br /&gt;
1 Use smaller hitboxes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see the differences in the hitboxes, use g_debughitboxes server cvar. Do note that this kind of testing should not be done with many players because it will cause huge amount of lag.&lt;br /&gt;
&lt;br /&gt;
== g_skipCorrection	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 to enable Neil Toronto&#039;s unlagged2 skip correction. This will smooth out the movement of players with high packet loss (to a degree). This is similar to etpro&#039;s antiwarp, but has some differences. Neil likes this version better, bani likes his better.&lt;br /&gt;
&lt;br /&gt;
This replaces g_smoothClients from etmain.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarp	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This allows you to control the amount of &amp;quot;warping&amp;quot; that players with high packet loss can do.  The [integer] is the number of server frames that you allow a player to miss before their next movement is put in check.&lt;br /&gt;
&lt;br /&gt;
A server frame is 50ms on a typical server (sv_fps set to 20).  This means that if you set g_maxWarp to 5 you won&#039;t allow players to warp from point A to point B if that distance takes an normal player 1/4&lt;br /&gt;
of a second to travel. Setting this to 1 is a good way to drive off just about everyone from your server.&lt;br /&gt;
&lt;br /&gt;
As far as I can tell, 1000ms is allowed by default in the game, so setting this to any value higher than 39 should have no effect if sv_fps is set to 10.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Fun Wars and Crazy Settings =&lt;br /&gt;
&lt;br /&gt;
== g_panzerwar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Panzerwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_sniperwar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Sniperwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_riflewar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Riflewar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set maximum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 540&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set max speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Watermark =&lt;br /&gt;
&lt;br /&gt;
== g_watermark==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set a watermark that will be displayed to all clients. The watermark must be put in a folder named &amp;quot;watermark&amp;quot; and then this whole folder needs to be zipped into a .pk3 file. The silEnT watermark is &amp;quot;logo_silent.tga&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeAfter	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermark is set, the watermark will fade out after [integer] number of seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermarkFadeAfter is set, the watermark will fade out in [integer] seconds. (So the fading process from 1.0 alpha to 0.0 alpha takes [integer] seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Hitsounds =&lt;br /&gt;
&lt;br /&gt;
== g_hitsounds	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server side hitsound options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable hitsounds&lt;br /&gt;
&lt;br /&gt;
2 Disable hitsounds when shooting wounded players&lt;br /&gt;
&lt;br /&gt;
4 Disable the headshot sound when shooting wounded player in the head. (default hitsound will be used in it&#039;s place)&lt;br /&gt;
&lt;br /&gt;
8 Enable warning sound from hitting team mates&lt;br /&gt;
&lt;br /&gt;
16 Disable hitsounds from poison damage&lt;br /&gt;
&lt;br /&gt;
32 Disable hitsounds from explosive weapons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A client can disable hitsounds with cg_hitSounds client cvar. Also an option to play only headshots is available.&lt;br /&gt;
&lt;br /&gt;
== g_defaultHitSounds ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects the default hit sounds on the server. Starting from silEnT 0.6.0, it is possible for the players to choose what kind of hit sounds are played. If the client cvar cg_hitSoundType is 0, the g_defaultHitSounds determines what type of hit sounds are used. Also, if the client cvar cg_hitSoundType is 0, the server may also add custom hit sound files in a custom pk3 file. These sounds are automatically loaded if available. However, if the client cvar cg_hitSoundType is 1, 2 or 3, the client will use strictly the hit sounds they have selected. Custom hit sounds are placed to the root folder &amp;quot;sounds/hitsounds&amp;quot; in the custom pk3. They must never overload any of the files in the subfolders, silent, etpro or etpub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 No selection, will default to silEnT in the client end.&lt;br /&gt;
&lt;br /&gt;
1 Defaults silEnT hitsounds.&lt;br /&gt;
&lt;br /&gt;
2 Defaults ETPro hitsounds.&lt;br /&gt;
&lt;br /&gt;
3 Defaults ETPub hitsounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
= Intermission =&lt;br /&gt;
&lt;br /&gt;
== g_intermissionTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the length of time the end of game screens displays before loading the next map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_intermissionReadyPercent	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The percent of connected players who need to hit the &amp;quot;READY&amp;quot; button to move on to the next map without waiting g_intermissionTime to run out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
= Miscellaneous =&lt;br /&gt;
&lt;br /&gt;
== g_proneDelay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set, there will be 1750 ms delay after every prone or getting up before the player can prone or get up again. Also, weapon spread will be maxed for 1 second after proning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_realPlayTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Show additional real play time of the payer (without spec time) in the debriefing screen at the end of the map.&lt;br /&gt;
For instance: 6/10 would mean that player played 6 minutes, was on the server for 10 minutes and 4 minutes was in spec.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== g_extraStatistics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional statistics over the end game awards.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player with most mine kills&lt;br /&gt;
&lt;br /&gt;
2 Player with most mine damage inflicted&lt;br /&gt;
&lt;br /&gt;
4 Player with most knife kills&lt;br /&gt;
&lt;br /&gt;
8 Player with most gibs&lt;br /&gt;
&lt;br /&gt;
16 Player with most artillery kills&lt;br /&gt;
&lt;br /&gt;
32 Player with most airstrike kills&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_packDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the distance at which health packs and ammo packs are thrown. Set this to 0 to make it just like etmain.  The settings should be similar to shrubet so set this to 2 for a subtle improvement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, medics will drop [integer] number of health packs when they are gibbed.  If set to -1, medics will drop the number of health packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropAmmo	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, fieldops will drop [integer] number of ammo packs when they are gibbed.  If set to -1, fieldops will drop the number of ammo packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tossDistance==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the velocity at which health or ammo packs are tossed from the dead body when g_dropHealth or g_dropAmmo are activated. This changes the distance that these packs travel from the corpse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_misc==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Miscellaneous options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Type: &#039;&#039;&#039;bitmask&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable double jump.&lt;br /&gt;
&lt;br /&gt;
2 Enable binoc master competition. Requires g_weapons 64 to be set.&lt;br /&gt;
&lt;br /&gt;
4 When a player is killed he can see the HP the killer has left.&lt;br /&gt;
&lt;br /&gt;
8 Disable self damage.&lt;br /&gt;
&lt;br /&gt;
16 Players can not jump if stamina is too low.&lt;br /&gt;
&lt;br /&gt;
32 Enable Jaymod style doublejump.&lt;br /&gt;
&lt;br /&gt;
64 Disable Falling Damage.&lt;br /&gt;
&lt;br /&gt;
128 Announce revives.&lt;br /&gt;
&lt;br /&gt;
256 Setting this flag disables the &amp;quot;First Blood&amp;quot; announcement.&lt;br /&gt;
&lt;br /&gt;
512 Full body predict. This makes it harder to get inside for example walls and stones. Same as ETPub g_misc 32 + 256. Do note that this can cause problems when proning through windows and similar narrow passages&lt;br /&gt;
&lt;br /&gt;
1024 Enable the enemy team objective carry indicator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
* Flag 1024 was added in version 0.8.2.&lt;br /&gt;
&lt;br /&gt;
== g_moverScale	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiply the speed of movers (e.g. tanks) by float.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_slashKill==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the behavior of the /kill command. See also g_fear and g_maxSelfkills.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player spawns with half charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
2 Player spawns with 0 charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
4 Restores the charge bar to the same state it was in at the moment the player issued /kill (regardless of how long they were in limbo)&lt;br /&gt;
&lt;br /&gt;
8 Disable /kill when player is frozen&lt;br /&gt;
&lt;br /&gt;
16 Disable /kill when player is poisoned&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxSelfkills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of times a player can use /kill per map. Setting this to -1 will result in normal behaviour (infinite selfkills). Setting this to 0 will disable /kill.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_ammoCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between ammo cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60000&lt;br /&gt;
&lt;br /&gt;
== g_healthCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between health cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10000&lt;br /&gt;
&lt;br /&gt;
== g_spectator==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls spectator behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 When in freelook mode, you can &#039;fire&#039; at a player to follow. If you miss a player, nothing happens.&lt;br /&gt;
&lt;br /&gt;
2 When in freelook mode with the 1 flag set, if you shoot and miss you start following the next available player.&lt;br /&gt;
&lt;br /&gt;
4 When the player you&#039;re following goes into limbo, don&#039;t move to the next available player.&lt;br /&gt;
&lt;br /&gt;
8 When the player you&#039;re following goes into limbo, go to freelook instead of following the next available player. (4 has precedence)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_truePing	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to see how much their local game is behind the top time (the time of the latest server frame). Pings will show around 50 ms better than if the ping would show network latency, but it&#039;s more accurate. Remember that the server is sending a snapshot to players in every 50 ms. This makes the players to inherenty play in the past from the server point of view.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropObj	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets the number of times a player can drop/toss the objective (e.g. parts on radar) per life.&lt;br /&gt;
&lt;br /&gt;
The parts are dropped by pressing the +activate key (usually bound to F) when there&#039;s nothing else around to be activated.&lt;br /&gt;
&lt;br /&gt;
Before enabling this recall how spammy the voiceovers can be. Then picture a player tossing the parts to himself over and over again. For this reason you probably don&#039;t want to set this very high.&lt;br /&gt;
&lt;br /&gt;
Players must switch to knife in order to drop the objective. If they are not holding knife and hit +activate they will see a message that notifies them that they must switch to knife.  This change was made to prevent accidental dropping of the objective when trying to push, drag, pick up, or activate something else.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_doubleJumpHeight	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adjusts the height of the second jump in a double jump.  This value is a multiplier to the default jump velocity. The greater g_doubleJumpHeight is, the greater the height of the second jump.  This setting has no effect if double jump is disabled in g_misc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.4&lt;br /&gt;
&lt;br /&gt;
== g_serverInfo==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use this cvar to change the behaviour of the &#039;serverinfo&#039; string.  This string is printed in response to the &#039;getstatus&#039; primative command used by game browsers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Display player team information using the &#039;P&#039; cvar in the server info string. (etpro and etmain 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
2 Display player team information using the &#039;Players_Axis&#039; and &#039;Players_Allies&#039; cvars in the server info string. (etmain &amp;lt; 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
4 Display the &#039;campaign_maps&#039; cvar in the server info string. This contains a comma delimited list off all the maps in the current campaign. Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
8 Displays the &#039;C&#039; CVAR in the server info string.  This is a string containing the current map number in the campaign, and total maps in current campaign, in the form of &amp;amp;quot;xx,yy&amp;amp;quot;.  Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
16 The class charge times will not be present in the server info string unless this flag is set. They are removed by default in order to make room in the serverInfo string for more useful information. These cvars are g_medicChargeTime, g_engineerChargeTime, g_LTChargeTime, g_covertopChargeTime, g_soldierChargeTime.&lt;br /&gt;
&lt;br /&gt;
32 Send KR (KillRating) instead of XP in SERVERINFO string.  This is overriden by flag 64.&lt;br /&gt;
&lt;br /&gt;
64 Send PR (PlayerRating) instead of XP/KR in SERVERINFO string. Overrides flag 32.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar MUST be set prior to loading the first map. You will not be able to change this cvar once the game code is loaded. The serverInfo string has a fixed length of 1024 characters.  This space is shared with any cvar you create on your server with the &#039;sets&#039; command.  If you use up too much space with &#039;sets&#039;, your server will fail to start.  It will print the message &amp;quot;Info string length exceeded&amp;quot; if you don&#039;t have enough space left in your serverinfo string to handle the g_serverInfo flags you&#039;ve selected. To fix this, either remove some sets cvars from your config, or use different g_serverInfo flags.&lt;br /&gt;
&lt;br /&gt;
== g_fear	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If a player uses the /kill command within g_fear milliseconds after taking damage from an enemy, the attacker that last damaged that player will recieve full credit for the kill and the mode of death will be recorded as MOD_FEAR.  Other restrictions are that the attacker must be on the opposite team and the attacker must still be alive.&lt;br /&gt;
&lt;br /&gt;
G_fear applies also to players that try to switch teams within g_fear milliseconds. The player will remain in the same team and the usual g_fear behavior applies.&lt;br /&gt;
&lt;br /&gt;
In-game statistics will reflect that the death was caused by the weapon that did the last recorded damage to the player.&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable this behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2000&lt;br /&gt;
&lt;br /&gt;
== g_maxNameChanges	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Limit the number of namechanges per player per map by setting this cvar. This is especially needed if you have cheaters that autochange their name every second. Set to -1 to disable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_disableComplaints	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable teamkill complaints for some weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines&lt;br /&gt;
&lt;br /&gt;
2 Artillery and airstrikes&lt;br /&gt;
&lt;br /&gt;
4 Mortar&lt;br /&gt;
&lt;br /&gt;
8 Dynamite&lt;br /&gt;
&lt;br /&gt;
16 Tripmines&lt;br /&gt;
&lt;br /&gt;
32 Completely&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_countryFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets whether the players will see the GeoIP country flags in the crosshair when aiming at someone and in the scoreboard. Players can enable/disable it with cg_countryFlags (default 1).&lt;br /&gt;
&lt;br /&gt;
You will need the GeoIP.dat file in your server&#039;s silent folder. You should read and accept the license of the GeoIP.dat database!&lt;br /&gt;
&lt;br /&gt;
Read the database license at http://geolite.maxmind.com/download/geoip/database/LICENSE.txt&lt;br /&gt;
Download the latest database at http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_noSkillUpgrades==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, disables player skill upgrades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
0 No skill locking.&lt;br /&gt;
&lt;br /&gt;
1 Lock skills.&lt;br /&gt;
&lt;br /&gt;
2 Lock skills and hide all HUD elemnts that would show the skill levels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.6.0, this cvar will lock the skills to the always enabled levels. See the skill_x cvars. Also, it is possible to hide the skill levels from the player HUDs setting this cvar to value 2.&lt;br /&gt;
&lt;br /&gt;
== g_flushItems	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Evens the dropped items out with the surface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxConnsPerIP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of connections allowed from one particular IP. This prevents the fake clients Denial of Service attack.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== shoutcastPassword	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables shoutcaster status on the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;none&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_headshot==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional head shot options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Headshots only&lt;br /&gt;
&lt;br /&gt;
2 Instagib damage (controlled by g_instagibDamage)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_instagibDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Damage used for instagib mode (e.g. set this to 160 so that a player can still be revived after being shot.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_ettvFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional ETTV options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Prevent ettv slaves from being callvote kicked&lt;br /&gt;
&lt;br /&gt;
2 Grant shoutcaster status to ettv slaves&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_mode==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls some additional modes for fun or for testing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players will spawn instantly&lt;br /&gt;
&lt;br /&gt;
2 Each class receives adrenaline&lt;br /&gt;
&lt;br /&gt;
4 No damage on players&lt;br /&gt;
&lt;br /&gt;
8 Players can pick up any weapon on the ground (Removing this bitflag will force all players to respawn!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_playDead	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to use the &#039;playdead&#039; command and their character will act like it is dead until the playdead command is used again (or they really die).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_shove	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to push other players with the &amp;quot;use&amp;quot; key.  The integer adjusts the amount of force players shove with. 80 seems fair.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 80&lt;br /&gt;
&lt;br /&gt;
== g_shoveNoZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 if you want to disable shove in the up/down direction (a.k.a &amp;quot;boosting&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dragCorpse	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players do drag wounded players with the use key when moving backward slowly.  Works best when crouching or prone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_classChange	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to take the class of a gibbed teammate temporarily similarly to how a covert steals an uniform.  Class changing does not latch, so the original class the player had will be restored on respawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_forceLimboHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0 it takes about 3 shots to gib a wounded player, if set to 1 it takes about 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_goomba==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, players can damage each other by landing on each other. The integer is multiplier that determines how much damage should be done to the player that was fallen on.  Also the impact for the falling player will be broken so that they only recieve 20% of the damage they would have normally.  It is also possible to do small amounts of damage (5HP) to other players by hopping up and down on them.&lt;br /&gt;
&lt;br /&gt;
Falling damage can be either 500, 50, 25, 15, or 10 depending on the length of the fall.  So if you set g_goomba to 5 and land on a player from a fall that would have damaged you 10HP, you will inflict 50HP of damage on the player you land on, and you will only recieve 2HP of damage.&lt;br /&gt;
&lt;br /&gt;
See also g_goombaFlags&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_goombaFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the way g_goomba is handled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Cannot do goomba damage to teammates.&lt;br /&gt;
&lt;br /&gt;
2 Short falls (hopping) on another player does no damage.&lt;br /&gt;
&lt;br /&gt;
4 Short falls (hopping) does no damage to teammates. (not necessary if 1 or 2 flag is set)&lt;br /&gt;
&lt;br /&gt;
8 Falling player recieves no damage when landing on any other player. (default is to recieve 20% of the damage the fall would have given if not landing on a player).&lt;br /&gt;
&lt;br /&gt;
16 Insta-gib goomba. All goomba damage will be 500HP regardless of fall distance. The exception is hopping on anther player which still does 5HP of damage.&lt;br /&gt;
&lt;br /&gt;
32 Falling corpses won&#039;t cause damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 31 to have g_goomba work like shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvul	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds players will be invincible after they spawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvulFair	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes the spawn protection when the player fires his first shot (note : the spawn protection will still be removed after the g_spawnInvul time)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_spinCorpse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allow players to use +left and +right binds to spin their corpse when dead or playing dead.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_teamChangeKills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0, players are allowed one non-killing team change per respawn cycle.  If a player changes teams, he will be instantly spawned in the other teams default spawn point.  Players will die (but not lose a life) if they change teams a second time in one spawn cycle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxIgnoresPerMap ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The maximum number of times one player can ignore another player during one map. This can prevent spamming other players with the ignore command. The value can be between 0 and 255. Any value higher than 255 will always allow ignoring. Any value below 1 will disable ignoring completely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Logs =&lt;br /&gt;
&lt;br /&gt;
== g_logOptions==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_logOptions cvar, but so far the only implemented flags are:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Server outputs obituaries to chat.&lt;br /&gt;
&lt;br /&gt;
2 Adrenaline countdown displayed.&lt;br /&gt;
&lt;br /&gt;
4 Disable display of tap-out confirmation box.&lt;br /&gt;
&lt;br /&gt;
8 Display connection attempts by banned players.&lt;br /&gt;
&lt;br /&gt;
16 Display gib reports (&amp;quot;&amp;amp;lt;victim&amp;amp;gt; was gibbed by &amp;amp;lt;attacker&amp;amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
32 Omit &amp;quot;item&amp;quot; lines from log file.&lt;br /&gt;
&lt;br /&gt;
64 Report gibs.&lt;br /&gt;
&lt;br /&gt;
128 GUID&#039;s are logged in the game log. Note, if this option is enabled the VSP log parser will not work.&lt;br /&gt;
&lt;br /&gt;
256 Log all private messages (/m commands).  This setting won&#039;t have any effect unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
512 Logs the real time into logs, instead of the normal uptime of the server.&lt;br /&gt;
&lt;br /&gt;
1024 This flag allows logging every player drop. It can be usefull for inspecting the server operation, but it will also cause lot of needless log writes.&lt;br /&gt;
&lt;br /&gt;
2048 Print TK death message like a normal kill message, giving killing weapon, except it is preceeded by a red TEAMKILL: identifier. Only works if g_obituary is set to 3.&lt;br /&gt;
&lt;br /&gt;
4096 Log client cvar values.&lt;br /&gt;
&lt;br /&gt;
8192 Log cvar values only when found from the client. Note that flag 4096 must also be set if using this flag.&lt;br /&gt;
&lt;br /&gt;
16384 Admin log will use new format that is more readable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.3 - Flags 4096 and 8192 were added.&lt;br /&gt;
&lt;br /&gt;
0.8.0 - Flag 16384. When this flag is set, the admin log will use new format.&lt;br /&gt;
&lt;br /&gt;
== g_logAdmin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file that all shrubbot commands will be logged to. For example, g_logAdmin &amp;quot;admin.log&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_cheatLog ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file, where all cheat related prints are logged. If this is not specified, server log is used.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Omni-Bots =&lt;br /&gt;
&lt;br /&gt;
== omnibot_enable ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, Omni-bot functionality is enabled. You still need to have Omni-bots installed correctly in order for the bots to work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== omnibot_path	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The path where the Omni-bot dll/so file is installed. If you installed Omni-bot to the default locations, then you do not need to modify this cvar. Leaving this cvar blank will search for the Omni-bot dll/so file from the default locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_bot_maxXP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Any bots present will have their XP reset after this much XP is reached. If g_maxXP is also set to a value greater than -1, then the bot XP will be reset whenever the lower limit of the two is hit. Set this to -1 to disable this feature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== omnibot_flags==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes bot management/behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Disables XPSave for bots&lt;br /&gt;
&lt;br /&gt;
2 Bots cannot mount tanks&lt;br /&gt;
&lt;br /&gt;
4 Bots cannot mount emplaced guns&lt;br /&gt;
&lt;br /&gt;
8 Don&#039;t track bot count in omnibot_playing cvar&lt;br /&gt;
&lt;br /&gt;
16 Bots will target ungibbed enemies&lt;br /&gt;
&lt;br /&gt;
32 Bots will trigger team and spotted mines&lt;br /&gt;
&lt;br /&gt;
64 Bots can use g_shove&lt;br /&gt;
&lt;br /&gt;
65536 Bots are granted shrubbot command immunity (the same as shrubbot flag !)&lt;br /&gt;
&lt;br /&gt;
131072 Bots cannot be !kicked or !banned&lt;br /&gt;
&lt;br /&gt;
262144 Disable shrubbot greeting for bots&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Lua =&lt;br /&gt;
&lt;br /&gt;
== lua_modules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of files to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. The paths are relative to the mod&#039;s directory, and can optionally be placed inside pk3 archieves. We are aiming for compatibility with ETPro&#039;s Lua Mod API found at http://wolfwiki.anime.net/index.php/Lua_Mod_API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== lua_allowedModules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of sha1 signatures for the lua modules to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. Only lua modules with the matching sha1 signature listed in this cvar will be allowed to load by the Lua API engine (ACL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Weapon Damage and Radius Settings =&lt;br /&gt;
&lt;br /&gt;
== g_dmg	==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables experimental advanced combat options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Use traditional ET settings for combat.&lt;br /&gt;
&lt;br /&gt;
1 Use Advanced Hit Locations: Differentiates between Head, Body, Arm, and Leg shot when computing damage.&lt;br /&gt;
&lt;br /&gt;
2 Applies a more realistic damage vs. range equation for short-ranged weapons. This will reduce the effectiveness of these weapons at longer ranges.&lt;br /&gt;
&lt;br /&gt;
4 Gives a damage bonus to short-range weapons when used in close combat situations.  This will increase the effectiveness of these weapons at closer ranges.&lt;br /&gt;
&lt;br /&gt;
8 Use bullet fall-off approximations when computing shot trajectory.&lt;br /&gt;
&lt;br /&gt;
16 Improve accuracy of non-scoped single-shot rifles.&lt;br /&gt;
&lt;br /&gt;
32 Use alternate bullet-spread characteristics for automatic or rapid-fire weapons.&lt;br /&gt;
&lt;br /&gt;
64 Damage from players who are spectators or have disconnected is ignored, and XP is not awarded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotMin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This represents the minimum damage done by a headshot regardless of the weapon used to make the shot.&lt;br /&gt;
&lt;br /&gt;
Headshots that would do damage below this value will be adjusted upward to equal g_dmgHeadshotMin. Headshots from a weapon with damage at or above this value will do a multiple of their damage, as specified by g_dmgHeadShotRatio. (The actual damage may undergo additional modification due to range and other conditions)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotRatio	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This specifies the multiplier used for headshots that do damage ABOVE g_dmgHeadShotMin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_dmgKnife	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the knife.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_dmgSten	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the sten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 14&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 15&lt;br /&gt;
&lt;br /&gt;
== g_dmgPistol==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the pistol weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgSMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the SMG weapons (Thompson and MP-40).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the MG42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an emplaced MG.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42Scope==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42 when scoped.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
== g_dmgInfRifle	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by unscoped rifles (K43 and Garand).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 34&lt;br /&gt;
&lt;br /&gt;
== g_dmgSniper	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a scoped Garand or K43.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgFlamer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the a flamethrower. Also controls the per-tick damage done to a player who has been set on fire by a flamethrower and is still burning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenade==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenadeRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncher	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncherRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blas radius of an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgTMine==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a tripmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 260&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmine	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmineRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchel	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchelRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzerRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortarRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamite	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamiteRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAir	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAirRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArty	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour (can do damage, but to a very small radius, making damage unlikely)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArtyRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour. The spotting round can do damage, but to a very small radius making damage unlikely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1100&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolitionRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_knifeThrowDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage a thrown knife will cause to enemy.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgPPSh==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage done by a PPSh.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 19&lt;br /&gt;
&lt;br /&gt;
= Debugging =&lt;br /&gt;
&lt;br /&gt;
== g_debugBullets ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, server will produce debug information of fired bullets. Enabling g_debugBullets require sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If 1 is set as if the cvar was a bitmask, blue lines for the fired shots is enabled. With any positive value, server will print impact area on the hit player to the center of the screen. Possibilities are &amp;quot;Head Shot&amp;quot;, &amp;quot;Body Shot&amp;quot;, &amp;quot;Leg Shot&amp;quot; and &amp;quot;Arm Shot&amp;quot;. If the value is set to 2 or more, the bounding box of the hit player is drawn. If the value is set to 3 or more, the hit player head box is drawn. If the value is set to -2 or smaller, boxes are drawn to impacted surfaces.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default: 0&lt;br /&gt;
&lt;br /&gt;
== g_debugDamage ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, damage inflicted to players is logged into the server log. Enabling this cvar requiers sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_debugHitboxes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is enabled, hit boxes around the players are drawn. This cvar does not require sv_cheats. However, do note that if this is enabled, the server will produce constant flow of extra entities, which will make playing impossible on a live server. Test this with only couple players to prevent everyone from lagging out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to any positive value, boxes are drawn. If the value is set to 8 or more, it will draw only the boxes that are used for the initial trace. Each bullet causes two traces to happen, where the second trace confirms the impact on the more refined area of the player body, such as head or legs.&lt;br /&gt;
&lt;br /&gt;
= Deprecated Cvars =&lt;br /&gt;
&lt;br /&gt;
== g_realHead==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro headboxes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Regular headbox positions.&lt;br /&gt;
&lt;br /&gt;
1 Server tracks the animations so the headbox will match the playermodels exactly. This is the recommended value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This code was originally from ETPro (b_realhead).  It was contributed by zinx and added to ETPub by forty. silEnT is based on the ETPub source and this code has not been altered from the ETPub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.1 - The option was removed. The ETPro headboxes are always used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_spoofOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Options for PunkBuster GUID and IP spoof detections and behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kick for GUIDspoofing.&lt;br /&gt;
&lt;br /&gt;
2 Kick for IPspoofing.&lt;br /&gt;
&lt;br /&gt;
4 Display a global warning when someone is GUIDspoofing. (When flag 1 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
8 Display a global warning when someone is IPspoofing. (When flag 2 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
16 Don&#039;t use the stored GUID. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
32 Don&#039;t use the stored IP. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do NOT change this CVAR unless you encounter problems!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar was removed in version 0.5.1 and spoofing is checked unconditionally in 0.5.1 and later versions.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1249</id>
		<title>Silent Mod Server Cvar</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1249"/>
		<updated>2015-04-15T11:24:01Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* g_dbDirectory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= silEnT Mod Anti Cheat =&lt;br /&gt;
&lt;br /&gt;
== g_silentac ==&lt;br /&gt;
&lt;br /&gt;
;Description&lt;br /&gt;
Enables actions based on silEnT AntiCheat. The g_cheatLog will always have one line telling if a player is found with cheats. The cheat detection&#039;s are based mostly on heuristically detecting hacking techniques. If you suspect a false positive, please supply the silEnT team a method to reproduce it. Do note that this feature has been in extensive testing well before the 0.8.0 version. When silEnT AC is set to autoban, sv_sac cvar is set to 1. This cvar can be used by external server trackers to enable/disable server anti cheat status on their lists. We recommend setting the value to 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Show player AntiCheat status in the !finger output.&lt;br /&gt;
&lt;br /&gt;
2 Automatically ban players for 365 days with cheats.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
== g_clientBinaries ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
silEnT mod can be configured to not allow players with unknown client binaries to play on the server. This cvar controls the server behaviour when the client binary is not one of the recognized ones.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;List of recognized binaries:&#039;&#039;&#039;&lt;br /&gt;
*Official client binaries&lt;br /&gt;
*Binary edited executables from etmaster.net&lt;br /&gt;
*Equivalent to etmaster.net binary edited executables from BigBear&lt;br /&gt;
*ETPatchSelector binaries&lt;br /&gt;
*Official ET Legacy b4&lt;br /&gt;
*Official ET Legacy b5&lt;br /&gt;
*Many ET Legacy binaries including RC1 versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow players with unknown client executables.&amp;lt;br&amp;gt;&lt;br /&gt;
2	Log unknown executables to the g_cheatLog. Note, if the server does not allow unknown client binaries the log message will be different for message.&amp;lt;br&amp;gt;&lt;br /&gt;
4	Report unknown executables to admin chat. Note, if the server does not allow unknown client binaries the players will not be reported to admin chat.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - If the flag 4 is set, known cheat binaries are clearly reported to the admin chat.&lt;br /&gt;
&lt;br /&gt;
== g_identOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from version 0.3.0, the silEnT mod can be configured to enforce bans using hardware based identification. This is not any fool proof system but it is made to be an addition to the already existing ban methods. The hardware identification cannot be seen in human readable form by admins while on the server. The data that is sent to the server can be seen in the client by writing /cg_ident to the console. The result is a hexadecimal string that changes its value between maps. The format and data used to create the client identification may change between different versions of the silEnT mod. The server can be configured with the g_identOptions server cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Kick clients that are spoofing the client identification to enter the server&lt;br /&gt;
&lt;br /&gt;
2	Kick clients that are not sending the identification to the server&lt;br /&gt;
&lt;br /&gt;
4	Enforce bans using the identification&lt;br /&gt;
&lt;br /&gt;
8	Report all actions taken based on client identification to the adminchat&lt;br /&gt;
&lt;br /&gt;
16	If a player is caught of circumventing a ban, a new ban is created with for it. The ban reason will have additional (Automated copy of a ban for xxxxxxxx) where xxxxxxxx is replaced with the 8 character PB GUID of the old ban.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Announcements and Messages =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_privateMessages ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If set to 1, players can send private messages to one another with the /m playername/slot command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disable Private Messages&lt;br /&gt;
&lt;br /&gt;
1 Enable Private messages&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Clients can reject private message from other individual clients with the /ignore client command. Also, private messages can be disabled from individuals/levels using shrubbot flag &#039;/&#039;.&lt;br /&gt;
&lt;br /&gt;
== g_spreeOptions  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Options to control the display of killingsprees. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: bitmask &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Enable killingsprees &lt;br /&gt;
&lt;br /&gt;
2 Enable killingspree ends &lt;br /&gt;
&lt;br /&gt;
4 Enable multikills &lt;br /&gt;
&lt;br /&gt;
8 When set, a top 3 current killing sprees message will be printed every minute, similar to binoc masters, and a map&#039;s longest killing spree will be printed every two minutes &lt;br /&gt;
&lt;br /&gt;
16 At the beginning of the intermission the highest spree and the 3 highest sprees which are still active will be shown &lt;br /&gt;
&lt;br /&gt;
32 /kill will end a spree &lt;br /&gt;
&lt;br /&gt;
64 Teamswitching will end a spree &lt;br /&gt;
&lt;br /&gt;
128 Multikill messages will be delayed g_multikillTime milliseconds, to prevent the doublekill -&amp;amp;gt; multikill -&amp;amp;gt; megakill -&amp;amp;gt; etc. flooding &lt;br /&gt;
&lt;br /&gt;
256 Killing bots doesn&#039;t count for multikills or killingsprees (Note: they DO count for ending kill/deathsprees) &lt;br /&gt;
&lt;br /&gt;
512 Display the map and overall spree record when entering intmission &lt;br /&gt;
&lt;br /&gt;
1024 Summary: don&#039;t enable this flag if you don&#039;t have enabled g_spreeOptions flag 512 OR g_XPSave flag 16 or Shrubbot flag t &lt;br /&gt;
&lt;br /&gt;
Spree records are automatically saved into XPSave file when a map ends. By enabling this flag, you also store the spreerecord at the points where g_XPSave flag 16 would store XP. When you don&#039;t have set XPSave flag 16 and g_spreeOptions flag 512 and not allow users to use&amp;amp;nbsp;!spreerecord you should NOT set this flag as it takes some extra resources. When XPSave flag 16 is set this doesn&#039;t matter (it actually takes much less resources then). When only g_spreeOptions flag 512 or shrubbot flag t is set it won&#039;t do much harm anyway (your server won&#039;t explode) &lt;br /&gt;
&lt;br /&gt;
2048 Enable revivesprees&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_multikillTime  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The time (in milliseconds) in which two kills should be made in order to count them as multikills.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_obituary  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This cvar controls will the server send obituary events to the clients. If this is set to 0, no obituary events will be sent. If set to any nonzero value, obituary events will be sent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dropMsg  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Message to add to the drop screen when a client is kicked or banned.&amp;amp;nbsp;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;&amp;amp;nbsp;String&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot; &amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; g_dropMsg&amp;amp;nbsp;&amp;quot;Please protest ban on forums&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_landmineNotifyType  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Decide which landmine reveal notifications server should send.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Server can send two types of landmines reveal notification. Standard one, generated (sent) for each landmine revealed and summary one,&amp;amp;nbsp;which is sent after player spotting landmines stops using binoculars.&amp;amp;nbsp;It&#039;s generated after each binculars zoom. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
0 Only standard notfications (for each landmine revealed).&lt;br /&gt;
&lt;br /&gt;
1 Only single summary notifications for one binocs zoom. New type of notification. For example: during one binocs zoom, 3 mines were revealed, but only 1 summary notification is sent. It contains information: 3 mines spotted by &amp;quot;player name&amp;quot; and last one was in location &amp;quot;some location&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t send any landmine notifications.&lt;br /&gt;
&lt;br /&gt;
3 Send all notifications. For example: for 3 spotted landmines send 4 notifications (3 for each landmine + 1 summary notification). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_banners  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should be set to the name of your banners.cfg file if you want to enable banners. See [[Silent Banners]] for more information about this file.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&amp;lt;br&amp;gt;set g_banners &amp;quot;banners.cfg&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== g_recognition ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables additional recognition notifications for players doing objective, e.g. for planting dynamite, disarming it, destroying objective.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Additional recognition notifications disabled.&lt;br /&gt;
&lt;br /&gt;
1 Additional recognition notifications enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= User Database, Shrubbot and Bans =&lt;br /&gt;
&lt;br /&gt;
== g_dbDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, the server stores various information about server statistics, map information, sprees, users, bans and XP save to the location pointed by this cvar. The directory defined by this cvar is relative to the fs_game directory. Absolute paths can not be used. All the used file names in the g_dbDirectory are predefined, and cannot be changed. For security reasons, this cvar must be set during server initialization. (i.e. It can not be changed while the server is running.) The following files are stored into this directory:&lt;br /&gt;
&lt;br /&gt;
* userdb.db - This is a binary format file that contains all the basic information about shrubbot users and also all saved XP if the server is set to save XP&lt;br /&gt;
* userxdb.db - This is a binary format file that contains information related to players playing on the server&lt;br /&gt;
* useradb.db - This is a binary format file that contains player aliases.&lt;br /&gt;
* serverstat.cfg; This is a human readable file that contain server statistics and map sprees if the server is set to store them&lt;br /&gt;
* shrubbot.cfg - This is a human readable file that contain level configurations, custom commands and bans. This file is auto-created if it does not exist and used functionality requires it, but admins usually to edit this file for the configuration of their server.&lt;br /&gt;
* mapvoteinfo.cfg - This file contains information relating g_gametype 6, which is map voting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the required files will be created automatically to the directory when needed if the files don&#039;t already exist. silEnT mod will not overwrite userdb.db, userxdb.db or useradb.db files if files with those names exist, but the files are not suitable for use. In such case, the server log will have information about the failure to open the file and features requiring the missing files are disabled.&lt;br /&gt;
&lt;br /&gt;
You can freely edit the human readable files by hand as long as their correct format remains. The shrubbot.cfg can be edited even while the server is running as long as the !readconfig shrubbot command is run before the map changes. Otherwise the changes to the file will be lost. If you want to hand edit the contents of the serverstat.cfg or mapvoteinfo.cfg files, the server must be shutdown to not lose the changes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;database&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar from the config file only during the server start, or alternatively from the server start command parameters. It cannot be changed using RCON. If you want to store all the files in the same root directory where all the pk3 files and binaries are, you can set this cvar to value &amp;quot;.&amp;quot;. It will then use the fs_game directory.&lt;br /&gt;
&lt;br /&gt;
== g_dbUserMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that player is saved to the database since the player has last visited on the server.&lt;br /&gt;
&lt;br /&gt;
The database cleaning is done during intermission so this should not cause any performance problems when actions are taken. However, by setting this value to 0 or not setting the value at all, will disable the feature.&lt;br /&gt;
For servers with high database sizes, this can improve performance since users that are not needed will be removed automatically.&lt;br /&gt;
&lt;br /&gt;
You can use a modifiers with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar only from the config file executed before the mod launches the first time or from the command line. It cannot be edited using RCON.&lt;br /&gt;
&lt;br /&gt;
== g_dbMaxAliases ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The silEnT mod can store player aliases in an additional database. To enable this database, set this value to higher then 0. If this value is a positive integer, it defines how many aliases are stored in the database for one player. If the player has more aliases then this value, the oldest aliases are deleted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minumum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar can be set only at startup, before the mod launches. It cannot be changed on a live server using rcon.&lt;br /&gt;
&lt;br /&gt;
== g_minCommandWaitTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Time you have to wait between using 2 shrubbot commands in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tyranny ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls the use of administrator commands that could be used by admins to cheat or abuse players. If it is set to 0 you will not be able to use commands on your server such as !gib, !slap, !burn, etc.&lt;br /&gt;
&lt;br /&gt;
Also, you will not be able to use g_logOptions flag 256 (log private messages) unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
g_tyranny must also be enabled in order to specify a client in using the &#039;playsound&#039; server command.&lt;br /&gt;
&lt;br /&gt;
&#039;g_tyranny&#039; and its value appear in the serverInfo string to serve as a warning for perspective players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you enable this, you MUST do so immediately when the server starts (before the first map is loaded). This means putting &amp;quot;set g_tyranny 1&amp;quot; in the .cfg file that is exec&#039;ed on server start. If you try to change this on a running server, you will get the message &amp;quot;g_tyranny is read only.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_warningOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar changes the behaviour of the shrubbot !warn command. By setting flag 1 or 2 you activate the advanced warning (storage) system&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Link stored warnings to the guid of a player&lt;br /&gt;
&lt;br /&gt;
2	Link stored warnings to the ip of the player&lt;br /&gt;
&lt;br /&gt;
4	Remove the oldest warning when the total maximum ammount of warnings is reached&lt;br /&gt;
&lt;br /&gt;
8	Auto-kick a player for 2 minutes when he has more than g_maxWarnings warnings&lt;br /&gt;
&lt;br /&gt;
16	Allow clients to see their own warnings with the /warnings command&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarnings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The ammount of warnings that can be stored for 1 player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_warningDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in hours that a warning will be stored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 24&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBan ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, anyone kicked for the reasons you specify, will be temporarily banned for g_autoTempBanTime seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Tempban when reaching g_teamDamageRestriction&lt;br /&gt;
&lt;br /&gt;
2	Tempban when someone is kicked by a shrubbot admin (using the !kick command). A normal shrubbot !kick kicks for 120 seconds&lt;br /&gt;
&lt;br /&gt;
4	Tempban when someone is kicked by the advanced warning system. A normal kick by the warning system lasts 120 seconds&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifically in version 0.5.0, this feature is bugged and can cause broken shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBanTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds kicked for when g_autoTempBan is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1800&lt;br /&gt;
&lt;br /&gt;
== g_minConnectLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The minimum shrubbot adminlevel required for players to be able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This only works for positive levels, any value &amp;lt;= 0 will allow everyone to connect. Bots won&#039;t be able to connect either.&lt;br /&gt;
&lt;br /&gt;
== g_greetingPos ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Location where the shrubbot greetings are displayed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3|4]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Chat area&lt;br /&gt;
&lt;br /&gt;
1	Center of screen&lt;br /&gt;
&lt;br /&gt;
2	Left notification area&lt;br /&gt;
&lt;br /&gt;
3	Top of the screen&lt;br /&gt;
&lt;br /&gt;
4	Console only&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adminProtection ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins levels can be protected against spoofing. The protection works by establishing trust between the client and the server. The trust must be confirmed by an online human admin for the new trusted admins to gain access to their assigned level. Specific command !confirm is used for it. Do note that establishing the trust between the server and the player is not the same as assigning admin level. In fact, anyone who is capable of recognizing the real admin can be safely allowed to use the !confirm command. The !setlevel command will automatically establish the trust if the admin level protection is enabled and the level is above or equal to the g_protectMinLevel. The admin protection is designed so that only the important admin levels are protected. This mean that levels above the g_protectMinLevel require established trust between the server and the client. Normal guests do not need this. It is also advisable to not set the g_protectMinLevel too low to avoid server load with these admins.&lt;br /&gt;
&lt;br /&gt;
The trust needs to be established only once. After that, the client and the server can negotiate the confirmation silently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technical Details:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The trust is established using one-way hashes. When the !setlevel or !confirm is used on a player, the server generates 2 unique 32 character long values. Both of these values are stored both in the client (silent.dat) and the server database. Their meanings are server identification and a client key.&lt;br /&gt;
&lt;br /&gt;
Authentication negotiation:&lt;br /&gt;
&lt;br /&gt;
1. When the player next time connects to the server, the server sends one of the stored values as server identification and another, newly generated random 32 character value, to initiate the negotiation.&lt;br /&gt;
&lt;br /&gt;
2. The client will use the server identification value it received from the server to match with the key value associated with the server identification. It will hash the 32 character key value with the supplied random 32 character value and send the result back to the server.&lt;br /&gt;
&lt;br /&gt;
3. The server, knowing both values, the client key and the random character string it sent, can compare the hash against a hash it generates itself with the same values.&lt;br /&gt;
&lt;br /&gt;
4. If the hashes match (one supplied from client and the one it just generated), the client is authenticated to his admin level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Log succesfull authentications to the cheat log&lt;br /&gt;
&lt;br /&gt;
2	Log admin spoofing attempts to the cheat log&lt;br /&gt;
&lt;br /&gt;
4	Report admins waiting for confirmation on their level to the admin chat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_protectMinLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins can be protected against spoofing. The protection works by establishing trust between the client and the server if the admin level is higher then the g_protectMinLevel. Setting this to -1 will disable the freature. Do note that when you enable the feature, noone has yet established trust with the server and the first one to have it, must be confirmed by an rcon command. Either !setlevel if the database still doesn&#039;t have admins or !confirm if the admin has been set in the database already.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_muteRename ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to 1 the muted player won&#039;t be allowed to change his name while he is muted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Disabled. Allow players to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow player to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimium required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
= XP Save =&lt;br /&gt;
&lt;br /&gt;
== g_XPSave ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls XP save behaviours.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Store xp when a client disconnects. This is always required for the XP save to work.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t reset xp to the pre-map start values on a map restart, shuffle, etc.&lt;br /&gt;
&lt;br /&gt;
4 Never reset xp (ever).&lt;br /&gt;
&lt;br /&gt;
8 Force the disconnection of clients with the same GUID as the connecting client. This is useful in saving the stored XP of players with unreliable network connections since they should still get their stored XP even if reconnecting immediately with a new IP address.&lt;br /&gt;
This feature is enabled by default unless you have sv_wwwDlDisconnected enabled. sv_wwwDlDisconnected seems to interfere with this feature, so do not enable this flag if you change pk3&#039;s on your server often because stored XP will be lost over disconnected downloads.&lt;br /&gt;
&lt;br /&gt;
16 Store the XP at restarts, nextmaps, mapvotes, campaignvotes and similar cases.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge_xp ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her xp skills. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;120m&amp;quot; - 120 minutes &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If g_XPSaveMaxAge is less than g_XPSaveMaxAge_xp, g_XPSaveMaxAge will be used.&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her skills/killrating/playerrating/mute status. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier for this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See also g_XPSaveMaxAge_xp &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1w&lt;br /&gt;
&lt;br /&gt;
== g_resetXPMapCount  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How many maps occur before XP is reset. If g_XPSave flag 4 is set, g_resetXPMapCount is ignored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting is only valid when the g_gametype is 6 (see Map Voting)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMinXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The increment of XP during one map that is required for the XP gained during the map to get saved and the time of the latest XP save to get updated. The silEnT mod separates the XP save and the connection times so that players who visit spectators without playing will not be removed by the g_dbUserMaxAge but can still lose their stored XP if they do not play. Admins can adjust the requirement with this value. Using -1 will disable the requirement and XP save will consider every connection valid for the XP save. Using value 0, will consider XP save valid if the player has gained even 1 XP point during the map. Please note that the value is only for one map and using high values may cause some players to not achieve enough XP to get their XP updated. Also note, that this does not prevent SMG weapon statistics or rating values to get updated into the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_maxXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a vicious cvar that will reset a players XP once their overall XP score reaches it.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_maxXPResetWarn ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Displays a message warning players whose XP is close to being reset due to the g_maxXP setting. The warning is displayed every thirty seconds once the warning threshold is passed.&lt;br /&gt;
&lt;br /&gt;
This setting can have an integer value (eg, 950), in which case it means that the player will be warned every thirty seconds once he has more than 950 XP.&lt;br /&gt;
&lt;br /&gt;
This setting can also have percentage value (eg, &amp;quot;90%&amp;quot;), and that will cause the warnings to start when the player reaches 90% of g_maxXP XP.&lt;br /&gt;
&lt;br /&gt;
If you specify a negative value, players will be warned when that offset is hit. For example:&lt;br /&gt;
&lt;br /&gt;
For a value of -75, warnings will to display then players have g_maxXP - 75 XP&lt;br /&gt;
&lt;br /&gt;
For a value of -2%, warnings will display when players have 98% of g_maxXP&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optionally enables the awarding of XP based upon the amount of damage a player has done to the opposing team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disabled: use normal ET XP awarding methods&lt;br /&gt;
&lt;br /&gt;
1 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the skill category of the weapon used. When this mode is enabled, kills (regardless of method) are awarded a fixed value of 1 point of XP.&lt;br /&gt;
&lt;br /&gt;
2 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the Battle Sense category. Normal XP amounts are awarded for kills (typically 3-5 XP).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXPLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting determines the amount of damage that a player must do to earn 1 point of XP. See g_damageXP for additional information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_XPDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a bitmask that controls the XP decay feature.&lt;br /&gt;
&lt;br /&gt;
See also g_XPDecayRate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Enable XP Decay&lt;br /&gt;
&lt;br /&gt;
2	Do not decay a player&#039;s XP when they are disconnected from the server&lt;br /&gt;
&lt;br /&gt;
4	Do not decay a player&#039;s XP for the class they are currently playing as (e.g. Medic).&lt;br /&gt;
&lt;br /&gt;
8	Do not decay a player&#039;s XP while they are spectating&lt;br /&gt;
&lt;br /&gt;
16	Do not decay a player&#039;s XP during warmup/intermission&lt;br /&gt;
&lt;br /&gt;
32	Do not decay a player&#039;s XP when he/she is playing. This means that they are on a Allies or Axis and the game is active.&lt;br /&gt;
&lt;br /&gt;
64	Do not decay a player&#039;s Battle Sense XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
128	Do not decay a player&#039;s Light Weapons XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayRate ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the rate (in skillpoints per second) that XP skill points for each skill will decay when g_XPDecay is enabled.&lt;br /&gt;
&lt;br /&gt;
Setting this to 0.1 would result in a player losing 6 points per minute IN ALL SKILLS, so up to 42XP per minute if the player has skill points for each skill.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;5000/o&amp;quot; - Decay 5000xp per skill per month&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;1000/w&amp;quot; - Decay 1000xp per skill per week&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;500/d&amp;quot; - Decay 500xp per skill per day&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;40/h&amp;quot; - Decay 40xp per skill per hour&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;2/m&amp;quot; - Decay 2xp per skill per minute &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayFloor ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the minimum that any particular skill can be reduced to by g_XPDecay.&lt;br /&gt;
&lt;br /&gt;
For example, setting this to 140.0 will ensure that no player will ever lose rank or skill levels due to g_XPDecay. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flood Protection = &lt;br /&gt;
&lt;br /&gt;
== g_floodprotect  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable/disable silEnT flood protect. Flooding means that a client is sending too many messages to the server (vsays, callvotes, etc...). Enabling g_floodprotect disables the engine&#039;s sv_floodprotect functionality. If you enable g_floodprotect, make sure you set a value for g_floodthreshold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&amp;amp;nbsp;&#039;&#039;&#039;1&lt;br /&gt;
&lt;br /&gt;
== g_floodthreshold  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of messages per second before ignoring the client&#039;s messages. Only in effect when g_floodprotect is turned on.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
== g_floodWait  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of milliseconds between two messages when g_floodprotect is enabled. This is a hard limit so admins aren&#039;t allowed to override it. 1000 milliseconds copies sv_floodprotect behaviour. This CVAR should not have a value below 500 in order to keep a public server playable.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_voiceChatsAllowed  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of voicechats allowed in minute.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Player Statistics, Rating and Team Balance =&lt;br /&gt;
&lt;br /&gt;
== g_stats  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a bitflag cvar used to control the way statistics are handled.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&amp;lt;br&amp;gt;1 When shooting a corpse to gib, do not count it as a hit.&amp;lt;br&amp;gt;2 When shooting a corpse to gib, do not count it as a shot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;amp;nbsp;Set this to 3 to use the behaviour of etmain and shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_playerRating_minplayers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of players that must participate in a map in order for it to count towards each player&#039;s player rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 8&lt;br /&gt;
&lt;br /&gt;
== g_shuffle_rating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the rating system used by shuffle.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 | 4 | 5 ]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player XP&amp;lt;br&amp;gt;2 Use the rate at which players have gained XP since connecting.&amp;lt;br&amp;gt;3 Use the killRating (g_killRating must be nonzero)&amp;lt;br&amp;gt;4 Use the playerRating (g_playerRating must be nonzero)&amp;lt;br&amp;gt;5 Use the playerRating (g_playerRating must be nonzero), but take the map into account and give the teams closest to 50/50&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_killRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to 0, silEnT will track a player&#039;s killing ability using an ELO type statistic similar to chess. Each kill will increase a player&#039;s kill rating based on how hard the kill was. Killing unskilled players will result in very few points whereas an unskilled player killing a skilled player will result in more points.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use kill rating. A dummy flag since any non-zero value for g_killRating will enable it.&amp;lt;br&amp;gt;2 Make kill rating visible. Players can use /killrating and at the end of each map a message will display the top killers for the map and overall.&amp;lt;br&amp;gt;4 Log files will include the GUIDs of the players involved in kills. This makes kill tracking a lot easier.&amp;lt;br&amp;gt;8 Disable kill rating from the score board. This can prevent players from playing for higher kill rating alone. This does not prevent the &amp;quot;killrating&amp;quot; client command enabled with flag 2 from working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_playerRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to non zero positive value, silEnT will track a player&#039;s ability to win against good teams using an ELO type statistic similar to chess. Each win will increase a player&#039;s rating based on how hard the opposing team was. Skilled teams defeating less skilled teams will result in very few points whereas an relatively low- rated team defeating a good team will result in more points. Player rating also takes into account the number of players on each team (less points when a very large defeats a small one) and which side tends to win more often on the current map (e.g. Allies tend to win tc_base).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player rating. A dummy flag since any non-zero value for g_playerRating will enable it.&amp;lt;br&amp;gt;2 Make player rating visible. Players can use /playerrating and at the end of each map a message will display the top player.&amp;lt;br&amp;gt;4 Put player rating on the scoreboard instead of the XP.&amp;lt;br&amp;gt;8 Print out extra info at the end of a round that can be used to further refine the playerrating model.&amp;lt;br&amp;gt;16 The same as flag 8 except a lot more info is output.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamDiff  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If g_teamForceBalance is set, setting g_unevenTeamDiff will notify all players when team numbers are off by g_unevenTeamDiff or more. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamFreq&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;: Set to 0 to disable this feature&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamFreq  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How often the team disparity notification occurs. Only valid when g_unevenTeamDiff is set to a positive value. Value is in seconds.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamDiff&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
= Class and Weapon Restrictions =&lt;br /&gt;
&lt;br /&gt;
== g_medicChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the medic charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 45000&lt;br /&gt;
&lt;br /&gt;
== g_engineerChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the engineer charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== g_LTChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the field ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 40000&lt;br /&gt;
&lt;br /&gt;
== g_soldierChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the soldier charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20000&lt;br /&gt;
&lt;br /&gt;
== g_covertopsChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the covert ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== team_maxPanzers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxPanzers, team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 panzerfaust soldiers, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team with few players (for example, 5) will be able to have 1 panzerfaust soldier. They will be able to have their second panzerfaust soldier when they have 11 players on the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team will not be able to have any panzerfaust soldiers until there are 10 players in the team. They will be able to have their second panzerfaust soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMortars  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 mortar soldiers, regardless of how many players are on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team with few players (for example, 5) will be able to have 1 mortar soldier. They will be able to have their second mortar soldier when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team will not be able to have any mortar soldiers until there are 10 players in the team. They will be able to have their second mortar soldier when there are 20 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Set this to -1 to disable limits&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFlamers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 flamethrower soldiers, regardless of how many players are on the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team with too few players (for example, 5) will be able to have 1 flamethrowe soldier. They will be able to have their second flamethrowe soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team will not be able to have any flamethrower soldiers until there are 10 players in the team. They will be able to have their second flamethrower when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMG42s  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 MG42 soldiers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team with too few players (for example, 5) will be able to have 1 MG42 soldier. They will be able to have their second MG42 soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team will not be able to have any MG42 soldiers until there are 10 players in the team. They will be able to have their second MG42 soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxGrenLaunchers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 grenade launchers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team with too few players (for example, 5) will be able to have 1 grenade launcher. They will be able to have their second grenade launcher when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team will not be able to have any grenade launchers until there are 10 players in the team. They will be able to have their second grenade launcher when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMedics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 medics, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team with too few players (for example, 3) will be able to have 1 medic. They will be able to have their second medic when they have 7 players in the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team will not be able to have medics until there are 7 players in the team. They will be able to have their second medic when there are 14 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxEngineers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 engineers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team with too few players (for example, 3) will be able to have 1 engineer. They will be able to have their second engineer when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team will not be able to have engineers until there are 7 players in the team. They will be able to have their second engineer when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFieldOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 field opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team with too few players (for example, 3) will be able to have 1 field ops. They will be able to have their second field ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team will not be able to have field opses until there are 7 players in the team. They will be able to have their second field ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxCovertOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 covert opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as coert opses, and a team with too few players (for example, 3) will be able to have 1 covert ops. They will be able to have their second covert ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as covert opses, and a team will not be able to have covert opses until there are 7 players in the team. They will be able to have their second covert ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_minAirstrikeTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airstrikes PER TEAM.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_minArtyTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airtillery strikes PER TEAM. Attempts to do airstrike before the timeout will get &amp;quot;Insuffient fire support&amp;quot; message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamLandmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of landmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamTripmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of tripmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_minGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of clients needed to start a match.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The maximum allowed amount of active clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Player Inactivity =&lt;br /&gt;
&lt;br /&gt;
== g_inactivity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity before the player is made a spectator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_spectatorInactivity==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity as spectator before the player is kicked/dropped from server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_inactivityOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional inactivity options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Don&#039;t drop shoutcasters&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t drop spectators when in following mode&lt;br /&gt;
&lt;br /&gt;
4 ETmain inactivity behavior (don&#039;t wait for a full server)&lt;br /&gt;
&lt;br /&gt;
8 Shrubbot flag &#039;0&#039; admins will be moved to spectators due to team inactivity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Gametypes =&lt;br /&gt;
&lt;br /&gt;
== g_gametype	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please see Map Voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [2|3|4|5|6|7]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
2 Objective&lt;br /&gt;
&lt;br /&gt;
3 Stopwatch&lt;br /&gt;
&lt;br /&gt;
4 Campaign&lt;br /&gt;
&lt;br /&gt;
5 Last Man Standing&lt;br /&gt;
&lt;br /&gt;
6 Map Voting&lt;br /&gt;
&lt;br /&gt;
7 Team Death Match&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== Campaign ==&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
&lt;br /&gt;
== Last Man Standing ==&lt;br /&gt;
&lt;br /&gt;
== Map Voting  ==&lt;br /&gt;
&lt;br /&gt;
This gametype allows for the players to decide on the map that is played next. When g_gametype is set to 6 a new screen is introduced during intermission. This screen list, depending on server configuration, a list of up to 32 maps that are loaded on the server, and that all players can vote on. Once intermission ends, the server totals the votes, and plays the next map based upon the vote results &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;;Miscellaneous notes about mapvoting:&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
Total maps allowed is 32. If server admin has more than 32 .bsp files, only the first 32 are used Tie breaker. The default tie-breaker is such that if 2 or more maps are tied with the same number of votes, the map that was played most recently is selected. Bots and connecting players do NOT count for mapvoting, everyone else (including spectators) does. If no maps are voted for, the default &amp;quot;nextmap&amp;quot; cvar is used, so server admins have to specify a default map cycle of sort, usually in the following format: &lt;br /&gt;
&amp;lt;blockquote&amp;gt;set d1 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map oasis&amp;amp;nbsp;; set nextmap vstr d2&amp;quot;&amp;lt;br&amp;gt;set d2 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map battery&amp;amp;nbsp;; set nextmap vstr d3&amp;quot;&amp;lt;br&amp;gt;set d3 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map goldrush&amp;amp;nbsp;; set nextmap vstr d1&amp;quot;&amp;lt;br&amp;gt;vstr d1&amp;lt;br&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
This means that the default map, upon server start, will be oasis. From there, map voting will be used. If at any point, no map is voted for, battery will be played, etc &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== g_mapVoteFlags  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; This cvar controls the behaviour of the map voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Changes the tie breaker so that the map not played in the longest wins&amp;lt;br&amp;gt;2 Intermission doesn&#039;t end until g_intermissionReadyPercent people have voted. If there are no players connected to the server, intermission will end at the timeout. (WARNING: This means that if there are spectators connected and not voting, the next map will not load until those spectators either vote, disconnect, or get kicked by the system)&amp;lt;br&amp;gt;4 Multi vote: Allows everybody to vote for 3 maps instead of one, first choice map gets 3 votes, second choice gets 2, third choice gets one&amp;lt;br&amp;gt;8 Don&#039;t randomize the maps, so they will always appear in the same order&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_maxMapsVotedFor  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;How many maps are available to players for voting upon during intermission.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6 &lt;br /&gt;
&lt;br /&gt;
=== g_minMapAge  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
How long a map is ineligible for voting during intermission, after it is played last time.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
=== g_includedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Used to include map regardless of any other restrictions. Including g_excludedMaps setting. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; or otherwise the map will be ignored in the list.&lt;br /&gt;
Only valid when map voting is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
=== g_excludedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Used to exclude map that would otherwise be listed in the map voting list. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; otherwise the map will not be excluded. &amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; To exclude railgun and battery maps from map voting use below command:&amp;lt;br&amp;gt; &lt;br /&gt;
set g_excludedMaps &amp;quot;:railgun:battery:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Team Death Match (TDM) ==&lt;br /&gt;
&lt;br /&gt;
=== g_TDMType	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The type of the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map ends only when timelimit hits&lt;br /&gt;
&lt;br /&gt;
2 Map ends when either the target score is reached or the timelimit hits&lt;br /&gt;
&lt;br /&gt;
3 Map ends only when the target score is reached&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_TDMOptions	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Possible options for the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map voting is enabled during the intermission (i.e. The players vote for the next map to play during the intermission.)&lt;br /&gt;
&lt;br /&gt;
2 Completing the map objective will give the team score bonus that is controlled by the g_TDMObjBonus server cvar&lt;br /&gt;
&lt;br /&gt;
4 Teams get negative points when they do selfkills or teamkills&lt;br /&gt;
&lt;br /&gt;
8 Players cannot selfkill during the TDM. Regardless of other selfkill settings the server has configured&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
=== g_TDMScore===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the target score the teams attempt to make to win the game in TDM game types 2 and 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
=== g_TDMObjBonus===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the value that is added to the team score if the team completes the map objective. Adding the bonus does not depend of the TDM type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
= Mapconfigs and Mapscripts =&lt;br /&gt;
&lt;br /&gt;
== g_mapConfigs	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On each map load, the silEnT server will execute 2 configs if possible. The default.cfg and after that a map specifig config file [mapname].cfg. For example if you set g_mapConfigs to &#039;mapcfg&#039;, when the map fueldump starts, the server will try to exec &#039;mapcfg/fueldump.cfg&#039;.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;&amp;quot; to disable it.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;.&amp;quot; to look for the cfg file in the current directory (fs_homepath).&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.5.2, admins can add settings that are executed for specific player amounts. The commands are enclosed in [players low-high] ... [/players] blocks. The low is the lowest amount of players for those settings and high is the maximum amount of players for those settings. For example:&lt;br /&gt;
&lt;br /&gt;
[players 0-10]&amp;lt;br&amp;gt;&lt;br /&gt;
set team_maxPanzers 0&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will disable panzerfaust when player amount is less or equal to 10. The blocks can be placed anywhere in the map config files. If the block is closed with [/players], the following commands do not depend on the player amounts. The player blocks can not be nested. If two player blocks follow each other, the second definition opens a new one and the old one closes. For example:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 0-15]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:mlb_temple:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 16-*]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:adlernest:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will exclude map MLB Temple if the player amount is less or equal to 15 and exclude map Adlernest if the player amount is 16 or more. The player amount counting is controlled with g_playerCounting server cvar.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When in g_gametype 6 mode (Map Voting) and g_resetXPMapCount is set, an additional file named vote_X.cfg is also exec&#039;ed. X indicates the position of the next map in the campaign. For example, vote_2.cfg will exec&#039;ed such that when map 1 ends, any cvars in vote_2.cfg will affect map voting for map 2. Player blocks are not used with vote_X.cfg files.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_mapScriptDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to ETPro&#039;s b_mapscriptsdirectory.  Set it to the name of a directory in your fs_path that contains custom map scripts. For example you can copy the &#039;etpromapscripts&#039; directory from the ETPro distribution to your &#039;silent&#039; directory and add: set g_mapScriptDirectory &amp;quot;etpromapscripts&amp;quot; to your cfg. Setting g_mapScriptDirectory to &amp;amp;quot;&amp;amp;quot; disables any use of map .script files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
It is strongly recommended that you use the map scripts distributed with silEnT or ETPub since these updated scripts fix very important bugs in some of the original map scripts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_campaignFile  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
If you set this to the name of a file in your fs_path it will be interpreted as a .campaign script and all other .campaign scripts in your pk3 files will be ignored. This is useful for making custom campaigns since you don&#039;t need to offer a pk3 file containing a custom .campaign script for all clients to download. However, if the client has not downloaded this .campaign file in a pk3, they will not see information about the campaign. &lt;br /&gt;
&lt;br /&gt;
Such information includes: &lt;br /&gt;
&lt;br /&gt;
*will not display in the VOTE -&amp;amp;gt; MAP list &lt;br /&gt;
*map locations will not draw on the map of Europe. &lt;br /&gt;
*campaign description will not draw in the right panel &lt;br /&gt;
*total number of maps and current maps order in the campaign &lt;br /&gt;
*will not be shown in the intermission screens.&lt;br /&gt;
&lt;br /&gt;
Also, even though the built-in campaigns cmpgn_centraleurope and cmpgn_northafrica will not be valid, they will still appear in the client&#039;s VOTE -&amp;amp;gt; MAP menu. If a vote for one of them passes, nothing will happen. &lt;br /&gt;
&lt;br /&gt;
Setting this to &amp;quot;&amp;quot; disables it. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_playerCounting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls how the player amount is calculated for the mapconfigs. The player amount value is the highest number of simultaneously fully connected players during the map or warmup. The player counting can be disabled from the warmup period. If the player counting is enabled during the warmup, the players are counted right at the end of the warmup. This allows the teams to stabilize after intermission. Similarly the counting is triggered always with a 3 second delay from the change in the teams. Team changes include players joining the server and staying &lt;br /&gt;
in the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable filtering. This will add the 2 latest values together and divide them by 2.&lt;br /&gt;
&lt;br /&gt;
2 No player counting during warmup.&lt;br /&gt;
&lt;br /&gt;
4 Count spectators into players. Without this flag, only players in the playing teams are counted.&lt;br /&gt;
&lt;br /&gt;
8 Bots are not included into the player count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= Censoring =&lt;br /&gt;
&lt;br /&gt;
== g_censor==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the chat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the player names.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorPenalty==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This controls the censoring behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kill the player&lt;br /&gt;
&lt;br /&gt;
2 Kick players with names containing words in g_censorNames&lt;br /&gt;
&lt;br /&gt;
4 Kill, but don&#039;t gib&lt;br /&gt;
&lt;br /&gt;
8 Auto-mute for g_censorMuteTime [60] seconds&lt;br /&gt;
&lt;br /&gt;
16 Lose the amount of xp specified in g_censorXP&lt;br /&gt;
&lt;br /&gt;
32 Burn&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use both 1 and 4, it will gib (like shrub did).&lt;br /&gt;
&lt;br /&gt;
== g_censorNeil==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter. It&#039;ll catch some symbol and number replacements,&lt;br /&gt;
and spaces now. It also adds some common words and common words with &amp;quot;swears&amp;quot; in them&lt;br /&gt;
that should really be OK. For example, it will not censor &amp;quot;assassin&amp;quot; but it will&lt;br /&gt;
censor &amp;quot;ass&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorNeilNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter for player names.  See g_censorNeil description for&lt;br /&gt;
details.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorMuteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds to auto-mute as a censor penalty. Only works if bitflag 8 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_censorXP==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of XP to lose as a censor penalty. Only works if bitflag 16 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
= Voting =&lt;br /&gt;
&lt;br /&gt;
== g_voting	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Control&#039;s voting behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Votes will pass on the number of votes cast rather than total eligible voters.&lt;br /&gt;
&lt;br /&gt;
2 Votes that pass do not count against the vote_limit for the caller.&lt;br /&gt;
&lt;br /&gt;
4 &amp;quot; (called by NAME)&amp;quot; is appended to the vote description where NAME is the name of the player that called the vote.&lt;br /&gt;
&lt;br /&gt;
8 Show the number of YES and NO votes after a votes has passed or failed. This also shows if a vote is canceled or passed by an admin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== vote_limit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This value defines how many votes one player can invoke during one map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== vote_percent==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The required percentage of yes votes for the vote to pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== vote_allow_comp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for competition settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_gametype==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for gametype.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_kick==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for kicking a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for map to be played.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_mutespecs==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for starting the next map in the map rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_pub==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for public game settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_referee==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for making a player a referee.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams based on XP.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for swapping the teams. Allied players go to the axis team and axis players go to the allied team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_friendlyfire==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the map time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_warmupdamage==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling/enemies only warmup damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_antilag==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling antilag.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_balancedteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling balanced teams enforcing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_muting==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting/unmuting a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for surrendering the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the campaign.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the campaign to the next one in the campaign rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows making freely written polls using the vote system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams without restarting the map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_cointoss==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for doing cointoss.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_putspec==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for moving a player to the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_block_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the match allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams without restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for starting the next map in the map rotation allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for swapping the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for surrendering the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for played map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for changing the map time allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for polls allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for next campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_noVoteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds must pass between two votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_voteResultsMinLevel==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the minimum admin level for the players to see the results of the votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_votedMuteLength==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the length in seconds of the mute issued by a passed mute vote. You can use modifiers with this value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3h&lt;br /&gt;
&lt;br /&gt;
= Weapons, Classes and Skills =&lt;br /&gt;
&lt;br /&gt;
== g_poison	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Gives medics the ability to poison enemies by sticking with their medic&lt;br /&gt;
syringe.  Enemies will be damaged at g_poison/second when g_poison is&lt;br /&gt;
set to a value more than 0.  Setting to 0 will disable poison needles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_poisonFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the effects of g_poison.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Poisoned player&#039;s screen shakes.&lt;br /&gt;
&lt;br /&gt;
2 Other players see the poisoned player&#039;s head shaking.&lt;br /&gt;
&lt;br /&gt;
4 Poisoned player appears to bend over (hurl) every 2 seconds. (poisoned player does not see this happen.)&lt;br /&gt;
&lt;br /&gt;
8 Poisoned player cannot use +attack.  NOTE: because of client side prediction, the client may see the gun firing occasionally if they hold down +attack, but no shots are fired.&lt;br /&gt;
&lt;br /&gt;
16 Poisoned player is disoriented (view turned upside down).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
== g_medics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the medic, to nerf or otherwise change their behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Medics can&#039;t pick up their own health packs to cure themselves of poison needle effects.&lt;br /&gt;
&lt;br /&gt;
2 Medics can&#039;t pick up their own health packs at all.&lt;br /&gt;
&lt;br /&gt;
4 A level 4 medic will always be revived to full health (no matter what the level of the reviving medic is).&lt;br /&gt;
&lt;br /&gt;
8 Value is not in use.&lt;br /&gt;
&lt;br /&gt;
16 Medics do not spawn with akimbo pistols, regardless of their light weapons skill.&lt;br /&gt;
&lt;br /&gt;
32 Medics spawn with pistol only, and can&#039;t pick up SMG of either team. However, any class can steal a medics uniform, if the g_classChange is set to 1, and receive the medic benefits while retaining their current weapons, including akimbos and SMG.&lt;br /&gt;
&lt;br /&gt;
64 Medics can use syringes to heal living teammates as an alternative to the tk/revive cycle.&lt;br /&gt;
&lt;br /&gt;
128 Level 4 medics can inject other players with their adrenaline.  This can be done when holding the revive needle by pressing the alt-fire button, or with the /adrenother client command.&lt;br /&gt;
&lt;br /&gt;
256 Level 4 medics cannot adrenaline self.  If this flag is on, Medics will not receive adrenaline upon reaching level 4. (This won&#039;t affect flag 128)&lt;br /&gt;
&lt;br /&gt;
512 Adrenaline use takes only half of the chargebar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adrenDmgReduction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
The percentage damage reduction after injecting adrenaline. g_adrenDmgReduction is now independent percentage of the caused damage that is inflected when the adrenaline is on. 0 means no damage and 100 means full damage from the weapon. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_medicHealthRegen==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The rate at which medics regenerate health (in HP per second).  This rate is divided into two parts:  The first is from 1 to 110-125 HP (depending on the number of medics per team), and then above that.  The system default is 3/2 (3 HP per second, then 2 HP per second).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 3/2&lt;br /&gt;
&lt;br /&gt;
1 2/2&lt;br /&gt;
&lt;br /&gt;
2 2/1&lt;br /&gt;
&lt;br /&gt;
3 2/0&lt;br /&gt;
&lt;br /&gt;
4 1/1&lt;br /&gt;
&lt;br /&gt;
5 1/0&lt;br /&gt;
&lt;br /&gt;
6 0/0&lt;br /&gt;
&lt;br /&gt;
7 0/1&lt;br /&gt;
&lt;br /&gt;
8 0/2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_throwableKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable knife throwing. The amount of throwable knives is g_maxKnives - 1. Any non zero value will enable knife throwing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of knives a player can posses. Take note that if g_throvableKnives is enabled, the last knife cannot be thrown.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_knifeChargeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long it takes in milliseconds for the &amp;quot;knife&amp;quot; to charge to the maximum throw speed/force.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 800&lt;br /&gt;
&lt;br /&gt;
== g_constructibleXPSharing==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When multiple engineers help build a constructible, each gets his share of XP&lt;br /&gt;
once the constructible is build.  The share of gained XP is proportional to&lt;br /&gt;
how much the engineer built.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_asblock	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Airstrike blocking.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Make an announcement whenever an airstrike is blocked.&lt;br /&gt;
&lt;br /&gt;
2 A player may easily block an airstrike by crouching, standing, or proning over the enemy&#039;s canister to block the airstrike.&lt;br /&gt;
&lt;br /&gt;
4 Reserved.&lt;br /&gt;
&lt;br /&gt;
8 Lvl 3 FieldOPs and higher cannot have the airstrikes blocked by players.&lt;br /&gt;
&lt;br /&gt;
16 Disables teammates blocking airstrikes.&lt;br /&gt;
&lt;br /&gt;
32 Give 2 Battle Sense XP to player that blocks the air strike. No XP given for blocking teammates or your own air strike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_panzersSpeed	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Speed of the panzers. Normal panzer speed is 2500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2500&lt;br /&gt;
&lt;br /&gt;
== g_panzersGravity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzer trajectory will be affected by gravity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dyno==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dynamite Behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmaks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Sudden Death Dynamites enabled. If there is 30 seconds or less on the clock and dynamite is planted on an objective, the clock will continue to run past zero. The match will not end until the dynamite either explodes, or is disarmed. You are not allowed to plant additional dynamite during sudden death.&lt;br /&gt;
&lt;br /&gt;
2 Dynamite chaining enabled. Dynamite will cause other similar dynamites to explode when exploding (only if within blast radius). Dynamites not planted on an objective will blow any other dynamite not on an objective. Dynamite planted on an objective will only blow dynamite on the same objective.&lt;br /&gt;
&lt;br /&gt;
4 Adds a dynamite symbol with the location and the time remaining to all the players on the team of the player who plants the dynamite. This will only happen when dynamite is placed on an objective. The players in the other team will see the dynamite symbol too, but they won&#039;t see the time remaining.&lt;br /&gt;
&lt;br /&gt;
8 Dynamite cannot be disarmed by your team (inlcuding yourself), so only the other team can defuse it.&lt;br /&gt;
&lt;br /&gt;
16 Enable dynamite ID. You can see the owner of a dynamite when you point at it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKick	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Canister and grenade kicking.&lt;br /&gt;
&lt;br /&gt;
Allows players to kick smoke, and air strike canisters, along with grendaes. The integer adjust the amount of force put behind the kick. 75 is a good value, anything below 60 is about useless, and above about 125 is probably too much.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKickOwner	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kicked Canister Ownership.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Kicker does not take ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
1 Kicker takes ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_staminaRecharge	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiplies the rate at which stamina is rebuilt. Setting this value to zero will cause players to not regain any stamina once it is used except through the use of adrenalin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_mineid	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turns on identification of your teammates landmines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_medicSelfhealTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in milliseconds that a medic cannot heal himself after being hit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxPanzerSuicides	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, a player can kill himself g_maxPanzerSuicides times with a panzerfaust. The next panzerselfkill will result in a panzer shooting medpacks.&lt;br /&gt;
&lt;br /&gt;
The amount of suicides is reset every map.&lt;br /&gt;
&lt;br /&gt;
Set to -1 to disable, -2 to always enable (no normal panzers anymore)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_panzerPackDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the g_packDistance for the medpacks fired by the panzerfaust when g_maxPanzerSuicides is enabled.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to use default (etmain)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_weapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_weapons cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 0 field ops doesn&#039;t get binoculars (unless he has &amp;gt;= level 1 Battle Sense)&lt;br /&gt;
&lt;br /&gt;
2 Syringes work underwater&lt;br /&gt;
&lt;br /&gt;
4 Pliers work underwater&lt;br /&gt;
&lt;br /&gt;
8 Fully restore Field ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
16 Half restore FIeld ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
32 Ammo packs restore helmets&lt;br /&gt;
&lt;br /&gt;
64 Drop binoculars if player has them&lt;br /&gt;
&lt;br /&gt;
128 Soldiers with level 4 heavy weapons don&#039;t lose their pistols&lt;br /&gt;
&lt;br /&gt;
256 Garands can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
512 Balance the clip size between the allies and axis rifles. allied rifles get same clip sizes and max ammo as the k43.&lt;br /&gt;
&lt;br /&gt;
1024 Creates a hitbox for mortar shells.  This reduces (or eliminates in some cases) the ability to fire mortars through smaller windows and bunker slits.&lt;br /&gt;
&lt;br /&gt;
2048 Knives will always gib a body (not a player, use g_dmgKnife instead if you want that)&lt;br /&gt;
&lt;br /&gt;
4096 Extra ammo is included with dropped weapons.&lt;br /&gt;
&lt;br /&gt;
8192 &amp;quot;Ammo&amp;quot;/&amp;quot;No ammo&amp;quot; icon is shown for dropped weapons.&lt;br /&gt;
&lt;br /&gt;
16384 Enable fast shooting for Thompson, MP40, PPSh and Sten. 110 ms between shots.&lt;br /&gt;
&lt;br /&gt;
32768 Kill by the shot tripmine is counted for the shooter not the player that planted it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 16384 was added in version 0.6.2.&lt;br /&gt;
&lt;br /&gt;
== g_classWeapons==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar enables certain weapons per class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable PPSH for soldiers&lt;br /&gt;
&lt;br /&gt;
2 Enable PPSH for engineers&lt;br /&gt;
&lt;br /&gt;
4 Enable PPSH for fieldops&lt;br /&gt;
&lt;br /&gt;
8 Enable MP40 and Thompson to be available to both teams in limbo menu&lt;br /&gt;
&lt;br /&gt;
16 Enable MP40 for soldiers.&lt;br /&gt;
&lt;br /&gt;
32 Enable Thompson for soldiers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 8 was added in version 0.6.0.&lt;br /&gt;
&lt;br /&gt;
Flags 16 and 32 were added in version 0.6.2. Also the default value was changed from 15 to 63.&lt;br /&gt;
&lt;br /&gt;
== g_mg42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls optional machine gun behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Machine Guns can make headshots&lt;br /&gt;
&lt;br /&gt;
2 Machine Guns can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_coverts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the Covert Op class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 4 Coverts have more accurate scoped weapons.&lt;br /&gt;
&lt;br /&gt;
2 Disguised coverts can only be identified with the &amp;quot;crosshair name&amp;quot; by level 4 Field Ops.&lt;br /&gt;
&lt;br /&gt;
4 After detonating a satchel charge, the primary weapon will be selected instead of satchel again.&lt;br /&gt;
&lt;br /&gt;
8 Coverts in disguise take half the normal combat damage.&lt;br /&gt;
&lt;br /&gt;
16 Coverts in disguise take no splash damage.&lt;br /&gt;
&lt;br /&gt;
32 Coverts do not automatically lose their uniform if an enemy sees them firing a weapon.&lt;br /&gt;
&lt;br /&gt;
64 Coverts do not automatically lose their uniform if they fire a non-silent weapon.&lt;br /&gt;
&lt;br /&gt;
128 Coverts do not automatically lose their uniforms if they attach to an emplaced MG weapon.  Note that this flag has nothing to do with firing.&lt;br /&gt;
&lt;br /&gt;
256 Coverts are awarded xp for constructive use of smoke.&lt;br /&gt;
&lt;br /&gt;
512 Coverts will lose their uniform if an enemy sees him using ANY weapon (otherwise knife/satchel/smoke/binoc will never lose uni).&lt;br /&gt;
&lt;br /&gt;
1024 A disguised covert can still steal enemy uniforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_enableTMines	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disables/enables tripmines. Tripmines are available only for engineers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_enableDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Improvised Demolition weapon for soldier class.&lt;br /&gt;
Improvised Demolition weapon was introduced in 0.8.0 version of the silEnT mod.&lt;br /&gt;
As mentioned in the original WWII Tank-destruction manual, a big charge could be made of 6 stickgrenade heads around one complete grenade, fixed with wire or rope.&lt;br /&gt;
The central grenade would make the other 6 grenade detonate as well causing an explosion which could damage the light armoured vehicles.&lt;br /&gt;
&lt;br /&gt;
In silEnT mod this weapon is designed to suit exactly the purpose described above.&lt;br /&gt;
To gain the weapon player has to gain 3rd engineer level and 4th soldier level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_skills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optional skill related flags.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players with level 4 battle sense can spot landmines for teammates&lt;br /&gt;
&lt;br /&gt;
2 Players with level 4 engineering can keep the flak jacket for other classes&lt;br /&gt;
&lt;br /&gt;
4 Players with level 4 first aid can keep adrenaline for other classes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== skill_soldier==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in soldier ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_medic	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in medic ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_engineer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in engineer ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_fieldops	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in fieldop ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_covertops==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in covert op ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_battlesense	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in battle sense ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_lightweapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in light weapon ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_panzersVulnerable==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzers that are shot in mid-air will explode.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_maxMarkers ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many danger zones can be marked by the covert ops.&lt;br /&gt;
&lt;br /&gt;
Danger zones were introduced in 0.7.0 version of the silEnT mod. They can be marked by Covert Ops to indicate that some area can be considered dangerous. Such area is then visible on the command map as the red circle zone. Additionally, when the Command Post is built, players are notified by sound and visual signs about entering the danger zone. Players can customize the way they are notified via the HUD editor and the silEnT customize HUD menu.&lt;br /&gt;
&lt;br /&gt;
To mark the danger zone Covert Ops needs to look through his binoculars and press the left mouse button (attack button). The same way Field Ops calls for an airstrike.&lt;br /&gt;
&lt;br /&gt;
To disable the feature set the g_maxMarkers to 0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Friendly Fire =&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFire  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
To enable / disable friendly fire on server.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [0|1] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFireOpts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows greater control over friendly fire events.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
2 Allow &#039;grenade boosting&#039; when friendly fire is off&lt;br /&gt;
&lt;br /&gt;
4 Non-engineer players do not trigger landmines on their own team&lt;br /&gt;
&lt;br /&gt;
8 Players do not trigger trip mines on their own team&lt;br /&gt;
&lt;br /&gt;
16 Tripmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
32 Only engineer that planted the landmine can trigger/defuse it (concerns team landmines only). This flag requires that the flag 4 is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 32 was added in version 0.5.1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_reflectFriendlyFire ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to Shrub&#039;s g_friendlyfire 2 cvar. A multiplier value that determines how much friendly-fire damage, if any, is reflected back to the player that caused the damage. This setting is independent of g_friendlyfire, so damage can be set to reflect on both FF and non-FF servers.&lt;br /&gt;
&lt;br /&gt;
A value of 1.0 would reflect full damage.&lt;br /&gt;
&lt;br /&gt;
A value of 0.5 would reflect half damage.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to disable reflected friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_reflectFFWeapons ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects which category of weapon will reflect when g_reflectFriendlyFire is non-zero.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable reflected damage for Firearms (all types of guns)&lt;br /&gt;
&lt;br /&gt;
2 Enable reflected damage for Grenades and grenade launchers&lt;br /&gt;
&lt;br /&gt;
4 Enable reflected damage for Knives (includes thrown knives)&lt;br /&gt;
&lt;br /&gt;
8 Enable reflected damage for Panzers&lt;br /&gt;
&lt;br /&gt;
16 Enable reflected damage for Flamethrowers&lt;br /&gt;
&lt;br /&gt;
32 Enable reflected damage for Mortars&lt;br /&gt;
&lt;br /&gt;
64 Enable reflected damage for Satchel Charges&lt;br /&gt;
&lt;br /&gt;
128 Enable reflected damage for Artillery and Air Strikes&lt;br /&gt;
&lt;br /&gt;
256 Enable reflected damage for Dynamite and Construction Damage&lt;br /&gt;
&lt;br /&gt;
512 Enable reflected damage for Landmines&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setting this value to zero will override any multiplier set via g_reflectFriendlyFire, effectively disabling reflecting damage.&lt;br /&gt;
&lt;br /&gt;
== g_teamDamageRestriction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When greater than 0, anybody that has this percentage of hits inflicted on a teammate will automatically be kicked. A minimum of g_minhits hits total required before this is calculated. Client can see current stats for themselves by doing a /damage in console. Implemented to mimic shrub behavior as much as is possible, there are other ways to implement this feature, which may be implemented in addition to current manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_minHits ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum number of damaging hits required before calculating if player has reached g_teamDamageRestriction threshold. Flamethrower and landmine hits are adjusted similar to shrub. Medics get -2 hits for every revive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
= Hitboxes, Physics &amp;amp; Anti Lag Settings =&lt;br /&gt;
&lt;br /&gt;
== g_antilagDelay	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Manually delay the antilag of every player on the server. Might give very weird behaviour, so use at own risk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysics==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Creates a smoother movement when enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysicsfps	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Makes the fixedphysics act like all the clients have the same framerate, so that players with &amp;quot;magic&amp;quot; quake engine framerates don&#039;t have an unfair advantage. This CVAR must be between 60 and 333.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 125&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t actually change the framerates in clients, so the clients can keep their own framerates.&lt;br /&gt;
&lt;br /&gt;
== g_antiwarp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro-style antiwarp. This gives non-lagging players a much better game but for laggers it will be a bit more uncomfortable. This CVAR overrides both g_maxWarp AND g_skipCorrection in order to keep things consistent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_realBody ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If server admin sets this, the player hitboxes are adjusted smaller and harder to hit. Value 0 corresponds to the hitboxes used up to 0.5.0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Hitboxes used up to 0.5.0&lt;br /&gt;
&lt;br /&gt;
1 Use smaller hitboxes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see the differences in the hitboxes, use g_debughitboxes server cvar. Do note that this kind of testing should not be done with many players because it will cause huge amount of lag.&lt;br /&gt;
&lt;br /&gt;
== g_skipCorrection	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 to enable Neil Toronto&#039;s unlagged2 skip correction. This will smooth out the movement of players with high packet loss (to a degree). This is similar to etpro&#039;s antiwarp, but has some differences. Neil likes this version better, bani likes his better.&lt;br /&gt;
&lt;br /&gt;
This replaces g_smoothClients from etmain.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarp	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This allows you to control the amount of &amp;quot;warping&amp;quot; that players with high packet loss can do.  The [integer] is the number of server frames that you allow a player to miss before their next movement is put in check.&lt;br /&gt;
&lt;br /&gt;
A server frame is 50ms on a typical server (sv_fps set to 20).  This means that if you set g_maxWarp to 5 you won&#039;t allow players to warp from point A to point B if that distance takes an normal player 1/4&lt;br /&gt;
of a second to travel. Setting this to 1 is a good way to drive off just about everyone from your server.&lt;br /&gt;
&lt;br /&gt;
As far as I can tell, 1000ms is allowed by default in the game, so setting this to any value higher than 39 should have no effect if sv_fps is set to 10.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Fun Wars and Crazy Settings =&lt;br /&gt;
&lt;br /&gt;
== g_panzerwar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Panzerwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_sniperwar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Sniperwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_riflewar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Riflewar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set maximum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 540&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set max speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Watermark =&lt;br /&gt;
&lt;br /&gt;
== g_watermark==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set a watermark that will be displayed to all clients. The watermark must be put in a folder named &amp;quot;watermark&amp;quot; and then this whole folder needs to be zipped into a .pk3 file. The silEnT watermark is &amp;quot;logo_silent.tga&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeAfter	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermark is set, the watermark will fade out after [integer] number of seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermarkFadeAfter is set, the watermark will fade out in [integer] seconds. (So the fading process from 1.0 alpha to 0.0 alpha takes [integer] seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Hitsounds =&lt;br /&gt;
&lt;br /&gt;
== g_hitsounds	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server side hitsound options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable hitsounds&lt;br /&gt;
&lt;br /&gt;
2 Disable hitsounds when shooting wounded players&lt;br /&gt;
&lt;br /&gt;
4 Disable the headshot sound when shooting wounded player in the head. (default hitsound will be used in it&#039;s place)&lt;br /&gt;
&lt;br /&gt;
8 Enable warning sound from hitting team mates&lt;br /&gt;
&lt;br /&gt;
16 Disable hitsounds from poison damage&lt;br /&gt;
&lt;br /&gt;
32 Disable hitsounds from explosive weapons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A client can disable hitsounds with cg_hitSounds client cvar. Also an option to play only headshots is available.&lt;br /&gt;
&lt;br /&gt;
== g_defaultHitSounds ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects the default hit sounds on the server. Starting from silEnT 0.6.0, it is possible for the players to choose what kind of hit sounds are played. If the client cvar cg_hitSoundType is 0, the g_defaultHitSounds determines what type of hit sounds are used. Also, if the client cvar cg_hitSoundType is 0, the server may also add custom hit sound files in a custom pk3 file. These sounds are automatically loaded if available. However, if the client cvar cg_hitSoundType is 1, 2 or 3, the client will use strictly the hit sounds they have selected. Custom hit sounds are placed to the root folder &amp;quot;sounds/hitsounds&amp;quot; in the custom pk3. They must never overload any of the files in the subfolders, silent, etpro or etpub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 No selection, will default to silEnT in the client end.&lt;br /&gt;
&lt;br /&gt;
1 Defaults silEnT hitsounds.&lt;br /&gt;
&lt;br /&gt;
2 Defaults ETPro hitsounds.&lt;br /&gt;
&lt;br /&gt;
3 Defaults ETPub hitsounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
= Intermission =&lt;br /&gt;
&lt;br /&gt;
== g_intermissionTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the length of time the end of game screens displays before loading the next map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_intermissionReadyPercent	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The percent of connected players who need to hit the &amp;quot;READY&amp;quot; button to move on to the next map without waiting g_intermissionTime to run out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
= Miscellaneous =&lt;br /&gt;
&lt;br /&gt;
== g_proneDelay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set, there will be 1750 ms delay after every prone or getting up before the player can prone or get up again. Also, weapon spread will be maxed for 1 second after proning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_realPlayTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Show additional real play time of the payer (without spec time) in the debriefing screen at the end of the map.&lt;br /&gt;
For instance: 6/10 would mean that player played 6 minutes, was on the server for 10 minutes and 4 minutes was in spec.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== g_extraStatistics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional statistics over the end game awards.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player with most mine kills&lt;br /&gt;
&lt;br /&gt;
2 Player with most mine damage inflicted&lt;br /&gt;
&lt;br /&gt;
4 Player with most knife kills&lt;br /&gt;
&lt;br /&gt;
8 Player with most gibs&lt;br /&gt;
&lt;br /&gt;
16 Player with most artillery kills&lt;br /&gt;
&lt;br /&gt;
32 Player with most airstrike kills&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_packDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the distance at which health packs and ammo packs are thrown. Set this to 0 to make it just like etmain.  The settings should be similar to shrubet so set this to 2 for a subtle improvement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, medics will drop [integer] number of health packs when they are gibbed.  If set to -1, medics will drop the number of health packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropAmmo	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, fieldops will drop [integer] number of ammo packs when they are gibbed.  If set to -1, fieldops will drop the number of ammo packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tossDistance==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the velocity at which health or ammo packs are tossed from the dead body when g_dropHealth or g_dropAmmo are activated. This changes the distance that these packs travel from the corpse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_misc==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Miscellaneous options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Type: &#039;&#039;&#039;bitmask&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable double jump.&lt;br /&gt;
&lt;br /&gt;
2 Enable binoc master competition. Requires g_weapons 64 to be set.&lt;br /&gt;
&lt;br /&gt;
4 When a player is killed he can see the HP the killer has left.&lt;br /&gt;
&lt;br /&gt;
8 Disable self damage.&lt;br /&gt;
&lt;br /&gt;
16 Players can not jump if stamina is too low.&lt;br /&gt;
&lt;br /&gt;
32 Enable Jaymod style doublejump.&lt;br /&gt;
&lt;br /&gt;
64 Disable Falling Damage.&lt;br /&gt;
&lt;br /&gt;
128 Announce revives.&lt;br /&gt;
&lt;br /&gt;
256 Setting this flag disables the &amp;quot;First Blood&amp;quot; announcement.&lt;br /&gt;
&lt;br /&gt;
512 Full body predict. This makes it harder to get inside for example walls and stones. Same as ETPub g_misc 32 + 256. Do note that this can cause problems when proning through windows and similar narrow passages&lt;br /&gt;
&lt;br /&gt;
1024 Enable the enemy team objective carry indicator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
* Flag 1024 was added in version 0.8.2.&lt;br /&gt;
&lt;br /&gt;
== g_moverScale	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiply the speed of movers (e.g. tanks) by float.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_slashKill==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the behavior of the /kill command. See also g_fear and g_maxSelfkills.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player spawns with half charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
2 Player spawns with 0 charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
4 Restores the charge bar to the same state it was in at the moment the player issued /kill (regardless of how long they were in limbo)&lt;br /&gt;
&lt;br /&gt;
8 Disable /kill when player is frozen&lt;br /&gt;
&lt;br /&gt;
16 Disable /kill when player is poisoned&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxSelfkills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of times a player can use /kill per map. Setting this to -1 will result in normal behaviour (infinite selfkills). Setting this to 0 will disable /kill.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_ammoCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between ammo cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60000&lt;br /&gt;
&lt;br /&gt;
== g_healthCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between health cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10000&lt;br /&gt;
&lt;br /&gt;
== g_spectator==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls spectator behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 When in freelook mode, you can &#039;fire&#039; at a player to follow. If you miss a player, nothing happens.&lt;br /&gt;
&lt;br /&gt;
2 When in freelook mode with the 1 flag set, if you shoot and miss you start following the next available player.&lt;br /&gt;
&lt;br /&gt;
4 When the player you&#039;re following goes into limbo, don&#039;t move to the next available player.&lt;br /&gt;
&lt;br /&gt;
8 When the player you&#039;re following goes into limbo, go to freelook instead of following the next available player. (4 has precedence)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_truePing	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to see how much their local game is behind the top time (the time of the latest server frame). Pings will show around 50 ms better than if the ping would show network latency, but it&#039;s more accurate. Remember that the server is sending a snapshot to players in every 50 ms. This makes the players to inherenty play in the past from the server point of view.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropObj	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets the number of times a player can drop/toss the objective (e.g. parts on radar) per life.&lt;br /&gt;
&lt;br /&gt;
The parts are dropped by pressing the +activate key (usually bound to F) when there&#039;s nothing else around to be activated.&lt;br /&gt;
&lt;br /&gt;
Before enabling this recall how spammy the voiceovers can be. Then picture a player tossing the parts to himself over and over again. For this reason you probably don&#039;t want to set this very high.&lt;br /&gt;
&lt;br /&gt;
Players must switch to knife in order to drop the objective. If they are not holding knife and hit +activate they will see a message that notifies them that they must switch to knife.  This change was made to prevent accidental dropping of the objective when trying to push, drag, pick up, or activate something else.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_doubleJumpHeight	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adjusts the height of the second jump in a double jump.  This value is a multiplier to the default jump velocity. The greater g_doubleJumpHeight is, the greater the height of the second jump.  This setting has no effect if double jump is disabled in g_misc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.4&lt;br /&gt;
&lt;br /&gt;
== g_serverInfo==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use this cvar to change the behaviour of the &#039;serverinfo&#039; string.  This string is printed in response to the &#039;getstatus&#039; primative command used by game browsers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Display player team information using the &#039;P&#039; cvar in the server info string. (etpro and etmain 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
2 Display player team information using the &#039;Players_Axis&#039; and &#039;Players_Allies&#039; cvars in the server info string. (etmain &amp;lt; 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
4 Display the &#039;campaign_maps&#039; cvar in the server info string. This contains a comma delimited list off all the maps in the current campaign. Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
8 Displays the &#039;C&#039; CVAR in the server info string.  This is a string containing the current map number in the campaign, and total maps in current campaign, in the form of &amp;amp;quot;xx,yy&amp;amp;quot;.  Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
16 The class charge times will not be present in the server info string unless this flag is set. They are removed by default in order to make room in the serverInfo string for more useful information. These cvars are g_medicChargeTime, g_engineerChargeTime, g_LTChargeTime, g_covertopChargeTime, g_soldierChargeTime.&lt;br /&gt;
&lt;br /&gt;
32 Send KR (KillRating) instead of XP in SERVERINFO string.  This is overriden by flag 64.&lt;br /&gt;
&lt;br /&gt;
64 Send PR (PlayerRating) instead of XP/KR in SERVERINFO string. Overrides flag 32.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar MUST be set prior to loading the first map. You will not be able to change this cvar once the game code is loaded. The serverInfo string has a fixed length of 1024 characters.  This space is shared with any cvar you create on your server with the &#039;sets&#039; command.  If you use up too much space with &#039;sets&#039;, your server will fail to start.  It will print the message &amp;quot;Info string length exceeded&amp;quot; if you don&#039;t have enough space left in your serverinfo string to handle the g_serverInfo flags you&#039;ve selected. To fix this, either remove some sets cvars from your config, or use different g_serverInfo flags.&lt;br /&gt;
&lt;br /&gt;
== g_fear	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If a player uses the /kill command within g_fear milliseconds after taking damage from an enemy, the attacker that last damaged that player will recieve full credit for the kill and the mode of death will be recorded as MOD_FEAR.  Other restrictions are that the attacker must be on the opposite team and the attacker must still be alive.&lt;br /&gt;
&lt;br /&gt;
G_fear applies also to players that try to switch teams within g_fear milliseconds. The player will remain in the same team and the usual g_fear behavior applies.&lt;br /&gt;
&lt;br /&gt;
In-game statistics will reflect that the death was caused by the weapon that did the last recorded damage to the player.&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable this behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2000&lt;br /&gt;
&lt;br /&gt;
== g_maxNameChanges	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Limit the number of namechanges per player per map by setting this cvar. This is especially needed if you have cheaters that autochange their name every second. Set to -1 to disable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_disableComplaints	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable teamkill complaints for some weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines&lt;br /&gt;
&lt;br /&gt;
2 Artillery and airstrikes&lt;br /&gt;
&lt;br /&gt;
4 Mortar&lt;br /&gt;
&lt;br /&gt;
8 Dynamite&lt;br /&gt;
&lt;br /&gt;
16 Tripmines&lt;br /&gt;
&lt;br /&gt;
32 Completely&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_countryFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets whether the players will see the GeoIP country flags in the crosshair when aiming at someone and in the scoreboard. Players can enable/disable it with cg_countryFlags (default 1).&lt;br /&gt;
&lt;br /&gt;
You will need the GeoIP.dat file in your server&#039;s silent folder. You should read and accept the license of the GeoIP.dat database!&lt;br /&gt;
&lt;br /&gt;
Read the database license at http://geolite.maxmind.com/download/geoip/database/LICENSE.txt&lt;br /&gt;
Download the latest database at http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_noSkillUpgrades==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, disables player skill upgrades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
0 No skill locking.&lt;br /&gt;
&lt;br /&gt;
1 Lock skills.&lt;br /&gt;
&lt;br /&gt;
2 Lock skills and hide all HUD elemnts that would show the skill levels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.6.0, this cvar will lock the skills to the always enabled levels. See the skill_x cvars. Also, it is possible to hide the skill levels from the player HUDs setting this cvar to value 2.&lt;br /&gt;
&lt;br /&gt;
== g_flushItems	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Evens the dropped items out with the surface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxConnsPerIP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of connections allowed from one particular IP. This prevents the fake clients Denial of Service attack.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== shoutcastPassword	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables shoutcaster status on the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;none&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_headshot==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional head shot options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Headshots only&lt;br /&gt;
&lt;br /&gt;
2 Instagib damage (controlled by g_instagibDamage)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_instagibDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Damage used for instagib mode (e.g. set this to 160 so that a player can still be revived after being shot.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_ettvFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional ETTV options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Prevent ettv slaves from being callvote kicked&lt;br /&gt;
&lt;br /&gt;
2 Grant shoutcaster status to ettv slaves&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_mode==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls some additional modes for fun or for testing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players will spawn instantly&lt;br /&gt;
&lt;br /&gt;
2 Each class receives adrenaline&lt;br /&gt;
&lt;br /&gt;
4 No damage on players&lt;br /&gt;
&lt;br /&gt;
8 Players can pick up any weapon on the ground (Removing this bitflag will force all players to respawn!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_playDead	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to use the &#039;playdead&#039; command and their character will act like it is dead until the playdead command is used again (or they really die).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_shove	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to push other players with the &amp;quot;use&amp;quot; key.  The integer adjusts the amount of force players shove with. 80 seems fair.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 80&lt;br /&gt;
&lt;br /&gt;
== g_shoveNoZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 if you want to disable shove in the up/down direction (a.k.a &amp;quot;boosting&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dragCorpse	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players do drag wounded players with the use key when moving backward slowly.  Works best when crouching or prone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_classChange	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to take the class of a gibbed teammate temporarily similarly to how a covert steals an uniform.  Class changing does not latch, so the original class the player had will be restored on respawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_forceLimboHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0 it takes about 3 shots to gib a wounded player, if set to 1 it takes about 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_goomba==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, players can damage each other by landing on each other. The integer is multiplier that determines how much damage should be done to the player that was fallen on.  Also the impact for the falling player will be broken so that they only recieve 20% of the damage they would have normally.  It is also possible to do small amounts of damage (5HP) to other players by hopping up and down on them.&lt;br /&gt;
&lt;br /&gt;
Falling damage can be either 500, 50, 25, 15, or 10 depending on the length of the fall.  So if you set g_goomba to 5 and land on a player from a fall that would have damaged you 10HP, you will inflict 50HP of damage on the player you land on, and you will only recieve 2HP of damage.&lt;br /&gt;
&lt;br /&gt;
See also g_goombaFlags&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_goombaFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the way g_goomba is handled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Cannot do goomba damage to teammates.&lt;br /&gt;
&lt;br /&gt;
2 Short falls (hopping) on another player does no damage.&lt;br /&gt;
&lt;br /&gt;
4 Short falls (hopping) does no damage to teammates. (not necessary if 1 or 2 flag is set)&lt;br /&gt;
&lt;br /&gt;
8 Falling player recieves no damage when landing on any other player. (default is to recieve 20% of the damage the fall would have given if not landing on a player).&lt;br /&gt;
&lt;br /&gt;
16 Insta-gib goomba. All goomba damage will be 500HP regardless of fall distance. The exception is hopping on anther player which still does 5HP of damage.&lt;br /&gt;
&lt;br /&gt;
32 Falling corpses won&#039;t cause damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 31 to have g_goomba work like shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvul	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds players will be invincible after they spawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvulFair	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes the spawn protection when the player fires his first shot (note : the spawn protection will still be removed after the g_spawnInvul time)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_spinCorpse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allow players to use +left and +right binds to spin their corpse when dead or playing dead.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_teamChangeKills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0, players are allowed one non-killing team change per respawn cycle.  If a player changes teams, he will be instantly spawned in the other teams default spawn point.  Players will die (but not lose a life) if they change teams a second time in one spawn cycle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxIgnoresPerMap ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The maximum number of times one player can ignore another player during one map. This can prevent spamming other players with the ignore command. The value can be between 0 and 255. Any value higher than 255 will always allow ignoring. Any value below 1 will disable ignoring completely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Logs =&lt;br /&gt;
&lt;br /&gt;
== g_logOptions==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_logOptions cvar, but so far the only implemented flags are:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Server outputs obituaries to chat.&lt;br /&gt;
&lt;br /&gt;
2 Adrenaline countdown displayed.&lt;br /&gt;
&lt;br /&gt;
4 Disable display of tap-out confirmation box.&lt;br /&gt;
&lt;br /&gt;
8 Display connection attempts by banned players.&lt;br /&gt;
&lt;br /&gt;
16 Display gib reports (&amp;quot;&amp;amp;lt;victim&amp;amp;gt; was gibbed by &amp;amp;lt;attacker&amp;amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
32 Omit &amp;quot;item&amp;quot; lines from log file.&lt;br /&gt;
&lt;br /&gt;
64 Report gibs.&lt;br /&gt;
&lt;br /&gt;
128 GUID&#039;s are logged in the game log. Note, if this option is enabled the VSP log parser will not work.&lt;br /&gt;
&lt;br /&gt;
256 Log all private messages (/m commands).  This setting won&#039;t have any effect unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
512 Logs the real time into logs, instead of the normal uptime of the server.&lt;br /&gt;
&lt;br /&gt;
1024 This flag allows logging every player drop. It can be usefull for inspecting the server operation, but it will also cause lot of needless log writes.&lt;br /&gt;
&lt;br /&gt;
2048 Print TK death message like a normal kill message, giving killing weapon, except it is preceeded by a red TEAMKILL: identifier. Only works if g_obituary is set to 3.&lt;br /&gt;
&lt;br /&gt;
4096 Log client cvar values.&lt;br /&gt;
&lt;br /&gt;
8192 Log cvar values only when found from the client. Note that flag 4096 must also be set if using this flag.&lt;br /&gt;
&lt;br /&gt;
16384 Admin log will use new format that is more readable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.3 - Flags 4096 and 8192 were added.&lt;br /&gt;
&lt;br /&gt;
0.8.0 - Flag 16384. When this flag is set, the admin log will use new format.&lt;br /&gt;
&lt;br /&gt;
== g_logAdmin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file that all shrubbot commands will be logged to. For example, g_logAdmin &amp;quot;admin.log&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_cheatLog ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file, where all cheat related prints are logged. If this is not specified, server log is used.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Omni-Bots =&lt;br /&gt;
&lt;br /&gt;
== omnibot_enable ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, Omni-bot functionality is enabled. You still need to have Omni-bots installed correctly in order for the bots to work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== omnibot_path	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The path where the Omni-bot dll/so file is installed. If you installed Omni-bot to the default locations, then you do not need to modify this cvar. Leaving this cvar blank will search for the Omni-bot dll/so file from the default locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_bot_maxXP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Any bots present will have their XP reset after this much XP is reached. If g_maxXP is also set to a value greater than -1, then the bot XP will be reset whenever the lower limit of the two is hit. Set this to -1 to disable this feature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== omnibot_flags==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes bot management/behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Disables XPSave for bots&lt;br /&gt;
&lt;br /&gt;
2 Bots cannot mount tanks&lt;br /&gt;
&lt;br /&gt;
4 Bots cannot mount emplaced guns&lt;br /&gt;
&lt;br /&gt;
8 Don&#039;t track bot count in omnibot_playing cvar&lt;br /&gt;
&lt;br /&gt;
16 Bots will target ungibbed enemies&lt;br /&gt;
&lt;br /&gt;
32 Bots will trigger team and spotted mines&lt;br /&gt;
&lt;br /&gt;
64 Bots can use g_shove&lt;br /&gt;
&lt;br /&gt;
65536 Bots are granted shrubbot command immunity (the same as shrubbot flag !)&lt;br /&gt;
&lt;br /&gt;
131072 Bots cannot be !kicked or !banned&lt;br /&gt;
&lt;br /&gt;
262144 Disable shrubbot greeting for bots&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Lua =&lt;br /&gt;
&lt;br /&gt;
== lua_modules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of files to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. The paths are relative to the mod&#039;s directory, and can optionally be placed inside pk3 archieves. We are aiming for compatibility with ETPro&#039;s Lua Mod API found at http://wolfwiki.anime.net/index.php/Lua_Mod_API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== lua_allowedModules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of sha1 signatures for the lua modules to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. Only lua modules with the matching sha1 signature listed in this cvar will be allowed to load by the Lua API engine (ACL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Weapon Damage and Radius Settings =&lt;br /&gt;
&lt;br /&gt;
== g_dmg	==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables experimental advanced combat options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Use traditional ET settings for combat.&lt;br /&gt;
&lt;br /&gt;
1 Use Advanced Hit Locations: Differentiates between Head, Body, Arm, and Leg shot when computing damage.&lt;br /&gt;
&lt;br /&gt;
2 Applies a more realistic damage vs. range equation for short-ranged weapons. This will reduce the effectiveness of these weapons at longer ranges.&lt;br /&gt;
&lt;br /&gt;
4 Gives a damage bonus to short-range weapons when used in close combat situations.  This will increase the effectiveness of these weapons at closer ranges.&lt;br /&gt;
&lt;br /&gt;
8 Use bullet fall-off approximations when computing shot trajectory.&lt;br /&gt;
&lt;br /&gt;
16 Improve accuracy of non-scoped single-shot rifles.&lt;br /&gt;
&lt;br /&gt;
32 Use alternate bullet-spread characteristics for automatic or rapid-fire weapons.&lt;br /&gt;
&lt;br /&gt;
64 Damage from players who are spectators or have disconnected is ignored, and XP is not awarded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotMin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This represents the minimum damage done by a headshot regardless of the weapon used to make the shot.&lt;br /&gt;
&lt;br /&gt;
Headshots that would do damage below this value will be adjusted upward to equal g_dmgHeadshotMin. Headshots from a weapon with damage at or above this value will do a multiple of their damage, as specified by g_dmgHeadShotRatio. (The actual damage may undergo additional modification due to range and other conditions)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotRatio	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This specifies the multiplier used for headshots that do damage ABOVE g_dmgHeadShotMin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_dmgKnife	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the knife.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_dmgSten	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the sten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 14&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 15&lt;br /&gt;
&lt;br /&gt;
== g_dmgPistol==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the pistol weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgSMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the SMG weapons (Thompson and MP-40).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the MG42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an emplaced MG.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42Scope==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42 when scoped.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
== g_dmgInfRifle	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by unscoped rifles (K43 and Garand).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 34&lt;br /&gt;
&lt;br /&gt;
== g_dmgSniper	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a scoped Garand or K43.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgFlamer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the a flamethrower. Also controls the per-tick damage done to a player who has been set on fire by a flamethrower and is still burning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenade==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenadeRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncher	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncherRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blas radius of an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgTMine==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a tripmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 260&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmine	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmineRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchel	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchelRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzerRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortarRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamite	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamiteRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAir	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAirRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArty	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour (can do damage, but to a very small radius, making damage unlikely)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArtyRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour. The spotting round can do damage, but to a very small radius making damage unlikely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1100&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolitionRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_knifeThrowDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage a thrown knife will cause to enemy.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgPPSh==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage done by a PPSh.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 19&lt;br /&gt;
&lt;br /&gt;
= Debugging =&lt;br /&gt;
&lt;br /&gt;
== g_debugBullets ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, server will produce debug information of fired bullets. Enabling g_debugBullets require sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If 1 is set as if the cvar was a bitmask, blue lines for the fired shots is enabled. With any positive value, server will print impact area on the hit player to the center of the screen. Possibilities are &amp;quot;Head Shot&amp;quot;, &amp;quot;Body Shot&amp;quot;, &amp;quot;Leg Shot&amp;quot; and &amp;quot;Arm Shot&amp;quot;. If the value is set to 2 or more, the bounding box of the hit player is drawn. If the value is set to 3 or more, the hit player head box is drawn. If the value is set to -2 or smaller, boxes are drawn to impacted surfaces.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default: 0&lt;br /&gt;
&lt;br /&gt;
== g_debugDamage ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, damage inflicted to players is logged into the server log. Enabling this cvar requiers sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_debugHitboxes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is enabled, hit boxes around the players are drawn. This cvar does not require sv_cheats. However, do note that if this is enabled, the server will produce constant flow of extra entities, which will make playing impossible on a live server. Test this with only couple players to prevent everyone from lagging out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to any positive value, boxes are drawn. If the value is set to 8 or more, it will draw only the boxes that are used for the initial trace. Each bullet causes two traces to happen, where the second trace confirms the impact on the more refined area of the player body, such as head or legs.&lt;br /&gt;
&lt;br /&gt;
= Deprecated Cvars =&lt;br /&gt;
&lt;br /&gt;
== g_realHead==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro headboxes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Regular headbox positions.&lt;br /&gt;
&lt;br /&gt;
1 Server tracks the animations so the headbox will match the playermodels exactly. This is the recommended value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This code was originally from ETPro (b_realhead).  It was contributed by zinx and added to ETPub by forty. silEnT is based on the ETPub source and this code has not been altered from the ETPub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.1 - The option was removed. The ETPro headboxes are always used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_spoofOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Options for PunkBuster GUID and IP spoof detections and behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kick for GUIDspoofing.&lt;br /&gt;
&lt;br /&gt;
2 Kick for IPspoofing.&lt;br /&gt;
&lt;br /&gt;
4 Display a global warning when someone is GUIDspoofing. (When flag 1 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
8 Display a global warning when someone is IPspoofing. (When flag 2 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
16 Don&#039;t use the stored GUID. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
32 Don&#039;t use the stored IP. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do NOT change this CVAR unless you encounter problems!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar was removed in version 0.5.1 and spoofing is checked unconditionally in 0.5.1 and later versions.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1248</id>
		<title>Silent Mod Server Cvar</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1248"/>
		<updated>2015-04-12T11:15:54Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* g_dbDirectory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= silEnT Mod Anti Cheat =&lt;br /&gt;
&lt;br /&gt;
== g_silentac ==&lt;br /&gt;
&lt;br /&gt;
;Description&lt;br /&gt;
Enables actions based on silEnT AntiCheat. The g_cheatLog will always have one line telling if a player is found with cheats. The cheat detection&#039;s are based mostly on heuristically detecting hacking techniques. If you suspect a false positive, please supply the silEnT team a method to reproduce it. Do note that this feature has been in extensive testing well before the 0.8.0 version. When silEnT AC is set to autoban, sv_sac cvar is set to 1. This cvar can be used by external server trackers to enable/disable server anti cheat status on their lists. We recommend setting the value to 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Show player AntiCheat status in the !finger output.&lt;br /&gt;
&lt;br /&gt;
2 Automatically ban players for 365 days with cheats.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
== g_clientBinaries ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
silEnT mod can be configured to not allow players with unknown client binaries to play on the server. This cvar controls the server behaviour when the client binary is not one of the recognized ones.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;List of recognized binaries:&#039;&#039;&#039;&lt;br /&gt;
*Official client binaries&lt;br /&gt;
*Binary edited executables from etmaster.net&lt;br /&gt;
*Equivalent to etmaster.net binary edited executables from BigBear&lt;br /&gt;
*ETPatchSelector binaries&lt;br /&gt;
*Official ET Legacy b4&lt;br /&gt;
*Official ET Legacy b5&lt;br /&gt;
*Many ET Legacy binaries including RC1 versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow players with unknown client executables.&amp;lt;br&amp;gt;&lt;br /&gt;
2	Log unknown executables to the g_cheatLog. Note, if the server does not allow unknown client binaries the log message will be different for message.&amp;lt;br&amp;gt;&lt;br /&gt;
4	Report unknown executables to admin chat. Note, if the server does not allow unknown client binaries the players will not be reported to admin chat.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - If the flag 4 is set, known cheat binaries are clearly reported to the admin chat.&lt;br /&gt;
&lt;br /&gt;
== g_identOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from version 0.3.0, the silEnT mod can be configured to enforce bans using hardware based identification. This is not any fool proof system but it is made to be an addition to the already existing ban methods. The hardware identification cannot be seen in human readable form by admins while on the server. The data that is sent to the server can be seen in the client by writing /cg_ident to the console. The result is a hexadecimal string that changes its value between maps. The format and data used to create the client identification may change between different versions of the silEnT mod. The server can be configured with the g_identOptions server cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Kick clients that are spoofing the client identification to enter the server&lt;br /&gt;
&lt;br /&gt;
2	Kick clients that are not sending the identification to the server&lt;br /&gt;
&lt;br /&gt;
4	Enforce bans using the identification&lt;br /&gt;
&lt;br /&gt;
8	Report all actions taken based on client identification to the adminchat&lt;br /&gt;
&lt;br /&gt;
16	If a player is caught of circumventing a ban, a new ban is created with for it. The ban reason will have additional (Automated copy of a ban for xxxxxxxx) where xxxxxxxx is replaced with the 8 character PB GUID of the old ban.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Announcements and Messages =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_privateMessages ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If set to 1, players can send private messages to one another with the /m playername/slot command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disable Private Messages&lt;br /&gt;
&lt;br /&gt;
1 Enable Private messages&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Clients can reject private message from other individual clients with the /ignore client command. Also, private messages can be disabled from individuals/levels using shrubbot flag &#039;/&#039;.&lt;br /&gt;
&lt;br /&gt;
== g_spreeOptions  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Options to control the display of killingsprees. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: bitmask &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Enable killingsprees &lt;br /&gt;
&lt;br /&gt;
2 Enable killingspree ends &lt;br /&gt;
&lt;br /&gt;
4 Enable multikills &lt;br /&gt;
&lt;br /&gt;
8 When set, a top 3 current killing sprees message will be printed every minute, similar to binoc masters, and a map&#039;s longest killing spree will be printed every two minutes &lt;br /&gt;
&lt;br /&gt;
16 At the beginning of the intermission the highest spree and the 3 highest sprees which are still active will be shown &lt;br /&gt;
&lt;br /&gt;
32 /kill will end a spree &lt;br /&gt;
&lt;br /&gt;
64 Teamswitching will end a spree &lt;br /&gt;
&lt;br /&gt;
128 Multikill messages will be delayed g_multikillTime milliseconds, to prevent the doublekill -&amp;amp;gt; multikill -&amp;amp;gt; megakill -&amp;amp;gt; etc. flooding &lt;br /&gt;
&lt;br /&gt;
256 Killing bots doesn&#039;t count for multikills or killingsprees (Note: they DO count for ending kill/deathsprees) &lt;br /&gt;
&lt;br /&gt;
512 Display the map and overall spree record when entering intmission &lt;br /&gt;
&lt;br /&gt;
1024 Summary: don&#039;t enable this flag if you don&#039;t have enabled g_spreeOptions flag 512 OR g_XPSave flag 16 or Shrubbot flag t &lt;br /&gt;
&lt;br /&gt;
Spree records are automatically saved into XPSave file when a map ends. By enabling this flag, you also store the spreerecord at the points where g_XPSave flag 16 would store XP. When you don&#039;t have set XPSave flag 16 and g_spreeOptions flag 512 and not allow users to use&amp;amp;nbsp;!spreerecord you should NOT set this flag as it takes some extra resources. When XPSave flag 16 is set this doesn&#039;t matter (it actually takes much less resources then). When only g_spreeOptions flag 512 or shrubbot flag t is set it won&#039;t do much harm anyway (your server won&#039;t explode) &lt;br /&gt;
&lt;br /&gt;
2048 Enable revivesprees&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_multikillTime  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The time (in milliseconds) in which two kills should be made in order to count them as multikills.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_obituary  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This cvar controls will the server send obituary events to the clients. If this is set to 0, no obituary events will be sent. If set to any nonzero value, obituary events will be sent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dropMsg  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Message to add to the drop screen when a client is kicked or banned.&amp;amp;nbsp;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;&amp;amp;nbsp;String&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot; &amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; g_dropMsg&amp;amp;nbsp;&amp;quot;Please protest ban on forums&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_landmineNotifyType  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Decide which landmine reveal notifications server should send.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Server can send two types of landmines reveal notification. Standard one, generated (sent) for each landmine revealed and summary one,&amp;amp;nbsp;which is sent after player spotting landmines stops using binoculars.&amp;amp;nbsp;It&#039;s generated after each binculars zoom. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
0 Only standard notfications (for each landmine revealed).&lt;br /&gt;
&lt;br /&gt;
1 Only single summary notifications for one binocs zoom. New type of notification. For example: during one binocs zoom, 3 mines were revealed, but only 1 summary notification is sent. It contains information: 3 mines spotted by &amp;quot;player name&amp;quot; and last one was in location &amp;quot;some location&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t send any landmine notifications.&lt;br /&gt;
&lt;br /&gt;
3 Send all notifications. For example: for 3 spotted landmines send 4 notifications (3 for each landmine + 1 summary notification). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_banners  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should be set to the name of your banners.cfg file if you want to enable banners. See [[Silent Banners]] for more information about this file.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&amp;lt;br&amp;gt;set g_banners &amp;quot;banners.cfg&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== g_recognition ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables additional recognition notifications for players doing objective, e.g. for planting dynamite, disarming it, destroying objective.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Additional recognition notifications disabled.&lt;br /&gt;
&lt;br /&gt;
1 Additional recognition notifications enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= User Database, Shrubbot and Bans =&lt;br /&gt;
&lt;br /&gt;
== g_dbDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, the server stores various information about server statistics, map information, sprees, users, bans and XP save. To use any of the functionalities, this must be set. The cvar defines a directory and only a directory that is relative to fs_game. All the used filenames are predefined and cannot be changed. For security reasons, this cvar must be set during server initialisation. (i.e. It may not be changed when the server is running.) The following files are usually stored into this directory:&lt;br /&gt;
&lt;br /&gt;
* userdb.db is a binary format file that contains all the basic information about shrubbot users and also all saved XP if the server is set to save XP&lt;br /&gt;
* userxdb.db is a binary format file that contains information related to players playing on the server&lt;br /&gt;
* useradb.db is a binary format file that contains player aliases.&lt;br /&gt;
* serverstat.cfg is a human readable file that contain server statistics and map sprees if the server is set to store them&lt;br /&gt;
* shrubbot.cfg is a human readable file that contain level configurations, custom commands and bans&lt;br /&gt;
* mapvoteinfo.cfg This file contains information relating g_gametype 6, which is map voting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the required files will be created automatically to the directory when needed if there suitable files aren&#039;t already present. userdb.db, userxdb.db and useradb.db will not overwrite files that have the same name but are, for any reason, not suitable for use. In such cases the server log will have information about the failure to open the file and features requiring the files are disabled.&lt;br /&gt;
&lt;br /&gt;
You can freely edit the human readable files by hand as long as their correct format remains and the server is notified of the changes using appropriate shrubbot commands. With the exceptions of serverstat.cfg and mapvoteinfo.cfg files that will be overwritten by the server. If you want to hand edit the values of these files, the server must be shutdown to not lose the changes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;database&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar from the config file only during the server start, or alternatively from the server start command parameters. It cannot be changed using RCON. If you want to store all the files in the same root directory where all the pk3 files and binaries are, you can set this cvar to value &amp;quot;.&amp;quot;. It will then use the fs_game directory.&lt;br /&gt;
&lt;br /&gt;
== g_dbUserMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that player is saved to the database since the player has last visited on the server.&lt;br /&gt;
&lt;br /&gt;
The database cleaning is done during intermission so this should not cause any performance problems when actions are taken. However, by setting this value to 0 or not setting the value at all, will disable the feature.&lt;br /&gt;
For servers with high database sizes, this can improve performance since users that are not needed will be removed automatically.&lt;br /&gt;
&lt;br /&gt;
You can use a modifiers with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar only from the config file executed before the mod launches the first time or from the command line. It cannot be edited using RCON.&lt;br /&gt;
&lt;br /&gt;
== g_dbMaxAliases ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The silEnT mod can store player aliases in an additional database. To enable this database, set this value to higher then 0. If this value is a positive integer, it defines how many aliases are stored in the database for one player. If the player has more aliases then this value, the oldest aliases are deleted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minumum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar can be set only at startup, before the mod launches. It cannot be changed on a live server using rcon.&lt;br /&gt;
&lt;br /&gt;
== g_minCommandWaitTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Time you have to wait between using 2 shrubbot commands in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tyranny ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls the use of administrator commands that could be used by admins to cheat or abuse players. If it is set to 0 you will not be able to use commands on your server such as !gib, !slap, !burn, etc.&lt;br /&gt;
&lt;br /&gt;
Also, you will not be able to use g_logOptions flag 256 (log private messages) unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
g_tyranny must also be enabled in order to specify a client in using the &#039;playsound&#039; server command.&lt;br /&gt;
&lt;br /&gt;
&#039;g_tyranny&#039; and its value appear in the serverInfo string to serve as a warning for perspective players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you enable this, you MUST do so immediately when the server starts (before the first map is loaded). This means putting &amp;quot;set g_tyranny 1&amp;quot; in the .cfg file that is exec&#039;ed on server start. If you try to change this on a running server, you will get the message &amp;quot;g_tyranny is read only.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_warningOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar changes the behaviour of the shrubbot !warn command. By setting flag 1 or 2 you activate the advanced warning (storage) system&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Link stored warnings to the guid of a player&lt;br /&gt;
&lt;br /&gt;
2	Link stored warnings to the ip of the player&lt;br /&gt;
&lt;br /&gt;
4	Remove the oldest warning when the total maximum ammount of warnings is reached&lt;br /&gt;
&lt;br /&gt;
8	Auto-kick a player for 2 minutes when he has more than g_maxWarnings warnings&lt;br /&gt;
&lt;br /&gt;
16	Allow clients to see their own warnings with the /warnings command&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarnings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The ammount of warnings that can be stored for 1 player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_warningDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in hours that a warning will be stored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 24&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBan ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, anyone kicked for the reasons you specify, will be temporarily banned for g_autoTempBanTime seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Tempban when reaching g_teamDamageRestriction&lt;br /&gt;
&lt;br /&gt;
2	Tempban when someone is kicked by a shrubbot admin (using the !kick command). A normal shrubbot !kick kicks for 120 seconds&lt;br /&gt;
&lt;br /&gt;
4	Tempban when someone is kicked by the advanced warning system. A normal kick by the warning system lasts 120 seconds&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifically in version 0.5.0, this feature is bugged and can cause broken shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBanTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds kicked for when g_autoTempBan is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1800&lt;br /&gt;
&lt;br /&gt;
== g_minConnectLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The minimum shrubbot adminlevel required for players to be able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This only works for positive levels, any value &amp;lt;= 0 will allow everyone to connect. Bots won&#039;t be able to connect either.&lt;br /&gt;
&lt;br /&gt;
== g_greetingPos ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Location where the shrubbot greetings are displayed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3|4]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Chat area&lt;br /&gt;
&lt;br /&gt;
1	Center of screen&lt;br /&gt;
&lt;br /&gt;
2	Left notification area&lt;br /&gt;
&lt;br /&gt;
3	Top of the screen&lt;br /&gt;
&lt;br /&gt;
4	Console only&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adminProtection ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins levels can be protected against spoofing. The protection works by establishing trust between the client and the server. The trust must be confirmed by an online human admin for the new trusted admins to gain access to their assigned level. Specific command !confirm is used for it. Do note that establishing the trust between the server and the player is not the same as assigning admin level. In fact, anyone who is capable of recognizing the real admin can be safely allowed to use the !confirm command. The !setlevel command will automatically establish the trust if the admin level protection is enabled and the level is above or equal to the g_protectMinLevel. The admin protection is designed so that only the important admin levels are protected. This mean that levels above the g_protectMinLevel require established trust between the server and the client. Normal guests do not need this. It is also advisable to not set the g_protectMinLevel too low to avoid server load with these admins.&lt;br /&gt;
&lt;br /&gt;
The trust needs to be established only once. After that, the client and the server can negotiate the confirmation silently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technical Details:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The trust is established using one-way hashes. When the !setlevel or !confirm is used on a player, the server generates 2 unique 32 character long values. Both of these values are stored both in the client (silent.dat) and the server database. Their meanings are server identification and a client key.&lt;br /&gt;
&lt;br /&gt;
Authentication negotiation:&lt;br /&gt;
&lt;br /&gt;
1. When the player next time connects to the server, the server sends one of the stored values as server identification and another, newly generated random 32 character value, to initiate the negotiation.&lt;br /&gt;
&lt;br /&gt;
2. The client will use the server identification value it received from the server to match with the key value associated with the server identification. It will hash the 32 character key value with the supplied random 32 character value and send the result back to the server.&lt;br /&gt;
&lt;br /&gt;
3. The server, knowing both values, the client key and the random character string it sent, can compare the hash against a hash it generates itself with the same values.&lt;br /&gt;
&lt;br /&gt;
4. If the hashes match (one supplied from client and the one it just generated), the client is authenticated to his admin level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Log succesfull authentications to the cheat log&lt;br /&gt;
&lt;br /&gt;
2	Log admin spoofing attempts to the cheat log&lt;br /&gt;
&lt;br /&gt;
4	Report admins waiting for confirmation on their level to the admin chat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_protectMinLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins can be protected against spoofing. The protection works by establishing trust between the client and the server if the admin level is higher then the g_protectMinLevel. Setting this to -1 will disable the freature. Do note that when you enable the feature, noone has yet established trust with the server and the first one to have it, must be confirmed by an rcon command. Either !setlevel if the database still doesn&#039;t have admins or !confirm if the admin has been set in the database already.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_muteRename ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to 1 the muted player won&#039;t be allowed to change his name while he is muted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Disabled. Allow players to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow player to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimium required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
= XP Save =&lt;br /&gt;
&lt;br /&gt;
== g_XPSave ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls XP save behaviours.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Store xp when a client disconnects. This is always required for the XP save to work.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t reset xp to the pre-map start values on a map restart, shuffle, etc.&lt;br /&gt;
&lt;br /&gt;
4 Never reset xp (ever).&lt;br /&gt;
&lt;br /&gt;
8 Force the disconnection of clients with the same GUID as the connecting client. This is useful in saving the stored XP of players with unreliable network connections since they should still get their stored XP even if reconnecting immediately with a new IP address.&lt;br /&gt;
This feature is enabled by default unless you have sv_wwwDlDisconnected enabled. sv_wwwDlDisconnected seems to interfere with this feature, so do not enable this flag if you change pk3&#039;s on your server often because stored XP will be lost over disconnected downloads.&lt;br /&gt;
&lt;br /&gt;
16 Store the XP at restarts, nextmaps, mapvotes, campaignvotes and similar cases.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge_xp ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her xp skills. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;120m&amp;quot; - 120 minutes &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If g_XPSaveMaxAge is less than g_XPSaveMaxAge_xp, g_XPSaveMaxAge will be used.&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her skills/killrating/playerrating/mute status. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier for this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See also g_XPSaveMaxAge_xp &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1w&lt;br /&gt;
&lt;br /&gt;
== g_resetXPMapCount  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How many maps occur before XP is reset. If g_XPSave flag 4 is set, g_resetXPMapCount is ignored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting is only valid when the g_gametype is 6 (see Map Voting)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMinXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The increment of XP during one map that is required for the XP gained during the map to get saved and the time of the latest XP save to get updated. The silEnT mod separates the XP save and the connection times so that players who visit spectators without playing will not be removed by the g_dbUserMaxAge but can still lose their stored XP if they do not play. Admins can adjust the requirement with this value. Using -1 will disable the requirement and XP save will consider every connection valid for the XP save. Using value 0, will consider XP save valid if the player has gained even 1 XP point during the map. Please note that the value is only for one map and using high values may cause some players to not achieve enough XP to get their XP updated. Also note, that this does not prevent SMG weapon statistics or rating values to get updated into the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_maxXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a vicious cvar that will reset a players XP once their overall XP score reaches it.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_maxXPResetWarn ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Displays a message warning players whose XP is close to being reset due to the g_maxXP setting. The warning is displayed every thirty seconds once the warning threshold is passed.&lt;br /&gt;
&lt;br /&gt;
This setting can have an integer value (eg, 950), in which case it means that the player will be warned every thirty seconds once he has more than 950 XP.&lt;br /&gt;
&lt;br /&gt;
This setting can also have percentage value (eg, &amp;quot;90%&amp;quot;), and that will cause the warnings to start when the player reaches 90% of g_maxXP XP.&lt;br /&gt;
&lt;br /&gt;
If you specify a negative value, players will be warned when that offset is hit. For example:&lt;br /&gt;
&lt;br /&gt;
For a value of -75, warnings will to display then players have g_maxXP - 75 XP&lt;br /&gt;
&lt;br /&gt;
For a value of -2%, warnings will display when players have 98% of g_maxXP&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optionally enables the awarding of XP based upon the amount of damage a player has done to the opposing team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disabled: use normal ET XP awarding methods&lt;br /&gt;
&lt;br /&gt;
1 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the skill category of the weapon used. When this mode is enabled, kills (regardless of method) are awarded a fixed value of 1 point of XP.&lt;br /&gt;
&lt;br /&gt;
2 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the Battle Sense category. Normal XP amounts are awarded for kills (typically 3-5 XP).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXPLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting determines the amount of damage that a player must do to earn 1 point of XP. See g_damageXP for additional information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_XPDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a bitmask that controls the XP decay feature.&lt;br /&gt;
&lt;br /&gt;
See also g_XPDecayRate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Enable XP Decay&lt;br /&gt;
&lt;br /&gt;
2	Do not decay a player&#039;s XP when they are disconnected from the server&lt;br /&gt;
&lt;br /&gt;
4	Do not decay a player&#039;s XP for the class they are currently playing as (e.g. Medic).&lt;br /&gt;
&lt;br /&gt;
8	Do not decay a player&#039;s XP while they are spectating&lt;br /&gt;
&lt;br /&gt;
16	Do not decay a player&#039;s XP during warmup/intermission&lt;br /&gt;
&lt;br /&gt;
32	Do not decay a player&#039;s XP when he/she is playing. This means that they are on a Allies or Axis and the game is active.&lt;br /&gt;
&lt;br /&gt;
64	Do not decay a player&#039;s Battle Sense XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
128	Do not decay a player&#039;s Light Weapons XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayRate ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the rate (in skillpoints per second) that XP skill points for each skill will decay when g_XPDecay is enabled.&lt;br /&gt;
&lt;br /&gt;
Setting this to 0.1 would result in a player losing 6 points per minute IN ALL SKILLS, so up to 42XP per minute if the player has skill points for each skill.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;5000/o&amp;quot; - Decay 5000xp per skill per month&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;1000/w&amp;quot; - Decay 1000xp per skill per week&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;500/d&amp;quot; - Decay 500xp per skill per day&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;40/h&amp;quot; - Decay 40xp per skill per hour&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;2/m&amp;quot; - Decay 2xp per skill per minute &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayFloor ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the minimum that any particular skill can be reduced to by g_XPDecay.&lt;br /&gt;
&lt;br /&gt;
For example, setting this to 140.0 will ensure that no player will ever lose rank or skill levels due to g_XPDecay. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flood Protection = &lt;br /&gt;
&lt;br /&gt;
== g_floodprotect  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable/disable silEnT flood protect. Flooding means that a client is sending too many messages to the server (vsays, callvotes, etc...). Enabling g_floodprotect disables the engine&#039;s sv_floodprotect functionality. If you enable g_floodprotect, make sure you set a value for g_floodthreshold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&amp;amp;nbsp;&#039;&#039;&#039;1&lt;br /&gt;
&lt;br /&gt;
== g_floodthreshold  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of messages per second before ignoring the client&#039;s messages. Only in effect when g_floodprotect is turned on.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
== g_floodWait  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of milliseconds between two messages when g_floodprotect is enabled. This is a hard limit so admins aren&#039;t allowed to override it. 1000 milliseconds copies sv_floodprotect behaviour. This CVAR should not have a value below 500 in order to keep a public server playable.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_voiceChatsAllowed  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of voicechats allowed in minute.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Player Statistics, Rating and Team Balance =&lt;br /&gt;
&lt;br /&gt;
== g_stats  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a bitflag cvar used to control the way statistics are handled.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&amp;lt;br&amp;gt;1 When shooting a corpse to gib, do not count it as a hit.&amp;lt;br&amp;gt;2 When shooting a corpse to gib, do not count it as a shot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;amp;nbsp;Set this to 3 to use the behaviour of etmain and shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_playerRating_minplayers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of players that must participate in a map in order for it to count towards each player&#039;s player rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 8&lt;br /&gt;
&lt;br /&gt;
== g_shuffle_rating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the rating system used by shuffle.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 | 4 | 5 ]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player XP&amp;lt;br&amp;gt;2 Use the rate at which players have gained XP since connecting.&amp;lt;br&amp;gt;3 Use the killRating (g_killRating must be nonzero)&amp;lt;br&amp;gt;4 Use the playerRating (g_playerRating must be nonzero)&amp;lt;br&amp;gt;5 Use the playerRating (g_playerRating must be nonzero), but take the map into account and give the teams closest to 50/50&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_killRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to 0, silEnT will track a player&#039;s killing ability using an ELO type statistic similar to chess. Each kill will increase a player&#039;s kill rating based on how hard the kill was. Killing unskilled players will result in very few points whereas an unskilled player killing a skilled player will result in more points.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use kill rating. A dummy flag since any non-zero value for g_killRating will enable it.&amp;lt;br&amp;gt;2 Make kill rating visible. Players can use /killrating and at the end of each map a message will display the top killers for the map and overall.&amp;lt;br&amp;gt;4 Log files will include the GUIDs of the players involved in kills. This makes kill tracking a lot easier.&amp;lt;br&amp;gt;8 Disable kill rating from the score board. This can prevent players from playing for higher kill rating alone. This does not prevent the &amp;quot;killrating&amp;quot; client command enabled with flag 2 from working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_playerRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to non zero positive value, silEnT will track a player&#039;s ability to win against good teams using an ELO type statistic similar to chess. Each win will increase a player&#039;s rating based on how hard the opposing team was. Skilled teams defeating less skilled teams will result in very few points whereas an relatively low- rated team defeating a good team will result in more points. Player rating also takes into account the number of players on each team (less points when a very large defeats a small one) and which side tends to win more often on the current map (e.g. Allies tend to win tc_base).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player rating. A dummy flag since any non-zero value for g_playerRating will enable it.&amp;lt;br&amp;gt;2 Make player rating visible. Players can use /playerrating and at the end of each map a message will display the top player.&amp;lt;br&amp;gt;4 Put player rating on the scoreboard instead of the XP.&amp;lt;br&amp;gt;8 Print out extra info at the end of a round that can be used to further refine the playerrating model.&amp;lt;br&amp;gt;16 The same as flag 8 except a lot more info is output.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamDiff  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If g_teamForceBalance is set, setting g_unevenTeamDiff will notify all players when team numbers are off by g_unevenTeamDiff or more. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamFreq&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;: Set to 0 to disable this feature&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamFreq  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How often the team disparity notification occurs. Only valid when g_unevenTeamDiff is set to a positive value. Value is in seconds.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamDiff&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
= Class and Weapon Restrictions =&lt;br /&gt;
&lt;br /&gt;
== g_medicChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the medic charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 45000&lt;br /&gt;
&lt;br /&gt;
== g_engineerChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the engineer charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== g_LTChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the field ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 40000&lt;br /&gt;
&lt;br /&gt;
== g_soldierChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the soldier charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20000&lt;br /&gt;
&lt;br /&gt;
== g_covertopsChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the covert ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== team_maxPanzers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxPanzers, team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 panzerfaust soldiers, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team with few players (for example, 5) will be able to have 1 panzerfaust soldier. They will be able to have their second panzerfaust soldier when they have 11 players on the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team will not be able to have any panzerfaust soldiers until there are 10 players in the team. They will be able to have their second panzerfaust soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMortars  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 mortar soldiers, regardless of how many players are on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team with few players (for example, 5) will be able to have 1 mortar soldier. They will be able to have their second mortar soldier when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team will not be able to have any mortar soldiers until there are 10 players in the team. They will be able to have their second mortar soldier when there are 20 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Set this to -1 to disable limits&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFlamers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 flamethrower soldiers, regardless of how many players are on the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team with too few players (for example, 5) will be able to have 1 flamethrowe soldier. They will be able to have their second flamethrowe soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team will not be able to have any flamethrower soldiers until there are 10 players in the team. They will be able to have their second flamethrower when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMG42s  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 MG42 soldiers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team with too few players (for example, 5) will be able to have 1 MG42 soldier. They will be able to have their second MG42 soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team will not be able to have any MG42 soldiers until there are 10 players in the team. They will be able to have their second MG42 soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxGrenLaunchers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 grenade launchers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team with too few players (for example, 5) will be able to have 1 grenade launcher. They will be able to have their second grenade launcher when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team will not be able to have any grenade launchers until there are 10 players in the team. They will be able to have their second grenade launcher when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMedics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 medics, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team with too few players (for example, 3) will be able to have 1 medic. They will be able to have their second medic when they have 7 players in the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team will not be able to have medics until there are 7 players in the team. They will be able to have their second medic when there are 14 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxEngineers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 engineers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team with too few players (for example, 3) will be able to have 1 engineer. They will be able to have their second engineer when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team will not be able to have engineers until there are 7 players in the team. They will be able to have their second engineer when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFieldOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 field opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team with too few players (for example, 3) will be able to have 1 field ops. They will be able to have their second field ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team will not be able to have field opses until there are 7 players in the team. They will be able to have their second field ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxCovertOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 covert opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as coert opses, and a team with too few players (for example, 3) will be able to have 1 covert ops. They will be able to have their second covert ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as covert opses, and a team will not be able to have covert opses until there are 7 players in the team. They will be able to have their second covert ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_minAirstrikeTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airstrikes PER TEAM.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_minArtyTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airtillery strikes PER TEAM. Attempts to do airstrike before the timeout will get &amp;quot;Insuffient fire support&amp;quot; message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamLandmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of landmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamTripmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of tripmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_minGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of clients needed to start a match.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The maximum allowed amount of active clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Player Inactivity =&lt;br /&gt;
&lt;br /&gt;
== g_inactivity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity before the player is made a spectator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_spectatorInactivity==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity as spectator before the player is kicked/dropped from server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_inactivityOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional inactivity options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Don&#039;t drop shoutcasters&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t drop spectators when in following mode&lt;br /&gt;
&lt;br /&gt;
4 ETmain inactivity behavior (don&#039;t wait for a full server)&lt;br /&gt;
&lt;br /&gt;
8 Shrubbot flag &#039;0&#039; admins will be moved to spectators due to team inactivity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Gametypes =&lt;br /&gt;
&lt;br /&gt;
== g_gametype	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please see Map Voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [2|3|4|5|6|7]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
2 Objective&lt;br /&gt;
&lt;br /&gt;
3 Stopwatch&lt;br /&gt;
&lt;br /&gt;
4 Campaign&lt;br /&gt;
&lt;br /&gt;
5 Last Man Standing&lt;br /&gt;
&lt;br /&gt;
6 Map Voting&lt;br /&gt;
&lt;br /&gt;
7 Team Death Match&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== Campaign ==&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
&lt;br /&gt;
== Last Man Standing ==&lt;br /&gt;
&lt;br /&gt;
== Map Voting  ==&lt;br /&gt;
&lt;br /&gt;
This gametype allows for the players to decide on the map that is played next. When g_gametype is set to 6 a new screen is introduced during intermission. This screen list, depending on server configuration, a list of up to 32 maps that are loaded on the server, and that all players can vote on. Once intermission ends, the server totals the votes, and plays the next map based upon the vote results &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;;Miscellaneous notes about mapvoting:&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
Total maps allowed is 32. If server admin has more than 32 .bsp files, only the first 32 are used Tie breaker. The default tie-breaker is such that if 2 or more maps are tied with the same number of votes, the map that was played most recently is selected. Bots and connecting players do NOT count for mapvoting, everyone else (including spectators) does. If no maps are voted for, the default &amp;quot;nextmap&amp;quot; cvar is used, so server admins have to specify a default map cycle of sort, usually in the following format: &lt;br /&gt;
&amp;lt;blockquote&amp;gt;set d1 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map oasis&amp;amp;nbsp;; set nextmap vstr d2&amp;quot;&amp;lt;br&amp;gt;set d2 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map battery&amp;amp;nbsp;; set nextmap vstr d3&amp;quot;&amp;lt;br&amp;gt;set d3 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map goldrush&amp;amp;nbsp;; set nextmap vstr d1&amp;quot;&amp;lt;br&amp;gt;vstr d1&amp;lt;br&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
This means that the default map, upon server start, will be oasis. From there, map voting will be used. If at any point, no map is voted for, battery will be played, etc &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== g_mapVoteFlags  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; This cvar controls the behaviour of the map voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Changes the tie breaker so that the map not played in the longest wins&amp;lt;br&amp;gt;2 Intermission doesn&#039;t end until g_intermissionReadyPercent people have voted. If there are no players connected to the server, intermission will end at the timeout. (WARNING: This means that if there are spectators connected and not voting, the next map will not load until those spectators either vote, disconnect, or get kicked by the system)&amp;lt;br&amp;gt;4 Multi vote: Allows everybody to vote for 3 maps instead of one, first choice map gets 3 votes, second choice gets 2, third choice gets one&amp;lt;br&amp;gt;8 Don&#039;t randomize the maps, so they will always appear in the same order&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_maxMapsVotedFor  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;How many maps are available to players for voting upon during intermission.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6 &lt;br /&gt;
&lt;br /&gt;
=== g_minMapAge  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
How long a map is ineligible for voting during intermission, after it is played last time.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
=== g_includedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Used to include map regardless of any other restrictions. Including g_excludedMaps setting. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; or otherwise the map will be ignored in the list.&lt;br /&gt;
Only valid when map voting is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
=== g_excludedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Used to exclude map that would otherwise be listed in the map voting list. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; otherwise the map will not be excluded. &amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; To exclude railgun and battery maps from map voting use below command:&amp;lt;br&amp;gt; &lt;br /&gt;
set g_excludedMaps &amp;quot;:railgun:battery:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Team Death Match (TDM) ==&lt;br /&gt;
&lt;br /&gt;
=== g_TDMType	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The type of the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map ends only when timelimit hits&lt;br /&gt;
&lt;br /&gt;
2 Map ends when either the target score is reached or the timelimit hits&lt;br /&gt;
&lt;br /&gt;
3 Map ends only when the target score is reached&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_TDMOptions	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Possible options for the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map voting is enabled during the intermission (i.e. The players vote for the next map to play during the intermission.)&lt;br /&gt;
&lt;br /&gt;
2 Completing the map objective will give the team score bonus that is controlled by the g_TDMObjBonus server cvar&lt;br /&gt;
&lt;br /&gt;
4 Teams get negative points when they do selfkills or teamkills&lt;br /&gt;
&lt;br /&gt;
8 Players cannot selfkill during the TDM. Regardless of other selfkill settings the server has configured&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
=== g_TDMScore===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the target score the teams attempt to make to win the game in TDM game types 2 and 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
=== g_TDMObjBonus===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the value that is added to the team score if the team completes the map objective. Adding the bonus does not depend of the TDM type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
= Mapconfigs and Mapscripts =&lt;br /&gt;
&lt;br /&gt;
== g_mapConfigs	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On each map load, the silEnT server will execute 2 configs if possible. The default.cfg and after that a map specifig config file [mapname].cfg. For example if you set g_mapConfigs to &#039;mapcfg&#039;, when the map fueldump starts, the server will try to exec &#039;mapcfg/fueldump.cfg&#039;.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;&amp;quot; to disable it.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;.&amp;quot; to look for the cfg file in the current directory (fs_homepath).&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.5.2, admins can add settings that are executed for specific player amounts. The commands are enclosed in [players low-high] ... [/players] blocks. The low is the lowest amount of players for those settings and high is the maximum amount of players for those settings. For example:&lt;br /&gt;
&lt;br /&gt;
[players 0-10]&amp;lt;br&amp;gt;&lt;br /&gt;
set team_maxPanzers 0&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will disable panzerfaust when player amount is less or equal to 10. The blocks can be placed anywhere in the map config files. If the block is closed with [/players], the following commands do not depend on the player amounts. The player blocks can not be nested. If two player blocks follow each other, the second definition opens a new one and the old one closes. For example:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 0-15]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:mlb_temple:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 16-*]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:adlernest:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will exclude map MLB Temple if the player amount is less or equal to 15 and exclude map Adlernest if the player amount is 16 or more. The player amount counting is controlled with g_playerCounting server cvar.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When in g_gametype 6 mode (Map Voting) and g_resetXPMapCount is set, an additional file named vote_X.cfg is also exec&#039;ed. X indicates the position of the next map in the campaign. For example, vote_2.cfg will exec&#039;ed such that when map 1 ends, any cvars in vote_2.cfg will affect map voting for map 2. Player blocks are not used with vote_X.cfg files.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_mapScriptDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to ETPro&#039;s b_mapscriptsdirectory.  Set it to the name of a directory in your fs_path that contains custom map scripts. For example you can copy the &#039;etpromapscripts&#039; directory from the ETPro distribution to your &#039;silent&#039; directory and add: set g_mapScriptDirectory &amp;quot;etpromapscripts&amp;quot; to your cfg. Setting g_mapScriptDirectory to &amp;amp;quot;&amp;amp;quot; disables any use of map .script files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
It is strongly recommended that you use the map scripts distributed with silEnT or ETPub since these updated scripts fix very important bugs in some of the original map scripts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_campaignFile  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
If you set this to the name of a file in your fs_path it will be interpreted as a .campaign script and all other .campaign scripts in your pk3 files will be ignored. This is useful for making custom campaigns since you don&#039;t need to offer a pk3 file containing a custom .campaign script for all clients to download. However, if the client has not downloaded this .campaign file in a pk3, they will not see information about the campaign. &lt;br /&gt;
&lt;br /&gt;
Such information includes: &lt;br /&gt;
&lt;br /&gt;
*will not display in the VOTE -&amp;amp;gt; MAP list &lt;br /&gt;
*map locations will not draw on the map of Europe. &lt;br /&gt;
*campaign description will not draw in the right panel &lt;br /&gt;
*total number of maps and current maps order in the campaign &lt;br /&gt;
*will not be shown in the intermission screens.&lt;br /&gt;
&lt;br /&gt;
Also, even though the built-in campaigns cmpgn_centraleurope and cmpgn_northafrica will not be valid, they will still appear in the client&#039;s VOTE -&amp;amp;gt; MAP menu. If a vote for one of them passes, nothing will happen. &lt;br /&gt;
&lt;br /&gt;
Setting this to &amp;quot;&amp;quot; disables it. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_playerCounting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls how the player amount is calculated for the mapconfigs. The player amount value is the highest number of simultaneously fully connected players during the map or warmup. The player counting can be disabled from the warmup period. If the player counting is enabled during the warmup, the players are counted right at the end of the warmup. This allows the teams to stabilize after intermission. Similarly the counting is triggered always with a 3 second delay from the change in the teams. Team changes include players joining the server and staying &lt;br /&gt;
in the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable filtering. This will add the 2 latest values together and divide them by 2.&lt;br /&gt;
&lt;br /&gt;
2 No player counting during warmup.&lt;br /&gt;
&lt;br /&gt;
4 Count spectators into players. Without this flag, only players in the playing teams are counted.&lt;br /&gt;
&lt;br /&gt;
8 Bots are not included into the player count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= Censoring =&lt;br /&gt;
&lt;br /&gt;
== g_censor==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the chat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the player names.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorPenalty==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This controls the censoring behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kill the player&lt;br /&gt;
&lt;br /&gt;
2 Kick players with names containing words in g_censorNames&lt;br /&gt;
&lt;br /&gt;
4 Kill, but don&#039;t gib&lt;br /&gt;
&lt;br /&gt;
8 Auto-mute for g_censorMuteTime [60] seconds&lt;br /&gt;
&lt;br /&gt;
16 Lose the amount of xp specified in g_censorXP&lt;br /&gt;
&lt;br /&gt;
32 Burn&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use both 1 and 4, it will gib (like shrub did).&lt;br /&gt;
&lt;br /&gt;
== g_censorNeil==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter. It&#039;ll catch some symbol and number replacements,&lt;br /&gt;
and spaces now. It also adds some common words and common words with &amp;quot;swears&amp;quot; in them&lt;br /&gt;
that should really be OK. For example, it will not censor &amp;quot;assassin&amp;quot; but it will&lt;br /&gt;
censor &amp;quot;ass&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorNeilNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter for player names.  See g_censorNeil description for&lt;br /&gt;
details.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorMuteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds to auto-mute as a censor penalty. Only works if bitflag 8 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_censorXP==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of XP to lose as a censor penalty. Only works if bitflag 16 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
= Voting =&lt;br /&gt;
&lt;br /&gt;
== g_voting	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Control&#039;s voting behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Votes will pass on the number of votes cast rather than total eligible voters.&lt;br /&gt;
&lt;br /&gt;
2 Votes that pass do not count against the vote_limit for the caller.&lt;br /&gt;
&lt;br /&gt;
4 &amp;quot; (called by NAME)&amp;quot; is appended to the vote description where NAME is the name of the player that called the vote.&lt;br /&gt;
&lt;br /&gt;
8 Show the number of YES and NO votes after a votes has passed or failed. This also shows if a vote is canceled or passed by an admin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== vote_limit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This value defines how many votes one player can invoke during one map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== vote_percent==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The required percentage of yes votes for the vote to pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== vote_allow_comp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for competition settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_gametype==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for gametype.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_kick==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for kicking a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for map to be played.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_mutespecs==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for starting the next map in the map rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_pub==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for public game settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_referee==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for making a player a referee.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams based on XP.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for swapping the teams. Allied players go to the axis team and axis players go to the allied team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_friendlyfire==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the map time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_warmupdamage==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling/enemies only warmup damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_antilag==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling antilag.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_balancedteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling balanced teams enforcing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_muting==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting/unmuting a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for surrendering the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the campaign.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the campaign to the next one in the campaign rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows making freely written polls using the vote system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams without restarting the map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_cointoss==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for doing cointoss.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_putspec==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for moving a player to the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_block_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the match allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams without restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for starting the next map in the map rotation allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for swapping the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for surrendering the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for played map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for changing the map time allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for polls allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for next campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_noVoteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds must pass between two votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_voteResultsMinLevel==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the minimum admin level for the players to see the results of the votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_votedMuteLength==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the length in seconds of the mute issued by a passed mute vote. You can use modifiers with this value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3h&lt;br /&gt;
&lt;br /&gt;
= Weapons, Classes and Skills =&lt;br /&gt;
&lt;br /&gt;
== g_poison	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Gives medics the ability to poison enemies by sticking with their medic&lt;br /&gt;
syringe.  Enemies will be damaged at g_poison/second when g_poison is&lt;br /&gt;
set to a value more than 0.  Setting to 0 will disable poison needles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_poisonFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the effects of g_poison.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Poisoned player&#039;s screen shakes.&lt;br /&gt;
&lt;br /&gt;
2 Other players see the poisoned player&#039;s head shaking.&lt;br /&gt;
&lt;br /&gt;
4 Poisoned player appears to bend over (hurl) every 2 seconds. (poisoned player does not see this happen.)&lt;br /&gt;
&lt;br /&gt;
8 Poisoned player cannot use +attack.  NOTE: because of client side prediction, the client may see the gun firing occasionally if they hold down +attack, but no shots are fired.&lt;br /&gt;
&lt;br /&gt;
16 Poisoned player is disoriented (view turned upside down).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
== g_medics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the medic, to nerf or otherwise change their behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Medics can&#039;t pick up their own health packs to cure themselves of poison needle effects.&lt;br /&gt;
&lt;br /&gt;
2 Medics can&#039;t pick up their own health packs at all.&lt;br /&gt;
&lt;br /&gt;
4 A level 4 medic will always be revived to full health (no matter what the level of the reviving medic is).&lt;br /&gt;
&lt;br /&gt;
8 Value is not in use.&lt;br /&gt;
&lt;br /&gt;
16 Medics do not spawn with akimbo pistols, regardless of their light weapons skill.&lt;br /&gt;
&lt;br /&gt;
32 Medics spawn with pistol only, and can&#039;t pick up SMG of either team. However, any class can steal a medics uniform, if the g_classChange is set to 1, and receive the medic benefits while retaining their current weapons, including akimbos and SMG.&lt;br /&gt;
&lt;br /&gt;
64 Medics can use syringes to heal living teammates as an alternative to the tk/revive cycle.&lt;br /&gt;
&lt;br /&gt;
128 Level 4 medics can inject other players with their adrenaline.  This can be done when holding the revive needle by pressing the alt-fire button, or with the /adrenother client command.&lt;br /&gt;
&lt;br /&gt;
256 Level 4 medics cannot adrenaline self.  If this flag is on, Medics will not receive adrenaline upon reaching level 4. (This won&#039;t affect flag 128)&lt;br /&gt;
&lt;br /&gt;
512 Adrenaline use takes only half of the chargebar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adrenDmgReduction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
The percentage damage reduction after injecting adrenaline. g_adrenDmgReduction is now independent percentage of the caused damage that is inflected when the adrenaline is on. 0 means no damage and 100 means full damage from the weapon. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_medicHealthRegen==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The rate at which medics regenerate health (in HP per second).  This rate is divided into two parts:  The first is from 1 to 110-125 HP (depending on the number of medics per team), and then above that.  The system default is 3/2 (3 HP per second, then 2 HP per second).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 3/2&lt;br /&gt;
&lt;br /&gt;
1 2/2&lt;br /&gt;
&lt;br /&gt;
2 2/1&lt;br /&gt;
&lt;br /&gt;
3 2/0&lt;br /&gt;
&lt;br /&gt;
4 1/1&lt;br /&gt;
&lt;br /&gt;
5 1/0&lt;br /&gt;
&lt;br /&gt;
6 0/0&lt;br /&gt;
&lt;br /&gt;
7 0/1&lt;br /&gt;
&lt;br /&gt;
8 0/2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_throwableKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable knife throwing. The amount of throwable knives is g_maxKnives - 1. Any non zero value will enable knife throwing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of knives a player can posses. Take note that if g_throvableKnives is enabled, the last knife cannot be thrown.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_knifeChargeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long it takes in milliseconds for the &amp;quot;knife&amp;quot; to charge to the maximum throw speed/force.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 800&lt;br /&gt;
&lt;br /&gt;
== g_constructibleXPSharing==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When multiple engineers help build a constructible, each gets his share of XP&lt;br /&gt;
once the constructible is build.  The share of gained XP is proportional to&lt;br /&gt;
how much the engineer built.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_asblock	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Airstrike blocking.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Make an announcement whenever an airstrike is blocked.&lt;br /&gt;
&lt;br /&gt;
2 A player may easily block an airstrike by crouching, standing, or proning over the enemy&#039;s canister to block the airstrike.&lt;br /&gt;
&lt;br /&gt;
4 Reserved.&lt;br /&gt;
&lt;br /&gt;
8 Lvl 3 FieldOPs and higher cannot have the airstrikes blocked by players.&lt;br /&gt;
&lt;br /&gt;
16 Disables teammates blocking airstrikes.&lt;br /&gt;
&lt;br /&gt;
32 Give 2 Battle Sense XP to player that blocks the air strike. No XP given for blocking teammates or your own air strike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_panzersSpeed	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Speed of the panzers. Normal panzer speed is 2500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2500&lt;br /&gt;
&lt;br /&gt;
== g_panzersGravity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzer trajectory will be affected by gravity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dyno==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dynamite Behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmaks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Sudden Death Dynamites enabled. If there is 30 seconds or less on the clock and dynamite is planted on an objective, the clock will continue to run past zero. The match will not end until the dynamite either explodes, or is disarmed. You are not allowed to plant additional dynamite during sudden death.&lt;br /&gt;
&lt;br /&gt;
2 Dynamite chaining enabled. Dynamite will cause other similar dynamites to explode when exploding (only if within blast radius). Dynamites not planted on an objective will blow any other dynamite not on an objective. Dynamite planted on an objective will only blow dynamite on the same objective.&lt;br /&gt;
&lt;br /&gt;
4 Adds a dynamite symbol with the location and the time remaining to all the players on the team of the player who plants the dynamite. This will only happen when dynamite is placed on an objective. The players in the other team will see the dynamite symbol too, but they won&#039;t see the time remaining.&lt;br /&gt;
&lt;br /&gt;
8 Dynamite cannot be disarmed by your team (inlcuding yourself), so only the other team can defuse it.&lt;br /&gt;
&lt;br /&gt;
16 Enable dynamite ID. You can see the owner of a dynamite when you point at it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKick	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Canister and grenade kicking.&lt;br /&gt;
&lt;br /&gt;
Allows players to kick smoke, and air strike canisters, along with grendaes. The integer adjust the amount of force put behind the kick. 75 is a good value, anything below 60 is about useless, and above about 125 is probably too much.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKickOwner	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kicked Canister Ownership.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Kicker does not take ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
1 Kicker takes ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_staminaRecharge	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiplies the rate at which stamina is rebuilt. Setting this value to zero will cause players to not regain any stamina once it is used except through the use of adrenalin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_mineid	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turns on identification of your teammates landmines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_medicSelfhealTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in milliseconds that a medic cannot heal himself after being hit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxPanzerSuicides	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, a player can kill himself g_maxPanzerSuicides times with a panzerfaust. The next panzerselfkill will result in a panzer shooting medpacks.&lt;br /&gt;
&lt;br /&gt;
The amount of suicides is reset every map.&lt;br /&gt;
&lt;br /&gt;
Set to -1 to disable, -2 to always enable (no normal panzers anymore)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_panzerPackDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the g_packDistance for the medpacks fired by the panzerfaust when g_maxPanzerSuicides is enabled.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to use default (etmain)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_weapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_weapons cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 0 field ops doesn&#039;t get binoculars (unless he has &amp;gt;= level 1 Battle Sense)&lt;br /&gt;
&lt;br /&gt;
2 Syringes work underwater&lt;br /&gt;
&lt;br /&gt;
4 Pliers work underwater&lt;br /&gt;
&lt;br /&gt;
8 Fully restore Field ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
16 Half restore FIeld ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
32 Ammo packs restore helmets&lt;br /&gt;
&lt;br /&gt;
64 Drop binoculars if player has them&lt;br /&gt;
&lt;br /&gt;
128 Soldiers with level 4 heavy weapons don&#039;t lose their pistols&lt;br /&gt;
&lt;br /&gt;
256 Garands can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
512 Balance the clip size between the allies and axis rifles. allied rifles get same clip sizes and max ammo as the k43.&lt;br /&gt;
&lt;br /&gt;
1024 Creates a hitbox for mortar shells.  This reduces (or eliminates in some cases) the ability to fire mortars through smaller windows and bunker slits.&lt;br /&gt;
&lt;br /&gt;
2048 Knives will always gib a body (not a player, use g_dmgKnife instead if you want that)&lt;br /&gt;
&lt;br /&gt;
4096 Extra ammo is included with dropped weapons.&lt;br /&gt;
&lt;br /&gt;
8192 &amp;quot;Ammo&amp;quot;/&amp;quot;No ammo&amp;quot; icon is shown for dropped weapons.&lt;br /&gt;
&lt;br /&gt;
16384 Enable fast shooting for Thompson, MP40, PPSh and Sten. 110 ms between shots.&lt;br /&gt;
&lt;br /&gt;
32768 Kill by the shot tripmine is counted for the shooter not the player that planted it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 16384 was added in version 0.6.2.&lt;br /&gt;
&lt;br /&gt;
== g_classWeapons==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar enables certain weapons per class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable PPSH for soldiers&lt;br /&gt;
&lt;br /&gt;
2 Enable PPSH for engineers&lt;br /&gt;
&lt;br /&gt;
4 Enable PPSH for fieldops&lt;br /&gt;
&lt;br /&gt;
8 Enable MP40 and Thompson to be available to both teams in limbo menu&lt;br /&gt;
&lt;br /&gt;
16 Enable MP40 for soldiers.&lt;br /&gt;
&lt;br /&gt;
32 Enable Thompson for soldiers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 8 was added in version 0.6.0.&lt;br /&gt;
&lt;br /&gt;
Flags 16 and 32 were added in version 0.6.2. Also the default value was changed from 15 to 63.&lt;br /&gt;
&lt;br /&gt;
== g_mg42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls optional machine gun behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Machine Guns can make headshots&lt;br /&gt;
&lt;br /&gt;
2 Machine Guns can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_coverts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the Covert Op class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 4 Coverts have more accurate scoped weapons.&lt;br /&gt;
&lt;br /&gt;
2 Disguised coverts can only be identified with the &amp;quot;crosshair name&amp;quot; by level 4 Field Ops.&lt;br /&gt;
&lt;br /&gt;
4 After detonating a satchel charge, the primary weapon will be selected instead of satchel again.&lt;br /&gt;
&lt;br /&gt;
8 Coverts in disguise take half the normal combat damage.&lt;br /&gt;
&lt;br /&gt;
16 Coverts in disguise take no splash damage.&lt;br /&gt;
&lt;br /&gt;
32 Coverts do not automatically lose their uniform if an enemy sees them firing a weapon.&lt;br /&gt;
&lt;br /&gt;
64 Coverts do not automatically lose their uniform if they fire a non-silent weapon.&lt;br /&gt;
&lt;br /&gt;
128 Coverts do not automatically lose their uniforms if they attach to an emplaced MG weapon.  Note that this flag has nothing to do with firing.&lt;br /&gt;
&lt;br /&gt;
256 Coverts are awarded xp for constructive use of smoke.&lt;br /&gt;
&lt;br /&gt;
512 Coverts will lose their uniform if an enemy sees him using ANY weapon (otherwise knife/satchel/smoke/binoc will never lose uni).&lt;br /&gt;
&lt;br /&gt;
1024 A disguised covert can still steal enemy uniforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_enableTMines	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disables/enables tripmines. Tripmines are available only for engineers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_enableDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Improvised Demolition weapon for soldier class.&lt;br /&gt;
Improvised Demolition weapon was introduced in 0.8.0 version of the silEnT mod.&lt;br /&gt;
As mentioned in the original WWII Tank-destruction manual, a big charge could be made of 6 stickgrenade heads around one complete grenade, fixed with wire or rope.&lt;br /&gt;
The central grenade would make the other 6 grenade detonate as well causing an explosion which could damage the light armoured vehicles.&lt;br /&gt;
&lt;br /&gt;
In silEnT mod this weapon is designed to suit exactly the purpose described above.&lt;br /&gt;
To gain the weapon player has to gain 3rd engineer level and 4th soldier level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_skills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optional skill related flags.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players with level 4 battle sense can spot landmines for teammates&lt;br /&gt;
&lt;br /&gt;
2 Players with level 4 engineering can keep the flak jacket for other classes&lt;br /&gt;
&lt;br /&gt;
4 Players with level 4 first aid can keep adrenaline for other classes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== skill_soldier==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in soldier ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_medic	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in medic ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_engineer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in engineer ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_fieldops	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in fieldop ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_covertops==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in covert op ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_battlesense	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in battle sense ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_lightweapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in light weapon ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_panzersVulnerable==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzers that are shot in mid-air will explode.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_maxMarkers ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many danger zones can be marked by the covert ops.&lt;br /&gt;
&lt;br /&gt;
Danger zones were introduced in 0.7.0 version of the silEnT mod. They can be marked by Covert Ops to indicate that some area can be considered dangerous. Such area is then visible on the command map as the red circle zone. Additionally, when the Command Post is built, players are notified by sound and visual signs about entering the danger zone. Players can customize the way they are notified via the HUD editor and the silEnT customize HUD menu.&lt;br /&gt;
&lt;br /&gt;
To mark the danger zone Covert Ops needs to look through his binoculars and press the left mouse button (attack button). The same way Field Ops calls for an airstrike.&lt;br /&gt;
&lt;br /&gt;
To disable the feature set the g_maxMarkers to 0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Friendly Fire =&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFire  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
To enable / disable friendly fire on server.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [0|1] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFireOpts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows greater control over friendly fire events.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
2 Allow &#039;grenade boosting&#039; when friendly fire is off&lt;br /&gt;
&lt;br /&gt;
4 Non-engineer players do not trigger landmines on their own team&lt;br /&gt;
&lt;br /&gt;
8 Players do not trigger trip mines on their own team&lt;br /&gt;
&lt;br /&gt;
16 Tripmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
32 Only engineer that planted the landmine can trigger/defuse it (concerns team landmines only). This flag requires that the flag 4 is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 32 was added in version 0.5.1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_reflectFriendlyFire ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to Shrub&#039;s g_friendlyfire 2 cvar. A multiplier value that determines how much friendly-fire damage, if any, is reflected back to the player that caused the damage. This setting is independent of g_friendlyfire, so damage can be set to reflect on both FF and non-FF servers.&lt;br /&gt;
&lt;br /&gt;
A value of 1.0 would reflect full damage.&lt;br /&gt;
&lt;br /&gt;
A value of 0.5 would reflect half damage.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to disable reflected friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_reflectFFWeapons ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects which category of weapon will reflect when g_reflectFriendlyFire is non-zero.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable reflected damage for Firearms (all types of guns)&lt;br /&gt;
&lt;br /&gt;
2 Enable reflected damage for Grenades and grenade launchers&lt;br /&gt;
&lt;br /&gt;
4 Enable reflected damage for Knives (includes thrown knives)&lt;br /&gt;
&lt;br /&gt;
8 Enable reflected damage for Panzers&lt;br /&gt;
&lt;br /&gt;
16 Enable reflected damage for Flamethrowers&lt;br /&gt;
&lt;br /&gt;
32 Enable reflected damage for Mortars&lt;br /&gt;
&lt;br /&gt;
64 Enable reflected damage for Satchel Charges&lt;br /&gt;
&lt;br /&gt;
128 Enable reflected damage for Artillery and Air Strikes&lt;br /&gt;
&lt;br /&gt;
256 Enable reflected damage for Dynamite and Construction Damage&lt;br /&gt;
&lt;br /&gt;
512 Enable reflected damage for Landmines&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setting this value to zero will override any multiplier set via g_reflectFriendlyFire, effectively disabling reflecting damage.&lt;br /&gt;
&lt;br /&gt;
== g_teamDamageRestriction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When greater than 0, anybody that has this percentage of hits inflicted on a teammate will automatically be kicked. A minimum of g_minhits hits total required before this is calculated. Client can see current stats for themselves by doing a /damage in console. Implemented to mimic shrub behavior as much as is possible, there are other ways to implement this feature, which may be implemented in addition to current manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_minHits ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum number of damaging hits required before calculating if player has reached g_teamDamageRestriction threshold. Flamethrower and landmine hits are adjusted similar to shrub. Medics get -2 hits for every revive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
= Hitboxes, Physics &amp;amp; Anti Lag Settings =&lt;br /&gt;
&lt;br /&gt;
== g_antilagDelay	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Manually delay the antilag of every player on the server. Might give very weird behaviour, so use at own risk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysics==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Creates a smoother movement when enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysicsfps	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Makes the fixedphysics act like all the clients have the same framerate, so that players with &amp;quot;magic&amp;quot; quake engine framerates don&#039;t have an unfair advantage. This CVAR must be between 60 and 333.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 125&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t actually change the framerates in clients, so the clients can keep their own framerates.&lt;br /&gt;
&lt;br /&gt;
== g_antiwarp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro-style antiwarp. This gives non-lagging players a much better game but for laggers it will be a bit more uncomfortable. This CVAR overrides both g_maxWarp AND g_skipCorrection in order to keep things consistent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_realBody ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If server admin sets this, the player hitboxes are adjusted smaller and harder to hit. Value 0 corresponds to the hitboxes used up to 0.5.0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Hitboxes used up to 0.5.0&lt;br /&gt;
&lt;br /&gt;
1 Use smaller hitboxes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see the differences in the hitboxes, use g_debughitboxes server cvar. Do note that this kind of testing should not be done with many players because it will cause huge amount of lag.&lt;br /&gt;
&lt;br /&gt;
== g_skipCorrection	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 to enable Neil Toronto&#039;s unlagged2 skip correction. This will smooth out the movement of players with high packet loss (to a degree). This is similar to etpro&#039;s antiwarp, but has some differences. Neil likes this version better, bani likes his better.&lt;br /&gt;
&lt;br /&gt;
This replaces g_smoothClients from etmain.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarp	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This allows you to control the amount of &amp;quot;warping&amp;quot; that players with high packet loss can do.  The [integer] is the number of server frames that you allow a player to miss before their next movement is put in check.&lt;br /&gt;
&lt;br /&gt;
A server frame is 50ms on a typical server (sv_fps set to 20).  This means that if you set g_maxWarp to 5 you won&#039;t allow players to warp from point A to point B if that distance takes an normal player 1/4&lt;br /&gt;
of a second to travel. Setting this to 1 is a good way to drive off just about everyone from your server.&lt;br /&gt;
&lt;br /&gt;
As far as I can tell, 1000ms is allowed by default in the game, so setting this to any value higher than 39 should have no effect if sv_fps is set to 10.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Fun Wars and Crazy Settings =&lt;br /&gt;
&lt;br /&gt;
== g_panzerwar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Panzerwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_sniperwar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Sniperwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_riflewar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Riflewar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set maximum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 540&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set max speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Watermark =&lt;br /&gt;
&lt;br /&gt;
== g_watermark==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set a watermark that will be displayed to all clients. The watermark must be put in a folder named &amp;quot;watermark&amp;quot; and then this whole folder needs to be zipped into a .pk3 file. The silEnT watermark is &amp;quot;logo_silent.tga&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeAfter	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermark is set, the watermark will fade out after [integer] number of seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermarkFadeAfter is set, the watermark will fade out in [integer] seconds. (So the fading process from 1.0 alpha to 0.0 alpha takes [integer] seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Hitsounds =&lt;br /&gt;
&lt;br /&gt;
== g_hitsounds	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server side hitsound options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable hitsounds&lt;br /&gt;
&lt;br /&gt;
2 Disable hitsounds when shooting wounded players&lt;br /&gt;
&lt;br /&gt;
4 Disable the headshot sound when shooting wounded player in the head. (default hitsound will be used in it&#039;s place)&lt;br /&gt;
&lt;br /&gt;
8 Enable warning sound from hitting team mates&lt;br /&gt;
&lt;br /&gt;
16 Disable hitsounds from poison damage&lt;br /&gt;
&lt;br /&gt;
32 Disable hitsounds from explosive weapons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A client can disable hitsounds with cg_hitSounds client cvar. Also an option to play only headshots is available.&lt;br /&gt;
&lt;br /&gt;
== g_defaultHitSounds ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects the default hit sounds on the server. Starting from silEnT 0.6.0, it is possible for the players to choose what kind of hit sounds are played. If the client cvar cg_hitSoundType is 0, the g_defaultHitSounds determines what type of hit sounds are used. Also, if the client cvar cg_hitSoundType is 0, the server may also add custom hit sound files in a custom pk3 file. These sounds are automatically loaded if available. However, if the client cvar cg_hitSoundType is 1, 2 or 3, the client will use strictly the hit sounds they have selected. Custom hit sounds are placed to the root folder &amp;quot;sounds/hitsounds&amp;quot; in the custom pk3. They must never overload any of the files in the subfolders, silent, etpro or etpub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 No selection, will default to silEnT in the client end.&lt;br /&gt;
&lt;br /&gt;
1 Defaults silEnT hitsounds.&lt;br /&gt;
&lt;br /&gt;
2 Defaults ETPro hitsounds.&lt;br /&gt;
&lt;br /&gt;
3 Defaults ETPub hitsounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
= Intermission =&lt;br /&gt;
&lt;br /&gt;
== g_intermissionTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the length of time the end of game screens displays before loading the next map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_intermissionReadyPercent	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The percent of connected players who need to hit the &amp;quot;READY&amp;quot; button to move on to the next map without waiting g_intermissionTime to run out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
= Miscellaneous =&lt;br /&gt;
&lt;br /&gt;
== g_proneDelay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set, there will be 1750 ms delay after every prone or getting up before the player can prone or get up again. Also, weapon spread will be maxed for 1 second after proning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_realPlayTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Show additional real play time of the payer (without spec time) in the debriefing screen at the end of the map.&lt;br /&gt;
For instance: 6/10 would mean that player played 6 minutes, was on the server for 10 minutes and 4 minutes was in spec.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== g_extraStatistics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional statistics over the end game awards.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player with most mine kills&lt;br /&gt;
&lt;br /&gt;
2 Player with most mine damage inflicted&lt;br /&gt;
&lt;br /&gt;
4 Player with most knife kills&lt;br /&gt;
&lt;br /&gt;
8 Player with most gibs&lt;br /&gt;
&lt;br /&gt;
16 Player with most artillery kills&lt;br /&gt;
&lt;br /&gt;
32 Player with most airstrike kills&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_packDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the distance at which health packs and ammo packs are thrown. Set this to 0 to make it just like etmain.  The settings should be similar to shrubet so set this to 2 for a subtle improvement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, medics will drop [integer] number of health packs when they are gibbed.  If set to -1, medics will drop the number of health packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropAmmo	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, fieldops will drop [integer] number of ammo packs when they are gibbed.  If set to -1, fieldops will drop the number of ammo packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tossDistance==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the velocity at which health or ammo packs are tossed from the dead body when g_dropHealth or g_dropAmmo are activated. This changes the distance that these packs travel from the corpse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_misc==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Miscellaneous options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Type: &#039;&#039;&#039;bitmask&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable double jump.&lt;br /&gt;
&lt;br /&gt;
2 Enable binoc master competition. Requires g_weapons 64 to be set.&lt;br /&gt;
&lt;br /&gt;
4 When a player is killed he can see the HP the killer has left.&lt;br /&gt;
&lt;br /&gt;
8 Disable self damage.&lt;br /&gt;
&lt;br /&gt;
16 Players can not jump if stamina is too low.&lt;br /&gt;
&lt;br /&gt;
32 Enable Jaymod style doublejump.&lt;br /&gt;
&lt;br /&gt;
64 Disable Falling Damage.&lt;br /&gt;
&lt;br /&gt;
128 Announce revives.&lt;br /&gt;
&lt;br /&gt;
256 Setting this flag disables the &amp;quot;First Blood&amp;quot; announcement.&lt;br /&gt;
&lt;br /&gt;
512 Full body predict. This makes it harder to get inside for example walls and stones. Same as ETPub g_misc 32 + 256. Do note that this can cause problems when proning through windows and similar narrow passages&lt;br /&gt;
&lt;br /&gt;
1024 Enable the enemy team objective carry indicator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
* Flag 1024 was added in version 0.8.2.&lt;br /&gt;
&lt;br /&gt;
== g_moverScale	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiply the speed of movers (e.g. tanks) by float.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_slashKill==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the behavior of the /kill command. See also g_fear and g_maxSelfkills.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player spawns with half charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
2 Player spawns with 0 charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
4 Restores the charge bar to the same state it was in at the moment the player issued /kill (regardless of how long they were in limbo)&lt;br /&gt;
&lt;br /&gt;
8 Disable /kill when player is frozen&lt;br /&gt;
&lt;br /&gt;
16 Disable /kill when player is poisoned&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxSelfkills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of times a player can use /kill per map. Setting this to -1 will result in normal behaviour (infinite selfkills). Setting this to 0 will disable /kill.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_ammoCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between ammo cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60000&lt;br /&gt;
&lt;br /&gt;
== g_healthCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between health cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10000&lt;br /&gt;
&lt;br /&gt;
== g_spectator==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls spectator behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 When in freelook mode, you can &#039;fire&#039; at a player to follow. If you miss a player, nothing happens.&lt;br /&gt;
&lt;br /&gt;
2 When in freelook mode with the 1 flag set, if you shoot and miss you start following the next available player.&lt;br /&gt;
&lt;br /&gt;
4 When the player you&#039;re following goes into limbo, don&#039;t move to the next available player.&lt;br /&gt;
&lt;br /&gt;
8 When the player you&#039;re following goes into limbo, go to freelook instead of following the next available player. (4 has precedence)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_truePing	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to see how much their local game is behind the top time (the time of the latest server frame). Pings will show around 50 ms better than if the ping would show network latency, but it&#039;s more accurate. Remember that the server is sending a snapshot to players in every 50 ms. This makes the players to inherenty play in the past from the server point of view.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropObj	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets the number of times a player can drop/toss the objective (e.g. parts on radar) per life.&lt;br /&gt;
&lt;br /&gt;
The parts are dropped by pressing the +activate key (usually bound to F) when there&#039;s nothing else around to be activated.&lt;br /&gt;
&lt;br /&gt;
Before enabling this recall how spammy the voiceovers can be. Then picture a player tossing the parts to himself over and over again. For this reason you probably don&#039;t want to set this very high.&lt;br /&gt;
&lt;br /&gt;
Players must switch to knife in order to drop the objective. If they are not holding knife and hit +activate they will see a message that notifies them that they must switch to knife.  This change was made to prevent accidental dropping of the objective when trying to push, drag, pick up, or activate something else.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_doubleJumpHeight	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adjusts the height of the second jump in a double jump.  This value is a multiplier to the default jump velocity. The greater g_doubleJumpHeight is, the greater the height of the second jump.  This setting has no effect if double jump is disabled in g_misc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.4&lt;br /&gt;
&lt;br /&gt;
== g_serverInfo==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use this cvar to change the behaviour of the &#039;serverinfo&#039; string.  This string is printed in response to the &#039;getstatus&#039; primative command used by game browsers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Display player team information using the &#039;P&#039; cvar in the server info string. (etpro and etmain 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
2 Display player team information using the &#039;Players_Axis&#039; and &#039;Players_Allies&#039; cvars in the server info string. (etmain &amp;lt; 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
4 Display the &#039;campaign_maps&#039; cvar in the server info string. This contains a comma delimited list off all the maps in the current campaign. Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
8 Displays the &#039;C&#039; CVAR in the server info string.  This is a string containing the current map number in the campaign, and total maps in current campaign, in the form of &amp;amp;quot;xx,yy&amp;amp;quot;.  Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
16 The class charge times will not be present in the server info string unless this flag is set. They are removed by default in order to make room in the serverInfo string for more useful information. These cvars are g_medicChargeTime, g_engineerChargeTime, g_LTChargeTime, g_covertopChargeTime, g_soldierChargeTime.&lt;br /&gt;
&lt;br /&gt;
32 Send KR (KillRating) instead of XP in SERVERINFO string.  This is overriden by flag 64.&lt;br /&gt;
&lt;br /&gt;
64 Send PR (PlayerRating) instead of XP/KR in SERVERINFO string. Overrides flag 32.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar MUST be set prior to loading the first map. You will not be able to change this cvar once the game code is loaded. The serverInfo string has a fixed length of 1024 characters.  This space is shared with any cvar you create on your server with the &#039;sets&#039; command.  If you use up too much space with &#039;sets&#039;, your server will fail to start.  It will print the message &amp;quot;Info string length exceeded&amp;quot; if you don&#039;t have enough space left in your serverinfo string to handle the g_serverInfo flags you&#039;ve selected. To fix this, either remove some sets cvars from your config, or use different g_serverInfo flags.&lt;br /&gt;
&lt;br /&gt;
== g_fear	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If a player uses the /kill command within g_fear milliseconds after taking damage from an enemy, the attacker that last damaged that player will recieve full credit for the kill and the mode of death will be recorded as MOD_FEAR.  Other restrictions are that the attacker must be on the opposite team and the attacker must still be alive.&lt;br /&gt;
&lt;br /&gt;
G_fear applies also to players that try to switch teams within g_fear milliseconds. The player will remain in the same team and the usual g_fear behavior applies.&lt;br /&gt;
&lt;br /&gt;
In-game statistics will reflect that the death was caused by the weapon that did the last recorded damage to the player.&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable this behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2000&lt;br /&gt;
&lt;br /&gt;
== g_maxNameChanges	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Limit the number of namechanges per player per map by setting this cvar. This is especially needed if you have cheaters that autochange their name every second. Set to -1 to disable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_disableComplaints	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable teamkill complaints for some weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines&lt;br /&gt;
&lt;br /&gt;
2 Artillery and airstrikes&lt;br /&gt;
&lt;br /&gt;
4 Mortar&lt;br /&gt;
&lt;br /&gt;
8 Dynamite&lt;br /&gt;
&lt;br /&gt;
16 Tripmines&lt;br /&gt;
&lt;br /&gt;
32 Completely&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_countryFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets whether the players will see the GeoIP country flags in the crosshair when aiming at someone and in the scoreboard. Players can enable/disable it with cg_countryFlags (default 1).&lt;br /&gt;
&lt;br /&gt;
You will need the GeoIP.dat file in your server&#039;s silent folder. You should read and accept the license of the GeoIP.dat database!&lt;br /&gt;
&lt;br /&gt;
Read the database license at http://geolite.maxmind.com/download/geoip/database/LICENSE.txt&lt;br /&gt;
Download the latest database at http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_noSkillUpgrades==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, disables player skill upgrades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
0 No skill locking.&lt;br /&gt;
&lt;br /&gt;
1 Lock skills.&lt;br /&gt;
&lt;br /&gt;
2 Lock skills and hide all HUD elemnts that would show the skill levels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.6.0, this cvar will lock the skills to the always enabled levels. See the skill_x cvars. Also, it is possible to hide the skill levels from the player HUDs setting this cvar to value 2.&lt;br /&gt;
&lt;br /&gt;
== g_flushItems	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Evens the dropped items out with the surface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxConnsPerIP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of connections allowed from one particular IP. This prevents the fake clients Denial of Service attack.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== shoutcastPassword	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables shoutcaster status on the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;none&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_headshot==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional head shot options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Headshots only&lt;br /&gt;
&lt;br /&gt;
2 Instagib damage (controlled by g_instagibDamage)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_instagibDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Damage used for instagib mode (e.g. set this to 160 so that a player can still be revived after being shot.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_ettvFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional ETTV options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Prevent ettv slaves from being callvote kicked&lt;br /&gt;
&lt;br /&gt;
2 Grant shoutcaster status to ettv slaves&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_mode==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls some additional modes for fun or for testing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players will spawn instantly&lt;br /&gt;
&lt;br /&gt;
2 Each class receives adrenaline&lt;br /&gt;
&lt;br /&gt;
4 No damage on players&lt;br /&gt;
&lt;br /&gt;
8 Players can pick up any weapon on the ground (Removing this bitflag will force all players to respawn!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_playDead	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to use the &#039;playdead&#039; command and their character will act like it is dead until the playdead command is used again (or they really die).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_shove	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to push other players with the &amp;quot;use&amp;quot; key.  The integer adjusts the amount of force players shove with. 80 seems fair.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 80&lt;br /&gt;
&lt;br /&gt;
== g_shoveNoZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 if you want to disable shove in the up/down direction (a.k.a &amp;quot;boosting&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dragCorpse	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players do drag wounded players with the use key when moving backward slowly.  Works best when crouching or prone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_classChange	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to take the class of a gibbed teammate temporarily similarly to how a covert steals an uniform.  Class changing does not latch, so the original class the player had will be restored on respawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_forceLimboHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0 it takes about 3 shots to gib a wounded player, if set to 1 it takes about 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_goomba==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, players can damage each other by landing on each other. The integer is multiplier that determines how much damage should be done to the player that was fallen on.  Also the impact for the falling player will be broken so that they only recieve 20% of the damage they would have normally.  It is also possible to do small amounts of damage (5HP) to other players by hopping up and down on them.&lt;br /&gt;
&lt;br /&gt;
Falling damage can be either 500, 50, 25, 15, or 10 depending on the length of the fall.  So if you set g_goomba to 5 and land on a player from a fall that would have damaged you 10HP, you will inflict 50HP of damage on the player you land on, and you will only recieve 2HP of damage.&lt;br /&gt;
&lt;br /&gt;
See also g_goombaFlags&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_goombaFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the way g_goomba is handled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Cannot do goomba damage to teammates.&lt;br /&gt;
&lt;br /&gt;
2 Short falls (hopping) on another player does no damage.&lt;br /&gt;
&lt;br /&gt;
4 Short falls (hopping) does no damage to teammates. (not necessary if 1 or 2 flag is set)&lt;br /&gt;
&lt;br /&gt;
8 Falling player recieves no damage when landing on any other player. (default is to recieve 20% of the damage the fall would have given if not landing on a player).&lt;br /&gt;
&lt;br /&gt;
16 Insta-gib goomba. All goomba damage will be 500HP regardless of fall distance. The exception is hopping on anther player which still does 5HP of damage.&lt;br /&gt;
&lt;br /&gt;
32 Falling corpses won&#039;t cause damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 31 to have g_goomba work like shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvul	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds players will be invincible after they spawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvulFair	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes the spawn protection when the player fires his first shot (note : the spawn protection will still be removed after the g_spawnInvul time)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_spinCorpse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allow players to use +left and +right binds to spin their corpse when dead or playing dead.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_teamChangeKills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0, players are allowed one non-killing team change per respawn cycle.  If a player changes teams, he will be instantly spawned in the other teams default spawn point.  Players will die (but not lose a life) if they change teams a second time in one spawn cycle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxIgnoresPerMap ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The maximum number of times one player can ignore another player during one map. This can prevent spamming other players with the ignore command. The value can be between 0 and 255. Any value higher than 255 will always allow ignoring. Any value below 1 will disable ignoring completely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Logs =&lt;br /&gt;
&lt;br /&gt;
== g_logOptions==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_logOptions cvar, but so far the only implemented flags are:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Server outputs obituaries to chat.&lt;br /&gt;
&lt;br /&gt;
2 Adrenaline countdown displayed.&lt;br /&gt;
&lt;br /&gt;
4 Disable display of tap-out confirmation box.&lt;br /&gt;
&lt;br /&gt;
8 Display connection attempts by banned players.&lt;br /&gt;
&lt;br /&gt;
16 Display gib reports (&amp;quot;&amp;amp;lt;victim&amp;amp;gt; was gibbed by &amp;amp;lt;attacker&amp;amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
32 Omit &amp;quot;item&amp;quot; lines from log file.&lt;br /&gt;
&lt;br /&gt;
64 Report gibs.&lt;br /&gt;
&lt;br /&gt;
128 GUID&#039;s are logged in the game log. Note, if this option is enabled the VSP log parser will not work.&lt;br /&gt;
&lt;br /&gt;
256 Log all private messages (/m commands).  This setting won&#039;t have any effect unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
512 Logs the real time into logs, instead of the normal uptime of the server.&lt;br /&gt;
&lt;br /&gt;
1024 This flag allows logging every player drop. It can be usefull for inspecting the server operation, but it will also cause lot of needless log writes.&lt;br /&gt;
&lt;br /&gt;
2048 Print TK death message like a normal kill message, giving killing weapon, except it is preceeded by a red TEAMKILL: identifier. Only works if g_obituary is set to 3.&lt;br /&gt;
&lt;br /&gt;
4096 Log client cvar values.&lt;br /&gt;
&lt;br /&gt;
8192 Log cvar values only when found from the client. Note that flag 4096 must also be set if using this flag.&lt;br /&gt;
&lt;br /&gt;
16384 Admin log will use new format that is more readable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.3 - Flags 4096 and 8192 were added.&lt;br /&gt;
&lt;br /&gt;
0.8.0 - Flag 16384. When this flag is set, the admin log will use new format.&lt;br /&gt;
&lt;br /&gt;
== g_logAdmin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file that all shrubbot commands will be logged to. For example, g_logAdmin &amp;quot;admin.log&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_cheatLog ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file, where all cheat related prints are logged. If this is not specified, server log is used.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Omni-Bots =&lt;br /&gt;
&lt;br /&gt;
== omnibot_enable ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, Omni-bot functionality is enabled. You still need to have Omni-bots installed correctly in order for the bots to work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== omnibot_path	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The path where the Omni-bot dll/so file is installed. If you installed Omni-bot to the default locations, then you do not need to modify this cvar. Leaving this cvar blank will search for the Omni-bot dll/so file from the default locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_bot_maxXP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Any bots present will have their XP reset after this much XP is reached. If g_maxXP is also set to a value greater than -1, then the bot XP will be reset whenever the lower limit of the two is hit. Set this to -1 to disable this feature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== omnibot_flags==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes bot management/behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Disables XPSave for bots&lt;br /&gt;
&lt;br /&gt;
2 Bots cannot mount tanks&lt;br /&gt;
&lt;br /&gt;
4 Bots cannot mount emplaced guns&lt;br /&gt;
&lt;br /&gt;
8 Don&#039;t track bot count in omnibot_playing cvar&lt;br /&gt;
&lt;br /&gt;
16 Bots will target ungibbed enemies&lt;br /&gt;
&lt;br /&gt;
32 Bots will trigger team and spotted mines&lt;br /&gt;
&lt;br /&gt;
64 Bots can use g_shove&lt;br /&gt;
&lt;br /&gt;
65536 Bots are granted shrubbot command immunity (the same as shrubbot flag !)&lt;br /&gt;
&lt;br /&gt;
131072 Bots cannot be !kicked or !banned&lt;br /&gt;
&lt;br /&gt;
262144 Disable shrubbot greeting for bots&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Lua =&lt;br /&gt;
&lt;br /&gt;
== lua_modules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of files to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. The paths are relative to the mod&#039;s directory, and can optionally be placed inside pk3 archieves. We are aiming for compatibility with ETPro&#039;s Lua Mod API found at http://wolfwiki.anime.net/index.php/Lua_Mod_API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== lua_allowedModules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of sha1 signatures for the lua modules to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. Only lua modules with the matching sha1 signature listed in this cvar will be allowed to load by the Lua API engine (ACL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Weapon Damage and Radius Settings =&lt;br /&gt;
&lt;br /&gt;
== g_dmg	==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables experimental advanced combat options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Use traditional ET settings for combat.&lt;br /&gt;
&lt;br /&gt;
1 Use Advanced Hit Locations: Differentiates between Head, Body, Arm, and Leg shot when computing damage.&lt;br /&gt;
&lt;br /&gt;
2 Applies a more realistic damage vs. range equation for short-ranged weapons. This will reduce the effectiveness of these weapons at longer ranges.&lt;br /&gt;
&lt;br /&gt;
4 Gives a damage bonus to short-range weapons when used in close combat situations.  This will increase the effectiveness of these weapons at closer ranges.&lt;br /&gt;
&lt;br /&gt;
8 Use bullet fall-off approximations when computing shot trajectory.&lt;br /&gt;
&lt;br /&gt;
16 Improve accuracy of non-scoped single-shot rifles.&lt;br /&gt;
&lt;br /&gt;
32 Use alternate bullet-spread characteristics for automatic or rapid-fire weapons.&lt;br /&gt;
&lt;br /&gt;
64 Damage from players who are spectators or have disconnected is ignored, and XP is not awarded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotMin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This represents the minimum damage done by a headshot regardless of the weapon used to make the shot.&lt;br /&gt;
&lt;br /&gt;
Headshots that would do damage below this value will be adjusted upward to equal g_dmgHeadshotMin. Headshots from a weapon with damage at or above this value will do a multiple of their damage, as specified by g_dmgHeadShotRatio. (The actual damage may undergo additional modification due to range and other conditions)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotRatio	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This specifies the multiplier used for headshots that do damage ABOVE g_dmgHeadShotMin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_dmgKnife	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the knife.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_dmgSten	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the sten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 14&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 15&lt;br /&gt;
&lt;br /&gt;
== g_dmgPistol==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the pistol weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgSMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the SMG weapons (Thompson and MP-40).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the MG42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an emplaced MG.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42Scope==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42 when scoped.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
== g_dmgInfRifle	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by unscoped rifles (K43 and Garand).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 34&lt;br /&gt;
&lt;br /&gt;
== g_dmgSniper	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a scoped Garand or K43.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgFlamer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the a flamethrower. Also controls the per-tick damage done to a player who has been set on fire by a flamethrower and is still burning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenade==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenadeRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncher	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncherRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blas radius of an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgTMine==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a tripmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 260&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmine	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmineRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchel	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchelRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzerRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortarRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamite	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamiteRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAir	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAirRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArty	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour (can do damage, but to a very small radius, making damage unlikely)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArtyRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour. The spotting round can do damage, but to a very small radius making damage unlikely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1100&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolitionRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_knifeThrowDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage a thrown knife will cause to enemy.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgPPSh==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage done by a PPSh.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 19&lt;br /&gt;
&lt;br /&gt;
= Debugging =&lt;br /&gt;
&lt;br /&gt;
== g_debugBullets ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, server will produce debug information of fired bullets. Enabling g_debugBullets require sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If 1 is set as if the cvar was a bitmask, blue lines for the fired shots is enabled. With any positive value, server will print impact area on the hit player to the center of the screen. Possibilities are &amp;quot;Head Shot&amp;quot;, &amp;quot;Body Shot&amp;quot;, &amp;quot;Leg Shot&amp;quot; and &amp;quot;Arm Shot&amp;quot;. If the value is set to 2 or more, the bounding box of the hit player is drawn. If the value is set to 3 or more, the hit player head box is drawn. If the value is set to -2 or smaller, boxes are drawn to impacted surfaces.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default: 0&lt;br /&gt;
&lt;br /&gt;
== g_debugDamage ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, damage inflicted to players is logged into the server log. Enabling this cvar requiers sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_debugHitboxes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is enabled, hit boxes around the players are drawn. This cvar does not require sv_cheats. However, do note that if this is enabled, the server will produce constant flow of extra entities, which will make playing impossible on a live server. Test this with only couple players to prevent everyone from lagging out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to any positive value, boxes are drawn. If the value is set to 8 or more, it will draw only the boxes that are used for the initial trace. Each bullet causes two traces to happen, where the second trace confirms the impact on the more refined area of the player body, such as head or legs.&lt;br /&gt;
&lt;br /&gt;
= Deprecated Cvars =&lt;br /&gt;
&lt;br /&gt;
== g_realHead==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro headboxes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Regular headbox positions.&lt;br /&gt;
&lt;br /&gt;
1 Server tracks the animations so the headbox will match the playermodels exactly. This is the recommended value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This code was originally from ETPro (b_realhead).  It was contributed by zinx and added to ETPub by forty. silEnT is based on the ETPub source and this code has not been altered from the ETPub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.1 - The option was removed. The ETPro headboxes are always used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_spoofOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Options for PunkBuster GUID and IP spoof detections and behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kick for GUIDspoofing.&lt;br /&gt;
&lt;br /&gt;
2 Kick for IPspoofing.&lt;br /&gt;
&lt;br /&gt;
4 Display a global warning when someone is GUIDspoofing. (When flag 1 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
8 Display a global warning when someone is IPspoofing. (When flag 2 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
16 Don&#039;t use the stored GUID. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
32 Don&#039;t use the stored IP. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do NOT change this CVAR unless you encounter problems!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar was removed in version 0.5.1 and spoofing is checked unconditionally in 0.5.1 and later versions.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1247</id>
		<title>Silent Mod Server Cvar</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1247"/>
		<updated>2015-04-12T11:13:35Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* g_dbDirectory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= silEnT Mod Anti Cheat =&lt;br /&gt;
&lt;br /&gt;
== g_silentac ==&lt;br /&gt;
&lt;br /&gt;
;Description&lt;br /&gt;
Enables actions based on silEnT AntiCheat. The g_cheatLog will always have one line telling if a player is found with cheats. The cheat detection&#039;s are based mostly on heuristically detecting hacking techniques. If you suspect a false positive, please supply the silEnT team a method to reproduce it. Do note that this feature has been in extensive testing well before the 0.8.0 version. When silEnT AC is set to autoban, sv_sac cvar is set to 1. This cvar can be used by external server trackers to enable/disable server anti cheat status on their lists. We recommend setting the value to 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Show player AntiCheat status in the !finger output.&lt;br /&gt;
&lt;br /&gt;
2 Automatically ban players for 365 days with cheats.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
== g_clientBinaries ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
silEnT mod can be configured to not allow players with unknown client binaries to play on the server. This cvar controls the server behaviour when the client binary is not one of the recognized ones.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;List of recognized binaries:&#039;&#039;&#039;&lt;br /&gt;
*Official client binaries&lt;br /&gt;
*Binary edited executables from etmaster.net&lt;br /&gt;
*Equivalent to etmaster.net binary edited executables from BigBear&lt;br /&gt;
*ETPatchSelector binaries&lt;br /&gt;
*Official ET Legacy b4&lt;br /&gt;
*Official ET Legacy b5&lt;br /&gt;
*Many ET Legacy binaries including RC1 versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow players with unknown client executables.&amp;lt;br&amp;gt;&lt;br /&gt;
2	Log unknown executables to the g_cheatLog. Note, if the server does not allow unknown client binaries the log message will be different for message.&amp;lt;br&amp;gt;&lt;br /&gt;
4	Report unknown executables to admin chat. Note, if the server does not allow unknown client binaries the players will not be reported to admin chat.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - If the flag 4 is set, known cheat binaries are clearly reported to the admin chat.&lt;br /&gt;
&lt;br /&gt;
== g_identOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from version 0.3.0, the silEnT mod can be configured to enforce bans using hardware based identification. This is not any fool proof system but it is made to be an addition to the already existing ban methods. The hardware identification cannot be seen in human readable form by admins while on the server. The data that is sent to the server can be seen in the client by writing /cg_ident to the console. The result is a hexadecimal string that changes its value between maps. The format and data used to create the client identification may change between different versions of the silEnT mod. The server can be configured with the g_identOptions server cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Kick clients that are spoofing the client identification to enter the server&lt;br /&gt;
&lt;br /&gt;
2	Kick clients that are not sending the identification to the server&lt;br /&gt;
&lt;br /&gt;
4	Enforce bans using the identification&lt;br /&gt;
&lt;br /&gt;
8	Report all actions taken based on client identification to the adminchat&lt;br /&gt;
&lt;br /&gt;
16	If a player is caught of circumventing a ban, a new ban is created with for it. The ban reason will have additional (Automated copy of a ban for xxxxxxxx) where xxxxxxxx is replaced with the 8 character PB GUID of the old ban.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Announcements and Messages =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_privateMessages ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If set to 1, players can send private messages to one another with the /m playername/slot command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disable Private Messages&lt;br /&gt;
&lt;br /&gt;
1 Enable Private messages&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Clients can reject private message from other individual clients with the /ignore client command. Also, private messages can be disabled from individuals/levels using shrubbot flag &#039;/&#039;.&lt;br /&gt;
&lt;br /&gt;
== g_spreeOptions  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Options to control the display of killingsprees. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: bitmask &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Enable killingsprees &lt;br /&gt;
&lt;br /&gt;
2 Enable killingspree ends &lt;br /&gt;
&lt;br /&gt;
4 Enable multikills &lt;br /&gt;
&lt;br /&gt;
8 When set, a top 3 current killing sprees message will be printed every minute, similar to binoc masters, and a map&#039;s longest killing spree will be printed every two minutes &lt;br /&gt;
&lt;br /&gt;
16 At the beginning of the intermission the highest spree and the 3 highest sprees which are still active will be shown &lt;br /&gt;
&lt;br /&gt;
32 /kill will end a spree &lt;br /&gt;
&lt;br /&gt;
64 Teamswitching will end a spree &lt;br /&gt;
&lt;br /&gt;
128 Multikill messages will be delayed g_multikillTime milliseconds, to prevent the doublekill -&amp;amp;gt; multikill -&amp;amp;gt; megakill -&amp;amp;gt; etc. flooding &lt;br /&gt;
&lt;br /&gt;
256 Killing bots doesn&#039;t count for multikills or killingsprees (Note: they DO count for ending kill/deathsprees) &lt;br /&gt;
&lt;br /&gt;
512 Display the map and overall spree record when entering intmission &lt;br /&gt;
&lt;br /&gt;
1024 Summary: don&#039;t enable this flag if you don&#039;t have enabled g_spreeOptions flag 512 OR g_XPSave flag 16 or Shrubbot flag t &lt;br /&gt;
&lt;br /&gt;
Spree records are automatically saved into XPSave file when a map ends. By enabling this flag, you also store the spreerecord at the points where g_XPSave flag 16 would store XP. When you don&#039;t have set XPSave flag 16 and g_spreeOptions flag 512 and not allow users to use&amp;amp;nbsp;!spreerecord you should NOT set this flag as it takes some extra resources. When XPSave flag 16 is set this doesn&#039;t matter (it actually takes much less resources then). When only g_spreeOptions flag 512 or shrubbot flag t is set it won&#039;t do much harm anyway (your server won&#039;t explode) &lt;br /&gt;
&lt;br /&gt;
2048 Enable revivesprees&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_multikillTime  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The time (in milliseconds) in which two kills should be made in order to count them as multikills.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_obituary  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This cvar controls will the server send obituary events to the clients. If this is set to 0, no obituary events will be sent. If set to any nonzero value, obituary events will be sent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dropMsg  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Message to add to the drop screen when a client is kicked or banned.&amp;amp;nbsp;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;&amp;amp;nbsp;String&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot; &amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; g_dropMsg&amp;amp;nbsp;&amp;quot;Please protest ban on forums&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_landmineNotifyType  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Decide which landmine reveal notifications server should send.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Server can send two types of landmines reveal notification. Standard one, generated (sent) for each landmine revealed and summary one,&amp;amp;nbsp;which is sent after player spotting landmines stops using binoculars.&amp;amp;nbsp;It&#039;s generated after each binculars zoom. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
0 Only standard notfications (for each landmine revealed).&lt;br /&gt;
&lt;br /&gt;
1 Only single summary notifications for one binocs zoom. New type of notification. For example: during one binocs zoom, 3 mines were revealed, but only 1 summary notification is sent. It contains information: 3 mines spotted by &amp;quot;player name&amp;quot; and last one was in location &amp;quot;some location&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t send any landmine notifications.&lt;br /&gt;
&lt;br /&gt;
3 Send all notifications. For example: for 3 spotted landmines send 4 notifications (3 for each landmine + 1 summary notification). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_banners  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should be set to the name of your banners.cfg file if you want to enable banners. See [[Silent Banners]] for more information about this file.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&amp;lt;br&amp;gt;set g_banners &amp;quot;banners.cfg&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== g_recognition ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables additional recognition notifications for players doing objective, e.g. for planting dynamite, disarming it, destroying objective.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Additional recognition notifications disabled.&lt;br /&gt;
&lt;br /&gt;
1 Additional recognition notifications enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= User Database, Shrubbot and Bans =&lt;br /&gt;
&lt;br /&gt;
== g_dbDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set the server stores various information about server statistics, map information, sprees, users, bans and XP save. To use any of the functionalities, this must be set. The cvar defines a directory and only a directory that is relative to fs_game. All the used filenames are predefined and cannot be changed. For security reasons, this cvar must be set during server initialisation. (i.e. It may not be changed when the server is running.) In this directory there can be 5 files, depending of other server settings.&lt;br /&gt;
&lt;br /&gt;
* userdb.db is a binary format file that contains all the basic information about shrubbot users and also all saved XP if the server is set to save XP&lt;br /&gt;
* userxdb.db is a binary format file that contains information related to players playing on the server&lt;br /&gt;
* useradb.db is a binary format file that contains player aliases.&lt;br /&gt;
* serverstat.cfg is a human readable file that contain server statistics and map sprees if the server is set to store them&lt;br /&gt;
* shrubbot.cfg is a human readable file that contain level configurations, custom commands and bans&lt;br /&gt;
* mapvoteinfo.cfg This file contains information relating g_gametype 6, which is map voting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the required files will be created automatically to the directory when needed if there suitable files aren&#039;t already present. userdb.db, userxdb.db and useradb.db will not overwrite files that have the same name but are, for any reason, not suitable for use. In such cases the server log will have information about the failure to open the file and features requiring the files are disabled.&lt;br /&gt;
&lt;br /&gt;
You can freely edit the human readable files by hand as long as their correct format remains and the server is notified of the changes using appropriate shrubbot commands. With the exceptions of serverstat.cfg and mapvoteinfo.cfg files that will be overwritten by the server. If you want to hand edit the values of these files, the server must be shutdown to not lose the changes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;database&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar from the config file only during the server start, or alternatively from the server start command parameters. It cannot be changed using RCON. If you want to store all the files in the same root directory where all the pk3 files and binaries are, you can set this cvar to value &amp;quot;.&amp;quot;. It will then use the fs_game directory.&lt;br /&gt;
&lt;br /&gt;
== g_dbUserMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that player is saved to the database since the player has last visited on the server.&lt;br /&gt;
&lt;br /&gt;
The database cleaning is done during intermission so this should not cause any performance problems when actions are taken. However, by setting this value to 0 or not setting the value at all, will disable the feature.&lt;br /&gt;
For servers with high database sizes, this can improve performance since users that are not needed will be removed automatically.&lt;br /&gt;
&lt;br /&gt;
You can use a modifiers with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar only from the config file executed before the mod launches the first time or from the command line. It cannot be edited using RCON.&lt;br /&gt;
&lt;br /&gt;
== g_dbMaxAliases ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The silEnT mod can store player aliases in an additional database. To enable this database, set this value to higher then 0. If this value is a positive integer, it defines how many aliases are stored in the database for one player. If the player has more aliases then this value, the oldest aliases are deleted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minumum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar can be set only at startup, before the mod launches. It cannot be changed on a live server using rcon.&lt;br /&gt;
&lt;br /&gt;
== g_minCommandWaitTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Time you have to wait between using 2 shrubbot commands in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tyranny ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls the use of administrator commands that could be used by admins to cheat or abuse players. If it is set to 0 you will not be able to use commands on your server such as !gib, !slap, !burn, etc.&lt;br /&gt;
&lt;br /&gt;
Also, you will not be able to use g_logOptions flag 256 (log private messages) unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
g_tyranny must also be enabled in order to specify a client in using the &#039;playsound&#039; server command.&lt;br /&gt;
&lt;br /&gt;
&#039;g_tyranny&#039; and its value appear in the serverInfo string to serve as a warning for perspective players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you enable this, you MUST do so immediately when the server starts (before the first map is loaded). This means putting &amp;quot;set g_tyranny 1&amp;quot; in the .cfg file that is exec&#039;ed on server start. If you try to change this on a running server, you will get the message &amp;quot;g_tyranny is read only.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_warningOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar changes the behaviour of the shrubbot !warn command. By setting flag 1 or 2 you activate the advanced warning (storage) system&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Link stored warnings to the guid of a player&lt;br /&gt;
&lt;br /&gt;
2	Link stored warnings to the ip of the player&lt;br /&gt;
&lt;br /&gt;
4	Remove the oldest warning when the total maximum ammount of warnings is reached&lt;br /&gt;
&lt;br /&gt;
8	Auto-kick a player for 2 minutes when he has more than g_maxWarnings warnings&lt;br /&gt;
&lt;br /&gt;
16	Allow clients to see their own warnings with the /warnings command&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarnings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The ammount of warnings that can be stored for 1 player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_warningDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in hours that a warning will be stored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 24&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBan ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, anyone kicked for the reasons you specify, will be temporarily banned for g_autoTempBanTime seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Tempban when reaching g_teamDamageRestriction&lt;br /&gt;
&lt;br /&gt;
2	Tempban when someone is kicked by a shrubbot admin (using the !kick command). A normal shrubbot !kick kicks for 120 seconds&lt;br /&gt;
&lt;br /&gt;
4	Tempban when someone is kicked by the advanced warning system. A normal kick by the warning system lasts 120 seconds&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifically in version 0.5.0, this feature is bugged and can cause broken shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBanTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds kicked for when g_autoTempBan is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1800&lt;br /&gt;
&lt;br /&gt;
== g_minConnectLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The minimum shrubbot adminlevel required for players to be able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This only works for positive levels, any value &amp;lt;= 0 will allow everyone to connect. Bots won&#039;t be able to connect either.&lt;br /&gt;
&lt;br /&gt;
== g_greetingPos ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Location where the shrubbot greetings are displayed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3|4]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Chat area&lt;br /&gt;
&lt;br /&gt;
1	Center of screen&lt;br /&gt;
&lt;br /&gt;
2	Left notification area&lt;br /&gt;
&lt;br /&gt;
3	Top of the screen&lt;br /&gt;
&lt;br /&gt;
4	Console only&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adminProtection ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins levels can be protected against spoofing. The protection works by establishing trust between the client and the server. The trust must be confirmed by an online human admin for the new trusted admins to gain access to their assigned level. Specific command !confirm is used for it. Do note that establishing the trust between the server and the player is not the same as assigning admin level. In fact, anyone who is capable of recognizing the real admin can be safely allowed to use the !confirm command. The !setlevel command will automatically establish the trust if the admin level protection is enabled and the level is above or equal to the g_protectMinLevel. The admin protection is designed so that only the important admin levels are protected. This mean that levels above the g_protectMinLevel require established trust between the server and the client. Normal guests do not need this. It is also advisable to not set the g_protectMinLevel too low to avoid server load with these admins.&lt;br /&gt;
&lt;br /&gt;
The trust needs to be established only once. After that, the client and the server can negotiate the confirmation silently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technical Details:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The trust is established using one-way hashes. When the !setlevel or !confirm is used on a player, the server generates 2 unique 32 character long values. Both of these values are stored both in the client (silent.dat) and the server database. Their meanings are server identification and a client key.&lt;br /&gt;
&lt;br /&gt;
Authentication negotiation:&lt;br /&gt;
&lt;br /&gt;
1. When the player next time connects to the server, the server sends one of the stored values as server identification and another, newly generated random 32 character value, to initiate the negotiation.&lt;br /&gt;
&lt;br /&gt;
2. The client will use the server identification value it received from the server to match with the key value associated with the server identification. It will hash the 32 character key value with the supplied random 32 character value and send the result back to the server.&lt;br /&gt;
&lt;br /&gt;
3. The server, knowing both values, the client key and the random character string it sent, can compare the hash against a hash it generates itself with the same values.&lt;br /&gt;
&lt;br /&gt;
4. If the hashes match (one supplied from client and the one it just generated), the client is authenticated to his admin level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Log succesfull authentications to the cheat log&lt;br /&gt;
&lt;br /&gt;
2	Log admin spoofing attempts to the cheat log&lt;br /&gt;
&lt;br /&gt;
4	Report admins waiting for confirmation on their level to the admin chat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_protectMinLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins can be protected against spoofing. The protection works by establishing trust between the client and the server if the admin level is higher then the g_protectMinLevel. Setting this to -1 will disable the freature. Do note that when you enable the feature, noone has yet established trust with the server and the first one to have it, must be confirmed by an rcon command. Either !setlevel if the database still doesn&#039;t have admins or !confirm if the admin has been set in the database already.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_muteRename ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to 1 the muted player won&#039;t be allowed to change his name while he is muted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Disabled. Allow players to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow player to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimium required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
= XP Save =&lt;br /&gt;
&lt;br /&gt;
== g_XPSave ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls XP save behaviours.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Store xp when a client disconnects. This is always required for the XP save to work.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t reset xp to the pre-map start values on a map restart, shuffle, etc.&lt;br /&gt;
&lt;br /&gt;
4 Never reset xp (ever).&lt;br /&gt;
&lt;br /&gt;
8 Force the disconnection of clients with the same GUID as the connecting client. This is useful in saving the stored XP of players with unreliable network connections since they should still get their stored XP even if reconnecting immediately with a new IP address.&lt;br /&gt;
This feature is enabled by default unless you have sv_wwwDlDisconnected enabled. sv_wwwDlDisconnected seems to interfere with this feature, so do not enable this flag if you change pk3&#039;s on your server often because stored XP will be lost over disconnected downloads.&lt;br /&gt;
&lt;br /&gt;
16 Store the XP at restarts, nextmaps, mapvotes, campaignvotes and similar cases.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge_xp ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her xp skills. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;120m&amp;quot; - 120 minutes &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If g_XPSaveMaxAge is less than g_XPSaveMaxAge_xp, g_XPSaveMaxAge will be used.&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her skills/killrating/playerrating/mute status. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier for this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See also g_XPSaveMaxAge_xp &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1w&lt;br /&gt;
&lt;br /&gt;
== g_resetXPMapCount  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How many maps occur before XP is reset. If g_XPSave flag 4 is set, g_resetXPMapCount is ignored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting is only valid when the g_gametype is 6 (see Map Voting)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMinXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The increment of XP during one map that is required for the XP gained during the map to get saved and the time of the latest XP save to get updated. The silEnT mod separates the XP save and the connection times so that players who visit spectators without playing will not be removed by the g_dbUserMaxAge but can still lose their stored XP if they do not play. Admins can adjust the requirement with this value. Using -1 will disable the requirement and XP save will consider every connection valid for the XP save. Using value 0, will consider XP save valid if the player has gained even 1 XP point during the map. Please note that the value is only for one map and using high values may cause some players to not achieve enough XP to get their XP updated. Also note, that this does not prevent SMG weapon statistics or rating values to get updated into the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_maxXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a vicious cvar that will reset a players XP once their overall XP score reaches it.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_maxXPResetWarn ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Displays a message warning players whose XP is close to being reset due to the g_maxXP setting. The warning is displayed every thirty seconds once the warning threshold is passed.&lt;br /&gt;
&lt;br /&gt;
This setting can have an integer value (eg, 950), in which case it means that the player will be warned every thirty seconds once he has more than 950 XP.&lt;br /&gt;
&lt;br /&gt;
This setting can also have percentage value (eg, &amp;quot;90%&amp;quot;), and that will cause the warnings to start when the player reaches 90% of g_maxXP XP.&lt;br /&gt;
&lt;br /&gt;
If you specify a negative value, players will be warned when that offset is hit. For example:&lt;br /&gt;
&lt;br /&gt;
For a value of -75, warnings will to display then players have g_maxXP - 75 XP&lt;br /&gt;
&lt;br /&gt;
For a value of -2%, warnings will display when players have 98% of g_maxXP&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optionally enables the awarding of XP based upon the amount of damage a player has done to the opposing team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disabled: use normal ET XP awarding methods&lt;br /&gt;
&lt;br /&gt;
1 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the skill category of the weapon used. When this mode is enabled, kills (regardless of method) are awarded a fixed value of 1 point of XP.&lt;br /&gt;
&lt;br /&gt;
2 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the Battle Sense category. Normal XP amounts are awarded for kills (typically 3-5 XP).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXPLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting determines the amount of damage that a player must do to earn 1 point of XP. See g_damageXP for additional information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_XPDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a bitmask that controls the XP decay feature.&lt;br /&gt;
&lt;br /&gt;
See also g_XPDecayRate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Enable XP Decay&lt;br /&gt;
&lt;br /&gt;
2	Do not decay a player&#039;s XP when they are disconnected from the server&lt;br /&gt;
&lt;br /&gt;
4	Do not decay a player&#039;s XP for the class they are currently playing as (e.g. Medic).&lt;br /&gt;
&lt;br /&gt;
8	Do not decay a player&#039;s XP while they are spectating&lt;br /&gt;
&lt;br /&gt;
16	Do not decay a player&#039;s XP during warmup/intermission&lt;br /&gt;
&lt;br /&gt;
32	Do not decay a player&#039;s XP when he/she is playing. This means that they are on a Allies or Axis and the game is active.&lt;br /&gt;
&lt;br /&gt;
64	Do not decay a player&#039;s Battle Sense XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
128	Do not decay a player&#039;s Light Weapons XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayRate ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the rate (in skillpoints per second) that XP skill points for each skill will decay when g_XPDecay is enabled.&lt;br /&gt;
&lt;br /&gt;
Setting this to 0.1 would result in a player losing 6 points per minute IN ALL SKILLS, so up to 42XP per minute if the player has skill points for each skill.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;5000/o&amp;quot; - Decay 5000xp per skill per month&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;1000/w&amp;quot; - Decay 1000xp per skill per week&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;500/d&amp;quot; - Decay 500xp per skill per day&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;40/h&amp;quot; - Decay 40xp per skill per hour&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;2/m&amp;quot; - Decay 2xp per skill per minute &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayFloor ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the minimum that any particular skill can be reduced to by g_XPDecay.&lt;br /&gt;
&lt;br /&gt;
For example, setting this to 140.0 will ensure that no player will ever lose rank or skill levels due to g_XPDecay. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flood Protection = &lt;br /&gt;
&lt;br /&gt;
== g_floodprotect  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable/disable silEnT flood protect. Flooding means that a client is sending too many messages to the server (vsays, callvotes, etc...). Enabling g_floodprotect disables the engine&#039;s sv_floodprotect functionality. If you enable g_floodprotect, make sure you set a value for g_floodthreshold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&amp;amp;nbsp;&#039;&#039;&#039;1&lt;br /&gt;
&lt;br /&gt;
== g_floodthreshold  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of messages per second before ignoring the client&#039;s messages. Only in effect when g_floodprotect is turned on.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
== g_floodWait  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of milliseconds between two messages when g_floodprotect is enabled. This is a hard limit so admins aren&#039;t allowed to override it. 1000 milliseconds copies sv_floodprotect behaviour. This CVAR should not have a value below 500 in order to keep a public server playable.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_voiceChatsAllowed  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of voicechats allowed in minute.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Player Statistics, Rating and Team Balance =&lt;br /&gt;
&lt;br /&gt;
== g_stats  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a bitflag cvar used to control the way statistics are handled.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&amp;lt;br&amp;gt;1 When shooting a corpse to gib, do not count it as a hit.&amp;lt;br&amp;gt;2 When shooting a corpse to gib, do not count it as a shot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;amp;nbsp;Set this to 3 to use the behaviour of etmain and shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_playerRating_minplayers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of players that must participate in a map in order for it to count towards each player&#039;s player rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 8&lt;br /&gt;
&lt;br /&gt;
== g_shuffle_rating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the rating system used by shuffle.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 | 4 | 5 ]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player XP&amp;lt;br&amp;gt;2 Use the rate at which players have gained XP since connecting.&amp;lt;br&amp;gt;3 Use the killRating (g_killRating must be nonzero)&amp;lt;br&amp;gt;4 Use the playerRating (g_playerRating must be nonzero)&amp;lt;br&amp;gt;5 Use the playerRating (g_playerRating must be nonzero), but take the map into account and give the teams closest to 50/50&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_killRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to 0, silEnT will track a player&#039;s killing ability using an ELO type statistic similar to chess. Each kill will increase a player&#039;s kill rating based on how hard the kill was. Killing unskilled players will result in very few points whereas an unskilled player killing a skilled player will result in more points.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use kill rating. A dummy flag since any non-zero value for g_killRating will enable it.&amp;lt;br&amp;gt;2 Make kill rating visible. Players can use /killrating and at the end of each map a message will display the top killers for the map and overall.&amp;lt;br&amp;gt;4 Log files will include the GUIDs of the players involved in kills. This makes kill tracking a lot easier.&amp;lt;br&amp;gt;8 Disable kill rating from the score board. This can prevent players from playing for higher kill rating alone. This does not prevent the &amp;quot;killrating&amp;quot; client command enabled with flag 2 from working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_playerRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to non zero positive value, silEnT will track a player&#039;s ability to win against good teams using an ELO type statistic similar to chess. Each win will increase a player&#039;s rating based on how hard the opposing team was. Skilled teams defeating less skilled teams will result in very few points whereas an relatively low- rated team defeating a good team will result in more points. Player rating also takes into account the number of players on each team (less points when a very large defeats a small one) and which side tends to win more often on the current map (e.g. Allies tend to win tc_base).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player rating. A dummy flag since any non-zero value for g_playerRating will enable it.&amp;lt;br&amp;gt;2 Make player rating visible. Players can use /playerrating and at the end of each map a message will display the top player.&amp;lt;br&amp;gt;4 Put player rating on the scoreboard instead of the XP.&amp;lt;br&amp;gt;8 Print out extra info at the end of a round that can be used to further refine the playerrating model.&amp;lt;br&amp;gt;16 The same as flag 8 except a lot more info is output.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamDiff  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If g_teamForceBalance is set, setting g_unevenTeamDiff will notify all players when team numbers are off by g_unevenTeamDiff or more. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamFreq&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;: Set to 0 to disable this feature&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamFreq  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How often the team disparity notification occurs. Only valid when g_unevenTeamDiff is set to a positive value. Value is in seconds.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamDiff&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
= Class and Weapon Restrictions =&lt;br /&gt;
&lt;br /&gt;
== g_medicChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the medic charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 45000&lt;br /&gt;
&lt;br /&gt;
== g_engineerChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the engineer charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== g_LTChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the field ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 40000&lt;br /&gt;
&lt;br /&gt;
== g_soldierChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the soldier charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20000&lt;br /&gt;
&lt;br /&gt;
== g_covertopsChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the covert ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== team_maxPanzers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxPanzers, team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 panzerfaust soldiers, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team with few players (for example, 5) will be able to have 1 panzerfaust soldier. They will be able to have their second panzerfaust soldier when they have 11 players on the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team will not be able to have any panzerfaust soldiers until there are 10 players in the team. They will be able to have their second panzerfaust soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMortars  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 mortar soldiers, regardless of how many players are on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team with few players (for example, 5) will be able to have 1 mortar soldier. They will be able to have their second mortar soldier when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team will not be able to have any mortar soldiers until there are 10 players in the team. They will be able to have their second mortar soldier when there are 20 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Set this to -1 to disable limits&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFlamers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 flamethrower soldiers, regardless of how many players are on the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team with too few players (for example, 5) will be able to have 1 flamethrowe soldier. They will be able to have their second flamethrowe soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team will not be able to have any flamethrower soldiers until there are 10 players in the team. They will be able to have their second flamethrower when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMG42s  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 MG42 soldiers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team with too few players (for example, 5) will be able to have 1 MG42 soldier. They will be able to have their second MG42 soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team will not be able to have any MG42 soldiers until there are 10 players in the team. They will be able to have their second MG42 soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxGrenLaunchers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 grenade launchers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team with too few players (for example, 5) will be able to have 1 grenade launcher. They will be able to have their second grenade launcher when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team will not be able to have any grenade launchers until there are 10 players in the team. They will be able to have their second grenade launcher when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMedics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 medics, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team with too few players (for example, 3) will be able to have 1 medic. They will be able to have their second medic when they have 7 players in the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team will not be able to have medics until there are 7 players in the team. They will be able to have their second medic when there are 14 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxEngineers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 engineers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team with too few players (for example, 3) will be able to have 1 engineer. They will be able to have their second engineer when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team will not be able to have engineers until there are 7 players in the team. They will be able to have their second engineer when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFieldOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 field opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team with too few players (for example, 3) will be able to have 1 field ops. They will be able to have their second field ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team will not be able to have field opses until there are 7 players in the team. They will be able to have their second field ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxCovertOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 covert opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as coert opses, and a team with too few players (for example, 3) will be able to have 1 covert ops. They will be able to have their second covert ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as covert opses, and a team will not be able to have covert opses until there are 7 players in the team. They will be able to have their second covert ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_minAirstrikeTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airstrikes PER TEAM.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_minArtyTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airtillery strikes PER TEAM. Attempts to do airstrike before the timeout will get &amp;quot;Insuffient fire support&amp;quot; message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamLandmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of landmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamTripmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of tripmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_minGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of clients needed to start a match.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The maximum allowed amount of active clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Player Inactivity =&lt;br /&gt;
&lt;br /&gt;
== g_inactivity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity before the player is made a spectator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_spectatorInactivity==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity as spectator before the player is kicked/dropped from server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_inactivityOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional inactivity options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Don&#039;t drop shoutcasters&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t drop spectators when in following mode&lt;br /&gt;
&lt;br /&gt;
4 ETmain inactivity behavior (don&#039;t wait for a full server)&lt;br /&gt;
&lt;br /&gt;
8 Shrubbot flag &#039;0&#039; admins will be moved to spectators due to team inactivity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Gametypes =&lt;br /&gt;
&lt;br /&gt;
== g_gametype	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please see Map Voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [2|3|4|5|6|7]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
2 Objective&lt;br /&gt;
&lt;br /&gt;
3 Stopwatch&lt;br /&gt;
&lt;br /&gt;
4 Campaign&lt;br /&gt;
&lt;br /&gt;
5 Last Man Standing&lt;br /&gt;
&lt;br /&gt;
6 Map Voting&lt;br /&gt;
&lt;br /&gt;
7 Team Death Match&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== Campaign ==&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
&lt;br /&gt;
== Last Man Standing ==&lt;br /&gt;
&lt;br /&gt;
== Map Voting  ==&lt;br /&gt;
&lt;br /&gt;
This gametype allows for the players to decide on the map that is played next. When g_gametype is set to 6 a new screen is introduced during intermission. This screen list, depending on server configuration, a list of up to 32 maps that are loaded on the server, and that all players can vote on. Once intermission ends, the server totals the votes, and plays the next map based upon the vote results &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;;Miscellaneous notes about mapvoting:&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
Total maps allowed is 32. If server admin has more than 32 .bsp files, only the first 32 are used Tie breaker. The default tie-breaker is such that if 2 or more maps are tied with the same number of votes, the map that was played most recently is selected. Bots and connecting players do NOT count for mapvoting, everyone else (including spectators) does. If no maps are voted for, the default &amp;quot;nextmap&amp;quot; cvar is used, so server admins have to specify a default map cycle of sort, usually in the following format: &lt;br /&gt;
&amp;lt;blockquote&amp;gt;set d1 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map oasis&amp;amp;nbsp;; set nextmap vstr d2&amp;quot;&amp;lt;br&amp;gt;set d2 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map battery&amp;amp;nbsp;; set nextmap vstr d3&amp;quot;&amp;lt;br&amp;gt;set d3 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map goldrush&amp;amp;nbsp;; set nextmap vstr d1&amp;quot;&amp;lt;br&amp;gt;vstr d1&amp;lt;br&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
This means that the default map, upon server start, will be oasis. From there, map voting will be used. If at any point, no map is voted for, battery will be played, etc &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== g_mapVoteFlags  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; This cvar controls the behaviour of the map voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Changes the tie breaker so that the map not played in the longest wins&amp;lt;br&amp;gt;2 Intermission doesn&#039;t end until g_intermissionReadyPercent people have voted. If there are no players connected to the server, intermission will end at the timeout. (WARNING: This means that if there are spectators connected and not voting, the next map will not load until those spectators either vote, disconnect, or get kicked by the system)&amp;lt;br&amp;gt;4 Multi vote: Allows everybody to vote for 3 maps instead of one, first choice map gets 3 votes, second choice gets 2, third choice gets one&amp;lt;br&amp;gt;8 Don&#039;t randomize the maps, so they will always appear in the same order&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_maxMapsVotedFor  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;How many maps are available to players for voting upon during intermission.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6 &lt;br /&gt;
&lt;br /&gt;
=== g_minMapAge  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
How long a map is ineligible for voting during intermission, after it is played last time.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
=== g_includedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Used to include map regardless of any other restrictions. Including g_excludedMaps setting. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; or otherwise the map will be ignored in the list.&lt;br /&gt;
Only valid when map voting is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
=== g_excludedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Used to exclude map that would otherwise be listed in the map voting list. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; otherwise the map will not be excluded. &amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; To exclude railgun and battery maps from map voting use below command:&amp;lt;br&amp;gt; &lt;br /&gt;
set g_excludedMaps &amp;quot;:railgun:battery:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Team Death Match (TDM) ==&lt;br /&gt;
&lt;br /&gt;
=== g_TDMType	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The type of the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map ends only when timelimit hits&lt;br /&gt;
&lt;br /&gt;
2 Map ends when either the target score is reached or the timelimit hits&lt;br /&gt;
&lt;br /&gt;
3 Map ends only when the target score is reached&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_TDMOptions	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Possible options for the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map voting is enabled during the intermission (i.e. The players vote for the next map to play during the intermission.)&lt;br /&gt;
&lt;br /&gt;
2 Completing the map objective will give the team score bonus that is controlled by the g_TDMObjBonus server cvar&lt;br /&gt;
&lt;br /&gt;
4 Teams get negative points when they do selfkills or teamkills&lt;br /&gt;
&lt;br /&gt;
8 Players cannot selfkill during the TDM. Regardless of other selfkill settings the server has configured&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
=== g_TDMScore===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the target score the teams attempt to make to win the game in TDM game types 2 and 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
=== g_TDMObjBonus===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the value that is added to the team score if the team completes the map objective. Adding the bonus does not depend of the TDM type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
= Mapconfigs and Mapscripts =&lt;br /&gt;
&lt;br /&gt;
== g_mapConfigs	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On each map load, the silEnT server will execute 2 configs if possible. The default.cfg and after that a map specifig config file [mapname].cfg. For example if you set g_mapConfigs to &#039;mapcfg&#039;, when the map fueldump starts, the server will try to exec &#039;mapcfg/fueldump.cfg&#039;.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;&amp;quot; to disable it.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;.&amp;quot; to look for the cfg file in the current directory (fs_homepath).&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.5.2, admins can add settings that are executed for specific player amounts. The commands are enclosed in [players low-high] ... [/players] blocks. The low is the lowest amount of players for those settings and high is the maximum amount of players for those settings. For example:&lt;br /&gt;
&lt;br /&gt;
[players 0-10]&amp;lt;br&amp;gt;&lt;br /&gt;
set team_maxPanzers 0&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will disable panzerfaust when player amount is less or equal to 10. The blocks can be placed anywhere in the map config files. If the block is closed with [/players], the following commands do not depend on the player amounts. The player blocks can not be nested. If two player blocks follow each other, the second definition opens a new one and the old one closes. For example:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 0-15]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:mlb_temple:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 16-*]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:adlernest:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will exclude map MLB Temple if the player amount is less or equal to 15 and exclude map Adlernest if the player amount is 16 or more. The player amount counting is controlled with g_playerCounting server cvar.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When in g_gametype 6 mode (Map Voting) and g_resetXPMapCount is set, an additional file named vote_X.cfg is also exec&#039;ed. X indicates the position of the next map in the campaign. For example, vote_2.cfg will exec&#039;ed such that when map 1 ends, any cvars in vote_2.cfg will affect map voting for map 2. Player blocks are not used with vote_X.cfg files.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_mapScriptDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to ETPro&#039;s b_mapscriptsdirectory.  Set it to the name of a directory in your fs_path that contains custom map scripts. For example you can copy the &#039;etpromapscripts&#039; directory from the ETPro distribution to your &#039;silent&#039; directory and add: set g_mapScriptDirectory &amp;quot;etpromapscripts&amp;quot; to your cfg. Setting g_mapScriptDirectory to &amp;amp;quot;&amp;amp;quot; disables any use of map .script files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
It is strongly recommended that you use the map scripts distributed with silEnT or ETPub since these updated scripts fix very important bugs in some of the original map scripts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_campaignFile  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
If you set this to the name of a file in your fs_path it will be interpreted as a .campaign script and all other .campaign scripts in your pk3 files will be ignored. This is useful for making custom campaigns since you don&#039;t need to offer a pk3 file containing a custom .campaign script for all clients to download. However, if the client has not downloaded this .campaign file in a pk3, they will not see information about the campaign. &lt;br /&gt;
&lt;br /&gt;
Such information includes: &lt;br /&gt;
&lt;br /&gt;
*will not display in the VOTE -&amp;amp;gt; MAP list &lt;br /&gt;
*map locations will not draw on the map of Europe. &lt;br /&gt;
*campaign description will not draw in the right panel &lt;br /&gt;
*total number of maps and current maps order in the campaign &lt;br /&gt;
*will not be shown in the intermission screens.&lt;br /&gt;
&lt;br /&gt;
Also, even though the built-in campaigns cmpgn_centraleurope and cmpgn_northafrica will not be valid, they will still appear in the client&#039;s VOTE -&amp;amp;gt; MAP menu. If a vote for one of them passes, nothing will happen. &lt;br /&gt;
&lt;br /&gt;
Setting this to &amp;quot;&amp;quot; disables it. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_playerCounting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls how the player amount is calculated for the mapconfigs. The player amount value is the highest number of simultaneously fully connected players during the map or warmup. The player counting can be disabled from the warmup period. If the player counting is enabled during the warmup, the players are counted right at the end of the warmup. This allows the teams to stabilize after intermission. Similarly the counting is triggered always with a 3 second delay from the change in the teams. Team changes include players joining the server and staying &lt;br /&gt;
in the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable filtering. This will add the 2 latest values together and divide them by 2.&lt;br /&gt;
&lt;br /&gt;
2 No player counting during warmup.&lt;br /&gt;
&lt;br /&gt;
4 Count spectators into players. Without this flag, only players in the playing teams are counted.&lt;br /&gt;
&lt;br /&gt;
8 Bots are not included into the player count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= Censoring =&lt;br /&gt;
&lt;br /&gt;
== g_censor==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the chat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the player names.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorPenalty==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This controls the censoring behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kill the player&lt;br /&gt;
&lt;br /&gt;
2 Kick players with names containing words in g_censorNames&lt;br /&gt;
&lt;br /&gt;
4 Kill, but don&#039;t gib&lt;br /&gt;
&lt;br /&gt;
8 Auto-mute for g_censorMuteTime [60] seconds&lt;br /&gt;
&lt;br /&gt;
16 Lose the amount of xp specified in g_censorXP&lt;br /&gt;
&lt;br /&gt;
32 Burn&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use both 1 and 4, it will gib (like shrub did).&lt;br /&gt;
&lt;br /&gt;
== g_censorNeil==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter. It&#039;ll catch some symbol and number replacements,&lt;br /&gt;
and spaces now. It also adds some common words and common words with &amp;quot;swears&amp;quot; in them&lt;br /&gt;
that should really be OK. For example, it will not censor &amp;quot;assassin&amp;quot; but it will&lt;br /&gt;
censor &amp;quot;ass&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorNeilNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter for player names.  See g_censorNeil description for&lt;br /&gt;
details.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorMuteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds to auto-mute as a censor penalty. Only works if bitflag 8 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_censorXP==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of XP to lose as a censor penalty. Only works if bitflag 16 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
= Voting =&lt;br /&gt;
&lt;br /&gt;
== g_voting	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Control&#039;s voting behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Votes will pass on the number of votes cast rather than total eligible voters.&lt;br /&gt;
&lt;br /&gt;
2 Votes that pass do not count against the vote_limit for the caller.&lt;br /&gt;
&lt;br /&gt;
4 &amp;quot; (called by NAME)&amp;quot; is appended to the vote description where NAME is the name of the player that called the vote.&lt;br /&gt;
&lt;br /&gt;
8 Show the number of YES and NO votes after a votes has passed or failed. This also shows if a vote is canceled or passed by an admin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== vote_limit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This value defines how many votes one player can invoke during one map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== vote_percent==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The required percentage of yes votes for the vote to pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== vote_allow_comp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for competition settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_gametype==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for gametype.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_kick==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for kicking a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for map to be played.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_mutespecs==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for starting the next map in the map rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_pub==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for public game settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_referee==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for making a player a referee.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams based on XP.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for swapping the teams. Allied players go to the axis team and axis players go to the allied team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_friendlyfire==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the map time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_warmupdamage==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling/enemies only warmup damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_antilag==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling antilag.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_balancedteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling balanced teams enforcing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_muting==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting/unmuting a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for surrendering the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the campaign.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the campaign to the next one in the campaign rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows making freely written polls using the vote system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams without restarting the map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_cointoss==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for doing cointoss.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_putspec==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for moving a player to the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_block_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the match allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams without restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for starting the next map in the map rotation allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for swapping the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for surrendering the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for played map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for changing the map time allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for polls allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for next campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_noVoteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds must pass between two votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_voteResultsMinLevel==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the minimum admin level for the players to see the results of the votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_votedMuteLength==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the length in seconds of the mute issued by a passed mute vote. You can use modifiers with this value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3h&lt;br /&gt;
&lt;br /&gt;
= Weapons, Classes and Skills =&lt;br /&gt;
&lt;br /&gt;
== g_poison	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Gives medics the ability to poison enemies by sticking with their medic&lt;br /&gt;
syringe.  Enemies will be damaged at g_poison/second when g_poison is&lt;br /&gt;
set to a value more than 0.  Setting to 0 will disable poison needles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_poisonFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the effects of g_poison.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Poisoned player&#039;s screen shakes.&lt;br /&gt;
&lt;br /&gt;
2 Other players see the poisoned player&#039;s head shaking.&lt;br /&gt;
&lt;br /&gt;
4 Poisoned player appears to bend over (hurl) every 2 seconds. (poisoned player does not see this happen.)&lt;br /&gt;
&lt;br /&gt;
8 Poisoned player cannot use +attack.  NOTE: because of client side prediction, the client may see the gun firing occasionally if they hold down +attack, but no shots are fired.&lt;br /&gt;
&lt;br /&gt;
16 Poisoned player is disoriented (view turned upside down).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
== g_medics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the medic, to nerf or otherwise change their behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Medics can&#039;t pick up their own health packs to cure themselves of poison needle effects.&lt;br /&gt;
&lt;br /&gt;
2 Medics can&#039;t pick up their own health packs at all.&lt;br /&gt;
&lt;br /&gt;
4 A level 4 medic will always be revived to full health (no matter what the level of the reviving medic is).&lt;br /&gt;
&lt;br /&gt;
8 Value is not in use.&lt;br /&gt;
&lt;br /&gt;
16 Medics do not spawn with akimbo pistols, regardless of their light weapons skill.&lt;br /&gt;
&lt;br /&gt;
32 Medics spawn with pistol only, and can&#039;t pick up SMG of either team. However, any class can steal a medics uniform, if the g_classChange is set to 1, and receive the medic benefits while retaining their current weapons, including akimbos and SMG.&lt;br /&gt;
&lt;br /&gt;
64 Medics can use syringes to heal living teammates as an alternative to the tk/revive cycle.&lt;br /&gt;
&lt;br /&gt;
128 Level 4 medics can inject other players with their adrenaline.  This can be done when holding the revive needle by pressing the alt-fire button, or with the /adrenother client command.&lt;br /&gt;
&lt;br /&gt;
256 Level 4 medics cannot adrenaline self.  If this flag is on, Medics will not receive adrenaline upon reaching level 4. (This won&#039;t affect flag 128)&lt;br /&gt;
&lt;br /&gt;
512 Adrenaline use takes only half of the chargebar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adrenDmgReduction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
The percentage damage reduction after injecting adrenaline. g_adrenDmgReduction is now independent percentage of the caused damage that is inflected when the adrenaline is on. 0 means no damage and 100 means full damage from the weapon. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_medicHealthRegen==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The rate at which medics regenerate health (in HP per second).  This rate is divided into two parts:  The first is from 1 to 110-125 HP (depending on the number of medics per team), and then above that.  The system default is 3/2 (3 HP per second, then 2 HP per second).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 3/2&lt;br /&gt;
&lt;br /&gt;
1 2/2&lt;br /&gt;
&lt;br /&gt;
2 2/1&lt;br /&gt;
&lt;br /&gt;
3 2/0&lt;br /&gt;
&lt;br /&gt;
4 1/1&lt;br /&gt;
&lt;br /&gt;
5 1/0&lt;br /&gt;
&lt;br /&gt;
6 0/0&lt;br /&gt;
&lt;br /&gt;
7 0/1&lt;br /&gt;
&lt;br /&gt;
8 0/2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_throwableKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable knife throwing. The amount of throwable knives is g_maxKnives - 1. Any non zero value will enable knife throwing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of knives a player can posses. Take note that if g_throvableKnives is enabled, the last knife cannot be thrown.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_knifeChargeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long it takes in milliseconds for the &amp;quot;knife&amp;quot; to charge to the maximum throw speed/force.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 800&lt;br /&gt;
&lt;br /&gt;
== g_constructibleXPSharing==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When multiple engineers help build a constructible, each gets his share of XP&lt;br /&gt;
once the constructible is build.  The share of gained XP is proportional to&lt;br /&gt;
how much the engineer built.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_asblock	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Airstrike blocking.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Make an announcement whenever an airstrike is blocked.&lt;br /&gt;
&lt;br /&gt;
2 A player may easily block an airstrike by crouching, standing, or proning over the enemy&#039;s canister to block the airstrike.&lt;br /&gt;
&lt;br /&gt;
4 Reserved.&lt;br /&gt;
&lt;br /&gt;
8 Lvl 3 FieldOPs and higher cannot have the airstrikes blocked by players.&lt;br /&gt;
&lt;br /&gt;
16 Disables teammates blocking airstrikes.&lt;br /&gt;
&lt;br /&gt;
32 Give 2 Battle Sense XP to player that blocks the air strike. No XP given for blocking teammates or your own air strike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_panzersSpeed	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Speed of the panzers. Normal panzer speed is 2500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2500&lt;br /&gt;
&lt;br /&gt;
== g_panzersGravity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzer trajectory will be affected by gravity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dyno==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dynamite Behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmaks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Sudden Death Dynamites enabled. If there is 30 seconds or less on the clock and dynamite is planted on an objective, the clock will continue to run past zero. The match will not end until the dynamite either explodes, or is disarmed. You are not allowed to plant additional dynamite during sudden death.&lt;br /&gt;
&lt;br /&gt;
2 Dynamite chaining enabled. Dynamite will cause other similar dynamites to explode when exploding (only if within blast radius). Dynamites not planted on an objective will blow any other dynamite not on an objective. Dynamite planted on an objective will only blow dynamite on the same objective.&lt;br /&gt;
&lt;br /&gt;
4 Adds a dynamite symbol with the location and the time remaining to all the players on the team of the player who plants the dynamite. This will only happen when dynamite is placed on an objective. The players in the other team will see the dynamite symbol too, but they won&#039;t see the time remaining.&lt;br /&gt;
&lt;br /&gt;
8 Dynamite cannot be disarmed by your team (inlcuding yourself), so only the other team can defuse it.&lt;br /&gt;
&lt;br /&gt;
16 Enable dynamite ID. You can see the owner of a dynamite when you point at it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKick	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Canister and grenade kicking.&lt;br /&gt;
&lt;br /&gt;
Allows players to kick smoke, and air strike canisters, along with grendaes. The integer adjust the amount of force put behind the kick. 75 is a good value, anything below 60 is about useless, and above about 125 is probably too much.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKickOwner	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kicked Canister Ownership.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Kicker does not take ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
1 Kicker takes ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_staminaRecharge	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiplies the rate at which stamina is rebuilt. Setting this value to zero will cause players to not regain any stamina once it is used except through the use of adrenalin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_mineid	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turns on identification of your teammates landmines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_medicSelfhealTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in milliseconds that a medic cannot heal himself after being hit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxPanzerSuicides	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, a player can kill himself g_maxPanzerSuicides times with a panzerfaust. The next panzerselfkill will result in a panzer shooting medpacks.&lt;br /&gt;
&lt;br /&gt;
The amount of suicides is reset every map.&lt;br /&gt;
&lt;br /&gt;
Set to -1 to disable, -2 to always enable (no normal panzers anymore)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_panzerPackDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the g_packDistance for the medpacks fired by the panzerfaust when g_maxPanzerSuicides is enabled.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to use default (etmain)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_weapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_weapons cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 0 field ops doesn&#039;t get binoculars (unless he has &amp;gt;= level 1 Battle Sense)&lt;br /&gt;
&lt;br /&gt;
2 Syringes work underwater&lt;br /&gt;
&lt;br /&gt;
4 Pliers work underwater&lt;br /&gt;
&lt;br /&gt;
8 Fully restore Field ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
16 Half restore FIeld ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
32 Ammo packs restore helmets&lt;br /&gt;
&lt;br /&gt;
64 Drop binoculars if player has them&lt;br /&gt;
&lt;br /&gt;
128 Soldiers with level 4 heavy weapons don&#039;t lose their pistols&lt;br /&gt;
&lt;br /&gt;
256 Garands can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
512 Balance the clip size between the allies and axis rifles. allied rifles get same clip sizes and max ammo as the k43.&lt;br /&gt;
&lt;br /&gt;
1024 Creates a hitbox for mortar shells.  This reduces (or eliminates in some cases) the ability to fire mortars through smaller windows and bunker slits.&lt;br /&gt;
&lt;br /&gt;
2048 Knives will always gib a body (not a player, use g_dmgKnife instead if you want that)&lt;br /&gt;
&lt;br /&gt;
4096 Extra ammo is included with dropped weapons.&lt;br /&gt;
&lt;br /&gt;
8192 &amp;quot;Ammo&amp;quot;/&amp;quot;No ammo&amp;quot; icon is shown for dropped weapons.&lt;br /&gt;
&lt;br /&gt;
16384 Enable fast shooting for Thompson, MP40, PPSh and Sten. 110 ms between shots.&lt;br /&gt;
&lt;br /&gt;
32768 Kill by the shot tripmine is counted for the shooter not the player that planted it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 16384 was added in version 0.6.2.&lt;br /&gt;
&lt;br /&gt;
== g_classWeapons==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar enables certain weapons per class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable PPSH for soldiers&lt;br /&gt;
&lt;br /&gt;
2 Enable PPSH for engineers&lt;br /&gt;
&lt;br /&gt;
4 Enable PPSH for fieldops&lt;br /&gt;
&lt;br /&gt;
8 Enable MP40 and Thompson to be available to both teams in limbo menu&lt;br /&gt;
&lt;br /&gt;
16 Enable MP40 for soldiers.&lt;br /&gt;
&lt;br /&gt;
32 Enable Thompson for soldiers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 8 was added in version 0.6.0.&lt;br /&gt;
&lt;br /&gt;
Flags 16 and 32 were added in version 0.6.2. Also the default value was changed from 15 to 63.&lt;br /&gt;
&lt;br /&gt;
== g_mg42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls optional machine gun behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Machine Guns can make headshots&lt;br /&gt;
&lt;br /&gt;
2 Machine Guns can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_coverts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the Covert Op class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 4 Coverts have more accurate scoped weapons.&lt;br /&gt;
&lt;br /&gt;
2 Disguised coverts can only be identified with the &amp;quot;crosshair name&amp;quot; by level 4 Field Ops.&lt;br /&gt;
&lt;br /&gt;
4 After detonating a satchel charge, the primary weapon will be selected instead of satchel again.&lt;br /&gt;
&lt;br /&gt;
8 Coverts in disguise take half the normal combat damage.&lt;br /&gt;
&lt;br /&gt;
16 Coverts in disguise take no splash damage.&lt;br /&gt;
&lt;br /&gt;
32 Coverts do not automatically lose their uniform if an enemy sees them firing a weapon.&lt;br /&gt;
&lt;br /&gt;
64 Coverts do not automatically lose their uniform if they fire a non-silent weapon.&lt;br /&gt;
&lt;br /&gt;
128 Coverts do not automatically lose their uniforms if they attach to an emplaced MG weapon.  Note that this flag has nothing to do with firing.&lt;br /&gt;
&lt;br /&gt;
256 Coverts are awarded xp for constructive use of smoke.&lt;br /&gt;
&lt;br /&gt;
512 Coverts will lose their uniform if an enemy sees him using ANY weapon (otherwise knife/satchel/smoke/binoc will never lose uni).&lt;br /&gt;
&lt;br /&gt;
1024 A disguised covert can still steal enemy uniforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_enableTMines	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disables/enables tripmines. Tripmines are available only for engineers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_enableDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Improvised Demolition weapon for soldier class.&lt;br /&gt;
Improvised Demolition weapon was introduced in 0.8.0 version of the silEnT mod.&lt;br /&gt;
As mentioned in the original WWII Tank-destruction manual, a big charge could be made of 6 stickgrenade heads around one complete grenade, fixed with wire or rope.&lt;br /&gt;
The central grenade would make the other 6 grenade detonate as well causing an explosion which could damage the light armoured vehicles.&lt;br /&gt;
&lt;br /&gt;
In silEnT mod this weapon is designed to suit exactly the purpose described above.&lt;br /&gt;
To gain the weapon player has to gain 3rd engineer level and 4th soldier level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_skills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optional skill related flags.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players with level 4 battle sense can spot landmines for teammates&lt;br /&gt;
&lt;br /&gt;
2 Players with level 4 engineering can keep the flak jacket for other classes&lt;br /&gt;
&lt;br /&gt;
4 Players with level 4 first aid can keep adrenaline for other classes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== skill_soldier==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in soldier ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_medic	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in medic ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_engineer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in engineer ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_fieldops	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in fieldop ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_covertops==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in covert op ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_battlesense	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in battle sense ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_lightweapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in light weapon ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_panzersVulnerable==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzers that are shot in mid-air will explode.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_maxMarkers ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many danger zones can be marked by the covert ops.&lt;br /&gt;
&lt;br /&gt;
Danger zones were introduced in 0.7.0 version of the silEnT mod. They can be marked by Covert Ops to indicate that some area can be considered dangerous. Such area is then visible on the command map as the red circle zone. Additionally, when the Command Post is built, players are notified by sound and visual signs about entering the danger zone. Players can customize the way they are notified via the HUD editor and the silEnT customize HUD menu.&lt;br /&gt;
&lt;br /&gt;
To mark the danger zone Covert Ops needs to look through his binoculars and press the left mouse button (attack button). The same way Field Ops calls for an airstrike.&lt;br /&gt;
&lt;br /&gt;
To disable the feature set the g_maxMarkers to 0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Friendly Fire =&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFire  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
To enable / disable friendly fire on server.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [0|1] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFireOpts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows greater control over friendly fire events.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
2 Allow &#039;grenade boosting&#039; when friendly fire is off&lt;br /&gt;
&lt;br /&gt;
4 Non-engineer players do not trigger landmines on their own team&lt;br /&gt;
&lt;br /&gt;
8 Players do not trigger trip mines on their own team&lt;br /&gt;
&lt;br /&gt;
16 Tripmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
32 Only engineer that planted the landmine can trigger/defuse it (concerns team landmines only). This flag requires that the flag 4 is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 32 was added in version 0.5.1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_reflectFriendlyFire ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to Shrub&#039;s g_friendlyfire 2 cvar. A multiplier value that determines how much friendly-fire damage, if any, is reflected back to the player that caused the damage. This setting is independent of g_friendlyfire, so damage can be set to reflect on both FF and non-FF servers.&lt;br /&gt;
&lt;br /&gt;
A value of 1.0 would reflect full damage.&lt;br /&gt;
&lt;br /&gt;
A value of 0.5 would reflect half damage.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to disable reflected friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_reflectFFWeapons ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects which category of weapon will reflect when g_reflectFriendlyFire is non-zero.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable reflected damage for Firearms (all types of guns)&lt;br /&gt;
&lt;br /&gt;
2 Enable reflected damage for Grenades and grenade launchers&lt;br /&gt;
&lt;br /&gt;
4 Enable reflected damage for Knives (includes thrown knives)&lt;br /&gt;
&lt;br /&gt;
8 Enable reflected damage for Panzers&lt;br /&gt;
&lt;br /&gt;
16 Enable reflected damage for Flamethrowers&lt;br /&gt;
&lt;br /&gt;
32 Enable reflected damage for Mortars&lt;br /&gt;
&lt;br /&gt;
64 Enable reflected damage for Satchel Charges&lt;br /&gt;
&lt;br /&gt;
128 Enable reflected damage for Artillery and Air Strikes&lt;br /&gt;
&lt;br /&gt;
256 Enable reflected damage for Dynamite and Construction Damage&lt;br /&gt;
&lt;br /&gt;
512 Enable reflected damage for Landmines&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setting this value to zero will override any multiplier set via g_reflectFriendlyFire, effectively disabling reflecting damage.&lt;br /&gt;
&lt;br /&gt;
== g_teamDamageRestriction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When greater than 0, anybody that has this percentage of hits inflicted on a teammate will automatically be kicked. A minimum of g_minhits hits total required before this is calculated. Client can see current stats for themselves by doing a /damage in console. Implemented to mimic shrub behavior as much as is possible, there are other ways to implement this feature, which may be implemented in addition to current manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_minHits ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum number of damaging hits required before calculating if player has reached g_teamDamageRestriction threshold. Flamethrower and landmine hits are adjusted similar to shrub. Medics get -2 hits for every revive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
= Hitboxes, Physics &amp;amp; Anti Lag Settings =&lt;br /&gt;
&lt;br /&gt;
== g_antilagDelay	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Manually delay the antilag of every player on the server. Might give very weird behaviour, so use at own risk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysics==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Creates a smoother movement when enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysicsfps	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Makes the fixedphysics act like all the clients have the same framerate, so that players with &amp;quot;magic&amp;quot; quake engine framerates don&#039;t have an unfair advantage. This CVAR must be between 60 and 333.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 125&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t actually change the framerates in clients, so the clients can keep their own framerates.&lt;br /&gt;
&lt;br /&gt;
== g_antiwarp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro-style antiwarp. This gives non-lagging players a much better game but for laggers it will be a bit more uncomfortable. This CVAR overrides both g_maxWarp AND g_skipCorrection in order to keep things consistent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_realBody ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If server admin sets this, the player hitboxes are adjusted smaller and harder to hit. Value 0 corresponds to the hitboxes used up to 0.5.0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Hitboxes used up to 0.5.0&lt;br /&gt;
&lt;br /&gt;
1 Use smaller hitboxes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see the differences in the hitboxes, use g_debughitboxes server cvar. Do note that this kind of testing should not be done with many players because it will cause huge amount of lag.&lt;br /&gt;
&lt;br /&gt;
== g_skipCorrection	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 to enable Neil Toronto&#039;s unlagged2 skip correction. This will smooth out the movement of players with high packet loss (to a degree). This is similar to etpro&#039;s antiwarp, but has some differences. Neil likes this version better, bani likes his better.&lt;br /&gt;
&lt;br /&gt;
This replaces g_smoothClients from etmain.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarp	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This allows you to control the amount of &amp;quot;warping&amp;quot; that players with high packet loss can do.  The [integer] is the number of server frames that you allow a player to miss before their next movement is put in check.&lt;br /&gt;
&lt;br /&gt;
A server frame is 50ms on a typical server (sv_fps set to 20).  This means that if you set g_maxWarp to 5 you won&#039;t allow players to warp from point A to point B if that distance takes an normal player 1/4&lt;br /&gt;
of a second to travel. Setting this to 1 is a good way to drive off just about everyone from your server.&lt;br /&gt;
&lt;br /&gt;
As far as I can tell, 1000ms is allowed by default in the game, so setting this to any value higher than 39 should have no effect if sv_fps is set to 10.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Fun Wars and Crazy Settings =&lt;br /&gt;
&lt;br /&gt;
== g_panzerwar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Panzerwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_sniperwar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Sniperwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_riflewar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Riflewar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set maximum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 540&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set max speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Watermark =&lt;br /&gt;
&lt;br /&gt;
== g_watermark==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set a watermark that will be displayed to all clients. The watermark must be put in a folder named &amp;quot;watermark&amp;quot; and then this whole folder needs to be zipped into a .pk3 file. The silEnT watermark is &amp;quot;logo_silent.tga&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeAfter	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermark is set, the watermark will fade out after [integer] number of seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermarkFadeAfter is set, the watermark will fade out in [integer] seconds. (So the fading process from 1.0 alpha to 0.0 alpha takes [integer] seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Hitsounds =&lt;br /&gt;
&lt;br /&gt;
== g_hitsounds	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server side hitsound options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable hitsounds&lt;br /&gt;
&lt;br /&gt;
2 Disable hitsounds when shooting wounded players&lt;br /&gt;
&lt;br /&gt;
4 Disable the headshot sound when shooting wounded player in the head. (default hitsound will be used in it&#039;s place)&lt;br /&gt;
&lt;br /&gt;
8 Enable warning sound from hitting team mates&lt;br /&gt;
&lt;br /&gt;
16 Disable hitsounds from poison damage&lt;br /&gt;
&lt;br /&gt;
32 Disable hitsounds from explosive weapons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A client can disable hitsounds with cg_hitSounds client cvar. Also an option to play only headshots is available.&lt;br /&gt;
&lt;br /&gt;
== g_defaultHitSounds ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects the default hit sounds on the server. Starting from silEnT 0.6.0, it is possible for the players to choose what kind of hit sounds are played. If the client cvar cg_hitSoundType is 0, the g_defaultHitSounds determines what type of hit sounds are used. Also, if the client cvar cg_hitSoundType is 0, the server may also add custom hit sound files in a custom pk3 file. These sounds are automatically loaded if available. However, if the client cvar cg_hitSoundType is 1, 2 or 3, the client will use strictly the hit sounds they have selected. Custom hit sounds are placed to the root folder &amp;quot;sounds/hitsounds&amp;quot; in the custom pk3. They must never overload any of the files in the subfolders, silent, etpro or etpub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 No selection, will default to silEnT in the client end.&lt;br /&gt;
&lt;br /&gt;
1 Defaults silEnT hitsounds.&lt;br /&gt;
&lt;br /&gt;
2 Defaults ETPro hitsounds.&lt;br /&gt;
&lt;br /&gt;
3 Defaults ETPub hitsounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
= Intermission =&lt;br /&gt;
&lt;br /&gt;
== g_intermissionTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the length of time the end of game screens displays before loading the next map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_intermissionReadyPercent	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The percent of connected players who need to hit the &amp;quot;READY&amp;quot; button to move on to the next map without waiting g_intermissionTime to run out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
= Miscellaneous =&lt;br /&gt;
&lt;br /&gt;
== g_proneDelay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set, there will be 1750 ms delay after every prone or getting up before the player can prone or get up again. Also, weapon spread will be maxed for 1 second after proning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_realPlayTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Show additional real play time of the payer (without spec time) in the debriefing screen at the end of the map.&lt;br /&gt;
For instance: 6/10 would mean that player played 6 minutes, was on the server for 10 minutes and 4 minutes was in spec.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== g_extraStatistics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional statistics over the end game awards.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player with most mine kills&lt;br /&gt;
&lt;br /&gt;
2 Player with most mine damage inflicted&lt;br /&gt;
&lt;br /&gt;
4 Player with most knife kills&lt;br /&gt;
&lt;br /&gt;
8 Player with most gibs&lt;br /&gt;
&lt;br /&gt;
16 Player with most artillery kills&lt;br /&gt;
&lt;br /&gt;
32 Player with most airstrike kills&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_packDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the distance at which health packs and ammo packs are thrown. Set this to 0 to make it just like etmain.  The settings should be similar to shrubet so set this to 2 for a subtle improvement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, medics will drop [integer] number of health packs when they are gibbed.  If set to -1, medics will drop the number of health packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropAmmo	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, fieldops will drop [integer] number of ammo packs when they are gibbed.  If set to -1, fieldops will drop the number of ammo packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tossDistance==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the velocity at which health or ammo packs are tossed from the dead body when g_dropHealth or g_dropAmmo are activated. This changes the distance that these packs travel from the corpse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_misc==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Miscellaneous options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Type: &#039;&#039;&#039;bitmask&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable double jump.&lt;br /&gt;
&lt;br /&gt;
2 Enable binoc master competition. Requires g_weapons 64 to be set.&lt;br /&gt;
&lt;br /&gt;
4 When a player is killed he can see the HP the killer has left.&lt;br /&gt;
&lt;br /&gt;
8 Disable self damage.&lt;br /&gt;
&lt;br /&gt;
16 Players can not jump if stamina is too low.&lt;br /&gt;
&lt;br /&gt;
32 Enable Jaymod style doublejump.&lt;br /&gt;
&lt;br /&gt;
64 Disable Falling Damage.&lt;br /&gt;
&lt;br /&gt;
128 Announce revives.&lt;br /&gt;
&lt;br /&gt;
256 Setting this flag disables the &amp;quot;First Blood&amp;quot; announcement.&lt;br /&gt;
&lt;br /&gt;
512 Full body predict. This makes it harder to get inside for example walls and stones. Same as ETPub g_misc 32 + 256. Do note that this can cause problems when proning through windows and similar narrow passages&lt;br /&gt;
&lt;br /&gt;
1024 Enable the enemy team objective carry indicator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
* Flag 1024 was added in version 0.8.2.&lt;br /&gt;
&lt;br /&gt;
== g_moverScale	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiply the speed of movers (e.g. tanks) by float.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_slashKill==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the behavior of the /kill command. See also g_fear and g_maxSelfkills.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player spawns with half charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
2 Player spawns with 0 charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
4 Restores the charge bar to the same state it was in at the moment the player issued /kill (regardless of how long they were in limbo)&lt;br /&gt;
&lt;br /&gt;
8 Disable /kill when player is frozen&lt;br /&gt;
&lt;br /&gt;
16 Disable /kill when player is poisoned&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxSelfkills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of times a player can use /kill per map. Setting this to -1 will result in normal behaviour (infinite selfkills). Setting this to 0 will disable /kill.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_ammoCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between ammo cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60000&lt;br /&gt;
&lt;br /&gt;
== g_healthCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between health cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10000&lt;br /&gt;
&lt;br /&gt;
== g_spectator==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls spectator behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 When in freelook mode, you can &#039;fire&#039; at a player to follow. If you miss a player, nothing happens.&lt;br /&gt;
&lt;br /&gt;
2 When in freelook mode with the 1 flag set, if you shoot and miss you start following the next available player.&lt;br /&gt;
&lt;br /&gt;
4 When the player you&#039;re following goes into limbo, don&#039;t move to the next available player.&lt;br /&gt;
&lt;br /&gt;
8 When the player you&#039;re following goes into limbo, go to freelook instead of following the next available player. (4 has precedence)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_truePing	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to see how much their local game is behind the top time (the time of the latest server frame). Pings will show around 50 ms better than if the ping would show network latency, but it&#039;s more accurate. Remember that the server is sending a snapshot to players in every 50 ms. This makes the players to inherenty play in the past from the server point of view.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropObj	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets the number of times a player can drop/toss the objective (e.g. parts on radar) per life.&lt;br /&gt;
&lt;br /&gt;
The parts are dropped by pressing the +activate key (usually bound to F) when there&#039;s nothing else around to be activated.&lt;br /&gt;
&lt;br /&gt;
Before enabling this recall how spammy the voiceovers can be. Then picture a player tossing the parts to himself over and over again. For this reason you probably don&#039;t want to set this very high.&lt;br /&gt;
&lt;br /&gt;
Players must switch to knife in order to drop the objective. If they are not holding knife and hit +activate they will see a message that notifies them that they must switch to knife.  This change was made to prevent accidental dropping of the objective when trying to push, drag, pick up, or activate something else.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_doubleJumpHeight	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adjusts the height of the second jump in a double jump.  This value is a multiplier to the default jump velocity. The greater g_doubleJumpHeight is, the greater the height of the second jump.  This setting has no effect if double jump is disabled in g_misc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.4&lt;br /&gt;
&lt;br /&gt;
== g_serverInfo==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use this cvar to change the behaviour of the &#039;serverinfo&#039; string.  This string is printed in response to the &#039;getstatus&#039; primative command used by game browsers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Display player team information using the &#039;P&#039; cvar in the server info string. (etpro and etmain 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
2 Display player team information using the &#039;Players_Axis&#039; and &#039;Players_Allies&#039; cvars in the server info string. (etmain &amp;lt; 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
4 Display the &#039;campaign_maps&#039; cvar in the server info string. This contains a comma delimited list off all the maps in the current campaign. Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
8 Displays the &#039;C&#039; CVAR in the server info string.  This is a string containing the current map number in the campaign, and total maps in current campaign, in the form of &amp;amp;quot;xx,yy&amp;amp;quot;.  Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
16 The class charge times will not be present in the server info string unless this flag is set. They are removed by default in order to make room in the serverInfo string for more useful information. These cvars are g_medicChargeTime, g_engineerChargeTime, g_LTChargeTime, g_covertopChargeTime, g_soldierChargeTime.&lt;br /&gt;
&lt;br /&gt;
32 Send KR (KillRating) instead of XP in SERVERINFO string.  This is overriden by flag 64.&lt;br /&gt;
&lt;br /&gt;
64 Send PR (PlayerRating) instead of XP/KR in SERVERINFO string. Overrides flag 32.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar MUST be set prior to loading the first map. You will not be able to change this cvar once the game code is loaded. The serverInfo string has a fixed length of 1024 characters.  This space is shared with any cvar you create on your server with the &#039;sets&#039; command.  If you use up too much space with &#039;sets&#039;, your server will fail to start.  It will print the message &amp;quot;Info string length exceeded&amp;quot; if you don&#039;t have enough space left in your serverinfo string to handle the g_serverInfo flags you&#039;ve selected. To fix this, either remove some sets cvars from your config, or use different g_serverInfo flags.&lt;br /&gt;
&lt;br /&gt;
== g_fear	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If a player uses the /kill command within g_fear milliseconds after taking damage from an enemy, the attacker that last damaged that player will recieve full credit for the kill and the mode of death will be recorded as MOD_FEAR.  Other restrictions are that the attacker must be on the opposite team and the attacker must still be alive.&lt;br /&gt;
&lt;br /&gt;
G_fear applies also to players that try to switch teams within g_fear milliseconds. The player will remain in the same team and the usual g_fear behavior applies.&lt;br /&gt;
&lt;br /&gt;
In-game statistics will reflect that the death was caused by the weapon that did the last recorded damage to the player.&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable this behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2000&lt;br /&gt;
&lt;br /&gt;
== g_maxNameChanges	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Limit the number of namechanges per player per map by setting this cvar. This is especially needed if you have cheaters that autochange their name every second. Set to -1 to disable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_disableComplaints	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable teamkill complaints for some weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines&lt;br /&gt;
&lt;br /&gt;
2 Artillery and airstrikes&lt;br /&gt;
&lt;br /&gt;
4 Mortar&lt;br /&gt;
&lt;br /&gt;
8 Dynamite&lt;br /&gt;
&lt;br /&gt;
16 Tripmines&lt;br /&gt;
&lt;br /&gt;
32 Completely&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_countryFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets whether the players will see the GeoIP country flags in the crosshair when aiming at someone and in the scoreboard. Players can enable/disable it with cg_countryFlags (default 1).&lt;br /&gt;
&lt;br /&gt;
You will need the GeoIP.dat file in your server&#039;s silent folder. You should read and accept the license of the GeoIP.dat database!&lt;br /&gt;
&lt;br /&gt;
Read the database license at http://geolite.maxmind.com/download/geoip/database/LICENSE.txt&lt;br /&gt;
Download the latest database at http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_noSkillUpgrades==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, disables player skill upgrades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
0 No skill locking.&lt;br /&gt;
&lt;br /&gt;
1 Lock skills.&lt;br /&gt;
&lt;br /&gt;
2 Lock skills and hide all HUD elemnts that would show the skill levels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.6.0, this cvar will lock the skills to the always enabled levels. See the skill_x cvars. Also, it is possible to hide the skill levels from the player HUDs setting this cvar to value 2.&lt;br /&gt;
&lt;br /&gt;
== g_flushItems	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Evens the dropped items out with the surface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxConnsPerIP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of connections allowed from one particular IP. This prevents the fake clients Denial of Service attack.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== shoutcastPassword	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables shoutcaster status on the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;none&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_headshot==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional head shot options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Headshots only&lt;br /&gt;
&lt;br /&gt;
2 Instagib damage (controlled by g_instagibDamage)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_instagibDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Damage used for instagib mode (e.g. set this to 160 so that a player can still be revived after being shot.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_ettvFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional ETTV options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Prevent ettv slaves from being callvote kicked&lt;br /&gt;
&lt;br /&gt;
2 Grant shoutcaster status to ettv slaves&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_mode==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls some additional modes for fun or for testing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players will spawn instantly&lt;br /&gt;
&lt;br /&gt;
2 Each class receives adrenaline&lt;br /&gt;
&lt;br /&gt;
4 No damage on players&lt;br /&gt;
&lt;br /&gt;
8 Players can pick up any weapon on the ground (Removing this bitflag will force all players to respawn!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_playDead	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to use the &#039;playdead&#039; command and their character will act like it is dead until the playdead command is used again (or they really die).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_shove	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to push other players with the &amp;quot;use&amp;quot; key.  The integer adjusts the amount of force players shove with. 80 seems fair.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 80&lt;br /&gt;
&lt;br /&gt;
== g_shoveNoZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 if you want to disable shove in the up/down direction (a.k.a &amp;quot;boosting&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dragCorpse	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players do drag wounded players with the use key when moving backward slowly.  Works best when crouching or prone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_classChange	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to take the class of a gibbed teammate temporarily similarly to how a covert steals an uniform.  Class changing does not latch, so the original class the player had will be restored on respawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_forceLimboHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0 it takes about 3 shots to gib a wounded player, if set to 1 it takes about 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_goomba==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, players can damage each other by landing on each other. The integer is multiplier that determines how much damage should be done to the player that was fallen on.  Also the impact for the falling player will be broken so that they only recieve 20% of the damage they would have normally.  It is also possible to do small amounts of damage (5HP) to other players by hopping up and down on them.&lt;br /&gt;
&lt;br /&gt;
Falling damage can be either 500, 50, 25, 15, or 10 depending on the length of the fall.  So if you set g_goomba to 5 and land on a player from a fall that would have damaged you 10HP, you will inflict 50HP of damage on the player you land on, and you will only recieve 2HP of damage.&lt;br /&gt;
&lt;br /&gt;
See also g_goombaFlags&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_goombaFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the way g_goomba is handled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Cannot do goomba damage to teammates.&lt;br /&gt;
&lt;br /&gt;
2 Short falls (hopping) on another player does no damage.&lt;br /&gt;
&lt;br /&gt;
4 Short falls (hopping) does no damage to teammates. (not necessary if 1 or 2 flag is set)&lt;br /&gt;
&lt;br /&gt;
8 Falling player recieves no damage when landing on any other player. (default is to recieve 20% of the damage the fall would have given if not landing on a player).&lt;br /&gt;
&lt;br /&gt;
16 Insta-gib goomba. All goomba damage will be 500HP regardless of fall distance. The exception is hopping on anther player which still does 5HP of damage.&lt;br /&gt;
&lt;br /&gt;
32 Falling corpses won&#039;t cause damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 31 to have g_goomba work like shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvul	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds players will be invincible after they spawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvulFair	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes the spawn protection when the player fires his first shot (note : the spawn protection will still be removed after the g_spawnInvul time)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_spinCorpse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allow players to use +left and +right binds to spin their corpse when dead or playing dead.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_teamChangeKills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0, players are allowed one non-killing team change per respawn cycle.  If a player changes teams, he will be instantly spawned in the other teams default spawn point.  Players will die (but not lose a life) if they change teams a second time in one spawn cycle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxIgnoresPerMap ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The maximum number of times one player can ignore another player during one map. This can prevent spamming other players with the ignore command. The value can be between 0 and 255. Any value higher than 255 will always allow ignoring. Any value below 1 will disable ignoring completely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Logs =&lt;br /&gt;
&lt;br /&gt;
== g_logOptions==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_logOptions cvar, but so far the only implemented flags are:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Server outputs obituaries to chat.&lt;br /&gt;
&lt;br /&gt;
2 Adrenaline countdown displayed.&lt;br /&gt;
&lt;br /&gt;
4 Disable display of tap-out confirmation box.&lt;br /&gt;
&lt;br /&gt;
8 Display connection attempts by banned players.&lt;br /&gt;
&lt;br /&gt;
16 Display gib reports (&amp;quot;&amp;amp;lt;victim&amp;amp;gt; was gibbed by &amp;amp;lt;attacker&amp;amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
32 Omit &amp;quot;item&amp;quot; lines from log file.&lt;br /&gt;
&lt;br /&gt;
64 Report gibs.&lt;br /&gt;
&lt;br /&gt;
128 GUID&#039;s are logged in the game log. Note, if this option is enabled the VSP log parser will not work.&lt;br /&gt;
&lt;br /&gt;
256 Log all private messages (/m commands).  This setting won&#039;t have any effect unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
512 Logs the real time into logs, instead of the normal uptime of the server.&lt;br /&gt;
&lt;br /&gt;
1024 This flag allows logging every player drop. It can be usefull for inspecting the server operation, but it will also cause lot of needless log writes.&lt;br /&gt;
&lt;br /&gt;
2048 Print TK death message like a normal kill message, giving killing weapon, except it is preceeded by a red TEAMKILL: identifier. Only works if g_obituary is set to 3.&lt;br /&gt;
&lt;br /&gt;
4096 Log client cvar values.&lt;br /&gt;
&lt;br /&gt;
8192 Log cvar values only when found from the client. Note that flag 4096 must also be set if using this flag.&lt;br /&gt;
&lt;br /&gt;
16384 Admin log will use new format that is more readable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.3 - Flags 4096 and 8192 were added.&lt;br /&gt;
&lt;br /&gt;
0.8.0 - Flag 16384. When this flag is set, the admin log will use new format.&lt;br /&gt;
&lt;br /&gt;
== g_logAdmin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file that all shrubbot commands will be logged to. For example, g_logAdmin &amp;quot;admin.log&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_cheatLog ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file, where all cheat related prints are logged. If this is not specified, server log is used.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Omni-Bots =&lt;br /&gt;
&lt;br /&gt;
== omnibot_enable ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, Omni-bot functionality is enabled. You still need to have Omni-bots installed correctly in order for the bots to work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== omnibot_path	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The path where the Omni-bot dll/so file is installed. If you installed Omni-bot to the default locations, then you do not need to modify this cvar. Leaving this cvar blank will search for the Omni-bot dll/so file from the default locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_bot_maxXP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Any bots present will have their XP reset after this much XP is reached. If g_maxXP is also set to a value greater than -1, then the bot XP will be reset whenever the lower limit of the two is hit. Set this to -1 to disable this feature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== omnibot_flags==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes bot management/behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Disables XPSave for bots&lt;br /&gt;
&lt;br /&gt;
2 Bots cannot mount tanks&lt;br /&gt;
&lt;br /&gt;
4 Bots cannot mount emplaced guns&lt;br /&gt;
&lt;br /&gt;
8 Don&#039;t track bot count in omnibot_playing cvar&lt;br /&gt;
&lt;br /&gt;
16 Bots will target ungibbed enemies&lt;br /&gt;
&lt;br /&gt;
32 Bots will trigger team and spotted mines&lt;br /&gt;
&lt;br /&gt;
64 Bots can use g_shove&lt;br /&gt;
&lt;br /&gt;
65536 Bots are granted shrubbot command immunity (the same as shrubbot flag !)&lt;br /&gt;
&lt;br /&gt;
131072 Bots cannot be !kicked or !banned&lt;br /&gt;
&lt;br /&gt;
262144 Disable shrubbot greeting for bots&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Lua =&lt;br /&gt;
&lt;br /&gt;
== lua_modules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of files to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. The paths are relative to the mod&#039;s directory, and can optionally be placed inside pk3 archieves. We are aiming for compatibility with ETPro&#039;s Lua Mod API found at http://wolfwiki.anime.net/index.php/Lua_Mod_API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== lua_allowedModules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of sha1 signatures for the lua modules to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. Only lua modules with the matching sha1 signature listed in this cvar will be allowed to load by the Lua API engine (ACL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Weapon Damage and Radius Settings =&lt;br /&gt;
&lt;br /&gt;
== g_dmg	==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables experimental advanced combat options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Use traditional ET settings for combat.&lt;br /&gt;
&lt;br /&gt;
1 Use Advanced Hit Locations: Differentiates between Head, Body, Arm, and Leg shot when computing damage.&lt;br /&gt;
&lt;br /&gt;
2 Applies a more realistic damage vs. range equation for short-ranged weapons. This will reduce the effectiveness of these weapons at longer ranges.&lt;br /&gt;
&lt;br /&gt;
4 Gives a damage bonus to short-range weapons when used in close combat situations.  This will increase the effectiveness of these weapons at closer ranges.&lt;br /&gt;
&lt;br /&gt;
8 Use bullet fall-off approximations when computing shot trajectory.&lt;br /&gt;
&lt;br /&gt;
16 Improve accuracy of non-scoped single-shot rifles.&lt;br /&gt;
&lt;br /&gt;
32 Use alternate bullet-spread characteristics for automatic or rapid-fire weapons.&lt;br /&gt;
&lt;br /&gt;
64 Damage from players who are spectators or have disconnected is ignored, and XP is not awarded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotMin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This represents the minimum damage done by a headshot regardless of the weapon used to make the shot.&lt;br /&gt;
&lt;br /&gt;
Headshots that would do damage below this value will be adjusted upward to equal g_dmgHeadshotMin. Headshots from a weapon with damage at or above this value will do a multiple of their damage, as specified by g_dmgHeadShotRatio. (The actual damage may undergo additional modification due to range and other conditions)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotRatio	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This specifies the multiplier used for headshots that do damage ABOVE g_dmgHeadShotMin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_dmgKnife	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the knife.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_dmgSten	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the sten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 14&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 15&lt;br /&gt;
&lt;br /&gt;
== g_dmgPistol==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the pistol weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgSMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the SMG weapons (Thompson and MP-40).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the MG42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an emplaced MG.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42Scope==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42 when scoped.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
== g_dmgInfRifle	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by unscoped rifles (K43 and Garand).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 34&lt;br /&gt;
&lt;br /&gt;
== g_dmgSniper	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a scoped Garand or K43.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgFlamer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the a flamethrower. Also controls the per-tick damage done to a player who has been set on fire by a flamethrower and is still burning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenade==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenadeRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncher	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncherRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blas radius of an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgTMine==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a tripmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 260&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmine	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmineRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchel	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchelRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzerRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortarRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamite	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamiteRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAir	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAirRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArty	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour (can do damage, but to a very small radius, making damage unlikely)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArtyRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour. The spotting round can do damage, but to a very small radius making damage unlikely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1100&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolitionRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_knifeThrowDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage a thrown knife will cause to enemy.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgPPSh==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage done by a PPSh.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 19&lt;br /&gt;
&lt;br /&gt;
= Debugging =&lt;br /&gt;
&lt;br /&gt;
== g_debugBullets ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, server will produce debug information of fired bullets. Enabling g_debugBullets require sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If 1 is set as if the cvar was a bitmask, blue lines for the fired shots is enabled. With any positive value, server will print impact area on the hit player to the center of the screen. Possibilities are &amp;quot;Head Shot&amp;quot;, &amp;quot;Body Shot&amp;quot;, &amp;quot;Leg Shot&amp;quot; and &amp;quot;Arm Shot&amp;quot;. If the value is set to 2 or more, the bounding box of the hit player is drawn. If the value is set to 3 or more, the hit player head box is drawn. If the value is set to -2 or smaller, boxes are drawn to impacted surfaces.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default: 0&lt;br /&gt;
&lt;br /&gt;
== g_debugDamage ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, damage inflicted to players is logged into the server log. Enabling this cvar requiers sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_debugHitboxes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is enabled, hit boxes around the players are drawn. This cvar does not require sv_cheats. However, do note that if this is enabled, the server will produce constant flow of extra entities, which will make playing impossible on a live server. Test this with only couple players to prevent everyone from lagging out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to any positive value, boxes are drawn. If the value is set to 8 or more, it will draw only the boxes that are used for the initial trace. Each bullet causes two traces to happen, where the second trace confirms the impact on the more refined area of the player body, such as head or legs.&lt;br /&gt;
&lt;br /&gt;
= Deprecated Cvars =&lt;br /&gt;
&lt;br /&gt;
== g_realHead==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro headboxes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Regular headbox positions.&lt;br /&gt;
&lt;br /&gt;
1 Server tracks the animations so the headbox will match the playermodels exactly. This is the recommended value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This code was originally from ETPro (b_realhead).  It was contributed by zinx and added to ETPub by forty. silEnT is based on the ETPub source and this code has not been altered from the ETPub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.1 - The option was removed. The ETPro headboxes are always used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_spoofOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Options for PunkBuster GUID and IP spoof detections and behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kick for GUIDspoofing.&lt;br /&gt;
&lt;br /&gt;
2 Kick for IPspoofing.&lt;br /&gt;
&lt;br /&gt;
4 Display a global warning when someone is GUIDspoofing. (When flag 1 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
8 Display a global warning when someone is IPspoofing. (When flag 2 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
16 Don&#039;t use the stored GUID. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
32 Don&#039;t use the stored IP. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do NOT change this CVAR unless you encounter problems!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar was removed in version 0.5.1 and spoofing is checked unconditionally in 0.5.1 and later versions.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=SilEnT_Mod&amp;diff=1238</id>
		<title>SilEnT Mod</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=SilEnT_Mod&amp;diff=1238"/>
		<updated>2015-03-31T10:21:35Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SilEnT Mod is a modification for game Wolfenstein: Enemy Territory by [http://www.splashdamage.com/ SplashDamage].&lt;br /&gt;
&lt;br /&gt;
Our goals with the mod are high quality, high performance and high configurability for both, the server and the client side.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Some important features of silEnT mod are:&lt;br /&gt;
&lt;br /&gt;
*Fixed many small bugs that affected the gameplay. These include fixing the sniper zoom exploit and pmove_fixed bug.&lt;br /&gt;
*Lots of code optimisations in many places.&lt;br /&gt;
*New database system for shrubbot with enhanced commands. Now you can ban players even if they are not on server, search players, edit their greeting text, sound, levels, etc.&lt;br /&gt;
*We have added new weapons PPSh, Tripmines and improvised demolition with carefull consideration that they will not alter the game flow that the Enemy Territory is known of. Admins can also easily configure or disable these weapons on their servers.&lt;br /&gt;
*We improved bandwidth usage by rewriting big part of the data transmissions between the server and client and this way gained big performance improvement resulting in more smoother game and stable FPS.&lt;br /&gt;
*Removed many exploitable cvars including cg_noDamageKick.&lt;br /&gt;
*New User Interface with 3 themes. Themes can be switched with &amp;quot;ui_theme&amp;quot; cvar {1,2,3} (Since 0.4.0)&lt;br /&gt;
*Widescreen support. (Since 0.4.0)&lt;br /&gt;
*New front end user interface for private message system. (Since 0.4.0)&lt;br /&gt;
*3rd person view for knife throw animations. (Since 0.4.0)&lt;br /&gt;
*Enhanced Hardware Based Identification system. g_identOptions 16. The server will automatically create a new ban for a player that is circumventing old ban and the client identification catches it. &lt;br /&gt;
*Subnet ban feature to replace pb_sv_banmask. (Since 0.4.0)&lt;br /&gt;
*Possiblity to mute only global chat sounds with cg_noVoiceChats 2. Also added into the menu. (Since 0.4.0)&lt;br /&gt;
*silEnT Mod Anti Cheat to help admins against cheaters. (Since 0.8.0) Feel free to send us non detected cheats through [http://mygamingtalk.com/forums/index.php?app=contactus&amp;amp;module=contato&amp;amp;section=form&amp;amp;id=2 Cheat Submission Page].&lt;br /&gt;
*Customized votes. (Since 0.8.1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For full list of features, please follow full documentation. &lt;br /&gt;
&lt;br /&gt;
== Content  ==&lt;br /&gt;
&lt;br /&gt;
*[http://mygamingtalk.com/forums/files/file/38-silent/ Download] &lt;br /&gt;
*[[Silent Mod Installation|Installation]] &lt;br /&gt;
*Server Cvar &lt;br /&gt;
**[[Silent Mod Server Cvar|silEnT Mod Server Cvar]] &lt;br /&gt;
**[[Generic Server Cvar|Generic Server Cvar]] &lt;br /&gt;
*Client Cvar &lt;br /&gt;
**[[Silent Mod Client Cvar|silEnT Mod Client Cvar]] &lt;br /&gt;
**[[Generic Client Cvar|Generic Client Cvar]] &lt;br /&gt;
*[[Silent Server Console Commands|Server Console Commands]]&lt;br /&gt;
*[[Silent Shrubbot|Shrubbot and User Database]] &lt;br /&gt;
*[[Silent Forcing Client Settings|Forcing Client Settings]]&lt;br /&gt;
*[[Silent Creating Custom Commands|Creating Custom Commands]]&lt;br /&gt;
*[[Silent Banners|Banners]] &lt;br /&gt;
*[[Silent Shortcuts|Shortcuts]] &lt;br /&gt;
*[[Silent Sounds|Hit Sounds, Spree Sounds and Announcements]]&lt;br /&gt;
*Lua Scripting&lt;br /&gt;
**[[Silent Lua|silEnT Lua API]] &lt;br /&gt;
**[[Lua Examples|Lua Examples]]&lt;br /&gt;
*[[Silent FAQ|Frequently Asked Questions]] &lt;br /&gt;
*[[Silent Server Config| silEnT Mod Server Config]]&lt;br /&gt;
*[[Silent Changelog|Changelog]] &lt;br /&gt;
*[[Silent Credits|Credits]]&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1214</id>
		<title>Silent Mod Server Cvar</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1214"/>
		<updated>2015-03-09T11:04:54Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* g_adminProtection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= silEnT Mod Anti Cheat =&lt;br /&gt;
&lt;br /&gt;
== g_silentac ==&lt;br /&gt;
&lt;br /&gt;
;Description&lt;br /&gt;
Enables actions based on silEnT AntiCheat. The g_cheatLog will always have one line telling if a player is found with cheats. The cheat detection&#039;s are based mostly on heuristically detecting hacking techniques. If you suspect a false positive, please supply the silEnT team a method to reproduce it. Do note that this feature has been in extensive testing well before the 0.8.0 version. When silEnT AC is set to autoban, sv_sac cvar is set to 1. This cvar can be used by external server trackers to enable/disable server anti cheat status on their lists. We recommend setting the value to 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Show player AntiCheat status in the !finger output.&lt;br /&gt;
&lt;br /&gt;
2 Automatically ban players for 365 days with cheats.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
== g_clientBinaries ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
silEnT mod can be configured to not allow players with unknown client binaries to play on the server. This cvar controls the server behaviour when the client binary is not one of the recognized ones.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;List of recognized binaries:&#039;&#039;&#039;&lt;br /&gt;
*Official client binaries&lt;br /&gt;
*Binary edited executables from etmaster.net&lt;br /&gt;
*Equivalent to etmaster.net binary edited executables from BigBear&lt;br /&gt;
*ETPatchSelector binaries&lt;br /&gt;
*Official ET Legacy b4&lt;br /&gt;
*Official ET Legacy b5&lt;br /&gt;
*Many ET Legacy binaries including RC1 versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow players with unknown client executables.&amp;lt;br&amp;gt;&lt;br /&gt;
2	Log unknown executables to the g_cheatLog. Note, if the server does not allow unknown client binaries the log message will be different for message.&amp;lt;br&amp;gt;&lt;br /&gt;
4	Report unknown executables to admin chat. Note, if the server does not allow unknown client binaries the players will not be reported to admin chat.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - If the flag 4 is set, known cheat binaries are clearly reported to the admin chat.&lt;br /&gt;
&lt;br /&gt;
== g_identOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from version 0.3.0, the silEnT mod can be configured to enforce bans using hardware based identification. This is not any fool proof system but it is made to be an addition to the already existing ban methods. The hardware identification cannot be seen in human readable form by admins while on the server. The data that is sent to the server can be seen in the client by writing /cg_ident to the console. The result is a hexadecimal string that changes its value between maps. The format and data used to create the client identification may change between different versions of the silEnT mod. The server can be configured with the g_identOptions server cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Kick clients that are spoofing the client identification to enter the server&lt;br /&gt;
&lt;br /&gt;
2	Kick clients that are not sending the identification to the server&lt;br /&gt;
&lt;br /&gt;
4	Enforce bans using the identification&lt;br /&gt;
&lt;br /&gt;
8	Report all actions taken based on client identification to the adminchat&lt;br /&gt;
&lt;br /&gt;
16	If a player is caught of circumventing a ban, a new ban is created with for it. The ban reason will have additional (Automated copy of a ban for xxxxxxxx) where xxxxxxxx is replaced with the 8 character PB GUID of the old ban.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Announcements and Messages =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_privateMessages ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If set to 1, players can send private messages to one another with the /m playername/slot command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disable Private Messages&lt;br /&gt;
&lt;br /&gt;
1 Enable Private messages&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Clients can reject private message from other individual clients with the /ignore client command. Also, private messages can be disabled from individuals/levels using shrubbot flag &#039;/&#039;.&lt;br /&gt;
&lt;br /&gt;
== g_spreeOptions  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Options to control the display of killingsprees. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: bitmask &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Enable killingsprees &lt;br /&gt;
&lt;br /&gt;
2 Enable killingspree ends &lt;br /&gt;
&lt;br /&gt;
4 Enable multikills &lt;br /&gt;
&lt;br /&gt;
8 When set, a top 3 current killing sprees message will be printed every minute, similar to binoc masters, and a map&#039;s longest killing spree will be printed every two minutes &lt;br /&gt;
&lt;br /&gt;
16 At the beginning of the intermission the highest spree and the 3 highest sprees which are still active will be shown &lt;br /&gt;
&lt;br /&gt;
32 /kill will end a spree &lt;br /&gt;
&lt;br /&gt;
64 Teamswitching will end a spree &lt;br /&gt;
&lt;br /&gt;
128 Multikill messages will be delayed g_multikillTime milliseconds, to prevent the doublekill -&amp;amp;gt; multikill -&amp;amp;gt; megakill -&amp;amp;gt; etc. flooding &lt;br /&gt;
&lt;br /&gt;
256 Killing bots doesn&#039;t count for multikills or killingsprees (Note: they DO count for ending kill/deathsprees) &lt;br /&gt;
&lt;br /&gt;
512 Display the map and overall spree record when entering intmission &lt;br /&gt;
&lt;br /&gt;
1024 Summary: don&#039;t enable this flag if you don&#039;t have enabled g_spreeOptions flag 512 OR g_XPSave flag 16 or Shrubbot flag t &lt;br /&gt;
&lt;br /&gt;
Spree records are automatically saved into XPSave file when a map ends. By enabling this flag, you also store the spreerecord at the points where g_XPSave flag 16 would store XP. When you don&#039;t have set XPSave flag 16 and g_spreeOptions flag 512 and not allow users to use&amp;amp;nbsp;!spreerecord you should NOT set this flag as it takes some extra resources. When XPSave flag 16 is set this doesn&#039;t matter (it actually takes much less resources then). When only g_spreeOptions flag 512 or shrubbot flag t is set it won&#039;t do much harm anyway (your server won&#039;t explode) &lt;br /&gt;
&lt;br /&gt;
2048 Enable revivesprees&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_multikillTime  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The time (in milliseconds) in which two kills should be made in order to count them as multikills.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_obituary  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This cvar controls will the server send obituary events to the clients. If this is set to 0, no obituary events will be sent. If set to any nonzero value, obituary events will be sent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dropMsg  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Message to add to the drop screen when a client is kicked or banned.&amp;amp;nbsp;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;&amp;amp;nbsp;String&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot; &amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; g_dropMsg&amp;amp;nbsp;&amp;quot;Please protest ban on forums&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_landmineNotifyType  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Decide which landmine reveal notifications server should send.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Server can send two types of landmines reveal notification. Standard one, generated (sent) for each landmine revealed and summary one,&amp;amp;nbsp;which is sent after player spotting landmines stops using binoculars.&amp;amp;nbsp;It&#039;s generated after each binculars zoom. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
0 Only standard notfications (for each landmine revealed).&lt;br /&gt;
&lt;br /&gt;
1 Only single summary notifications for one binocs zoom. New type of notification. For example: during one binocs zoom, 3 mines were revealed, but only 1 summary notification is sent. It contains information: 3 mines spotted by &amp;quot;player name&amp;quot; and last one was in location &amp;quot;some location&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t send any landmine notifications.&lt;br /&gt;
&lt;br /&gt;
3 Send all notifications. For example: for 3 spotted landmines send 4 notifications (3 for each landmine + 1 summary notification). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_banners  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should be set to the name of your banners.cfg file if you want to enable banners. See [[Silent Banners]] for more information about this file.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&amp;lt;br&amp;gt;set g_banners &amp;quot;banners.cfg&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== g_recognition ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables additional recognition notifications for players doing objective, e.g. for planting dynamite, disarming it, destroying objective.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Additional recognition notifications disabled.&lt;br /&gt;
&lt;br /&gt;
1 Additional recognition notifications enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= User Database, Shrubbot and Bans =&lt;br /&gt;
&lt;br /&gt;
== g_dbDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set the server stores various information about server statistics, map information, sprees, users, bans and XP save. To use any of the functionalities, this must be set. The cvar defines a directory and only a directory that is relative to fs_game. All the used filenames are predefined and cannot be changed. For security reasons, this cvar must be set during server initialisation. (i.e. It may not be changed when the server is running.) In this directory there can be 5 files, depending of other server settings.&lt;br /&gt;
&lt;br /&gt;
* userdb.db is a binary format file that contain all the required information about shrubbot users and also all saved XP if the server is set to save XP&lt;br /&gt;
* userxdb.db is a binary format file that contain related to players playing on the server&lt;br /&gt;
* serverstat.cfg is a human readable file that contain server statistics and map sprees if the server is set to store them&lt;br /&gt;
* shrubbot.cfg is a human readable file that contain level configurations, custom commands and bans&lt;br /&gt;
* mapvoteinfo.cfg This file contains information relating g_gametype 6, which is map voting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the required files will be created automatically to the folder when needed if there aren&#039;t any suitable files already present.&lt;br /&gt;
&lt;br /&gt;
You can freely edit the human readable files by hand as long as their correct format remains and the server is notified of the changes using appropriate shrubbot commands. With the exceptions of serverstat.cfg and mapvoteinfo.cfg that will be overwritten by the server. If you want to hand edit the values of these files, the server be shutdown.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;database&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar only from the config file or from the command line. It cannot be edited using RCON. If you want to store all the files in the same root directory where all the pk3 files and binaries are, you can set this cvar to value &amp;quot;.&amp;quot;. It will then use the fs_game directory.&lt;br /&gt;
&lt;br /&gt;
== g_dbUserMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that player is saved to the database since the player has last visited on the server.&lt;br /&gt;
&lt;br /&gt;
The database cleaning is done during intermission so this should not cause any performance problems when actions are taken. However, by setting this value to 0 or not setting the value at all, will disable the feature.&lt;br /&gt;
For servers with high database sizes, this can improve performance since users that are not needed will be removed automatically.&lt;br /&gt;
&lt;br /&gt;
You can use a modifiers with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar only from the config file executed before the mod launches the first time or from the command line. It cannot be edited using RCON.&lt;br /&gt;
&lt;br /&gt;
== g_dbMaxAliases ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The silEnT mod can store player aliases in an additional database. To enable this database, set this value to higher then 0. If this value is a positive integer, it defines how many aliases are stored in the database for one player. If the player has more aliases then this value, the oldest aliases are deleted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minumum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar can be set only at startup, before the mod launches. It cannot be changed on a live server using rcon.&lt;br /&gt;
&lt;br /&gt;
== g_minCommandWaitTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Time you have to wait between using 2 shrubbot commands in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tyranny ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls the use of administrator commands that could be used by admins to cheat or abuse players. If it is set to 0 you will not be able to use commands on your server such as !gib, !slap, !burn, etc.&lt;br /&gt;
&lt;br /&gt;
Also, you will not be able to use g_logOptions flag 256 (log private messages) unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
g_tyranny must also be enabled in order to specify a client in using the &#039;playsound&#039; server command.&lt;br /&gt;
&lt;br /&gt;
&#039;g_tyranny&#039; and its value appear in the serverInfo string to serve as a warning for perspective players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you enable this, you MUST do so immediately when the server starts (before the first map is loaded). This means putting &amp;quot;set g_tyranny 1&amp;quot; in the .cfg file that is exec&#039;ed on server start. If you try to change this on a running server, you will get the message &amp;quot;g_tyranny is read only.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_warningOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar changes the behaviour of the shrubbot !warn command. By setting flag 1 or 2 you activate the advanced warning (storage) system&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Link stored warnings to the guid of a player&lt;br /&gt;
&lt;br /&gt;
2	Link stored warnings to the ip of the player&lt;br /&gt;
&lt;br /&gt;
4	Remove the oldest warning when the total maximum ammount of warnings is reached&lt;br /&gt;
&lt;br /&gt;
8	Auto-kick a player for 2 minutes when he has more than g_maxWarnings warnings&lt;br /&gt;
&lt;br /&gt;
16	Allow clients to see their own warnings with the /warnings command&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarnings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The ammount of warnings that can be stored for 1 player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_warningDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in hours that a warning will be stored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 24&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBan ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, anyone kicked for the reasons you specify, will be temporarily banned for g_autoTempBanTime seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Tempban when reaching g_teamDamageRestriction&lt;br /&gt;
&lt;br /&gt;
2	Tempban when someone is kicked by a shrubbot admin (using the !kick command). A normal shrubbot !kick kicks for 120 seconds&lt;br /&gt;
&lt;br /&gt;
4	Tempban when someone is kicked by the advanced warning system. A normal kick by the warning system lasts 120 seconds&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifically in version 0.5.0, this feature is bugged and can cause broken shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBanTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds kicked for when g_autoTempBan is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1800&lt;br /&gt;
&lt;br /&gt;
== g_minConnectLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The minimum shrubbot adminlevel required for players to be able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This only works for positive levels, any value &amp;lt;= 0 will allow everyone to connect. Bots won&#039;t be able to connect either.&lt;br /&gt;
&lt;br /&gt;
== g_greetingPos ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Location where the shrubbot greetings are displayed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3|4]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Chat area&lt;br /&gt;
&lt;br /&gt;
1	Center of screen&lt;br /&gt;
&lt;br /&gt;
2	Left notification area&lt;br /&gt;
&lt;br /&gt;
3	Top of the screen&lt;br /&gt;
&lt;br /&gt;
4	Console only&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adminProtection ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins levels can be protected against spoofing. The protection works by establishing trust between the client and the server. The trust must be confirmed by an online human admin for the new trusted admins to gain access to their assigned level. Specific command !confirm is used for it. Do note that establishing the trust between the server and the player is not the same as assigning admin level. In fact, anyone who is capable of recognizing the real admin can be safely allowed to use the !confirm command. The !setlevel command will automatically establish the trust if the admin level protection is enabled and the level is above or equal to the g_protectMinLevel. The admin protection is designed so that only the important admin levels are protected. This mean that levels above the g_protectMinLevel require established trust between the server and the client. Normal guests do not need this. It is also advisable to not set the g_protectMinLevel too low to avoid server load with these admins.&lt;br /&gt;
&lt;br /&gt;
The trust needs to be established only once. After that, the client and the server can negotiate the confirmation silently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technical Details:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The trust is established using one-way hashes. When the !setlevel or !confirm is used on a player, the server generates 2 unique 32 character long values. Both of these values are stored both in the client (silent.dat) and the server database. Their meanings are server identification and a client key.&lt;br /&gt;
&lt;br /&gt;
Authentication negotiation:&lt;br /&gt;
&lt;br /&gt;
1. When the player next time connects to the server, the server sends one of the stored values as server identification and another, newly generated random 32 character value, to initiate the negotiation.&lt;br /&gt;
&lt;br /&gt;
2. The client will use the server identification value it received from the server to match with the key value associated with the server identification. It will hash the 32 character key value with the supplied random 32 character value and send the result back to the server.&lt;br /&gt;
&lt;br /&gt;
3. The server, knowing both values, the client key and the random character string it sent, can compare the hash against a hash it generates itself with the same values.&lt;br /&gt;
&lt;br /&gt;
4. If the hashes match (one supplied from client and the one it just generated), the client is authenticated to his admin level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Log succesfull authentications to the cheat log&lt;br /&gt;
&lt;br /&gt;
2	Log admin spoofing attempts to the cheat log&lt;br /&gt;
&lt;br /&gt;
4	Report admins waiting for confirmation on their level to the admin chat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_protectMinLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins can be protected against spoofing. The protection works by establishing trust between the client and the server if the admin level is higher then the g_protectMinLevel. Setting this to -1 will disable the freature. Do note that when you enable the feature, noone has yet established trust with the server and the first one to have it, must be confirmed by an rcon command. Either !setlevel if the database still doesn&#039;t have admins or !confirm if the admin has been set in the database already.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_muteRename ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to 1 the muted player won&#039;t be allowed to change his name while he is muted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Disabled. Allow players to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow player to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimium required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
= XP Save =&lt;br /&gt;
&lt;br /&gt;
== g_XPSave ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls XP save behaviours.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Store xp when a client disconnects. This is always required for the XP save to work.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t reset xp to the pre-map start values on a map restart, shuffle, etc.&lt;br /&gt;
&lt;br /&gt;
4 Never reset xp (ever).&lt;br /&gt;
&lt;br /&gt;
8 Force the disconnection of clients with the same GUID as the connecting client. This is useful in saving the stored XP of players with unreliable network connections since they should still get their stored XP even if reconnecting immediately with a new IP address.&lt;br /&gt;
This feature is enabled by default unless you have sv_wwwDlDisconnected enabled. sv_wwwDlDisconnected seems to interfere with this feature, so do not enable this flag if you change pk3&#039;s on your server often because stored XP will be lost over disconnected downloads.&lt;br /&gt;
&lt;br /&gt;
16 Store the XP at restarts, nextmaps, mapvotes, campaignvotes and similar cases.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge_xp ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her xp skills. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;120m&amp;quot; - 120 minutes &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If g_XPSaveMaxAge is less than g_XPSaveMaxAge_xp, g_XPSaveMaxAge will be used.&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her skills/killrating/playerrating/mute status. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier for this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See also g_XPSaveMaxAge_xp &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1w&lt;br /&gt;
&lt;br /&gt;
== g_resetXPMapCount  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How many maps occur before XP is reset. If g_XPSave flag 4 is set, g_resetXPMapCount is ignored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting is only valid when the g_gametype is 6 (see Map Voting)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMinXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The increment of XP during one map that is required for the XP gained during the map to get saved and the time of the latest XP save to get updated. The silEnT mod separates the XP save and the connection times so that players who visit spectators without playing will not be removed by the g_dbUserMaxAge but can still lose their stored XP if they do not play. Admins can adjust the requirement with this value. Using -1 will disable the requirement and XP save will consider every connection valid for the XP save. Using value 0, will consider XP save valid if the player has gained even 1 XP point during the map. Please note that the value is only for one map and using high values may cause some players to not achieve enough XP to get their XP updated. Also note, that this does not prevent SMG weapon statistics or rating values to get updated into the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_maxXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a vicious cvar that will reset a players XP once their overall XP score reaches it.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_maxXPResetWarn ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Displays a message warning players whose XP is close to being reset due to the g_maxXP setting. The warning is displayed every thirty seconds once the warning threshold is passed.&lt;br /&gt;
&lt;br /&gt;
This setting can have an integer value (eg, 950), in which case it means that the player will be warned every thirty seconds once he has more than 950 XP.&lt;br /&gt;
&lt;br /&gt;
This setting can also have percentage value (eg, &amp;quot;90%&amp;quot;), and that will cause the warnings to start when the player reaches 90% of g_maxXP XP.&lt;br /&gt;
&lt;br /&gt;
If you specify a negative value, players will be warned when that offset is hit. For example:&lt;br /&gt;
&lt;br /&gt;
For a value of -75, warnings will to display then players have g_maxXP - 75 XP&lt;br /&gt;
&lt;br /&gt;
For a value of -2%, warnings will display when players have 98% of g_maxXP&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optionally enables the awarding of XP based upon the amount of damage a player has done to the opposing team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disabled: use normal ET XP awarding methods&lt;br /&gt;
&lt;br /&gt;
1 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the skill category of the weapon used. When this mode is enabled, kills (regardless of method) are awarded a fixed value of 1 point of XP.&lt;br /&gt;
&lt;br /&gt;
2 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the Battle Sense category. Normal XP amounts are awarded for kills (typically 3-5 XP).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXPLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting determines the amount of damage that a player must do to earn 1 point of XP. See g_damageXP for additional information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_XPDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a bitmask that controls the XP decay feature.&lt;br /&gt;
&lt;br /&gt;
See also g_XPDecayRate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Enable XP Decay&lt;br /&gt;
&lt;br /&gt;
2	Do not decay a player&#039;s XP when they are disconnected from the server&lt;br /&gt;
&lt;br /&gt;
4	Do not decay a player&#039;s XP for the class they are currently playing as (e.g. Medic).&lt;br /&gt;
&lt;br /&gt;
8	Do not decay a player&#039;s XP while they are spectating&lt;br /&gt;
&lt;br /&gt;
16	Do not decay a player&#039;s XP during warmup/intermission&lt;br /&gt;
&lt;br /&gt;
32	Do not decay a player&#039;s XP when he/she is playing. This means that they are on a Allies or Axis and the game is active.&lt;br /&gt;
&lt;br /&gt;
64	Do not decay a player&#039;s Battle Sense XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
128	Do not decay a player&#039;s Light Weapons XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayRate ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the rate (in skillpoints per second) that XP skill points for each skill will decay when g_XPDecay is enabled.&lt;br /&gt;
&lt;br /&gt;
Setting this to 0.1 would result in a player losing 6 points per minute IN ALL SKILLS, so up to 42XP per minute if the player has skill points for each skill.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;5000/o&amp;quot; - Decay 5000xp per skill per month&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;1000/w&amp;quot; - Decay 1000xp per skill per week&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;500/d&amp;quot; - Decay 500xp per skill per day&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;40/h&amp;quot; - Decay 40xp per skill per hour&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;2/m&amp;quot; - Decay 2xp per skill per minute &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayFloor ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the minimum that any particular skill can be reduced to by g_XPDecay.&lt;br /&gt;
&lt;br /&gt;
For example, setting this to 140.0 will ensure that no player will ever lose rank or skill levels due to g_XPDecay. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flood Protection = &lt;br /&gt;
&lt;br /&gt;
== g_floodprotect  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable/disable silEnT flood protect. Flooding means that a client is sending too many messages to the server (vsays, callvotes, etc...). Enabling g_floodprotect disables the engine&#039;s sv_floodprotect functionality. If you enable g_floodprotect, make sure you set a value for g_floodthreshold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&amp;amp;nbsp;&#039;&#039;&#039;1&lt;br /&gt;
&lt;br /&gt;
== g_floodthreshold  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of messages per second before ignoring the client&#039;s messages. Only in effect when g_floodprotect is turned on.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
== g_floodWait  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of milliseconds between two messages when g_floodprotect is enabled. This is a hard limit so admins aren&#039;t allowed to override it. 1000 milliseconds copies sv_floodprotect behaviour. This CVAR should not have a value below 500 in order to keep a public server playable.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_voiceChatsAllowed  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of voicechats allowed in minute.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Player Statistics, Rating and Team Balance =&lt;br /&gt;
&lt;br /&gt;
== g_stats  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a bitflag cvar used to control the way statistics are handled.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&amp;lt;br&amp;gt;1 When shooting a corpse to gib, do not count it as a hit.&amp;lt;br&amp;gt;2 When shooting a corpse to gib, do not count it as a shot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;amp;nbsp;Set this to 3 to use the behaviour of etmain and shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_playerRating_minplayers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of players that must participate in a map in order for it to count towards each player&#039;s player rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 8&lt;br /&gt;
&lt;br /&gt;
== g_shuffle_rating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the rating system used by shuffle.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 | 4 | 5 ]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player XP&amp;lt;br&amp;gt;2 Use the rate at which players have gained XP since connecting.&amp;lt;br&amp;gt;3 Use the killRating (g_killRating must be nonzero)&amp;lt;br&amp;gt;4 Use the playerRating (g_playerRating must be nonzero)&amp;lt;br&amp;gt;5 Use the playerRating (g_playerRating must be nonzero), but take the map into account and give the teams closest to 50/50&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_killRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to 0, silEnT will track a player&#039;s killing ability using an ELO type statistic similar to chess. Each kill will increase a player&#039;s kill rating based on how hard the kill was. Killing unskilled players will result in very few points whereas an unskilled player killing a skilled player will result in more points.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use kill rating. A dummy flag since any non-zero value for g_killRating will enable it.&amp;lt;br&amp;gt;2 Make kill rating visible. Players can use /killrating and at the end of each map a message will display the top killers for the map and overall.&amp;lt;br&amp;gt;4 Log files will include the GUIDs of the players involved in kills. This makes kill tracking a lot easier.&amp;lt;br&amp;gt;8 Disable kill rating from the score board. This can prevent players from playing for higher kill rating alone. This does not prevent the &amp;quot;killrating&amp;quot; client command enabled with flag 2 from working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_playerRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to non zero positive value, silEnT will track a player&#039;s ability to win against good teams using an ELO type statistic similar to chess. Each win will increase a player&#039;s rating based on how hard the opposing team was. Skilled teams defeating less skilled teams will result in very few points whereas an relatively low- rated team defeating a good team will result in more points. Player rating also takes into account the number of players on each team (less points when a very large defeats a small one) and which side tends to win more often on the current map (e.g. Allies tend to win tc_base).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player rating. A dummy flag since any non-zero value for g_playerRating will enable it.&amp;lt;br&amp;gt;2 Make player rating visible. Players can use /playerrating and at the end of each map a message will display the top player.&amp;lt;br&amp;gt;4 Put player rating on the scoreboard instead of the XP.&amp;lt;br&amp;gt;8 Print out extra info at the end of a round that can be used to further refine the playerrating model.&amp;lt;br&amp;gt;16 The same as flag 8 except a lot more info is output.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamDiff  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If g_teamForceBalance is set, setting g_unevenTeamDiff will notify all players when team numbers are off by g_unevenTeamDiff or more. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamFreq&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;: Set to 0 to disable this feature&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamFreq  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How often the team disparity notification occurs. Only valid when g_unevenTeamDiff is set to a positive value. Value is in seconds.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamDiff&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
= Class and Weapon Restrictions =&lt;br /&gt;
&lt;br /&gt;
== g_medicChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the medic charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 45000&lt;br /&gt;
&lt;br /&gt;
== g_engineerChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the engineer charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== g_LTChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the field ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 40000&lt;br /&gt;
&lt;br /&gt;
== g_soldierChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the soldier charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20000&lt;br /&gt;
&lt;br /&gt;
== g_covertopsChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the covert ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== team_maxPanzers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxPanzers, team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 panzerfaust soldiers, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team with few players (for example, 5) will be able to have 1 panzerfaust soldier. They will be able to have their second panzerfaust soldier when they have 11 players on the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team will not be able to have any panzerfaust soldiers until there are 10 players in the team. They will be able to have their second panzerfaust soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMortars  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 mortar soldiers, regardless of how many players are on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team with few players (for example, 5) will be able to have 1 mortar soldier. They will be able to have their second mortar soldier when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team will not be able to have any mortar soldiers until there are 10 players in the team. They will be able to have their second mortar soldier when there are 20 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Set this to -1 to disable limits&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFlamers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 flamethrower soldiers, regardless of how many players are on the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team with too few players (for example, 5) will be able to have 1 flamethrowe soldier. They will be able to have their second flamethrowe soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team will not be able to have any flamethrower soldiers until there are 10 players in the team. They will be able to have their second flamethrower when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMG42s  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 MG42 soldiers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team with too few players (for example, 5) will be able to have 1 MG42 soldier. They will be able to have their second MG42 soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team will not be able to have any MG42 soldiers until there are 10 players in the team. They will be able to have their second MG42 soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxGrenLaunchers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 grenade launchers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team with too few players (for example, 5) will be able to have 1 grenade launcher. They will be able to have their second grenade launcher when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team will not be able to have any grenade launchers until there are 10 players in the team. They will be able to have their second grenade launcher when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMedics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 medics, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team with too few players (for example, 3) will be able to have 1 medic. They will be able to have their second medic when they have 7 players in the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team will not be able to have medics until there are 7 players in the team. They will be able to have their second medic when there are 14 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxEngineers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 engineers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team with too few players (for example, 3) will be able to have 1 engineer. They will be able to have their second engineer when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team will not be able to have engineers until there are 7 players in the team. They will be able to have their second engineer when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFieldOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 field opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team with too few players (for example, 3) will be able to have 1 field ops. They will be able to have their second field ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team will not be able to have field opses until there are 7 players in the team. They will be able to have their second field ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxCovertOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 covert opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as coert opses, and a team with too few players (for example, 3) will be able to have 1 covert ops. They will be able to have their second covert ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as covert opses, and a team will not be able to have covert opses until there are 7 players in the team. They will be able to have their second covert ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_minAirstrikeTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airstrikes PER TEAM.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_minArtyTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airtillery strikes PER TEAM. Attempts to do airstrike before the timeout will get &amp;quot;Insuffient fire support&amp;quot; message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamLandmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of landmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamTripmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of tripmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_minGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of clients needed to start a match.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The maximum allowed amount of active clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Player Inactivity =&lt;br /&gt;
&lt;br /&gt;
== g_inactivity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity before the player is made a spectator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_spectatorInactivity==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity as spectator before the player is kicked/dropped from server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_inactivityOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional inactivity options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Don&#039;t drop shoutcasters&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t drop spectators when in following mode&lt;br /&gt;
&lt;br /&gt;
4 ETmain inactivity behavior (don&#039;t wait for a full server)&lt;br /&gt;
&lt;br /&gt;
8 Shrubbot flag &#039;0&#039; admins will be moved to spectators due to team inactivity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Gametypes =&lt;br /&gt;
&lt;br /&gt;
== g_gametype	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please see Map Voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [2|3|4|5|6|7]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
2 Objective&lt;br /&gt;
&lt;br /&gt;
3 Stopwatch&lt;br /&gt;
&lt;br /&gt;
4 Campaign&lt;br /&gt;
&lt;br /&gt;
5 Last Man Standing&lt;br /&gt;
&lt;br /&gt;
6 Map Voting&lt;br /&gt;
&lt;br /&gt;
7 Team Death Match&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== Campaign ==&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
&lt;br /&gt;
== Last Man Standing ==&lt;br /&gt;
&lt;br /&gt;
== Map Voting  ==&lt;br /&gt;
&lt;br /&gt;
This gametype allows for the players to decide on the map that is played next. When g_gametype is set to 6 a new screen is introduced during intermission. This screen list, depending on server configuration, a list of up to 32 maps that are loaded on the server, and that all players can vote on. Once intermission ends, the server totals the votes, and plays the next map based upon the vote results &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;;Miscellaneous notes about mapvoting:&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
Total maps allowed is 32. If server admin has more than 32 .bsp files, only the first 32 are used Tie breaker. The default tie-breaker is such that if 2 or more maps are tied with the same number of votes, the map that was played most recently is selected. Bots and connecting players do NOT count for mapvoting, everyone else (including spectators) does. If no maps are voted for, the default &amp;quot;nextmap&amp;quot; cvar is used, so server admins have to specify a default map cycle of sort, usually in the following format: &lt;br /&gt;
&amp;lt;blockquote&amp;gt;set d1 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map oasis&amp;amp;nbsp;; set nextmap vstr d2&amp;quot;&amp;lt;br&amp;gt;set d2 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map battery&amp;amp;nbsp;; set nextmap vstr d3&amp;quot;&amp;lt;br&amp;gt;set d3 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map goldrush&amp;amp;nbsp;; set nextmap vstr d1&amp;quot;&amp;lt;br&amp;gt;vstr d1&amp;lt;br&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
This means that the default map, upon server start, will be oasis. From there, map voting will be used. If at any point, no map is voted for, battery will be played, etc &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== g_mapVoteFlags  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; This cvar controls the behaviour of the map voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Changes the tie breaker so that the map not played in the longest wins&amp;lt;br&amp;gt;2 Intermission doesn&#039;t end until g_intermissionReadyPercent people have voted. If there are no players connected to the server, intermission will end at the timeout. (WARNING: This means that if there are spectators connected and not voting, the next map will not load until those spectators either vote, disconnect, or get kicked by the system)&amp;lt;br&amp;gt;4 Multi vote: Allows everybody to vote for 3 maps instead of one, first choice map gets 3 votes, second choice gets 2, third choice gets one&amp;lt;br&amp;gt;8 Don&#039;t randomize the maps, so they will always appear in the same order&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_maxMapsVotedFor  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;How many maps are available to players for voting upon during intermission.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6 &lt;br /&gt;
&lt;br /&gt;
=== g_minMapAge  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
How long a map is ineligible for voting during intermission, after it is played last time.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
=== g_includedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Used to include map regardless of any other restrictions. Including g_excludedMaps setting. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; or otherwise the map will be ignored in the list.&lt;br /&gt;
Only valid when map voting is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
=== g_excludedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Used to exclude map that would otherwise be listed in the map voting list. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; otherwise the map will not be excluded. &amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; To exclude railgun and battery maps from map voting use below command:&amp;lt;br&amp;gt; &lt;br /&gt;
set g_excludedMaps &amp;quot;:railgun:battery:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Team Death Match (TDM) ==&lt;br /&gt;
&lt;br /&gt;
=== g_TDMType	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The type of the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map ends only when timelimit hits&lt;br /&gt;
&lt;br /&gt;
2 Map ends when either the target score is reached or the timelimit hits&lt;br /&gt;
&lt;br /&gt;
3 Map ends only when the target score is reached&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_TDMOptions	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Possible options for the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map voting is enabled during the intermission (i.e. The players vote for the next map to play during the intermission.)&lt;br /&gt;
&lt;br /&gt;
2 Completing the map objective will give the team score bonus that is controlled by the g_TDMObjBonus server cvar&lt;br /&gt;
&lt;br /&gt;
4 Teams get negative points when they do selfkills or teamkills&lt;br /&gt;
&lt;br /&gt;
8 Players cannot selfkill during the TDM. Regardless of other selfkill settings the server has configured&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
=== g_TDMScore===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the target score the teams attempt to make to win the game in TDM game types 2 and 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
=== g_TDMObjBonus===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the value that is added to the team score if the team completes the map objective. Adding the bonus does not depend of the TDM type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
= Mapconfigs and Mapscripts =&lt;br /&gt;
&lt;br /&gt;
== g_mapConfigs	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On each map load, the silEnT server will execute 2 configs if possible. The default.cfg and after that a map specifig config file [mapname].cfg. For example if you set g_mapConfigs to &#039;mapcfg&#039;, when the map fueldump starts, the server will try to exec &#039;mapcfg/fueldump.cfg&#039;.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;&amp;quot; to disable it.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;.&amp;quot; to look for the cfg file in the current directory (fs_homepath).&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.5.2, admins can add settings that are executed for specific player amounts. The commands are enclosed in [players low-high] ... [/players] blocks. The low is the lowest amount of players for those settings and high is the maximum amount of players for those settings. For example:&lt;br /&gt;
&lt;br /&gt;
[players 0-10]&amp;lt;br&amp;gt;&lt;br /&gt;
set team_maxPanzers 0&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will disable panzerfaust when player amount is less or equal to 10. The blocks can be placed anywhere in the map config files. If the block is closed with [/players], the following commands do not depend on the player amounts. The player blocks can not be nested. If two player blocks follow each other, the second definition opens a new one and the old one closes. For example:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 0-15]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:mlb_temple:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 16-*]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:adlernest:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will exclude map MLB Temple if the player amount is less or equal to 15 and exclude map Adlernest if the player amount is 16 or more. The player amount counting is controlled with g_playerCounting server cvar.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When in g_gametype 6 mode (Map Voting) and g_resetXPMapCount is set, an additional file named vote_X.cfg is also exec&#039;ed. X indicates the position of the next map in the campaign. For example, vote_2.cfg will exec&#039;ed such that when map 1 ends, any cvars in vote_2.cfg will affect map voting for map 2. Player blocks are not used with vote_X.cfg files.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_mapScriptDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to ETPro&#039;s b_mapscriptsdirectory.  Set it to the name of a directory in your fs_path that contains custom map scripts. For example you can copy the &#039;etpromapscripts&#039; directory from the ETPro distribution to your &#039;silent&#039; directory and add: set g_mapScriptDirectory &amp;quot;etpromapscripts&amp;quot; to your cfg. Setting g_mapScriptDirectory to &amp;amp;quot;&amp;amp;quot; disables any use of map .script files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
It is strongly recommended that you use the map scripts distributed with silEnT or ETPub since these updated scripts fix very important bugs in some of the original map scripts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_campaignFile  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
If you set this to the name of a file in your fs_path it will be interpreted as a .campaign script and all other .campaign scripts in your pk3 files will be ignored. This is useful for making custom campaigns since you don&#039;t need to offer a pk3 file containing a custom .campaign script for all clients to download. However, if the client has not downloaded this .campaign file in a pk3, they will not see information about the campaign. &lt;br /&gt;
&lt;br /&gt;
Such information includes: &lt;br /&gt;
&lt;br /&gt;
*will not display in the VOTE -&amp;amp;gt; MAP list &lt;br /&gt;
*map locations will not draw on the map of Europe. &lt;br /&gt;
*campaign description will not draw in the right panel &lt;br /&gt;
*total number of maps and current maps order in the campaign &lt;br /&gt;
*will not be shown in the intermission screens.&lt;br /&gt;
&lt;br /&gt;
Also, even though the built-in campaigns cmpgn_centraleurope and cmpgn_northafrica will not be valid, they will still appear in the client&#039;s VOTE -&amp;amp;gt; MAP menu. If a vote for one of them passes, nothing will happen. &lt;br /&gt;
&lt;br /&gt;
Setting this to &amp;quot;&amp;quot; disables it. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_playerCounting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls how the player amount is calculated for the mapconfigs. The player amount value is the highest number of simultaneously fully connected players during the map or warmup. The player counting can be disabled from the warmup period. If the player counting is enabled during the warmup, the players are counted right at the end of the warmup. This allows the teams to stabilize after intermission. Similarly the counting is triggered always with a 3 second delay from the change in the teams. Team changes include players joining the server and staying &lt;br /&gt;
in the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable filtering. This will add the 2 latest values together and divide them by 2.&lt;br /&gt;
&lt;br /&gt;
2 No player counting during warmup.&lt;br /&gt;
&lt;br /&gt;
4 Count spectators into players. Without this flag, only players in the playing teams are counted.&lt;br /&gt;
&lt;br /&gt;
8 Bots are not included into the player count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= Censoring =&lt;br /&gt;
&lt;br /&gt;
== g_censor==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the chat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the player names.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorPenalty==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This controls the censoring behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kill the player&lt;br /&gt;
&lt;br /&gt;
2 Kick players with names containing words in g_censorNames&lt;br /&gt;
&lt;br /&gt;
4 Kill, but don&#039;t gib&lt;br /&gt;
&lt;br /&gt;
8 Auto-mute for g_censorMuteTime [60] seconds&lt;br /&gt;
&lt;br /&gt;
16 Lose the amount of xp specified in g_censorXP&lt;br /&gt;
&lt;br /&gt;
32 Burn&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use both 1 and 4, it will gib (like shrub did).&lt;br /&gt;
&lt;br /&gt;
== g_censorNeil==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter. It&#039;ll catch some symbol and number replacements,&lt;br /&gt;
and spaces now. It also adds some common words and common words with &amp;quot;swears&amp;quot; in them&lt;br /&gt;
that should really be OK. For example, it will not censor &amp;quot;assassin&amp;quot; but it will&lt;br /&gt;
censor &amp;quot;ass&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorNeilNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter for player names.  See g_censorNeil description for&lt;br /&gt;
details.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorMuteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds to auto-mute as a censor penalty. Only works if bitflag 8 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_censorXP==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of XP to lose as a censor penalty. Only works if bitflag 16 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
= Voting =&lt;br /&gt;
&lt;br /&gt;
== g_voting	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Control&#039;s voting behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Votes will pass on the number of votes cast rather than total eligible voters.&lt;br /&gt;
&lt;br /&gt;
2 Votes that pass do not count against the vote_limit for the caller.&lt;br /&gt;
&lt;br /&gt;
4 &amp;quot; (called by NAME)&amp;quot; is appended to the vote description where NAME is the name of the player that called the vote.&lt;br /&gt;
&lt;br /&gt;
8 Show the number of YES and NO votes after a votes has passed or failed. This also shows if a vote is canceled or passed by an admin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== vote_limit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This value defines how many votes one player can invoke during one map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== vote_percent==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The required percentage of yes votes for the vote to pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== vote_allow_comp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for competition settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_gametype==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for gametype.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_kick==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for kicking a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for map to be played.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_mutespecs==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for starting the next map in the map rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_pub==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for public game settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_referee==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for making a player a referee.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams based on XP.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for swapping the teams. Allied players go to the axis team and axis players go to the allied team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_friendlyfire==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the map time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_warmupdamage==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling/enemies only warmup damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_antilag==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling antilag.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_balancedteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling balanced teams enforcing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_muting==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting/unmuting a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for surrendering the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the campaign.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the campaign to the next one in the campaign rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows making freely written polls using the vote system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams without restarting the map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_cointoss==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for doing cointoss.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_putspec==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for moving a player to the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_block_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the match allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams without restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for starting the next map in the map rotation allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for swapping the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for surrendering the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for played map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for changing the map time allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for polls allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for next campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_noVoteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds must pass between two votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_voteResultsMinLevel==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the minimum admin level for the players to see the results of the votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_votedMuteLength==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the length in seconds of the mute issued by a passed mute vote. You can use modifiers with this value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3h&lt;br /&gt;
&lt;br /&gt;
= Weapons, Classes and Skills =&lt;br /&gt;
&lt;br /&gt;
== g_poison	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Gives medics the ability to poison enemies by sticking with their medic&lt;br /&gt;
syringe.  Enemies will be damaged at g_poison/second when g_poison is&lt;br /&gt;
set to a value more than 0.  Setting to 0 will disable poison needles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_poisonFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the effects of g_poison.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Poisoned player&#039;s screen shakes.&lt;br /&gt;
&lt;br /&gt;
2 Other players see the poisoned player&#039;s head shaking.&lt;br /&gt;
&lt;br /&gt;
4 Poisoned player appears to bend over (hurl) every 2 seconds. (poisoned player does not see this happen.)&lt;br /&gt;
&lt;br /&gt;
8 Poisoned player cannot use +attack.  NOTE: because of client side prediction, the client may see the gun firing occasionally if they hold down +attack, but no shots are fired.&lt;br /&gt;
&lt;br /&gt;
16 Poisoned player is disoriented (view turned upside down).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
== g_medics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the medic, to nerf or otherwise change their behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Medics can&#039;t pick up their own health packs to cure themselves of poison needle effects.&lt;br /&gt;
&lt;br /&gt;
2 Medics can&#039;t pick up their own health packs at all.&lt;br /&gt;
&lt;br /&gt;
4 A level 4 medic will always be revived to full health (no matter what the level of the reviving medic is).&lt;br /&gt;
&lt;br /&gt;
8 Value is not in use.&lt;br /&gt;
&lt;br /&gt;
16 Medics do not spawn with akimbo pistols, regardless of their light weapons skill.&lt;br /&gt;
&lt;br /&gt;
32 Medics spawn with pistol only, and can&#039;t pick up SMG of either team. However, any class can steal a medics uniform, if the g_classChange is set to 1, and receive the medic benefits while retaining their current weapons, including akimbos and SMG.&lt;br /&gt;
&lt;br /&gt;
64 Medics can use syringes to heal living teammates as an alternative to the tk/revive cycle.&lt;br /&gt;
&lt;br /&gt;
128 Level 4 medics can inject other players with their adrenaline.  This can be done when holding the revive needle by pressing the alt-fire button, or with the /adrenother client command.&lt;br /&gt;
&lt;br /&gt;
256 Level 4 medics cannot adrenaline self.  If this flag is on, Medics will not receive adrenaline upon reaching level 4. (This won&#039;t affect flag 128)&lt;br /&gt;
&lt;br /&gt;
512 Adrenaline use takes only half of the chargebar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adrenDmgReduction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
The percentage damage reduction after injecting adrenaline. g_adrenDmgReduction is now independent percentage of the caused damage that is inflected when the adrenaline is on. 0 means no damage and 100 means full damage from the weapon. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_medicHealthRegen==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The rate at which medics regenerate health (in HP per second).  This rate is divided into two parts:  The first is from 1 to 110-125 HP (depending on the number of medics per team), and then above that.  The system default is 3/2 (3 HP per second, then 2 HP per second).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 3/2&lt;br /&gt;
&lt;br /&gt;
1 2/2&lt;br /&gt;
&lt;br /&gt;
2 2/1&lt;br /&gt;
&lt;br /&gt;
3 2/0&lt;br /&gt;
&lt;br /&gt;
4 1/1&lt;br /&gt;
&lt;br /&gt;
5 1/0&lt;br /&gt;
&lt;br /&gt;
6 0/0&lt;br /&gt;
&lt;br /&gt;
7 0/1&lt;br /&gt;
&lt;br /&gt;
8 0/2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_throwableKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable knife throwing. The amount of throwable knives is g_maxKnives - 1. Any non zero value will enable knife throwing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of knives a player can posses. Take note that if g_throvableKnives is enabled, the last knife cannot be thrown.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_knifeChargeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long it takes in milliseconds for the &amp;quot;knife&amp;quot; to charge to the maximum throw speed/force.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 800&lt;br /&gt;
&lt;br /&gt;
== g_constructibleXPSharing==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When multiple engineers help build a constructible, each gets his share of XP&lt;br /&gt;
once the constructible is build.  The share of gained XP is proportional to&lt;br /&gt;
how much the engineer built.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_asblock	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Airstrike blocking.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Make an announcement whenever an airstrike is blocked.&lt;br /&gt;
&lt;br /&gt;
2 A player may easily block an airstrike by crouching, standing, or proning over the enemy&#039;s canister to block the airstrike.&lt;br /&gt;
&lt;br /&gt;
4 Reserved.&lt;br /&gt;
&lt;br /&gt;
8 Lvl 3 FieldOPs and higher cannot have the airstrikes blocked by players.&lt;br /&gt;
&lt;br /&gt;
16 Disables teammates blocking airstrikes.&lt;br /&gt;
&lt;br /&gt;
32 Give 2 Battle Sense XP to player that blocks the air strike. No XP given for blocking teammates or your own air strike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_panzersSpeed	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Speed of the panzers. Normal panzer speed is 2500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2500&lt;br /&gt;
&lt;br /&gt;
== g_panzersGravity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzer trajectory will be affected by gravity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dyno==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dynamite Behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmaks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Sudden Death Dynamites enabled. If there is 30 seconds or less on the clock and dynamite is planted on an objective, the clock will continue to run past zero. The match will not end until the dynamite either explodes, or is disarmed. You are not allowed to plant additional dynamite during sudden death.&lt;br /&gt;
&lt;br /&gt;
2 Dynamite chaining enabled. Dynamite will cause other similar dynamites to explode when exploding (only if within blast radius). Dynamites not planted on an objective will blow any other dynamite not on an objective. Dynamite planted on an objective will only blow dynamite on the same objective.&lt;br /&gt;
&lt;br /&gt;
4 Adds a dynamite symbol with the location and the time remaining to all the players on the team of the player who plants the dynamite. This will only happen when dynamite is placed on an objective. The players in the other team will see the dynamite symbol too, but they won&#039;t see the time remaining.&lt;br /&gt;
&lt;br /&gt;
8 Dynamite cannot be disarmed by your team (inlcuding yourself), so only the other team can defuse it.&lt;br /&gt;
&lt;br /&gt;
16 Enable dynamite ID. You can see the owner of a dynamite when you point at it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKick	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Canister and grenade kicking.&lt;br /&gt;
&lt;br /&gt;
Allows players to kick smoke, and air strike canisters, along with grendaes. The integer adjust the amount of force put behind the kick. 75 is a good value, anything below 60 is about useless, and above about 125 is probably too much.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKickOwner	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kicked Canister Ownership.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Kicker does not take ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
1 Kicker takes ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_staminaRecharge	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiplies the rate at which stamina is rebuilt. Setting this value to zero will cause players to not regain any stamina once it is used except through the use of adrenalin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_mineid	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turns on identification of your teammates landmines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_medicSelfhealTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in milliseconds that a medic cannot heal himself after being hit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxPanzerSuicides	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, a player can kill himself g_maxPanzerSuicides times with a panzerfaust. The next panzerselfkill will result in a panzer shooting medpacks.&lt;br /&gt;
&lt;br /&gt;
The amount of suicides is reset every map.&lt;br /&gt;
&lt;br /&gt;
Set to -1 to disable, -2 to always enable (no normal panzers anymore)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_panzerPackDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the g_packDistance for the medpacks fired by the panzerfaust when g_maxPanzerSuicides is enabled.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to use default (etmain)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_weapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_weapons cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 0 field ops doesn&#039;t get binoculars (unless he has &amp;gt;= level 1 Battle Sense)&lt;br /&gt;
&lt;br /&gt;
2 Syringes work underwater&lt;br /&gt;
&lt;br /&gt;
4 Pliers work underwater&lt;br /&gt;
&lt;br /&gt;
8 Fully restore Field ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
16 Half restore FIeld ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
32 Ammo packs restore helmets&lt;br /&gt;
&lt;br /&gt;
64 Drop binoculars if player has them&lt;br /&gt;
&lt;br /&gt;
128 Soldiers with level 4 heavy weapons don&#039;t lose their pistols&lt;br /&gt;
&lt;br /&gt;
256 Garands can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
512 Balance the clip size between the allies and axis rifles. allied rifles get same clip sizes and max ammo as the k43.&lt;br /&gt;
&lt;br /&gt;
1024 Creates a hitbox for mortar shells.  This reduces (or eliminates in some cases) the ability to fire mortars through smaller windows and bunker slits.&lt;br /&gt;
&lt;br /&gt;
2048 Knives will always gib a body (not a player, use g_dmgKnife instead if you want that)&lt;br /&gt;
&lt;br /&gt;
4096 Extra ammo is included with dropped weapons.&lt;br /&gt;
&lt;br /&gt;
8192 &amp;quot;Ammo&amp;quot;/&amp;quot;No ammo&amp;quot; icon is shown for dropped weapons.&lt;br /&gt;
&lt;br /&gt;
16384 Enable fast shooting for Thompson, MP40, PPSh and Sten. 110 ms between shots.&lt;br /&gt;
&lt;br /&gt;
32768 Kill by the shot tripmine is counted for the shooter not the player that planted it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 16384 was added in version 0.6.2.&lt;br /&gt;
&lt;br /&gt;
== g_classWeapons==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar enables certain weapons per class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable PPSH for soldiers&lt;br /&gt;
&lt;br /&gt;
2 Enable PPSH for engineers&lt;br /&gt;
&lt;br /&gt;
4 Enable PPSH for fieldops&lt;br /&gt;
&lt;br /&gt;
8 Enable MP40 and Thompson to be available to both teams in limbo menu&lt;br /&gt;
&lt;br /&gt;
16 Enable MP40 for soldiers.&lt;br /&gt;
&lt;br /&gt;
32 Enable Thompson for soldiers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 8 was added in version 0.6.0.&lt;br /&gt;
&lt;br /&gt;
Flags 16 and 32 were added in version 0.6.2. Also the default value was changed from 15 to 63.&lt;br /&gt;
&lt;br /&gt;
== g_mg42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls optional machine gun behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Machine Guns can make headshots&lt;br /&gt;
&lt;br /&gt;
2 Machine Guns can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_coverts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the Covert Op class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 4 Coverts have more accurate scoped weapons.&lt;br /&gt;
&lt;br /&gt;
2 Disguised coverts can only be identified with the &amp;quot;crosshair name&amp;quot; by level 4 Field Ops.&lt;br /&gt;
&lt;br /&gt;
4 After detonating a satchel charge, the primary weapon will be selected instead of satchel again.&lt;br /&gt;
&lt;br /&gt;
8 Coverts in disguise take half the normal combat damage.&lt;br /&gt;
&lt;br /&gt;
16 Coverts in disguise take no splash damage.&lt;br /&gt;
&lt;br /&gt;
32 Coverts do not automatically lose their uniform if an enemy sees them firing a weapon.&lt;br /&gt;
&lt;br /&gt;
64 Coverts do not automatically lose their uniform if they fire a non-silent weapon.&lt;br /&gt;
&lt;br /&gt;
128 Coverts do not automatically lose their uniforms if they attach to an emplaced MG weapon.  Note that this flag has nothing to do with firing.&lt;br /&gt;
&lt;br /&gt;
256 Coverts are awarded xp for constructive use of smoke.&lt;br /&gt;
&lt;br /&gt;
512 Coverts will lose their uniform if an enemy sees him using ANY weapon (otherwise knife/satchel/smoke/binoc will never lose uni).&lt;br /&gt;
&lt;br /&gt;
1024 A disguised covert can still steal enemy uniforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_enableTMines	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disables/enables tripmines. Tripmines are available only for engineers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_enableDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Improvised Demolition weapon for soldier class.&lt;br /&gt;
Improvised Demolition weapon was introduced in 0.8.0 version of the silEnT mod.&lt;br /&gt;
As mentioned in the original WWII Tank-destruction manual, a big charge could be made of 6 stickgrenade heads around one complete grenade, fixed with wire or rope.&lt;br /&gt;
The central grenade would make the other 6 grenade detonate as well causing an explosion which could damage the light armoured vehicles.&lt;br /&gt;
&lt;br /&gt;
In silEnT mod this weapon is designed to suit exactly the purpose described above.&lt;br /&gt;
To gain the weapon player has to gain 3rd engineer level and 4th soldier level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_skills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optional skill related flags.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players with level 4 battle sense can spot landmines for teammates&lt;br /&gt;
&lt;br /&gt;
2 Players with level 4 engineering can keep the flak jacket for other classes&lt;br /&gt;
&lt;br /&gt;
4 Players with level 4 first aid can keep adrenaline for other classes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== skill_soldier==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in soldier ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_medic	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in medic ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_engineer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in engineer ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_fieldops	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in fieldop ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_covertops==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in covert op ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_battlesense	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in battle sense ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_lightweapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in light weapon ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_panzersVulnerable==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzers that are shot in mid-air will explode.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_maxMarkers ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many danger zones can be marked by the covert ops.&lt;br /&gt;
&lt;br /&gt;
Danger zones were introduced in 0.7.0 version of the silEnT mod. They can be marked by Covert Ops to indicate that some area can be considered dangerous. Such area is then visible on the command map as the red circle zone. Additionally, when the Command Post is built, players are notified by sound and visual signs about entering the danger zone. Players can customize the way they are notified via the HUD editor and the silEnT customize HUD menu.&lt;br /&gt;
&lt;br /&gt;
To mark the danger zone Covert Ops needs to look through his binoculars and press the left mouse button (attack button). The same way Field Ops calls for an airstrike.&lt;br /&gt;
&lt;br /&gt;
To disable the feature set the g_maxMarkers to 0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Friendly Fire =&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFire  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
To enable / disable friendly fire on server.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [0|1] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFireOpts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows greater control over friendly fire events.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
2 Allow &#039;grenade boosting&#039; when friendly fire is off&lt;br /&gt;
&lt;br /&gt;
4 Non-engineer players do not trigger landmines on their own team&lt;br /&gt;
&lt;br /&gt;
8 Players do not trigger trip mines on their own team&lt;br /&gt;
&lt;br /&gt;
16 Tripmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
32 Only engineer that planted the landmine can trigger/defuse it (concerns team landmines only). This flag requires that the flag 4 is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 32 was added in version 0.5.1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_reflectFriendlyFire ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to Shrub&#039;s g_friendlyfire 2 cvar. A multiplier value that determines how much friendly-fire damage, if any, is reflected back to the player that caused the damage. This setting is independent of g_friendlyfire, so damage can be set to reflect on both FF and non-FF servers.&lt;br /&gt;
&lt;br /&gt;
A value of 1.0 would reflect full damage.&lt;br /&gt;
&lt;br /&gt;
A value of 0.5 would reflect half damage.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to disable reflected friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_reflectFFWeapons ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects which category of weapon will reflect when g_reflectFriendlyFire is non-zero.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable reflected damage for Firearms (all types of guns)&lt;br /&gt;
&lt;br /&gt;
2 Enable reflected damage for Grenades and grenade launchers&lt;br /&gt;
&lt;br /&gt;
4 Enable reflected damage for Knives (includes thrown knives)&lt;br /&gt;
&lt;br /&gt;
8 Enable reflected damage for Panzers&lt;br /&gt;
&lt;br /&gt;
16 Enable reflected damage for Flamethrowers&lt;br /&gt;
&lt;br /&gt;
32 Enable reflected damage for Mortars&lt;br /&gt;
&lt;br /&gt;
64 Enable reflected damage for Satchel Charges&lt;br /&gt;
&lt;br /&gt;
128 Enable reflected damage for Artillery and Air Strikes&lt;br /&gt;
&lt;br /&gt;
256 Enable reflected damage for Dynamite and Construction Damage&lt;br /&gt;
&lt;br /&gt;
512 Enable reflected damage for Landmines&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setting this value to zero will override any multiplier set via g_reflectFriendlyFire, effectively disabling reflecting damage.&lt;br /&gt;
&lt;br /&gt;
== g_teamDamageRestriction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When greater than 0, anybody that has this percentage of hits inflicted on a teammate will automatically be kicked. A minimum of g_minhits hits total required before this is calculated. Client can see current stats for themselves by doing a /damage in console. Implemented to mimic shrub behavior as much as is possible, there are other ways to implement this feature, which may be implemented in addition to current manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_minHits ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum number of damaging hits required before calculating if player has reached g_teamDamageRestriction threshold. Flamethrower and landmine hits are adjusted similar to shrub. Medics get -2 hits for every revive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
= Hitboxes, Physics &amp;amp; Anti Lag Settings =&lt;br /&gt;
&lt;br /&gt;
== g_antilagDelay	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Manually delay the antilag of every player on the server. Might give very weird behaviour, so use at own risk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysics==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Creates a smoother movement when enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysicsfps	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Makes the fixedphysics act like all the clients have the same framerate, so that players with &amp;quot;magic&amp;quot; quake engine framerates don&#039;t have an unfair advantage. This CVAR must be between 60 and 333.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 125&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t actually change the framerates in clients, so the clients can keep their own framerates.&lt;br /&gt;
&lt;br /&gt;
== g_antiwarp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro-style antiwarp. This gives non-lagging players a much better game but for laggers it will be a bit more uncomfortable. This CVAR overrides both g_maxWarp AND g_skipCorrection in order to keep things consistent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_realBody ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If server admin sets this, the player hitboxes are adjusted smaller and harder to hit. Value 0 corresponds to the hitboxes used up to 0.5.0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Hitboxes used up to 0.5.0&lt;br /&gt;
&lt;br /&gt;
1 Use smaller hitboxes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see the differences in the hitboxes, use g_debughitboxes server cvar. Do note that this kind of testing should not be done with many players because it will cause huge amount of lag.&lt;br /&gt;
&lt;br /&gt;
== g_skipCorrection	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 to enable Neil Toronto&#039;s unlagged2 skip correction. This will smooth out the movement of players with high packet loss (to a degree). This is similar to etpro&#039;s antiwarp, but has some differences. Neil likes this version better, bani likes his better.&lt;br /&gt;
&lt;br /&gt;
This replaces g_smoothClients from etmain.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarp	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This allows you to control the amount of &amp;quot;warping&amp;quot; that players with high packet loss can do.  The [integer] is the number of server frames that you allow a player to miss before their next movement is put in check.&lt;br /&gt;
&lt;br /&gt;
A server frame is 50ms on a typical server (sv_fps set to 20).  This means that if you set g_maxWarp to 5 you won&#039;t allow players to warp from point A to point B if that distance takes an normal player 1/4&lt;br /&gt;
of a second to travel. Setting this to 1 is a good way to drive off just about everyone from your server.&lt;br /&gt;
&lt;br /&gt;
As far as I can tell, 1000ms is allowed by default in the game, so setting this to any value higher than 39 should have no effect if sv_fps is set to 10.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Fun Wars and Crazy Settings =&lt;br /&gt;
&lt;br /&gt;
== g_panzerwar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Panzerwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_sniperwar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Sniperwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_riflewar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Riflewar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set maximum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 540&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set max speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Watermark =&lt;br /&gt;
&lt;br /&gt;
== g_watermark==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set a watermark that will be displayed to all clients. The watermark must be put in a folder named &amp;quot;watermark&amp;quot; and then this whole folder needs to be zipped into a .pk3 file. The silEnT watermark is &amp;quot;logo_silent.tga&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeAfter	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermark is set, the watermark will fade out after [integer] number of seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermarkFadeAfter is set, the watermark will fade out in [integer] seconds. (So the fading process from 1.0 alpha to 0.0 alpha takes [integer] seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Hitsounds =&lt;br /&gt;
&lt;br /&gt;
== g_hitsounds	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server side hitsound options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable hitsounds&lt;br /&gt;
&lt;br /&gt;
2 Disable hitsounds when shooting wounded players&lt;br /&gt;
&lt;br /&gt;
4 Disable the headshot sound when shooting wounded player in the head. (default hitsound will be used in it&#039;s place)&lt;br /&gt;
&lt;br /&gt;
8 Enable warning sound from hitting team mates&lt;br /&gt;
&lt;br /&gt;
16 Disable hitsounds from poison damage&lt;br /&gt;
&lt;br /&gt;
32 Disable hitsounds from explosive weapons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A client can disable hitsounds with cg_hitSounds client cvar. Also an option to play only headshots is available.&lt;br /&gt;
&lt;br /&gt;
== g_defaultHitSounds ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects the default hit sounds on the server. Starting from silEnT 0.6.0, it is possible for the players to choose what kind of hit sounds are played. If the client cvar cg_hitSoundType is 0, the g_defaultHitSounds determines what type of hit sounds are used. Also, if the client cvar cg_hitSoundType is 0, the server may also add custom hit sound files in a custom pk3 file. These sounds are automatically loaded if available. However, if the client cvar cg_hitSoundType is 1, 2 or 3, the client will use strictly the hit sounds they have selected. Custom hit sounds are placed to the root folder &amp;quot;sounds/hitsounds&amp;quot; in the custom pk3. They must never overload any of the files in the subfolders, silent, etpro or etpub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 No selection, will default to silEnT in the client end.&lt;br /&gt;
&lt;br /&gt;
1 Defaults silEnT hitsounds.&lt;br /&gt;
&lt;br /&gt;
2 Defaults ETPro hitsounds.&lt;br /&gt;
&lt;br /&gt;
3 Defaults ETPub hitsounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
= Intermission =&lt;br /&gt;
&lt;br /&gt;
== g_intermissionTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the length of time the end of game screens displays before loading the next map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_intermissionReadyPercent	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The percent of connected players who need to hit the &amp;quot;READY&amp;quot; button to move on to the next map without waiting g_intermissionTime to run out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
= Miscellaneous =&lt;br /&gt;
&lt;br /&gt;
== g_proneDelay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set, there will be 1750 ms delay after every prone or getting up before the player can prone or get up again. Also, weapon spread will be maxed for 1 second after proning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_realPlayTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Show additional real play time of the payer (without spec time) in the debriefing screen at the end of the map.&lt;br /&gt;
For instance: 6/10 would mean that player played 6 minutes, was on the server for 10 minutes and 4 minutes was in spec.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== g_extraStatistics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional statistics over the end game awards.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player with most mine kills&lt;br /&gt;
&lt;br /&gt;
2 Player with most mine damage inflicted&lt;br /&gt;
&lt;br /&gt;
4 Player with most knife kills&lt;br /&gt;
&lt;br /&gt;
8 Player with most gibs&lt;br /&gt;
&lt;br /&gt;
16 Player with most artillery kills&lt;br /&gt;
&lt;br /&gt;
32 Player with most airstrike kills&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_packDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the distance at which health packs and ammo packs are thrown. Set this to 0 to make it just like etmain.  The settings should be similar to shrubet so set this to 2 for a subtle improvement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, medics will drop [integer] number of health packs when they are gibbed.  If set to -1, medics will drop the number of health packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropAmmo	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, fieldops will drop [integer] number of ammo packs when they are gibbed.  If set to -1, fieldops will drop the number of ammo packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tossDistance==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the velocity at which health or ammo packs are tossed from the dead body when g_dropHealth or g_dropAmmo are activated. This changes the distance that these packs travel from the corpse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_misc==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Miscellaneous options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Type: &#039;&#039;&#039;bitmask&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable double jump.&lt;br /&gt;
&lt;br /&gt;
2 Enable binoc master competition. Requires g_weapons 64 to be set.&lt;br /&gt;
&lt;br /&gt;
4 When a player is killed he can see the HP the killer has left.&lt;br /&gt;
&lt;br /&gt;
8 Disable self damage.&lt;br /&gt;
&lt;br /&gt;
16 Players can not jump if stamina is too low.&lt;br /&gt;
&lt;br /&gt;
32 Enable Jaymod style doublejump.&lt;br /&gt;
&lt;br /&gt;
64 Disable Falling Damage.&lt;br /&gt;
&lt;br /&gt;
128 Announce revives.&lt;br /&gt;
&lt;br /&gt;
256 Setting this flag disables the &amp;quot;First Blood&amp;quot; announcement.&lt;br /&gt;
&lt;br /&gt;
512 Full body predict. This makes it harder to get inside for example walls and stones. Same as ETPub g_misc 32 + 256. Do note that this can cause problems when proning through windows and similar narrow passages&lt;br /&gt;
&lt;br /&gt;
1024 Enable the enemy team objective carry indicator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
* Flag 1024 was added in version 0.8.2.&lt;br /&gt;
&lt;br /&gt;
== g_moverScale	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiply the speed of movers (e.g. tanks) by float.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_slashKill==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the behavior of the /kill command. See also g_fear and g_maxSelfkills.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player spawns with half charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
2 Player spawns with 0 charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
4 Restores the charge bar to the same state it was in at the moment the player issued /kill (regardless of how long they were in limbo)&lt;br /&gt;
&lt;br /&gt;
8 Disable /kill when player is frozen&lt;br /&gt;
&lt;br /&gt;
16 Disable /kill when player is poisoned&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxSelfkills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of times a player can use /kill per map. Setting this to -1 will result in normal behaviour (infinite selfkills). Setting this to 0 will disable /kill.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_ammoCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between ammo cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60000&lt;br /&gt;
&lt;br /&gt;
== g_healthCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between health cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10000&lt;br /&gt;
&lt;br /&gt;
== g_spectator==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls spectator behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 When in freelook mode, you can &#039;fire&#039; at a player to follow. If you miss a player, nothing happens.&lt;br /&gt;
&lt;br /&gt;
2 When in freelook mode with the 1 flag set, if you shoot and miss you start following the next available player.&lt;br /&gt;
&lt;br /&gt;
4 When the player you&#039;re following goes into limbo, don&#039;t move to the next available player.&lt;br /&gt;
&lt;br /&gt;
8 When the player you&#039;re following goes into limbo, go to freelook instead of following the next available player. (4 has precedence)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_truePing	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to see how much their local game is behind the top time (the time of the latest server frame). Pings will show around 50 ms better than if the ping would show network latency, but it&#039;s more accurate. Remember that the server is sending a snapshot to players in every 50 ms. This makes the players to inherenty play in the past from the server point of view.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropObj	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets the number of times a player can drop/toss the objective (e.g. parts on radar) per life.&lt;br /&gt;
&lt;br /&gt;
The parts are dropped by pressing the +activate key (usually bound to F) when there&#039;s nothing else around to be activated.&lt;br /&gt;
&lt;br /&gt;
Before enabling this recall how spammy the voiceovers can be. Then picture a player tossing the parts to himself over and over again. For this reason you probably don&#039;t want to set this very high.&lt;br /&gt;
&lt;br /&gt;
Players must switch to knife in order to drop the objective. If they are not holding knife and hit +activate they will see a message that notifies them that they must switch to knife.  This change was made to prevent accidental dropping of the objective when trying to push, drag, pick up, or activate something else.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_doubleJumpHeight	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adjusts the height of the second jump in a double jump.  This value is a multiplier to the default jump velocity. The greater g_doubleJumpHeight is, the greater the height of the second jump.  This setting has no effect if double jump is disabled in g_misc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.4&lt;br /&gt;
&lt;br /&gt;
== g_serverInfo==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use this cvar to change the behaviour of the &#039;serverinfo&#039; string.  This string is printed in response to the &#039;getstatus&#039; primative command used by game browsers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Display player team information using the &#039;P&#039; cvar in the server info string. (etpro and etmain 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
2 Display player team information using the &#039;Players_Axis&#039; and &#039;Players_Allies&#039; cvars in the server info string. (etmain &amp;lt; 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
4 Display the &#039;campaign_maps&#039; cvar in the server info string. This contains a comma delimited list off all the maps in the current campaign. Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
8 Displays the &#039;C&#039; CVAR in the server info string.  This is a string containing the current map number in the campaign, and total maps in current campaign, in the form of &amp;amp;quot;xx,yy&amp;amp;quot;.  Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
16 The class charge times will not be present in the server info string unless this flag is set. They are removed by default in order to make room in the serverInfo string for more useful information. These cvars are g_medicChargeTime, g_engineerChargeTime, g_LTChargeTime, g_covertopChargeTime, g_soldierChargeTime.&lt;br /&gt;
&lt;br /&gt;
32 Send KR (KillRating) instead of XP in SERVERINFO string.  This is overriden by flag 64.&lt;br /&gt;
&lt;br /&gt;
64 Send PR (PlayerRating) instead of XP/KR in SERVERINFO string. Overrides flag 32.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar MUST be set prior to loading the first map. You will not be able to change this cvar once the game code is loaded. The serverInfo string has a fixed length of 1024 characters.  This space is shared with any cvar you create on your server with the &#039;sets&#039; command.  If you use up too much space with &#039;sets&#039;, your server will fail to start.  It will print the message &amp;quot;Info string length exceeded&amp;quot; if you don&#039;t have enough space left in your serverinfo string to handle the g_serverInfo flags you&#039;ve selected. To fix this, either remove some sets cvars from your config, or use different g_serverInfo flags.&lt;br /&gt;
&lt;br /&gt;
== g_fear	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If a player uses the /kill command within g_fear milliseconds after taking damage from an enemy, the attacker that last damaged that player will recieve full credit for the kill and the mode of death will be recorded as MOD_FEAR.  Other restrictions are that the attacker must be on the opposite team and the attacker must still be alive.&lt;br /&gt;
&lt;br /&gt;
G_fear applies also to players that try to switch teams within g_fear milliseconds. The player will remain in the same team and the usual g_fear behavior applies.&lt;br /&gt;
&lt;br /&gt;
In-game statistics will reflect that the death was caused by the weapon that did the last recorded damage to the player.&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable this behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2000&lt;br /&gt;
&lt;br /&gt;
== g_maxNameChanges	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Limit the number of namechanges per player per map by setting this cvar. This is especially needed if you have cheaters that autochange their name every second. Set to -1 to disable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_disableComplaints	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable teamkill complaints for some weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines&lt;br /&gt;
&lt;br /&gt;
2 Artillery and airstrikes&lt;br /&gt;
&lt;br /&gt;
4 Mortar&lt;br /&gt;
&lt;br /&gt;
8 Dynamite&lt;br /&gt;
&lt;br /&gt;
16 Tripmines&lt;br /&gt;
&lt;br /&gt;
32 Completely&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_countryFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets whether the players will see the GeoIP country flags in the crosshair when aiming at someone and in the scoreboard. Players can enable/disable it with cg_countryFlags (default 1).&lt;br /&gt;
&lt;br /&gt;
You will need the GeoIP.dat file in your server&#039;s silent folder. You should read and accept the license of the GeoIP.dat database!&lt;br /&gt;
&lt;br /&gt;
Read the database license at http://geolite.maxmind.com/download/geoip/database/LICENSE.txt&lt;br /&gt;
Download the latest database at http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_noSkillUpgrades==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, disables player skill upgrades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
0 No skill locking.&lt;br /&gt;
&lt;br /&gt;
1 Lock skills.&lt;br /&gt;
&lt;br /&gt;
2 Lock skills and hide all HUD elemnts that would show the skill levels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.6.0, this cvar will lock the skills to the always enabled levels. See the skill_x cvars. Also, it is possible to hide the skill levels from the player HUDs setting this cvar to value 2.&lt;br /&gt;
&lt;br /&gt;
== g_flushItems	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Evens the dropped items out with the surface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxConnsPerIP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of connections allowed from one particular IP. This prevents the fake clients Denial of Service attack.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== shoutcastPassword	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables shoutcaster status on the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;none&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_headshot==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional head shot options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Headshots only&lt;br /&gt;
&lt;br /&gt;
2 Instagib damage (controlled by g_instagibDamage)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_instagibDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Damage used for instagib mode (e.g. set this to 160 so that a player can still be revived after being shot.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_ettvFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional ETTV options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Prevent ettv slaves from being callvote kicked&lt;br /&gt;
&lt;br /&gt;
2 Grant shoutcaster status to ettv slaves&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_mode==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls some additional modes for fun or for testing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players will spawn instantly&lt;br /&gt;
&lt;br /&gt;
2 Each class receives adrenaline&lt;br /&gt;
&lt;br /&gt;
4 No damage on players&lt;br /&gt;
&lt;br /&gt;
8 Players can pick up any weapon on the ground (Removing this bitflag will force all players to respawn!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_playDead	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to use the &#039;playdead&#039; command and their character will act like it is dead until the playdead command is used again (or they really die).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_shove	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to push other players with the &amp;quot;use&amp;quot; key.  The integer adjusts the amount of force players shove with. 80 seems fair.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 80&lt;br /&gt;
&lt;br /&gt;
== g_shoveNoZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 if you want to disable shove in the up/down direction (a.k.a &amp;quot;boosting&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dragCorpse	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players do drag wounded players with the use key when moving backward slowly.  Works best when crouching or prone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_classChange	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to take the class of a gibbed teammate temporarily similarly to how a covert steals an uniform.  Class changing does not latch, so the original class the player had will be restored on respawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_forceLimboHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0 it takes about 3 shots to gib a wounded player, if set to 1 it takes about 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_goomba==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, players can damage each other by landing on each other. The integer is multiplier that determines how much damage should be done to the player that was fallen on.  Also the impact for the falling player will be broken so that they only recieve 20% of the damage they would have normally.  It is also possible to do small amounts of damage (5HP) to other players by hopping up and down on them.&lt;br /&gt;
&lt;br /&gt;
Falling damage can be either 500, 50, 25, 15, or 10 depending on the length of the fall.  So if you set g_goomba to 5 and land on a player from a fall that would have damaged you 10HP, you will inflict 50HP of damage on the player you land on, and you will only recieve 2HP of damage.&lt;br /&gt;
&lt;br /&gt;
See also g_goombaFlags&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_goombaFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the way g_goomba is handled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Cannot do goomba damage to teammates.&lt;br /&gt;
&lt;br /&gt;
2 Short falls (hopping) on another player does no damage.&lt;br /&gt;
&lt;br /&gt;
4 Short falls (hopping) does no damage to teammates. (not necessary if 1 or 2 flag is set)&lt;br /&gt;
&lt;br /&gt;
8 Falling player recieves no damage when landing on any other player. (default is to recieve 20% of the damage the fall would have given if not landing on a player).&lt;br /&gt;
&lt;br /&gt;
16 Insta-gib goomba. All goomba damage will be 500HP regardless of fall distance. The exception is hopping on anther player which still does 5HP of damage.&lt;br /&gt;
&lt;br /&gt;
32 Falling corpses won&#039;t cause damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 31 to have g_goomba work like shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvul	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds players will be invincible after they spawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvulFair	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes the spawn protection when the player fires his first shot (note : the spawn protection will still be removed after the g_spawnInvul time)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_spinCorpse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allow players to use +left and +right binds to spin their corpse when dead or playing dead.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_teamChangeKills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0, players are allowed one non-killing team change per respawn cycle.  If a player changes teams, he will be instantly spawned in the other teams default spawn point.  Players will die (but not lose a life) if they change teams a second time in one spawn cycle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxIgnoresPerMap ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The maximum number of times one player can ignore another player during one map. This can prevent spamming other players with the ignore command. The value can be between 0 and 255. Any value higher than 255 will always allow ignoring. Any value below 1 will disable ignoring completely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Logs =&lt;br /&gt;
&lt;br /&gt;
== g_logOptions==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_logOptions cvar, but so far the only implemented flags are:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Server outputs obituaries to chat.&lt;br /&gt;
&lt;br /&gt;
2 Adrenaline countdown displayed.&lt;br /&gt;
&lt;br /&gt;
4 Disable display of tap-out confirmation box.&lt;br /&gt;
&lt;br /&gt;
8 Display connection attempts by banned players.&lt;br /&gt;
&lt;br /&gt;
16 Display gib reports (&amp;quot;&amp;amp;lt;victim&amp;amp;gt; was gibbed by &amp;amp;lt;attacker&amp;amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
32 Omit &amp;quot;item&amp;quot; lines from log file.&lt;br /&gt;
&lt;br /&gt;
64 Report gibs.&lt;br /&gt;
&lt;br /&gt;
128 GUID&#039;s are logged in the game log. Note, if this option is enabled the VSP log parser will not work.&lt;br /&gt;
&lt;br /&gt;
256 Log all private messages (/m commands).  This setting won&#039;t have any effect unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
512 Logs the real time into logs, instead of the normal uptime of the server.&lt;br /&gt;
&lt;br /&gt;
1024 This flag allows logging every player drop. It can be usefull for inspecting the server operation, but it will also cause lot of needless log writes.&lt;br /&gt;
&lt;br /&gt;
2048 Print TK death message like a normal kill message, giving killing weapon, except it is preceeded by a red TEAMKILL: identifier. Only works if g_obituary is set to 3.&lt;br /&gt;
&lt;br /&gt;
4096 Log client cvar values.&lt;br /&gt;
&lt;br /&gt;
8192 Log cvar values only when found from the client. Note that flag 4096 must also be set if using this flag.&lt;br /&gt;
&lt;br /&gt;
16384 Admin log will use new format that is more readable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.3 - Flags 4096 and 8192 were added.&lt;br /&gt;
&lt;br /&gt;
0.8.0 - Flag 16384. When this flag is set, the admin log will use new format.&lt;br /&gt;
&lt;br /&gt;
== g_logAdmin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file that all shrubbot commands will be logged to. For example, g_logAdmin &amp;quot;admin.log&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_cheatLog ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file, where all cheat related prints are logged. If this is not specified, server log is used.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Omni-Bots =&lt;br /&gt;
&lt;br /&gt;
== omnibot_enable ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, Omni-bot functionality is enabled. You still need to have Omni-bots installed correctly in order for the bots to work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== omnibot_path	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The path where the Omni-bot dll/so file is installed. If you installed Omni-bot to the default locations, then you do not need to modify this cvar. Leaving this cvar blank will search for the Omni-bot dll/so file from the default locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_bot_maxXP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Any bots present will have their XP reset after this much XP is reached. If g_maxXP is also set to a value greater than -1, then the bot XP will be reset whenever the lower limit of the two is hit. Set this to -1 to disable this feature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== omnibot_flags==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes bot management/behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Disables XPSave for bots&lt;br /&gt;
&lt;br /&gt;
2 Bots cannot mount tanks&lt;br /&gt;
&lt;br /&gt;
4 Bots cannot mount emplaced guns&lt;br /&gt;
&lt;br /&gt;
8 Don&#039;t track bot count in omnibot_playing cvar&lt;br /&gt;
&lt;br /&gt;
16 Bots will target ungibbed enemies&lt;br /&gt;
&lt;br /&gt;
32 Bots will trigger team and spotted mines&lt;br /&gt;
&lt;br /&gt;
64 Bots can use g_shove&lt;br /&gt;
&lt;br /&gt;
65536 Bots are granted shrubbot command immunity (the same as shrubbot flag !)&lt;br /&gt;
&lt;br /&gt;
131072 Bots cannot be !kicked or !banned&lt;br /&gt;
&lt;br /&gt;
262144 Disable shrubbot greeting for bots&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Lua =&lt;br /&gt;
&lt;br /&gt;
== lua_modules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of files to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. The paths are relative to the mod&#039;s directory, and can optionally be placed inside pk3 archieves. We are aiming for compatibility with ETPro&#039;s Lua Mod API found at http://wolfwiki.anime.net/index.php/Lua_Mod_API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== lua_allowedModules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of sha1 signatures for the lua modules to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. Only lua modules with the matching sha1 signature listed in this cvar will be allowed to load by the Lua API engine (ACL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Weapon Damage and Radius Settings =&lt;br /&gt;
&lt;br /&gt;
== g_dmg	==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables experimental advanced combat options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Use traditional ET settings for combat.&lt;br /&gt;
&lt;br /&gt;
1 Use Advanced Hit Locations: Differentiates between Head, Body, Arm, and Leg shot when computing damage.&lt;br /&gt;
&lt;br /&gt;
2 Applies a more realistic damage vs. range equation for short-ranged weapons. This will reduce the effectiveness of these weapons at longer ranges.&lt;br /&gt;
&lt;br /&gt;
4 Gives a damage bonus to short-range weapons when used in close combat situations.  This will increase the effectiveness of these weapons at closer ranges.&lt;br /&gt;
&lt;br /&gt;
8 Use bullet fall-off approximations when computing shot trajectory.&lt;br /&gt;
&lt;br /&gt;
16 Improve accuracy of non-scoped single-shot rifles.&lt;br /&gt;
&lt;br /&gt;
32 Use alternate bullet-spread characteristics for automatic or rapid-fire weapons.&lt;br /&gt;
&lt;br /&gt;
64 Damage from players who are spectators or have disconnected is ignored, and XP is not awarded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotMin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This represents the minimum damage done by a headshot regardless of the weapon used to make the shot.&lt;br /&gt;
&lt;br /&gt;
Headshots that would do damage below this value will be adjusted upward to equal g_dmgHeadshotMin. Headshots from a weapon with damage at or above this value will do a multiple of their damage, as specified by g_dmgHeadShotRatio. (The actual damage may undergo additional modification due to range and other conditions)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotRatio	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This specifies the multiplier used for headshots that do damage ABOVE g_dmgHeadShotMin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_dmgKnife	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the knife.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_dmgSten	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the sten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 14&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 15&lt;br /&gt;
&lt;br /&gt;
== g_dmgPistol==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the pistol weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgSMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the SMG weapons (Thompson and MP-40).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the MG42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an emplaced MG.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42Scope==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42 when scoped.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
== g_dmgInfRifle	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by unscoped rifles (K43 and Garand).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 34&lt;br /&gt;
&lt;br /&gt;
== g_dmgSniper	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a scoped Garand or K43.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgFlamer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the a flamethrower. Also controls the per-tick damage done to a player who has been set on fire by a flamethrower and is still burning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenade==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenadeRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncher	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncherRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blas radius of an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgTMine==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a tripmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 260&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmine	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmineRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchel	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchelRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzerRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortarRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamite	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamiteRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAir	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAirRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArty	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour (can do damage, but to a very small radius, making damage unlikely)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArtyRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour. The spotting round can do damage, but to a very small radius making damage unlikely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1100&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolitionRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_knifeThrowDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage a thrown knife will cause to enemy.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgPPSh==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage done by a PPSh.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 19&lt;br /&gt;
&lt;br /&gt;
= Debugging =&lt;br /&gt;
&lt;br /&gt;
== g_debugBullets ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, server will produce debug information of fired bullets. Enabling g_debugBullets require sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If 1 is set as if the cvar was a bitmask, blue lines for the fired shots is enabled. With any positive value, server will print impact area on the hit player to the center of the screen. Possibilities are &amp;quot;Head Shot&amp;quot;, &amp;quot;Body Shot&amp;quot;, &amp;quot;Leg Shot&amp;quot; and &amp;quot;Arm Shot&amp;quot;. If the value is set to 2 or more, the bounding box of the hit player is drawn. If the value is set to 3 or more, the hit player head box is drawn. If the value is set to -2 or smaller, boxes are drawn to impacted surfaces.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default: 0&lt;br /&gt;
&lt;br /&gt;
== g_debugDamage ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, damage inflicted to players is logged into the server log. Enabling this cvar requiers sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_debugHitboxes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is enabled, hit boxes around the players are drawn. This cvar does not require sv_cheats. However, do note that if this is enabled, the server will produce constant flow of extra entities, which will make playing impossible on a live server. Test this with only couple players to prevent everyone from lagging out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to any positive value, boxes are drawn. If the value is set to 8 or more, it will draw only the boxes that are used for the initial trace. Each bullet causes two traces to happen, where the second trace confirms the impact on the more refined area of the player body, such as head or legs.&lt;br /&gt;
&lt;br /&gt;
= Deprecated Cvars =&lt;br /&gt;
&lt;br /&gt;
== g_realHead==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro headboxes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Regular headbox positions.&lt;br /&gt;
&lt;br /&gt;
1 Server tracks the animations so the headbox will match the playermodels exactly. This is the recommended value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This code was originally from ETPro (b_realhead).  It was contributed by zinx and added to ETPub by forty. silEnT is based on the ETPub source and this code has not been altered from the ETPub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.1 - The option was removed. The ETPro headboxes are always used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_spoofOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Options for PunkBuster GUID and IP spoof detections and behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kick for GUIDspoofing.&lt;br /&gt;
&lt;br /&gt;
2 Kick for IPspoofing.&lt;br /&gt;
&lt;br /&gt;
4 Display a global warning when someone is GUIDspoofing. (When flag 1 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
8 Display a global warning when someone is IPspoofing. (When flag 2 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
16 Don&#039;t use the stored GUID. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
32 Don&#039;t use the stored IP. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do NOT change this CVAR unless you encounter problems!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar was removed in version 0.5.1 and spoofing is checked unconditionally in 0.5.1 and later versions.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1213</id>
		<title>Silent Mod Server Cvar</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Mod_Server_Cvar&amp;diff=1213"/>
		<updated>2015-03-09T11:04:43Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* g_adminProtection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= silEnT Mod Anti Cheat =&lt;br /&gt;
&lt;br /&gt;
== g_silentac ==&lt;br /&gt;
&lt;br /&gt;
;Description&lt;br /&gt;
Enables actions based on silEnT AntiCheat. The g_cheatLog will always have one line telling if a player is found with cheats. The cheat detection&#039;s are based mostly on heuristically detecting hacking techniques. If you suspect a false positive, please supply the silEnT team a method to reproduce it. Do note that this feature has been in extensive testing well before the 0.8.0 version. When silEnT AC is set to autoban, sv_sac cvar is set to 1. This cvar can be used by external server trackers to enable/disable server anti cheat status on their lists. We recommend setting the value to 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Show player AntiCheat status in the !finger output.&lt;br /&gt;
&lt;br /&gt;
2 Automatically ban players for 365 days with cheats.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
== g_clientBinaries ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
silEnT mod can be configured to not allow players with unknown client binaries to play on the server. This cvar controls the server behaviour when the client binary is not one of the recognized ones.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;List of recognized binaries:&#039;&#039;&#039;&lt;br /&gt;
*Official client binaries&lt;br /&gt;
*Binary edited executables from etmaster.net&lt;br /&gt;
*Equivalent to etmaster.net binary edited executables from BigBear&lt;br /&gt;
*ETPatchSelector binaries&lt;br /&gt;
*Official ET Legacy b4&lt;br /&gt;
*Official ET Legacy b5&lt;br /&gt;
*Many ET Legacy binaries including RC1 versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow players with unknown client executables.&amp;lt;br&amp;gt;&lt;br /&gt;
2	Log unknown executables to the g_cheatLog. Note, if the server does not allow unknown client binaries the log message will be different for message.&amp;lt;br&amp;gt;&lt;br /&gt;
4	Report unknown executables to admin chat. Note, if the server does not allow unknown client binaries the players will not be reported to admin chat.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - If the flag 4 is set, known cheat binaries are clearly reported to the admin chat.&lt;br /&gt;
&lt;br /&gt;
== g_identOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from version 0.3.0, the silEnT mod can be configured to enforce bans using hardware based identification. This is not any fool proof system but it is made to be an addition to the already existing ban methods. The hardware identification cannot be seen in human readable form by admins while on the server. The data that is sent to the server can be seen in the client by writing /cg_ident to the console. The result is a hexadecimal string that changes its value between maps. The format and data used to create the client identification may change between different versions of the silEnT mod. The server can be configured with the g_identOptions server cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Kick clients that are spoofing the client identification to enter the server&lt;br /&gt;
&lt;br /&gt;
2	Kick clients that are not sending the identification to the server&lt;br /&gt;
&lt;br /&gt;
4	Enforce bans using the identification&lt;br /&gt;
&lt;br /&gt;
8	Report all actions taken based on client identification to the adminchat&lt;br /&gt;
&lt;br /&gt;
16	If a player is caught of circumventing a ban, a new ban is created with for it. The ban reason will have additional (Automated copy of a ban for xxxxxxxx) where xxxxxxxx is replaced with the 8 character PB GUID of the old ban.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Announcements and Messages =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_privateMessages ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If set to 1, players can send private messages to one another with the /m playername/slot command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disable Private Messages&lt;br /&gt;
&lt;br /&gt;
1 Enable Private messages&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Clients can reject private message from other individual clients with the /ignore client command. Also, private messages can be disabled from individuals/levels using shrubbot flag &#039;/&#039;.&lt;br /&gt;
&lt;br /&gt;
== g_spreeOptions  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Options to control the display of killingsprees. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: bitmask &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Enable killingsprees &lt;br /&gt;
&lt;br /&gt;
2 Enable killingspree ends &lt;br /&gt;
&lt;br /&gt;
4 Enable multikills &lt;br /&gt;
&lt;br /&gt;
8 When set, a top 3 current killing sprees message will be printed every minute, similar to binoc masters, and a map&#039;s longest killing spree will be printed every two minutes &lt;br /&gt;
&lt;br /&gt;
16 At the beginning of the intermission the highest spree and the 3 highest sprees which are still active will be shown &lt;br /&gt;
&lt;br /&gt;
32 /kill will end a spree &lt;br /&gt;
&lt;br /&gt;
64 Teamswitching will end a spree &lt;br /&gt;
&lt;br /&gt;
128 Multikill messages will be delayed g_multikillTime milliseconds, to prevent the doublekill -&amp;amp;gt; multikill -&amp;amp;gt; megakill -&amp;amp;gt; etc. flooding &lt;br /&gt;
&lt;br /&gt;
256 Killing bots doesn&#039;t count for multikills or killingsprees (Note: they DO count for ending kill/deathsprees) &lt;br /&gt;
&lt;br /&gt;
512 Display the map and overall spree record when entering intmission &lt;br /&gt;
&lt;br /&gt;
1024 Summary: don&#039;t enable this flag if you don&#039;t have enabled g_spreeOptions flag 512 OR g_XPSave flag 16 or Shrubbot flag t &lt;br /&gt;
&lt;br /&gt;
Spree records are automatically saved into XPSave file when a map ends. By enabling this flag, you also store the spreerecord at the points where g_XPSave flag 16 would store XP. When you don&#039;t have set XPSave flag 16 and g_spreeOptions flag 512 and not allow users to use&amp;amp;nbsp;!spreerecord you should NOT set this flag as it takes some extra resources. When XPSave flag 16 is set this doesn&#039;t matter (it actually takes much less resources then). When only g_spreeOptions flag 512 or shrubbot flag t is set it won&#039;t do much harm anyway (your server won&#039;t explode) &lt;br /&gt;
&lt;br /&gt;
2048 Enable revivesprees&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_multikillTime  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The time (in milliseconds) in which two kills should be made in order to count them as multikills.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_obituary  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This cvar controls will the server send obituary events to the clients. If this is set to 0, no obituary events will be sent. If set to any nonzero value, obituary events will be sent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dropMsg  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Message to add to the drop screen when a client is kicked or banned.&amp;amp;nbsp;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;&amp;amp;nbsp;String&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot; &amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; g_dropMsg&amp;amp;nbsp;&amp;quot;Please protest ban on forums&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_landmineNotifyType  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Decide which landmine reveal notifications server should send.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Server can send two types of landmines reveal notification. Standard one, generated (sent) for each landmine revealed and summary one,&amp;amp;nbsp;which is sent after player spotting landmines stops using binoculars.&amp;amp;nbsp;It&#039;s generated after each binculars zoom. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
0 Only standard notfications (for each landmine revealed).&lt;br /&gt;
&lt;br /&gt;
1 Only single summary notifications for one binocs zoom. New type of notification. For example: during one binocs zoom, 3 mines were revealed, but only 1 summary notification is sent. It contains information: 3 mines spotted by &amp;quot;player name&amp;quot; and last one was in location &amp;quot;some location&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t send any landmine notifications.&lt;br /&gt;
&lt;br /&gt;
3 Send all notifications. For example: for 3 spotted landmines send 4 notifications (3 for each landmine + 1 summary notification). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_banners  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should be set to the name of your banners.cfg file if you want to enable banners. See [[Silent Banners]] for more information about this file.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&amp;lt;br&amp;gt;set g_banners &amp;quot;banners.cfg&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== g_recognition ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables additional recognition notifications for players doing objective, e.g. for planting dynamite, disarming it, destroying objective.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Additional recognition notifications disabled.&lt;br /&gt;
&lt;br /&gt;
1 Additional recognition notifications enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= User Database, Shrubbot and Bans =&lt;br /&gt;
&lt;br /&gt;
== g_dbDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set the server stores various information about server statistics, map information, sprees, users, bans and XP save. To use any of the functionalities, this must be set. The cvar defines a directory and only a directory that is relative to fs_game. All the used filenames are predefined and cannot be changed. For security reasons, this cvar must be set during server initialisation. (i.e. It may not be changed when the server is running.) In this directory there can be 5 files, depending of other server settings.&lt;br /&gt;
&lt;br /&gt;
* userdb.db is a binary format file that contain all the required information about shrubbot users and also all saved XP if the server is set to save XP&lt;br /&gt;
* userxdb.db is a binary format file that contain related to players playing on the server&lt;br /&gt;
* serverstat.cfg is a human readable file that contain server statistics and map sprees if the server is set to store them&lt;br /&gt;
* shrubbot.cfg is a human readable file that contain level configurations, custom commands and bans&lt;br /&gt;
* mapvoteinfo.cfg This file contains information relating g_gametype 6, which is map voting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All the required files will be created automatically to the folder when needed if there aren&#039;t any suitable files already present.&lt;br /&gt;
&lt;br /&gt;
You can freely edit the human readable files by hand as long as their correct format remains and the server is notified of the changes using appropriate shrubbot commands. With the exceptions of serverstat.cfg and mapvoteinfo.cfg that will be overwritten by the server. If you want to hand edit the values of these files, the server be shutdown.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;database&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar only from the config file or from the command line. It cannot be edited using RCON. If you want to store all the files in the same root directory where all the pk3 files and binaries are, you can set this cvar to value &amp;quot;.&amp;quot;. It will then use the fs_game directory.&lt;br /&gt;
&lt;br /&gt;
== g_dbUserMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that player is saved to the database since the player has last visited on the server.&lt;br /&gt;
&lt;br /&gt;
The database cleaning is done during intermission so this should not cause any performance problems when actions are taken. However, by setting this value to 0 or not setting the value at all, will disable the feature.&lt;br /&gt;
For servers with high database sizes, this can improve performance since users that are not needed will be removed automatically.&lt;br /&gt;
&lt;br /&gt;
You can use a modifiers with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The server reads the value of this cvar only from the config file executed before the mod launches the first time or from the command line. It cannot be edited using RCON.&lt;br /&gt;
&lt;br /&gt;
== g_dbMaxAliases ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The silEnT mod can store player aliases in an additional database. To enable this database, set this value to higher then 0. If this value is a positive integer, it defines how many aliases are stored in the database for one player. If the player has more aliases then this value, the oldest aliases are deleted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minumum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar can be set only at startup, before the mod launches. It cannot be changed on a live server using rcon.&lt;br /&gt;
&lt;br /&gt;
== g_minCommandWaitTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Time you have to wait between using 2 shrubbot commands in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tyranny ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls the use of administrator commands that could be used by admins to cheat or abuse players. If it is set to 0 you will not be able to use commands on your server such as !gib, !slap, !burn, etc.&lt;br /&gt;
&lt;br /&gt;
Also, you will not be able to use g_logOptions flag 256 (log private messages) unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
g_tyranny must also be enabled in order to specify a client in using the &#039;playsound&#039; server command.&lt;br /&gt;
&lt;br /&gt;
&#039;g_tyranny&#039; and its value appear in the serverInfo string to serve as a warning for perspective players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you enable this, you MUST do so immediately when the server starts (before the first map is loaded). This means putting &amp;quot;set g_tyranny 1&amp;quot; in the .cfg file that is exec&#039;ed on server start. If you try to change this on a running server, you will get the message &amp;quot;g_tyranny is read only.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_warningOptions ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar changes the behaviour of the shrubbot !warn command. By setting flag 1 or 2 you activate the advanced warning (storage) system&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Link stored warnings to the guid of a player&lt;br /&gt;
&lt;br /&gt;
2	Link stored warnings to the ip of the player&lt;br /&gt;
&lt;br /&gt;
4	Remove the oldest warning when the total maximum ammount of warnings is reached&lt;br /&gt;
&lt;br /&gt;
8	Auto-kick a player for 2 minutes when he has more than g_maxWarnings warnings&lt;br /&gt;
&lt;br /&gt;
16	Allow clients to see their own warnings with the /warnings command&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarnings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The ammount of warnings that can be stored for 1 player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_warningDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in hours that a warning will be stored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 24&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBan ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, anyone kicked for the reasons you specify, will be temporarily banned for g_autoTempBanTime seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039;bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Tempban when reaching g_teamDamageRestriction&lt;br /&gt;
&lt;br /&gt;
2	Tempban when someone is kicked by a shrubbot admin (using the !kick command). A normal shrubbot !kick kicks for 120 seconds&lt;br /&gt;
&lt;br /&gt;
4	Tempban when someone is kicked by the advanced warning system. A normal kick by the warning system lasts 120 seconds&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Specifically in version 0.5.0, this feature is bugged and can cause broken shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
== g_autoTempBanTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds kicked for when g_autoTempBan is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1800&lt;br /&gt;
&lt;br /&gt;
== g_minConnectLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The minimum shrubbot adminlevel required for players to be able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This only works for positive levels, any value &amp;lt;= 0 will allow everyone to connect. Bots won&#039;t be able to connect either.&lt;br /&gt;
&lt;br /&gt;
== g_greetingPos ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Location where the shrubbot greetings are displayed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3|4]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Chat area&lt;br /&gt;
&lt;br /&gt;
1	Center of screen&lt;br /&gt;
&lt;br /&gt;
2	Left notification area&lt;br /&gt;
&lt;br /&gt;
3	Top of the screen&lt;br /&gt;
&lt;br /&gt;
4	Console only&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adminProtection ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins levels can be protected against spoofing. The protection works by establishing trust between the client and the server. The trust must be confirmed by an online human admin for the new trusted admins to gain access to their assigned level. Specific command !confirm is used for it. Do note that establishing the trust between the server and the player is not the same as assigning admin level. In fact, anyone who is capable of recognizing the real admin can be safely allowed to use the !confirm command. The !setlevel command will automatically establish the trust if the admin level protection is enabled and the level is above or equal to the g_protectMinLevel. The admin protection is designed so that only the important admin levels are protected. This mean that levels above the g_protectMinLevel require established trust between the server and the client. Normal guests do not need this. It is also advisable to not set the g_protectMinLevel too low to avoid server load with these admins.&lt;br /&gt;
&lt;br /&gt;
The trust needs to be established only once. After that, the client and the server can negotiate the confirmation silently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Technical Details:&#039;&#039;&#039;&lt;br /&gt;
The trust is established using one-way hashes. When the !setlevel or !confirm is used on a player, the server generates 2 unique 32 character long values. Both of these values are stored both in the client (silent.dat) and the server database. Their meanings are server identification and a client key.&lt;br /&gt;
&lt;br /&gt;
Authentication negotiation:&lt;br /&gt;
&lt;br /&gt;
1. When the player next time connects to the server, the server sends one of the stored values as server identification and another, newly generated random 32 character value, to initiate the negotiation.&lt;br /&gt;
&lt;br /&gt;
2. The client will use the server identification value it received from the server to match with the key value associated with the server identification. It will hash the 32 character key value with the supplied random 32 character value and send the result back to the server.&lt;br /&gt;
&lt;br /&gt;
3. The server, knowing both values, the client key and the random character string it sent, can compare the hash against a hash it generates itself with the same values.&lt;br /&gt;
&lt;br /&gt;
4. If the hashes match (one supplied from client and the one it just generated), the client is authenticated to his admin level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Log succesfull authentications to the cheat log&lt;br /&gt;
&lt;br /&gt;
2	Log admin spoofing attempts to the cheat log&lt;br /&gt;
&lt;br /&gt;
4	Report admins waiting for confirmation on their level to the admin chat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_protectMinLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.5.0, admins can be protected against spoofing. The protection works by establishing trust between the client and the server if the admin level is higher then the g_protectMinLevel. Setting this to -1 will disable the freature. Do note that when you enable the feature, noone has yet established trust with the server and the first one to have it, must be confirmed by an rcon command. Either !setlevel if the database still doesn&#039;t have admins or !confirm if the admin has been set in the database already.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_muteRename ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to 1 the muted player won&#039;t be allowed to change his name while he is muted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0	Disabled. Allow players to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1	Don&#039;t allow player to change his/her name while he/she is muted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimium required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
= XP Save =&lt;br /&gt;
&lt;br /&gt;
== g_XPSave ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls XP save behaviours.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Store xp when a client disconnects. This is always required for the XP save to work.&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t reset xp to the pre-map start values on a map restart, shuffle, etc.&lt;br /&gt;
&lt;br /&gt;
4 Never reset xp (ever).&lt;br /&gt;
&lt;br /&gt;
8 Force the disconnection of clients with the same GUID as the connecting client. This is useful in saving the stored XP of players with unreliable network connections since they should still get their stored XP even if reconnecting immediately with a new IP address.&lt;br /&gt;
This feature is enabled by default unless you have sv_wwwDlDisconnected enabled. sv_wwwDlDisconnected seems to interfere with this feature, so do not enable this flag if you change pk3&#039;s on your server often because stored XP will be lost over disconnected downloads.&lt;br /&gt;
&lt;br /&gt;
16 Store the XP at restarts, nextmaps, mapvotes, campaignvotes and similar cases.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge_xp ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her xp skills. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge_xp &amp;quot;120m&amp;quot; - 120 minutes &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If g_XPSaveMaxAge is less than g_XPSaveMaxAge_xp, g_XPSaveMaxAge will be used.&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMaxAge ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds that must pass without saving XP from this player before XPSave forgets his/her skills/killrating/playerrating/mute status. Admins can adjust the amount of required XP to save with g_XPSaveMinXP server cvar.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier for this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;1o&amp;quot; - 1 month&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;2w&amp;quot; - 2 weeks&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;5d&amp;quot; - 5 days&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;36h&amp;quot; - 36 hours&lt;br /&gt;
&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;120m&amp;quot; - 120 minutes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See also g_XPSaveMaxAge_xp &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1w&lt;br /&gt;
&lt;br /&gt;
== g_resetXPMapCount  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How many maps occur before XP is reset. If g_XPSave flag 4 is set, g_resetXPMapCount is ignored.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting is only valid when the g_gametype is 6 (see Map Voting)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPSaveMinXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The increment of XP during one map that is required for the XP gained during the map to get saved and the time of the latest XP save to get updated. The silEnT mod separates the XP save and the connection times so that players who visit spectators without playing will not be removed by the g_dbUserMaxAge but can still lose their stored XP if they do not play. Admins can adjust the requirement with this value. Using -1 will disable the requirement and XP save will consider every connection valid for the XP save. Using value 0, will consider XP save valid if the player has gained even 1 XP point during the map. Please note that the value is only for one map and using high values may cause some players to not achieve enough XP to get their XP updated. Also note, that this does not prevent SMG weapon statistics or rating values to get updated into the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== g_maxXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a vicious cvar that will reset a players XP once their overall XP score reaches it.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_maxXPResetWarn ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Displays a message warning players whose XP is close to being reset due to the g_maxXP setting. The warning is displayed every thirty seconds once the warning threshold is passed.&lt;br /&gt;
&lt;br /&gt;
This setting can have an integer value (eg, 950), in which case it means that the player will be warned every thirty seconds once he has more than 950 XP.&lt;br /&gt;
&lt;br /&gt;
This setting can also have percentage value (eg, &amp;quot;90%&amp;quot;), and that will cause the warnings to start when the player reaches 90% of g_maxXP XP.&lt;br /&gt;
&lt;br /&gt;
If you specify a negative value, players will be warned when that offset is hit. For example:&lt;br /&gt;
&lt;br /&gt;
For a value of -75, warnings will to display then players have g_maxXP - 75 XP&lt;br /&gt;
&lt;br /&gt;
For a value of -2%, warnings will display when players have 98% of g_maxXP&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optionally enables the awarding of XP based upon the amount of damage a player has done to the opposing team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Disabled: use normal ET XP awarding methods&lt;br /&gt;
&lt;br /&gt;
1 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the skill category of the weapon used. When this mode is enabled, kills (regardless of method) are awarded a fixed value of 1 point of XP.&lt;br /&gt;
&lt;br /&gt;
2 1 point of XP is awarded per g_damageXPLevel points of damage done. The XP is placed in the Battle Sense category. Normal XP amounts are awarded for kills (typically 3-5 XP).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_damageXPLevel ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting determines the amount of damage that a player must do to earn 1 point of XP. See g_damageXP for additional information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_XPDecay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is a bitmask that controls the XP decay feature.&lt;br /&gt;
&lt;br /&gt;
See also g_XPDecayRate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1	Enable XP Decay&lt;br /&gt;
&lt;br /&gt;
2	Do not decay a player&#039;s XP when they are disconnected from the server&lt;br /&gt;
&lt;br /&gt;
4	Do not decay a player&#039;s XP for the class they are currently playing as (e.g. Medic).&lt;br /&gt;
&lt;br /&gt;
8	Do not decay a player&#039;s XP while they are spectating&lt;br /&gt;
&lt;br /&gt;
16	Do not decay a player&#039;s XP during warmup/intermission&lt;br /&gt;
&lt;br /&gt;
32	Do not decay a player&#039;s XP when he/she is playing. This means that they are on a Allies or Axis and the game is active.&lt;br /&gt;
&lt;br /&gt;
64	Do not decay a player&#039;s Battle Sense XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
128	Do not decay a player&#039;s Light Weapons XP when he/she is playing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayRate ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the rate (in skillpoints per second) that XP skill points for each skill will decay when g_XPDecay is enabled.&lt;br /&gt;
&lt;br /&gt;
Setting this to 0.1 would result in a player losing 6 points per minute IN ALL SKILLS, so up to 42XP per minute if the player has skill points for each skill.&lt;br /&gt;
&lt;br /&gt;
You can use a modifier with this value. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;5000/o&amp;quot; - Decay 5000xp per skill per month&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;1000/w&amp;quot; - Decay 1000xp per skill per week&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;500/d&amp;quot; - Decay 500xp per skill per day&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;40/h&amp;quot; - Decay 40xp per skill per hour&lt;br /&gt;
&lt;br /&gt;
set g_xpDecayRate &amp;quot;2/m&amp;quot; - Decay 2xp per skill per minute &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_XPDecayFloor ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the minimum that any particular skill can be reduced to by g_XPDecay.&lt;br /&gt;
&lt;br /&gt;
For example, setting this to 140.0 will ensure that no player will ever lose rank or skill levels due to g_XPDecay. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flood Protection = &lt;br /&gt;
&lt;br /&gt;
== g_floodprotect  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable/disable silEnT flood protect. Flooding means that a client is sending too many messages to the server (vsays, callvotes, etc...). Enabling g_floodprotect disables the engine&#039;s sv_floodprotect functionality. If you enable g_floodprotect, make sure you set a value for g_floodthreshold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&amp;amp;nbsp;&#039;&#039;&#039;1&lt;br /&gt;
&lt;br /&gt;
== g_floodthreshold  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of messages per second before ignoring the client&#039;s messages. Only in effect when g_floodprotect is turned on.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
== g_floodWait  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of milliseconds between two messages when g_floodprotect is enabled. This is a hard limit so admins aren&#039;t allowed to override it. 1000 milliseconds copies sv_floodprotect behaviour. This CVAR should not have a value below 500 in order to keep a public server playable.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1000&lt;br /&gt;
&lt;br /&gt;
== g_voiceChatsAllowed  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of voicechats allowed in minute.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Player Statistics, Rating and Team Balance =&lt;br /&gt;
&lt;br /&gt;
== g_stats  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a bitflag cvar used to control the way statistics are handled.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&amp;lt;br&amp;gt;1 When shooting a corpse to gib, do not count it as a hit.&amp;lt;br&amp;gt;2 When shooting a corpse to gib, do not count it as a shot.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039;&amp;amp;nbsp;Set this to 3 to use the behaviour of etmain and shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_playerRating_minplayers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The minimum number of players that must participate in a map in order for it to count towards each player&#039;s player rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 8&lt;br /&gt;
&lt;br /&gt;
== g_shuffle_rating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the rating system used by shuffle.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 | 4 | 5 ]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player XP&amp;lt;br&amp;gt;2 Use the rate at which players have gained XP since connecting.&amp;lt;br&amp;gt;3 Use the killRating (g_killRating must be nonzero)&amp;lt;br&amp;gt;4 Use the playerRating (g_playerRating must be nonzero)&amp;lt;br&amp;gt;5 Use the playerRating (g_playerRating must be nonzero), but take the map into account and give the teams closest to 50/50&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_killRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to 0, silEnT will track a player&#039;s killing ability using an ELO type statistic similar to chess. Each kill will increase a player&#039;s kill rating based on how hard the kill was. Killing unskilled players will result in very few points whereas an unskilled player killing a skilled player will result in more points.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use kill rating. A dummy flag since any non-zero value for g_killRating will enable it.&amp;lt;br&amp;gt;2 Make kill rating visible. Players can use /killrating and at the end of each map a message will display the top killers for the map and overall.&amp;lt;br&amp;gt;4 Log files will include the GUIDs of the players involved in kills. This makes kill tracking a lot easier.&amp;lt;br&amp;gt;8 Disable kill rating from the score board. This can prevent players from playing for higher kill rating alone. This does not prevent the &amp;quot;killrating&amp;quot; client command enabled with flag 2 from working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_playerRating  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When not set to non zero positive value, silEnT will track a player&#039;s ability to win against good teams using an ELO type statistic similar to chess. Each win will increase a player&#039;s rating based on how hard the opposing team was. Skilled teams defeating less skilled teams will result in very few points whereas an relatively low- rated team defeating a good team will result in more points. Player rating also takes into account the number of players on each team (less points when a very large defeats a small one) and which side tends to win more often on the current map (e.g. Allies tend to win tc_base).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_shuffle_rating.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Use player rating. A dummy flag since any non-zero value for g_playerRating will enable it.&amp;lt;br&amp;gt;2 Make player rating visible. Players can use /playerrating and at the end of each map a message will display the top player.&amp;lt;br&amp;gt;4 Put player rating on the scoreboard instead of the XP.&amp;lt;br&amp;gt;8 Print out extra info at the end of a round that can be used to further refine the playerrating model.&amp;lt;br&amp;gt;16 The same as flag 8 except a lot more info is output.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamDiff  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If g_teamForceBalance is set, setting g_unevenTeamDiff will notify all players when team numbers are off by g_unevenTeamDiff or more. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamFreq&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;: Set to 0 to disable this feature&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== g_unevenTeamFreq  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How often the team disparity notification occurs. Only valid when g_unevenTeamDiff is set to a positive value. Value is in seconds.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also g_unevenTeamDiff&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
= Class and Weapon Restrictions =&lt;br /&gt;
&lt;br /&gt;
== g_medicChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the medic charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 45000&lt;br /&gt;
&lt;br /&gt;
== g_engineerChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the engineer charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== g_LTChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the field ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 40000&lt;br /&gt;
&lt;br /&gt;
== g_soldierChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the soldier charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20000&lt;br /&gt;
&lt;br /&gt;
== g_covertopsChargeTime ==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The base time in milliseconds for how long it takes to fully recharge the covert ops charge bar. Skill upgrades affect this value during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30000&lt;br /&gt;
&lt;br /&gt;
== team_maxPanzers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxPanzers, team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 panzerfaust soldiers, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team with few players (for example, 5) will be able to have 1 panzerfaust soldier. They will be able to have their second panzerfaust soldier when they have 11 players on the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxPanzers &amp;quot;10%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as panzerfaust soldiers, and a team will not be able to have any panzerfaust soldiers until there are 10 players in the team. They will be able to have their second panzerfaust soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMortars  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server cvars team_maxMortars, team_maxFlamers, team_maxMG42s, team_maxGrenLaunchers have identical behaviour.&amp;amp;nbsp;Limits the number of the given weapon per team.&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 mortar soldiers, regardless of how many players are on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team with few players (for example, 5) will be able to have 1 mortar soldier. They will be able to have their second mortar soldier when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMortars &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as mortar soldiers, and a team will not be able to have any mortar soldiers until there are 10 players in the team. They will be able to have their second mortar soldier when there are 20 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Set this to -1 to disable limits&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFlamers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 flamethrower soldiers, regardless of how many players are on the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team with too few players (for example, 5) will be able to have 1 flamethrowe soldier. They will be able to have their second flamethrowe soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFlamers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as flamethrower soldiers, and a team will not be able to have any flamethrower soldiers until there are 10 players in the team. They will be able to have their second flamethrower when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMG42s  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 MG42 soldiers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team with too few players (for example, 5) will be able to have 1 MG42 soldier. They will be able to have their second MG42 soldier when they have 11 players on the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMG42s &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players as MG42 soldiers, and a team will not be able to have any MG42 soldiers until there are 10 players in the team. They will be able to have their second MG42 soldier when there are 20 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxGrenLaunchers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up. &lt;br /&gt;
&lt;br /&gt;
You can also use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
Only use integer values like 1 or 2 and NOT 1.0 or 2.5. If you refuse to do this and use a . in your cvar, the client will not display the restriction in the right way and people might not be able to use heavy weapons while they actually are available! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;2&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 2 grenade launchers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team with too few players (for example, 5) will be able to have 1 grenade launcher. They will be able to have their second grenade launcher when they have 11 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxGrenLaunchers &amp;quot;10%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 10% of their players playing with grenade launchers, and a team will not be able to have any grenade launchers until there are 10 players in the team. They will be able to have their second grenade launcher when there are 20 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxMedics ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 medics, regardless of how many players are in the team&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team with too few players (for example, 3) will be able to have 1 medic. They will be able to have their second medic when they have 7 players in the team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxMedics &amp;quot;15%-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as medics, and a team will not be able to have medics until there are 7 players in the team. They will be able to have their second medic when there are 14 players in the team.&lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxEngineers  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the&amp;amp;nbsp;% symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 engineers, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team with too few players (for example, 3) will be able to have 1 engineer. They will be able to have their second engineer when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxEngineers &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as engineers, and a team will not be able to have engineers until there are 7 players in the team. They will be able to have their second engineer when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxFieldOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 field opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team with too few players (for example, 3) will be able to have 1 field ops. They will be able to have their second field ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxFieldOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as field opses, and a team will not be able to have field opses until there are 7 players in the team. They will be able to have their second field ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== team_maxCovertOps  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Restricts the number of players that can play a specific class / team. You can either set it to a whole number to set a hard limit, or you can set it to a percentage value using the % symbol to limit based on the number of players on the team. When using percentage values, any partial values are rounded up.&lt;br /&gt;
&lt;br /&gt;
You can use a number such as &amp;quot;20%-&amp;quot; for this setting, in which case partial values will be rounded down &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;5&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to 5 covert opses, regardless of how many players are in the team &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as coert opses, and a team with too few players (for example, 3) will be able to have 1 covert ops. They will be able to have their second covert ops when they have 7 players in the team. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:set team_maxCovertOps &amp;quot;15%-&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This will limit each team to having only 15% of their players as covert opses, and a team will not be able to have covert opses until there are 7 players in the team. They will be able to have their second covert ops when there are 14 players in the team. &lt;br /&gt;
&lt;br /&gt;
Set this to -1 to disable limits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_minAirstrikeTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airstrikes PER TEAM.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_minArtyTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time (in seconds) that must elapse between airtillery strikes PER TEAM. Attempts to do airstrike before the timeout will get &amp;quot;Insuffient fire support&amp;quot; message.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamLandmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of landmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_maxTeamTripmines ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sets the maximum number of tripmines a team can have planted at any given time. This value should be 0 or greater.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_minGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The number of clients needed to start a match.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxGameClients ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The maximum allowed amount of active clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Player Inactivity =&lt;br /&gt;
&lt;br /&gt;
== g_inactivity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity before the player is made a spectator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_spectatorInactivity==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds of player inactivity as spectator before the player is kicked/dropped from server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_inactivityOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional inactivity options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Don&#039;t drop shoutcasters&lt;br /&gt;
&lt;br /&gt;
2 Don&#039;t drop spectators when in following mode&lt;br /&gt;
&lt;br /&gt;
4 ETmain inactivity behavior (don&#039;t wait for a full server)&lt;br /&gt;
&lt;br /&gt;
8 Shrubbot flag &#039;0&#039; admins will be moved to spectators due to team inactivity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Gametypes =&lt;br /&gt;
&lt;br /&gt;
== g_gametype	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please see Map Voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [2|3|4|5|6|7]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
2 Objective&lt;br /&gt;
&lt;br /&gt;
3 Stopwatch&lt;br /&gt;
&lt;br /&gt;
4 Campaign&lt;br /&gt;
&lt;br /&gt;
5 Last Man Standing&lt;br /&gt;
&lt;br /&gt;
6 Map Voting&lt;br /&gt;
&lt;br /&gt;
7 Team Death Match&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== Campaign ==&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
&lt;br /&gt;
== Last Man Standing ==&lt;br /&gt;
&lt;br /&gt;
== Map Voting  ==&lt;br /&gt;
&lt;br /&gt;
This gametype allows for the players to decide on the map that is played next. When g_gametype is set to 6 a new screen is introduced during intermission. This screen list, depending on server configuration, a list of up to 32 maps that are loaded on the server, and that all players can vote on. Once intermission ends, the server totals the votes, and plays the next map based upon the vote results &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;;Miscellaneous notes about mapvoting:&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
Total maps allowed is 32. If server admin has more than 32 .bsp files, only the first 32 are used Tie breaker. The default tie-breaker is such that if 2 or more maps are tied with the same number of votes, the map that was played most recently is selected. Bots and connecting players do NOT count for mapvoting, everyone else (including spectators) does. If no maps are voted for, the default &amp;quot;nextmap&amp;quot; cvar is used, so server admins have to specify a default map cycle of sort, usually in the following format: &lt;br /&gt;
&amp;lt;blockquote&amp;gt;set d1 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map oasis&amp;amp;nbsp;; set nextmap vstr d2&amp;quot;&amp;lt;br&amp;gt;set d2 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map battery&amp;amp;nbsp;; set nextmap vstr d3&amp;quot;&amp;lt;br&amp;gt;set d3 &amp;quot;set g_gametype 6&amp;amp;nbsp;; map goldrush&amp;amp;nbsp;; set nextmap vstr d1&amp;quot;&amp;lt;br&amp;gt;vstr d1&amp;lt;br&amp;gt; &amp;lt;/blockquote&amp;gt; &lt;br /&gt;
This means that the default map, upon server start, will be oasis. From there, map voting will be used. If at any point, no map is voted for, battery will be played, etc &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== g_mapVoteFlags  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; This cvar controls the behaviour of the map voting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
1 Changes the tie breaker so that the map not played in the longest wins&amp;lt;br&amp;gt;2 Intermission doesn&#039;t end until g_intermissionReadyPercent people have voted. If there are no players connected to the server, intermission will end at the timeout. (WARNING: This means that if there are spectators connected and not voting, the next map will not load until those spectators either vote, disconnect, or get kicked by the system)&amp;lt;br&amp;gt;4 Multi vote: Allows everybody to vote for 3 maps instead of one, first choice map gets 3 votes, second choice gets 2, third choice gets one&amp;lt;br&amp;gt;8 Don&#039;t randomize the maps, so they will always appear in the same order&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_maxMapsVotedFor  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt;How many maps are available to players for voting upon during intermission.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6 &lt;br /&gt;
&lt;br /&gt;
=== g_minMapAge  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
How long a map is ineligible for voting during intermission, after it is played last time.&amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3 &lt;br /&gt;
&lt;br /&gt;
=== g_includedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Used to include map regardless of any other restrictions. Including g_excludedMaps setting. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; or otherwise the map will be ignored in the list.&lt;br /&gt;
Only valid when map voting is enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
=== g_excludedMaps  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Used to exclude map that would otherwise be listed in the map voting list. The format is &amp;quot;:map1:map2:map3:&amp;quot;, where mapX is the .bsp name. Note that each mapname must be fully surrounded by &amp;quot;:&amp;quot; otherwise the map will not be excluded. &amp;lt;br&amp;gt;&#039;&#039;Only valid when g_gametype is 6 (see Map Voting)&#039;&#039;&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; To exclude railgun and battery maps from map voting use below command:&amp;lt;br&amp;gt; &lt;br /&gt;
set g_excludedMaps &amp;quot;:railgun:battery:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Team Death Match (TDM) ==&lt;br /&gt;
&lt;br /&gt;
=== g_TDMType	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The type of the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 1 | 2 | 3 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map ends only when timelimit hits&lt;br /&gt;
&lt;br /&gt;
2 Map ends when either the target score is reached or the timelimit hits&lt;br /&gt;
&lt;br /&gt;
3 Map ends only when the target score is reached&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
=== g_TDMOptions	===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Possible options for the played Team Death Match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Map voting is enabled during the intermission (i.e. The players vote for the next map to play during the intermission.)&lt;br /&gt;
&lt;br /&gt;
2 Completing the map objective will give the team score bonus that is controlled by the g_TDMObjBonus server cvar&lt;br /&gt;
&lt;br /&gt;
4 Teams get negative points when they do selfkills or teamkills&lt;br /&gt;
&lt;br /&gt;
8 Players cannot selfkill during the TDM. Regardless of other selfkill settings the server has configured&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
=== g_TDMScore===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the target score the teams attempt to make to win the game in TDM game types 2 and 3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
=== g_TDMObjBonus===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the value that is added to the team score if the team completes the map objective. Adding the bonus does not depend of the TDM type.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
= Mapconfigs and Mapscripts =&lt;br /&gt;
&lt;br /&gt;
== g_mapConfigs	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On each map load, the silEnT server will execute 2 configs if possible. The default.cfg and after that a map specifig config file [mapname].cfg. For example if you set g_mapConfigs to &#039;mapcfg&#039;, when the map fueldump starts, the server will try to exec &#039;mapcfg/fueldump.cfg&#039;.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;&amp;quot; to disable it.&lt;br /&gt;
&lt;br /&gt;
Set this to &amp;quot;.&amp;quot; to look for the cfg file in the current directory (fs_homepath).&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.5.2, admins can add settings that are executed for specific player amounts. The commands are enclosed in [players low-high] ... [/players] blocks. The low is the lowest amount of players for those settings and high is the maximum amount of players for those settings. For example:&lt;br /&gt;
&lt;br /&gt;
[players 0-10]&amp;lt;br&amp;gt;&lt;br /&gt;
set team_maxPanzers 0&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will disable panzerfaust when player amount is less or equal to 10. The blocks can be placed anywhere in the map config files. If the block is closed with [/players], the following commands do not depend on the player amounts. The player blocks can not be nested. If two player blocks follow each other, the second definition opens a new one and the old one closes. For example:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 0-15]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:mlb_temple:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[players 16-*]&amp;lt;br&amp;gt;&lt;br /&gt;
set g_excludedMaps &amp;quot;:adlernest:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[/players]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
will exclude map MLB Temple if the player amount is less or equal to 15 and exclude map Adlernest if the player amount is 16 or more. The player amount counting is controlled with g_playerCounting server cvar.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When in g_gametype 6 mode (Map Voting) and g_resetXPMapCount is set, an additional file named vote_X.cfg is also exec&#039;ed. X indicates the position of the next map in the campaign. For example, vote_2.cfg will exec&#039;ed such that when map 1 ends, any cvars in vote_2.cfg will affect map voting for map 2. Player blocks are not used with vote_X.cfg files.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_mapScriptDirectory ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to ETPro&#039;s b_mapscriptsdirectory.  Set it to the name of a directory in your fs_path that contains custom map scripts. For example you can copy the &#039;etpromapscripts&#039; directory from the ETPro distribution to your &#039;silent&#039; directory and add: set g_mapScriptDirectory &amp;quot;etpromapscripts&amp;quot; to your cfg. Setting g_mapScriptDirectory to &amp;amp;quot;&amp;amp;quot; disables any use of map .script files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
It is strongly recommended that you use the map scripts distributed with silEnT or ETPub since these updated scripts fix very important bugs in some of the original map scripts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_campaignFile  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
If you set this to the name of a file in your fs_path it will be interpreted as a .campaign script and all other .campaign scripts in your pk3 files will be ignored. This is useful for making custom campaigns since you don&#039;t need to offer a pk3 file containing a custom .campaign script for all clients to download. However, if the client has not downloaded this .campaign file in a pk3, they will not see information about the campaign. &lt;br /&gt;
&lt;br /&gt;
Such information includes: &lt;br /&gt;
&lt;br /&gt;
*will not display in the VOTE -&amp;amp;gt; MAP list &lt;br /&gt;
*map locations will not draw on the map of Europe. &lt;br /&gt;
*campaign description will not draw in the right panel &lt;br /&gt;
*total number of maps and current maps order in the campaign &lt;br /&gt;
*will not be shown in the intermission screens.&lt;br /&gt;
&lt;br /&gt;
Also, even though the built-in campaigns cmpgn_centraleurope and cmpgn_northafrica will not be valid, they will still appear in the client&#039;s VOTE -&amp;amp;gt; MAP menu. If a vote for one of them passes, nothing will happen. &lt;br /&gt;
&lt;br /&gt;
Setting this to &amp;quot;&amp;quot; disables it. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_playerCounting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls how the player amount is calculated for the mapconfigs. The player amount value is the highest number of simultaneously fully connected players during the map or warmup. The player counting can be disabled from the warmup period. If the player counting is enabled during the warmup, the players are counted right at the end of the warmup. This allows the teams to stabilize after intermission. Similarly the counting is triggered always with a 3 second delay from the change in the teams. Team changes include players joining the server and staying &lt;br /&gt;
in the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable filtering. This will add the 2 latest values together and divide them by 2.&lt;br /&gt;
&lt;br /&gt;
2 No player counting during warmup.&lt;br /&gt;
&lt;br /&gt;
4 Count spectators into players. Without this flag, only players in the playing teams are counted.&lt;br /&gt;
&lt;br /&gt;
8 Bots are not included into the player count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
= Censoring =&lt;br /&gt;
&lt;br /&gt;
== g_censor==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the chat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A comma delimited string of words that will be censored from the player names.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_censorPenalty==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This controls the censoring behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kill the player&lt;br /&gt;
&lt;br /&gt;
2 Kick players with names containing words in g_censorNames&lt;br /&gt;
&lt;br /&gt;
4 Kill, but don&#039;t gib&lt;br /&gt;
&lt;br /&gt;
8 Auto-mute for g_censorMuteTime [60] seconds&lt;br /&gt;
&lt;br /&gt;
16 Lose the amount of xp specified in g_censorXP&lt;br /&gt;
&lt;br /&gt;
32 Burn&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use both 1 and 4, it will gib (like shrub did).&lt;br /&gt;
&lt;br /&gt;
== g_censorNeil==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter. It&#039;ll catch some symbol and number replacements,&lt;br /&gt;
and spaces now. It also adds some common words and common words with &amp;quot;swears&amp;quot; in them&lt;br /&gt;
that should really be OK. For example, it will not censor &amp;quot;assassin&amp;quot; but it will&lt;br /&gt;
censor &amp;quot;ass&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorNeilNames==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Neil Toronto&#039;s censor filter for player names.  See g_censorNeil description for&lt;br /&gt;
details.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_censorMuteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds to auto-mute as a censor penalty. Only works if bitflag 8 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_censorXP==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of XP to lose as a censor penalty. Only works if bitflag 16 is added to g_censorPenalty.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
= Voting =&lt;br /&gt;
&lt;br /&gt;
== g_voting	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Control&#039;s voting behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Votes will pass on the number of votes cast rather than total eligible voters.&lt;br /&gt;
&lt;br /&gt;
2 Votes that pass do not count against the vote_limit for the caller.&lt;br /&gt;
&lt;br /&gt;
4 &amp;quot; (called by NAME)&amp;quot; is appended to the vote description where NAME is the name of the player that called the vote.&lt;br /&gt;
&lt;br /&gt;
8 Show the number of YES and NO votes after a votes has passed or failed. This also shows if a vote is canceled or passed by an admin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== vote_limit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This value defines how many votes one player can invoke during one map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== vote_percent==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The required percentage of yes votes for the vote to pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== vote_allow_comp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for competition settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_gametype==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for gametype.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_kick==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for kicking a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for map to be played.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_mutespecs==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for starting the next map in the map rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_pub==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for public game settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_referee==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for making a player a referee.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams based on XP.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for swapping the teams. Allied players go to the axis team and axis players go to the allied team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_friendlyfire==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the map time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_warmupdamage==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling/enemies only warmup damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_antilag==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling antilag.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_balancedteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for enabling/disabling balanced teams enforcing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_muting==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for muting/unmuting a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for surrendering the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the campaign.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for changing the campaign to the next one in the campaign rotation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows making freely written polls using the vote system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for restarting the played map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for shuffling teams without restarting the map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_cointoss==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for doing cointoss.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_allow_putspec==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows voting for moving a player to the spectators.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== vote_block_maprestart==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_matchreset==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the match allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shuffleteamsxp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_shufflenorestart==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for shuffling the teams without restarting the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextmap==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for starting the next map in the map rotation allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_swapteams==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for swapping the teams allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_surrender==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for surrendering the map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_map==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for played map allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_timelimit==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for changing the map time allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_poll==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for polls allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_nextcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for next campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== vote_block_restartcampaign==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds from the beginning of the map is the voting for restarting the campaign allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_noVoteTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many seconds must pass between two votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_voteResultsMinLevel==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the minimum admin level for the players to see the results of the votes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_votedMuteLength==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines the length in seconds of the mute issued by a passed mute vote. You can use modifiers with this value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3h&lt;br /&gt;
&lt;br /&gt;
= Weapons, Classes and Skills =&lt;br /&gt;
&lt;br /&gt;
== g_poison	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Gives medics the ability to poison enemies by sticking with their medic&lt;br /&gt;
syringe.  Enemies will be damaged at g_poison/second when g_poison is&lt;br /&gt;
set to a value more than 0.  Setting to 0 will disable poison needles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_poisonFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the effects of g_poison.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Poisoned player&#039;s screen shakes.&lt;br /&gt;
&lt;br /&gt;
2 Other players see the poisoned player&#039;s head shaking.&lt;br /&gt;
&lt;br /&gt;
4 Poisoned player appears to bend over (hurl) every 2 seconds. (poisoned player does not see this happen.)&lt;br /&gt;
&lt;br /&gt;
8 Poisoned player cannot use +attack.  NOTE: because of client side prediction, the client may see the gun firing occasionally if they hold down +attack, but no shots are fired.&lt;br /&gt;
&lt;br /&gt;
16 Poisoned player is disoriented (view turned upside down).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 7&lt;br /&gt;
&lt;br /&gt;
== g_medics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the medic, to nerf or otherwise change their behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Medics can&#039;t pick up their own health packs to cure themselves of poison needle effects.&lt;br /&gt;
&lt;br /&gt;
2 Medics can&#039;t pick up their own health packs at all.&lt;br /&gt;
&lt;br /&gt;
4 A level 4 medic will always be revived to full health (no matter what the level of the reviving medic is).&lt;br /&gt;
&lt;br /&gt;
8 Value is not in use.&lt;br /&gt;
&lt;br /&gt;
16 Medics do not spawn with akimbo pistols, regardless of their light weapons skill.&lt;br /&gt;
&lt;br /&gt;
32 Medics spawn with pistol only, and can&#039;t pick up SMG of either team. However, any class can steal a medics uniform, if the g_classChange is set to 1, and receive the medic benefits while retaining their current weapons, including akimbos and SMG.&lt;br /&gt;
&lt;br /&gt;
64 Medics can use syringes to heal living teammates as an alternative to the tk/revive cycle.&lt;br /&gt;
&lt;br /&gt;
128 Level 4 medics can inject other players with their adrenaline.  This can be done when holding the revive needle by pressing the alt-fire button, or with the /adrenother client command.&lt;br /&gt;
&lt;br /&gt;
256 Level 4 medics cannot adrenaline self.  If this flag is on, Medics will not receive adrenaline upon reaching level 4. (This won&#039;t affect flag 128)&lt;br /&gt;
&lt;br /&gt;
512 Adrenaline use takes only half of the chargebar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_adrenDmgReduction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
The percentage damage reduction after injecting adrenaline. g_adrenDmgReduction is now independent percentage of the caused damage that is inflected when the adrenaline is on. 0 means no damage and 100 means full damage from the weapon. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_medicHealthRegen==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The rate at which medics regenerate health (in HP per second).  This rate is divided into two parts:  The first is from 1 to 110-125 HP (depending on the number of medics per team), and then above that.  The system default is 3/2 (3 HP per second, then 2 HP per second).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 3/2&lt;br /&gt;
&lt;br /&gt;
1 2/2&lt;br /&gt;
&lt;br /&gt;
2 2/1&lt;br /&gt;
&lt;br /&gt;
3 2/0&lt;br /&gt;
&lt;br /&gt;
4 1/1&lt;br /&gt;
&lt;br /&gt;
5 1/0&lt;br /&gt;
&lt;br /&gt;
6 0/0&lt;br /&gt;
&lt;br /&gt;
7 0/1&lt;br /&gt;
&lt;br /&gt;
8 0/2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_throwableKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable knife throwing. The amount of throwable knives is g_maxKnives - 1. Any non zero value will enable knife throwing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxKnives	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of knives a player can posses. Take note that if g_throvableKnives is enabled, the last knife cannot be thrown.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_knifeChargeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long it takes in milliseconds for the &amp;quot;knife&amp;quot; to charge to the maximum throw speed/force.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 800&lt;br /&gt;
&lt;br /&gt;
== g_constructibleXPSharing==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When multiple engineers help build a constructible, each gets his share of XP&lt;br /&gt;
once the constructible is build.  The share of gained XP is proportional to&lt;br /&gt;
how much the engineer built.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_asblock	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Airstrike blocking.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Make an announcement whenever an airstrike is blocked.&lt;br /&gt;
&lt;br /&gt;
2 A player may easily block an airstrike by crouching, standing, or proning over the enemy&#039;s canister to block the airstrike.&lt;br /&gt;
&lt;br /&gt;
4 Reserved.&lt;br /&gt;
&lt;br /&gt;
8 Lvl 3 FieldOPs and higher cannot have the airstrikes blocked by players.&lt;br /&gt;
&lt;br /&gt;
16 Disables teammates blocking airstrikes.&lt;br /&gt;
&lt;br /&gt;
32 Give 2 Battle Sense XP to player that blocks the air strike. No XP given for blocking teammates or your own air strike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_panzersSpeed	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Speed of the panzers. Normal panzer speed is 2500.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2500&lt;br /&gt;
&lt;br /&gt;
== g_panzersGravity	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzer trajectory will be affected by gravity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dyno==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dynamite Behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmaks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Sudden Death Dynamites enabled. If there is 30 seconds or less on the clock and dynamite is planted on an objective, the clock will continue to run past zero. The match will not end until the dynamite either explodes, or is disarmed. You are not allowed to plant additional dynamite during sudden death.&lt;br /&gt;
&lt;br /&gt;
2 Dynamite chaining enabled. Dynamite will cause other similar dynamites to explode when exploding (only if within blast radius). Dynamites not planted on an objective will blow any other dynamite not on an objective. Dynamite planted on an objective will only blow dynamite on the same objective.&lt;br /&gt;
&lt;br /&gt;
4 Adds a dynamite symbol with the location and the time remaining to all the players on the team of the player who plants the dynamite. This will only happen when dynamite is placed on an objective. The players in the other team will see the dynamite symbol too, but they won&#039;t see the time remaining.&lt;br /&gt;
&lt;br /&gt;
8 Dynamite cannot be disarmed by your team (inlcuding yourself), so only the other team can defuse it.&lt;br /&gt;
&lt;br /&gt;
16 Enable dynamite ID. You can see the owner of a dynamite when you point at it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKick	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Canister and grenade kicking.&lt;br /&gt;
&lt;br /&gt;
Allows players to kick smoke, and air strike canisters, along with grendaes. The integer adjust the amount of force put behind the kick. 75 is a good value, anything below 60 is about useless, and above about 125 is probably too much.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_canisterKickOwner	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kicked Canister Ownership.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Kicker does not take ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
1 Kicker takes ownership of the canister.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_staminaRecharge	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiplies the rate at which stamina is rebuilt. Setting this value to zero will cause players to not regain any stamina once it is used except through the use of adrenalin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_mineid	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Turns on identification of your teammates landmines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_medicSelfhealTime==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time in milliseconds that a medic cannot heal himself after being hit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxPanzerSuicides	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set, a player can kill himself g_maxPanzerSuicides times with a panzerfaust. The next panzerselfkill will result in a panzer shooting medpacks.&lt;br /&gt;
&lt;br /&gt;
The amount of suicides is reset every map.&lt;br /&gt;
&lt;br /&gt;
Set to -1 to disable, -2 to always enable (no normal panzers anymore)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_panzerPackDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the g_packDistance for the medpacks fired by the panzerfaust when g_maxPanzerSuicides is enabled.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to use default (etmain)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_weapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_weapons cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 0 field ops doesn&#039;t get binoculars (unless he has &amp;gt;= level 1 Battle Sense)&lt;br /&gt;
&lt;br /&gt;
2 Syringes work underwater&lt;br /&gt;
&lt;br /&gt;
4 Pliers work underwater&lt;br /&gt;
&lt;br /&gt;
8 Fully restore Field ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
16 Half restore FIeld ops charge bar if airstrike is aborted&lt;br /&gt;
&lt;br /&gt;
32 Ammo packs restore helmets&lt;br /&gt;
&lt;br /&gt;
64 Drop binoculars if player has them&lt;br /&gt;
&lt;br /&gt;
128 Soldiers with level 4 heavy weapons don&#039;t lose their pistols&lt;br /&gt;
&lt;br /&gt;
256 Garands can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
512 Balance the clip size between the allies and axis rifles. allied rifles get same clip sizes and max ammo as the k43.&lt;br /&gt;
&lt;br /&gt;
1024 Creates a hitbox for mortar shells.  This reduces (or eliminates in some cases) the ability to fire mortars through smaller windows and bunker slits.&lt;br /&gt;
&lt;br /&gt;
2048 Knives will always gib a body (not a player, use g_dmgKnife instead if you want that)&lt;br /&gt;
&lt;br /&gt;
4096 Extra ammo is included with dropped weapons.&lt;br /&gt;
&lt;br /&gt;
8192 &amp;quot;Ammo&amp;quot;/&amp;quot;No ammo&amp;quot; icon is shown for dropped weapons.&lt;br /&gt;
&lt;br /&gt;
16384 Enable fast shooting for Thompson, MP40, PPSh and Sten. 110 ms between shots.&lt;br /&gt;
&lt;br /&gt;
32768 Kill by the shot tripmine is counted for the shooter not the player that planted it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 16384 was added in version 0.6.2.&lt;br /&gt;
&lt;br /&gt;
== g_classWeapons==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar enables certain weapons per class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable PPSH for soldiers&lt;br /&gt;
&lt;br /&gt;
2 Enable PPSH for engineers&lt;br /&gt;
&lt;br /&gt;
4 Enable PPSH for fieldops&lt;br /&gt;
&lt;br /&gt;
8 Enable MP40 and Thompson to be available to both teams in limbo menu&lt;br /&gt;
&lt;br /&gt;
16 Enable MP40 for soldiers.&lt;br /&gt;
&lt;br /&gt;
32 Enable Thompson for soldiers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 8 was added in version 0.6.0.&lt;br /&gt;
&lt;br /&gt;
Flags 16 and 32 were added in version 0.6.2. Also the default value was changed from 15 to 63.&lt;br /&gt;
&lt;br /&gt;
== g_mg42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar controls optional machine gun behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Machine Guns can make headshots&lt;br /&gt;
&lt;br /&gt;
2 Machine Guns can reload when clip is not empty&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_coverts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls various aspects of the Covert Op class.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Level 4 Coverts have more accurate scoped weapons.&lt;br /&gt;
&lt;br /&gt;
2 Disguised coverts can only be identified with the &amp;quot;crosshair name&amp;quot; by level 4 Field Ops.&lt;br /&gt;
&lt;br /&gt;
4 After detonating a satchel charge, the primary weapon will be selected instead of satchel again.&lt;br /&gt;
&lt;br /&gt;
8 Coverts in disguise take half the normal combat damage.&lt;br /&gt;
&lt;br /&gt;
16 Coverts in disguise take no splash damage.&lt;br /&gt;
&lt;br /&gt;
32 Coverts do not automatically lose their uniform if an enemy sees them firing a weapon.&lt;br /&gt;
&lt;br /&gt;
64 Coverts do not automatically lose their uniform if they fire a non-silent weapon.&lt;br /&gt;
&lt;br /&gt;
128 Coverts do not automatically lose their uniforms if they attach to an emplaced MG weapon.  Note that this flag has nothing to do with firing.&lt;br /&gt;
&lt;br /&gt;
256 Coverts are awarded xp for constructive use of smoke.&lt;br /&gt;
&lt;br /&gt;
512 Coverts will lose their uniform if an enemy sees him using ANY weapon (otherwise knife/satchel/smoke/binoc will never lose uni).&lt;br /&gt;
&lt;br /&gt;
1024 A disguised covert can still steal enemy uniforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_enableTMines	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disables/enables tripmines. Tripmines are available only for engineers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_enableDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Improvised Demolition weapon for soldier class.&lt;br /&gt;
Improvised Demolition weapon was introduced in 0.8.0 version of the silEnT mod.&lt;br /&gt;
As mentioned in the original WWII Tank-destruction manual, a big charge could be made of 6 stickgrenade heads around one complete grenade, fixed with wire or rope.&lt;br /&gt;
The central grenade would make the other 6 grenade detonate as well causing an explosion which could damage the light armoured vehicles.&lt;br /&gt;
&lt;br /&gt;
In silEnT mod this weapon is designed to suit exactly the purpose described above.&lt;br /&gt;
To gain the weapon player has to gain 3rd engineer level and 4th soldier level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_skills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Optional skill related flags.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players with level 4 battle sense can spot landmines for teammates&lt;br /&gt;
&lt;br /&gt;
2 Players with level 4 engineering can keep the flak jacket for other classes&lt;br /&gt;
&lt;br /&gt;
4 Players with level 4 first aid can keep adrenaline for other classes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== skill_soldier==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in soldier ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_medic	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in medic ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_engineer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in engineer ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_fieldops	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in fieldop ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_covertops==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in covert op ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_battlesense	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in battle sense ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== skill_lightweapons	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes the experience points necessary to go up in light weapon ranks. The setting consist of four space-separated integers indicating the number of XP required to reach a rank.&lt;br /&gt;
&lt;br /&gt;
A string such as &amp;quot;3 10 10 10&amp;quot; indicates that 3 points are required to go up the first rank, and the next three ranks are granted when the player has 10 points.&lt;br /&gt;
&lt;br /&gt;
You can also grant levels upon connection by using a value like &amp;quot;0 0 20 100&amp;quot;. This would mean that the first two ranks would be granted upon connection, and the third and fourth ranks would be granted at 20 and 100 points, respectively.&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this cvar also allows disabling skills. Also, 0 value will always enable skill regardless of the order. For example, a string &amp;quot;0 -1 0 -1&amp;quot; always enables the skill from the first and the third level and completely disables the skills on the second and the fourth level. The only limitation is, that the values other then 0 and -1 must be ordered from the smaller to the higher. For example &amp;quot;0 20 -1 50&amp;quot; always enables the first skill, second skill takes 20 points to unlock, third skill is always disabled and the fourth skill requires 50 points to unlock. Furthermore, the g_noSkillUpgrades now locks skills to any always enabled levels. Meaning skills that are set to require 0 points to unlock. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;20 50 90 140&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_panzersVulnerable==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 1, panzers that are shot in mid-air will explode.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_maxMarkers ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines how many danger zones can be marked by the covert ops.&lt;br /&gt;
&lt;br /&gt;
Danger zones were introduced in 0.7.0 version of the silEnT mod. They can be marked by Covert Ops to indicate that some area can be considered dangerous. Such area is then visible on the command map as the red circle zone. Additionally, when the Command Post is built, players are notified by sound and visual signs about entering the danger zone. Players can customize the way they are notified via the HUD editor and the silEnT customize HUD menu.&lt;br /&gt;
&lt;br /&gt;
To mark the danger zone Covert Ops needs to look through his binoculars and press the left mouse button (attack button). The same way Field Ops calls for an airstrike.&lt;br /&gt;
&lt;br /&gt;
To disable the feature set the g_maxMarkers to 0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Friendly Fire =&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFire  ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
To enable / disable friendly fire on server.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039;: [0|1] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default&#039;&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
== g_friendlyFireOpts	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows greater control over friendly fire events.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
2 Allow &#039;grenade boosting&#039; when friendly fire is off&lt;br /&gt;
&lt;br /&gt;
4 Non-engineer players do not trigger landmines on their own team&lt;br /&gt;
&lt;br /&gt;
8 Players do not trigger trip mines on their own team&lt;br /&gt;
&lt;br /&gt;
16 Tripmines ALWAYS damage teammates regardless of g_friendlyfire setting&lt;br /&gt;
&lt;br /&gt;
32 Only engineer that planted the landmine can trigger/defuse it (concerns team landmines only). This flag requires that the flag 4 is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Flag 32 was added in version 0.5.1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_reflectFriendlyFire ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Similar to Shrub&#039;s g_friendlyfire 2 cvar. A multiplier value that determines how much friendly-fire damage, if any, is reflected back to the player that caused the damage. This setting is independent of g_friendlyfire, so damage can be set to reflect on both FF and non-FF servers.&lt;br /&gt;
&lt;br /&gt;
A value of 1.0 would reflect full damage.&lt;br /&gt;
&lt;br /&gt;
A value of 0.5 would reflect half damage.&lt;br /&gt;
&lt;br /&gt;
Set to 0 to disable reflected friendly fire.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0.0&lt;br /&gt;
&lt;br /&gt;
== g_reflectFFWeapons ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects which category of weapon will reflect when g_reflectFriendlyFire is non-zero.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable reflected damage for Firearms (all types of guns)&lt;br /&gt;
&lt;br /&gt;
2 Enable reflected damage for Grenades and grenade launchers&lt;br /&gt;
&lt;br /&gt;
4 Enable reflected damage for Knives (includes thrown knives)&lt;br /&gt;
&lt;br /&gt;
8 Enable reflected damage for Panzers&lt;br /&gt;
&lt;br /&gt;
16 Enable reflected damage for Flamethrowers&lt;br /&gt;
&lt;br /&gt;
32 Enable reflected damage for Mortars&lt;br /&gt;
&lt;br /&gt;
64 Enable reflected damage for Satchel Charges&lt;br /&gt;
&lt;br /&gt;
128 Enable reflected damage for Artillery and Air Strikes&lt;br /&gt;
&lt;br /&gt;
256 Enable reflected damage for Dynamite and Construction Damage&lt;br /&gt;
&lt;br /&gt;
512 Enable reflected damage for Landmines&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setting this value to zero will override any multiplier set via g_reflectFriendlyFire, effectively disabling reflecting damage.&lt;br /&gt;
&lt;br /&gt;
== g_teamDamageRestriction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When greater than 0, anybody that has this percentage of hits inflicted on a teammate will automatically be kicked. A minimum of g_minhits hits total required before this is calculated. Client can see current stats for themselves by doing a /damage in console. Implemented to mimic shrub behavior as much as is possible, there are other ways to implement this feature, which may be implemented in addition to current manner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_minHits ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum number of damaging hits required before calculating if player has reached g_teamDamageRestriction threshold. Flamethrower and landmine hits are adjusted similar to shrub. Medics get -2 hits for every revive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 6&lt;br /&gt;
&lt;br /&gt;
= Hitboxes, Physics &amp;amp; Anti Lag Settings =&lt;br /&gt;
&lt;br /&gt;
== g_antilagDelay	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Manually delay the antilag of every player on the server. Might give very weird behaviour, so use at own risk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysics==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Creates a smoother movement when enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_fixedphysicsfps	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Makes the fixedphysics act like all the clients have the same framerate, so that players with &amp;quot;magic&amp;quot; quake engine framerates don&#039;t have an unfair advantage. This CVAR must be between 60 and 333.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 125&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t actually change the framerates in clients, so the clients can keep their own framerates.&lt;br /&gt;
&lt;br /&gt;
== g_antiwarp==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro-style antiwarp. This gives non-lagging players a much better game but for laggers it will be a bit more uncomfortable. This CVAR overrides both g_maxWarp AND g_skipCorrection in order to keep things consistent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_realBody ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If server admin sets this, the player hitboxes are adjusted smaller and harder to hit. Value 0 corresponds to the hitboxes used up to 0.5.0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Hitboxes used up to 0.5.0&lt;br /&gt;
&lt;br /&gt;
1 Use smaller hitboxes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see the differences in the hitboxes, use g_debughitboxes server cvar. Do note that this kind of testing should not be done with many players because it will cause huge amount of lag.&lt;br /&gt;
&lt;br /&gt;
== g_skipCorrection	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 to enable Neil Toronto&#039;s unlagged2 skip correction. This will smooth out the movement of players with high packet loss (to a degree). This is similar to etpro&#039;s antiwarp, but has some differences. Neil likes this version better, bani likes his better.&lt;br /&gt;
&lt;br /&gt;
This replaces g_smoothClients from etmain.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxWarp	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This allows you to control the amount of &amp;quot;warping&amp;quot; that players with high packet loss can do.  The [integer] is the number of server frames that you allow a player to miss before their next movement is put in check.&lt;br /&gt;
&lt;br /&gt;
A server frame is 50ms on a typical server (sv_fps set to 20).  This means that if you set g_maxWarp to 5 you won&#039;t allow players to warp from point A to point B if that distance takes an normal player 1/4&lt;br /&gt;
of a second to travel. Setting this to 1 is a good way to drive off just about everyone from your server.&lt;br /&gt;
&lt;br /&gt;
As far as I can tell, 1000ms is allowed by default in the game, so setting this to any value higher than 39 should have no effect if sv_fps is set to 10.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
= Fun Wars and Crazy Settings =&lt;br /&gt;
&lt;br /&gt;
== g_panzerwar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Panzerwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_sniperwar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Sniperwar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_riflewar	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables/Disables Riflewar. 1 is enabled, 0 is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set maximum speed for !crazyspeed command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 540&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_min_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set minimum speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
== g_max_crazygravity ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set max speed for !crazygravity command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1200&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Watermark =&lt;br /&gt;
&lt;br /&gt;
== g_watermark==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set a watermark that will be displayed to all clients. The watermark must be put in a folder named &amp;quot;watermark&amp;quot; and then this whole folder needs to be zipped into a .pk3 file. The silEnT watermark is &amp;quot;logo_silent.tga&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeAfter	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermark is set, the watermark will fade out after [integer] number of seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_watermarkFadeTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When g_watermarkFadeAfter is set, the watermark will fade out in [integer] seconds. (So the fading process from 1.0 alpha to 0.0 alpha takes [integer] seconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Hitsounds =&lt;br /&gt;
&lt;br /&gt;
== g_hitsounds	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Server side hitsound options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable hitsounds&lt;br /&gt;
&lt;br /&gt;
2 Disable hitsounds when shooting wounded players&lt;br /&gt;
&lt;br /&gt;
4 Disable the headshot sound when shooting wounded player in the head. (default hitsound will be used in it&#039;s place)&lt;br /&gt;
&lt;br /&gt;
8 Enable warning sound from hitting team mates&lt;br /&gt;
&lt;br /&gt;
16 Disable hitsounds from poison damage&lt;br /&gt;
&lt;br /&gt;
32 Disable hitsounds from explosive weapons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A client can disable hitsounds with cg_hitSounds client cvar. Also an option to play only headshots is available.&lt;br /&gt;
&lt;br /&gt;
== g_defaultHitSounds ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Selects the default hit sounds on the server. Starting from silEnT 0.6.0, it is possible for the players to choose what kind of hit sounds are played. If the client cvar cg_hitSoundType is 0, the g_defaultHitSounds determines what type of hit sounds are used. Also, if the client cvar cg_hitSoundType is 0, the server may also add custom hit sound files in a custom pk3 file. These sounds are automatically loaded if available. However, if the client cvar cg_hitSoundType is 1, 2 or 3, the client will use strictly the hit sounds they have selected. Custom hit sounds are placed to the root folder &amp;quot;sounds/hitsounds&amp;quot; in the custom pk3. They must never overload any of the files in the subfolders, silent, etpro or etpub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2|3]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 No selection, will default to silEnT in the client end.&lt;br /&gt;
&lt;br /&gt;
1 Defaults silEnT hitsounds.&lt;br /&gt;
&lt;br /&gt;
2 Defaults ETPro hitsounds.&lt;br /&gt;
&lt;br /&gt;
3 Defaults ETPub hitsounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
= Intermission =&lt;br /&gt;
&lt;br /&gt;
== g_intermissionTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the length of time the end of game screens displays before loading the next map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60&lt;br /&gt;
&lt;br /&gt;
== g_intermissionReadyPercent	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The percent of connected players who need to hit the &amp;quot;READY&amp;quot; button to move on to the next map without waiting g_intermissionTime to run out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 100&lt;br /&gt;
&lt;br /&gt;
= Miscellaneous =&lt;br /&gt;
&lt;br /&gt;
== g_proneDelay ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set, there will be 1750 ms delay after every prone or getting up before the player can prone or get up again. Also, weapon spread will be maxed for 1 second after proning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_realPlayTime ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Show additional real play time of the payer (without spec time) in the debriefing screen at the end of the map.&lt;br /&gt;
For instance: 6/10 would mean that player played 6 minutes, was on the server for 10 minutes and 4 minutes was in spec.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== g_extraStatistics	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional statistics over the end game awards.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player with most mine kills&lt;br /&gt;
&lt;br /&gt;
2 Player with most mine damage inflicted&lt;br /&gt;
&lt;br /&gt;
4 Player with most knife kills&lt;br /&gt;
&lt;br /&gt;
8 Player with most gibs&lt;br /&gt;
&lt;br /&gt;
16 Player with most artillery kills&lt;br /&gt;
&lt;br /&gt;
32 Player with most airstrike kills&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_packDistance	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the distance at which health packs and ammo packs are thrown. Set this to 0 to make it just like etmain.  The settings should be similar to shrubet so set this to 2 for a subtle improvement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, medics will drop [integer] number of health packs when they are gibbed.  If set to -1, medics will drop the number of health packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropAmmo	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, fieldops will drop [integer] number of ammo packs when they are gibbed.  If set to -1, fieldops will drop the number of ammo packs that they could have dropped at the moment of their death. Set this to 0 to turn it off.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_tossDistance==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set the velocity at which health or ammo packs are tossed from the dead body when g_dropHealth or g_dropAmmo are activated. This changes the distance that these packs travel from the corpse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_misc==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Miscellaneous options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Type: &#039;&#039;&#039;bitmask&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Enable double jump.&lt;br /&gt;
&lt;br /&gt;
2 Enable binoc master competition. Requires g_weapons 64 to be set.&lt;br /&gt;
&lt;br /&gt;
4 When a player is killed he can see the HP the killer has left.&lt;br /&gt;
&lt;br /&gt;
8 Disable self damage.&lt;br /&gt;
&lt;br /&gt;
16 Players can not jump if stamina is too low.&lt;br /&gt;
&lt;br /&gt;
32 Enable Jaymod style doublejump.&lt;br /&gt;
&lt;br /&gt;
64 Disable Falling Damage.&lt;br /&gt;
&lt;br /&gt;
128 Announce revives.&lt;br /&gt;
&lt;br /&gt;
256 Setting this flag disables the &amp;quot;First Blood&amp;quot; announcement.&lt;br /&gt;
&lt;br /&gt;
512 Full body predict. This makes it harder to get inside for example walls and stones. Same as ETPub g_misc 32 + 256. Do note that this can cause problems when proning through windows and similar narrow passages&lt;br /&gt;
&lt;br /&gt;
1024 Enable the enemy team objective carry indicator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
* Flag 1024 was added in version 0.8.2.&lt;br /&gt;
&lt;br /&gt;
== g_moverScale	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Multiply the speed of movers (e.g. tanks) by float.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.0&lt;br /&gt;
&lt;br /&gt;
== g_slashKill==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the behavior of the /kill command. See also g_fear and g_maxSelfkills.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Player spawns with half charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
2 Player spawns with 0 charge bar after /kill&lt;br /&gt;
&lt;br /&gt;
4 Restores the charge bar to the same state it was in at the moment the player issued /kill (regardless of how long they were in limbo)&lt;br /&gt;
&lt;br /&gt;
8 Disable /kill when player is frozen&lt;br /&gt;
&lt;br /&gt;
16 Disable /kill when player is poisoned&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_maxSelfkills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of times a player can use /kill per map. Setting this to -1 will result in normal behaviour (infinite selfkills). Setting this to 0 will disable /kill.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== g_ammoCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between ammo cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 60000&lt;br /&gt;
&lt;br /&gt;
== g_healthCabinetTime	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The time between health cabinet regenerations in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10000&lt;br /&gt;
&lt;br /&gt;
== g_spectator==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls spectator behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 When in freelook mode, you can &#039;fire&#039; at a player to follow. If you miss a player, nothing happens.&lt;br /&gt;
&lt;br /&gt;
2 When in freelook mode with the 1 flag set, if you shoot and miss you start following the next available player.&lt;br /&gt;
&lt;br /&gt;
4 When the player you&#039;re following goes into limbo, don&#039;t move to the next available player.&lt;br /&gt;
&lt;br /&gt;
8 When the player you&#039;re following goes into limbo, go to freelook instead of following the next available player. (4 has precedence)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_truePing	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to see how much their local game is behind the top time (the time of the latest server frame). Pings will show around 50 ms better than if the ping would show network latency, but it&#039;s more accurate. Remember that the server is sending a snapshot to players in every 50 ms. This makes the players to inherenty play in the past from the server point of view.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dropObj	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets the number of times a player can drop/toss the objective (e.g. parts on radar) per life.&lt;br /&gt;
&lt;br /&gt;
The parts are dropped by pressing the +activate key (usually bound to F) when there&#039;s nothing else around to be activated.&lt;br /&gt;
&lt;br /&gt;
Before enabling this recall how spammy the voiceovers can be. Then picture a player tossing the parts to himself over and over again. For this reason you probably don&#039;t want to set this very high.&lt;br /&gt;
&lt;br /&gt;
Players must switch to knife in order to drop the objective. If they are not holding knife and hit +activate they will see a message that notifies them that they must switch to knife.  This change was made to prevent accidental dropping of the objective when trying to push, drag, pick up, or activate something else.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_doubleJumpHeight	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adjusts the height of the second jump in a double jump.  This value is a multiplier to the default jump velocity. The greater g_doubleJumpHeight is, the greater the height of the second jump.  This setting has no effect if double jump is disabled in g_misc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1.4&lt;br /&gt;
&lt;br /&gt;
== g_serverInfo==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use this cvar to change the behaviour of the &#039;serverinfo&#039; string.  This string is printed in response to the &#039;getstatus&#039; primative command used by game browsers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Display player team information using the &#039;P&#039; cvar in the server info string. (etpro and etmain 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
2 Display player team information using the &#039;Players_Axis&#039; and &#039;Players_Allies&#039; cvars in the server info string. (etmain &amp;lt; 2.60 behaviour)&lt;br /&gt;
&lt;br /&gt;
4 Display the &#039;campaign_maps&#039; cvar in the server info string. This contains a comma delimited list off all the maps in the current campaign. Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
8 Displays the &#039;C&#039; CVAR in the server info string.  This is a string containing the current map number in the campaign, and total maps in current campaign, in the form of &amp;amp;quot;xx,yy&amp;amp;quot;.  Only works if you have g_gametype set to 4.&lt;br /&gt;
&lt;br /&gt;
16 The class charge times will not be present in the server info string unless this flag is set. They are removed by default in order to make room in the serverInfo string for more useful information. These cvars are g_medicChargeTime, g_engineerChargeTime, g_LTChargeTime, g_covertopChargeTime, g_soldierChargeTime.&lt;br /&gt;
&lt;br /&gt;
32 Send KR (KillRating) instead of XP in SERVERINFO string.  This is overriden by flag 64.&lt;br /&gt;
&lt;br /&gt;
64 Send PR (PlayerRating) instead of XP/KR in SERVERINFO string. Overrides flag 32.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar MUST be set prior to loading the first map. You will not be able to change this cvar once the game code is loaded. The serverInfo string has a fixed length of 1024 characters.  This space is shared with any cvar you create on your server with the &#039;sets&#039; command.  If you use up too much space with &#039;sets&#039;, your server will fail to start.  It will print the message &amp;quot;Info string length exceeded&amp;quot; if you don&#039;t have enough space left in your serverinfo string to handle the g_serverInfo flags you&#039;ve selected. To fix this, either remove some sets cvars from your config, or use different g_serverInfo flags.&lt;br /&gt;
&lt;br /&gt;
== g_fear	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If a player uses the /kill command within g_fear milliseconds after taking damage from an enemy, the attacker that last damaged that player will recieve full credit for the kill and the mode of death will be recorded as MOD_FEAR.  Other restrictions are that the attacker must be on the opposite team and the attacker must still be alive.&lt;br /&gt;
&lt;br /&gt;
G_fear applies also to players that try to switch teams within g_fear milliseconds. The player will remain in the same team and the usual g_fear behavior applies.&lt;br /&gt;
&lt;br /&gt;
In-game statistics will reflect that the death was caused by the weapon that did the last recorded damage to the player.&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable this behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2000&lt;br /&gt;
&lt;br /&gt;
== g_maxNameChanges	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Limit the number of namechanges per player per map by setting this cvar. This is especially needed if you have cheaters that autochange their name every second. Set to -1 to disable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_disableComplaints	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable teamkill complaints for some weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Landmines&lt;br /&gt;
&lt;br /&gt;
2 Artillery and airstrikes&lt;br /&gt;
&lt;br /&gt;
4 Mortar&lt;br /&gt;
&lt;br /&gt;
8 Dynamite&lt;br /&gt;
&lt;br /&gt;
16 Tripmines&lt;br /&gt;
&lt;br /&gt;
32 Completely&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_countryFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets whether the players will see the GeoIP country flags in the crosshair when aiming at someone and in the scoreboard. Players can enable/disable it with cg_countryFlags (default 1).&lt;br /&gt;
&lt;br /&gt;
You will need the GeoIP.dat file in your server&#039;s silent folder. You should read and accept the license of the GeoIP.dat database!&lt;br /&gt;
&lt;br /&gt;
Read the database license at http://geolite.maxmind.com/download/geoip/database/LICENSE.txt&lt;br /&gt;
Download the latest database at http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_noSkillUpgrades==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, disables player skill upgrades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1|2]&lt;br /&gt;
&lt;br /&gt;
0 No skill locking.&lt;br /&gt;
&lt;br /&gt;
1 Lock skills.&lt;br /&gt;
&lt;br /&gt;
2 Lock skills and hide all HUD elemnts that would show the skill levels.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT version 0.6.0, this cvar will lock the skills to the always enabled levels. See the skill_x cvars. Also, it is possible to hide the skill levels from the player HUDs setting this cvar to value 2.&lt;br /&gt;
&lt;br /&gt;
== g_flushItems	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Evens the dropped items out with the surface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxConnsPerIP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum number of connections allowed from one particular IP. This prevents the fake clients Denial of Service attack.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 4&lt;br /&gt;
&lt;br /&gt;
== shoutcastPassword	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables shoutcaster status on the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;none&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_headshot==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional head shot options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Headshots only&lt;br /&gt;
&lt;br /&gt;
2 Instagib damage (controlled by g_instagibDamage)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_instagibDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Damage used for instagib mode (e.g. set this to 160 so that a player can still be revived after being shot.).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_ettvFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls additional ETTV options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Prevent ettv slaves from being callvote kicked&lt;br /&gt;
&lt;br /&gt;
2 Grant shoutcaster status to ettv slaves&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_mode==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls some additional modes for fun or for testing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Players will spawn instantly&lt;br /&gt;
&lt;br /&gt;
2 Each class receives adrenaline&lt;br /&gt;
&lt;br /&gt;
4 No damage on players&lt;br /&gt;
&lt;br /&gt;
8 Players can pick up any weapon on the ground (Removing this bitflag will force all players to respawn!)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_playDead	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to use the &#039;playdead&#039; command and their character will act like it is dead until the playdead command is used again (or they really die).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_shove	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to push other players with the &amp;quot;use&amp;quot; key.  The integer adjusts the amount of force players shove with. 80 seems fair.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 80&lt;br /&gt;
&lt;br /&gt;
== g_shoveNoZ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 1 if you want to disable shove in the up/down direction (a.k.a &amp;quot;boosting&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_dragCorpse	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players do drag wounded players with the use key when moving backward slowly.  Works best when crouching or prone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_classChange	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows players to take the class of a gibbed teammate temporarily similarly to how a covert steals an uniform.  Class changing does not latch, so the original class the player had will be restored on respawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_forceLimboHealth	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0 it takes about 3 shots to gib a wounded player, if set to 1 it takes about 5.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_goomba==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to a positive integer, players can damage each other by landing on each other. The integer is multiplier that determines how much damage should be done to the player that was fallen on.  Also the impact for the falling player will be broken so that they only recieve 20% of the damage they would have normally.  It is also possible to do small amounts of damage (5HP) to other players by hopping up and down on them.&lt;br /&gt;
&lt;br /&gt;
Falling damage can be either 500, 50, 25, 15, or 10 depending on the length of the fall.  So if you set g_goomba to 5 and land on a player from a fall that would have damaged you 10HP, you will inflict 50HP of damage on the player you land on, and you will only recieve 2HP of damage.&lt;br /&gt;
&lt;br /&gt;
See also g_goombaFlags&lt;br /&gt;
&lt;br /&gt;
Set this to 0 to disable it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_goombaFlags	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Controls the way g_goomba is handled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Cannot do goomba damage to teammates.&lt;br /&gt;
&lt;br /&gt;
2 Short falls (hopping) on another player does no damage.&lt;br /&gt;
&lt;br /&gt;
4 Short falls (hopping) does no damage to teammates. (not necessary if 1 or 2 flag is set)&lt;br /&gt;
&lt;br /&gt;
8 Falling player recieves no damage when landing on any other player. (default is to recieve 20% of the damage the fall would have given if not landing on a player).&lt;br /&gt;
&lt;br /&gt;
16 Insta-gib goomba. All goomba damage will be 500HP regardless of fall distance. The exception is hopping on anther player which still does 5HP of damage.&lt;br /&gt;
&lt;br /&gt;
32 Falling corpses won&#039;t cause damage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Set this to 31 to have g_goomba work like shrubet.&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvul	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The number of seconds players will be invincible after they spawn.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
== g_spawnInvulFair	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes the spawn protection when the player fires his first shot (note : the spawn protection will still be removed after the g_spawnInvul time)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_spinCorpse==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allow players to use +left and +right binds to spin their corpse when dead or playing dead.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_teamChangeKills	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If set to 0, players are allowed one non-killing team change per respawn cycle.  If a player changes teams, he will be instantly spawned in the other teams default spawn point.  Players will die (but not lose a life) if they change teams a second time in one spawn cycle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== g_maxIgnoresPerMap ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The maximum number of times one player can ignore another player during one map. This can prevent spamming other players with the ignore command. The value can be between 0 and 255. Any value higher than 255 will always allow ignoring. Any value below 1 will disable ignoring completely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; Integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.7.0&lt;br /&gt;
&lt;br /&gt;
= Logs =&lt;br /&gt;
&lt;br /&gt;
== g_logOptions==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is meant to match the shrubmod g_logOptions cvar, but so far the only implemented flags are:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Server outputs obituaries to chat.&lt;br /&gt;
&lt;br /&gt;
2 Adrenaline countdown displayed.&lt;br /&gt;
&lt;br /&gt;
4 Disable display of tap-out confirmation box.&lt;br /&gt;
&lt;br /&gt;
8 Display connection attempts by banned players.&lt;br /&gt;
&lt;br /&gt;
16 Display gib reports (&amp;quot;&amp;amp;lt;victim&amp;amp;gt; was gibbed by &amp;amp;lt;attacker&amp;amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
32 Omit &amp;quot;item&amp;quot; lines from log file.&lt;br /&gt;
&lt;br /&gt;
64 Report gibs.&lt;br /&gt;
&lt;br /&gt;
128 GUID&#039;s are logged in the game log. Note, if this option is enabled the VSP log parser will not work.&lt;br /&gt;
&lt;br /&gt;
256 Log all private messages (/m commands).  This setting won&#039;t have any effect unless g_tyranny is enabled.&lt;br /&gt;
&lt;br /&gt;
512 Logs the real time into logs, instead of the normal uptime of the server.&lt;br /&gt;
&lt;br /&gt;
1024 This flag allows logging every player drop. It can be usefull for inspecting the server operation, but it will also cause lot of needless log writes.&lt;br /&gt;
&lt;br /&gt;
2048 Print TK death message like a normal kill message, giving killing weapon, except it is preceeded by a red TEAMKILL: identifier. Only works if g_obituary is set to 3.&lt;br /&gt;
&lt;br /&gt;
4096 Log client cvar values.&lt;br /&gt;
&lt;br /&gt;
8192 Log cvar values only when found from the client. Note that flag 4096 must also be set if using this flag.&lt;br /&gt;
&lt;br /&gt;
16384 Admin log will use new format that is more readable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.3 - Flags 4096 and 8192 were added.&lt;br /&gt;
&lt;br /&gt;
0.8.0 - Flag 16384. When this flag is set, the admin log will use new format.&lt;br /&gt;
&lt;br /&gt;
== g_logAdmin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file that all shrubbot commands will be logged to. For example, g_logAdmin &amp;quot;admin.log&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_cheatLog ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The name of the file, where all cheat related prints are logged. If this is not specified, server log is used.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Omni-Bots =&lt;br /&gt;
&lt;br /&gt;
== omnibot_enable ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to 1, Omni-bot functionality is enabled. You still need to have Omni-bots installed correctly in order for the bots to work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
== omnibot_path	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The path where the Omni-bot dll/so file is installed. If you installed Omni-bot to the default locations, then you do not need to modify this cvar. Leaving this cvar blank will search for the Omni-bot dll/so file from the default locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== g_bot_maxXP	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Any bots present will have their XP reset after this much XP is reached. If g_maxXP is also set to a value greater than -1, then the bot XP will be reset whenever the lower limit of the two is hit. Set this to -1 to disable this feature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; -1&lt;br /&gt;
&lt;br /&gt;
== omnibot_flags==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Customizes bot management/behavior.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Disables XPSave for bots&lt;br /&gt;
&lt;br /&gt;
2 Bots cannot mount tanks&lt;br /&gt;
&lt;br /&gt;
4 Bots cannot mount emplaced guns&lt;br /&gt;
&lt;br /&gt;
8 Don&#039;t track bot count in omnibot_playing cvar&lt;br /&gt;
&lt;br /&gt;
16 Bots will target ungibbed enemies&lt;br /&gt;
&lt;br /&gt;
32 Bots will trigger team and spotted mines&lt;br /&gt;
&lt;br /&gt;
64 Bots can use g_shove&lt;br /&gt;
&lt;br /&gt;
65536 Bots are granted shrubbot command immunity (the same as shrubbot flag !)&lt;br /&gt;
&lt;br /&gt;
131072 Bots cannot be !kicked or !banned&lt;br /&gt;
&lt;br /&gt;
262144 Disable shrubbot greeting for bots&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
= Lua =&lt;br /&gt;
&lt;br /&gt;
== lua_modules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of files to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. The paths are relative to the mod&#039;s directory, and can optionally be placed inside pk3 archieves. We are aiming for compatibility with ETPro&#039;s Lua Mod API found at http://wolfwiki.anime.net/index.php/Lua_Mod_API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== lua_allowedModules==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of sha1 signatures for the lua modules to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. Only lua modules with the matching sha1 signature listed in this cvar will be allowed to load by the Lua API engine (ACL).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Weapon Damage and Radius Settings =&lt;br /&gt;
&lt;br /&gt;
== g_dmg	==&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables experimental advanced combat options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Use traditional ET settings for combat.&lt;br /&gt;
&lt;br /&gt;
1 Use Advanced Hit Locations: Differentiates between Head, Body, Arm, and Leg shot when computing damage.&lt;br /&gt;
&lt;br /&gt;
2 Applies a more realistic damage vs. range equation for short-ranged weapons. This will reduce the effectiveness of these weapons at longer ranges.&lt;br /&gt;
&lt;br /&gt;
4 Gives a damage bonus to short-range weapons when used in close combat situations.  This will increase the effectiveness of these weapons at closer ranges.&lt;br /&gt;
&lt;br /&gt;
8 Use bullet fall-off approximations when computing shot trajectory.&lt;br /&gt;
&lt;br /&gt;
16 Improve accuracy of non-scoped single-shot rifles.&lt;br /&gt;
&lt;br /&gt;
32 Use alternate bullet-spread characteristics for automatic or rapid-fire weapons.&lt;br /&gt;
&lt;br /&gt;
64 Damage from players who are spectators or have disconnected is ignored, and XP is not awarded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotMin==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This represents the minimum damage done by a headshot regardless of the weapon used to make the shot.&lt;br /&gt;
&lt;br /&gt;
Headshots that would do damage below this value will be adjusted upward to equal g_dmgHeadshotMin. Headshots from a weapon with damage at or above this value will do a multiple of their damage, as specified by g_dmgHeadShotRatio. (The actual damage may undergo additional modification due to range and other conditions)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgHeadShotRatio	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This specifies the multiplier used for headshots that do damage ABOVE g_dmgHeadShotMin.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; float&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 2.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_dmgKnife	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the knife.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 10&lt;br /&gt;
&lt;br /&gt;
== g_dmgSten	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the sten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 14&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 15&lt;br /&gt;
&lt;br /&gt;
== g_dmgPistol==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the pistol weapons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgSMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the SMG weapons (Thompson and MP-40).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG42	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the MG42.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 18&lt;br /&gt;
&lt;br /&gt;
== g_dmgMG	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an emplaced MG.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 20&lt;br /&gt;
&lt;br /&gt;
== g_dmgFG42Scope==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the FG-42 when scoped.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 30&lt;br /&gt;
&lt;br /&gt;
== g_dmgInfRifle	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by unscoped rifles (K43 and Garand).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 34&lt;br /&gt;
&lt;br /&gt;
== g_dmgSniper	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a scoped Garand or K43.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgFlamer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by the a flamethrower. Also controls the per-tick damage done to a player who has been set on fire by a flamethrower and is still burning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 5&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenade==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGrenadeRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a grenade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncher	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgGLauncherRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blas radius of an engineer&#039;s grenade-launcher grenades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgTMine==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a tripmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 260&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmine	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgLandmineRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a landmine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchel	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgSatchelRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a satchel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzer	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgPanzerRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a panzerfaust rocket.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 300&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortar==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgMortarRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a mortar round.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamite	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDynamiteRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of a dynamite.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAir	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgAirRadius==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of an airstrike.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArty	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done PER BOMB by artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour (can do damage, but to a very small radius, making damage unlikely)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgArtyRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius PER BOMB of artillery fire. If this value is non-zero, the spotting round will follow normal ET behaviour. The spotting round can do damage, but to a very small radius making damage unlikely.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 400&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolition	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Amount of damage done by Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1100&lt;br /&gt;
&lt;br /&gt;
== g_dmgDemolitionRadius	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blast radius of Improvised Demolition.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 250&lt;br /&gt;
&lt;br /&gt;
== g_knifeThrowDamage	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage a thrown knife will cause to enemy.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 50&lt;br /&gt;
&lt;br /&gt;
== g_dmgPPSh==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The amount of damage done by a PPSh.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 19&lt;br /&gt;
&lt;br /&gt;
= Debugging =&lt;br /&gt;
&lt;br /&gt;
== g_debugBullets ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, server will produce debug information of fired bullets. Enabling g_debugBullets require sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If 1 is set as if the cvar was a bitmask, blue lines for the fired shots is enabled. With any positive value, server will print impact area on the hit player to the center of the screen. Possibilities are &amp;quot;Head Shot&amp;quot;, &amp;quot;Body Shot&amp;quot;, &amp;quot;Leg Shot&amp;quot; and &amp;quot;Arm Shot&amp;quot;. If the value is set to 2 or more, the bounding box of the hit player is drawn. If the value is set to 3 or more, the hit player head box is drawn. If the value is set to -2 or smaller, boxes are drawn to impacted surfaces.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default: 0&lt;br /&gt;
&lt;br /&gt;
== g_debugDamage ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set, damage inflicted to players is logged into the server log. Enabling this cvar requiers sv_cheats to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 0&lt;br /&gt;
&lt;br /&gt;
== g_debugHitboxes ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is enabled, hit boxes around the players are drawn. This cvar does not require sv_cheats. However, do note that if this is enabled, the server will produce constant flow of extra entities, which will make playing impossible on a live server. Test this with only couple players to prevent everyone from lagging out.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; integer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If this cvar is set to any positive value, boxes are drawn. If the value is set to 8 or more, it will draw only the boxes that are used for the initial trace. Each bullet causes two traces to happen, where the second trace confirms the impact on the more refined area of the player body, such as head or legs.&lt;br /&gt;
&lt;br /&gt;
= Deprecated Cvars =&lt;br /&gt;
&lt;br /&gt;
== g_realHead==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable ETPro headboxes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; [0|1]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 Regular headbox positions.&lt;br /&gt;
&lt;br /&gt;
1 Server tracks the animations so the headbox will match the playermodels exactly. This is the recommended value.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This code was originally from ETPro (b_realhead).  It was contributed by zinx and added to ETPub by forty. silEnT is based on the ETPub source and this code has not been altered from the ETPub.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.1 - The option was removed. The ETPro headboxes are always used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== g_spoofOptions	==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Options for PunkBuster GUID and IP spoof detections and behaviour.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; bitmask&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 Kick for GUIDspoofing.&lt;br /&gt;
&lt;br /&gt;
2 Kick for IPspoofing.&lt;br /&gt;
&lt;br /&gt;
4 Display a global warning when someone is GUIDspoofing. (When flag 1 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
8 Display a global warning when someone is IPspoofing. (When flag 2 is set, this will not work)&lt;br /&gt;
&lt;br /&gt;
16 Don&#039;t use the stored GUID. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
32 Don&#039;t use the stored IP. (This option is a higher security risk.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do NOT change this CVAR unless you encounter problems!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This cvar was removed in version 0.5.1 and spoofing is checked unconditionally in 0.5.1 and later versions.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1212</id>
		<title>Silent Shrubbot</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Shrubbot&amp;diff=1212"/>
		<updated>2015-03-02T23:59:10Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* What Is Shrubbot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What Is Shrubbot=&lt;br /&gt;
Shrubbot is an invention of Ryan Mannion. Shrubbot is an admin system that identifies the admin leveled players from silEnT and PunkBuster GUIDs without the need for passwords. Shrubbot is also very flexible and allows creating many different admin levels with entirely different command sets. silEnT shrubbot is based on the work of the ETPub team. silEnT extends the functionality of the shrubbot where ever it is needed. Including user database that holds all the players that have visited the server. To access this database, new commands have been added to the original shrubbot command set. Some commands have been renamed to ease their use and so that they resemble commands from other ET mods that have advanced admin systems.  &lt;br /&gt;
&lt;br /&gt;
If you want to use shrubbot, the cvar g_dbDirectory must be set. If it is not set, the shrubbot will not be in use. If you want to edit the default levels, you must create or copy existing shrubbot.cfg file to the directory defined by the g_dbDirectory setting. In case shrubbot command like !ban is used against a player and a shrubbot.cfg file does not already exist, a new shrubbot.cfg file is created  to store the needed data. &lt;br /&gt;
&lt;br /&gt;
The created file will also have the default level settings written to it. This file can be freely edited by hand and then, after !readconfig command has been issued, the changes take effect on the server.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Commands =&lt;br /&gt;
&lt;br /&gt;
== !admintest ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s current shrubbot admin level in global chat. When the NAME or SLOT are added and the user has the right shrubbot permission, the level of another player will be shown. However, if the target has incognito shrubbot flag, then 0 level is displayed regardless who does !admintest on him/her.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !admintest [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; a&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !aliases ==&lt;br /&gt;
&lt;br /&gt;
Prints out player&#039;s stored aliases. Aliases are printed in the last seen first order.If there are more stored aliases than fit on one page, optional page parameter can be used to access different pages. The number of stored aliases depends of the g_dbMaxAliases cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !alises [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !ban ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off the server and will not let them connect again for SECONDS seconds, or, if a modifier (m, h, d, or w) is used, a given amount of time.  For example:&lt;br /&gt;
&lt;br /&gt;
90 = 90 seconds&lt;br /&gt;
&lt;br /&gt;
15m = 15 minutes&lt;br /&gt;
&lt;br /&gt;
3h = 3 hours&lt;br /&gt;
&lt;br /&gt;
5d = 5 days&lt;br /&gt;
&lt;br /&gt;
1w = 1 week&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !ban (NAME|SLOT) (SECONDS|TIME_WITH_MODIFIER) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !baninfo ==&lt;br /&gt;
&lt;br /&gt;
Shows detailed information of a ban in the ban list. Find the ban number with !showbans command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !baninfo (BAN NUMBER)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
== !burn ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME on fire.  REASON will be center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !burn (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; U&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !cancelvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress fail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !cancelvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; c&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !country ==&lt;br /&gt;
&lt;br /&gt;
Displays the country of the player. This command works only if GeoIP is enabled on server [http://mygamingtalk.com/wiki/index.php/Silent_Mod_Server_Cvar#g_countryFlags g_countryFlags]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !country&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.8.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== !crazygravity ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_gravity changes with 30 second interval. If enabled, the crazy gravity is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazygravity (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !crazyspeed ==&lt;br /&gt;
&lt;br /&gt;
Enables random g_speed changes with 30 second interval. If enabled, the crazy speed is automatically disabled at map end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !crazyspeed (ON|OFF)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.2&lt;br /&gt;
&lt;br /&gt;
== !dewarn ==&lt;br /&gt;
&lt;br /&gt;
Shows all the warnings of a user. When warning number is used, the warning with that number will be removed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !dewarn (NAME|SLOT) [WARNING#]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !disorient ==&lt;br /&gt;
&lt;br /&gt;
Turns the view upside down for the client in slot number SLOT or with name containing NAME.  If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !disorient (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !finger ==&lt;br /&gt;
&lt;br /&gt;
Display the slot, partial guid, ip and clientversion of a player.&lt;br /&gt;
&lt;br /&gt;
NOTE: This command should be available only to the highest server admins!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !finger (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; e&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !freeze ==&lt;br /&gt;
&lt;br /&gt;
Freezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it freezes all players. Frozen player(s) cannot receive damage during this time. If REASON is specified it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !freeze [NAME|SLOT] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !gib ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs the player in slot number SLOT or with name containing NAME. If name is -1 or all or if no name is entered, everybody will be gibbed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !gib (NAME|SLOT|-1|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; g&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !giba ==&lt;br /&gt;
&lt;br /&gt;
Kills and gibs all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !giba&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !help ==&lt;br /&gt;
&lt;br /&gt;
Lists all the available shrubbot commands. If COMMAND is given, then prints the help of that specific command. !help is always available to all clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !help [COMMAND]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !howfair ==&lt;br /&gt;
&lt;br /&gt;
Prints a simple summary to everyone on the chat of team fairness based on player kill rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !howfair&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !kick ==&lt;br /&gt;
&lt;br /&gt;
Kicks the player in slot number SLOT or with name containing NAME off of the server. REASON is given to the client as the drop message. The client will be banned for 2 minutes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !kick (NAME|SLOT) REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; k&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !levinfo ==&lt;br /&gt;
&lt;br /&gt;
Lists all the details of the specific admin level. The listed information includes The name of the level, the greeting, the greeting sound path and the privilege flags for the level.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levinfo (Admin Level)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !levlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all the admin levels loaded from the shrubbot.cfg.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !levlist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !list ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of information about the connected players.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* slot number&lt;br /&gt;
&lt;br /&gt;
* team R=axis B=allies S=spectator C=connecting&lt;br /&gt;
&lt;br /&gt;
* first letter of fireteam name&lt;br /&gt;
&lt;br /&gt;
* admin level (and level name)&lt;br /&gt;
&lt;br /&gt;
* last 8 digits of guid&lt;br /&gt;
&lt;br /&gt;
* M if muted&lt;br /&gt;
&lt;br /&gt;
* W if warned&lt;br /&gt;
&lt;br /&gt;
* name&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !list&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; i&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !listteams ==&lt;br /&gt;
&lt;br /&gt;
Prints out a list of statistical information about each team. This lists ends with ratings information based on how likely each team is to win the current map. The team with more points is LESS likely to win, therefore a good way to balance the teams is to join the team with more points, or move people to that team, until the points are about even.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !listteams&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; I&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lock ==&lt;br /&gt;
&lt;br /&gt;
Locks the specified team. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !lol ==&lt;br /&gt;
&lt;br /&gt;
Makes all players drop grenades.  If NAME or SLOT is provided only that player will drop grenades.  GRENADES is the number of grenades to be dropped (default is 1, maximum is 16).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !lol [NAME|SLOT] [GRENADES]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; x&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !mute ==&lt;br /&gt;
&lt;br /&gt;
Mutes a player in a slot number SLOT or with a name containing NAME. TIME and REASON are optional. See !ban for more information on modifiers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !mute (NAME|SLOT) [SECONDS|TIME_WITH_MODIFIER] REASON&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !news ==&lt;br /&gt;
&lt;br /&gt;
Plays the map specific news audio to all players if it is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !news&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; W&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !nextmap ==&lt;br /&gt;
&lt;br /&gt;
Moves to the next map in campaign or in the objective cycle end game intermission is skipped. With mapvoting gametype the game will go to the intermission.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !nextmap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; n&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog&#039;&#039;&#039;&lt;br /&gt;
* 0.4.0 The !nextmap will go to the intermission map voting when the gametype is set to 7 and the g_mapVoteFlags bitmask has flag 16 set.&lt;br /&gt;
* 0.5.1 The g_mapVoteFlags flag 16 was removed and the game will always go to the intermission with map voting game type. If old behaviour is needed, admin can create custom command executing &amp;quot;vstr nextmap&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== !orient ==&lt;br /&gt;
&lt;br /&gt;
Reverses the action of !disorient for the client in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !orient (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; d&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !panzerwar ==&lt;br /&gt;
&lt;br /&gt;
Enables panzerwar game mode. All the players will have their main weapon changed to panzerfaust.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !panzerwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !passvote ==&lt;br /&gt;
&lt;br /&gt;
Makes a vote in progress pass.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !passvote&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; V&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pause ==&lt;br /&gt;
&lt;br /&gt;
Pauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pip ==&lt;br /&gt;
&lt;br /&gt;
Draws sparks (pixie dust) around the player in slot number SLOT or with name containing NAME. Does it to all players if NAME/SLOT is not providied.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pip [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !pop ==&lt;br /&gt;
&lt;br /&gt;
Pops the helmet off from a player in a slot number SLOT or with a name containing NAME. If no parameter is provided, it pops the helmets off from all the players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !pop [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !putteam ==&lt;br /&gt;
&lt;br /&gt;
Moves a player in a slot number SLOT or with a name containing NAME to the indicated team.&lt;br /&gt;
&lt;br /&gt;
* r - Allies&lt;br /&gt;
&lt;br /&gt;
* b - Axis&lt;br /&gt;
&lt;br /&gt;
* s - Spectators&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !putteam (NAME|SLOT) (r|b|s)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; p&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tryanny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !readconfig ==&lt;br /&gt;
&lt;br /&gt;
Reads shrubbot.cfg file from the directory set by g_dbDirectory cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readconfig&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; G&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rename ==&lt;br /&gt;
&lt;br /&gt;
Sets the player in slot number SLOT or with name containing NAME to NEWNAME. The name change will not be persistent. The user database will store the renamed name for the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rename (NAME|SLOT) NEWNAME&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; N&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !reset ==&lt;br /&gt;
&lt;br /&gt;
Resets the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !reset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetmyxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player who runs this command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetmyxp&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; M&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !resetxp ==&lt;br /&gt;
&lt;br /&gt;
Clears all XP and skillpoints for the player in the slot number SLOT or with the name containing NAME.  If reason is provided it is printed to the client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetxp (NAME|SLOT) [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !restart ==&lt;br /&gt;
&lt;br /&gt;
Restarts the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; r&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !riflewar ==&lt;br /&gt;
&lt;br /&gt;
Enables riflewar game mode. All the players will have their main weapon changed to either K43 or Garand. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !riflewar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !rmsubnetban ==&lt;br /&gt;
&lt;br /&gt;
Removes subnet ban. The given subnet ban number can be found using !subnets command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !rmsubnetban [ban number]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !setlevel ==&lt;br /&gt;
&lt;br /&gt;
Sets the connected player in the slot number SLOT or with name containing NAME to the level indicated by LEVEL. A player cannot !setlevel another player to a lever higher than him/herself.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !setlevel (NAME|SLOT) LEVEL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; s&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !showbans ==&lt;br /&gt;
&lt;br /&gt;
Lists up to 30 shrubbot bans currently in effect.  The columns are:&lt;br /&gt;
&lt;br /&gt;
* ban number&lt;br /&gt;
&lt;br /&gt;
* banned player&#039;s name&lt;br /&gt;
&lt;br /&gt;
* date of the ban&lt;br /&gt;
&lt;br /&gt;
* name of the banning admin&lt;br /&gt;
&lt;br /&gt;
* when the ban will expire&lt;br /&gt;
&lt;br /&gt;
* reason for the ban&lt;br /&gt;
&lt;br /&gt;
If SKIP is provided, that number of bans are skipped before printing starts. SKIP can also be negative (e.g. &#039;!showbans -10&#039; would display the last 10 bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !showbans [SKIP]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !shuffle ==&lt;br /&gt;
&lt;br /&gt;
Shuffles teams, but does NOT restart (see !restart).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !shuffle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; S&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !slap ==&lt;br /&gt;
&lt;br /&gt;
Does DAMAGE (default 20) damage to player in slot SLOT or with name containing NAME. If REASON is specified it&#039;s center-printed to the victim.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !slap (NAME|SLOT) [DAMAGE] [REASON]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; A&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !sniperwar ==&lt;br /&gt;
&lt;br /&gt;
Enables sniperwar game mode. All the players will have their main weapon changed to sniper rifles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !sniperwar [on|off]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; q&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spec999 ==&lt;br /&gt;
&lt;br /&gt;
Moves all the players with a ping of 999 to the spectators team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spec999&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; P&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spree ==&lt;br /&gt;
&lt;br /&gt;
Show the players current killing spree count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spree&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !spreerecord ==&lt;br /&gt;
&lt;br /&gt;
Displays the map and the overall spreerecord.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !spreerecord&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !stats ==&lt;br /&gt;
&lt;br /&gt;
Displays the Thompson, MP40 and PPSh total kills and deaths, kills and deaths during the map and accuracy, headshotratio and headshot distance during the map. Lists all connected players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !stats&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; t&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !subnets ==&lt;br /&gt;
&lt;br /&gt;
This command displays all the issued subnet bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnets (start at)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; B&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !subnetban ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can issue subnet ban. Subnet ban is a ban where the connecting player IP is matched against a larger IP range. The command accepts only subnets between range x.* - x.x.x.*. If the admin attempts to issue subnet ban that would ban himself the command refuses to add the subnet. This can be circumvented using rcon commands. If admin wants to add a subnet that would ban himself he must first whitelist himself with !userwl command. If silEnT can confirm the admin can connect the subnet ban is added. The command accepts full IP as it&#039;s parameter in which case the subnet is created to the x.x.x.* address. To remove subnet bans admin can use the !rmsubnetban command. The syntax with this commnd is the same kind with ban and userban commandand reason andtime can be given. The reason should be given so that any player connecting would know the reason for not being able to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !subnetban [subnet] (time) (reason)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Require g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0.6.2 - Octets can be cut from inside with &#039;x&#039;. For example, &amp;quot;!subnetban 12x&amp;quot; will ban all IP addresses matching 12x.xxx.xxx.xxx.&lt;br /&gt;
&lt;br /&gt;
== !swap ==&lt;br /&gt;
&lt;br /&gt;
Swaps the players to the opposite team.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !swap&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; w&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !time ==&lt;br /&gt;
&lt;br /&gt;
Prints out localtime of the client in the chat. No other client can see this time message. The command doesn&#039;t have a flag but it is available to all clients always.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !time&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; No permission required&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throw ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throw (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !tspree ==&lt;br /&gt;
&lt;br /&gt;
Show the top n current killing spree (default top 5).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !tspree [amount]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; E&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unban ==&lt;br /&gt;
&lt;br /&gt;
Removes the ban that !showbans lists as BAN_NUMBER.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unban BAN_NUMBER&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; b&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unfreeze ==&lt;br /&gt;
&lt;br /&gt;
Unfreezes the client in slot number SLOT or with name containing NAME. If no parameter is provided it unfreezes all players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unfreeze [NAME|SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; F&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unpause ==&lt;br /&gt;
&lt;br /&gt;
Unpauses the match.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unpause&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; Z&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unmute ==&lt;br /&gt;
&lt;br /&gt;
Unmutes the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unmute (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; m&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !unlock ==&lt;br /&gt;
&lt;br /&gt;
Unlocks the team specified. Recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !unlock (r|b|s|all)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; K&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !uptime ==&lt;br /&gt;
&lt;br /&gt;
Show how long the server has been up and running.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !uptime&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; u&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !fling ==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !fling (NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launch==&lt;br /&gt;
&lt;br /&gt;
Send the player in slot number SLOT or with name containing NAME flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launch(NAME|SLOT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; l&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !throwa ==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !throwa&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !flinga==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !flinga&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !launcha==&lt;br /&gt;
&lt;br /&gt;
Sends all players flying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !launcha&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; L&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; Yes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !warn ==&lt;br /&gt;
&lt;br /&gt;
Plays the whistle sound and center-prints WARNING to the player in slot number SLOT or with name containing NAME.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !warn (NAME|SLOT) [WARNING]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; R&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
= User Database &amp;amp; Commands =&lt;br /&gt;
&lt;br /&gt;
User database is intended to store information of all the players that connect to the server. To enable user database g_dbDirectory must be set. The database stores information to identify different players and also XP data, rating data, overall stats data and shrubbot admin data. PunkBuster GUIDs are used to identify single players. If a player joining the server doesn&#039;t have a PB GUID, data about that player can not be saved. However, the user database can still be used to store data of those players who have enabled punkbuster on the client side.&lt;br /&gt;
&lt;br /&gt;
Shrubbot includes functionality for server admins to handle database userdata. All commands that handle users in the database will take the last 8 characters of the player PunkBuster GUID to identify the player to edit. This is not an unique identification but because EvenBalance has seen this to have enough uniqueness, it is good for the use of the database commands. Internally, the full GUID is used to identify the players.&lt;br /&gt;
&lt;br /&gt;
== !aliasesdel ==&lt;br /&gt;
&lt;br /&gt;
Command removes all the aliases from the player identified by the 8 character silEnT ID.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliasesdel [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !aliassearch ==&lt;br /&gt;
&lt;br /&gt;
This command searches the whole aliases database for the pattern in the names. Note, this command is the most resource intensive shrubbot command of all commands, and it is not recommended to be used without a reason. How fast it performs in practice depends of the aliases database size.&lt;br /&gt;
&lt;br /&gt;
For each player the following information is shown:&lt;br /&gt;
&lt;br /&gt;
:* identity information (silEnT ID)&lt;br /&gt;
&lt;br /&gt;
:* each used alias that fits the search pattern&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was first seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias when it was last seen&lt;br /&gt;
&lt;br /&gt;
:* for each alias the total playtime with it&lt;br /&gt;
&lt;br /&gt;
To see all the aliases of the found player, you can use &amp;quot;!userinfo aliases&amp;quot; command. In the case of all the data not fitting in one page, you can give an optional start parameter. The start parameter corresponds to the numbers shown in the first column of the results. So that each player has its own number and under that number, all the matching aliases from that player are printed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !aliassearch [name] [start]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.6.0&lt;br /&gt;
&lt;br /&gt;
== !confirm ==&lt;br /&gt;
&lt;br /&gt;
Confirms the player identity with a protected admin level. As a result, the confirmed player and the server will transfer authentication information allowing the player to use admin commands from thereafter. Unconfirmed players are players with admin level that is protected but the server can not ensure the identity. This usually happens when players admin level changes with offlinecommands or the protected levels are extended. This command does not give the player admin levels, it only confirms the identity of a player whos admin level is already set. Also, if the player loses his admin level identification, this command can not be used to reinstate it.&lt;br /&gt;
&lt;br /&gt;
This command is safe to be given even to the lower levels of admins.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !confirm [SLOT]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.0&lt;br /&gt;
&lt;br /&gt;
== !userlist ==&lt;br /&gt;
&lt;br /&gt;
Lists all users in the database. If PAGE is given, the list starts from that page. If PAGE is not given the first page of the database is printed. The command prints all users, including clients that have connected during the level time and are not yet in the database. The connected clients are always printed first and then the rest of the userbase.&lt;br /&gt;
&lt;br /&gt;
The printed rows have the following columns:&lt;br /&gt;
:*&#039;#&#039; ; This is the serial number of the user in the printout. The number doesn&#039;t correspond to anything in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;silEnT ID&#039; ; This is the 8 character silEnT GUID of the player. This is used to identify different players in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;PBGUID&#039; ; This is the 8 character PB GUID of the user. This is used to identify different users in the database.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Last Seen&#039; ;	This tells how long time ago the user was last seen on the server. For connected clients, this will print &amp;quot;connected&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:*&#039;IP&#039; ; This tells the last IP address user has had on the server.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Ban&#039; ; This is the ban number if the player is banned from the server. If the player is whitelisted from IP bans, this column reads white capital W.&lt;br /&gt;
&lt;br /&gt;
:*&#039;Name&#039; ; This tells the last name with user has been saved on the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With userlist command an admin can list all the users saved in the database and those that are connected page by page. Optional page number can be given to the command to tell which page is to be displayed about the users. One page can have up to 20 players printed. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userlist [PAGE]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.4.0 - New column &#039;Ban&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - New column &#039;silEnT ID&#039; is added to the output.&lt;br /&gt;
&lt;br /&gt;
== !userinfo ==&lt;br /&gt;
&lt;br /&gt;
Displays all information that is stored about the user in the database.&lt;br /&gt;
&lt;br /&gt;
This information includes:&lt;br /&gt;
&lt;br /&gt;
:*identity information (name, IP, 8 character PunkBuster GUID, silEnT ID, Client Identification)&lt;br /&gt;
&lt;br /&gt;
:*admin level&lt;br /&gt;
&lt;br /&gt;
:*personal greeting&lt;br /&gt;
&lt;br /&gt;
:*personal greeting sound&lt;br /&gt;
&lt;br /&gt;
:*personal shrubbot flags&lt;br /&gt;
&lt;br /&gt;
:*saved XP per skill&lt;br /&gt;
&lt;br /&gt;
:*rating values&lt;br /&gt;
&lt;br /&gt;
:*total kills and deaths with SMG weapons&lt;br /&gt;
&lt;br /&gt;
:*the ban number of the player or whitelisting&lt;br /&gt;
&lt;br /&gt;
:*list of stored aliases if the aliases database is enabled on the server&lt;br /&gt;
&lt;br /&gt;
Command can optionally print player&#039;s stored aliases if the optional aliases parameter is given and the aliases database is enabled by setting g_dbMaxAliases to a positive integer. If printed aliases don&#039;t fit in one page, optional page parameter can be used to access different pages. &lt;br /&gt;
&lt;br /&gt;
Command requires the last 8 characters of the player silEnT GUID. This GUID can be found with !userlist or !usersearch commands. This command works for both online and offline players.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userinfo [silEnT ID] [aliases [page]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:0.4.0 - Information of possible ban and whitelisting is added.&lt;br /&gt;
&lt;br /&gt;
:0.5.0 - silEnT ID is added.&lt;br /&gt;
&lt;br /&gt;
:0.6.0 - Aliases option is added.&lt;br /&gt;
&lt;br /&gt;
== !useredit ==&lt;br /&gt;
&lt;br /&gt;
Command is used to edit explicit userdata in the database. The command format is:&lt;br /&gt;
&lt;br /&gt;
!useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
The command parameters in detail:&lt;br /&gt;
&lt;br /&gt;
:*silEnT ID - This is the last 8 characters of the silEnT GUID of the player. This is needed to identify the player to edit.&lt;br /&gt;
&lt;br /&gt;
:*add - If the command is given this parameter, the value(s) in the [new value] field will be added to the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*remove - If the command is given this parameter, the value(s) in the [new value] field will be removed from the player&#039;s personal flags.&lt;br /&gt;
&lt;br /&gt;
:*level	- If the command is given this parameter, the value in the [new value] field will be set as the players new level. The level may not be higher then the level of the player executing the command.&lt;br /&gt;
&lt;br /&gt;
:*greeting - If the command is given this parameter, the value in the [new value] field will be the players new personal greeting. If the [new value] field is empty, the personal greeting is cleared.&lt;br /&gt;
&lt;br /&gt;
:*sound	- If the command is given this parameter, the value in the [new value] field will be the file path to the players new personal greeting sound. If the [new value] field is empty, the personal greeting sound is cleared.&lt;br /&gt;
&lt;br /&gt;
:*new value - This field is used to give values to the command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the optional new value field is not set with greeting or sound parameter, the value will be set to empty and level values will be used again with these players.&lt;br /&gt;
&lt;br /&gt;
This command works with online and offline players. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !useredit [silEnT ID] [add|remove|level|greeting|sound] [new value]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !usereditpb.&lt;br /&gt;
&lt;br /&gt;
== !givexp==&lt;br /&gt;
&lt;br /&gt;
Command gives the online or offline player identified by PBGUID a defined amount of XP points to the selected skill. The possible skills are:&lt;br /&gt;
&lt;br /&gt;
sold	Soldier or Heavy Weapons&lt;br /&gt;
&lt;br /&gt;
med	Medics or First Aid&lt;br /&gt;
&lt;br /&gt;
eng	 Engineering or Explosives and Construction&lt;br /&gt;
&lt;br /&gt;
fops	Field Ops or Signals&lt;br /&gt;
&lt;br /&gt;
cov	Covert Ops or Military Intelligence and Scoped Weapons&lt;br /&gt;
&lt;br /&gt;
light	Light Weapons&lt;br /&gt;
&lt;br /&gt;
battle	Battle Sense&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !givexp [silEnT ID] [sold|med|eng|fops|cov|light|battle] [amount to add]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; 	[&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !givexppb.&lt;br /&gt;
&lt;br /&gt;
== !userban ==&lt;br /&gt;
&lt;br /&gt;
Command bans user indentified by the 8 character silEnT GUID from the server. The data required for ban is taken from the database and the banned user does not need to be online when the command is given. Bot&#039;s cannot be banned with this command. Note that the bans are written in the human readable config file and you can still write the bans by hand if desired. Also, removing of the bans can be done by hand if desired. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userban [silEnT ID] [time] [reason]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userbanpb.&lt;br /&gt;
&lt;br /&gt;
== !userwl ==&lt;br /&gt;
&lt;br /&gt;
With this command admin can whitelist or remove whitelisting from any player. Whitelisting means that the player IP is not checked against any IP bans. Including subnet bans and individual bans.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userwl [silEnT GUID] [add|remove]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; .&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.4.0&lt;br /&gt;
&lt;br /&gt;
== !userdelete ==&lt;br /&gt;
&lt;br /&gt;
Command removes the user identified by the 8 character silEnT GUID from the database. The actual actions are taken at the level end if needed. However, once the !userdelete command has been issued to the user, the information of the user is no longer available and after the shutdown game, it is permanently lost.&lt;br /&gt;
&lt;br /&gt;
If the removed player is connected to the server while removing, a new entry is written to that player. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !userdelete [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; [	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - The command now uses the last 8 characters of the silEnT GUID instead of the PB GUID. The backward compatible version of the command is named !userdeletepb.&lt;br /&gt;
&lt;br /&gt;
== !usersearch ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can search the database for players with specific parameters. Arguments to the command can be pattern in the name, user admin system level and the beginning of the IP address. Additional page number can be given when the amount of found results exceed what can be shown in one page. All the arguments can be given in one command in any order. Any one of the arguments can be omitted, but each time when command is given at least one argument on top of the optional page number must be given. This command searches stored information only from the database. Connected players are not included unless they are already stored into the database.&lt;br /&gt;
&lt;br /&gt;
This command can be performance intensive and it is not recommended to use it only for maintenance operations. The command will internally always try to optimise itself. If the command is given repeatedly with same arguments but only changing the page number, new searches are not performed but only different pages of the already found results are displayed. The optimisations include that the silEnT will try to use the already found results as the basis for the new search (e.g. &amp;quot;!usersearch name gao&amp;quot; followed by &amp;quot;!usersearch name gaoe&amp;quot; will first search the whole db to find all users with the pattern gao in their names and the follow up search will refine the already found results for gaoe). The maximum amount of results one search can return is 256 users. Users are displayed in the console in pages with 20 users on each page. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !usersearch [name (name)]|&amp;amp;[level (level)]|&amp;amp;[IP (IP)] [page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ]	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.2.0&lt;br /&gt;
&lt;br /&gt;
== !updatepbguid ==&lt;br /&gt;
&lt;br /&gt;
Updates the PB GUID that is stored in the database to the one which the player is currently using. With the exception that empty, invalid or dublicated PB GUIDs are not saved to the database. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !updatepbguid [Name|Slot]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; ,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.5.2&lt;br /&gt;
&lt;br /&gt;
== !readadmins ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can read admin definitions from a specific admins.cfg file. The file must be placed in the directory pointed by g_dbDirectory server cvar. The file may have only admin definition blocks.&lt;br /&gt;
Admin definitions use always the following syntax. The syntax is exactly the same used by the ETPub.&lt;br /&gt;
&lt;br /&gt;
[admin]&lt;br /&gt;
&lt;br /&gt;
name     = name of the admin (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid    = full 32 character silEnT GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
guid     = full 32 character PB GUID (this field is used to identify players in the database)&amp;lt;br/&amp;gt;&lt;br /&gt;
level    = level number&amp;lt;br/&amp;gt;&lt;br /&gt;
flags    = personal admin flags (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting = personal greeting (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound = path to personal greeting sound (can be left empty)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the database doesn&#039;t yet have the player, it will be added there. Those players will have the last seen field reading NEVER with !userlist and !usersearch command outputs. If the player already exists in the database, the admin values will be overwritten with the ones in read from the admins.cfg file. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !readadmins&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; )	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Change Log:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* Starting from silEnT 0.5.0, the field sguid was added to the admin blocks. This allows adding admins using the silEnT GUIDs to identify them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example::&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name = ETPlayer&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 12345678912345678912345678912345 &amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 5&amp;lt;br/&amp;gt;&lt;br /&gt;
flags =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[admin]&amp;lt;br/&amp;gt;&lt;br /&gt;
name =&amp;lt;br/&amp;gt;&lt;br /&gt;
sguid = 98765432198765432198765432198765&amp;lt;br/&amp;gt;&lt;br /&gt;
guid = 12345678912345678912345678912345&amp;lt;br/&amp;gt;&lt;br /&gt;
level = 3&amp;lt;br/&amp;gt;&lt;br /&gt;
flags = AbC&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting =&amp;lt;br/&amp;gt;&lt;br /&gt;
greeting_sound =&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== !resetpls ==&lt;br /&gt;
&lt;br /&gt;
With this command an admin can reset all stored statistics from an online or an offline player. The stored statistics include total SMG kills and deaths, the player K/D rating and PRW rating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax:&#039;&#039;&#039; !resetpls [silEnT ID]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Permission Flag:&#039;&#039;&#039; (	&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requires g_tyranny:&#039;&#039;&#039; No&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum required version:&#039;&#039;&#039; 0.3.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changelog:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:* 0.5.0 - the command was changed to use silEnT ID instead of the last 8 characters of the PB GUID. There is no backward compatible command for PB GUIDs.&lt;br /&gt;
&lt;br /&gt;
= List of Permission Flags =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to privileges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:1 - Cannot be vote kicked, vote muted, or complained against.&lt;br /&gt;
:2 - Cannot be censored.&lt;br /&gt;
:3 - Can run shrubbot commands silently by adding &#039;/&#039; character in front of the command.&lt;br /&gt;
:4 - Can see Axis/Allies team chats as a spectator.&lt;br /&gt;
:5 - Can switch teams any time, regardless of balance.&lt;br /&gt;
:6 - Does not need to specify a reason for !mute, !kick or !ban.&lt;br /&gt;
:7 - Can call a vote at any time (regardless of disabled voting or voting limitations).&lt;br /&gt;
:8 - Does not need to specify a duration for a ban (defaults to PERMANENT).&lt;br /&gt;
:9 - Can do shrubbot commands via team and fireteam chats.&lt;br /&gt;
:0 - Is immune to g_inactivity and g_spectatorInactivity settings.&lt;br /&gt;
:! - Is immune to all shrubbot commands (useful for server admins). Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:@ - &amp;quot;incognito&amp;quot; flag shows the admin as level 0 with no a.k.a info in the output of !listplayers. Note, this flag must be specified explicitly the * flag does not grant it.&lt;br /&gt;
:$ - Can do !admintest on other players.&lt;br /&gt;
:~ - Can read and write the adminchat with the /ma command. All referees and all other players with the ~ flag will be able to read this chat.&lt;br /&gt;
:&amp;amp; - Can rename himself regardless of g_maxNameChanges limit.&lt;br /&gt;
:? - Can see all private messages while being in spectators. g_tyranny must be set for this flag to take effect.&lt;br /&gt;
:/ - Cannot send private messages. Otherwise normal privileges.&lt;br /&gt;
: # - Cannot call votes.&lt;br /&gt;
: : - Can confirm admin identity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flags to commands&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:A - !slap&lt;br /&gt;
:a - !admintest&lt;br /&gt;
:B - !showbans, !subnets&lt;br /&gt;
:b - !ban, !unban&lt;br /&gt;
:C - !crazygravity, !crazyspeed&lt;br /&gt;
:c - !cancelvote&lt;br /&gt;
:d - !disorient, !orient&lt;br /&gt;
:E - !spree, !spreerecord, !tspree&lt;br /&gt;
:e - !baninfo, !finger, !aliases&lt;br /&gt;
:F - !freeze, !unfreeze&lt;br /&gt;
:G - !readconfig&lt;br /&gt;
:g - !gib&lt;br /&gt;
:I - !howfair, !listteams&lt;br /&gt;
:i - !list&lt;br /&gt;
:K - !lock, !unlock&lt;br /&gt;
:k - !kick&lt;br /&gt;
:L - !flinga, !launcha, !throwa&lt;br /&gt;
:l - !fling, !launch, !throw&lt;br /&gt;
:M - !resetmyxp&lt;br /&gt;
:m - !mute, !unmute&lt;br /&gt;
:N - !rename&lt;br /&gt;
:n - !nextmap&lt;br /&gt;
:P - !spec999&lt;br /&gt;
:p - !putteam&lt;br /&gt;
:R - !warn, !dewarn&lt;br /&gt;
:r - !reset, !restart&lt;br /&gt;
:S - !shuffle&lt;br /&gt;
:s - !setlevel, !levlist, !levinfo&lt;br /&gt;
:t - !stats&lt;br /&gt;
:U - !burn&lt;br /&gt;
:u - !uptime&lt;br /&gt;
:Q - !giba&lt;br /&gt;
:q - !panzerwar, !riflewar, !sniperwar&lt;br /&gt;
:V - !passvote&lt;br /&gt;
:W - !news&lt;br /&gt;
:w - !swap&lt;br /&gt;
:X - !resetxp&lt;br /&gt;
:x - !lol&lt;br /&gt;
:Z - !pause, !unpause&lt;br /&gt;
:z - !pip, !pop&lt;br /&gt;
:] - !userlist, !userinfo, !userban, !usersearch, !aliassearch&lt;br /&gt;
:[ - !useredit, !givexp, !userdelete, !aliasesdel&lt;br /&gt;
:) - !readadmins&lt;br /&gt;
:( - !resetpls&lt;br /&gt;
:. - !userwl, !rmsubnetban, !subnetban&lt;br /&gt;
:, - !updatepbguid&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Files =&lt;br /&gt;
&lt;br /&gt;
To use shrubbot the g_dbDirectory must be set. All the shrubbot files are placed into that directory.&lt;br /&gt;
&lt;br /&gt;
== shrubbot.cfg ==&lt;br /&gt;
&lt;br /&gt;
Shrubbot.cfg is the file that holds all the level definitions, custom commands, bans, warns and subnetbans for the server shrubbot. These configuration settings are hand editable. If the shrubbot.cfg file does not exists when !ban or!setlevel is used, a new one with default settings is created. The settings in the shrubbot.cfg are divided into following data blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[level]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
level    = The level number.&lt;br /&gt;
&lt;br /&gt;
name     = The nameof the level used in e.g. !list command.&lt;br /&gt;
&lt;br /&gt;
flags    = The permission flags for the level.&lt;br /&gt;
&lt;br /&gt;
greeting = The greetingtext that is displayed to every player joining the server with this level.&lt;br /&gt;
&lt;br /&gt;
greeting_sound = The greeting sound played for every playerjoining the server with this level.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[command]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
command  = The name of the command.&lt;br /&gt;
&lt;br /&gt;
exec     = The executed command. These must be commands available to /rcon and these will be executed with rcon privileges.&lt;br /&gt;
&lt;br /&gt;
desc     = The help description of the cmmand.&lt;br /&gt;
&lt;br /&gt;
syntax   = List of parameters if the command uses them. This is used with !help and it is optional.&lt;br /&gt;
&lt;br /&gt;
levels   = Space separated list of levels this command is allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The exec field in the command block can use all the shortcuts that silEnT support. The shortcut is substituted as the command would have been a say from the player who issued the command. In addition to normal shortcuts, it is possible to use [i] which is replaced with the client number of the player who did the command.&lt;br /&gt;
* The exec field in the command block can additionally use parameter placeholders. These are [1] - [9] where the number is the n:th parameter given to the custom command. When these are used, the server will substitute the placeholder with the n:th parameter given to the command.&lt;br /&gt;
* Starting from silEnT 0.2.1, it is possible to add &#039;?&#039; to the parameter placeholders. This will make the server substitute the given string to a player name if only one player matches the string. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [command]&lt;br /&gt;
    command  = crybaby&lt;br /&gt;
    exec     = playsound path/to/sound.wav; chat ^7[1?]^7 is crying like a little baby!&lt;br /&gt;
    desc     = Make someone cry like a baby&lt;br /&gt;
    syntax   = [name]&lt;br /&gt;
    levels   = 0 1 2 3 4 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[ban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the banned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The PunkBuster GUID of the banned player.&lt;br /&gt;
&lt;br /&gt;
sguid    = The silEnT GUID if the banned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP address of the banned player.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the ban was issued.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who banned the player.&lt;br /&gt;
&lt;br /&gt;
ident    = The silEnT ident if available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[subnetban]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
subnet   = The subnet of the ban.&lt;br /&gt;
&lt;br /&gt;
reason   = The reason for the ban.&lt;br /&gt;
&lt;br /&gt;
made     = The time and date when the subnet ban was created.&lt;br /&gt;
&lt;br /&gt;
expires  = When the ban will expire.&lt;br /&gt;
&lt;br /&gt;
banner   = The name of the admin who created the ban.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[warning]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The name of the warned player.&lt;br /&gt;
&lt;br /&gt;
guid     = The silEnT GUID of the warned player.&lt;br /&gt;
&lt;br /&gt;
ip       = The IP addressof the warned player.&lt;br /&gt;
&lt;br /&gt;
warning  = The reason of the warning.&lt;br /&gt;
&lt;br /&gt;
made     = The time when the warning was made.&lt;br /&gt;
&lt;br /&gt;
warner   = The name of the player who warned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[customvote]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
name     = The of the vote shown with the /callvote command. Maximum length 15 characters.&lt;br /&gt;
&lt;br /&gt;
exec     = Command string to execute if the vote passes. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
description = Description of the vote shown with the /callvote command. Maximum length 1023 characters.&lt;br /&gt;
&lt;br /&gt;
votetext = The text that is show for voters. Maximum length 255 characters.&lt;br /&gt;
&lt;br /&gt;
passtext = Optionally, a text that is shown to players if the vote passes.&lt;br /&gt;
&lt;br /&gt;
levels   = Optionally, admins can define the vote to be available to only specific levels. Same format that is used with the custom commands.&lt;br /&gt;
&lt;br /&gt;
== userdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where the silEnT stores information of the players. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== userxdb.db ==&lt;br /&gt;
&lt;br /&gt;
This is a file where the silEnT stores information of the players which is not needed for the most players. This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. It will only refuse to initialize the shrubbot and therefore you must look at the logs if you encounter any problems with shrubbot. The error messages in the log are usually very descriptive.&lt;br /&gt;
&lt;br /&gt;
== useradb.db ==&lt;br /&gt;
&lt;br /&gt;
Starting from silEnT 0.6.0, this file holds the optional aliases database. To enable the database, g_dbMaxAliases cvar must be set to a positive integer. The aliases database can be disabled by setting g_dbMaxAliases to 0 value at any time and then re-enable the database by setting the value back to a positive integer without any effect to the file. However, if the g_dbMaxAliases cvar is set to a smaller value then it was before, the aliases that exceed the threshold will be lost unrecoverably.&lt;br /&gt;
&lt;br /&gt;
This file is not hand editable. By editing this file by hand you risk it getting corrupted or causing error conditions. The silEnT will automatically identify this file version for different silEnT versions and if necessary silEnT will convert the file to a newer version. The old file will be always stored at the g_dbDirectory location with a _vxx added to it&#039;s name.&lt;br /&gt;
&lt;br /&gt;
If silEnT finds this file to be corrupted or unusable, it will not overwrite it. The error messages in the log are usually very descriptive about the erros.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot Limitations =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of levels:&#039;&#039;&#039; 31&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of shrubbot level name:&#039;&#039;&#039; 	35 (includes color codes)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of players in the database:&#039;&#039;&#039; 	Unlimited&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of player bans:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of subnet bans:&#039;&#039;&#039; 128&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum length of ban reason:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of admin-defined commands:&#039;&#039;&#039; 	63&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command name length:&#039;&#039;&#039; 	63 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (executable part):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum admin-defined command length (help string):&#039;&#039;&#039; 	1023 characters&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum number of warnings:&#039;&#039;&#039; 	1023&lt;br /&gt;
&lt;br /&gt;
= Shortcuts = &lt;br /&gt;
&lt;br /&gt;
Server supports the replacement of the following keys in say messages&lt;br /&gt;
&lt;br /&gt;
[a]	last player who gave you ammo&lt;br /&gt;
&lt;br /&gt;
[d]	last player who killed you&lt;br /&gt;
&lt;br /&gt;
[g]	the last 8 characters of your GUID&lt;br /&gt;
&lt;br /&gt;
[h]	last player who gave you health&lt;br /&gt;
&lt;br /&gt;
[k]	last player you killed&lt;br /&gt;
&lt;br /&gt;
[l]	your location (letter,number)&lt;br /&gt;
&lt;br /&gt;
[n]	your name&lt;br /&gt;
&lt;br /&gt;
[r]	last player who revived you&lt;br /&gt;
&lt;br /&gt;
[p]	last player you looked at&lt;br /&gt;
&lt;br /&gt;
[s]	health remaining&lt;br /&gt;
&lt;br /&gt;
[w]	name of current weapon&lt;br /&gt;
&lt;br /&gt;
[t]	ammo for current weapon&lt;br /&gt;
&lt;br /&gt;
= Sample shrubbot config =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// silEnT mod - Sample Shrubbot.cfg file&lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 0&lt;br /&gt;
name	 = Prole&lt;br /&gt;
flags	 = iBaPzI&lt;br /&gt;
greeting = &lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 1&lt;br /&gt;
name	 = Level 1&lt;br /&gt;
flags	 = iBaPzIW1&lt;br /&gt;
greeting = Level 1 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 2&lt;br /&gt;
name	 = Level2&lt;br /&gt;
flags	 = iBaPzIW1mx&lt;br /&gt;
greeting = Level 2 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 3&lt;br /&gt;
name	 = Level 3&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259&lt;br /&gt;
greeting = Level 3 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 4&lt;br /&gt;
name	 = Level 4&lt;br /&gt;
flags	 = iBaPzIW1mxpZSAURKrwlLdX259kbcVNn34678&lt;br /&gt;
greeting = Level 4 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
[level]&lt;br /&gt;
level	 = 5&lt;br /&gt;
name	 = Level 5&lt;br /&gt;
flags	 = *&lt;br /&gt;
greeting = Level 5 [n] ^7just connected&lt;br /&gt;
greeting_sound = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Commands&amp;diff=1205</id>
		<title>Silent Creating Custom Commands</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Creating_Custom_Commands&amp;diff=1205"/>
		<updated>2014-12-30T16:05:58Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What Are Custom Commands =&lt;br /&gt;
&lt;br /&gt;
Custom commands are shrubbot like commands that are not implemented by the silEnT mod, but instead by server admins. There are three ways to create custom commands. One is to simply use the [command] blocks in the shrubbot.cfg. Second one is to combine [command] block with a Lua script that will do more complicated work than what just the rcon can do. And the third method is to implement everything with Lua. The following sections describe each of these methods.&lt;br /&gt;
&lt;br /&gt;
= Shrubbot.cfg Method = &lt;br /&gt;
&lt;br /&gt;
The shrubbot.cfg file on your server can include following blocks:&lt;br /&gt;
&lt;br /&gt;
    [command]&lt;br /&gt;
    command  = The name of the command.&lt;br /&gt;
    exec     = The executed command. These must be commands available to /rcon and these will be executed with rcon privileges.&lt;br /&gt;
    desc     = The help description of the command.&lt;br /&gt;
    syntax   = List of parameters if the command uses them. This is used with !help and it is optional.&lt;br /&gt;
    levels   = Space separated list of levels that are allowed to use the command.&lt;br /&gt;
&lt;br /&gt;
These commands appear in the !help output just as if they were implemented by the silEnT mod itself. Also, !help &amp;lt;command name&amp;gt; can be used to see detailed help about the commands. The exec line defines the commands that will be executed by the mod. The exec field supports the following:&lt;br /&gt;
&lt;br /&gt;
:*The commands can be anything that can be executed with /rcon. &lt;br /&gt;
:*The commands can use all [[Silent Shortcuts|shortcuts]] that players can use with their chat messages.&lt;br /&gt;
:*Additional shortcut [i] is available. This will be replaced with the client slot number of the player who called the command. If the command was called from the server console, or /rcon, this shortcut will not be replaced.&lt;br /&gt;
:*The shrubbot custom commands support parameter place holders. These are [1] - [9], where the number is the n:th parameter given to the custom command. When these are used, the server will substitute the placeholder with the n:th parameter given to the command.&lt;br /&gt;
:*There is also the possibility to add ? to the parameter placeholders. If the question mark is added, the parameter is substituted with a player name if only one name matches the pattern. If there are no matches or there are several matches, the command will fail and reports an informative error. All placeholders can have the question mark if that is needed for the command.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
    [command]&lt;br /&gt;
    command  = crybaby&lt;br /&gt;
    exec     = playsound path/to/sound.wav; chat ^7[1?]^7 is crying like a little baby!&lt;br /&gt;
    desc     = Make someone cry like a baby&lt;br /&gt;
    syntax   = [name]&lt;br /&gt;
    levels   = 0 1 2 3 4 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the command breaks because the name that substitutes a placeholder has spaces, use &amp;quot; characters to surround the placeholder. Like this &amp;quot;[1?]&amp;quot;. It will ensure that the full name is parsed as one parameter instead of getting interpreted as separate parameters.&lt;br /&gt;
&lt;br /&gt;
= Combining shrubbot.cfg and Lua Scripts =&lt;br /&gt;
&lt;br /&gt;
One method to extend what the commands can do, is to use a Lua script to implement the actual command operation. To do this, create a custom command to the shrubbot.cfg, which executes a command, that is not recognized by the silEnT mod. Such commands will pass through to the [[Silent Lua#et_ConsoleCommand|et_ConsoleCommand]] Lua callback. Where it can be intercepted and proper actions can be taken. The advantage of this method is that the command privileges and the help are handled by the silEnT mod. This includes the Admin Level Protection. In other words, it is easy to ensure that the command is not used by unwanted persons.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
For the purposes of this example, the command is mycommand. It will be executed when the user enters !mycommand to the console, assuming that player has been assigned level 2 or higher shrubbot level.&lt;br /&gt;
&lt;br /&gt;
1. Create your command in the shrubbot file. Open your shrubbot.cfg file (in silent\database directory) and add the following block:&lt;br /&gt;
&lt;br /&gt;
    [command]&lt;br /&gt;
    command  = mycommand&lt;br /&gt;
    exec     = mycommand_lua [i]&lt;br /&gt;
    desc     = Does something cool for people over level 2&lt;br /&gt;
    syntax   = &lt;br /&gt;
    levels   = 2 3 4 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
Be careful with the called command. If the command that is directed to Lua, and the custom command in shrubbot.cfg have the same name, an infinite loop can form if the Lua script does not return 1. This can happen because if the command is not handled by the Lua script, it will again get handled as a shrubbot custom command.&lt;br /&gt;
&lt;br /&gt;
2. Create a LUA file in your silent directory on the server. Call it mycommand.lua (or whatever name you want to give it). Begin with the following stub:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;function et_ConsoleCommand(command)&lt;br /&gt;
&lt;br /&gt;
        -- if the user types !mycommand in the console&lt;br /&gt;
&lt;br /&gt;
        if et.trap_Argv(0) == &amp;quot;mycommand_lua&amp;quot; then&lt;br /&gt;
&lt;br /&gt;
            -- Do your custom processing here&lt;br /&gt;
&lt;br /&gt;
            local clientNum = et.trap_Argv(1)&lt;br /&gt;
            et.trap_SendServerCommand(clientNum, &amp;quot;chat \&amp;quot;Your command &amp;quot;..et.trap_Argv(0)..&amp;quot; has been received\&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            return 1 -- Tells silEnT that this script handled this command&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        return 0  -- Tells silEnT that this script did not handle this command&lt;br /&gt;
    end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Update your server config to load the LUA file. Add or modify the following server var (lua_modules):&lt;br /&gt;
&lt;br /&gt;
    set lua_modules &amp;quot;mycommand.lua&amp;quot;&lt;br /&gt;
&lt;br /&gt;
4. Restart your server.  Assuming you are on a shrubbot level 2 or higher, !mycommand will execute and do cool stuff.&lt;br /&gt;
&lt;br /&gt;
= Only With Lua =&lt;br /&gt;
&lt;br /&gt;
Some servers use quite large and complicated additional command implementations that are implemented entirely by Lua scripting. This is not the recommended method to do admin systems, unless you have a pressing need for this.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;&lt;br /&gt;
function SplitToArguments(line)&lt;br /&gt;
    local array = {}&lt;br /&gt;
    local aindex = 0&lt;br /&gt;
    for i in string.gmatch(line, &amp;quot;%S+&amp;quot;) do&lt;br /&gt;
        array[aindex] = string.lower(i)&lt;br /&gt;
	aindex = aindex + 1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return array&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function CheckCommand(clientNum, arguments)&lt;br /&gt;
    if( arguments[0] == &amp;quot;!mycommand&amp;quot; ) then&lt;br /&gt;
	et.trap_SendServerCommand(clientNum, &amp;quot;chat \&amp;quot;Your command &amp;quot;..arguments[0]..&amp;quot; has been received\&amp;quot;&amp;quot;)&lt;br /&gt;
	return 1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function et_ClientCommand(clientNum, command)&lt;br /&gt;
    local level = et.G_shrubbot_level(clientNum)&lt;br /&gt;
    local flood = et.ClientIsFlooding(clientNum)&lt;br /&gt;
&lt;br /&gt;
    -- we&#039;re not interested if the level is too low or if the client is flooding&lt;br /&gt;
    if (level &amp;lt; 1) or (flood == 1) then&lt;br /&gt;
        return 0&lt;br /&gt;
    end&lt;br /&gt;
	&lt;br /&gt;
    local arg0 = string.lower(et.trap_Argv(0))&lt;br /&gt;
    local arguments&lt;br /&gt;
&lt;br /&gt;
    -- check to see if the command was given through any of the chat methods or as sparse text from the console&lt;br /&gt;
    if arg0 == &amp;quot;say&amp;quot; or arg0 == &amp;quot;say_team&amp;quot; or arg0 == &amp;quot;say_buddy&amp;quot; or arg0 == &amp;quot;say_teamnl&amp;quot; then&lt;br /&gt;
	arguments = SplitToArguments(et.trap_Argv(1))&lt;br /&gt;
    else&lt;br /&gt;
	arguments = SplitToArguments(et.ConcatArgs(0))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- actual command handling&lt;br /&gt;
    return CheckCommand(clientNum, arguments)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example shows the same functionality as the combined example above. Do note, that if the full admin system is made manually, handling the command arguments require special care. In the above example it shows how the arguments are handled differently depending if the script is handling player chatting, or if the commands are read from sparse texts that players write to console. For safety, ConcatArgs could be used for both, just in case there are bugs in the silEnT implementation, but splitting the single argument should work equally well in all cases.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Lua&amp;diff=1204</id>
		<title>Silent Lua</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Lua&amp;diff=1204"/>
		<updated>2014-12-07T11:52:43Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* gentity_set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;silEnT servers support Lua 5.1.4 scripts. Starting from version 0.5.1 the Lua interpreter is inbuilt into the server side mod. Before the vesion 0.5.1, the Lua was installed as an external module. A separate build of the silEnT mod is supplied within the download to admins who still want to use separate Lua library. silEnT&#039;s Lua API is aiming to be fully compatible to ETPro&#039;s Lua API. The origin of the silEnT Lua API is the Lua module in ETPub version 0.9.1.&lt;br /&gt;
&lt;br /&gt;
= Cvars =&lt;br /&gt;
== lua_modules ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of files to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. The paths are relative to the mod&#039;s directory, and can optionally be placed inside pk3 archieves. We are aiming for compatibility with ETPro&#039;s Lua Mod API found at http://wolfwiki.anime.net/index.php/Lua_Mod_API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== lua_allowedModules ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of sha1 signatures for the lua modules to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. Only lua modules with the matching sha1 signature listed in this cvar will be allowed to load by the Lua API engine (ACL). If this string is empty, all loaded modules are allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Commands =&lt;br /&gt;
== lua_status ==&lt;br /&gt;
&lt;br /&gt;
Shows information about the scripts currently loaded by the Lua API server engine. This command works also from the client so that players can check what modules are currently loaded by the server.&lt;br /&gt;
&lt;br /&gt;
= Interface Function Reference =&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
=== RegisterModname ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Registers a descriptive name for this Lua module.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.RegisterModname( modname )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;modname&#039;&#039; is the name to register the Lua module &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== FindSelf ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns a number indicating the VM slot the current mod is loaded into. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    vmnumber = et.FindSelf()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== FindMod ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the registered module name and the SHA-1 signature of the module loaded in the VM. Do note that each loaded Lua module will have it&#039;s own VM.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    modname, signature = et.FindMod( vmnumber )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;vmnumber&#039;&#039; is the number of the VM in where the Lua module is loaded&lt;br /&gt;
&lt;br /&gt;
* return value (&#039;&#039;modname&#039;&#039;, &#039;&#039;signature&#039;&#039;) is the registered module&#039;s name and the SHA-1 signature. Returns (nil, nil) if there is no module loaded into the given VM number&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== IPCSend ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inter Process Communication. This function enables communication between different loaded Lua modules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    success = et.IPCSend( vmnumber, message ) &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;vmnumber&#039;&#039; is the number of the loaded module message is sent&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;message&#039;&#039; is the string to send&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;success&#039;&#039; is 1 if success and 0 if function fails&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Printing ==&lt;br /&gt;
=== G_Print ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prints text to the server console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Print( text )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;text&#039;&#039; is the printed string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_LogPrint ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prints text to the server console and also to the log.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_LogPrint( text )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;text&#039;&#039; is the printed and logged string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Argument Handling ==&lt;br /&gt;
=== ConcatArgs ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function concatenates server command arguments into one string.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    args = et.ConcatArgs( index )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the index of the first argument in the concatenated string. First command argument index in general is 1.&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;args&#039;&#039; is the concatenated string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_Argc ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function returns the number of the arguments in the server command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    argc = et.trap_Argc()&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;argc&#039;&#039; is the count of arguments. For example for the command &amp;quot;/m gao message&amp;quot;, the function would return 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_Argv ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function returns argument in the given index.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    arg = et.trap_Argv( index )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the argument index to return.&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;arg&#039;&#039; is the argument&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Cvars ==&lt;br /&gt;
=== trap_Cvar_Get ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the value of the given cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    cvarvalue= et.trap_Cvar_Get( cvar )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;cvar&#039;&#039; is the name of the cvar&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;cvarvalue&#039;&#039; is a string containing the value. If there is no cvar with the given name, the returning string has zero length.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_Cvar_Set ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets value to a cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_Cvar_Set( name, value )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;name&#039;&#039; is the name of the cvar to set&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;value&#039;&#039; is the new value for the cvar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Configstrings ==&lt;br /&gt;
=== trap_GetConfigstring ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns contents of the configstring at index.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    configstringvalue = et.trap_GetConfigstring( index )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the index of the configstring&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;configstring&#039;&#039; contains the full config string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_SetConfigstring ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function sets the full configstring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SetConfigstring( index, configstringvalue ) &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the configstring index&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;configstringvalue&#039;&#039; is the full configstring to set&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Server Console and Client Handling ==&lt;br /&gt;
=== trap_SendConsoleCommand ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sends command to the server console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SendConsoleCommand( when, command )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;when&#039;&#039; tells when the command is executed. Possible values are &lt;br /&gt;
::et.EXEC_NOW    - executes instantly&lt;br /&gt;
::et.EXEC_INSERT - inserts at the current position but doesn&#039;t run yet&lt;br /&gt;
::et.EXEC_APPEND - appends at the end of the command buffer&lt;br /&gt;
* &#039;&#039;command&#039;&#039; is the full command to execute&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_DropClient ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disconnects client from the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_DropClient( clientnum, reason, ban_time )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client to disconnect&lt;br /&gt;
* &#039;&#039;reason&#039;&#039; is the descriptive reason for the kick. This is also displayed to the client.&lt;br /&gt;
* &#039;&#039;ban_time&#039;&#039; is optional length of the kick. If this is not set, the g_defaultBanTime is used.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_SendServerCommand ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function sends reliable server command to a client. I.e. the command is acknowledged by the client to ensure it has received it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SendServerCommand( clientnum, command )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client to send the command. If the number is -1, the command is sent to all connected clients.&lt;br /&gt;
* &#039;&#039;command&#039;&#039; is the full command string to send&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== ClientNumberFromString ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function finds one matching player name based on the given string.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    clientnum = et.ClientNumberFromString( string )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;string&#039;&#039; is a pattern to match against client names&lt;br /&gt;
* return value &#039;&#039;clientnum&#039;&#039; is the client slot number if one match is found, otherwise -1 is returned&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ETPro does not implement this function. Function is derived to silEnT from ETPub implementation.&lt;br /&gt;
&lt;br /&gt;
=== G_Say ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Writes to chat on behalf of a client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Say( clientNum, mode, text )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientNum&#039;&#039; is the slot number of the client on behalf to write chat&lt;br /&gt;
* &#039;&#039;mode&#039;&#039; is the type of chat to write. Possible values are&lt;br /&gt;
::et.SAY_ALL    - writes to the global chat&lt;br /&gt;
::et.SAY_TEAM   - writes to the team chat of the client&lt;br /&gt;
::et.SAY_BUDDY  - writes to the fireteam chat of the client&lt;br /&gt;
::et.SAY_TEAMNL - writes to the team chat of the client without position&lt;br /&gt;
* &#039;&#039;text&#039;&#039; is the chat message to write&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== ClientUserinfoChanged ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Loads the new userinfo string of the client and sets the client settings to match it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.ClientUserinfoChanged( clientNum )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;clientNum &#039;&#039; is the slot number of the client who&#039;s userinfo is loaded&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_GetUserinfo ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the userinfo string of a client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    userinfo = et.trap_GetUserinfo( clientnum )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client who&#039;s userinfo is returned&lt;br /&gt;
* return value &#039;&#039;userinfo&#039;&#039; is the full userinfo string of that client&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_SetUserinfo ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets the userinfo string of the client to the passed userinfo. To make the changes to take effect in the game, ClientUserinfoChanged must be called after this function.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SetUserinfo( clientnum, userinfo )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client who&#039;s userinfo is changed&lt;br /&gt;
* &#039;&#039;userinfo&#039;&#039; is the full new userinfo of the client&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_Damage ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Damages target entity on behalf of the attacker entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Damage( target, inflictor, attacker, damage, dflags, mod )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;target&#039;&#039; is the entity number to damage, value must be 0 or more&lt;br /&gt;
*&#039;&#039;inflictor&#039;&#039; is the entity number that does the damage, value must be 0 or more&lt;br /&gt;
*&#039;&#039;attacker&#039;&#039; is the entity number that causes the inflictor entity to cause damage to target, value must be 0 or more&lt;br /&gt;
*&#039;&#039;damage&#039;&#039; is the amount of damage to inflict&lt;br /&gt;
*&#039;&#039;dflags&#039;&#039; is the type of damage to inflict, possible values are&lt;br /&gt;
::DAMAGE_RADIUS - damage was indirect (from a nearby explosion)&lt;br /&gt;
::DAMAGE_NO_ARMOR - armor does not protect from this damage&lt;br /&gt;
::DAMAGE_NO_KNOCKBACK - do not affect velocity, just view angles&lt;br /&gt;
::DAMAGE_NO_PROTECTION - kills godmode, armor, everything&lt;br /&gt;
*&#039;&#039;mod&#039;&#039; is the means of death, possible values are:&lt;br /&gt;
::0 - MOD_UNKNOWN&lt;br /&gt;
::1 - MOD_MACHINEGUN&lt;br /&gt;
::2 - MOD_BROWNING&lt;br /&gt;
::3 - MOD_MG42&lt;br /&gt;
::4 - MOD_GRENADE&lt;br /&gt;
::5 - MOD_ROCKET&lt;br /&gt;
::6 - MOD_KNIFE&lt;br /&gt;
::7 - MOD_LUGER&lt;br /&gt;
::8 - MOD_COLT&lt;br /&gt;
::9 - MOD_MP40&lt;br /&gt;
::10 - MOD_THOMPSON&lt;br /&gt;
::11 - MOD_STEN&lt;br /&gt;
::12 - MOD_GARAND&lt;br /&gt;
::13 - MOD_SNOOPERSCOPE&lt;br /&gt;
::14 - MOD_SILENCER	&lt;br /&gt;
::15 - MOD_FG42&lt;br /&gt;
::16 - MOD_FG42SCOPE&lt;br /&gt;
::17 - MOD_PANZERFAUST&lt;br /&gt;
::18 - MOD_GRENADE_LAUNCHER&lt;br /&gt;
::19 - MOD_FLAMETHROWER&lt;br /&gt;
::20 - MOD_GRENADE_PINEAPPLE&lt;br /&gt;
::21 - MOD_CROSS&lt;br /&gt;
::22 - MOD_MAPMORTAR&lt;br /&gt;
::23 - MOD_MAPMORTAR_SPLASH&lt;br /&gt;
::24 - MOD_KICKED&lt;br /&gt;
::25 - MOD_GRABBER&lt;br /&gt;
::26 - MOD_DYNAMITE&lt;br /&gt;
::27 - MOD_AIRSTRIKE&lt;br /&gt;
::28 - MOD_SYRINGE&lt;br /&gt;
::29 - MOD_AMMO&lt;br /&gt;
::30 - MOD_ARTY&lt;br /&gt;
::31 - MOD_WATER&lt;br /&gt;
::32 - MOD_SLIME&lt;br /&gt;
::33 - MOD_LAVA&lt;br /&gt;
::34 - MOD_CRUSH&lt;br /&gt;
::35 - MOD_TELEFRAG&lt;br /&gt;
::36 - MOD_FALLING&lt;br /&gt;
::37 - MOD_SUICIDE&lt;br /&gt;
::38 - MOD_TARGET_LASER&lt;br /&gt;
::39 - MOD_TRIGGER_HURT&lt;br /&gt;
::40 - MOD_EXPLOSIVE&lt;br /&gt;
::41 - MOD_CARBINE&lt;br /&gt;
::42 - MOD_KAR98&lt;br /&gt;
::43 - MOD_GPG40&lt;br /&gt;
::44 - MOD_M7&lt;br /&gt;
::45 - MOD_LANDMINE&lt;br /&gt;
::46 - MOD_SATCHEL&lt;br /&gt;
::47 - MOD_TRIPMINE&lt;br /&gt;
::48 - MOD_SMOKEBOMB&lt;br /&gt;
::49 - MOD_MOBILE_MG42&lt;br /&gt;
::50 - MOD_SILENCED_COLT&lt;br /&gt;
::51 - MOD_GARAND_SCOPE&lt;br /&gt;
::52 - MOD_CRUSH_CONSTRUCTION&lt;br /&gt;
::53 - MOD_CRUSH_CONSTRUCTIONDEATH&lt;br /&gt;
::54 - MOD_CRUSH_CONSTRUCTIONDEATH_NOATTACKER&lt;br /&gt;
::55 - MOD_K43&lt;br /&gt;
::56 - MOD_K43_SCOPE&lt;br /&gt;
::57 - MOD_MORTAR&lt;br /&gt;
::58 - MOD_AKIMBO_COLT&lt;br /&gt;
::59 - MOD_AKIMBO_LUGER&lt;br /&gt;
::60 - MOD_AKIMBO_SILENCEDCOLT&lt;br /&gt;
::61 - MOD_AKIMBO_SILENCEDLUGER&lt;br /&gt;
::62 - MOD_SMOKEGRENADE&lt;br /&gt;
::63 - MOD_SWAP_PLACES&lt;br /&gt;
::64 - MOD_SWITCHTEAM&lt;br /&gt;
::65 - MOD_GOOMBA&lt;br /&gt;
::66 - MOD_POISON&lt;br /&gt;
::67 - MOD_FEAR&lt;br /&gt;
::68 - MOD_THROWN_KNIFE&lt;br /&gt;
::69 - MOD_REFLECTED_FF&lt;br /&gt;
::70 - MOD_PPSH&lt;br /&gt;
::71 - MOD_SHOVE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is implemented in ETPro but some of the mod values may differ.&lt;br /&gt;
&lt;br /&gt;
=== ClientIsFlooding ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tells if &#039;&#039;g_floodthreshold&#039;&#039; has been exceeded for the player. In other words, the client is sending more than a &#039;&#039;g_floodthreshold&#039;&#039; amount of messages per second to the server. Admins with shrubbot flag 2 are excluded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    flooding = et.ClientIsFlooding( clientnum )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;clientnum&#039;&#039; is the slotnumber of the client that is checked&lt;br /&gt;
*return value &#039;&#039;flooding&#039;&#039; is 1 if the clientis flooding, 0 otherwise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub&#039;s Lua module.&lt;br /&gt;
&lt;br /&gt;
=== G_AddSkillPoints ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adds points to the client&#039;s skill.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_AddSkillPoints( clientNum, skill, points )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the client&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; identifies the skill that the points are added, possible values are&lt;br /&gt;
::0 - SK_BATTLE_SENSE&lt;br /&gt;
::1 - SK_EXPLOSIVES_AND_CONSTRUCTION&lt;br /&gt;
::2 - SK_FIRST_AID&lt;br /&gt;
::3 - SK_SIGNALS&lt;br /&gt;
::4 - SK_LIGHT_WEAPONS&lt;br /&gt;
::5 - SK_HEAVY_WEAPONS&lt;br /&gt;
::6 - SK_MILITARY_INTELLIGENCE_AND_SCOPED_WEAPONS&lt;br /&gt;
::7 - SK_NUM_SKILLS&lt;br /&gt;
*&#039;&#039;points&#039;&#039; is the amount of points to add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub&#039;s Lua module.&lt;br /&gt;
&lt;br /&gt;
=== G_LoseSkillPoints ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Causes player to lose skill points.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_LoseSkillPoints( clientNum, skill, points )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the client&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; is the skill from where the points are taken, possible values are&lt;br /&gt;
::0 - SK_BATTLE_SENSE&lt;br /&gt;
::1 - SK_EXPLOSIVES_AND_CONSTRUCTION&lt;br /&gt;
::2 - SK_FIRST_AID&lt;br /&gt;
::3 - SK_SIGNALS&lt;br /&gt;
::4 - SK_LIGHT_WEAPONS&lt;br /&gt;
::5 - SK_HEAVY_WEAPONS&lt;br /&gt;
::6 - SK_MILITARY_INTELLIGENCE_AND_SCOPED_WEAPONS&lt;br /&gt;
::7 - SK_NUM_SKILLS&lt;br /&gt;
*&#039;&#039;points&#039;&#039; is the amount of points to remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub&#039;s Lua module.&lt;br /&gt;
&lt;br /&gt;
=== G_QueryClientCvar ===&lt;br /&gt;
&lt;br /&gt;
Lua scripts can query cvar values from connected players. The values are returned in a different callback function.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_QueryClientCvar( clientNum, cvarName)&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the player&lt;br /&gt;
*&#039;&#039;cvarName&#039;&#039; is the name of the cvar that is requested&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function was added in silEnT version 0.6.2 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
== String Utility Functions ==&lt;br /&gt;
=== Info_RemoveKey ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes a key and it&#039;s associated value from an infostring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    infostring = et.Info_RemoveKey( infostring, key )&lt;br /&gt;
*&#039;&#039;infostring&#039;&#039; as a passed parameter is the infostring from which to remove the key&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key to remove&lt;br /&gt;
*return value &#039;&#039;infostring&#039;&#039; is the infostring without the key&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== Info_SetValueForKey ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets a value in an infostring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    infostring = et.Info_SetValueForKey( infostring, key, value )&lt;br /&gt;
*&#039;&#039;infostring&#039;&#039; as passed parameter is the original infostring&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key to set&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the value to set to the key&lt;br /&gt;
*return value &#039;&#039;infostring&#039;&#039; is the modified infostring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== Info_ValueForKey ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns a value from an infostring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    keyvalue = et.Info_ValueForKey( infostring, key )&lt;br /&gt;
*&#039;&#039;infostring&#039;&#039; is the infostring from where to search the key&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key which value is returned&lt;br /&gt;
*return value &#039;&#039;keyvalue&#039;&#039; is the value from the searched key&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== Q_CleanStr ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes all Enemy Territory color codes and special characters from a string. The returning string will be ASCII characters of the range [32,126] in decimal numbers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    cleanstring = et.Q_CleanStr( string )&lt;br /&gt;
*&#039;&#039;string&#039;&#039; is the string to clean&lt;br /&gt;
*&#039;&#039;cleanstring&#039;&#039; is the cleaned string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Filesystem ==&lt;br /&gt;
=== trap_FS_FOpenFile ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Opens a file in the local file system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    fd, len = et.trap_FS_FOpenFile( filename, mode )&lt;br /&gt;
*&#039;&#039;filename&#039;&#039; is the name of the file to open. The file is opened under the current working directory and absolute paths will not work.&lt;br /&gt;
*&#039;&#039;mode&#039;&#039; is the mode the file is opened, possible values are&lt;br /&gt;
::et.FS_READ - opens the file for reading only&lt;br /&gt;
::et.FS_WRITE - opens the file for writing, truncates the old file if a file with name &#039;&#039;filename&#039;&#039; already exists&lt;br /&gt;
::et.FS_APPEND - opens the file for writing at the end of file, the old file is not erased if it already exists&lt;br /&gt;
::et.FS_APPEND_SYNC - like et.FS_APPEND but the file buffer is flushed to the file on hard drive directly after every write operation&lt;br /&gt;
*return value (&#039;&#039;fd&#039;&#039;, &#039;&#039;len&#039;&#039;) is the descriptor (or handle in Windows terminology) of the file and the length of the file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_Read ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Reads from an open file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    filedata = et.trap_FS_Read( fd, count )&lt;br /&gt;
*&#039;&#039;fd&#039;&#039; is the descriptor of the file to read&lt;br /&gt;
*&#039;&#039;count&#039;&#039; is the amount of bytes to read&lt;br /&gt;
*return value &#039;&#039;filedata&#039;&#039; will have the read bytes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_Write ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Writes at the end of an open file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    count= et.trap_FS_Write( filedata, count, fd )&lt;br /&gt;
*&#039;&#039;filedata&#039;&#039; is a block of bytes to write&lt;br /&gt;
*&#039;&#039;count&#039;&#039; is the size of the block to write&lt;br /&gt;
*&#039;&#039;fd&#039;&#039; is the descriptor of the file&lt;br /&gt;
*return value &#039;&#039;count&#039;&#039; is the amount of bytes written to the file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_Rename ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Renames a file in the loal file system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_FS_Rename( oldname, newname )&lt;br /&gt;
*&#039;&#039;oldname&#039;&#039; is the name of the file to rename&lt;br /&gt;
*&#039;&#039;newname&#039;&#039; is the name the old file name is changed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_FCloseFile ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Closes an opened file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_FS_FCloseFile( fd )&lt;br /&gt;
*&#039;&#039;fd&#039;&#039; is the descriptor of the opened file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Sounds and Models ==&lt;br /&gt;
=== G_SoundIndex ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the configstring index that includes the searched sound name.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    soundindex = et.G_SoundIndex( filename )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;filename&#039;&#039; is the sound file name that is searched&lt;br /&gt;
*return value &#039;&#039;soundindex&#039;&#039; is the config string index that includes the &#039;&#039;filename&#039;&#039; or 0 if the name was not found&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_ModelIndex ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns an index to the configstring that include the searched model.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    modelindex = et.G_ModelIndex( filename )&lt;br /&gt;
*&#039;&#039;filename&#039;&#039; is the name that is searched through the config strings&lt;br /&gt;
*return value &#039;&#039;modelindex&#039;&#039; is the configstring number that included the &#039;&#039;filename&#039;&#039; or 0 if not found&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_globalSound ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plays a sound to all connected clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_globalSound( sound )&lt;br /&gt;
*&#039;&#039;sound&#039;&#039; is the name of the sound to play&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_Sound ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plays a sound originating from position of an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Sound( entnum, soundindex )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the number of the entity which position is used as the sound origin&lt;br /&gt;
*&#039;&#039;soundindex&#039;&#039; is the index of the sound that is played&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_ClientSound ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plays a sound originating from a client entity to the team members of that client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_ClientSound( clientnum, soundindex )&lt;br /&gt;
*&#039;&#039;clientnum&#039;&#039; is the slot number of the connected player&lt;br /&gt;
*&#039;&#039;soundindex&#039;&#039; is the index to the sound to play&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub Lua implementation.&lt;br /&gt;
&lt;br /&gt;
== Entities ==&lt;br /&gt;
=== G_Spawn ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Spawns a new entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    entnum = et.G_Spawn()&lt;br /&gt;
*return value &#039;&#039;entnum&#039;&#039; is the number of the new entity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_TempEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Spawns a new temp entity to a location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    entnum = et.G_TempEntity( origin, event )&lt;br /&gt;
*&#039;&#039;origin&#039;&#039; is the location the temp entity is placed&lt;br /&gt;
*&#039;&#039;event&#039;&#039; is the event type of the entity, this is a number from the range [1, 118]&lt;br /&gt;
*return value &#039;&#039;entnum&#039;&#039; is the number of the new entity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible, but some event types do differ from mod to mod.&lt;br /&gt;
&lt;br /&gt;
=== G_FreeEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deletes an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_FreeEntity( entnum )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the number of the entity to remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portbility&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_EntitiesFree ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
Calculates all free entities. Free client entities (slots) are not counted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    count = et.G_EntitiesFree()&lt;br /&gt;
*return value &#039;&#039;count&#039;&#039; is the number of free entities&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub Lua implementation, where it is broken.&lt;br /&gt;
&lt;br /&gt;
=== G_GetSpawnVar ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Return a value of a spawnvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    spawnval = et.G_GetSpawnVar( entnum, key )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number of the target&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key for the value to return, possible values are&lt;br /&gt;
::classname&lt;br /&gt;
::origin&lt;br /&gt;
::model&lt;br /&gt;
::model2&lt;br /&gt;
::spawnflags&lt;br /&gt;
::eflags&lt;br /&gt;
::svflags&lt;br /&gt;
::maxs&lt;br /&gt;
::mins&lt;br /&gt;
::speed&lt;br /&gt;
::closespeed&lt;br /&gt;
::target&lt;br /&gt;
::targetname&lt;br /&gt;
::message&lt;br /&gt;
::popup&lt;br /&gt;
::book&lt;br /&gt;
::team&lt;br /&gt;
::wait&lt;br /&gt;
::random&lt;br /&gt;
::count&lt;br /&gt;
::health&lt;br /&gt;
::light - ignored&lt;br /&gt;
::dmg&lt;br /&gt;
::angles&lt;br /&gt;
::angle&lt;br /&gt;
::duration&lt;br /&gt;
::rotate&lt;br /&gt;
::degrees&lt;br /&gt;
::time&lt;br /&gt;
::skin&lt;br /&gt;
::_color&lt;br /&gt;
::color&lt;br /&gt;
::stylestring&lt;br /&gt;
::shader&lt;br /&gt;
::key&lt;br /&gt;
::harc&lt;br /&gt;
::varc&lt;br /&gt;
::delay&lt;br /&gt;
::radius&lt;br /&gt;
::missionlevel&lt;br /&gt;
::start_size&lt;br /&gt;
::end_size&lt;br /&gt;
::shard&lt;br /&gt;
::spawnitem&lt;br /&gt;
::track&lt;br /&gt;
::scriptName&lt;br /&gt;
::shortname&lt;br /&gt;
::constages&lt;br /&gt;
::desstages&lt;br /&gt;
::partofstage&lt;br /&gt;
::override&lt;br /&gt;
::damageparent&lt;br /&gt;
::contents&lt;br /&gt;
::clipmask&lt;br /&gt;
::count2&lt;br /&gt;
::pos_trType&lt;br /&gt;
::pos_trDelta&lt;br /&gt;
::apos_trType&lt;br /&gt;
::apos_trDelta&lt;br /&gt;
::allowteams&lt;br /&gt;
*return value &#039;&#039;spawnval&#039;&#039; is the value associated with the &#039;&#039;key&#039;&#039; or nil if the function fails&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_SetSpawnVar ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
Sets spawn value to an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_SetSpawnVar( entnum, key, value )&lt;br /&gt;
*&#039;&#039;entitynum&#039;&#039; is the target entity&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key for the value, the possible keys are the same as in G_GetSpawnVar&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the new value for the &#039;&#039;key&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_LinkEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Links an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_LinkEntity( entnum )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number to link&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_UnlinkEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unlinks an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_UnlinkEntity( entnum )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number to unlink&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== gentity_get ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns a field value associated with an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    variable = et.gentity_get( entnum, fieldname, arrayindex )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the number of the entity&lt;br /&gt;
*&#039;&#039;fieldname&#039;&#039; is the name of the field to get, possible values are&lt;br /&gt;
::&#039;&#039;&#039;Field names for player entities only&#039;&#039;&#039;&lt;br /&gt;
::&amp;quot;inactivityTime&amp;quot;&lt;br /&gt;
::&amp;quot;inactivityWarning&amp;quot;&lt;br /&gt;
::&amp;quot;pers.connected&amp;quot; - this is the connection status of the client, possible values are&lt;br /&gt;
:::0 - disconnected&lt;br /&gt;
:::1 - connecting&lt;br /&gt;
:::2 - connected&lt;br /&gt;
::&amp;quot;pers.netname&amp;quot; - the name of the client, including color codes&lt;br /&gt;
::&amp;quot;pers.localClient&amp;quot; - 1 if the player is from localhost, 0 otherwise&lt;br /&gt;
::&amp;quot;pers.initialSpawn&amp;quot; - 1 if the player has not spawned yet, 0 otherwise&lt;br /&gt;
::&amp;quot;pers.enterTime&amp;quot; - the level time the player connected&lt;br /&gt;
::&amp;quot;pers.connectTime&amp;quot; - the level time the player connected&lt;br /&gt;
::&amp;quot;pers.teamState.state&amp;quot; - the state of the player. This value changes on every team change and entering to the server. But it does not change on deaths and revives. Possible values are&lt;br /&gt;
:::0 - beginning, spawn at base&lt;br /&gt;
:::1 - actively playing&lt;br /&gt;
::&amp;quot;pers.voteCount&amp;quot; - the number of failed votes the player has initiated&lt;br /&gt;
::&amp;quot;pers.teamVoteCount&amp;quot; - unused&lt;br /&gt;
::&amp;quot;pers.complaints&amp;quot; - the number of complaints the player has received&lt;br /&gt;
::&amp;quot;pers.complaintClient&amp;quot; - the client number the player who teamkilled, if the complaint is possible&lt;br /&gt;
::&amp;quot;pers.complaintEndTime&amp;quot; - the level time the option for complaint ends&lt;br /&gt;
::&amp;quot;pers.lastReinforceTime&amp;quot; - time of the previous respawn&lt;br /&gt;
::&amp;quot;pers.applicationClient&amp;quot; - the client number of the player who is applying to a fireteam. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.applicationEndTime&amp;quot; - the level time when the fireteam application expires. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.invitationClient&amp;quot; - the client number of the player who is inviting a player to the fireteam. This value is stored only to the invited player.&lt;br /&gt;
::&amp;quot;pers.invitationEndTime&amp;quot; - the level time when the invitation expires. This data is stored only to the invited player.&lt;br /&gt;
::&amp;quot;pers.propositionClient&amp;quot; - the client number of the player who is proposed to the fireteam. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.propositionClient2&amp;quot; - the client number of the player who is proposing a player to the fireteam. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.propositionEndTime&amp;quot; - the level time when the proposition ends&lt;br /&gt;
::&amp;quot;pers.autofireteamEndTime&amp;quot; - the level time when prompt for making fireteam private expires&lt;br /&gt;
::&amp;quot;pers.autofireteamCreateEndTime&amp;quot; - the level time when automatic prompt for creating fireteam expires&lt;br /&gt;
::&amp;quot;pers.autofireteamJoinEndTime&amp;quot; - the level time when automatic prompt for joining existing fireteam ends&lt;br /&gt;
::&amp;quot;pers.lastSpawnTime&amp;quot; - the level time when the player spawned fresh into the world&lt;br /&gt;
::&amp;quot;pers.ready&amp;quot; - 1 if player is ready during intermission, 0 otherwise&lt;br /&gt;
:: &amp;quot;ps.stats&amp;quot; - an array of 16 integers for different purposes, the most interesting fields are&lt;br /&gt;
::: player health at index 0&lt;br /&gt;
::: player sprint time at index 7, this is a read only and changing this does not affect the game in any way&lt;br /&gt;
::: player XP at index 8&lt;br /&gt;
::: player XP overflow at index 9&lt;br /&gt;
::&amp;quot;ps.persistant&amp;quot; - an array of 16 integers for different purposes&lt;br /&gt;
::&amp;quot;ps.ping&amp;quot; - the ping of the player. The g_truePing setting does not affect this.&lt;br /&gt;
::&amp;quot;ps.powerups&amp;quot; - an array of 16 integers for powerups. The indexes are as follows&lt;br /&gt;
:::0 - none&lt;br /&gt;
:::1 - invulnerable, level time when the player is vulnerable again&lt;br /&gt;
:::2 - unused&lt;br /&gt;
:::3 - unused&lt;br /&gt;
:::4 - breath, time left with air underwater&lt;br /&gt;
:::5 - nofatigue, time left before sprint time starts to reduce&lt;br /&gt;
:::6 - red flag, axis flag carried&lt;br /&gt;
:::7 - blue flag, allied flag carried&lt;br /&gt;
:::8 - disguised, 1 if disguised, 0 otherwise&lt;br /&gt;
:::9 - information of the covert op&lt;br /&gt;
:::10 - information of the covert op&lt;br /&gt;
:::11 - information of the covert op&lt;br /&gt;
:::12 - adrenaline, time left of adrenaline&lt;br /&gt;
:::13 - unused&lt;br /&gt;
:::14 - blackout, specs see only black screen&lt;br /&gt;
:::15 - multiview, unused&lt;br /&gt;
::&amp;quot;ps.origin&amp;quot; - the player position, this is an array of 3 floats&lt;br /&gt;
::&amp;quot;ps.ammo&amp;quot; - an array of 64 integers holding total ammo for each weapon separately&lt;br /&gt;
::&amp;quot;ps.ammoclip&amp;quot; - an array of 64 integers holding ammo in the clip for each weapon separately&lt;br /&gt;
::&amp;quot;sess.sessionTeam&amp;quot; - the team of the player. Possible values are&lt;br /&gt;
:::0 - not in any team&lt;br /&gt;
:::1 - axis&lt;br /&gt;
:::2 - allies&lt;br /&gt;
:::3 - spectators&lt;br /&gt;
::&amp;quot;sess.spectatorTime&amp;quot; - the time when the player joined spectator&lt;br /&gt;
::&amp;quot;sess.spectatorState&amp;quot; - the state of the player in the specator team. Possible values are&lt;br /&gt;
:::0 - not a spectator&lt;br /&gt;
:::1 - not following any players&lt;br /&gt;
:::2 - following a player&lt;br /&gt;
::&amp;quot;sess.spectatorClient&amp;quot; - the client number of the player this player is following&lt;br /&gt;
::&amp;quot;sess.playerType&amp;quot; - the class of the player. Possible values are&lt;br /&gt;
:::0 - soldier&lt;br /&gt;
:::1 - medic&lt;br /&gt;
:::2 - engineer&lt;br /&gt;
:::3 - fieldops&lt;br /&gt;
:::4 - covert ops&lt;br /&gt;
::&amp;quot;sess.playerWeapon&amp;quot; - the weapon of the player&lt;br /&gt;
::&amp;quot;sess.playerWeapon2&amp;quot; - the sidearm of the player&lt;br /&gt;
::&amp;quot;sess.spawnObjectiveIndex&amp;quot; - the player spawn&lt;br /&gt;
::&amp;quot;sess.latchPlayerType&amp;quot; - the class of the player after next spawn&lt;br /&gt;
::&amp;quot;sess.latchPlayerWeapon&amp;quot; - the weapon of the player after next spawn&lt;br /&gt;
::&amp;quot;sess.latchPlayerWeapon2&amp;quot; - the sidearm of the player after next spawn&lt;br /&gt;
::&amp;quot;sess.damage_given&amp;quot; - the amount of damage to other team&#039;s players this player has inflicted&lt;br /&gt;
::&amp;quot;sess.damage_received&amp;quot; - the amount of damage this player has received from the other team&lt;br /&gt;
::&amp;quot;sess.deaths&amp;quot; - the amount of deaths&lt;br /&gt;
::&amp;quot;sess.game_points&amp;quot; - score&lt;br /&gt;
::&amp;quot;sess.kills&amp;quot; - the amount of kills this player has made&lt;br /&gt;
::&amp;quot;sess.medals&amp;quot; - an array of 7 integers for medals of each skill&lt;br /&gt;
::&amp;quot;sess.muted&amp;quot; and &amp;quot;sess.auto_unmute_time&amp;quot; - both of these point to the same data. This is the seconds left until unmute.&lt;br /&gt;
::&amp;quot;sess.rank&amp;quot; - the rank of the player&lt;br /&gt;
::&amp;quot;sess.referee&amp;quot; - the players referee/rcon status. Possible values are&lt;br /&gt;
:::0 - none&lt;br /&gt;
:::1 - referee&lt;br /&gt;
:::2 - rcon&lt;br /&gt;
::&amp;quot;sess.rounds&amp;quot; - the number of round. This has meaning only when playing stopwatch mode.&lt;br /&gt;
::&amp;quot;sess.skill&amp;quot; - an array of 7 integers for the level in each skill. Do note that this doesn&#039;t have an effect on the player abilities. Different indexes are&lt;br /&gt;
:::0 - battle sense&lt;br /&gt;
:::1 - explosives and construction (engineer)&lt;br /&gt;
:::2 - first aid (medic)&lt;br /&gt;
:::3 - signals (field ops)&lt;br /&gt;
:::4 - light weapons&lt;br /&gt;
:::5 - heavy weapons (soldier)&lt;br /&gt;
:::6 - military intelligence and scoped weapons (covert ops)&lt;br /&gt;
::&amp;quot;sess.spec_invite&amp;quot; - the which the player is invited to spectate&lt;br /&gt;
::&amp;quot;sess.spec_team&amp;quot; - the team the spectator is allowed to follow&lt;br /&gt;
::&amp;quot;sess.suicides&amp;quot; - the amount of suicides of the player. This does not limit to /kill.&lt;br /&gt;
::&amp;quot;sess.team_kills&amp;quot; - the amount of team kills made by this player&lt;br /&gt;
::&amp;quot;sess.team_damage_given&amp;quot; - the amount of damage to the own team made by this player&lt;br /&gt;
::&amp;quot;sess.team_damage_received&amp;quot; - the amount of damage this player has received from his/hers own team.&lt;br /&gt;
::&amp;quot;sess.aWeaponStats&amp;quot; - weapon statistics of the player. This is read only.&lt;br /&gt;
::&amp;quot;client.inactivityTime&amp;quot; - this is a ETPro compatibility alias for the &amp;quot;inactivityTime&amp;quot; field.&lt;br /&gt;
::&amp;quot;client.inactivityWarning&amp;quot; - this is a ETPro compatibility alias for the &amp;quot;inactivityWarning&amp;quot; field.&lt;br /&gt;
::&amp;quot;origin&amp;quot; - this is an alias for the &amp;quot;ps.origin&amp;quot; field&lt;br /&gt;
::&amp;quot;sess.team_damage&amp;quot; - this is an alias for the &amp;quot;sess.team_damage_given&amp;quot; field&lt;br /&gt;
::&amp;quot;sess.team_received&amp;quot; - this is an alias for the &amp;quot;sess.team_damage_received&amp;quot; field&lt;br /&gt;
::&amp;quot;sess.guid&amp;quot; - this is the silEnT GUID of the player. This has been validated by the mod. Validation in this context does not mean it can not have been spoofed.&lt;br /&gt;
::&amp;quot;sess.ip&amp;quot; - this is the IP address of the player&lt;br /&gt;
::&amp;quot;sess.uci&amp;quot; - this is the country flag number of the player&lt;br /&gt;
::&amp;quot;sess.ignoreClients&amp;quot; - this is a bitfield of ignored clients&lt;br /&gt;
::&amp;quot;sess.skillpoints&amp;quot; - an array of 7 floats for skill points in each skill&lt;br /&gt;
::&amp;quot;sess.kstreak&amp;quot; - the killing spree&lt;br /&gt;
::&amp;quot;sess.dstreak&amp;quot; - the death spree&lt;br /&gt;
::&amp;quot;sess.rstreak&amp;quot; - the revive spree&lt;br /&gt;
::&amp;quot;sess.shoutcaster&amp;quot; - 1 if the player is shoutcaster, 0 otherwise&lt;br /&gt;
::&amp;quot;sess.rating&amp;quot; - the player win probability rating&lt;br /&gt;
::&amp;quot;sess.rating_variance&amp;quot; - the player win probability variance&lt;br /&gt;
::&amp;quot;sess.overall_killrating&amp;quot; - the player kill rating&lt;br /&gt;
::&amp;quot;sess.overall_killvariance&amp;quot; - the player kill rating variance&lt;br /&gt;
::&amp;quot;pers.lastkilled_client&amp;quot; - the client number of the last kill&lt;br /&gt;
::&amp;quot;pers.lastrevive_client&amp;quot; - the client number of the player who revived this player last&lt;br /&gt;
::&amp;quot;pers.lastkiller_client&amp;quot; - the client number of the player who killed this player last&lt;br /&gt;
::&amp;quot;pers.lastammo_client&amp;quot; - the client number of the player who gave ammo to this player last&lt;br /&gt;
::&amp;quot;pers.lasthealth_client&amp;quot; - the client number of the player who gave health to this player last&lt;br /&gt;
::&#039;&#039;&#039;Field names for all entities&#039;&#039;&#039;&lt;br /&gt;
::never ending list of fields continued later&lt;br /&gt;
*&#039;&#039;arrayindex&#039;&#039; is the index in an array if the entity field is an array, indexes start from 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== gentity_set ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets a value in an entity. See gentity_get for possible values.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.gentity_set( entnum, fieldname, arrayindex, value )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number that is manipulated&lt;br /&gt;
*&#039;&#039;fieldname&#039;&#039; is the name of the field to manipulate&lt;br /&gt;
*&#039;&#039;arrayindex&#039;&#039; is either the value that is set or an array index if the field is an array&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the new value if arrayindex is used as an array index&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_AddEvent ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adds an event to the entity event sequence.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_AddEvent( ent, event, eventparm )&lt;br /&gt;
*&#039;&#039;ent&#039;&#039; is the entity which event sequnce is handled&lt;br /&gt;
*&#039;&#039;event&#039;&#039; is the event to add&lt;br /&gt;
*&#039;&#039;eventparm&#039;&#039; is optional parameter for the event&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Shrubbot ==&lt;br /&gt;
=== G_shrubbot_permission ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tells if the given player has the given shrubbot flag set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    permission = et.G_shrubbot_permission( ent, flag )&lt;br /&gt;
*&#039;&#039;ent&#039;&#039; is the slot number of the player whos permission is checked&lt;br /&gt;
*&#039;&#039;flag&#039;&#039; is the flag character that is checked&lt;br /&gt;
*return value &#039;&#039;permission&#039;&#039; is 1 if the player has the flag set, 0 otherwise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is derived from the ETPub Lua API.&lt;br /&gt;
&lt;br /&gt;
=== G_shrubbot_level ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the shrubbot level of the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    level = et.G_shrubbot_level( ent )&lt;br /&gt;
*&#039;&#039;ent&#039;&#039; is the slot number of the player whos permission is checked&lt;br /&gt;
*return value &#039;&#039;level&#039;&#039; is the shrubbot level of the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function was derived from the ETPub Lua API.&lt;br /&gt;
&lt;br /&gt;
== Time ==&lt;br /&gt;
=== trap_Milliseconds ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns level time in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    milliseconds = et.trap_Milliseconds()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Callbacks =&lt;br /&gt;
&lt;br /&gt;
Callbacks are functions that are called by the qagame automatically, if function implementations are present in the Lua scripts. Every Lua script needs to implement at least one callback or it will not be run at all.&lt;br /&gt;
&lt;br /&gt;
=== et_InitGame ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when the server game initializes. Called once after every level change and after warmup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_InitGame( levelTime, randomSeed, restart )&lt;br /&gt;
*&#039;&#039;levelTime&#039;&#039; is the current level time in milliseconds&lt;br /&gt;
*&#039;&#039;randomSeed&#039;&#039; is a number that can be used to seed random number generators&lt;br /&gt;
*&#039;&#039;restart&#039;&#039; tells if the function is called due to a map restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ShutdownGame ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when the server game shuts down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ShutdownGame( restart )&lt;br /&gt;
*&#039;&#039;restart&#039;&#039; indicates if the server is doing map restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_RunFrame ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called at the end of each server frame.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_RunFrame( levelTime )&lt;br /&gt;
*&#039;&#039;levelTime&#039;&#039; is the current level time in milliseconds&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientConnect ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called for each connecting client. After the mod has performed most of its own actions. Connecting player can still be refused by this function.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    rejectreason = et_ClientConnect( clientNum, firstTime, isBot )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the number of the client entity. Client number range is [0,63].&lt;br /&gt;
*&#039;&#039;firstTime&#039;&#039; indicates if the player is connecting the first time or as a result of a map change or a map restart.&lt;br /&gt;
*&#039;&#039;isBot&#039;&#039; indicates if the player is a server bot. Omni-bots do have this set.&lt;br /&gt;
*return value &#039;&#039;rejectreason&#039;&#039; is a string describing why the player is refused. If nil is returned, the player is allowed to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientDisconnect ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called everytime a player is disconnected before any actions by the mod to the player data.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientDisconnect( clientNum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientBegin ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when the player is ready to be put into the world. After all mod actions. Function is called only once during the map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientBegin( clientNum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the player&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientUserinfoChanged ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called if the player userinfo has changed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientUserinfoChanged( clientNum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; the entity number of the player&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientSpawn ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player is spawned.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientSpawn( clientNum, revived, teamChange, restoreHealth )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the spawned player&lt;br /&gt;
*&#039;&#039;revive&#039;&#039; is 1 if the player was revived, 0 otherwise&lt;br /&gt;
*&#039;&#039;teamChange&#039;&#039; is 1 if the player changed team, 0 otherwise&lt;br /&gt;
*&#039;&#039;restoreHealth&#039;&#039; is 1 if the player health bar is restored to full, 0 otherwise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientCommand ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a command is received from a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    intercepted = et_ClientCommand( clientNum, command )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the player&lt;br /&gt;
*&#039;&#039;command&#039;&#039; is the command as a string&lt;br /&gt;
*return value &#039;&#039;intercepted&#039;&#039; must be set to 1 if the command execution is stopped at the Lua script. With value 0 the command is then processed in the server mod binary.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ConsoleCommand ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a command is entered to the server console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    intercepted = et_ConsoleCommand( command )&lt;br /&gt;
*&#039;&#039;command&#039;&#039; is the command name as a string&lt;br /&gt;
*return value &#039;&#039;intercepted&#039;&#039; is set to 1 if the command execution is stopped in the Lua script, 0 if the command is then executed in the server mod binary&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_UpgradeSkill ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player receives a skill upgrade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    result = et_UpgradeSkill( cno, skill )&lt;br /&gt;
*&#039;&#039;cno&#039;&#039; is the entity number of the player&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; is the skill type that is upgraded&lt;br /&gt;
*return value &#039;&#039;result&#039;&#039; will abort the skill upgrade if set to -1, any other value will allow the skill upgrade progress through&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is in ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_SetPlayerSkill ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player skill level is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    intercepted = et_SetPlayerSkill( cno, skill )&lt;br /&gt;
*&#039;&#039;cno&#039;&#039; is the entity number of the player&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; is the skil type of the player&lt;br /&gt;
*return value &#039;&#039;intercepted&#039;&#039; is set to -1 if the skill set is aborted, with any other value the set is allowed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_Print ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when server is printing to the console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_Print( text )&lt;br /&gt;
*&#039;&#039;text&#039;&#039; is the full printed text&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible. Differences may exist between ETPro, ETPub and silEnT.&lt;br /&gt;
&lt;br /&gt;
=== et_Obituary ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player is killed. If a string is returned from the callback, it will replace the obituary message. The custom obituary can be printed to either chat or as a popup. This behaviour is defined with g_logOptions flag 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    (customObit) = et_Obituary( victim, killer, meansOfDeath )&lt;br /&gt;
*&#039;&#039;victim&#039;&#039; is the entity number of the killed player&lt;br /&gt;
*&#039;&#039;killer&#039;&#039; is the entity number of the killer, this can be also 1022 which means that the world was the killer&lt;br /&gt;
*&#039;&#039;meansOfDeath&#039;&#039; is the means of death number&lt;br /&gt;
*return value &#039;&#039;customObit&#039;&#039; can be set to create customary obituary messages. If a custom obituary message is returned, only the custom obituary is printed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_CvarValue ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a client cvar value is ready to be passed to Lua scripts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_CvarValue( clientNum, cvar, value )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the player&lt;br /&gt;
*&#039;&#039;cvar&#039;&#039; is the name of the cvar&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the value of the cvar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback was added in silEnT 0.6.2 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientBinary ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player connects with an unrecognized client executable. Also called if the player connects with a known cheat binary.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientBinary( clientNum, checksum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the player&lt;br /&gt;
*&#039;&#039;checksum&#039;&#039; is the 32 character MD5 checksum of the client executable (ET.exe)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback was added in silEnT 0.6.2 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
=== et_IntermissionStarts ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called one server frame before the game enters intermission.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_IntermissionStarts( round )&lt;br /&gt;
*&#039;&#039;round&#039;&#039; is value of the g_currentRound cvar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback was added in silEnT 0.8.0 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* Document was constructed using information at http://wolfwiki.anime.net/index.php/ETPro:Lua_Mod_API as well as reading the mod source.&lt;br /&gt;
&lt;br /&gt;
* Official Lua http://www.lua.org/&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Lua&amp;diff=1203</id>
		<title>Silent Lua</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Lua&amp;diff=1203"/>
		<updated>2014-11-17T18:00:57Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* G_EntitiesFree */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;silEnT servers support Lua 5.1.4 scripts. Starting from version 0.5.1 the Lua interpreter is inbuilt into the server side mod. Before the vesion 0.5.1, the Lua was installed as an external module. A separate build of the silEnT mod is supplied within the download to admins who still want to use separate Lua library. silEnT&#039;s Lua API is aiming to be fully compatible to ETPro&#039;s Lua API. The origin of the silEnT Lua API is the Lua module in ETPub version 0.9.1.&lt;br /&gt;
&lt;br /&gt;
= Cvars =&lt;br /&gt;
== lua_modules ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of files to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. The paths are relative to the mod&#039;s directory, and can optionally be placed inside pk3 archieves. We are aiming for compatibility with ETPro&#039;s Lua Mod API found at http://wolfwiki.anime.net/index.php/Lua_Mod_API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== lua_allowedModules ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of sha1 signatures for the lua modules to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. Only lua modules with the matching sha1 signature listed in this cvar will be allowed to load by the Lua API engine (ACL). If this string is empty, all loaded modules are allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Commands =&lt;br /&gt;
== lua_status ==&lt;br /&gt;
&lt;br /&gt;
Shows information about the scripts currently loaded by the Lua API server engine. This command works also from the client so that players can check what modules are currently loaded by the server.&lt;br /&gt;
&lt;br /&gt;
= Interface Function Reference =&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
=== RegisterModname ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Registers a descriptive name for this Lua module.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.RegisterModname( modname )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;modname&#039;&#039; is the name to register the Lua module &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== FindSelf ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns a number indicating the VM slot the current mod is loaded into. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    vmnumber = et.FindSelf()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== FindMod ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the registered module name and the SHA-1 signature of the module loaded in the VM. Do note that each loaded Lua module will have it&#039;s own VM.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    modname, signature = et.FindMod( vmnumber )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;vmnumber&#039;&#039; is the number of the VM in where the Lua module is loaded&lt;br /&gt;
&lt;br /&gt;
* return value (&#039;&#039;modname&#039;&#039;, &#039;&#039;signature&#039;&#039;) is the registered module&#039;s name and the SHA-1 signature. Returns (nil, nil) if there is no module loaded into the given VM number&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== IPCSend ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inter Process Communication. This function enables communication between different loaded Lua modules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    success = et.IPCSend( vmnumber, message ) &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;vmnumber&#039;&#039; is the number of the loaded module message is sent&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;message&#039;&#039; is the string to send&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;success&#039;&#039; is 1 if success and 0 if function fails&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Printing ==&lt;br /&gt;
=== G_Print ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prints text to the server console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Print( text )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;text&#039;&#039; is the printed string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_LogPrint ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prints text to the server console and also to the log.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_LogPrint( text )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;text&#039;&#039; is the printed and logged string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Argument Handling ==&lt;br /&gt;
=== ConcatArgs ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function concatenates server command arguments into one string.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    args = et.ConcatArgs( index )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the index of the first argument in the concatenated string. First command argument index in general is 1.&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;args&#039;&#039; is the concatenated string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_Argc ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function returns the number of the arguments in the server command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    argc = et.trap_Argc()&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;argc&#039;&#039; is the count of arguments. For example for the command &amp;quot;/m gao message&amp;quot;, the function would return 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_Argv ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function returns argument in the given index.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    arg = et.trap_Argv( index )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the argument index to return.&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;arg&#039;&#039; is the argument&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Cvars ==&lt;br /&gt;
=== trap_Cvar_Get ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the value of the given cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    cvarvalue= et.trap_Cvar_Get( cvar )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;cvar&#039;&#039; is the name of the cvar&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;cvarvalue&#039;&#039; is a string containing the value. If there is no cvar with the given name, the returning string has zero length.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_Cvar_Set ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets value to a cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_Cvar_Set( name, value )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;name&#039;&#039; is the name of the cvar to set&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;value&#039;&#039; is the new value for the cvar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Configstrings ==&lt;br /&gt;
=== trap_GetConfigstring ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns contents of the configstring at index.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    configstringvalue = et.trap_GetConfigstring( index )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the index of the configstring&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;configstring&#039;&#039; contains the full config string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_SetConfigstring ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function sets the full configstring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SetConfigstring( index, configstringvalue ) &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the configstring index&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;configstringvalue&#039;&#039; is the full configstring to set&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Server Console and Client Handling ==&lt;br /&gt;
=== trap_SendConsoleCommand ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sends command to the server console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SendConsoleCommand( when, command )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;when&#039;&#039; tells when the command is executed. Possible values are &lt;br /&gt;
::et.EXEC_NOW    - executes instantly&lt;br /&gt;
::et.EXEC_INSERT - inserts at the current position but doesn&#039;t run yet&lt;br /&gt;
::et.EXEC_APPEND - appends at the end of the command buffer&lt;br /&gt;
* &#039;&#039;command&#039;&#039; is the full command to execute&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_DropClient ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disconnects client from the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_DropClient( clientnum, reason, ban_time )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client to disconnect&lt;br /&gt;
* &#039;&#039;reason&#039;&#039; is the descriptive reason for the kick. This is also displayed to the client.&lt;br /&gt;
* &#039;&#039;ban_time&#039;&#039; is optional length of the kick. If this is not set, the g_defaultBanTime is used.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_SendServerCommand ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function sends reliable server command to a client. I.e. the command is acknowledged by the client to ensure it has received it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SendServerCommand( clientnum, command )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client to send the command. If the number is -1, the command is sent to all connected clients.&lt;br /&gt;
* &#039;&#039;command&#039;&#039; is the full command string to send&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== ClientNumberFromString ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function finds one matching player name based on the given string.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    clientnum = et.ClientNumberFromString( string )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;string&#039;&#039; is a pattern to match against client names&lt;br /&gt;
* return value &#039;&#039;clientnum&#039;&#039; is the client slot number if one match is found, otherwise -1 is returned&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ETPro does not implement this function. Function is derived to silEnT from ETPub implementation.&lt;br /&gt;
&lt;br /&gt;
=== G_Say ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Writes to chat on behalf of a client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Say( clientNum, mode, text )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientNum&#039;&#039; is the slot number of the client on behalf to write chat&lt;br /&gt;
* &#039;&#039;mode&#039;&#039; is the type of chat to write. Possible values are&lt;br /&gt;
::et.SAY_ALL    - writes to the global chat&lt;br /&gt;
::et.SAY_TEAM   - writes to the team chat of the client&lt;br /&gt;
::et.SAY_BUDDY  - writes to the fireteam chat of the client&lt;br /&gt;
::et.SAY_TEAMNL - writes to the team chat of the client without position&lt;br /&gt;
* &#039;&#039;text&#039;&#039; is the chat message to write&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== ClientUserinfoChanged ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Loads the new userinfo string of the client and sets the client settings to match it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.ClientUserinfoChanged( clientNum )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;clientNum &#039;&#039; is the slot number of the client who&#039;s userinfo is loaded&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_GetUserinfo ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the userinfo string of a client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    userinfo = et.trap_GetUserinfo( clientnum )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client who&#039;s userinfo is returned&lt;br /&gt;
* return value &#039;&#039;userinfo&#039;&#039; is the full userinfo string of that client&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_SetUserinfo ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets the userinfo string of the client to the passed userinfo. To make the changes to take effect in the game, ClientUserinfoChanged must be called after this function.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SetUserinfo( clientnum, userinfo )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client who&#039;s userinfo is changed&lt;br /&gt;
* &#039;&#039;userinfo&#039;&#039; is the full new userinfo of the client&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_Damage ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Damages target entity on behalf of the attacker entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Damage( target, inflictor, attacker, damage, dflags, mod )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;target&#039;&#039; is the entity number to damage, value must be 0 or more&lt;br /&gt;
*&#039;&#039;inflictor&#039;&#039; is the entity number that does the damage, value must be 0 or more&lt;br /&gt;
*&#039;&#039;attacker&#039;&#039; is the entity number that causes the inflictor entity to cause damage to target, value must be 0 or more&lt;br /&gt;
*&#039;&#039;damage&#039;&#039; is the amount of damage to inflict&lt;br /&gt;
*&#039;&#039;dflags&#039;&#039; is the type of damage to inflict, possible values are&lt;br /&gt;
::DAMAGE_RADIUS - damage was indirect (from a nearby explosion)&lt;br /&gt;
::DAMAGE_NO_ARMOR - armor does not protect from this damage&lt;br /&gt;
::DAMAGE_NO_KNOCKBACK - do not affect velocity, just view angles&lt;br /&gt;
::DAMAGE_NO_PROTECTION - kills godmode, armor, everything&lt;br /&gt;
*&#039;&#039;mod&#039;&#039; is the means of death, possible values are:&lt;br /&gt;
::0 - MOD_UNKNOWN&lt;br /&gt;
::1 - MOD_MACHINEGUN&lt;br /&gt;
::2 - MOD_BROWNING&lt;br /&gt;
::3 - MOD_MG42&lt;br /&gt;
::4 - MOD_GRENADE&lt;br /&gt;
::5 - MOD_ROCKET&lt;br /&gt;
::6 - MOD_KNIFE&lt;br /&gt;
::7 - MOD_LUGER&lt;br /&gt;
::8 - MOD_COLT&lt;br /&gt;
::9 - MOD_MP40&lt;br /&gt;
::10 - MOD_THOMPSON&lt;br /&gt;
::11 - MOD_STEN&lt;br /&gt;
::12 - MOD_GARAND&lt;br /&gt;
::13 - MOD_SNOOPERSCOPE&lt;br /&gt;
::14 - MOD_SILENCER	&lt;br /&gt;
::15 - MOD_FG42&lt;br /&gt;
::16 - MOD_FG42SCOPE&lt;br /&gt;
::17 - MOD_PANZERFAUST&lt;br /&gt;
::18 - MOD_GRENADE_LAUNCHER&lt;br /&gt;
::19 - MOD_FLAMETHROWER&lt;br /&gt;
::20 - MOD_GRENADE_PINEAPPLE&lt;br /&gt;
::21 - MOD_CROSS&lt;br /&gt;
::22 - MOD_MAPMORTAR&lt;br /&gt;
::23 - MOD_MAPMORTAR_SPLASH&lt;br /&gt;
::24 - MOD_KICKED&lt;br /&gt;
::25 - MOD_GRABBER&lt;br /&gt;
::26 - MOD_DYNAMITE&lt;br /&gt;
::27 - MOD_AIRSTRIKE&lt;br /&gt;
::28 - MOD_SYRINGE&lt;br /&gt;
::29 - MOD_AMMO&lt;br /&gt;
::30 - MOD_ARTY&lt;br /&gt;
::31 - MOD_WATER&lt;br /&gt;
::32 - MOD_SLIME&lt;br /&gt;
::33 - MOD_LAVA&lt;br /&gt;
::34 - MOD_CRUSH&lt;br /&gt;
::35 - MOD_TELEFRAG&lt;br /&gt;
::36 - MOD_FALLING&lt;br /&gt;
::37 - MOD_SUICIDE&lt;br /&gt;
::38 - MOD_TARGET_LASER&lt;br /&gt;
::39 - MOD_TRIGGER_HURT&lt;br /&gt;
::40 - MOD_EXPLOSIVE&lt;br /&gt;
::41 - MOD_CARBINE&lt;br /&gt;
::42 - MOD_KAR98&lt;br /&gt;
::43 - MOD_GPG40&lt;br /&gt;
::44 - MOD_M7&lt;br /&gt;
::45 - MOD_LANDMINE&lt;br /&gt;
::46 - MOD_SATCHEL&lt;br /&gt;
::47 - MOD_TRIPMINE&lt;br /&gt;
::48 - MOD_SMOKEBOMB&lt;br /&gt;
::49 - MOD_MOBILE_MG42&lt;br /&gt;
::50 - MOD_SILENCED_COLT&lt;br /&gt;
::51 - MOD_GARAND_SCOPE&lt;br /&gt;
::52 - MOD_CRUSH_CONSTRUCTION&lt;br /&gt;
::53 - MOD_CRUSH_CONSTRUCTIONDEATH&lt;br /&gt;
::54 - MOD_CRUSH_CONSTRUCTIONDEATH_NOATTACKER&lt;br /&gt;
::55 - MOD_K43&lt;br /&gt;
::56 - MOD_K43_SCOPE&lt;br /&gt;
::57 - MOD_MORTAR&lt;br /&gt;
::58 - MOD_AKIMBO_COLT&lt;br /&gt;
::59 - MOD_AKIMBO_LUGER&lt;br /&gt;
::60 - MOD_AKIMBO_SILENCEDCOLT&lt;br /&gt;
::61 - MOD_AKIMBO_SILENCEDLUGER&lt;br /&gt;
::62 - MOD_SMOKEGRENADE&lt;br /&gt;
::63 - MOD_SWAP_PLACES&lt;br /&gt;
::64 - MOD_SWITCHTEAM&lt;br /&gt;
::65 - MOD_GOOMBA&lt;br /&gt;
::66 - MOD_POISON&lt;br /&gt;
::67 - MOD_FEAR&lt;br /&gt;
::68 - MOD_THROWN_KNIFE&lt;br /&gt;
::69 - MOD_REFLECTED_FF&lt;br /&gt;
::70 - MOD_PPSH&lt;br /&gt;
::71 - MOD_SHOVE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is implemented in ETPro but some of the mod values may differ.&lt;br /&gt;
&lt;br /&gt;
=== ClientIsFlooding ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tells if &#039;&#039;g_floodthreshold&#039;&#039; has been exceeded for the player. In other words, the client is sending more than a &#039;&#039;g_floodthreshold&#039;&#039; amount of messages per second to the server. Admins with shrubbot flag 2 are excluded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    flooding = et.ClientIsFlooding( clientnum )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;clientnum&#039;&#039; is the slotnumber of the client that is checked&lt;br /&gt;
*return value &#039;&#039;flooding&#039;&#039; is 1 if the clientis flooding, 0 otherwise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub&#039;s Lua module.&lt;br /&gt;
&lt;br /&gt;
=== G_AddSkillPoints ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adds points to the client&#039;s skill.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_AddSkillPoints( clientNum, skill, points )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the client&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; identifies the skill that the points are added, possible values are&lt;br /&gt;
::0 - SK_BATTLE_SENSE&lt;br /&gt;
::1 - SK_EXPLOSIVES_AND_CONSTRUCTION&lt;br /&gt;
::2 - SK_FIRST_AID&lt;br /&gt;
::3 - SK_SIGNALS&lt;br /&gt;
::4 - SK_LIGHT_WEAPONS&lt;br /&gt;
::5 - SK_HEAVY_WEAPONS&lt;br /&gt;
::6 - SK_MILITARY_INTELLIGENCE_AND_SCOPED_WEAPONS&lt;br /&gt;
::7 - SK_NUM_SKILLS&lt;br /&gt;
*&#039;&#039;points&#039;&#039; is the amount of points to add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub&#039;s Lua module.&lt;br /&gt;
&lt;br /&gt;
=== G_LoseSkillPoints ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Causes player to lose skill points.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_LoseSkillPoints( clientNum, skill, points )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the client&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; is the skill from where the points are taken, possible values are&lt;br /&gt;
::0 - SK_BATTLE_SENSE&lt;br /&gt;
::1 - SK_EXPLOSIVES_AND_CONSTRUCTION&lt;br /&gt;
::2 - SK_FIRST_AID&lt;br /&gt;
::3 - SK_SIGNALS&lt;br /&gt;
::4 - SK_LIGHT_WEAPONS&lt;br /&gt;
::5 - SK_HEAVY_WEAPONS&lt;br /&gt;
::6 - SK_MILITARY_INTELLIGENCE_AND_SCOPED_WEAPONS&lt;br /&gt;
::7 - SK_NUM_SKILLS&lt;br /&gt;
*&#039;&#039;points&#039;&#039; is the amount of points to remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub&#039;s Lua module.&lt;br /&gt;
&lt;br /&gt;
=== G_QueryClientCvar ===&lt;br /&gt;
&lt;br /&gt;
Lua scripts can query cvar values from connected players. The values are returned in a different callback function.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_QueryClientCvar( clientNum, cvarName)&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the player&lt;br /&gt;
*&#039;&#039;cvarName&#039;&#039; is the name of the cvar that is requested&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function was added in silEnT version 0.6.2 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
== String Utility Functions ==&lt;br /&gt;
=== Info_RemoveKey ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes a key and it&#039;s associated value from an infostring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    infostring = et.Info_RemoveKey( infostring, key )&lt;br /&gt;
*&#039;&#039;infostring&#039;&#039; as a passed parameter is the infostring from which to remove the key&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key to remove&lt;br /&gt;
*return value &#039;&#039;infostring&#039;&#039; is the infostring without the key&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== Info_SetValueForKey ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets a value in an infostring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    infostring = et.Info_SetValueForKey( infostring, key, value )&lt;br /&gt;
*&#039;&#039;infostring&#039;&#039; as passed parameter is the original infostring&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key to set&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the value to set to the key&lt;br /&gt;
*return value &#039;&#039;infostring&#039;&#039; is the modified infostring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== Info_ValueForKey ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns a value from an infostring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    keyvalue = et.Info_ValueForKey( infostring, key )&lt;br /&gt;
*&#039;&#039;infostring&#039;&#039; is the infostring from where to search the key&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key which value is returned&lt;br /&gt;
*return value &#039;&#039;keyvalue&#039;&#039; is the value from the searched key&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== Q_CleanStr ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes all Enemy Territory color codes and special characters from a string. The returning string will be ASCII characters of the range [32,126] in decimal numbers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    cleanstring = et.Q_CleanStr( string )&lt;br /&gt;
*&#039;&#039;string&#039;&#039; is the string to clean&lt;br /&gt;
*&#039;&#039;cleanstring&#039;&#039; is the cleaned string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Filesystem ==&lt;br /&gt;
=== trap_FS_FOpenFile ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Opens a file in the local file system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    fd, len = et.trap_FS_FOpenFile( filename, mode )&lt;br /&gt;
*&#039;&#039;filename&#039;&#039; is the name of the file to open. The file is opened under the current working directory and absolute paths will not work.&lt;br /&gt;
*&#039;&#039;mode&#039;&#039; is the mode the file is opened, possible values are&lt;br /&gt;
::et.FS_READ - opens the file for reading only&lt;br /&gt;
::et.FS_WRITE - opens the file for writing, truncates the old file if a file with name &#039;&#039;filename&#039;&#039; already exists&lt;br /&gt;
::et.FS_APPEND - opens the file for writing at the end of file, the old file is not erased if it already exists&lt;br /&gt;
::et.FS_APPEND_SYNC - like et.FS_APPEND but the file buffer is flushed to the file on hard drive directly after every write operation&lt;br /&gt;
*return value (&#039;&#039;fd&#039;&#039;, &#039;&#039;len&#039;&#039;) is the descriptor (or handle in Windows terminology) of the file and the length of the file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_Read ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Reads from an open file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    filedata = et.trap_FS_Read( fd, count )&lt;br /&gt;
*&#039;&#039;fd&#039;&#039; is the descriptor of the file to read&lt;br /&gt;
*&#039;&#039;count&#039;&#039; is the amount of bytes to read&lt;br /&gt;
*return value &#039;&#039;filedata&#039;&#039; will have the read bytes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_Write ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Writes at the end of an open file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    count= et.trap_FS_Write( filedata, count, fd )&lt;br /&gt;
*&#039;&#039;filedata&#039;&#039; is a block of bytes to write&lt;br /&gt;
*&#039;&#039;count&#039;&#039; is the size of the block to write&lt;br /&gt;
*&#039;&#039;fd&#039;&#039; is the descriptor of the file&lt;br /&gt;
*return value &#039;&#039;count&#039;&#039; is the amount of bytes written to the file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_Rename ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Renames a file in the loal file system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_FS_Rename( oldname, newname )&lt;br /&gt;
*&#039;&#039;oldname&#039;&#039; is the name of the file to rename&lt;br /&gt;
*&#039;&#039;newname&#039;&#039; is the name the old file name is changed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_FCloseFile ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Closes an opened file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_FS_FCloseFile( fd )&lt;br /&gt;
*&#039;&#039;fd&#039;&#039; is the descriptor of the opened file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Sounds and Models ==&lt;br /&gt;
=== G_SoundIndex ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the configstring index that includes the searched sound name.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    soundindex = et.G_SoundIndex( filename )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;filename&#039;&#039; is the sound file name that is searched&lt;br /&gt;
*return value &#039;&#039;soundindex&#039;&#039; is the config string index that includes the &#039;&#039;filename&#039;&#039; or 0 if the name was not found&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_ModelIndex ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns an index to the configstring that include the searched model.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    modelindex = et.G_ModelIndex( filename )&lt;br /&gt;
*&#039;&#039;filename&#039;&#039; is the name that is searched through the config strings&lt;br /&gt;
*return value &#039;&#039;modelindex&#039;&#039; is the configstring number that included the &#039;&#039;filename&#039;&#039; or 0 if not found&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_globalSound ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plays a sound to all connected clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_globalSound( sound )&lt;br /&gt;
*&#039;&#039;sound&#039;&#039; is the name of the sound to play&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_Sound ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plays a sound originating from position of an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Sound( entnum, soundindex )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the number of the entity which position is used as the sound origin&lt;br /&gt;
*&#039;&#039;soundindex&#039;&#039; is the index of the sound that is played&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_ClientSound ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plays a sound originating from a client entity to the team members of that client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_ClientSound( clientnum, soundindex )&lt;br /&gt;
*&#039;&#039;clientnum&#039;&#039; is the slot number of the connected player&lt;br /&gt;
*&#039;&#039;soundindex&#039;&#039; is the index to the sound to play&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub Lua implementation.&lt;br /&gt;
&lt;br /&gt;
== Entities ==&lt;br /&gt;
=== G_Spawn ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Spawns a new entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    entnum = et.G_Spawn()&lt;br /&gt;
*return value &#039;&#039;entnum&#039;&#039; is the number of the new entity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_TempEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Spawns a new temp entity to a location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    entnum = et.G_TempEntity( origin, event )&lt;br /&gt;
*&#039;&#039;origin&#039;&#039; is the location the temp entity is placed&lt;br /&gt;
*&#039;&#039;event&#039;&#039; is the event type of the entity, this is a number from the range [1, 118]&lt;br /&gt;
*return value &#039;&#039;entnum&#039;&#039; is the number of the new entity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible, but some event types do differ from mod to mod.&lt;br /&gt;
&lt;br /&gt;
=== G_FreeEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deletes an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_FreeEntity( entnum )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the number of the entity to remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portbility&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_EntitiesFree ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
Calculates all free entities. Free client entities (slots) are not counted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    count = et.G_EntitiesFree()&lt;br /&gt;
*return value &#039;&#039;count&#039;&#039; is the number of free entities&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub Lua implementation, where it is broken.&lt;br /&gt;
&lt;br /&gt;
=== G_GetSpawnVar ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Return a value of a spawnvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    spawnval = et.G_GetSpawnVar( entnum, key )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number of the target&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key for the value to return, possible values are&lt;br /&gt;
::classname&lt;br /&gt;
::origin&lt;br /&gt;
::model&lt;br /&gt;
::model2&lt;br /&gt;
::spawnflags&lt;br /&gt;
::eflags&lt;br /&gt;
::svflags&lt;br /&gt;
::maxs&lt;br /&gt;
::mins&lt;br /&gt;
::speed&lt;br /&gt;
::closespeed&lt;br /&gt;
::target&lt;br /&gt;
::targetname&lt;br /&gt;
::message&lt;br /&gt;
::popup&lt;br /&gt;
::book&lt;br /&gt;
::team&lt;br /&gt;
::wait&lt;br /&gt;
::random&lt;br /&gt;
::count&lt;br /&gt;
::health&lt;br /&gt;
::light - ignored&lt;br /&gt;
::dmg&lt;br /&gt;
::angles&lt;br /&gt;
::angle&lt;br /&gt;
::duration&lt;br /&gt;
::rotate&lt;br /&gt;
::degrees&lt;br /&gt;
::time&lt;br /&gt;
::skin&lt;br /&gt;
::_color&lt;br /&gt;
::color&lt;br /&gt;
::stylestring&lt;br /&gt;
::shader&lt;br /&gt;
::key&lt;br /&gt;
::harc&lt;br /&gt;
::varc&lt;br /&gt;
::delay&lt;br /&gt;
::radius&lt;br /&gt;
::missionlevel&lt;br /&gt;
::start_size&lt;br /&gt;
::end_size&lt;br /&gt;
::shard&lt;br /&gt;
::spawnitem&lt;br /&gt;
::track&lt;br /&gt;
::scriptName&lt;br /&gt;
::shortname&lt;br /&gt;
::constages&lt;br /&gt;
::desstages&lt;br /&gt;
::partofstage&lt;br /&gt;
::override&lt;br /&gt;
::damageparent&lt;br /&gt;
::contents&lt;br /&gt;
::clipmask&lt;br /&gt;
::count2&lt;br /&gt;
::pos_trType&lt;br /&gt;
::pos_trDelta&lt;br /&gt;
::apos_trType&lt;br /&gt;
::apos_trDelta&lt;br /&gt;
::allowteams&lt;br /&gt;
*return value &#039;&#039;spawnval&#039;&#039; is the value associated with the &#039;&#039;key&#039;&#039; or nil if the function fails&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_SetSpawnVar ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
Sets spawn value to an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_SetSpawnVar( entnum, key, value )&lt;br /&gt;
*&#039;&#039;entitynum&#039;&#039; is the target entity&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key for the value, the possible keys are the same as in G_GetSpawnVar&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the new value for the &#039;&#039;key&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_LinkEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Links an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_LinkEntity( entnum )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number to link&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_UnlinkEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unlinks an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_UnlinkEntity( entnum )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number to unlink&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== gentity_get ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns a field value associated with an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    variable = et.gentity_get( entnum, fieldname, arrayindex )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the number of the entity&lt;br /&gt;
*&#039;&#039;fieldname&#039;&#039; is the name of the field to get, possible values are&lt;br /&gt;
::&#039;&#039;&#039;Field names for player entities only&#039;&#039;&#039;&lt;br /&gt;
::&amp;quot;inactivityTime&amp;quot;&lt;br /&gt;
::&amp;quot;inactivityWarning&amp;quot;&lt;br /&gt;
::&amp;quot;pers.connected&amp;quot; - this is the connection status of the client, possible values are&lt;br /&gt;
:::0 - disconnected&lt;br /&gt;
:::1 - connecting&lt;br /&gt;
:::2 - connected&lt;br /&gt;
::&amp;quot;pers.netname&amp;quot; - the name of the client, including color codes&lt;br /&gt;
::&amp;quot;pers.localClient&amp;quot; - 1 if the player is from localhost, 0 otherwise&lt;br /&gt;
::&amp;quot;pers.initialSpawn&amp;quot; - 1 if the player has not spawned yet, 0 otherwise&lt;br /&gt;
::&amp;quot;pers.enterTime&amp;quot; - the level time the player connected&lt;br /&gt;
::&amp;quot;pers.connectTime&amp;quot; - the level time the player connected&lt;br /&gt;
::&amp;quot;pers.teamState.state&amp;quot; - the state of the player. This value changes on every team change and entering to the server. But it does not change on deaths and revives. Possible values are&lt;br /&gt;
:::0 - beginning, spawn at base&lt;br /&gt;
:::1 - actively playing&lt;br /&gt;
::&amp;quot;pers.voteCount&amp;quot; - the number of failed votes the player has initiated&lt;br /&gt;
::&amp;quot;pers.teamVoteCount&amp;quot; - unused&lt;br /&gt;
::&amp;quot;pers.complaints&amp;quot; - the number of complaints the player has received&lt;br /&gt;
::&amp;quot;pers.complaintClient&amp;quot; - the client number the player who teamkilled, if the complaint is possible&lt;br /&gt;
::&amp;quot;pers.complaintEndTime&amp;quot; - the level time the option for complaint ends&lt;br /&gt;
::&amp;quot;pers.lastReinforceTime&amp;quot; - time of the previous respawn&lt;br /&gt;
::&amp;quot;pers.applicationClient&amp;quot; - the client number of the player who is applying to a fireteam. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.applicationEndTime&amp;quot; - the level time when the fireteam application expires. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.invitationClient&amp;quot; - the client number of the player who is inviting a player to the fireteam. This value is stored only to the invited player.&lt;br /&gt;
::&amp;quot;pers.invitationEndTime&amp;quot; - the level time when the invitation expires. This data is stored only to the invited player.&lt;br /&gt;
::&amp;quot;pers.propositionClient&amp;quot; - the client number of the player who is proposed to the fireteam. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.propositionClient2&amp;quot; - the client number of the player who is proposing a player to the fireteam. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.propositionEndTime&amp;quot; - the level time when the proposition ends&lt;br /&gt;
::&amp;quot;pers.autofireteamEndTime&amp;quot; - the level time when prompt for making fireteam private expires&lt;br /&gt;
::&amp;quot;pers.autofireteamCreateEndTime&amp;quot; - the level time when automatic prompt for creating fireteam expires&lt;br /&gt;
::&amp;quot;pers.autofireteamJoinEndTime&amp;quot; - the level time when automatic prompt for joining existing fireteam ends&lt;br /&gt;
::&amp;quot;pers.lastSpawnTime&amp;quot; - the level time when the player spawned fresh into the world&lt;br /&gt;
::&amp;quot;pers.ready&amp;quot; - 1 if player is ready during intermission, 0 otherwise&lt;br /&gt;
:: &amp;quot;ps.stats&amp;quot; - an array of 16 integers for different purposes, the most interesting fields are&lt;br /&gt;
::: player health at index 0&lt;br /&gt;
::: player sprint time at index 7, this is a read only and changing this does not affect the game in any way&lt;br /&gt;
::: player XP at index 8&lt;br /&gt;
::: player XP overflow at index 9&lt;br /&gt;
::&amp;quot;ps.persistant&amp;quot; - an array of 16 integers for different purposes&lt;br /&gt;
::&amp;quot;ps.ping&amp;quot; - the ping of the player. The g_truePing setting does not affect this.&lt;br /&gt;
::&amp;quot;ps.powerups&amp;quot; - an array of 16 integers for powerups. The indexes are as follows&lt;br /&gt;
:::0 - none&lt;br /&gt;
:::1 - invulnerable, level time when the player is vulnerable again&lt;br /&gt;
:::2 - unused&lt;br /&gt;
:::3 - unused&lt;br /&gt;
:::4 - breath, time left with air underwater&lt;br /&gt;
:::5 - nofatigue, time left before sprint time starts to reduce&lt;br /&gt;
:::6 - red flag, axis flag carried&lt;br /&gt;
:::7 - blue flag, allied flag carried&lt;br /&gt;
:::8 - disguised, 1 if disguised, 0 otherwise&lt;br /&gt;
:::9 - information of the covert op&lt;br /&gt;
:::10 - information of the covert op&lt;br /&gt;
:::11 - information of the covert op&lt;br /&gt;
:::12 - adrenaline, time left of adrenaline&lt;br /&gt;
:::13 - unused&lt;br /&gt;
:::14 - blackout, specs see only black screen&lt;br /&gt;
:::15 - multiview, unused&lt;br /&gt;
::&amp;quot;ps.origin&amp;quot; - the player position, this is an array of 3 floats&lt;br /&gt;
::&amp;quot;ps.ammo&amp;quot; - an array of 64 integers holding total ammo for each weapon separately&lt;br /&gt;
::&amp;quot;ps.ammoclip&amp;quot; - an array of 64 integers holding ammo in the clip for each weapon separately&lt;br /&gt;
::&amp;quot;sess.sessionTeam&amp;quot; - the team of the player. Possible values are&lt;br /&gt;
:::0 - not in any team&lt;br /&gt;
:::1 - axis&lt;br /&gt;
:::2 - allies&lt;br /&gt;
:::3 - spectators&lt;br /&gt;
::&amp;quot;sess.spectatorTime&amp;quot; - the time when the player joined spectator&lt;br /&gt;
::&amp;quot;sess.spectatorState&amp;quot; - the state of the player in the specator team. Possible values are&lt;br /&gt;
:::0 - not a spectator&lt;br /&gt;
:::1 - not following any players&lt;br /&gt;
:::2 - following a player&lt;br /&gt;
::&amp;quot;sess.spectatorClient&amp;quot; - the client number of the player this player is following&lt;br /&gt;
::&amp;quot;sess.playerType&amp;quot; - the class of the player. Possible values are&lt;br /&gt;
:::0 - soldier&lt;br /&gt;
:::1 - medic&lt;br /&gt;
:::2 - engineer&lt;br /&gt;
:::3 - fieldops&lt;br /&gt;
:::4 - covert ops&lt;br /&gt;
::&amp;quot;sess.playerWeapon&amp;quot; - the weapon of the player&lt;br /&gt;
::&amp;quot;sess.playerWeapon2&amp;quot; - the sidearm of the player&lt;br /&gt;
::&amp;quot;sess.spawnObjectiveIndex&amp;quot; - the player spawn&lt;br /&gt;
::&amp;quot;sess.latchPlayerType&amp;quot; - the class of the player after next spawn&lt;br /&gt;
::&amp;quot;sess.latchPlayerWeapon&amp;quot; - the weapon of the player after next spawn&lt;br /&gt;
::&amp;quot;sess.latchPlayerWeapon2&amp;quot; - the sidearm of the player after next spawn&lt;br /&gt;
::&amp;quot;sess.damage_given&amp;quot; - the amount of damage to other team&#039;s players this player has inflicted&lt;br /&gt;
::&amp;quot;sess.damage_received&amp;quot; - the amount of damage this player has received from the other team&lt;br /&gt;
::&amp;quot;sess.deaths&amp;quot; - the amount of deaths&lt;br /&gt;
::&amp;quot;sess.game_points&amp;quot; - score&lt;br /&gt;
::&amp;quot;sess.kills&amp;quot; - the amount of kills this player has made&lt;br /&gt;
::&amp;quot;sess.medals&amp;quot; - an array of 7 integers for medals of each skill&lt;br /&gt;
::&amp;quot;sess.muted&amp;quot; and &amp;quot;sess.auto_unmute_time&amp;quot; - both of these point to the same data. This is the seconds left until unmute.&lt;br /&gt;
::&amp;quot;sess.rank&amp;quot; - the rank of the player&lt;br /&gt;
::&amp;quot;sess.referee&amp;quot; - the players referee/rcon status. Possible values are&lt;br /&gt;
:::0 - none&lt;br /&gt;
:::1 - referee&lt;br /&gt;
:::2 - rcon&lt;br /&gt;
::&amp;quot;sess.rounds&amp;quot; - the number of round. This has meaning only when playing stopwatch mode.&lt;br /&gt;
::&amp;quot;sess.skill&amp;quot; - an array of 7 integers for the level in each skill. Do note that this doesn&#039;t have an effect on the player abilities. Different indexes are&lt;br /&gt;
:::0 - battle sense&lt;br /&gt;
:::1 - explosives and construction (engineer)&lt;br /&gt;
:::2 - first aid (medic)&lt;br /&gt;
:::3 - signals (field ops)&lt;br /&gt;
:::4 - light weapons&lt;br /&gt;
:::5 - heavy weapons (soldier)&lt;br /&gt;
:::6 - military intelligence and scoped weapons (covert ops)&lt;br /&gt;
::&amp;quot;sess.spec_invite&amp;quot; - the which the player is invited to spectate&lt;br /&gt;
::&amp;quot;sess.spec_team&amp;quot; - the team the spectator is allowed to follow&lt;br /&gt;
::&amp;quot;sess.suicides&amp;quot; - the amount of suicides of the player. This does not limit to /kill.&lt;br /&gt;
::&amp;quot;sess.team_kills&amp;quot; - the amount of team kills made by this player&lt;br /&gt;
::&amp;quot;sess.team_damage_given&amp;quot; - the amount of damage to the own team made by this player&lt;br /&gt;
::&amp;quot;sess.team_damage_received&amp;quot; - the amount of damage this player has received from his/hers own team.&lt;br /&gt;
::&amp;quot;sess.aWeaponStats&amp;quot; - weapon statistics of the player. This is read only.&lt;br /&gt;
::&amp;quot;client.inactivityTime&amp;quot; - this is a ETPro compatibility alias for the &amp;quot;inactivityTime&amp;quot; field.&lt;br /&gt;
::&amp;quot;client.inactivityWarning&amp;quot; - this is a ETPro compatibility alias for the &amp;quot;inactivityWarning&amp;quot; field.&lt;br /&gt;
::&amp;quot;origin&amp;quot; - this is an alias for the &amp;quot;ps.origin&amp;quot; field&lt;br /&gt;
::&amp;quot;sess.team_damage&amp;quot; - this is an alias for the &amp;quot;sess.team_damage_given&amp;quot; field&lt;br /&gt;
::&amp;quot;sess.team_received&amp;quot; - this is an alias for the &amp;quot;sess.team_damage_received&amp;quot; field&lt;br /&gt;
::&amp;quot;sess.guid&amp;quot; - this is the silEnT GUID of the player. This has been validated by the mod. Validation in this context does not mean it can not have been spoofed.&lt;br /&gt;
::&amp;quot;sess.ip&amp;quot; - this is the IP address of the player&lt;br /&gt;
::&amp;quot;sess.uci&amp;quot; - this is the country flag number of the player&lt;br /&gt;
::&amp;quot;sess.ignoreClients&amp;quot; - this is a bitfield of ignored clients&lt;br /&gt;
::&amp;quot;sess.skillpoints&amp;quot; - an array of 7 floats for skill points in each skill&lt;br /&gt;
::&amp;quot;sess.kstreak&amp;quot; - the killing spree&lt;br /&gt;
::&amp;quot;sess.dstreak&amp;quot; - the death spree&lt;br /&gt;
::&amp;quot;sess.rstreak&amp;quot; - the revive spree&lt;br /&gt;
::&amp;quot;sess.shoutcaster&amp;quot; - 1 if the player is shoutcaster, 0 otherwise&lt;br /&gt;
::&amp;quot;sess.rating&amp;quot; - the player win probability rating&lt;br /&gt;
::&amp;quot;sess.rating_variance&amp;quot; - the player win probability variance&lt;br /&gt;
::&amp;quot;sess.overall_killrating&amp;quot; - the player kill rating&lt;br /&gt;
::&amp;quot;sess.overall_killvariance&amp;quot; - the player kill rating variance&lt;br /&gt;
::&amp;quot;pers.lastkilled_client&amp;quot; - the client number of the last kill&lt;br /&gt;
::&amp;quot;pers.lastrevive_client&amp;quot; - the client number of the player who revived this player last&lt;br /&gt;
::&amp;quot;pers.lastkiller_client&amp;quot; - the client number of the player who killed this player last&lt;br /&gt;
::&amp;quot;pers.lastammo_client&amp;quot; - the client number of the player who gave ammo to this player last&lt;br /&gt;
::&amp;quot;pers.lasthealth_client&amp;quot; - the client number of the player who gave health to this player last&lt;br /&gt;
::&#039;&#039;&#039;Field names for all entities&#039;&#039;&#039;&lt;br /&gt;
::never ending list of fields continued later&lt;br /&gt;
*&#039;&#039;arrayindex&#039;&#039; is the index in an array if the entity field is an array, indexes start from 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== gentity_set ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets a value in an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.gentity_set( entnum, fieldname, arrayindex, value )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number that is manipulated&lt;br /&gt;
*&#039;&#039;fieldname&#039;&#039; is the name of the field to manipulate&lt;br /&gt;
*&#039;&#039;arrayindex&#039;&#039; is either the value that is set or an array index if the field is an array&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the new value if arrayindex is used as an array index&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_AddEvent ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adds an event to the entity event sequence.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_AddEvent( ent, event, eventparm )&lt;br /&gt;
*&#039;&#039;ent&#039;&#039; is the entity which event sequnce is handled&lt;br /&gt;
*&#039;&#039;event&#039;&#039; is the event to add&lt;br /&gt;
*&#039;&#039;eventparm&#039;&#039; is optional parameter for the event&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Shrubbot ==&lt;br /&gt;
=== G_shrubbot_permission ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tells if the given player has the given shrubbot flag set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    permission = et.G_shrubbot_permission( ent, flag )&lt;br /&gt;
*&#039;&#039;ent&#039;&#039; is the slot number of the player whos permission is checked&lt;br /&gt;
*&#039;&#039;flag&#039;&#039; is the flag character that is checked&lt;br /&gt;
*return value &#039;&#039;permission&#039;&#039; is 1 if the player has the flag set, 0 otherwise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is derived from the ETPub Lua API.&lt;br /&gt;
&lt;br /&gt;
=== G_shrubbot_level ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the shrubbot level of the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    level = et.G_shrubbot_level( ent )&lt;br /&gt;
*&#039;&#039;ent&#039;&#039; is the slot number of the player whos permission is checked&lt;br /&gt;
*return value &#039;&#039;level&#039;&#039; is the shrubbot level of the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function was derived from the ETPub Lua API.&lt;br /&gt;
&lt;br /&gt;
== Time ==&lt;br /&gt;
=== trap_Milliseconds ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns level time in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    milliseconds = et.trap_Milliseconds()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Callbacks =&lt;br /&gt;
&lt;br /&gt;
Callbacks are functions that are called by the qagame automatically, if function implementations are present in the Lua scripts. Every Lua script needs to implement at least one callback or it will not be run at all.&lt;br /&gt;
&lt;br /&gt;
=== et_InitGame ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when the server game initializes. Called once after every level change and after warmup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_InitGame( levelTime, randomSeed, restart )&lt;br /&gt;
*&#039;&#039;levelTime&#039;&#039; is the current level time in milliseconds&lt;br /&gt;
*&#039;&#039;randomSeed&#039;&#039; is a number that can be used to seed random number generators&lt;br /&gt;
*&#039;&#039;restart&#039;&#039; tells if the function is called due to a map restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ShutdownGame ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when the server game shuts down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ShutdownGame( restart )&lt;br /&gt;
*&#039;&#039;restart&#039;&#039; indicates if the server is doing map restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_RunFrame ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called at the end of each server frame.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_RunFrame( levelTime )&lt;br /&gt;
*&#039;&#039;levelTime&#039;&#039; is the current level time in milliseconds&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientConnect ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called for each connecting client. After the mod has performed most of its own actions. Connecting player can still be refused by this function.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    rejectreason = et_ClientConnect( clientNum, firstTime, isBot )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the number of the client entity. Client number range is [0,63].&lt;br /&gt;
*&#039;&#039;firstTime&#039;&#039; indicates if the player is connecting the first time or as a result of a map change or a map restart.&lt;br /&gt;
*&#039;&#039;isBot&#039;&#039; indicates if the player is a server bot. Omni-bots do have this set.&lt;br /&gt;
*return value &#039;&#039;rejectreason&#039;&#039; is a string describing why the player is refused. If nil is returned, the player is allowed to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientDisconnect ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called everytime a player is disconnected before any actions by the mod to the player data.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientDisconnect( clientNum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientBegin ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when the player is ready to be put into the world. After all mod actions. Function is called only once during the map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientBegin( clientNum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the player&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientUserinfoChanged ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called if the player userinfo has changed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientUserinfoChanged( clientNum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; the entity number of the player&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientSpawn ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player is spawned.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientSpawn( clientNum, revived, teamChange, restoreHealth )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the spawned player&lt;br /&gt;
*&#039;&#039;revive&#039;&#039; is 1 if the player was revived, 0 otherwise&lt;br /&gt;
*&#039;&#039;teamChange&#039;&#039; is 1 if the player changed team, 0 otherwise&lt;br /&gt;
*&#039;&#039;restoreHealth&#039;&#039; is 1 if the player health bar is restored to full, 0 otherwise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientCommand ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a command is received from a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    intercepted = et_ClientCommand( clientNum, command )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the player&lt;br /&gt;
*&#039;&#039;command&#039;&#039; is the command as a string&lt;br /&gt;
*return value &#039;&#039;intercepted&#039;&#039; must be set to 1 if the command execution is stopped at the Lua script. With value 0 the command is then processed in the server mod binary.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ConsoleCommand ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a command is entered to the server console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    intercepted = et_ConsoleCommand( command )&lt;br /&gt;
*&#039;&#039;command&#039;&#039; is the command name as a string&lt;br /&gt;
*return value &#039;&#039;intercepted&#039;&#039; is set to 1 if the command execution is stopped in the Lua script, 0 if the command is then executed in the server mod binary&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_UpgradeSkill ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player receives a skill upgrade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    result = et_UpgradeSkill( cno, skill )&lt;br /&gt;
*&#039;&#039;cno&#039;&#039; is the entity number of the player&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; is the skill type that is upgraded&lt;br /&gt;
*return value &#039;&#039;result&#039;&#039; will abort the skill upgrade if set to -1, any other value will allow the skill upgrade progress through&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is in ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_SetPlayerSkill ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player skill level is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    intercepted = et_SetPlayerSkill( cno, skill )&lt;br /&gt;
*&#039;&#039;cno&#039;&#039; is the entity number of the player&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; is the skil type of the player&lt;br /&gt;
*return value &#039;&#039;intercepted&#039;&#039; is set to -1 if the skill set is aborted, with any other value the set is allowed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_Print ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when server is printing to the console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_Print( text )&lt;br /&gt;
*&#039;&#039;text&#039;&#039; is the full printed text&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible. Differences may exist between ETPro, ETPub and silEnT.&lt;br /&gt;
&lt;br /&gt;
=== et_Obituary ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player is killed. If a string is returned from the callback, it will replace the obituary message. The custom obituary can be printed to either chat or as a popup. This behaviour is defined with g_logOptions flag 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    (customObit) = et_Obituary( victim, killer, meansOfDeath )&lt;br /&gt;
*&#039;&#039;victim&#039;&#039; is the entity number of the killed player&lt;br /&gt;
*&#039;&#039;killer&#039;&#039; is the entity number of the killer, this can be also 1022 which means that the world was the killer&lt;br /&gt;
*&#039;&#039;meansOfDeath&#039;&#039; is the means of death number&lt;br /&gt;
*return value &#039;&#039;customObit&#039;&#039; can be set to create customary obituary messages. If a custom obituary message is returned, only the custom obituary is printed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_CvarValue ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a client cvar value is ready to be passed to Lua scripts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_CvarValue( clientNum, cvar, value )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the player&lt;br /&gt;
*&#039;&#039;cvar&#039;&#039; is the name of the cvar&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the value of the cvar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback was added in silEnT 0.6.2 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientBinary ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player connects with an unrecognized client executable. Also called if the player connects with a known cheat binary.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientBinary( clientNum, checksum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the player&lt;br /&gt;
*&#039;&#039;checksum&#039;&#039; is the 32 character MD5 checksum of the client executable (ET.exe)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback was added in silEnT 0.6.2 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
=== et_IntermissionStarts ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called one server frame before the game enters intermission.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_IntermissionStarts( round )&lt;br /&gt;
*&#039;&#039;round&#039;&#039; is value of the g_currentRound cvar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback was added in silEnT 0.8.0 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* Document was constructed using information at http://wolfwiki.anime.net/index.php/ETPro:Lua_Mod_API as well as reading the mod source.&lt;br /&gt;
&lt;br /&gt;
* Official Lua http://www.lua.org/&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Lua&amp;diff=1202</id>
		<title>Silent Lua</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Lua&amp;diff=1202"/>
		<updated>2014-11-17T18:00:06Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* G_EntitiesFree */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;silEnT servers support Lua 5.1.4 scripts. Starting from version 0.5.1 the Lua interpreter is inbuilt into the server side mod. Before the vesion 0.5.1, the Lua was installed as an external module. A separate build of the silEnT mod is supplied within the download to admins who still want to use separate Lua library. silEnT&#039;s Lua API is aiming to be fully compatible to ETPro&#039;s Lua API. The origin of the silEnT Lua API is the Lua module in ETPub version 0.9.1.&lt;br /&gt;
&lt;br /&gt;
= Cvars =&lt;br /&gt;
== lua_modules ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of files to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. The paths are relative to the mod&#039;s directory, and can optionally be placed inside pk3 archieves. We are aiming for compatibility with ETPro&#039;s Lua Mod API found at http://wolfwiki.anime.net/index.php/Lua_Mod_API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== lua_allowedModules ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of sha1 signatures for the lua modules to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. Only lua modules with the matching sha1 signature listed in this cvar will be allowed to load by the Lua API engine (ACL). If this string is empty, all loaded modules are allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Commands =&lt;br /&gt;
== lua_status ==&lt;br /&gt;
&lt;br /&gt;
Shows information about the scripts currently loaded by the Lua API server engine. This command works also from the client so that players can check what modules are currently loaded by the server.&lt;br /&gt;
&lt;br /&gt;
= Interface Function Reference =&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
=== RegisterModname ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Registers a descriptive name for this Lua module.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.RegisterModname( modname )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;modname&#039;&#039; is the name to register the Lua module &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== FindSelf ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns a number indicating the VM slot the current mod is loaded into. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    vmnumber = et.FindSelf()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== FindMod ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the registered module name and the SHA-1 signature of the module loaded in the VM. Do note that each loaded Lua module will have it&#039;s own VM.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    modname, signature = et.FindMod( vmnumber )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;vmnumber&#039;&#039; is the number of the VM in where the Lua module is loaded&lt;br /&gt;
&lt;br /&gt;
* return value (&#039;&#039;modname&#039;&#039;, &#039;&#039;signature&#039;&#039;) is the registered module&#039;s name and the SHA-1 signature. Returns (nil, nil) if there is no module loaded into the given VM number&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== IPCSend ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inter Process Communication. This function enables communication between different loaded Lua modules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    success = et.IPCSend( vmnumber, message ) &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;vmnumber&#039;&#039; is the number of the loaded module message is sent&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;message&#039;&#039; is the string to send&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;success&#039;&#039; is 1 if success and 0 if function fails&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Printing ==&lt;br /&gt;
=== G_Print ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prints text to the server console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Print( text )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;text&#039;&#039; is the printed string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_LogPrint ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prints text to the server console and also to the log.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_LogPrint( text )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;text&#039;&#039; is the printed and logged string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Argument Handling ==&lt;br /&gt;
=== ConcatArgs ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function concatenates server command arguments into one string.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    args = et.ConcatArgs( index )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the index of the first argument in the concatenated string. First command argument index in general is 1.&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;args&#039;&#039; is the concatenated string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_Argc ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function returns the number of the arguments in the server command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    argc = et.trap_Argc()&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;argc&#039;&#039; is the count of arguments. For example for the command &amp;quot;/m gao message&amp;quot;, the function would return 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_Argv ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function returns argument in the given index.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    arg = et.trap_Argv( index )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the argument index to return.&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;arg&#039;&#039; is the argument&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Cvars ==&lt;br /&gt;
=== trap_Cvar_Get ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the value of the given cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    cvarvalue= et.trap_Cvar_Get( cvar )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;cvar&#039;&#039; is the name of the cvar&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;cvarvalue&#039;&#039; is a string containing the value. If there is no cvar with the given name, the returning string has zero length.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_Cvar_Set ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets value to a cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_Cvar_Set( name, value )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;name&#039;&#039; is the name of the cvar to set&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;value&#039;&#039; is the new value for the cvar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Configstrings ==&lt;br /&gt;
=== trap_GetConfigstring ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns contents of the configstring at index.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    configstringvalue = et.trap_GetConfigstring( index )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the index of the configstring&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;configstring&#039;&#039; contains the full config string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_SetConfigstring ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function sets the full configstring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SetConfigstring( index, configstringvalue ) &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the configstring index&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;configstringvalue&#039;&#039; is the full configstring to set&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Server Console and Client Handling ==&lt;br /&gt;
=== trap_SendConsoleCommand ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sends command to the server console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SendConsoleCommand( when, command )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;when&#039;&#039; tells when the command is executed. Possible values are &lt;br /&gt;
::et.EXEC_NOW    - executes instantly&lt;br /&gt;
::et.EXEC_INSERT - inserts at the current position but doesn&#039;t run yet&lt;br /&gt;
::et.EXEC_APPEND - appends at the end of the command buffer&lt;br /&gt;
* &#039;&#039;command&#039;&#039; is the full command to execute&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_DropClient ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disconnects client from the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_DropClient( clientnum, reason, ban_time )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client to disconnect&lt;br /&gt;
* &#039;&#039;reason&#039;&#039; is the descriptive reason for the kick. This is also displayed to the client.&lt;br /&gt;
* &#039;&#039;ban_time&#039;&#039; is optional length of the kick. If this is not set, the g_defaultBanTime is used.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_SendServerCommand ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function sends reliable server command to a client. I.e. the command is acknowledged by the client to ensure it has received it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SendServerCommand( clientnum, command )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client to send the command. If the number is -1, the command is sent to all connected clients.&lt;br /&gt;
* &#039;&#039;command&#039;&#039; is the full command string to send&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== ClientNumberFromString ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function finds one matching player name based on the given string.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    clientnum = et.ClientNumberFromString( string )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;string&#039;&#039; is a pattern to match against client names&lt;br /&gt;
* return value &#039;&#039;clientnum&#039;&#039; is the client slot number if one match is found, otherwise -1 is returned&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ETPro does not implement this function. Function is derived to silEnT from ETPub implementation.&lt;br /&gt;
&lt;br /&gt;
=== G_Say ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Writes to chat on behalf of a client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Say( clientNum, mode, text )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientNum&#039;&#039; is the slot number of the client on behalf to write chat&lt;br /&gt;
* &#039;&#039;mode&#039;&#039; is the type of chat to write. Possible values are&lt;br /&gt;
::et.SAY_ALL    - writes to the global chat&lt;br /&gt;
::et.SAY_TEAM   - writes to the team chat of the client&lt;br /&gt;
::et.SAY_BUDDY  - writes to the fireteam chat of the client&lt;br /&gt;
::et.SAY_TEAMNL - writes to the team chat of the client without position&lt;br /&gt;
* &#039;&#039;text&#039;&#039; is the chat message to write&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== ClientUserinfoChanged ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Loads the new userinfo string of the client and sets the client settings to match it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.ClientUserinfoChanged( clientNum )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;clientNum &#039;&#039; is the slot number of the client who&#039;s userinfo is loaded&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_GetUserinfo ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the userinfo string of a client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    userinfo = et.trap_GetUserinfo( clientnum )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client who&#039;s userinfo is returned&lt;br /&gt;
* return value &#039;&#039;userinfo&#039;&#039; is the full userinfo string of that client&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_SetUserinfo ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets the userinfo string of the client to the passed userinfo. To make the changes to take effect in the game, ClientUserinfoChanged must be called after this function.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SetUserinfo( clientnum, userinfo )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client who&#039;s userinfo is changed&lt;br /&gt;
* &#039;&#039;userinfo&#039;&#039; is the full new userinfo of the client&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_Damage ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Damages target entity on behalf of the attacker entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Damage( target, inflictor, attacker, damage, dflags, mod )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;target&#039;&#039; is the entity number to damage, value must be 0 or more&lt;br /&gt;
*&#039;&#039;inflictor&#039;&#039; is the entity number that does the damage, value must be 0 or more&lt;br /&gt;
*&#039;&#039;attacker&#039;&#039; is the entity number that causes the inflictor entity to cause damage to target, value must be 0 or more&lt;br /&gt;
*&#039;&#039;damage&#039;&#039; is the amount of damage to inflict&lt;br /&gt;
*&#039;&#039;dflags&#039;&#039; is the type of damage to inflict, possible values are&lt;br /&gt;
::DAMAGE_RADIUS - damage was indirect (from a nearby explosion)&lt;br /&gt;
::DAMAGE_NO_ARMOR - armor does not protect from this damage&lt;br /&gt;
::DAMAGE_NO_KNOCKBACK - do not affect velocity, just view angles&lt;br /&gt;
::DAMAGE_NO_PROTECTION - kills godmode, armor, everything&lt;br /&gt;
*&#039;&#039;mod&#039;&#039; is the means of death, possible values are:&lt;br /&gt;
::0 - MOD_UNKNOWN&lt;br /&gt;
::1 - MOD_MACHINEGUN&lt;br /&gt;
::2 - MOD_BROWNING&lt;br /&gt;
::3 - MOD_MG42&lt;br /&gt;
::4 - MOD_GRENADE&lt;br /&gt;
::5 - MOD_ROCKET&lt;br /&gt;
::6 - MOD_KNIFE&lt;br /&gt;
::7 - MOD_LUGER&lt;br /&gt;
::8 - MOD_COLT&lt;br /&gt;
::9 - MOD_MP40&lt;br /&gt;
::10 - MOD_THOMPSON&lt;br /&gt;
::11 - MOD_STEN&lt;br /&gt;
::12 - MOD_GARAND&lt;br /&gt;
::13 - MOD_SNOOPERSCOPE&lt;br /&gt;
::14 - MOD_SILENCER	&lt;br /&gt;
::15 - MOD_FG42&lt;br /&gt;
::16 - MOD_FG42SCOPE&lt;br /&gt;
::17 - MOD_PANZERFAUST&lt;br /&gt;
::18 - MOD_GRENADE_LAUNCHER&lt;br /&gt;
::19 - MOD_FLAMETHROWER&lt;br /&gt;
::20 - MOD_GRENADE_PINEAPPLE&lt;br /&gt;
::21 - MOD_CROSS&lt;br /&gt;
::22 - MOD_MAPMORTAR&lt;br /&gt;
::23 - MOD_MAPMORTAR_SPLASH&lt;br /&gt;
::24 - MOD_KICKED&lt;br /&gt;
::25 - MOD_GRABBER&lt;br /&gt;
::26 - MOD_DYNAMITE&lt;br /&gt;
::27 - MOD_AIRSTRIKE&lt;br /&gt;
::28 - MOD_SYRINGE&lt;br /&gt;
::29 - MOD_AMMO&lt;br /&gt;
::30 - MOD_ARTY&lt;br /&gt;
::31 - MOD_WATER&lt;br /&gt;
::32 - MOD_SLIME&lt;br /&gt;
::33 - MOD_LAVA&lt;br /&gt;
::34 - MOD_CRUSH&lt;br /&gt;
::35 - MOD_TELEFRAG&lt;br /&gt;
::36 - MOD_FALLING&lt;br /&gt;
::37 - MOD_SUICIDE&lt;br /&gt;
::38 - MOD_TARGET_LASER&lt;br /&gt;
::39 - MOD_TRIGGER_HURT&lt;br /&gt;
::40 - MOD_EXPLOSIVE&lt;br /&gt;
::41 - MOD_CARBINE&lt;br /&gt;
::42 - MOD_KAR98&lt;br /&gt;
::43 - MOD_GPG40&lt;br /&gt;
::44 - MOD_M7&lt;br /&gt;
::45 - MOD_LANDMINE&lt;br /&gt;
::46 - MOD_SATCHEL&lt;br /&gt;
::47 - MOD_TRIPMINE&lt;br /&gt;
::48 - MOD_SMOKEBOMB&lt;br /&gt;
::49 - MOD_MOBILE_MG42&lt;br /&gt;
::50 - MOD_SILENCED_COLT&lt;br /&gt;
::51 - MOD_GARAND_SCOPE&lt;br /&gt;
::52 - MOD_CRUSH_CONSTRUCTION&lt;br /&gt;
::53 - MOD_CRUSH_CONSTRUCTIONDEATH&lt;br /&gt;
::54 - MOD_CRUSH_CONSTRUCTIONDEATH_NOATTACKER&lt;br /&gt;
::55 - MOD_K43&lt;br /&gt;
::56 - MOD_K43_SCOPE&lt;br /&gt;
::57 - MOD_MORTAR&lt;br /&gt;
::58 - MOD_AKIMBO_COLT&lt;br /&gt;
::59 - MOD_AKIMBO_LUGER&lt;br /&gt;
::60 - MOD_AKIMBO_SILENCEDCOLT&lt;br /&gt;
::61 - MOD_AKIMBO_SILENCEDLUGER&lt;br /&gt;
::62 - MOD_SMOKEGRENADE&lt;br /&gt;
::63 - MOD_SWAP_PLACES&lt;br /&gt;
::64 - MOD_SWITCHTEAM&lt;br /&gt;
::65 - MOD_GOOMBA&lt;br /&gt;
::66 - MOD_POISON&lt;br /&gt;
::67 - MOD_FEAR&lt;br /&gt;
::68 - MOD_THROWN_KNIFE&lt;br /&gt;
::69 - MOD_REFLECTED_FF&lt;br /&gt;
::70 - MOD_PPSH&lt;br /&gt;
::71 - MOD_SHOVE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is implemented in ETPro but some of the mod values may differ.&lt;br /&gt;
&lt;br /&gt;
=== ClientIsFlooding ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tells if &#039;&#039;g_floodthreshold&#039;&#039; has been exceeded for the player. In other words, the client is sending more than a &#039;&#039;g_floodthreshold&#039;&#039; amount of messages per second to the server. Admins with shrubbot flag 2 are excluded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    flooding = et.ClientIsFlooding( clientnum )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;clientnum&#039;&#039; is the slotnumber of the client that is checked&lt;br /&gt;
*return value &#039;&#039;flooding&#039;&#039; is 1 if the clientis flooding, 0 otherwise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub&#039;s Lua module.&lt;br /&gt;
&lt;br /&gt;
=== G_AddSkillPoints ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adds points to the client&#039;s skill.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_AddSkillPoints( clientNum, skill, points )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the client&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; identifies the skill that the points are added, possible values are&lt;br /&gt;
::0 - SK_BATTLE_SENSE&lt;br /&gt;
::1 - SK_EXPLOSIVES_AND_CONSTRUCTION&lt;br /&gt;
::2 - SK_FIRST_AID&lt;br /&gt;
::3 - SK_SIGNALS&lt;br /&gt;
::4 - SK_LIGHT_WEAPONS&lt;br /&gt;
::5 - SK_HEAVY_WEAPONS&lt;br /&gt;
::6 - SK_MILITARY_INTELLIGENCE_AND_SCOPED_WEAPONS&lt;br /&gt;
::7 - SK_NUM_SKILLS&lt;br /&gt;
*&#039;&#039;points&#039;&#039; is the amount of points to add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub&#039;s Lua module.&lt;br /&gt;
&lt;br /&gt;
=== G_LoseSkillPoints ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Causes player to lose skill points.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_LoseSkillPoints( clientNum, skill, points )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the client&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; is the skill from where the points are taken, possible values are&lt;br /&gt;
::0 - SK_BATTLE_SENSE&lt;br /&gt;
::1 - SK_EXPLOSIVES_AND_CONSTRUCTION&lt;br /&gt;
::2 - SK_FIRST_AID&lt;br /&gt;
::3 - SK_SIGNALS&lt;br /&gt;
::4 - SK_LIGHT_WEAPONS&lt;br /&gt;
::5 - SK_HEAVY_WEAPONS&lt;br /&gt;
::6 - SK_MILITARY_INTELLIGENCE_AND_SCOPED_WEAPONS&lt;br /&gt;
::7 - SK_NUM_SKILLS&lt;br /&gt;
*&#039;&#039;points&#039;&#039; is the amount of points to remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub&#039;s Lua module.&lt;br /&gt;
&lt;br /&gt;
=== G_QueryClientCvar ===&lt;br /&gt;
&lt;br /&gt;
Lua scripts can query cvar values from connected players. The values are returned in a different callback function.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_QueryClientCvar( clientNum, cvarName)&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the player&lt;br /&gt;
*&#039;&#039;cvarName&#039;&#039; is the name of the cvar that is requested&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function was added in silEnT version 0.6.2 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
== String Utility Functions ==&lt;br /&gt;
=== Info_RemoveKey ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes a key and it&#039;s associated value from an infostring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    infostring = et.Info_RemoveKey( infostring, key )&lt;br /&gt;
*&#039;&#039;infostring&#039;&#039; as a passed parameter is the infostring from which to remove the key&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key to remove&lt;br /&gt;
*return value &#039;&#039;infostring&#039;&#039; is the infostring without the key&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== Info_SetValueForKey ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets a value in an infostring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    infostring = et.Info_SetValueForKey( infostring, key, value )&lt;br /&gt;
*&#039;&#039;infostring&#039;&#039; as passed parameter is the original infostring&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key to set&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the value to set to the key&lt;br /&gt;
*return value &#039;&#039;infostring&#039;&#039; is the modified infostring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== Info_ValueForKey ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns a value from an infostring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    keyvalue = et.Info_ValueForKey( infostring, key )&lt;br /&gt;
*&#039;&#039;infostring&#039;&#039; is the infostring from where to search the key&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key which value is returned&lt;br /&gt;
*return value &#039;&#039;keyvalue&#039;&#039; is the value from the searched key&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== Q_CleanStr ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes all Enemy Territory color codes and special characters from a string. The returning string will be ASCII characters of the range [32,126] in decimal numbers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    cleanstring = et.Q_CleanStr( string )&lt;br /&gt;
*&#039;&#039;string&#039;&#039; is the string to clean&lt;br /&gt;
*&#039;&#039;cleanstring&#039;&#039; is the cleaned string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Filesystem ==&lt;br /&gt;
=== trap_FS_FOpenFile ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Opens a file in the local file system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    fd, len = et.trap_FS_FOpenFile( filename, mode )&lt;br /&gt;
*&#039;&#039;filename&#039;&#039; is the name of the file to open. The file is opened under the current working directory and absolute paths will not work.&lt;br /&gt;
*&#039;&#039;mode&#039;&#039; is the mode the file is opened, possible values are&lt;br /&gt;
::et.FS_READ - opens the file for reading only&lt;br /&gt;
::et.FS_WRITE - opens the file for writing, truncates the old file if a file with name &#039;&#039;filename&#039;&#039; already exists&lt;br /&gt;
::et.FS_APPEND - opens the file for writing at the end of file, the old file is not erased if it already exists&lt;br /&gt;
::et.FS_APPEND_SYNC - like et.FS_APPEND but the file buffer is flushed to the file on hard drive directly after every write operation&lt;br /&gt;
*return value (&#039;&#039;fd&#039;&#039;, &#039;&#039;len&#039;&#039;) is the descriptor (or handle in Windows terminology) of the file and the length of the file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_Read ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Reads from an open file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    filedata = et.trap_FS_Read( fd, count )&lt;br /&gt;
*&#039;&#039;fd&#039;&#039; is the descriptor of the file to read&lt;br /&gt;
*&#039;&#039;count&#039;&#039; is the amount of bytes to read&lt;br /&gt;
*return value &#039;&#039;filedata&#039;&#039; will have the read bytes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_Write ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Writes at the end of an open file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    count= et.trap_FS_Write( filedata, count, fd )&lt;br /&gt;
*&#039;&#039;filedata&#039;&#039; is a block of bytes to write&lt;br /&gt;
*&#039;&#039;count&#039;&#039; is the size of the block to write&lt;br /&gt;
*&#039;&#039;fd&#039;&#039; is the descriptor of the file&lt;br /&gt;
*return value &#039;&#039;count&#039;&#039; is the amount of bytes written to the file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_Rename ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Renames a file in the loal file system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_FS_Rename( oldname, newname )&lt;br /&gt;
*&#039;&#039;oldname&#039;&#039; is the name of the file to rename&lt;br /&gt;
*&#039;&#039;newname&#039;&#039; is the name the old file name is changed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_FCloseFile ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Closes an opened file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_FS_FCloseFile( fd )&lt;br /&gt;
*&#039;&#039;fd&#039;&#039; is the descriptor of the opened file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Sounds and Models ==&lt;br /&gt;
=== G_SoundIndex ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the configstring index that includes the searched sound name.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    soundindex = et.G_SoundIndex( filename )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;filename&#039;&#039; is the sound file name that is searched&lt;br /&gt;
*return value &#039;&#039;soundindex&#039;&#039; is the config string index that includes the &#039;&#039;filename&#039;&#039; or 0 if the name was not found&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_ModelIndex ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns an index to the configstring that include the searched model.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    modelindex = et.G_ModelIndex( filename )&lt;br /&gt;
*&#039;&#039;filename&#039;&#039; is the name that is searched through the config strings&lt;br /&gt;
*return value &#039;&#039;modelindex&#039;&#039; is the configstring number that included the &#039;&#039;filename&#039;&#039; or 0 if not found&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_globalSound ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plays a sound to all connected clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_globalSound( sound )&lt;br /&gt;
*&#039;&#039;sound&#039;&#039; is the name of the sound to play&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_Sound ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plays a sound originating from position of an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Sound( entnum, soundindex )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the number of the entity which position is used as the sound origin&lt;br /&gt;
*&#039;&#039;soundindex&#039;&#039; is the index of the sound that is played&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_ClientSound ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plays a sound originating from a client entity to the team members of that client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_ClientSound( clientnum, soundindex )&lt;br /&gt;
*&#039;&#039;clientnum&#039;&#039; is the slot number of the connected player&lt;br /&gt;
*&#039;&#039;soundindex&#039;&#039; is the index to the sound to play&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub Lua implementation.&lt;br /&gt;
&lt;br /&gt;
== Entities ==&lt;br /&gt;
=== G_Spawn ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Spawns a new entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    entnum = et.G_Spawn()&lt;br /&gt;
*return value &#039;&#039;entnum&#039;&#039; is the number of the new entity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_TempEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Spawns a new temp entity to a location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    entnum = et.G_TempEntity( origin, event )&lt;br /&gt;
*&#039;&#039;origin&#039;&#039; is the location the temp entity is placed&lt;br /&gt;
*&#039;&#039;event&#039;&#039; is the event type of the entity, this is a number from the range [1, 118]&lt;br /&gt;
*return value &#039;&#039;entnum&#039;&#039; is the number of the new entity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible, but some event types do differ from mod to mod.&lt;br /&gt;
&lt;br /&gt;
=== G_FreeEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deletes an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_FreeEntity( entnum )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the number of the entity to remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portbility&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_EntitiesFree ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
Calculates all free entities. Free client entities (slots) are not counted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    count = et.G_EntitiesFree()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub Lua implementation, where it is broken.&lt;br /&gt;
&lt;br /&gt;
=== G_GetSpawnVar ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Return a value of a spawnvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    spawnval = et.G_GetSpawnVar( entnum, key )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number of the target&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key for the value to return, possible values are&lt;br /&gt;
::classname&lt;br /&gt;
::origin&lt;br /&gt;
::model&lt;br /&gt;
::model2&lt;br /&gt;
::spawnflags&lt;br /&gt;
::eflags&lt;br /&gt;
::svflags&lt;br /&gt;
::maxs&lt;br /&gt;
::mins&lt;br /&gt;
::speed&lt;br /&gt;
::closespeed&lt;br /&gt;
::target&lt;br /&gt;
::targetname&lt;br /&gt;
::message&lt;br /&gt;
::popup&lt;br /&gt;
::book&lt;br /&gt;
::team&lt;br /&gt;
::wait&lt;br /&gt;
::random&lt;br /&gt;
::count&lt;br /&gt;
::health&lt;br /&gt;
::light - ignored&lt;br /&gt;
::dmg&lt;br /&gt;
::angles&lt;br /&gt;
::angle&lt;br /&gt;
::duration&lt;br /&gt;
::rotate&lt;br /&gt;
::degrees&lt;br /&gt;
::time&lt;br /&gt;
::skin&lt;br /&gt;
::_color&lt;br /&gt;
::color&lt;br /&gt;
::stylestring&lt;br /&gt;
::shader&lt;br /&gt;
::key&lt;br /&gt;
::harc&lt;br /&gt;
::varc&lt;br /&gt;
::delay&lt;br /&gt;
::radius&lt;br /&gt;
::missionlevel&lt;br /&gt;
::start_size&lt;br /&gt;
::end_size&lt;br /&gt;
::shard&lt;br /&gt;
::spawnitem&lt;br /&gt;
::track&lt;br /&gt;
::scriptName&lt;br /&gt;
::shortname&lt;br /&gt;
::constages&lt;br /&gt;
::desstages&lt;br /&gt;
::partofstage&lt;br /&gt;
::override&lt;br /&gt;
::damageparent&lt;br /&gt;
::contents&lt;br /&gt;
::clipmask&lt;br /&gt;
::count2&lt;br /&gt;
::pos_trType&lt;br /&gt;
::pos_trDelta&lt;br /&gt;
::apos_trType&lt;br /&gt;
::apos_trDelta&lt;br /&gt;
::allowteams&lt;br /&gt;
*return value &#039;&#039;spawnval&#039;&#039; is the value associated with the &#039;&#039;key&#039;&#039; or nil if the function fails&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_SetSpawnVar ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
Sets spawn value to an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_SetSpawnVar( entnum, key, value )&lt;br /&gt;
*&#039;&#039;entitynum&#039;&#039; is the target entity&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key for the value, the possible keys are the same as in G_GetSpawnVar&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the new value for the &#039;&#039;key&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_LinkEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Links an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_LinkEntity( entnum )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number to link&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_UnlinkEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unlinks an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_UnlinkEntity( entnum )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number to unlink&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== gentity_get ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns a field value associated with an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    variable = et.gentity_get( entnum, fieldname, arrayindex )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the number of the entity&lt;br /&gt;
*&#039;&#039;fieldname&#039;&#039; is the name of the field to get, possible values are&lt;br /&gt;
::&#039;&#039;&#039;Field names for player entities only&#039;&#039;&#039;&lt;br /&gt;
::&amp;quot;inactivityTime&amp;quot;&lt;br /&gt;
::&amp;quot;inactivityWarning&amp;quot;&lt;br /&gt;
::&amp;quot;pers.connected&amp;quot; - this is the connection status of the client, possible values are&lt;br /&gt;
:::0 - disconnected&lt;br /&gt;
:::1 - connecting&lt;br /&gt;
:::2 - connected&lt;br /&gt;
::&amp;quot;pers.netname&amp;quot; - the name of the client, including color codes&lt;br /&gt;
::&amp;quot;pers.localClient&amp;quot; - 1 if the player is from localhost, 0 otherwise&lt;br /&gt;
::&amp;quot;pers.initialSpawn&amp;quot; - 1 if the player has not spawned yet, 0 otherwise&lt;br /&gt;
::&amp;quot;pers.enterTime&amp;quot; - the level time the player connected&lt;br /&gt;
::&amp;quot;pers.connectTime&amp;quot; - the level time the player connected&lt;br /&gt;
::&amp;quot;pers.teamState.state&amp;quot; - the state of the player. This value changes on every team change and entering to the server. But it does not change on deaths and revives. Possible values are&lt;br /&gt;
:::0 - beginning, spawn at base&lt;br /&gt;
:::1 - actively playing&lt;br /&gt;
::&amp;quot;pers.voteCount&amp;quot; - the number of failed votes the player has initiated&lt;br /&gt;
::&amp;quot;pers.teamVoteCount&amp;quot; - unused&lt;br /&gt;
::&amp;quot;pers.complaints&amp;quot; - the number of complaints the player has received&lt;br /&gt;
::&amp;quot;pers.complaintClient&amp;quot; - the client number the player who teamkilled, if the complaint is possible&lt;br /&gt;
::&amp;quot;pers.complaintEndTime&amp;quot; - the level time the option for complaint ends&lt;br /&gt;
::&amp;quot;pers.lastReinforceTime&amp;quot; - time of the previous respawn&lt;br /&gt;
::&amp;quot;pers.applicationClient&amp;quot; - the client number of the player who is applying to a fireteam. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.applicationEndTime&amp;quot; - the level time when the fireteam application expires. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.invitationClient&amp;quot; - the client number of the player who is inviting a player to the fireteam. This value is stored only to the invited player.&lt;br /&gt;
::&amp;quot;pers.invitationEndTime&amp;quot; - the level time when the invitation expires. This data is stored only to the invited player.&lt;br /&gt;
::&amp;quot;pers.propositionClient&amp;quot; - the client number of the player who is proposed to the fireteam. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.propositionClient2&amp;quot; - the client number of the player who is proposing a player to the fireteam. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.propositionEndTime&amp;quot; - the level time when the proposition ends&lt;br /&gt;
::&amp;quot;pers.autofireteamEndTime&amp;quot; - the level time when prompt for making fireteam private expires&lt;br /&gt;
::&amp;quot;pers.autofireteamCreateEndTime&amp;quot; - the level time when automatic prompt for creating fireteam expires&lt;br /&gt;
::&amp;quot;pers.autofireteamJoinEndTime&amp;quot; - the level time when automatic prompt for joining existing fireteam ends&lt;br /&gt;
::&amp;quot;pers.lastSpawnTime&amp;quot; - the level time when the player spawned fresh into the world&lt;br /&gt;
::&amp;quot;pers.ready&amp;quot; - 1 if player is ready during intermission, 0 otherwise&lt;br /&gt;
:: &amp;quot;ps.stats&amp;quot; - an array of 16 integers for different purposes, the most interesting fields are&lt;br /&gt;
::: player health at index 0&lt;br /&gt;
::: player sprint time at index 7, this is a read only and changing this does not affect the game in any way&lt;br /&gt;
::: player XP at index 8&lt;br /&gt;
::: player XP overflow at index 9&lt;br /&gt;
::&amp;quot;ps.persistant&amp;quot; - an array of 16 integers for different purposes&lt;br /&gt;
::&amp;quot;ps.ping&amp;quot; - the ping of the player. The g_truePing setting does not affect this.&lt;br /&gt;
::&amp;quot;ps.powerups&amp;quot; - an array of 16 integers for powerups. The indexes are as follows&lt;br /&gt;
:::0 - none&lt;br /&gt;
:::1 - invulnerable, level time when the player is vulnerable again&lt;br /&gt;
:::2 - unused&lt;br /&gt;
:::3 - unused&lt;br /&gt;
:::4 - breath, time left with air underwater&lt;br /&gt;
:::5 - nofatigue, time left before sprint time starts to reduce&lt;br /&gt;
:::6 - red flag, axis flag carried&lt;br /&gt;
:::7 - blue flag, allied flag carried&lt;br /&gt;
:::8 - disguised, 1 if disguised, 0 otherwise&lt;br /&gt;
:::9 - information of the covert op&lt;br /&gt;
:::10 - information of the covert op&lt;br /&gt;
:::11 - information of the covert op&lt;br /&gt;
:::12 - adrenaline, time left of adrenaline&lt;br /&gt;
:::13 - unused&lt;br /&gt;
:::14 - blackout, specs see only black screen&lt;br /&gt;
:::15 - multiview, unused&lt;br /&gt;
::&amp;quot;ps.origin&amp;quot; - the player position, this is an array of 3 floats&lt;br /&gt;
::&amp;quot;ps.ammo&amp;quot; - an array of 64 integers holding total ammo for each weapon separately&lt;br /&gt;
::&amp;quot;ps.ammoclip&amp;quot; - an array of 64 integers holding ammo in the clip for each weapon separately&lt;br /&gt;
::&amp;quot;sess.sessionTeam&amp;quot; - the team of the player. Possible values are&lt;br /&gt;
:::0 - not in any team&lt;br /&gt;
:::1 - axis&lt;br /&gt;
:::2 - allies&lt;br /&gt;
:::3 - spectators&lt;br /&gt;
::&amp;quot;sess.spectatorTime&amp;quot; - the time when the player joined spectator&lt;br /&gt;
::&amp;quot;sess.spectatorState&amp;quot; - the state of the player in the specator team. Possible values are&lt;br /&gt;
:::0 - not a spectator&lt;br /&gt;
:::1 - not following any players&lt;br /&gt;
:::2 - following a player&lt;br /&gt;
::&amp;quot;sess.spectatorClient&amp;quot; - the client number of the player this player is following&lt;br /&gt;
::&amp;quot;sess.playerType&amp;quot; - the class of the player. Possible values are&lt;br /&gt;
:::0 - soldier&lt;br /&gt;
:::1 - medic&lt;br /&gt;
:::2 - engineer&lt;br /&gt;
:::3 - fieldops&lt;br /&gt;
:::4 - covert ops&lt;br /&gt;
::&amp;quot;sess.playerWeapon&amp;quot; - the weapon of the player&lt;br /&gt;
::&amp;quot;sess.playerWeapon2&amp;quot; - the sidearm of the player&lt;br /&gt;
::&amp;quot;sess.spawnObjectiveIndex&amp;quot; - the player spawn&lt;br /&gt;
::&amp;quot;sess.latchPlayerType&amp;quot; - the class of the player after next spawn&lt;br /&gt;
::&amp;quot;sess.latchPlayerWeapon&amp;quot; - the weapon of the player after next spawn&lt;br /&gt;
::&amp;quot;sess.latchPlayerWeapon2&amp;quot; - the sidearm of the player after next spawn&lt;br /&gt;
::&amp;quot;sess.damage_given&amp;quot; - the amount of damage to other team&#039;s players this player has inflicted&lt;br /&gt;
::&amp;quot;sess.damage_received&amp;quot; - the amount of damage this player has received from the other team&lt;br /&gt;
::&amp;quot;sess.deaths&amp;quot; - the amount of deaths&lt;br /&gt;
::&amp;quot;sess.game_points&amp;quot; - score&lt;br /&gt;
::&amp;quot;sess.kills&amp;quot; - the amount of kills this player has made&lt;br /&gt;
::&amp;quot;sess.medals&amp;quot; - an array of 7 integers for medals of each skill&lt;br /&gt;
::&amp;quot;sess.muted&amp;quot; and &amp;quot;sess.auto_unmute_time&amp;quot; - both of these point to the same data. This is the seconds left until unmute.&lt;br /&gt;
::&amp;quot;sess.rank&amp;quot; - the rank of the player&lt;br /&gt;
::&amp;quot;sess.referee&amp;quot; - the players referee/rcon status. Possible values are&lt;br /&gt;
:::0 - none&lt;br /&gt;
:::1 - referee&lt;br /&gt;
:::2 - rcon&lt;br /&gt;
::&amp;quot;sess.rounds&amp;quot; - the number of round. This has meaning only when playing stopwatch mode.&lt;br /&gt;
::&amp;quot;sess.skill&amp;quot; - an array of 7 integers for the level in each skill. Do note that this doesn&#039;t have an effect on the player abilities. Different indexes are&lt;br /&gt;
:::0 - battle sense&lt;br /&gt;
:::1 - explosives and construction (engineer)&lt;br /&gt;
:::2 - first aid (medic)&lt;br /&gt;
:::3 - signals (field ops)&lt;br /&gt;
:::4 - light weapons&lt;br /&gt;
:::5 - heavy weapons (soldier)&lt;br /&gt;
:::6 - military intelligence and scoped weapons (covert ops)&lt;br /&gt;
::&amp;quot;sess.spec_invite&amp;quot; - the which the player is invited to spectate&lt;br /&gt;
::&amp;quot;sess.spec_team&amp;quot; - the team the spectator is allowed to follow&lt;br /&gt;
::&amp;quot;sess.suicides&amp;quot; - the amount of suicides of the player. This does not limit to /kill.&lt;br /&gt;
::&amp;quot;sess.team_kills&amp;quot; - the amount of team kills made by this player&lt;br /&gt;
::&amp;quot;sess.team_damage_given&amp;quot; - the amount of damage to the own team made by this player&lt;br /&gt;
::&amp;quot;sess.team_damage_received&amp;quot; - the amount of damage this player has received from his/hers own team.&lt;br /&gt;
::&amp;quot;sess.aWeaponStats&amp;quot; - weapon statistics of the player. This is read only.&lt;br /&gt;
::&amp;quot;client.inactivityTime&amp;quot; - this is a ETPro compatibility alias for the &amp;quot;inactivityTime&amp;quot; field.&lt;br /&gt;
::&amp;quot;client.inactivityWarning&amp;quot; - this is a ETPro compatibility alias for the &amp;quot;inactivityWarning&amp;quot; field.&lt;br /&gt;
::&amp;quot;origin&amp;quot; - this is an alias for the &amp;quot;ps.origin&amp;quot; field&lt;br /&gt;
::&amp;quot;sess.team_damage&amp;quot; - this is an alias for the &amp;quot;sess.team_damage_given&amp;quot; field&lt;br /&gt;
::&amp;quot;sess.team_received&amp;quot; - this is an alias for the &amp;quot;sess.team_damage_received&amp;quot; field&lt;br /&gt;
::&amp;quot;sess.guid&amp;quot; - this is the silEnT GUID of the player. This has been validated by the mod. Validation in this context does not mean it can not have been spoofed.&lt;br /&gt;
::&amp;quot;sess.ip&amp;quot; - this is the IP address of the player&lt;br /&gt;
::&amp;quot;sess.uci&amp;quot; - this is the country flag number of the player&lt;br /&gt;
::&amp;quot;sess.ignoreClients&amp;quot; - this is a bitfield of ignored clients&lt;br /&gt;
::&amp;quot;sess.skillpoints&amp;quot; - an array of 7 floats for skill points in each skill&lt;br /&gt;
::&amp;quot;sess.kstreak&amp;quot; - the killing spree&lt;br /&gt;
::&amp;quot;sess.dstreak&amp;quot; - the death spree&lt;br /&gt;
::&amp;quot;sess.rstreak&amp;quot; - the revive spree&lt;br /&gt;
::&amp;quot;sess.shoutcaster&amp;quot; - 1 if the player is shoutcaster, 0 otherwise&lt;br /&gt;
::&amp;quot;sess.rating&amp;quot; - the player win probability rating&lt;br /&gt;
::&amp;quot;sess.rating_variance&amp;quot; - the player win probability variance&lt;br /&gt;
::&amp;quot;sess.overall_killrating&amp;quot; - the player kill rating&lt;br /&gt;
::&amp;quot;sess.overall_killvariance&amp;quot; - the player kill rating variance&lt;br /&gt;
::&amp;quot;pers.lastkilled_client&amp;quot; - the client number of the last kill&lt;br /&gt;
::&amp;quot;pers.lastrevive_client&amp;quot; - the client number of the player who revived this player last&lt;br /&gt;
::&amp;quot;pers.lastkiller_client&amp;quot; - the client number of the player who killed this player last&lt;br /&gt;
::&amp;quot;pers.lastammo_client&amp;quot; - the client number of the player who gave ammo to this player last&lt;br /&gt;
::&amp;quot;pers.lasthealth_client&amp;quot; - the client number of the player who gave health to this player last&lt;br /&gt;
::&#039;&#039;&#039;Field names for all entities&#039;&#039;&#039;&lt;br /&gt;
::never ending list of fields continued later&lt;br /&gt;
*&#039;&#039;arrayindex&#039;&#039; is the index in an array if the entity field is an array, indexes start from 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== gentity_set ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets a value in an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.gentity_set( entnum, fieldname, arrayindex, value )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number that is manipulated&lt;br /&gt;
*&#039;&#039;fieldname&#039;&#039; is the name of the field to manipulate&lt;br /&gt;
*&#039;&#039;arrayindex&#039;&#039; is either the value that is set or an array index if the field is an array&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the new value if arrayindex is used as an array index&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_AddEvent ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adds an event to the entity event sequence.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_AddEvent( ent, event, eventparm )&lt;br /&gt;
*&#039;&#039;ent&#039;&#039; is the entity which event sequnce is handled&lt;br /&gt;
*&#039;&#039;event&#039;&#039; is the event to add&lt;br /&gt;
*&#039;&#039;eventparm&#039;&#039; is optional parameter for the event&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Shrubbot ==&lt;br /&gt;
=== G_shrubbot_permission ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tells if the given player has the given shrubbot flag set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    permission = et.G_shrubbot_permission( ent, flag )&lt;br /&gt;
*&#039;&#039;ent&#039;&#039; is the slot number of the player whos permission is checked&lt;br /&gt;
*&#039;&#039;flag&#039;&#039; is the flag character that is checked&lt;br /&gt;
*return value &#039;&#039;permission&#039;&#039; is 1 if the player has the flag set, 0 otherwise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is derived from the ETPub Lua API.&lt;br /&gt;
&lt;br /&gt;
=== G_shrubbot_level ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the shrubbot level of the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    level = et.G_shrubbot_level( ent )&lt;br /&gt;
*&#039;&#039;ent&#039;&#039; is the slot number of the player whos permission is checked&lt;br /&gt;
*return value &#039;&#039;level&#039;&#039; is the shrubbot level of the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function was derived from the ETPub Lua API.&lt;br /&gt;
&lt;br /&gt;
== Time ==&lt;br /&gt;
=== trap_Milliseconds ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns level time in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    milliseconds = et.trap_Milliseconds()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Callbacks =&lt;br /&gt;
&lt;br /&gt;
Callbacks are functions that are called by the qagame automatically, if function implementations are present in the Lua scripts. Every Lua script needs to implement at least one callback or it will not be run at all.&lt;br /&gt;
&lt;br /&gt;
=== et_InitGame ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when the server game initializes. Called once after every level change and after warmup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_InitGame( levelTime, randomSeed, restart )&lt;br /&gt;
*&#039;&#039;levelTime&#039;&#039; is the current level time in milliseconds&lt;br /&gt;
*&#039;&#039;randomSeed&#039;&#039; is a number that can be used to seed random number generators&lt;br /&gt;
*&#039;&#039;restart&#039;&#039; tells if the function is called due to a map restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ShutdownGame ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when the server game shuts down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ShutdownGame( restart )&lt;br /&gt;
*&#039;&#039;restart&#039;&#039; indicates if the server is doing map restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_RunFrame ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called at the end of each server frame.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_RunFrame( levelTime )&lt;br /&gt;
*&#039;&#039;levelTime&#039;&#039; is the current level time in milliseconds&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientConnect ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called for each connecting client. After the mod has performed most of its own actions. Connecting player can still be refused by this function.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    rejectreason = et_ClientConnect( clientNum, firstTime, isBot )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the number of the client entity. Client number range is [0,63].&lt;br /&gt;
*&#039;&#039;firstTime&#039;&#039; indicates if the player is connecting the first time or as a result of a map change or a map restart.&lt;br /&gt;
*&#039;&#039;isBot&#039;&#039; indicates if the player is a server bot. Omni-bots do have this set.&lt;br /&gt;
*return value &#039;&#039;rejectreason&#039;&#039; is a string describing why the player is refused. If nil is returned, the player is allowed to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientDisconnect ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called everytime a player is disconnected before any actions by the mod to the player data.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientDisconnect( clientNum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientBegin ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when the player is ready to be put into the world. After all mod actions. Function is called only once during the map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientBegin( clientNum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the player&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientUserinfoChanged ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called if the player userinfo has changed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientUserinfoChanged( clientNum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; the entity number of the player&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientSpawn ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player is spawned.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientSpawn( clientNum, revived, teamChange, restoreHealth )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the spawned player&lt;br /&gt;
*&#039;&#039;revive&#039;&#039; is 1 if the player was revived, 0 otherwise&lt;br /&gt;
*&#039;&#039;teamChange&#039;&#039; is 1 if the player changed team, 0 otherwise&lt;br /&gt;
*&#039;&#039;restoreHealth&#039;&#039; is 1 if the player health bar is restored to full, 0 otherwise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientCommand ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a command is received from a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    intercepted = et_ClientCommand( clientNum, command )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the player&lt;br /&gt;
*&#039;&#039;command&#039;&#039; is the command as a string&lt;br /&gt;
*return value &#039;&#039;intercepted&#039;&#039; must be set to 1 if the command execution is stopped at the Lua script. With value 0 the command is then processed in the server mod binary.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ConsoleCommand ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a command is entered to the server console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    intercepted = et_ConsoleCommand( command )&lt;br /&gt;
*&#039;&#039;command&#039;&#039; is the command name as a string&lt;br /&gt;
*return value &#039;&#039;intercepted&#039;&#039; is set to 1 if the command execution is stopped in the Lua script, 0 if the command is then executed in the server mod binary&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_UpgradeSkill ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player receives a skill upgrade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    result = et_UpgradeSkill( cno, skill )&lt;br /&gt;
*&#039;&#039;cno&#039;&#039; is the entity number of the player&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; is the skill type that is upgraded&lt;br /&gt;
*return value &#039;&#039;result&#039;&#039; will abort the skill upgrade if set to -1, any other value will allow the skill upgrade progress through&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is in ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_SetPlayerSkill ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player skill level is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    intercepted = et_SetPlayerSkill( cno, skill )&lt;br /&gt;
*&#039;&#039;cno&#039;&#039; is the entity number of the player&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; is the skil type of the player&lt;br /&gt;
*return value &#039;&#039;intercepted&#039;&#039; is set to -1 if the skill set is aborted, with any other value the set is allowed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_Print ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when server is printing to the console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_Print( text )&lt;br /&gt;
*&#039;&#039;text&#039;&#039; is the full printed text&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible. Differences may exist between ETPro, ETPub and silEnT.&lt;br /&gt;
&lt;br /&gt;
=== et_Obituary ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player is killed. If a string is returned from the callback, it will replace the obituary message. The custom obituary can be printed to either chat or as a popup. This behaviour is defined with g_logOptions flag 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    (customObit) = et_Obituary( victim, killer, meansOfDeath )&lt;br /&gt;
*&#039;&#039;victim&#039;&#039; is the entity number of the killed player&lt;br /&gt;
*&#039;&#039;killer&#039;&#039; is the entity number of the killer, this can be also 1022 which means that the world was the killer&lt;br /&gt;
*&#039;&#039;meansOfDeath&#039;&#039; is the means of death number&lt;br /&gt;
*return value &#039;&#039;customObit&#039;&#039; can be set to create customary obituary messages. If a custom obituary message is returned, only the custom obituary is printed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_CvarValue ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a client cvar value is ready to be passed to Lua scripts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_CvarValue( clientNum, cvar, value )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the player&lt;br /&gt;
*&#039;&#039;cvar&#039;&#039; is the name of the cvar&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the value of the cvar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback was added in silEnT 0.6.2 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientBinary ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player connects with an unrecognized client executable. Also called if the player connects with a known cheat binary.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientBinary( clientNum, checksum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the player&lt;br /&gt;
*&#039;&#039;checksum&#039;&#039; is the 32 character MD5 checksum of the client executable (ET.exe)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback was added in silEnT 0.6.2 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
=== et_IntermissionStarts ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called one server frame before the game enters intermission.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_IntermissionStarts( round )&lt;br /&gt;
*&#039;&#039;round&#039;&#039; is value of the g_currentRound cvar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback was added in silEnT 0.8.0 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* Document was constructed using information at http://wolfwiki.anime.net/index.php/ETPro:Lua_Mod_API as well as reading the mod source.&lt;br /&gt;
&lt;br /&gt;
* Official Lua http://www.lua.org/&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Banners&amp;diff=1200</id>
		<title>Silent Banners</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Banners&amp;diff=1200"/>
		<updated>2014-11-01T02:15:09Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Banners */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Banners ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Servers can be configured to show banners to players. The banners are defined in a separate configuration file. You can enable banners by setting g_banners to point to that file.  The maximum amount of banners is 32 and the maximum length of an individual banner is 255 characters.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
set g_banners &amp;quot;banners.cfg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The file consists of [banner] blocks (similar to shrubbot). A [banner] block adds a banner to the server banner queue.&lt;br /&gt;
&lt;br /&gt;
A [banner] block has the following fields:&lt;br /&gt;
&lt;br /&gt;
:[banner]&lt;br /&gt;
:message    = ^1Check out our banner!&lt;br /&gt;
:wait       = 30&lt;br /&gt;
:position   = bp&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;message&amp;quot; is the actual message that is displayed to all the players on the server. The &amp;quot;wait&amp;quot; field determines when the next banner will be displayed. Setting this to 30 means the next banner will show up 30 seconds after this banner. Setting the wait to 0 means the next banner will be displayed at the same moment as this one. This in combination with the &amp;quot;position&amp;quot; field that determines the position of the banner, allows the same text to be displayed at one time at multiple positions. &amp;quot;position&amp;quot; can have the values chat, cpm (popup), cp (center), bp (banner) or print (console).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In versions prior to 0.4.0, the &#039;&#039;g_banners&#039;&#039; is named as &#039;&#039;g_settings&#039;&#039;. The cvar name was changed in the 0.4.0 version because the file no longer contained anything else but banner blocks.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Lua&amp;diff=1199</id>
		<title>Silent Lua</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Lua&amp;diff=1199"/>
		<updated>2014-11-01T02:11:52Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* ClientIsFlooding */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;silEnT servers support Lua 5.1.4 scripts. Starting from version 0.5.1 the Lua interpreter is inbuilt into the server side mod. Before the vesion 0.5.1, the Lua was installed as an external module. A separate build of the silEnT mod is supplied within the download to admins who still want to use separate Lua library. silEnT&#039;s Lua API is aiming to be fully compatible to ETPro&#039;s Lua API. The origin of the silEnT Lua API is the Lua module in ETPub version 0.9.1.&lt;br /&gt;
&lt;br /&gt;
= Cvars =&lt;br /&gt;
== lua_modules ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of files to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. The paths are relative to the mod&#039;s directory, and can optionally be placed inside pk3 archieves. We are aiming for compatibility with ETPro&#039;s Lua Mod API found at http://wolfwiki.anime.net/index.php/Lua_Mod_API.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== lua_allowedModules ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
List of sha1 signatures for the lua modules to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. Only lua modules with the matching sha1 signature listed in this cvar will be allowed to load by the Lua API engine (ACL). If this string is empty, all loaded modules are allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type:&#039;&#039;&#039; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default:&#039;&#039;&#039; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Commands =&lt;br /&gt;
== lua_status ==&lt;br /&gt;
&lt;br /&gt;
Shows information about the scripts currently loaded by the Lua API server engine. This command works also from the client so that players can check what modules are currently loaded by the server.&lt;br /&gt;
&lt;br /&gt;
= Interface Function Reference =&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
=== RegisterModname ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Registers a descriptive name for this Lua module.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.RegisterModname( modname )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;modname&#039;&#039; is the name to register the Lua module &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== FindSelf ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns a number indicating the VM slot the current mod is loaded into. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    vmnumber = et.FindSelf()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== FindMod ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the registered module name and the SHA-1 signature of the module loaded in the VM. Do note that each loaded Lua module will have it&#039;s own VM.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    modname, signature = et.FindMod( vmnumber )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;vmnumber&#039;&#039; is the number of the VM in where the Lua module is loaded&lt;br /&gt;
&lt;br /&gt;
* return value (&#039;&#039;modname&#039;&#039;, &#039;&#039;signature&#039;&#039;) is the registered module&#039;s name and the SHA-1 signature. Returns (nil, nil) if there is no module loaded into the given VM number&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== IPCSend ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inter Process Communication. This function enables communication between different loaded Lua modules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    success = et.IPCSend( vmnumber, message ) &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;vmnumber&#039;&#039; is the number of the loaded module message is sent&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;message&#039;&#039; is the string to send&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;success&#039;&#039; is 1 if success and 0 if function fails&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Printing ==&lt;br /&gt;
=== G_Print ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prints text to the server console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Print( text )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;text&#039;&#039; is the printed string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_LogPrint ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Prints text to the server console and also to the log.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_LogPrint( text )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;text&#039;&#039; is the printed and logged string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Argument Handling ==&lt;br /&gt;
=== ConcatArgs ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function concatenates server command arguments into one string.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    args = et.ConcatArgs( index )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the index of the first argument in the concatenated string. First command argument index in general is 1.&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;args&#039;&#039; is the concatenated string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_Argc ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function returns the number of the arguments in the server command.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    argc = et.trap_Argc()&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;argc&#039;&#039; is the count of arguments. For example for the command &amp;quot;/m gao message&amp;quot;, the function would return 2.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_Argv ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function returns argument in the given index.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    arg = et.trap_Argv( index )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the argument index to return.&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;arg&#039;&#039; is the argument&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Cvars ==&lt;br /&gt;
=== trap_Cvar_Get ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the value of the given cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    cvarvalue= et.trap_Cvar_Get( cvar )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;cvar&#039;&#039; is the name of the cvar&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;cvarvalue&#039;&#039; is a string containing the value. If there is no cvar with the given name, the returning string has zero length.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_Cvar_Set ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets value to a cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_Cvar_Set( name, value )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;name&#039;&#039; is the name of the cvar to set&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;value&#039;&#039; is the new value for the cvar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Configstrings ==&lt;br /&gt;
=== trap_GetConfigstring ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns contents of the configstring at index.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    configstringvalue = et.trap_GetConfigstring( index )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the index of the configstring&lt;br /&gt;
&lt;br /&gt;
* return value &#039;&#039;configstring&#039;&#039; contains the full config string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_SetConfigstring ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function sets the full configstring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SetConfigstring( index, configstringvalue ) &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;index&#039;&#039; is the configstring index&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;configstringvalue&#039;&#039; is the full configstring to set&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Server Console and Client Handling ==&lt;br /&gt;
=== trap_SendConsoleCommand ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sends command to the server console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SendConsoleCommand( when, command )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;when&#039;&#039; tells when the command is executed. Possible values are &lt;br /&gt;
::et.EXEC_NOW    - executes instantly&lt;br /&gt;
::et.EXEC_INSERT - inserts at the current position but doesn&#039;t run yet&lt;br /&gt;
::et.EXEC_APPEND - appends at the end of the command buffer&lt;br /&gt;
* &#039;&#039;command&#039;&#039; is the full command to execute&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_DropClient ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disconnects client from the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_DropClient( clientnum, reason, ban_time )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client to disconnect&lt;br /&gt;
* &#039;&#039;reason&#039;&#039; is the descriptive reason for the kick. This is also displayed to the client.&lt;br /&gt;
* &#039;&#039;ban_time&#039;&#039; is optional length of the kick. If this is not set, the g_defaultBanTime is used.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_SendServerCommand ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function sends reliable server command to a client. I.e. the command is acknowledged by the client to ensure it has received it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SendServerCommand( clientnum, command )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client to send the command. If the number is -1, the command is sent to all connected clients.&lt;br /&gt;
* &#039;&#039;command&#039;&#039; is the full command string to send&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== ClientNumberFromString ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function finds one matching player name based on the given string.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    clientnum = et.ClientNumberFromString( string )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;string&#039;&#039; is a pattern to match against client names&lt;br /&gt;
* return value &#039;&#039;clientnum&#039;&#039; is the client slot number if one match is found, otherwise -1 is returned&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ETPro does not implement this function. Function is derived to silEnT from ETPub implementation.&lt;br /&gt;
&lt;br /&gt;
=== G_Say ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Writes to chat on behalf of a client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Say( clientNum, mode, text )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientNum&#039;&#039; is the slot number of the client on behalf to write chat&lt;br /&gt;
* &#039;&#039;mode&#039;&#039; is the type of chat to write. Possible values are&lt;br /&gt;
::et.SAY_ALL    - writes to the global chat&lt;br /&gt;
::et.SAY_TEAM   - writes to the team chat of the client&lt;br /&gt;
::et.SAY_BUDDY  - writes to the fireteam chat of the client&lt;br /&gt;
::et.SAY_TEAMNL - writes to the team chat of the client without position&lt;br /&gt;
* &#039;&#039;text&#039;&#039; is the chat message to write&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== ClientUserinfoChanged ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Loads the new userinfo string of the client and sets the client settings to match it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.ClientUserinfoChanged( clientNum )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;clientNum &#039;&#039; is the slot number of the client who&#039;s userinfo is loaded&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_GetUserinfo ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the userinfo string of a client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    userinfo = et.trap_GetUserinfo( clientnum )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client who&#039;s userinfo is returned&lt;br /&gt;
* return value &#039;&#039;userinfo&#039;&#039; is the full userinfo string of that client&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_SetUserinfo ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets the userinfo string of the client to the passed userinfo. To make the changes to take effect in the game, ClientUserinfoChanged must be called after this function.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_SetUserinfo( clientnum, userinfo )&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;clientnum&#039;&#039; is the slot number of the client who&#039;s userinfo is changed&lt;br /&gt;
* &#039;&#039;userinfo&#039;&#039; is the full new userinfo of the client&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_Damage ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Damages target entity on behalf of the attacker entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Damage( target, inflictor, attacker, damage, dflags, mod )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;target&#039;&#039; is the entity number to damage, value must be 0 or more&lt;br /&gt;
*&#039;&#039;inflictor&#039;&#039; is the entity number that does the damage, value must be 0 or more&lt;br /&gt;
*&#039;&#039;attacker&#039;&#039; is the entity number that causes the inflictor entity to cause damage to target, value must be 0 or more&lt;br /&gt;
*&#039;&#039;damage&#039;&#039; is the amount of damage to inflict&lt;br /&gt;
*&#039;&#039;dflags&#039;&#039; is the type of damage to inflict, possible values are&lt;br /&gt;
::DAMAGE_RADIUS - damage was indirect (from a nearby explosion)&lt;br /&gt;
::DAMAGE_NO_ARMOR - armor does not protect from this damage&lt;br /&gt;
::DAMAGE_NO_KNOCKBACK - do not affect velocity, just view angles&lt;br /&gt;
::DAMAGE_NO_PROTECTION - kills godmode, armor, everything&lt;br /&gt;
*&#039;&#039;mod&#039;&#039; is the means of death, possible values are:&lt;br /&gt;
::0 - MOD_UNKNOWN&lt;br /&gt;
::1 - MOD_MACHINEGUN&lt;br /&gt;
::2 - MOD_BROWNING&lt;br /&gt;
::3 - MOD_MG42&lt;br /&gt;
::4 - MOD_GRENADE&lt;br /&gt;
::5 - MOD_ROCKET&lt;br /&gt;
::6 - MOD_KNIFE&lt;br /&gt;
::7 - MOD_LUGER&lt;br /&gt;
::8 - MOD_COLT&lt;br /&gt;
::9 - MOD_MP40&lt;br /&gt;
::10 - MOD_THOMPSON&lt;br /&gt;
::11 - MOD_STEN&lt;br /&gt;
::12 - MOD_GARAND&lt;br /&gt;
::13 - MOD_SNOOPERSCOPE&lt;br /&gt;
::14 - MOD_SILENCER	&lt;br /&gt;
::15 - MOD_FG42&lt;br /&gt;
::16 - MOD_FG42SCOPE&lt;br /&gt;
::17 - MOD_PANZERFAUST&lt;br /&gt;
::18 - MOD_GRENADE_LAUNCHER&lt;br /&gt;
::19 - MOD_FLAMETHROWER&lt;br /&gt;
::20 - MOD_GRENADE_PINEAPPLE&lt;br /&gt;
::21 - MOD_CROSS&lt;br /&gt;
::22 - MOD_MAPMORTAR&lt;br /&gt;
::23 - MOD_MAPMORTAR_SPLASH&lt;br /&gt;
::24 - MOD_KICKED&lt;br /&gt;
::25 - MOD_GRABBER&lt;br /&gt;
::26 - MOD_DYNAMITE&lt;br /&gt;
::27 - MOD_AIRSTRIKE&lt;br /&gt;
::28 - MOD_SYRINGE&lt;br /&gt;
::29 - MOD_AMMO&lt;br /&gt;
::30 - MOD_ARTY&lt;br /&gt;
::31 - MOD_WATER&lt;br /&gt;
::32 - MOD_SLIME&lt;br /&gt;
::33 - MOD_LAVA&lt;br /&gt;
::34 - MOD_CRUSH&lt;br /&gt;
::35 - MOD_TELEFRAG&lt;br /&gt;
::36 - MOD_FALLING&lt;br /&gt;
::37 - MOD_SUICIDE&lt;br /&gt;
::38 - MOD_TARGET_LASER&lt;br /&gt;
::39 - MOD_TRIGGER_HURT&lt;br /&gt;
::40 - MOD_EXPLOSIVE&lt;br /&gt;
::41 - MOD_CARBINE&lt;br /&gt;
::42 - MOD_KAR98&lt;br /&gt;
::43 - MOD_GPG40&lt;br /&gt;
::44 - MOD_M7&lt;br /&gt;
::45 - MOD_LANDMINE&lt;br /&gt;
::46 - MOD_SATCHEL&lt;br /&gt;
::47 - MOD_TRIPMINE&lt;br /&gt;
::48 - MOD_SMOKEBOMB&lt;br /&gt;
::49 - MOD_MOBILE_MG42&lt;br /&gt;
::50 - MOD_SILENCED_COLT&lt;br /&gt;
::51 - MOD_GARAND_SCOPE&lt;br /&gt;
::52 - MOD_CRUSH_CONSTRUCTION&lt;br /&gt;
::53 - MOD_CRUSH_CONSTRUCTIONDEATH&lt;br /&gt;
::54 - MOD_CRUSH_CONSTRUCTIONDEATH_NOATTACKER&lt;br /&gt;
::55 - MOD_K43&lt;br /&gt;
::56 - MOD_K43_SCOPE&lt;br /&gt;
::57 - MOD_MORTAR&lt;br /&gt;
::58 - MOD_AKIMBO_COLT&lt;br /&gt;
::59 - MOD_AKIMBO_LUGER&lt;br /&gt;
::60 - MOD_AKIMBO_SILENCEDCOLT&lt;br /&gt;
::61 - MOD_AKIMBO_SILENCEDLUGER&lt;br /&gt;
::62 - MOD_SMOKEGRENADE&lt;br /&gt;
::63 - MOD_SWAP_PLACES&lt;br /&gt;
::64 - MOD_SWITCHTEAM&lt;br /&gt;
::65 - MOD_GOOMBA&lt;br /&gt;
::66 - MOD_POISON&lt;br /&gt;
::67 - MOD_FEAR&lt;br /&gt;
::68 - MOD_THROWN_KNIFE&lt;br /&gt;
::69 - MOD_REFLECTED_FF&lt;br /&gt;
::70 - MOD_PPSH&lt;br /&gt;
::71 - MOD_SHOVE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is implemented in ETPro but some of the mod values may differ.&lt;br /&gt;
&lt;br /&gt;
=== ClientIsFlooding ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tells if &#039;&#039;g_floodthreshold&#039;&#039; has been exceeded for the player. In other words, the client is sending more than a &#039;&#039;g_floodthreshold&#039;&#039; amount of messages per second to the server. Admins with shrubbot flag 2 are excluded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    flooding = et.ClientIsFlooding( clientnum )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;clientnum&#039;&#039; is the slotnumber of the client that is checked&lt;br /&gt;
*return value &#039;&#039;flooding&#039;&#039; is 1 if the clientis flooding, 0 otherwise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub&#039;s Lua module.&lt;br /&gt;
&lt;br /&gt;
=== G_AddSkillPoints ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adds points to the client&#039;s skill.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_AddSkillPoints( clientNum, skill, points )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the client&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; identifies the skill that the points are added, possible values are&lt;br /&gt;
::0 - SK_BATTLE_SENSE&lt;br /&gt;
::1 - SK_EXPLOSIVES_AND_CONSTRUCTION&lt;br /&gt;
::2 - SK_FIRST_AID&lt;br /&gt;
::3 - SK_SIGNALS&lt;br /&gt;
::4 - SK_LIGHT_WEAPONS&lt;br /&gt;
::5 - SK_HEAVY_WEAPONS&lt;br /&gt;
::6 - SK_MILITARY_INTELLIGENCE_AND_SCOPED_WEAPONS&lt;br /&gt;
::7 - SK_NUM_SKILLS&lt;br /&gt;
*&#039;&#039;points&#039;&#039; is the amount of points to add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub&#039;s Lua module.&lt;br /&gt;
&lt;br /&gt;
=== G_LoseSkillPoints ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Causes player to lose skill points.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_LoseSkillPoints( clientNum, skill, points )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the client&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; is the skill from where the points are taken, possible values are&lt;br /&gt;
::0 - SK_BATTLE_SENSE&lt;br /&gt;
::1 - SK_EXPLOSIVES_AND_CONSTRUCTION&lt;br /&gt;
::2 - SK_FIRST_AID&lt;br /&gt;
::3 - SK_SIGNALS&lt;br /&gt;
::4 - SK_LIGHT_WEAPONS&lt;br /&gt;
::5 - SK_HEAVY_WEAPONS&lt;br /&gt;
::6 - SK_MILITARY_INTELLIGENCE_AND_SCOPED_WEAPONS&lt;br /&gt;
::7 - SK_NUM_SKILLS&lt;br /&gt;
*&#039;&#039;points&#039;&#039; is the amount of points to remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub&#039;s Lua module.&lt;br /&gt;
&lt;br /&gt;
=== G_QueryClientCvar ===&lt;br /&gt;
&lt;br /&gt;
Lua scripts can query cvar values from connected players. The values are returned in a different callback function.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_QueryClientCvar( clientNum, cvarName)&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the player&lt;br /&gt;
*&#039;&#039;cvarName&#039;&#039; is the name of the cvar that is requested&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function was added in silEnT version 0.6.2 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
== String Utility Functions ==&lt;br /&gt;
=== Info_RemoveKey ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes a key and it&#039;s associated value from an infostring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    infostring = et.Info_RemoveKey( infostring, key )&lt;br /&gt;
*&#039;&#039;infostring&#039;&#039; as a passed parameter is the infostring from which to remove the key&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key to remove&lt;br /&gt;
*return value &#039;&#039;infostring&#039;&#039; is the infostring without the key&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== Info_SetValueForKey ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets a value in an infostring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    infostring = et.Info_SetValueForKey( infostring, key, value )&lt;br /&gt;
*&#039;&#039;infostring&#039;&#039; as passed parameter is the original infostring&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key to set&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the value to set to the key&lt;br /&gt;
*return value &#039;&#039;infostring&#039;&#039; is the modified infostring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== Info_ValueForKey ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns a value from an infostring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    keyvalue = et.Info_ValueForKey( infostring, key )&lt;br /&gt;
*&#039;&#039;infostring&#039;&#039; is the infostring from where to search the key&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key which value is returned&lt;br /&gt;
*return value &#039;&#039;keyvalue&#039;&#039; is the value from the searched key&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== Q_CleanStr ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Removes all Enemy Territory color codes and special characters from a string. The returning string will be ASCII characters of the range [32,126] in decimal numbers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    cleanstring = et.Q_CleanStr( string )&lt;br /&gt;
*&#039;&#039;string&#039;&#039; is the string to clean&lt;br /&gt;
*&#039;&#039;cleanstring&#039;&#039; is the cleaned string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Filesystem ==&lt;br /&gt;
=== trap_FS_FOpenFile ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Opens a file in the local file system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    fd, len = et.trap_FS_FOpenFile( filename, mode )&lt;br /&gt;
*&#039;&#039;filename&#039;&#039; is the name of the file to open. The file is opened under the current working directory and absolute paths will not work.&lt;br /&gt;
*&#039;&#039;mode&#039;&#039; is the mode the file is opened, possible values are&lt;br /&gt;
::et.FS_READ - opens the file for reading only&lt;br /&gt;
::et.FS_WRITE - opens the file for writing, truncates the old file if a file with name &#039;&#039;filename&#039;&#039; already exists&lt;br /&gt;
::et.FS_APPEND - opens the file for writing at the end of file, the old file is not erased if it already exists&lt;br /&gt;
::et.FS_APPEND_SYNC - like et.FS_APPEND but the file buffer is flushed to the file on hard drive directly after every write operation&lt;br /&gt;
*return value (&#039;&#039;fd&#039;&#039;, &#039;&#039;len&#039;&#039;) is the descriptor (or handle in Windows terminology) of the file and the length of the file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_Read ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Reads from an open file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    filedata = et.trap_FS_Read( fd, count )&lt;br /&gt;
*&#039;&#039;fd&#039;&#039; is the descriptor of the file to read&lt;br /&gt;
*&#039;&#039;count&#039;&#039; is the amount of bytes to read&lt;br /&gt;
*return value &#039;&#039;filedata&#039;&#039; will have the read bytes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_Write ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Writes at the end of an open file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    count= et.trap_FS_Write( filedata, count, fd )&lt;br /&gt;
*&#039;&#039;filedata&#039;&#039; is a block of bytes to write&lt;br /&gt;
*&#039;&#039;count&#039;&#039; is the size of the block to write&lt;br /&gt;
*&#039;&#039;fd&#039;&#039; is the descriptor of the file&lt;br /&gt;
*return value &#039;&#039;count&#039;&#039; is the amount of bytes written to the file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_Rename ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Renames a file in the loal file system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_FS_Rename( oldname, newname )&lt;br /&gt;
*&#039;&#039;oldname&#039;&#039; is the name of the file to rename&lt;br /&gt;
*&#039;&#039;newname&#039;&#039; is the name the old file name is changed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_FS_FCloseFile ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Closes an opened file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_FS_FCloseFile( fd )&lt;br /&gt;
*&#039;&#039;fd&#039;&#039; is the descriptor of the opened file&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Sounds and Models ==&lt;br /&gt;
=== G_SoundIndex ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the configstring index that includes the searched sound name.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    soundindex = et.G_SoundIndex( filename )&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;filename&#039;&#039; is the sound file name that is searched&lt;br /&gt;
*return value &#039;&#039;soundindex&#039;&#039; is the config string index that includes the &#039;&#039;filename&#039;&#039; or 0 if the name was not found&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_ModelIndex ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns an index to the configstring that include the searched model.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    modelindex = et.G_ModelIndex( filename )&lt;br /&gt;
*&#039;&#039;filename&#039;&#039; is the name that is searched through the config strings&lt;br /&gt;
*return value &#039;&#039;modelindex&#039;&#039; is the configstring number that included the &#039;&#039;filename&#039;&#039; or 0 if not found&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_globalSound ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plays a sound to all connected clients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_globalSound( sound )&lt;br /&gt;
*&#039;&#039;sound&#039;&#039; is the name of the sound to play&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_Sound ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plays a sound originating from position of an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_Sound( entnum, soundindex )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the number of the entity which position is used as the sound origin&lt;br /&gt;
*&#039;&#039;soundindex&#039;&#039; is the index of the sound that is played&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_ClientSound ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plays a sound originating from a client entity to the team members of that client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_ClientSound( clientnum, soundindex )&lt;br /&gt;
*&#039;&#039;clientnum&#039;&#039; is the slot number of the connected player&lt;br /&gt;
*&#039;&#039;soundindex&#039;&#039; is the index to the sound to play&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub Lua implementation.&lt;br /&gt;
&lt;br /&gt;
== Entities ==&lt;br /&gt;
=== G_Spawn ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Spawns a new entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    entnum = et.G_Spawn()&lt;br /&gt;
*return value &#039;&#039;entnum&#039;&#039; is the number of the new entity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_TempEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Spawns a new temp entity to a location.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    entnum = et.G_TempEntity( origin, event )&lt;br /&gt;
*&#039;&#039;origin&#039;&#039; is the location the temp entity is placed&lt;br /&gt;
*&#039;&#039;event&#039;&#039; is the event type of the entity, this is a number from the range [1, 118]&lt;br /&gt;
*return value &#039;&#039;entnum&#039;&#039; is the number of the new entity&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible, but some event types do differ from mod to mod.&lt;br /&gt;
&lt;br /&gt;
=== G_FreeEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deletes an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_FreeEntity( entnum )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the number of the entity to remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portbility&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_EntitiesFree ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
Calculates all free entities. Free client entities (slots) are not counted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_EntitiesFree()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is not implemented in the ETPro Lua API. Function was derived to silEnT from the ETPub Lua implementation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is in a broken state and it is not adviced to use this function.&lt;br /&gt;
&lt;br /&gt;
=== G_GetSpawnVar ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Return a value of a spawnvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    spawnval = et.G_GetSpawnVar( entnum, key )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number of the target&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key for the value to return, possible values are&lt;br /&gt;
::classname&lt;br /&gt;
::origin&lt;br /&gt;
::model&lt;br /&gt;
::model2&lt;br /&gt;
::spawnflags&lt;br /&gt;
::eflags&lt;br /&gt;
::svflags&lt;br /&gt;
::maxs&lt;br /&gt;
::mins&lt;br /&gt;
::speed&lt;br /&gt;
::closespeed&lt;br /&gt;
::target&lt;br /&gt;
::targetname&lt;br /&gt;
::message&lt;br /&gt;
::popup&lt;br /&gt;
::book&lt;br /&gt;
::team&lt;br /&gt;
::wait&lt;br /&gt;
::random&lt;br /&gt;
::count&lt;br /&gt;
::health&lt;br /&gt;
::light - ignored&lt;br /&gt;
::dmg&lt;br /&gt;
::angles&lt;br /&gt;
::angle&lt;br /&gt;
::duration&lt;br /&gt;
::rotate&lt;br /&gt;
::degrees&lt;br /&gt;
::time&lt;br /&gt;
::skin&lt;br /&gt;
::_color&lt;br /&gt;
::color&lt;br /&gt;
::stylestring&lt;br /&gt;
::shader&lt;br /&gt;
::key&lt;br /&gt;
::harc&lt;br /&gt;
::varc&lt;br /&gt;
::delay&lt;br /&gt;
::radius&lt;br /&gt;
::missionlevel&lt;br /&gt;
::start_size&lt;br /&gt;
::end_size&lt;br /&gt;
::shard&lt;br /&gt;
::spawnitem&lt;br /&gt;
::track&lt;br /&gt;
::scriptName&lt;br /&gt;
::shortname&lt;br /&gt;
::constages&lt;br /&gt;
::desstages&lt;br /&gt;
::partofstage&lt;br /&gt;
::override&lt;br /&gt;
::damageparent&lt;br /&gt;
::contents&lt;br /&gt;
::clipmask&lt;br /&gt;
::count2&lt;br /&gt;
::pos_trType&lt;br /&gt;
::pos_trDelta&lt;br /&gt;
::apos_trType&lt;br /&gt;
::apos_trDelta&lt;br /&gt;
::allowteams&lt;br /&gt;
*return value &#039;&#039;spawnval&#039;&#039; is the value associated with the &#039;&#039;key&#039;&#039; or nil if the function fails&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_SetSpawnVar ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
Sets spawn value to an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_SetSpawnVar( entnum, key, value )&lt;br /&gt;
*&#039;&#039;entitynum&#039;&#039; is the target entity&lt;br /&gt;
*&#039;&#039;key&#039;&#039; is the key for the value, the possible keys are the same as in G_GetSpawnVar&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the new value for the &#039;&#039;key&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_LinkEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Links an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_LinkEntity( entnum )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number to link&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== trap_UnlinkEntity ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unlinks an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.trap_UnlinkEntity( entnum )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number to unlink&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== gentity_get ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns a field value associated with an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    variable = et.gentity_get( entnum, fieldname, arrayindex )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the number of the entity&lt;br /&gt;
*&#039;&#039;fieldname&#039;&#039; is the name of the field to get, possible values are&lt;br /&gt;
::&#039;&#039;&#039;Field names for player entities only&#039;&#039;&#039;&lt;br /&gt;
::&amp;quot;inactivityTime&amp;quot;&lt;br /&gt;
::&amp;quot;inactivityWarning&amp;quot;&lt;br /&gt;
::&amp;quot;pers.connected&amp;quot; - this is the connection status of the client, possible values are&lt;br /&gt;
:::0 - disconnected&lt;br /&gt;
:::1 - connecting&lt;br /&gt;
:::2 - connected&lt;br /&gt;
::&amp;quot;pers.netname&amp;quot; - the name of the client, including color codes&lt;br /&gt;
::&amp;quot;pers.localClient&amp;quot; - 1 if the player is from localhost, 0 otherwise&lt;br /&gt;
::&amp;quot;pers.initialSpawn&amp;quot; - 1 if the player has not spawned yet, 0 otherwise&lt;br /&gt;
::&amp;quot;pers.enterTime&amp;quot; - the level time the player connected&lt;br /&gt;
::&amp;quot;pers.connectTime&amp;quot; - the level time the player connected&lt;br /&gt;
::&amp;quot;pers.teamState.state&amp;quot; - the state of the player. This value changes on every team change and entering to the server. But it does not change on deaths and revives. Possible values are&lt;br /&gt;
:::0 - beginning, spawn at base&lt;br /&gt;
:::1 - actively playing&lt;br /&gt;
::&amp;quot;pers.voteCount&amp;quot; - the number of failed votes the player has initiated&lt;br /&gt;
::&amp;quot;pers.teamVoteCount&amp;quot; - unused&lt;br /&gt;
::&amp;quot;pers.complaints&amp;quot; - the number of complaints the player has received&lt;br /&gt;
::&amp;quot;pers.complaintClient&amp;quot; - the client number the player who teamkilled, if the complaint is possible&lt;br /&gt;
::&amp;quot;pers.complaintEndTime&amp;quot; - the level time the option for complaint ends&lt;br /&gt;
::&amp;quot;pers.lastReinforceTime&amp;quot; - time of the previous respawn&lt;br /&gt;
::&amp;quot;pers.applicationClient&amp;quot; - the client number of the player who is applying to a fireteam. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.applicationEndTime&amp;quot; - the level time when the fireteam application expires. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.invitationClient&amp;quot; - the client number of the player who is inviting a player to the fireteam. This value is stored only to the invited player.&lt;br /&gt;
::&amp;quot;pers.invitationEndTime&amp;quot; - the level time when the invitation expires. This data is stored only to the invited player.&lt;br /&gt;
::&amp;quot;pers.propositionClient&amp;quot; - the client number of the player who is proposed to the fireteam. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.propositionClient2&amp;quot; - the client number of the player who is proposing a player to the fireteam. This value is stored only to the fireteam leader.&lt;br /&gt;
::&amp;quot;pers.propositionEndTime&amp;quot; - the level time when the proposition ends&lt;br /&gt;
::&amp;quot;pers.autofireteamEndTime&amp;quot; - the level time when prompt for making fireteam private expires&lt;br /&gt;
::&amp;quot;pers.autofireteamCreateEndTime&amp;quot; - the level time when automatic prompt for creating fireteam expires&lt;br /&gt;
::&amp;quot;pers.autofireteamJoinEndTime&amp;quot; - the level time when automatic prompt for joining existing fireteam ends&lt;br /&gt;
::&amp;quot;pers.lastSpawnTime&amp;quot; - the level time when the player spawned fresh into the world&lt;br /&gt;
::&amp;quot;pers.ready&amp;quot; - 1 if player is ready during intermission, 0 otherwise&lt;br /&gt;
:: &amp;quot;ps.stats&amp;quot; - an array of 16 integers for different purposes, the most interesting fields are&lt;br /&gt;
::: player health at index 0&lt;br /&gt;
::: player sprint time at index 7, this is a read only and changing this does not affect the game in any way&lt;br /&gt;
::: player XP at index 8&lt;br /&gt;
::: player XP overflow at index 9&lt;br /&gt;
::&amp;quot;ps.persistant&amp;quot; - an array of 16 integers for different purposes&lt;br /&gt;
::&amp;quot;ps.ping&amp;quot; - the ping of the player. The g_truePing setting does not affect this.&lt;br /&gt;
::&amp;quot;ps.powerups&amp;quot; - an array of 16 integers for powerups. The indexes are as follows&lt;br /&gt;
:::0 - none&lt;br /&gt;
:::1 - invulnerable, level time when the player is vulnerable again&lt;br /&gt;
:::2 - unused&lt;br /&gt;
:::3 - unused&lt;br /&gt;
:::4 - breath, time left with air underwater&lt;br /&gt;
:::5 - nofatigue, time left before sprint time starts to reduce&lt;br /&gt;
:::6 - red flag, axis flag carried&lt;br /&gt;
:::7 - blue flag, allied flag carried&lt;br /&gt;
:::8 - disguised, 1 if disguised, 0 otherwise&lt;br /&gt;
:::9 - information of the covert op&lt;br /&gt;
:::10 - information of the covert op&lt;br /&gt;
:::11 - information of the covert op&lt;br /&gt;
:::12 - adrenaline, time left of adrenaline&lt;br /&gt;
:::13 - unused&lt;br /&gt;
:::14 - blackout, specs see only black screen&lt;br /&gt;
:::15 - multiview, unused&lt;br /&gt;
::&amp;quot;ps.origin&amp;quot; - the player position, this is an array of 3 floats&lt;br /&gt;
::&amp;quot;ps.ammo&amp;quot; - an array of 64 integers holding total ammo for each weapon separately&lt;br /&gt;
::&amp;quot;ps.ammoclip&amp;quot; - an array of 64 integers holding ammo in the clip for each weapon separately&lt;br /&gt;
::&amp;quot;sess.sessionTeam&amp;quot; - the team of the player. Possible values are&lt;br /&gt;
:::0 - not in any team&lt;br /&gt;
:::1 - axis&lt;br /&gt;
:::2 - allies&lt;br /&gt;
:::3 - spectators&lt;br /&gt;
::&amp;quot;sess.spectatorTime&amp;quot; - the time when the player joined spectator&lt;br /&gt;
::&amp;quot;sess.spectatorState&amp;quot; - the state of the player in the specator team. Possible values are&lt;br /&gt;
:::0 - not a spectator&lt;br /&gt;
:::1 - not following any players&lt;br /&gt;
:::2 - following a player&lt;br /&gt;
::&amp;quot;sess.spectatorClient&amp;quot; - the client number of the player this player is following&lt;br /&gt;
::&amp;quot;sess.playerType&amp;quot; - the class of the player. Possible values are&lt;br /&gt;
:::0 - soldier&lt;br /&gt;
:::1 - medic&lt;br /&gt;
:::2 - engineer&lt;br /&gt;
:::3 - fieldops&lt;br /&gt;
:::4 - covert ops&lt;br /&gt;
::&amp;quot;sess.playerWeapon&amp;quot; - the weapon of the player&lt;br /&gt;
::&amp;quot;sess.playerWeapon2&amp;quot; - the sidearm of the player&lt;br /&gt;
::&amp;quot;sess.spawnObjectiveIndex&amp;quot; - the player spawn&lt;br /&gt;
::&amp;quot;sess.latchPlayerType&amp;quot; - the class of the player after next spawn&lt;br /&gt;
::&amp;quot;sess.latchPlayerWeapon&amp;quot; - the weapon of the player after next spawn&lt;br /&gt;
::&amp;quot;sess.latchPlayerWeapon2&amp;quot; - the sidearm of the player after next spawn&lt;br /&gt;
::&amp;quot;sess.damage_given&amp;quot; - the amount of damage to other team&#039;s players this player has inflicted&lt;br /&gt;
::&amp;quot;sess.damage_received&amp;quot; - the amount of damage this player has received from the other team&lt;br /&gt;
::&amp;quot;sess.deaths&amp;quot; - the amount of deaths&lt;br /&gt;
::&amp;quot;sess.game_points&amp;quot; - score&lt;br /&gt;
::&amp;quot;sess.kills&amp;quot; - the amount of kills this player has made&lt;br /&gt;
::&amp;quot;sess.medals&amp;quot; - an array of 7 integers for medals of each skill&lt;br /&gt;
::&amp;quot;sess.muted&amp;quot; and &amp;quot;sess.auto_unmute_time&amp;quot; - both of these point to the same data. This is the seconds left until unmute.&lt;br /&gt;
::&amp;quot;sess.rank&amp;quot; - the rank of the player&lt;br /&gt;
::&amp;quot;sess.referee&amp;quot; - the players referee/rcon status. Possible values are&lt;br /&gt;
:::0 - none&lt;br /&gt;
:::1 - referee&lt;br /&gt;
:::2 - rcon&lt;br /&gt;
::&amp;quot;sess.rounds&amp;quot; - the number of round. This has meaning only when playing stopwatch mode.&lt;br /&gt;
::&amp;quot;sess.skill&amp;quot; - an array of 7 integers for the level in each skill. Do note that this doesn&#039;t have an effect on the player abilities. Different indexes are&lt;br /&gt;
:::0 - battle sense&lt;br /&gt;
:::1 - explosives and construction (engineer)&lt;br /&gt;
:::2 - first aid (medic)&lt;br /&gt;
:::3 - signals (field ops)&lt;br /&gt;
:::4 - light weapons&lt;br /&gt;
:::5 - heavy weapons (soldier)&lt;br /&gt;
:::6 - military intelligence and scoped weapons (covert ops)&lt;br /&gt;
::&amp;quot;sess.spec_invite&amp;quot; - the which the player is invited to spectate&lt;br /&gt;
::&amp;quot;sess.spec_team&amp;quot; - the team the spectator is allowed to follow&lt;br /&gt;
::&amp;quot;sess.suicides&amp;quot; - the amount of suicides of the player. This does not limit to /kill.&lt;br /&gt;
::&amp;quot;sess.team_kills&amp;quot; - the amount of team kills made by this player&lt;br /&gt;
::&amp;quot;sess.team_damage_given&amp;quot; - the amount of damage to the own team made by this player&lt;br /&gt;
::&amp;quot;sess.team_damage_received&amp;quot; - the amount of damage this player has received from his/hers own team.&lt;br /&gt;
::&amp;quot;sess.aWeaponStats&amp;quot; - weapon statistics of the player. This is read only.&lt;br /&gt;
::&amp;quot;client.inactivityTime&amp;quot; - this is a ETPro compatibility alias for the &amp;quot;inactivityTime&amp;quot; field.&lt;br /&gt;
::&amp;quot;client.inactivityWarning&amp;quot; - this is a ETPro compatibility alias for the &amp;quot;inactivityWarning&amp;quot; field.&lt;br /&gt;
::&amp;quot;origin&amp;quot; - this is an alias for the &amp;quot;ps.origin&amp;quot; field&lt;br /&gt;
::&amp;quot;sess.team_damage&amp;quot; - this is an alias for the &amp;quot;sess.team_damage_given&amp;quot; field&lt;br /&gt;
::&amp;quot;sess.team_received&amp;quot; - this is an alias for the &amp;quot;sess.team_damage_received&amp;quot; field&lt;br /&gt;
::&amp;quot;sess.guid&amp;quot; - this is the silEnT GUID of the player. This has been validated by the mod. Validation in this context does not mean it can not have been spoofed.&lt;br /&gt;
::&amp;quot;sess.ip&amp;quot; - this is the IP address of the player&lt;br /&gt;
::&amp;quot;sess.uci&amp;quot; - this is the country flag number of the player&lt;br /&gt;
::&amp;quot;sess.ignoreClients&amp;quot; - this is a bitfield of ignored clients&lt;br /&gt;
::&amp;quot;sess.skillpoints&amp;quot; - an array of 7 floats for skill points in each skill&lt;br /&gt;
::&amp;quot;sess.kstreak&amp;quot; - the killing spree&lt;br /&gt;
::&amp;quot;sess.dstreak&amp;quot; - the death spree&lt;br /&gt;
::&amp;quot;sess.rstreak&amp;quot; - the revive spree&lt;br /&gt;
::&amp;quot;sess.shoutcaster&amp;quot; - 1 if the player is shoutcaster, 0 otherwise&lt;br /&gt;
::&amp;quot;sess.rating&amp;quot; - the player win probability rating&lt;br /&gt;
::&amp;quot;sess.rating_variance&amp;quot; - the player win probability variance&lt;br /&gt;
::&amp;quot;sess.overall_killrating&amp;quot; - the player kill rating&lt;br /&gt;
::&amp;quot;sess.overall_killvariance&amp;quot; - the player kill rating variance&lt;br /&gt;
::&amp;quot;pers.lastkilled_client&amp;quot; - the client number of the last kill&lt;br /&gt;
::&amp;quot;pers.lastrevive_client&amp;quot; - the client number of the player who revived this player last&lt;br /&gt;
::&amp;quot;pers.lastkiller_client&amp;quot; - the client number of the player who killed this player last&lt;br /&gt;
::&amp;quot;pers.lastammo_client&amp;quot; - the client number of the player who gave ammo to this player last&lt;br /&gt;
::&amp;quot;pers.lasthealth_client&amp;quot; - the client number of the player who gave health to this player last&lt;br /&gt;
::&#039;&#039;&#039;Field names for all entities&#039;&#039;&#039;&lt;br /&gt;
::never ending list of fields continued later&lt;br /&gt;
*&#039;&#039;arrayindex&#039;&#039; is the index in an array if the entity field is an array, indexes start from 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== gentity_set ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sets a value in an entity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.gentity_set( entnum, fieldname, arrayindex, value )&lt;br /&gt;
*&#039;&#039;entnum&#039;&#039; is the entity number that is manipulated&lt;br /&gt;
*&#039;&#039;fieldname&#039;&#039; is the name of the field to manipulate&lt;br /&gt;
*&#039;&#039;arrayindex&#039;&#039; is either the value that is set or an array index if the field is an array&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the new value if arrayindex is used as an array index&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== G_AddEvent ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Adds an event to the entity event sequence.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et.G_AddEvent( ent, event, eventparm )&lt;br /&gt;
*&#039;&#039;ent&#039;&#039; is the entity which event sequnce is handled&lt;br /&gt;
*&#039;&#039;event&#039;&#039; is the event to add&lt;br /&gt;
*&#039;&#039;eventparm&#039;&#039; is optional parameter for the event&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
== Shrubbot ==&lt;br /&gt;
=== G_shrubbot_permission ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tells if the given player has the given shrubbot flag set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    permission = et.G_shrubbot_permission( ent, flag )&lt;br /&gt;
*&#039;&#039;ent&#039;&#039; is the slot number of the player whos permission is checked&lt;br /&gt;
*&#039;&#039;flag&#039;&#039; is the flag character that is checked&lt;br /&gt;
*return value &#039;&#039;permission&#039;&#039; is 1 if the player has the flag set, 0 otherwise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is derived from the ETPub Lua API.&lt;br /&gt;
&lt;br /&gt;
=== G_shrubbot_level ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns the shrubbot level of the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    level = et.G_shrubbot_level( ent )&lt;br /&gt;
*&#039;&#039;ent&#039;&#039; is the slot number of the player whos permission is checked&lt;br /&gt;
*return value &#039;&#039;level&#039;&#039; is the shrubbot level of the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function was derived from the ETPub Lua API.&lt;br /&gt;
&lt;br /&gt;
== Time ==&lt;br /&gt;
=== trap_Milliseconds ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Returns level time in milliseconds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    milliseconds = et.trap_Milliseconds()&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Callbacks =&lt;br /&gt;
&lt;br /&gt;
Callbacks are functions that are called by the qagame automatically, if function implementations are present in the Lua scripts. Every Lua script needs to implement at least one callback or it will not be run at all.&lt;br /&gt;
&lt;br /&gt;
=== et_InitGame ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when the server game initializes. Called once after every level change and after warmup.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_InitGame( levelTime, randomSeed, restart )&lt;br /&gt;
*&#039;&#039;levelTime&#039;&#039; is the current level time in milliseconds&lt;br /&gt;
*&#039;&#039;randomSeed&#039;&#039; is a number that can be used to seed random number generators&lt;br /&gt;
*&#039;&#039;restart&#039;&#039; tells if the function is called due to a map restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ShutdownGame ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when the server game shuts down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ShutdownGame( restart )&lt;br /&gt;
*&#039;&#039;restart&#039;&#039; indicates if the server is doing map restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_RunFrame ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called at the end of each server frame.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_RunFrame( levelTime )&lt;br /&gt;
*&#039;&#039;levelTime&#039;&#039; is the current level time in milliseconds&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientConnect ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called for each connecting client. After the mod has performed most of its own actions. Connecting player can still be refused by this function.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    rejectreason = et_ClientConnect( clientNum, firstTime, isBot )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the number of the client entity. Client number range is [0,63].&lt;br /&gt;
*&#039;&#039;firstTime&#039;&#039; indicates if the player is connecting the first time or as a result of a map change or a map restart.&lt;br /&gt;
*&#039;&#039;isBot&#039;&#039; indicates if the player is a server bot. Omni-bots do have this set.&lt;br /&gt;
*return value &#039;&#039;rejectreason&#039;&#039; is a string describing why the player is refused. If nil is returned, the player is allowed to connect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientDisconnect ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called everytime a player is disconnected before any actions by the mod to the player data.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientDisconnect( clientNum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientBegin ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when the player is ready to be put into the world. After all mod actions. Function is called only once during the map.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientBegin( clientNum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the player&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientUserinfoChanged ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called if the player userinfo has changed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientUserinfoChanged( clientNum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; the entity number of the player&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientSpawn ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player is spawned.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientSpawn( clientNum, revived, teamChange, restoreHealth )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the spawned player&lt;br /&gt;
*&#039;&#039;revive&#039;&#039; is 1 if the player was revived, 0 otherwise&lt;br /&gt;
*&#039;&#039;teamChange&#039;&#039; is 1 if the player changed team, 0 otherwise&lt;br /&gt;
*&#039;&#039;restoreHealth&#039;&#039; is 1 if the player health bar is restored to full, 0 otherwise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientCommand ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a command is received from a player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    intercepted = et_ClientCommand( clientNum, command )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the entity number of the player&lt;br /&gt;
*&#039;&#039;command&#039;&#039; is the command as a string&lt;br /&gt;
*return value &#039;&#039;intercepted&#039;&#039; must be set to 1 if the command execution is stopped at the Lua script. With value 0 the command is then processed in the server mod binary.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_ConsoleCommand ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a command is entered to the server console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    intercepted = et_ConsoleCommand( command )&lt;br /&gt;
*&#039;&#039;command&#039;&#039; is the command name as a string&lt;br /&gt;
*return value &#039;&#039;intercepted&#039;&#039; is set to 1 if the command execution is stopped in the Lua script, 0 if the command is then executed in the server mod binary&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_UpgradeSkill ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player receives a skill upgrade.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    result = et_UpgradeSkill( cno, skill )&lt;br /&gt;
*&#039;&#039;cno&#039;&#039; is the entity number of the player&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; is the skill type that is upgraded&lt;br /&gt;
*return value &#039;&#039;result&#039;&#039; will abort the skill upgrade if set to -1, any other value will allow the skill upgrade progress through&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is in ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_SetPlayerSkill ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player skill level is set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    intercepted = et_SetPlayerSkill( cno, skill )&lt;br /&gt;
*&#039;&#039;cno&#039;&#039; is the entity number of the player&lt;br /&gt;
*&#039;&#039;skill&#039;&#039; is the skil type of the player&lt;br /&gt;
*return value &#039;&#039;intercepted&#039;&#039; is set to -1 if the skill set is aborted, with any other value the set is allowed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_Print ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when server is printing to the console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_Print( text )&lt;br /&gt;
*&#039;&#039;text&#039;&#039; is the full printed text&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Function is ETPro compatible. Differences may exist between ETPro, ETPub and silEnT.&lt;br /&gt;
&lt;br /&gt;
=== et_Obituary ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player is killed. If a string is returned from the callback, it will replace the obituary message. The custom obituary can be printed to either chat or as a popup. This behaviour is defined with g_logOptions flag 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    (customObit) = et_Obituary( victim, killer, meansOfDeath )&lt;br /&gt;
*&#039;&#039;victim&#039;&#039; is the entity number of the killed player&lt;br /&gt;
*&#039;&#039;killer&#039;&#039; is the entity number of the killer, this can be also 1022 which means that the world was the killer&lt;br /&gt;
*&#039;&#039;meansOfDeath&#039;&#039; is the means of death number&lt;br /&gt;
*return value &#039;&#039;customObit&#039;&#039; can be set to create customary obituary messages. If a custom obituary message is returned, only the custom obituary is printed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback is ETPro compatible.&lt;br /&gt;
&lt;br /&gt;
=== et_CvarValue ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a client cvar value is ready to be passed to Lua scripts.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_CvarValue( clientNum, cvar, value )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the player&lt;br /&gt;
*&#039;&#039;cvar&#039;&#039; is the name of the cvar&lt;br /&gt;
*&#039;&#039;value&#039;&#039; is the value of the cvar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback was added in silEnT 0.6.2 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
=== et_ClientBinary ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called when a player connects with an unrecognized client executable. Also called if the player connects with a known cheat binary.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_ClientBinary( clientNum, checksum )&lt;br /&gt;
*&#039;&#039;clientNum&#039;&#039; is the slot number of the player&lt;br /&gt;
*&#039;&#039;checksum&#039;&#039; is the 32 character MD5 checksum of the client executable (ET.exe)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback was added in silEnT 0.6.2 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
=== et_IntermissionStarts ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Called one server frame before the game enters intermission.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntax&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    et_IntermissionStarts( round )&lt;br /&gt;
*&#039;&#039;round&#039;&#039; is value of the g_currentRound cvar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portability&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Callback was added in silEnT 0.8.0 and it is not present in ETPro or ETPub Lua APIs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* Document was constructed using information at http://wolfwiki.anime.net/index.php/ETPro:Lua_Mod_API as well as reading the mod source.&lt;br /&gt;
&lt;br /&gt;
* Official Lua http://www.lua.org/&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Banners&amp;diff=1198</id>
		<title>Silent Banners</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Banners&amp;diff=1198"/>
		<updated>2014-10-14T09:27:21Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* Banners */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Banners ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Servers can be configured to show banners to players. The banners are defined in a separate configuration file. You can enable banners by setting g_banners to point to that file.  The maximum amount of banners is 32 and the maximum length of an individual banner is 255 characters.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
set g_banners &amp;quot;banners.cfg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The file consists of [banner] blocks (similar to shrubbot). A [banner] block adds a banner to the server banner queue.&lt;br /&gt;
&lt;br /&gt;
A [banner] block has the following fields:&lt;br /&gt;
&lt;br /&gt;
:[banner]&lt;br /&gt;
:message    = ^1Check out our banner!&lt;br /&gt;
:wait       = 30&lt;br /&gt;
:position   = bp&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;message&amp;quot; is the actual message that is displayed to all the players on the server. The &amp;quot;wait&amp;quot; field determines when the next banner will be displayed. Setting this to 30 means the next banner will show up 30 seconds after this banner. Setting the wait to 0 means the next banner will be displayed at the same moment as this one. This in combination with the &amp;quot;position&amp;quot; field that determines the position of the banner, allows the same text to be displayed at one time at multiple positions. &amp;quot;position&amp;quot; can have the values chat, cpm (popup), cp (center), bp (banner) or print (console).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For versions prior to 0.4.0, the g_banners is named as g_settings. The cvar name was changed in the 0.4.0 version because the file no longer contained anything else but banner blocks.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Banners&amp;diff=1197</id>
		<title>Silent Banners</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Banners&amp;diff=1197"/>
		<updated>2014-10-14T09:24:25Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Banners ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Servers can be configured to show banners to players. The banners are defined in a separate configuration file. You can enable banners by setting g_banners to point to that file.  The maximum amount of banners is 31 and the maximum length of individual banner is 255 characters.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
set g_banners &amp;quot;banners.cfg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The file consists of [banner] blocks (similar to shrubbot). A [banner] block adds a banner to the server banner queue.&lt;br /&gt;
&lt;br /&gt;
A [banner] block has the following fields:&lt;br /&gt;
&lt;br /&gt;
:[banner]&lt;br /&gt;
:message    = ^1Check out our banner!&lt;br /&gt;
:wait       = 30&lt;br /&gt;
:position   = bp&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;message&amp;quot; is the actual message that is displayed to all the players on the server. The &amp;quot;wait&amp;quot; field determines when the next banner will be displayed. Setting this to 30 means the next banner will show up 30 seconds after this banner. Setting the wait to 0 means the next banner will be displayed at the same moment as this one. This in combination with the &amp;quot;position&amp;quot; field that determines the position of the banner, allows the same text to be displayed at one time at multiple positions. &amp;quot;position&amp;quot; can have the values chat, cpm (popup), cp (center), bp (banner) or print (console).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For versions prior to 0.4.0, the g_banners is named as g_settings. The cvar name was changed in the 0.4.0 version because the file no longer contained anything else but banner blocks.&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Silent_Server_Config&amp;diff=1188</id>
		<title>Silent Server Config</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Silent_Server_Config&amp;diff=1188"/>
		<updated>2014-10-04T13:17:54Z</updated>

		<summary type="html">&lt;p&gt;Gaoesa: /* silEnT Mod Example Server Config */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= silEnT Mod Example Server Config =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// silEnT mod - Sample server.cfg file&lt;br /&gt;
// If you need help contact us on forums. http://mygamingtalk.com/&lt;br /&gt;
&lt;br /&gt;
//&lt;br /&gt;
// Generic server cvars //&lt;br /&gt;
&lt;br /&gt;
//set dedicated 2&lt;br /&gt;
//set net_ip &amp;quot;localhost&amp;quot;&lt;br /&gt;
//set net_port 27960&lt;br /&gt;
&lt;br /&gt;
set sv_hostname &amp;quot;ETHost&amp;quot;&lt;br /&gt;
set server_motd0 &amp;quot; ^NsilEnT ^7MOTD &amp;quot;&lt;br /&gt;
set server_motd1 &amp;quot;&amp;quot;&lt;br /&gt;
set server_motd2 &amp;quot;&amp;quot;&lt;br /&gt;
set server_motd3 &amp;quot;&amp;quot;&lt;br /&gt;
set server_motd4 &amp;quot;&amp;quot;&lt;br /&gt;
set server_motd5 &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set sv_maxclients &amp;quot;20&amp;quot;			// Number of players including private slots&lt;br /&gt;
set g_password &amp;quot;&amp;quot;			// Password required to connect (g_needpass must be 1)&lt;br /&gt;
set g_needpass 0			// Require password to join server&lt;br /&gt;
set sv_privateclients 0			// Number of private slots&lt;br /&gt;
set sv_privatepassword &amp;quot;&amp;quot;		// Password to access private slots&lt;br /&gt;
set sv_fullmsg &amp;quot;Server is full.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set rconpassword &amp;quot;&amp;quot;&lt;br /&gt;
set refereePassword &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set sv_maxRate 50000&lt;br /&gt;
set sv_dl_maxRate 50000&lt;br /&gt;
set sv_allowDownload 1&lt;br /&gt;
//&lt;br /&gt;
// Uncomment below once you have the www downloads set&lt;br /&gt;
//set sv_wwwDownload 1&lt;br /&gt;
//set sv_wwwDlDisconnected 1&lt;br /&gt;
//set sv_wwwBaseURL &amp;quot;&amp;quot;			// This is the URL where players are directed while running the game&lt;br /&gt;
//set sv_wwwFallbackURL &amp;quot;&amp;quot;		// This is the URL where players are directed to download using external internet browser&lt;br /&gt;
&lt;br /&gt;
set sv_pure 1&lt;br /&gt;
set sv_minping 0&lt;br /&gt;
set sv_maxping 0&lt;br /&gt;
&lt;br /&gt;
// Uncomment the sv_master settings when you&#039;re ready for the server to go public&lt;br /&gt;
set sv_master1 &amp;quot;&amp;quot;&lt;br /&gt;
//set sv_master1 &amp;quot;etmaster.idsoftware.com&amp;quot;&lt;br /&gt;
//set sv_master2 &amp;quot;master0.etmaster.net&lt;br /&gt;
&lt;br /&gt;
// generic logging&lt;br /&gt;
set g_log &amp;quot;server.log&amp;quot;&lt;br /&gt;
set logfile 2&lt;br /&gt;
&lt;br /&gt;
//****************************************************************************************************&lt;br /&gt;
// silEnT mod supported cvars //&lt;br /&gt;
//&lt;br /&gt;
// This configuration is built to only change values from their defaults&lt;br /&gt;
// or to make a point about the setting.&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// silEnT AntiCheat&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_silentac 2&lt;br /&gt;
set g_clientbinaries 6&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Announcements and Messages&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_privateMessages 1&lt;br /&gt;
set g_spreeOptions 2291&lt;br /&gt;
set g_multikilltime 2000&lt;br /&gt;
set g_dropMsg &amp;quot;Protest this kick at example.com&amp;quot;&lt;br /&gt;
set g_landmineNotifyType 1&lt;br /&gt;
set g_banners &amp;quot;banners.cfg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// User Database, Shrubbot and Bans&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_dbDirectory &amp;quot;database&amp;quot;&lt;br /&gt;
set g_dbUserMaxAge &amp;quot;90d&amp;quot;&lt;br /&gt;
set g_dbMaxAliases 20&lt;br /&gt;
&lt;br /&gt;
set g_tyranny 1 // see shrubbot documentation about tyranny enabled commands and flags&lt;br /&gt;
&lt;br /&gt;
set g_warningOptions 0&lt;br /&gt;
set g_maxWarnings 3&lt;br /&gt;
set g_warningDecay 24&lt;br /&gt;
&lt;br /&gt;
set g_autoTempBan 6&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// XP Save&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_XPSave 9&lt;br /&gt;
&lt;br /&gt;
// Enable disable preferred style&lt;br /&gt;
&lt;br /&gt;
// Campaign like XP save for 6 maps with mapvoting gametype&lt;br /&gt;
set g_resetXPMapCount 6&lt;br /&gt;
set g_XPSaveMaxAge &amp;quot;90d&amp;quot;	// keep KR and PRW saved for longer time&lt;br /&gt;
&lt;br /&gt;
// XP is reset after 30 days&lt;br /&gt;
//set g_XPSaveMaxAge_xp &amp;quot;30d&amp;quot;	// for the XP&lt;br /&gt;
//set g_XPSaveMaxAge &amp;quot;90d&amp;quot;	// keep KR and PRW saved for longer time&lt;br /&gt;
&lt;br /&gt;
// Never reset XP (it&#039;s not really an option, but a huge value (30 months) will do instead)&lt;br /&gt;
// Do note that g_dbUserMaxAge should be set to &amp;quot;-1&amp;quot; to disable player record deletions&lt;br /&gt;
//set g_g_XPSaveMaxAge_xp &amp;quot;30o&amp;quot;&lt;br /&gt;
//set g_XPSaveMaxAge &amp;quot;30o&amp;quot;&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Player Statistics, Rating and Team Balance&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_playerRating 0	// Enable only if the players on your server remain consistently the same&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Class and Weapon Restrictions&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
// avoiding spam fest&lt;br /&gt;
set team_maxPanzers 1&lt;br /&gt;
set team_maxMortars 1&lt;br /&gt;
set team_maxFlamers 1&lt;br /&gt;
set team_maxGrenLaunchers 2&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Player Inactivity&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_inactivity 120 		// 2 minutes of inactivity before moving to spectators&lt;br /&gt;
set g_spectatorInactivity 120	// 2 minutes of inactivity as a spectator before taking actions&lt;br /&gt;
set g_inactivityOptions 9	// Don&#039;t drop shoutcasters, inactivity kicks in for shrubbot admins as well&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Gametypes - Map Voting&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_mapVoteFlags 5&lt;br /&gt;
set g_maxMapsVotedFor 19&lt;br /&gt;
set g_minMapAge 6&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Mapconfigs and Mapscripts&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_mapConfigs &amp;quot;mapconfigs&amp;quot;&lt;br /&gt;
set g_mapScriptDirectory &amp;quot;mapscripts&amp;quot;&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Voting&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_voting 12&lt;br /&gt;
&lt;br /&gt;
// disable certain votes, allow some&lt;br /&gt;
set vote_allow_comp 0&lt;br /&gt;
set vote_allow_gametype 0&lt;br /&gt;
set vote_allow_kick 0&lt;br /&gt;
set vote_allow_map 0&lt;br /&gt;
set vote_allow_matchreset 0&lt;br /&gt;
set vote_allow_mutespecs 0&lt;br /&gt;
set vote_allow_nextmap 0&lt;br /&gt;
set vote_allow_pub 0&lt;br /&gt;
set vote_allow_referee 0&lt;br /&gt;
set vote_allow_shuffleteamsxp 0&lt;br /&gt;
set vote_allow_swapteams 0&lt;br /&gt;
set vote_allow_friendlyfire 0&lt;br /&gt;
set vote_allow_timelimit 0&lt;br /&gt;
set vote_allow_warmupdamage 0&lt;br /&gt;
set vote_allow_antilag 0&lt;br /&gt;
set vote_allow_balancedteams 0&lt;br /&gt;
set vote_allow_muting 0&lt;br /&gt;
set vote_allow_surrender 0&lt;br /&gt;
set vote_allow_nextcampaign 0&lt;br /&gt;
set vote_allow_restartcampaign 0&lt;br /&gt;
set vote_allow_poll 1&lt;br /&gt;
set vote_allow_maprestart 0&lt;br /&gt;
set vote_allow_shufflenorestart 1&lt;br /&gt;
set vote_allow_cointoss 0&lt;br /&gt;
// disable vote blocking from polls&lt;br /&gt;
set vote_block_poll -1&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Weapons, Classes and Skills&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_poison 1&lt;br /&gt;
set g_medics 320&lt;br /&gt;
set g_throwableKnives 1&lt;br /&gt;
set g_knifeChargeTime 1000&lt;br /&gt;
set g_constructibleXPSharing 1&lt;br /&gt;
set g_asblock 3&lt;br /&gt;
set g_dyno 5&lt;br /&gt;
set g_canisterKick 1&lt;br /&gt;
set g_weapons 37166&lt;br /&gt;
set g_classWeapons 10&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Friendly Fire&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_friendlyFire 1&lt;br /&gt;
set g_friendlyFireOpts 12  // beginner friendly mines&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Hitboxes, Physics &amp;amp; Anti Lag Settings&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_fixedphysics 1&lt;br /&gt;
set g_fixedphysicsfps 125&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Hitsounds&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
// often admins want to default to ETPro hitsounds, uncomment below for that&lt;br /&gt;
//set g_defaultHitSounds 2&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Intermission&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_intermissionTime 45&lt;br /&gt;
set g_intermissionReadyPercent 100&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Miscellaneous&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_dropHealth 2&lt;br /&gt;
set g_dropAmmo 2&lt;br /&gt;
set g_misc 1024&lt;br /&gt;
set g_ammoCabinetTime 5000	// the default is a bit slow&lt;br /&gt;
set g_healthCabinetTime 5000	// the default is a bit slow&lt;br /&gt;
set g_spectator 4&lt;br /&gt;
set g_trueping 1&lt;br /&gt;
set g_dropObj 3&lt;br /&gt;
set g_disableComplaints 16&lt;br /&gt;
// Country flags, You need to have GeoIP database installed to use this.&lt;br /&gt;
set g_countryFlags 0&lt;br /&gt;
// original spawn invulnerability&lt;br /&gt;
//set g_spawnInvul 3&lt;br /&gt;
//set g_spawnInvulFair 0&lt;br /&gt;
// longer and more fair, so admins can ignore spawn killing events&lt;br /&gt;
set g_spawnInvul 5&lt;br /&gt;
set spawnInvulFair 1&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Logs&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set g_logOptions 16640&lt;br /&gt;
set g_logAdmin &amp;quot;admin.log&amp;quot;&lt;br /&gt;
set g_cheatLog &amp;quot;cheat.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Omni-Bots&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set omnibot_enable 1&lt;br /&gt;
//set omnibot_path &amp;quot;&amp;quot;  // set this path manually if the auto-search does not find the Omni-bot files&lt;br /&gt;
set g_bot_maxXP -1&lt;br /&gt;
set omnibot_flags 262148&lt;br /&gt;
&lt;br /&gt;
//**************************************************&lt;br /&gt;
// Lua&lt;br /&gt;
//**************************************************&lt;br /&gt;
&lt;br /&gt;
set lua_modules &amp;quot;&amp;quot;&lt;br /&gt;
set lua_allowedModules &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
exec mapvotecycle.cfg&lt;br /&gt;
set com_watchdog 60&lt;br /&gt;
set com_watchdog_cmd &amp;quot;exec mapvotecycle.cfg&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gaoesa</name></author>
	</entry>
</feed>