<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bzflag.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Javawizard2539</id>
	<title>BZFlagWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bzflag.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Javawizard2539"/>
	<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/Special:Contributions/Javawizard2539"/>
	<updated>2026-05-19T10:30:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Server_Variables&amp;diff=8767</id>
		<title>Server Variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Server_Variables&amp;diff=8767"/>
		<updated>2014-02-17T20:57:02Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: Clarify _updateThrottleRate&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BZFlag Server (BZFS) allows administrators to configure a large number of gameplay and configuration settings from within the client.  The /set command in-game allows users with the appropriate permissions to change these values.  These may also be known as BZDB variables and &amp;quot;/set variables&amp;quot; depending on who you speak with.&lt;br /&gt;
&lt;br /&gt;
Unless otherwise noted, time values are measured in seconds, distances in [[world units]], and speeds in [[world units]] per second.&lt;br /&gt;
&lt;br /&gt;
{{InfoBox|Note|Some values, such as _worldSize, only take affect at server start since they affect the world file that is generated.  It is recommended to apply these in the map file so they are loaded with the map.}}&lt;br /&gt;
{|{{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
|{{Hl3}}|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|{{Hl3}}|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|{{Hl3}}|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _agilityAdVel || 2.25 || Multiplies _tankSpeed for tanks holding Agility flag for a specified amount of time (_agilityTimeWindow)&lt;br /&gt;
|-&lt;br /&gt;
| _agilityTimeWindow || 1 || The amount of time (in seconds) that the tank will have the speed specified by _agilityAdVel&lt;br /&gt;
|-&lt;br /&gt;
| _agilityVelDelta || 0.3 || How fast the agility accelerates the player to _agilityAdVel.&lt;br /&gt;
|-&lt;br /&gt;
| _ambientLight || none ||&lt;br /&gt;
|-&lt;br /&gt;
| _angleTolerance || 0.05 || If a tank has turned more than it was expected to, plus this tolerance, a new update is sent so the other clients are aware of the change in heading&lt;br /&gt;
|-&lt;br /&gt;
| _angularAd || 1.5 || Multiplies _tankAngVel to determine how fast tanks can turn while holding the Quick Turn flag&lt;br /&gt;
|-&lt;br /&gt;
| _avenueSize || 2*_boxBase || The amount of space to leave between boxes on randomly generated maps.&lt;br /&gt;
|-&lt;br /&gt;
| _baseSize || 60 || Width and Depth (bases have constant height) of the square bases for CTF games&lt;br /&gt;
|-&lt;br /&gt;
| _boxBase || 30 || The smallest amount of Width and Depth a randomly generated box may have.&lt;br /&gt;
|-&lt;br /&gt;
| _boxHeight || 6*_muzzleHeight || Size of radar box around tanks, as they move in Z. {up and down)&lt;br /&gt;
|-&lt;br /&gt;
| _burrowDepth || -1.32 || Determines how far down tanks drop when they have the Burrow Flag. Making this much lower makes it below the floor, and impossible to kill the tank without something like a ShockWave flag!&lt;br /&gt;
|-&lt;br /&gt;
| _burrowSpeedAd || .8 || Multiplied by _tankSpeed to determine how fast tanks holding the Burrow Flag move.&lt;br /&gt;
|-&lt;br /&gt;
| _burrowAngularAd || .55 || Multiplied by _tankAngVel to determine how fast tanks can turn while holding the Burrow flag.&lt;br /&gt;
|-&lt;br /&gt;
| _coldetDepth || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
| _coldetElements || 4 || &lt;br /&gt;
|-&lt;br /&gt;
| _countdownResumeTime || 5 || This enforces a delay when resuming a paused countdown. If the argument is lower or equal to 0 then resuming is instantly, otherwise it is delayed according to the value (in seconds). &#039;&#039;Available in 2.1 and later&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _countdownResumeDelay || 5 || Legacy name for _countdownResumeTime, was renamed in 2.1 and later.&lt;br /&gt;
|-&lt;br /&gt;
| _cullDepth || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
| _cullDist || fog || Far plane culling distance (&#039;fog&#039; uses the fog parameters).&lt;br /&gt;
|-&lt;br /&gt;
| _cullElements || 16 || &lt;br /&gt;
|-&lt;br /&gt;
| _cullOccluders || 0 ||&lt;br /&gt;
|-&lt;br /&gt;
| _disableBots || none || A value of 1 in this variable does not allow autopilot or bots on the server, equivalent to the old -prohibitbots command line option. &lt;br /&gt;
|-&lt;br /&gt;
| _disableSpeedChecks || 0 || Allows disabling/enabling the speed kicks.&lt;br /&gt;
|-&lt;br /&gt;
| _disableHeightChecks || 0 || Allows disabling/enabling the &amp;quot;too high&amp;quot; check.&lt;br /&gt;
|-&lt;br /&gt;
| _drawCelestial || 1 || Draw the stars, sun, and moon.&lt;br /&gt;
|-&lt;br /&gt;
| _drawClouds || 1 || Draw the clouds.&lt;br /&gt;
|-&lt;br /&gt;
| _drawGround || 1 || Draw the ground plane.&lt;br /&gt;
|-&lt;br /&gt;
| _drawGroundLights || 1 || If set to 0, lights on the ground (such as the light from bullets) will not be drawn.&lt;br /&gt;
|-&lt;br /&gt;
| _drawMountains || 1 || Draw the mountains.&lt;br /&gt;
|-&lt;br /&gt;
| _drawSky || 1 || Draw the sky pyramid.&lt;br /&gt;
|-&lt;br /&gt;
| _enableDistanceCheck || 0 || Distance checking tries to verify if a player moved too far between updates (as in, cheating).&lt;br /&gt;
|-&lt;br /&gt;
| _endShotDetection || 5 || This setting controls how many &amp;quot;end shot&amp;quot; messages can be sent without corresponding deaths (or other reasons, such as a shield drop).&lt;br /&gt;
|-&lt;br /&gt;
| _explodeTime || 5 || After a tank is killed, this is how long it takes to blow up, and then &amp;quot;respawn&amp;quot;. Larger values translates into longer explosions and more client processor time. Note that an explosion is invisible if you are inside it, so large values may make it invisible up close, and extremely large values may make explosions entirely invisible.&lt;br /&gt;
|-&lt;br /&gt;
| _flagAltitude || 11 || The height that the flag flies up when dropped and the height that a flag spawns at.&lt;br /&gt;
|-&lt;br /&gt;
| _flagEffectTime || 0.64 || How much time it takes for the flag to go into effect and how quickly the tank spawns from miniature to full size.&lt;br /&gt;
|-&lt;br /&gt;
| _flagHeight || 10 || The height of the flag (not its pole).&lt;br /&gt;
|-&lt;br /&gt;
| _flagPoleWidth || 0.025 || The diameter of the flag pole.&lt;br /&gt;
|-&lt;br /&gt;
| _flagPoleSize || 0.8 || The height of the flag pole.&lt;br /&gt;
|-&lt;br /&gt;
| _flagRadius || 2.5 || Determines how close a tank must be to a flag to pick it up.&lt;br /&gt;
|-&lt;br /&gt;
| _fogMode || none || Valid values: linear, exp, or exp2.&lt;br /&gt;
|-&lt;br /&gt;
| _fogDensity || 0.001 || Used for exp and exp2 fog modes.&lt;br /&gt;
|-&lt;br /&gt;
| _fogNoSky || 0 || 1 will turn off fog drawing on the sky. The default is fog everywhere.&lt;br /&gt;
|-&lt;br /&gt;
| _fogStart || 0.5*_worldSize || Used for linear fog mode, the distance where fog begins to occlude vision.&lt;br /&gt;
|-&lt;br /&gt;
| _fogEnd || _worldSize || Used for linear fog mode, the distance where the fog occludes everything.&lt;br /&gt;
|-&lt;br /&gt;
| _fogColor || &amp;quot;0.25 0.25 0.25&amp;quot; || &amp;quot;RED,GREEN,BLUE&amp;quot; values between 0.0 and 1.0 and/or basic colors such as blue, teal, black, pink, gray3, red4, etc.&lt;br /&gt;
|-&lt;br /&gt;
| _forbidHunting || 0 || If turned on (1), prevents players from hunting others.&lt;br /&gt;
|-&lt;br /&gt;
| _forbidIdentify || 0 || If turned on (1), prevents players from identifying others on the world map.&lt;br /&gt;
|-&lt;br /&gt;
| _forbidMarkers || 0 || If turned on (1), removes the large flag markers that appear to indicate where your team flag(s) is.&lt;br /&gt;
|-&lt;br /&gt;
| _friction || 0  || Zero is normal friction, the closer to 0 the harder it is to start and stop, and the higher the number the easier it is to start and stop.&lt;br /&gt;
|-&lt;br /&gt;
| _gmActivationTime || 0.5  || The amount of time (in seconds) it takes for a Guided Missile to become active after it is fired. Any contact under this time will not result in detonation (setting it too low could cause its owner to run into its own GM and be blown up!&lt;br /&gt;
|-&lt;br /&gt;
| _gmAdLife || 0.95 || Multiplied by _shotRange to determine the distance guided missiles will go.&lt;br /&gt;
|-&lt;br /&gt;
| _gmSize || 1.5 || The size (in WU) of the GM missile shown for players with good graphics settings.&lt;br /&gt;
|-&lt;br /&gt;
| _gmTurnAngle || 0.628319 || The angle at which a Guided Missile will turn to follow its target. (Measured in radians)&lt;br /&gt;
|-&lt;br /&gt;
| _gravity || -9.8 ||  The rate at which a tank will fall (or be kept from jumping) Measured in [[World units]]/Seconds^2. Setting this to a zero or positive value will result in tanks being unable to stay down and will float away.&lt;br /&gt;
|-&lt;br /&gt;
| _handicapScoreDiff || 50 || How much of a score difference from the average of all player&#039;s scores there must be for a player to get a handicap&lt;br /&gt;
|-&lt;br /&gt;
| _handicapVelAd || 2 || Player with handicap will receive this much more (_tankSpeed * _handicapVelAd) velocity than the normal _tankSpeed value.&lt;br /&gt;
|-&lt;br /&gt;
| _handicapAngAd || 1.5 || Player with handicap will receive this much more (_angularAd * _handicapAngAd) turning ability than the normal _angularAd value.&lt;br /&gt;
|-&lt;br /&gt;
| _handicapShotAd || 1.75 || Player with handicap will receive this much more (_shotSpeed * _handicapShotAd) bullet speed than the normal _shotSpeed value.&lt;br /&gt;
|-&lt;br /&gt;
| _hideFlagsOnRadar || 0 || No flags will appear on the radar.&lt;br /&gt;
|-&lt;br /&gt;
| _hideTeamFlagsOnRadar || 0 || No team flags will appear on the radar.&lt;br /&gt;
|-&lt;br /&gt;
| _identifyRange || 50 || If a flag is this distance or closer to a tank carrying the Identify (ID) flag, it will display the closest flag&#039;s type.&lt;br /&gt;
|-&lt;br /&gt;
| _inertiaAngular || 38 || Sets the maximum angular acceleration. Available in version 3.0. Replaces the &amp;quot;-a&amp;quot; option. &lt;br /&gt;
|-&lt;br /&gt;
| _inertiaLinear || 45 || Sets the maximum linear acceleration. Available in version 3.0. Replaces the &amp;quot;-a&amp;quot; option. &lt;br /&gt;
|-&lt;br /&gt;
| _jumpVelocity || 19 || The speed a tank moves vertically while jumping.&lt;br /&gt;
|-&lt;br /&gt;
| _laserAdVel || 1000 || The length of each laser shot. Lasers aren&#039;t exactly &amp;quot;infinite&amp;quot; as their description states, they go on for as long as this variable states.&lt;br /&gt;
|-&lt;br /&gt;
| _laserAdRate || 0.5 || Multiplied by _rFireAdRate to determine the firing rate for a laser.&lt;br /&gt;
|-&lt;br /&gt;
| _laserAdLife || 0.1 || The amount of time (in seconds) that a laser remains after being fired.&lt;br /&gt;
|-&lt;br /&gt;
| _latitude || 37.5 ||  The latitude at which the world exists. This affects the timezone.&lt;br /&gt;
|-&lt;br /&gt;
| _lgGravity|| 12.7 ||  Modifies the gravity for owners of the Low Gravity flag. Similar to the _gravity variable. &#039;&#039;Available starting in version 2.1&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _lockOnAngle || 0.15 || Angle (in radians) in relation to tanks heading (positive or negative) that will allow a Guided Missile to lock onto a target.&lt;br /&gt;
|-&lt;br /&gt;
| _longitude || 122 || The longitude at which the world exists. This affects the timezone.&lt;br /&gt;
|-&lt;br /&gt;
| _lRAdRate || 0.5 ||&lt;br /&gt;
|-&lt;br /&gt;
| _maxBumpHeight || 0.33 || Any difference between the surface a tank is on and the top surface of an object the tank runs into that is less than this value will allow the tank to simply move up to the object rather than being stopped by it.&lt;br /&gt;
|-&lt;br /&gt;
| _maxFlagGrabs || 4.0 || How many times a flag can be dropped before it respawns. At the first spawn, flags are assigned a random # between 1 and _maxFlagGrabs. Each grab reduces that number by 1, until zero is reached, then the flag spawns at a new location. Flags will always respawn no matter how many flag grabs they have left if dropped over an &#039;unsafe&#039; zone.&lt;br /&gt;
|-&lt;br /&gt;
| _maxLOD || 32767 || The max level of detail to allow.&lt;br /&gt;
|-&lt;br /&gt;
| _mirror || none || Options: &#039;&#039;&#039;white&#039;&#039;&#039;, &#039;&#039;&#039;black&#039;&#039;&#039;, &#039;&#039;&#039;red&#039;&#039;&#039;, &#039;&#039;&#039;blue&#039;&#039;&#039;, &#039;&#039;&#039;pink&#039;&#039;&#039;, &#039;&#039;&#039;purple&#039;&#039;&#039;, &#039;&#039;&#039;orange&#039;&#039;&#039;, etc... (&amp;quot;black 0.75&amp;quot; is a good setting, some invalid options such as &#039;&#039;&#039;mirror&#039;&#039;&#039; will give a mirror look)&lt;br /&gt;
|-&lt;br /&gt;
| _momentumLinAcc || 1 || Momentum flag&#039;s effect on going forwards and backwards.&lt;br /&gt;
|-&lt;br /&gt;
| _momentumAngAcc || 1 || Momentum flag&#039;s effect on turning.&lt;br /&gt;
|-&lt;br /&gt;
| _momentumFriction || 0 || Friction (same as _friction) when holding the Momentum flag.&lt;br /&gt;
|-&lt;br /&gt;
| _mGunAdVel || 1/_mGunAdRate || The speed of the machine gun&#039;s bullets.&lt;br /&gt;
|-&lt;br /&gt;
| _mGunAdRate || 10 || _reloadTime divided by _mGunAdRate gives how long machine gun bullets take to reload.&lt;br /&gt;
|-&lt;br /&gt;
| _mGunAdLife || 1.5 || Multiplied by _shotRange to determine the distance machine gun bullets go.&lt;br /&gt;
|-&lt;br /&gt;
| _muzzleFront || _tankRadius + 0.1 || Location of muzzle of tank (affects bullets and player camera location).&lt;br /&gt;
|-&lt;br /&gt;
| _muzzleHeight || 1.57 || See _muzzleFront.&lt;br /&gt;
|-&lt;br /&gt;
| _noClimb || 1 || Allow or disallow climbing on sloped surfaces. A value of 0 allows, 1 disallows.&lt;br /&gt;
|-&lt;br /&gt;
| _noShadows || 0 || Enables or disables shadows. A value of 0 allows, 1 disallows.&lt;br /&gt;
|-&lt;br /&gt;
| _noSmallPackets || 0 ||&lt;br /&gt;
|-&lt;br /&gt;
| _notRespondingTime || 5 || The amount of time (in seconds) the server should wait before reporting a tank as not responding.&lt;br /&gt;
|-&lt;br /&gt;
| _obeseFactor || 2.5 || Multiplier of normal size that determines how big a tank gets when carrying the Obese flag.&lt;br /&gt;
|-&lt;br /&gt;
| _pauseDropTime || 15 || The amount of time (in seconds) that a tank needs to be paused before its flag is dropped automatically.&lt;br /&gt;
|-&lt;br /&gt;
| _positionTolerance || 0.09 || If a tank has moved more than this amount in position, send a new update to all tank players.&lt;br /&gt;
|-&lt;br /&gt;
| _pyrBase || 4 * _tankHeight || Base size of pyramids generated by the default random map generator.&lt;br /&gt;
|-&lt;br /&gt;
| _pyrHeight || 5 * _tankHeight || Height of pyramids generated by the default random map generator.&lt;br /&gt;
|-&lt;br /&gt;
| _radarLimit || _worldSize || The maximum area that the radar can see (when not rotated).&lt;br /&gt;
|-&lt;br /&gt;
| _rainBaseColor || none || When _rainType = rain, sets color of the bottom of raindrops.&lt;br /&gt;
|-&lt;br /&gt;
| _rainDensity || none || Determines how many drops of rain are in the space defined by _rainSpread.&lt;br /&gt;
|-&lt;br /&gt;
| _rainEndZ || none || The height above the ground where rain should stop falling.&lt;br /&gt;
|-&lt;br /&gt;
| _rainMaxPuddleTime || none || The amount of time (in seconds) a rain puddle should exist before disappearing.&lt;br /&gt;
|-&lt;br /&gt;
| _rainPuddleSpeed || none || The speed at which puddles should spread out.&lt;br /&gt;
|-&lt;br /&gt;
| _rainPuddleColor || none || Color of rain puddles. none means no puddle.&lt;br /&gt;
|-&lt;br /&gt;
| _rainPuddleTexture ||none || Texture of puddles. Best to leave default.&lt;br /&gt;
|-&lt;br /&gt;
| _rainRoofs || 1 || &#039;&#039;&#039;0&#039;&#039;&#039; rain falls through everything&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; rain hits buildings, but puddles are only on the ground&amp;lt;br&amp;gt;&#039;&#039;&#039;2&#039;&#039;&#039; rain hits buildings, and creates puddles on them&lt;br /&gt;
|-&lt;br /&gt;
| _rainSpread || none || The radius from center of map where rain will fall.&lt;br /&gt;
|-&lt;br /&gt;
| _rainSpeed || none || The speed at which the rain falls.&lt;br /&gt;
|-&lt;br /&gt;
| _rainSpeedMod || none || Randomizes _rainSpeed by adding/subtracting up to this number from each raindrop&#039;s speed&lt;br /&gt;
|-&lt;br /&gt;
| _rainSpins || none || &#039;&#039;&#039;0&#039;&#039;&#039; Rain does not spin as it falls&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; Rain spins as it falls.&lt;br /&gt;
|-&lt;br /&gt;
| _rainStartZ || none || The height above ground that rain should fall from.&lt;br /&gt;
|-&lt;br /&gt;
| _rainTexture || none || The name of the texture in data directory.&amp;lt;br&amp;gt;&#039;&#039;Works with _rainTypes of frog, particle, bubble, snow, fatrain&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _rainTopColor ||none || When _rainType = rain, sets color of the top of raindrops.&lt;br /&gt;
|-&lt;br /&gt;
| _rainType || none || Adjusts all _rain* and _use* variables automatically&amp;lt;br&amp;gt;Valid Options : &#039;&#039;&#039;frog&#039;&#039;&#039;, &#039;&#039;&#039;particle&#039;&#039;&#039;, &#039;&#039;&#039;rain&#039;&#039;&#039;, &#039;&#039;&#039;bubble&#039;&#039;&#039;, &#039;&#039;&#039;snow&#039;&#039;&#039;, &#039;&#039;&#039;fatrain&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _rejoinTime || _explodeTime || The number of seconds before clients can rejoin a game, after they leave.&lt;br /&gt;
|-&lt;br /&gt;
| _rejumpTime || 0.01 || From version 3.0. Time a tank has to wait before he can jump again after landing. Any value higher than 0 will make it difficult to jump away from sloped faces like pyramids.&lt;br /&gt;
|-&lt;br /&gt;
| _reloadTime || _shotRange/_shotSpeed || Time between shot reloads, note that this can cut shot range short.&lt;br /&gt;
|-&lt;br /&gt;
| _rFireAdVel || 1.5 || Multiplied by _shotSpeed to determine the speed of the rapid fire bullets.&lt;br /&gt;
|-&lt;br /&gt;
| _rFireAdRate || 2 || The reload time (in seconds) for rapid fire bullets.&lt;br /&gt;
|-&lt;br /&gt;
| _rFireAdLife || 1/_rFireAdRate || How long the rapid fire bullets last.&lt;br /&gt;
|-&lt;br /&gt;
| _shieldFlight || 2.7 || The amount of time (in seconds) that a shield flag floats in the air (after you drop it) before coming down again.&lt;br /&gt;
|-&lt;br /&gt;
| _shockAdLife || 0.2 || The amount of time (in seconds) that a shockwave lasts.&lt;br /&gt;
|-&lt;br /&gt;
| _shockInRadius || _tankLength || The starting radius of the shockwave. Negative values will make the shockwave shrink and expand.&lt;br /&gt;
|-&lt;br /&gt;
| _shockOutRadius || 60 || The outer radius of the shockwave. If greater than _shockInRadius, the shockwave expands outward. If less than _shockInRadius, the shockwave starts big and shrinks inward.&lt;br /&gt;
|-&lt;br /&gt;
| _shotRadius || 0.5 || For collision detection.&lt;br /&gt;
|-&lt;br /&gt;
| _shotRange || 350 || Range of shots, note that they can be cut short by _reloadTime.&lt;br /&gt;
|-&lt;br /&gt;
| _shotSpeed || 100 || Speed of shots.&lt;br /&gt;
|-&lt;br /&gt;
| _shotTailLength || 4 ||&lt;br /&gt;
|-&lt;br /&gt;
| _shotsKeepVerticalVelocity || 0 || If &#039;&#039;&#039;0&#039;&#039;&#039;, shots always move straight in relation to the ground. If &#039;&#039;&#039;1&#039;&#039;&#039;, shots are affected vertically by the tank&#039;s speed, and can fly up and down. Lasers are also affected. &lt;br /&gt;
|-&lt;br /&gt;
| _skyColor || white || Sets the sky to a specific color.&lt;br /&gt;
|-&lt;br /&gt;
| _spawnMaxCompTime || 0.01 || This controls the maximum amount of time to attempt finding a safe spawn location. If this time is exceeded, the tank will just get dropped in from maximum height. The time should be in seconds, so the default is to only wait for 10ms.&lt;br /&gt;
|-&lt;br /&gt;
| _spawnSafeRadMod || 20 || How far away players are forced to spawn from enemy tanks.&lt;br /&gt;
|-&lt;br /&gt;
|_spawnSafeSRMod || 20 || How far away players are forced to spawn from tanks with Steamroller.&lt;br /&gt;
|-&lt;br /&gt;
|_spawnSafeSWMod || 1.5 || How far away players are forced to spawn from tanks with Shockwave.&lt;br /&gt;
|-&lt;br /&gt;
| _speedChecksLogOnly || 0 || If set to 1, someone moving too fast will not get kicked - it will just log it to the stdout.&lt;br /&gt;
|-&lt;br /&gt;
| _srRadiusMult || 2 || Radius of steamroller effect.&lt;br /&gt;
|-&lt;br /&gt;
| _squishFactor || 1 || How much tanks squish when landing.&lt;br /&gt;
|-&lt;br /&gt;
| _squishTime || 1 || How much squishy time you get after falling to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| _syncTime || 1 || Whether or not to sync the players time with the servers&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| _syncLocation || 0 || Whether or not to sync the location time with the servers&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| _tankAngVel || 0.785398 || How fast the tank can turn.&lt;br /&gt;
|-&lt;br /&gt;
| _tankExplosionSize || 3.5 * _tankLength || How large the tank&#039;s explosion is.&lt;br /&gt;
|-&lt;br /&gt;
| _tankHeight || 2.05 || The height of the tank.&lt;br /&gt;
|-&lt;br /&gt;
| _tankLength || 6 || The length of the tank.&lt;br /&gt;
|-&lt;br /&gt;
| _tankRadius || 0.72 * _tankLength || The radius of the tank.&lt;br /&gt;
|-&lt;br /&gt;
| _tankSpeed || 25 || The speed of the tank&lt;br /&gt;
|-&lt;br /&gt;
| _tankWidth || 2.8 || The width of the tank.&lt;br /&gt;
|-&lt;br /&gt;
| _targetingAngle || 0.3 || How far in radians the player can be offset in facing a target to still target them. (Identify or Guided Missile Lock On)&lt;br /&gt;
|-&lt;br /&gt;
| _teleportBreadth || 4.48 || How much width a randomly generated teleporter has.&lt;br /&gt;
|-&lt;br /&gt;
| _teleportHeight || 10.08 || How much height a randomly generated teleporter has.&lt;br /&gt;
|-&lt;br /&gt;
| _teleportTime || 1 || If a teleporting tank exceeds this time, it no longer teleports.&lt;br /&gt;
|-&lt;br /&gt;
| _teleportWidth || 1.12 || How much width a randomly generated teleporter has. Note that this is not to be confused with the &amp;quot;X&amp;quot; size of teleporters. It is the size of a border.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefAdLife || 0.05 || The amount of time (in seconds) that a thief shot lasts.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefAdRate || 12 || The amount of time (in seconds) that the Thief &amp;quot;shot&amp;quot; reloads.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefAdShotVel || 8 || The speed of thief.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefTinyFactor || 0.5 || Multiplied by the normal tank size to shrink a tank carrying the thief flag.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefVelAd || 1.67 || Multiplied by _tankSpeed to determine how fast tanks holding the thief goes.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefDropTime || reloadTime * 0.5 ||The amount of time you must wait to fire a shot after stealing a flag.&lt;br /&gt;
|-&lt;br /&gt;
| _tinyFactor || 0.4 || Multiplied by the normal tank size to shrink a tank carrying the tiny flag.&lt;br /&gt;
|-&lt;br /&gt;
| _trackFade || 3 || The amount of time (in seconds) before track marks fade.&lt;br /&gt;
|-&lt;br /&gt;
| _updateThrottleRate || 30 || The maximum number of position updates clients will send every second. Higher values mean higher bandwidth consumption and more server processing time.&lt;br /&gt;
|-&lt;br /&gt;
| _useLineRain || none || &#039;&#039;&#039;0&#039;&#039;&#039; Rain is not a vertical line&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; Rain is vertical lines, smoothly shaded from _rainTopColor to _rainBaseColor&lt;br /&gt;
|-&lt;br /&gt;
| _useRainPuddles || none || &#039;&#039;&#039;0&#039;&#039;&#039; Rain does not create puddles&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; Rain creates puddles&lt;br /&gt;
|-&lt;br /&gt;
| _useRainBillboards || none || &#039;&#039;&#039;0&#039;&#039;&#039; Rain is lines or polygons&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; Rain is billboards, textured and look the same from all angles&lt;br /&gt;
|-&lt;br /&gt;
| _velocityAd || 1.5 || Multiplies _tankSpeed to determine the speed of a tank carrying the high speed (V) flag&lt;br /&gt;
|-&lt;br /&gt;
| _wallHeight || 3 * _tankHeight|| The outer wall height.&lt;br /&gt;
|-&lt;br /&gt;
| _weapons || 1 || Used with world weapons, &#039;&#039;&#039;0&#039;&#039;&#039; world weapons will not fire&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; world weapons will fire&lt;br /&gt;
|-&lt;br /&gt;
| _wideAngleAng || 1.745329 || The viewing angle when a tank has the Wide Angle bad flag.&lt;br /&gt;
|-&lt;br /&gt;
| _wingsGravity || _gravity || How much gravity affects tanks with the WG flag.&lt;br /&gt;
|-&lt;br /&gt;
| _wingsJumpCount || 1 || The number of jumps a tank with the wings flag can do before returning to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| _wingsJumpVelocity || _jumpVelocity || The initial velocity of a jump with wings, in [[world units]]/sec.&lt;br /&gt;
|-&lt;br /&gt;
| _wingsSlideTime || 0 || When in the air, the tanks will slide for this long.&lt;br /&gt;
|-&lt;br /&gt;
| _worldSize || 800 || The size of the world from one end to the other. This would not be the same as the [[World_(object)|World Object]] &#039;&#039;&#039;size&#039;&#039;&#039; option as that one accepts a size parameter from the center to one end.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_2.99&amp;diff=6727</id>
		<title>BZFlag 2.99</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_2.99&amp;diff=6727"/>
		<updated>2009-10-08T06:25:06Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: /* Release Date */ Changed &amp;quot;third quarter&amp;quot; to &amp;quot;fourth quarter&amp;quot;, as the third quarter ended a couple of days ago&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag version 3.0 is the next planned release of BZFlag. &lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
Version 3.0 is currently in development and marked as version v2.99.x. Upon release it will be marked as version v3.0. The primary goals for this version are improved server side stability and security in an effort to minimize the impact of clients that have been modified to provide their users benefit ( aka, cheating ). Additional efforts are being made to extend the server side customization of the game. v3.0 will be completely incompatible with all previous versions of the game. Users of v3.0 will only be able to play on 3.0 servers. This is similar to how v2.0 was incompatible with 1.10.&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
Development began on 3.0 on October 25th 2005.  After an initial rush of changes, development stalled, as a number of bugs were found in the current release build of the time ([[BZFlag 2.0.4|v2.0.4]]). These bugs and problems, as well as a number of graphical changes from [[trepan]] necessitated the release of compatible [[BZFlag 2.0.6|v2.0.6]], [[BZFlag 2.0.8|v2.0.8]], and [[BZFlag 2.0.10|v2.0.10]] releases.&lt;br /&gt;
&lt;br /&gt;
==Version Number Change==&lt;br /&gt;
v3.0 is the first version to use the new version numbering system.  The 3.0 release initially began as the 2.1 development line, with the intent of being released as version 2.2.  Part of the way through development, however, the [[Versions|versioning]] number scheme changed and the development revision changed from 2.1 to 2.99.  With previous releases the minor version number in the version triplet (major.minor.revision) represented protocol and client compatibility.  With 3.0 compatibility is instead reflected in the major version number. This new scheme gives more &amp;quot;room&amp;quot; to deal with minor packaging revisions and patch release updates.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
v3.0 has a number of features that make for a much improved gameplay experience.&lt;br /&gt;
&lt;br /&gt;
===Fonts===&lt;br /&gt;
The font system has been replaced and now uses standard TrueType fonts([http://en.wikipedia.org/wiki/TrueType TTF]). This offers a number of advantages over the older bitmap based font system, including support for unicode character sets. &lt;br /&gt;
&lt;br /&gt;
Users can now set the default fonts that they wish to use on a per-locale basis so they can use the best fonts for their character set. (More info on how?)&lt;br /&gt;
&lt;br /&gt;
===Server Side Logic===&lt;br /&gt;
A number of gameplay features have been moved from the client to the server, to ensure more consistent gameplay over the internet, including;&lt;br /&gt;
* Flag operations (pickup, capture, identify, etc)&lt;br /&gt;
* Pause/unpause&lt;br /&gt;
* Shot type&lt;br /&gt;
&lt;br /&gt;
===Game state and security checks===&lt;br /&gt;
Many changes and enhancements have been made to the network protocol to prevent errors in the network message stream or shared game state.&lt;br /&gt;
&lt;br /&gt;
===BZW Format===&lt;br /&gt;
*Links can now be included in groups, with relative naming.&lt;br /&gt;
*Mesh faces can now be used as teleportation link sources (with numerous options)&lt;br /&gt;
*Mesh faces can now be used as team bases (must be flat tops).&lt;br /&gt;
*Mesh faces can now be used as zones (must be flat tops).&lt;br /&gt;
*Meshes can now contain weapon objects.&lt;br /&gt;
*World Text objects have been added (with numerous options)&lt;br /&gt;
*Dynamic Colors now use a simpler format.&lt;br /&gt;
*Solid objects can now specify the &#039;ricochet&#039; property individually.&lt;br /&gt;
&lt;br /&gt;
===Graphics===&lt;br /&gt;
Changes have been made to the graphical quality settings. What was Experimental quality in 2.0.12 is now High quality. Medium quality is between the old High and Medium, and Low has remained mostly unchanged.&lt;br /&gt;
&lt;br /&gt;
The new Experimental mode includes new shot and flag graphics.&lt;br /&gt;
&lt;br /&gt;
===New Server List===&lt;br /&gt;
The list of servers has been enhanced to allow tabbed browsing as well as improved searching and sorting.&lt;br /&gt;
&lt;br /&gt;
===HUD Markers===&lt;br /&gt;
If HUD markers showing flag position, GM lockon are now shown to players. THe name and team of the closest target is also shown, helping prevent teamkills. Servers can turn off this feature for all players if desired.&lt;br /&gt;
&lt;br /&gt;
===BZFS API===&lt;br /&gt;
The [[BZFS API]] has been reviewed and re-factored for 3.0 and includes a number of new events and functions.&lt;br /&gt;
&lt;br /&gt;
====Server Side Players====&lt;br /&gt;
The API has experimental support for server side players (bots).&lt;br /&gt;
&lt;br /&gt;
====Custom Flag Names====&lt;br /&gt;
The API may define new custom flag names using any strings desired. The ammount of logic that can be processed for custom flags is limited.&lt;br /&gt;
&lt;br /&gt;
====HTTP based plug-ins====&lt;br /&gt;
The networking system for BZFS now allows for the support of HTTP (and other ) connections. A number of plugins have been made to take advantage of this new feature, such as;&lt;br /&gt;
* [[Fastmap]]&lt;br /&gt;
* [[Webadmin]]&lt;br /&gt;
* [[Webreport]]&lt;br /&gt;
* [[Webstats]]&lt;br /&gt;
&lt;br /&gt;
====BZFS API Versioning====&lt;br /&gt;
The versioning system in the BZFS API has been redone, and now event data classes are versioned for forward computability. Custom plug-ins that were written for v2.0.x must be updated to use the new classnames before they will work with v3.0.x. This should only be a one time change as the new classes are versioned and will remain the same in future releases. All standard plug-ins that ship with the bzflag source code have been updated.&lt;br /&gt;
&lt;br /&gt;
===Lua BZFS API===&lt;br /&gt;
The lua scripting language (http://lua.org), is now built into the bzfs executable, and exposes almost all of the features from the C++ BZFS API (and a few that the C++ API does not have). It has the advantages of being easier to learn and write than comparable C++ code, and it can be embedded in world files. The main disadvantage is that it is not as fast as native c++ code.&lt;br /&gt;
&lt;br /&gt;
===Server Administration===&lt;br /&gt;
Some changes have been made to help you server administrators.&lt;br /&gt;
&lt;br /&gt;
The [[Webadmin]] plug-in allows server owners to manage many aspects of the server from a standard web browsers.&lt;br /&gt;
&lt;br /&gt;
====Local Authentication====&lt;br /&gt;
Local authentication ( &#039;&#039;&#039;/identify&#039;&#039;&#039; ), has been removed from the game, servers can use global authentication services for all authentication needs.&lt;br /&gt;
&lt;br /&gt;
===Gameplay Changes===&lt;br /&gt;
A number of changes have been made to the game that will subtly affect gameplay.&lt;br /&gt;
====Acceleration====&lt;br /&gt;
Tank acceleration is now always on. The &amp;quot;-a&amp;quot; server option has been removed, and the acceleration values are pulled from BZDB variables. These variables are _inertiaLinear and _inertiaAngular.&lt;br /&gt;
&lt;br /&gt;
====Lag Compensation====&lt;br /&gt;
Clients now use a synced timestmap and attempt to compensate tank positions for lag. This can change the way the game feels for players that are used to &amp;quot;leading&amp;quot; the target based on its lag.&lt;br /&gt;
&lt;br /&gt;
====Hit Volume====&lt;br /&gt;
The volume that defines a &amp;quot;hit&amp;quot; on a tank has been changed. It is now a box around the tank that can be adjusted by the server using BZDB variables.&lt;br /&gt;
&lt;br /&gt;
====No TK Option====&lt;br /&gt;
A server can define an option that will allow players to not be killed if a team-mates shot hits them&lt;br /&gt;
&lt;br /&gt;
===Build System===&lt;br /&gt;
Much effort has been put into making the bzflag source tree easier to compile on various OSs. The makefile build system has been updated and attempts to detect as many items as possible from the host System. The windows build system has been updated to be compatible with Visual Studio 2008 Express Edition that is freely available. When possible, copies of third party libraries are included with the source code.&lt;br /&gt;
&lt;br /&gt;
===Bug Fixes===&lt;br /&gt;
A student is being paid as part of the Google Summer of Code program to evaluate and fix the backlog of reported bugs in the software. This will have the overall effect of increasing the stability of the game.&lt;br /&gt;
&lt;br /&gt;
===ChangeLog===&lt;br /&gt;
A full list of changes can be found in the [http://bzflag.svn.sourceforge.net/viewvc/*checkout*/bzflag/trunk/bzflag/NEWS NEWS] file in the [[BZFlag Source]] code in [[BZFlag SVN|SVN]].&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
A lot of stuff needs testing, and probably doesn&#039;t work.&lt;br /&gt;
&lt;br /&gt;
==Release Date==&lt;br /&gt;
As is always the case for major updates to BZFlag, &#039;&#039;&#039;&#039;&#039;3.0 will be released when it is done&#039;&#039;&#039;&#039;&#039;. At present, a major effort is being made to release sometime in the fourth quarter of 2009.&lt;br /&gt;
&lt;br /&gt;
==Misconceptions about V3.0==&lt;br /&gt;
There have been a few misconceptions in the community regarding what this new version will and will not do. Most of this is simply due to the exceptionally long development time, or comments being taken out of context.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;V3 will do everything Server Side, including shots&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is untrue. While more things have been moved to the server, shoots and hits are still handled by the client. Shots and hits will not be moved to the server until the code can be shown to maintain the level of response time that players have come to expect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;V3 will use more bandwith and be laggy&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
V3 does a better job of handling network traffic to and from players. Many messages have been reduced in size. Server side handling of some events, (like flag grabs) have actually removed some messages from the network stream. Network performance should be similar to V2.x. In some cases, lag compensation may even improve apparent performance.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Versions]]&lt;br /&gt;
&lt;br /&gt;
[[V3RCChecklist]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_2.99&amp;diff=6726</id>
		<title>BZFlag 2.99</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_2.99&amp;diff=6726"/>
		<updated>2009-10-08T06:01:22Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: /* Lag Compensation */ Corrected grammar mistake&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag version 3.0 is the next planned release of BZFlag. &lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
Version 3.0 is currently in development and marked as version v2.99.x. Upon release it will be marked as version v3.0. The primary goals for this version are improved server side stability and security in an effort to minimize the impact of clients that have been modified to provide their users benefit ( aka, cheating ). Additional efforts are being made to extend the server side customization of the game. v3.0 will be completely incompatible with all previous versions of the game. Users of v3.0 will only be able to play on 3.0 servers. This is similar to how v2.0 was incompatible with 1.10.&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
Development began on 3.0 on October 25th 2005.  After an initial rush of changes, development stalled, as a number of bugs were found in the current release build of the time ([[BZFlag 2.0.4|v2.0.4]]). These bugs and problems, as well as a number of graphical changes from [[trepan]] necessitated the release of compatible [[BZFlag 2.0.6|v2.0.6]], [[BZFlag 2.0.8|v2.0.8]], and [[BZFlag 2.0.10|v2.0.10]] releases.&lt;br /&gt;
&lt;br /&gt;
==Version Number Change==&lt;br /&gt;
v3.0 is the first version to use the new version numbering system.  The 3.0 release initially began as the 2.1 development line, with the intent of being released as version 2.2.  Part of the way through development, however, the [[Versions|versioning]] number scheme changed and the development revision changed from 2.1 to 2.99.  With previous releases the minor version number in the version triplet (major.minor.revision) represented protocol and client compatibility.  With 3.0 compatibility is instead reflected in the major version number. This new scheme gives more &amp;quot;room&amp;quot; to deal with minor packaging revisions and patch release updates.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
v3.0 has a number of features that make for a much improved gameplay experience.&lt;br /&gt;
&lt;br /&gt;
===Fonts===&lt;br /&gt;
The font system has been replaced and now uses standard TrueType fonts([http://en.wikipedia.org/wiki/TrueType TTF]). This offers a number of advantages over the older bitmap based font system, including support for unicode character sets. &lt;br /&gt;
&lt;br /&gt;
Users can now set the default fonts that they wish to use on a per-locale basis so they can use the best fonts for their character set. (More info on how?)&lt;br /&gt;
&lt;br /&gt;
===Server Side Logic===&lt;br /&gt;
A number of gameplay features have been moved from the client to the server, to ensure more consistent gameplay over the internet, including;&lt;br /&gt;
* Flag operations (pickup, capture, identify, etc)&lt;br /&gt;
* Pause/unpause&lt;br /&gt;
* Shot type&lt;br /&gt;
&lt;br /&gt;
===Game state and security checks===&lt;br /&gt;
Many changes and enhancements have been made to the network protocol to prevent errors in the network message stream or shared game state.&lt;br /&gt;
&lt;br /&gt;
===BZW Format===&lt;br /&gt;
*Links can now be included in groups, with relative naming.&lt;br /&gt;
*Mesh faces can now be used as teleportation link sources (with numerous options)&lt;br /&gt;
*Mesh faces can now be used as team bases (must be flat tops).&lt;br /&gt;
*Mesh faces can now be used as zones (must be flat tops).&lt;br /&gt;
*Meshes can now contain weapon objects.&lt;br /&gt;
*World Text objects have been added (with numerous options)&lt;br /&gt;
*Dynamic Colors now use a simpler format.&lt;br /&gt;
*Solid objects can now specify the &#039;ricochet&#039; property individually.&lt;br /&gt;
&lt;br /&gt;
===Graphics===&lt;br /&gt;
Changes have been made to the graphical quality settings. What was Experimental quality in 2.0.12 is now High quality. Medium quality is between the old High and Medium, and Low has remained mostly unchanged.&lt;br /&gt;
&lt;br /&gt;
The new Experimental mode includes new shot and flag graphics.&lt;br /&gt;
&lt;br /&gt;
===New Server List===&lt;br /&gt;
The list of servers has been enhanced to allow tabbed browsing as well as improved searching and sorting.&lt;br /&gt;
&lt;br /&gt;
===HUD Markers===&lt;br /&gt;
If HUD markers showing flag position, GM lockon are now shown to players. THe name and team of the closest target is also shown, helping prevent teamkills. Servers can turn off this feature for all players if desired.&lt;br /&gt;
&lt;br /&gt;
===BZFS API===&lt;br /&gt;
The [[BZFS API]] has been reviewed and re-factored for 3.0 and includes a number of new events and functions.&lt;br /&gt;
&lt;br /&gt;
====Server Side Players====&lt;br /&gt;
The API has experimental support for server side players (bots).&lt;br /&gt;
&lt;br /&gt;
====Custom Flag Names====&lt;br /&gt;
The API may define new custom flag names using any strings desired. The ammount of logic that can be processed for custom flags is limited.&lt;br /&gt;
&lt;br /&gt;
====HTTP based plug-ins====&lt;br /&gt;
The networking system for BZFS now allows for the support of HTTP (and other ) connections. A number of plugins have been made to take advantage of this new feature, such as;&lt;br /&gt;
* [[Fastmap]]&lt;br /&gt;
* [[Webadmin]]&lt;br /&gt;
* [[Webreport]]&lt;br /&gt;
* [[Webstats]]&lt;br /&gt;
&lt;br /&gt;
====BZFS API Versioning====&lt;br /&gt;
The versioning system in the BZFS API has been redone, and now event data classes are versioned for forward computability. Custom plug-ins that were written for v2.0.x must be updated to use the new classnames before they will work with v3.0.x. This should only be a one time change as the new classes are versioned and will remain the same in future releases. All standard plug-ins that ship with the bzflag source code have been updated.&lt;br /&gt;
&lt;br /&gt;
===Lua BZFS API===&lt;br /&gt;
The lua scripting language (http://lua.org), is now built into the bzfs executable, and exposes almost all of the features from the C++ BZFS API (and a few that the C++ API does not have). It has the advantages of being easier to learn and write than comparable C++ code, and it can be embedded in world files. The main disadvantage is that it is not as fast as native c++ code.&lt;br /&gt;
&lt;br /&gt;
===Server Administration===&lt;br /&gt;
Some changes have been made to help you server administrators.&lt;br /&gt;
&lt;br /&gt;
The [[Webadmin]] plug-in allows server owners to manage many aspects of the server from a standard web browsers.&lt;br /&gt;
&lt;br /&gt;
====Local Authentication====&lt;br /&gt;
Local authentication ( &#039;&#039;&#039;/identify&#039;&#039;&#039; ), has been removed from the game, servers can use global authentication services for all authentication needs.&lt;br /&gt;
&lt;br /&gt;
===Gameplay Changes===&lt;br /&gt;
A number of changes have been made to the game that will subtly affect gameplay.&lt;br /&gt;
====Acceleration====&lt;br /&gt;
Tank acceleration is now always on. The &amp;quot;-a&amp;quot; server option has been removed, and the acceleration values are pulled from BZDB variables. These variables are _inertiaLinear and _inertiaAngular.&lt;br /&gt;
&lt;br /&gt;
====Lag Compensation====&lt;br /&gt;
Clients now use a synced timestmap and attempt to compensate tank positions for lag. This can change the way the game feels for players that are used to &amp;quot;leading&amp;quot; the target based on its lag.&lt;br /&gt;
&lt;br /&gt;
====Hit Volume====&lt;br /&gt;
The volume that defines a &amp;quot;hit&amp;quot; on a tank has been changed. It is now a box around the tank that can be adjusted by the server using BZDB variables.&lt;br /&gt;
&lt;br /&gt;
====No TK Option====&lt;br /&gt;
A server can define an option that will allow players to not be killed if a team-mates shot hits them&lt;br /&gt;
&lt;br /&gt;
===Build System===&lt;br /&gt;
Much effort has been put into making the bzflag source tree easier to compile on various OSs. The makefile build system has been updated and attempts to detect as many items as possible from the host System. The windows build system has been updated to be compatible with Visual Studio 2008 Express Edition that is freely available. When possible, copies of third party libraries are included with the source code.&lt;br /&gt;
&lt;br /&gt;
===Bug Fixes===&lt;br /&gt;
A student is being paid as part of the Google Summer of Code program to evaluate and fix the backlog of reported bugs in the software. This will have the overall effect of increasing the stability of the game.&lt;br /&gt;
&lt;br /&gt;
===ChangeLog===&lt;br /&gt;
A full list of changes can be found in the [http://bzflag.svn.sourceforge.net/viewvc/*checkout*/bzflag/trunk/bzflag/NEWS NEWS] file in the [[BZFlag Source]] code in [[BZFlag SVN|SVN]].&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
A lot of stuff needs testing, and probably doesn&#039;t work.&lt;br /&gt;
&lt;br /&gt;
==Release Date==&lt;br /&gt;
As is always the case for major updates to BZFlag, &#039;&#039;&#039;&#039;&#039;3.0 will be released when it is done&#039;&#039;&#039;&#039;&#039;. At present, a major effort is being made to release sometime in the third quarter of 2009.&lt;br /&gt;
&lt;br /&gt;
==Misconceptions about V3.0==&lt;br /&gt;
There have been a few misconceptions in the community regarding what this new version will and will not do. Most of this is simply due to the exceptionally long development time, or comments being taken out of context.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;V3 will do everything Server Side, including shots&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is untrue. While more things have been moved to the server, shoots and hits are still handled by the client. Shots and hits will not be moved to the server until the code can be shown to maintain the level of response time that players have come to expect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;V3 will use more bandwith and be laggy&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
V3 does a better job of handling network traffic to and from players. Many messages have been reduced in size. Server side handling of some events, (like flag grabs) have actually removed some messages from the network stream. Network performance should be similar to V2.x. In some cases, lag compensation may even improve apparent performance.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Versions]]&lt;br /&gt;
&lt;br /&gt;
[[V3RCChecklist]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Jargon&amp;diff=6697</id>
		<title>Jargon</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Jargon&amp;diff=6697"/>
		<updated>2009-09-28T03:49:09Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: /* Jargon */ I&amp;#039;ve seen pyramids quite frequently referred to as &amp;quot;pyra&amp;quot;s as well&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page hopes to clarify some common jargon, acronyms and slang used by many players in game. They can be useful to know, especially in team situations, as other players will assume that you know what they are talking about.&lt;br /&gt;
&lt;br /&gt;
Many players use map &amp;quot;landmarks,&amp;quot; like &amp;quot;mid tower&amp;quot; or &amp;quot;@ R jump,&amp;quot; to signify places on the map, so it&#039;s a good idea to learn your maps as well as the jargon.&lt;br /&gt;
&lt;br /&gt;
= Acronyms =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
CTF=[[Capture the Flag]]&lt;br /&gt;
FFA=[[Free For All]]&lt;br /&gt;
RH=[[Rabbit Hunt]]&lt;br /&gt;
KOTH=King of the Hill&lt;br /&gt;
R=(Team&#039;s) Right&lt;br /&gt;
L=(Team&#039;s) Left&lt;br /&gt;
RF=Red flag&lt;br /&gt;
GF=Green flag&lt;br /&gt;
BF=Blue flag&lt;br /&gt;
PF=Purple flag&lt;br /&gt;
HF=Have fun&lt;br /&gt;
GJ=Good Job. Often said to the team when a teammate has just captured the opposing team&#039;s flag&lt;br /&gt;
GL=Good Luck&lt;br /&gt;
GS=Good shot. Generally used when a particularly difficult shot kills you&lt;br /&gt;
GG=Good game&lt;br /&gt;
G1=Good One (shot)&lt;br /&gt;
NP=No Problem - mostly used as a response if you&#039;re teamkilled&lt;br /&gt;
NS=Nice Shot&lt;br /&gt;
N1=Nice One (shot)&lt;br /&gt;
SRY=Sorry&lt;br /&gt;
THX=Thank You&lt;br /&gt;
TK=Team Kill, to kill one&#039;s own team.&lt;br /&gt;
TY=Thank You&lt;br /&gt;
WTF?=Something&#039;s not quite right..... (Vulgar)&lt;br /&gt;
WTH?=Similar to WTF - cleaner version&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Jargon =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
Base=Usually referring to your own base. (eg: ST base! &amp;quot;There&#039;s someone with stealth in/at/near our base&amp;quot;)&lt;br /&gt;
Bots=Non-human-player tanks.&lt;br /&gt;
Camping=Staying in one place with the same flag for a long time. If you do this you are &#039;&#039;a camper&#039;&#039;.&lt;br /&gt;
Capping=Capturing the other teams flag, verb &#039;&#039;to cap&#039;&#039;.&lt;br /&gt;
Flag Running=Working against your own team, taking your team&#039;s flag towards the other team&#039;s base. If you do this you are a &#039;&#039;flag runner&#039;&#039;.&lt;br /&gt;
Flag Shopping=Rapidly picking up and dropping flags, in order to find a particularly powerful or useful one. Also known as &#039;&#039;flag farming&#039;&#039;.&lt;br /&gt;
Geno=Genocide Flag, usually when seen it chat by itself it warns that an opposing team player has the flag so be careful.&lt;br /&gt;
In=Inside the base (if applicable)&lt;br /&gt;
Jump/Jumper/Launcher=Either a world object that launches a tank in the air, or a tank that has used said world object.&lt;br /&gt;
Lang=Language, Watch your language. (Please don&#039;t respond with the language you speak.)&lt;br /&gt;
Laser Spamming=Uselessly, blindly, rapidly shooting with the laser flag, often resulting in team kills.&lt;br /&gt;
N, S, E, W=North, South, East, West. Compass points relative to the map. (eg: &amp;quot;Where the rabbit?&amp;quot; &amp;quot;N inside hut&amp;quot; or &amp;quot;SE corner&amp;quot;)&lt;br /&gt;
Out=Directly outside the base (if applicable)&lt;br /&gt;
Mid=Middle of the map&lt;br /&gt;
Pass=Send the flag to the middle, or to a safe zone. See [[Jumping#Dropping_Flags|this article]].&lt;br /&gt;
Pyr/Pyra=Pyramid&lt;br /&gt;
Spamming=Filling the chat box with meaningless text.&lt;br /&gt;
Spawn camping=Sitting near a team&#039;s spawn site waiting to kill them when they respawn after their flag is captured.&lt;br /&gt;
Spawn killing=Killing someone as soon as they spawn.&lt;br /&gt;
Tele=Teleporter&lt;br /&gt;
Theirs=Attack the other team&#039;s flag, or used to signify the other team&#039;s base.&lt;br /&gt;
Ours=Protect your team flag, or used to signify your team&#039;s base.&lt;br /&gt;
Watch!=Watch out! or Guard! (eg: Watch ours!)&lt;br /&gt;
Win=Kill everyone on the map. At the same time.&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
* [[Flag List|Flag Abbreviations]]&lt;br /&gt;
* [http://en.wiktionary.org/wiki/Appendix:Internet_slang Common Internet Slang]&lt;br /&gt;
&lt;br /&gt;
[[Category:Gameplay]]&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_on_IRC&amp;diff=6658</id>
		<title>BZFlag on IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_on_IRC&amp;diff=6658"/>
		<updated>2009-08-20T16:51:21Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: /* Other projects and unofficial channels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=FreeNode=&lt;br /&gt;
The official BZFlag org. and its associated communities use the [http://freenode.net/ freenode IRC network] for communication and collaboration.&lt;br /&gt;
&lt;br /&gt;
==Channels==&lt;br /&gt;
===Official channels===&lt;br /&gt;
BZFlag maintains 2 official channels run by the org.&lt;br /&gt;
====#bzflag====&lt;br /&gt;
The [irc://irc.freenode.net/bzflag #bzflag] channel is the primary development and support channel. The major developers and many long time community members are users. Discussions in the channel range from development and coding discussions to technical support and bug reports. #bzflag is a great channel to discuss new features and bugs. The channel is moderated by the project administration and development staff. &#039;&#039;&#039;This channel is not for help with specific servers or administration issues&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====#bzflag-chat====&lt;br /&gt;
The #bzflag-chat channel is a more informal channel designated for player community discussions.&lt;br /&gt;
&lt;br /&gt;
===Other projects and unofficial channels===&lt;br /&gt;
A number of players, servers, and [[leagues]] have their own channel for more focused discussion. Some of these include:&lt;br /&gt;
&lt;br /&gt;
* ##bar (DUCLeague team, The Barbarians)&lt;br /&gt;
* #badgerking (Official Channel for Badgerking&#039;s FFA)&lt;br /&gt;
* #BoomBZ (Team Channel for GU team [BoOm])&lt;br /&gt;
* ##bz-inc (DUCLeague team, [http://my.bzflag.org/league/index.php?link=teaminfo&amp;amp;id=689/ Bz-Incorporated])&lt;br /&gt;
* ##bzexcess (Support channel for the [http://bzexcess.com BZExcess.com servers.])&lt;br /&gt;
* ##bzflagr (Support channel for the [http://bzflagr.net BZFlagr.net servers.]) - closed down&lt;br /&gt;
* #bzfx (Support channel for the bzfx.net BZFlag servers)&lt;br /&gt;
* ##bzpod (Channel to discuss the BZFlag podcast, BZPod)&lt;br /&gt;
* ##bzpro (Support channel for the [http://bzpro.net BZPro.net servers.])&lt;br /&gt;
* ##bztank (Unofficial support channel for the [http://bztank.net BZTank.net servers].)&lt;br /&gt;
* #bztraining (Official support channel for the [http://bztraining.org BZTraining server network] and for [http://bznetwork.googlecode.com BZNetwork])&lt;br /&gt;
* ##bzw (A place to discuss map making for BZFlag, including ideas and help)&lt;br /&gt;
* ##divi (Support channel for [http://divi.fairserve.net Divibox] and other [http://fairserve.bzflag.org Fairserve] servers)&lt;br /&gt;
* #dub (Support channel for the dub.bzflag.org BZFlag servers)&lt;br /&gt;
* ##ducleague (Support channel for [http://my.bzflag.org/league/ Ducati League (DucLeague)])&lt;br /&gt;
* #forestforce ([http://gu.bzleague.com/index.php?link=teaminfo&amp;amp;id=10 GULeague Team])&lt;br /&gt;
* ##guleague (Support channel for [http://gu.bzleague.com/ GamesUnited League (GULeague)])&lt;br /&gt;
* #hepcat (Support channel for borrego.hepcat.org BZFlag server) &#039;&#039;defunct&#039;&#039;&lt;br /&gt;
* ##icf (Support channel for [http://gu.bzleague.com/index.php?link=teaminfo&amp;amp;id=112 Invasive Chaotic Frenzies, (GULeague)])&lt;br /&gt;
* #inleague (Support channel for [http://in.bzleague.com InterNational League (INLeague)])&lt;br /&gt;
* #kas (GULeague team, KAS)&lt;br /&gt;
* ##norang (Support channel for [http://bzflag.norang.ca Norang.ca] BZFlag servers)&lt;br /&gt;
* #pillbox (Support channel for [http://pillbox.bzleague.com/ Pillbox League (PBLeague)])&lt;br /&gt;
* ##planetmofo (Support channel for [http://www.planet-mofo.com planet-mofo.com] servers)&lt;br /&gt;
* #plosileague (Support channel for [http://bzfx.net/league/ Plosileague]) &#039;&#039;defunct&#039;&#039;&lt;br /&gt;
* #silvercat (Support channel for [http://silvercat.bzflag.org/ Silvercat BZFlag servers]) &#039;&#039;defunct&#039;&#039;&lt;br /&gt;
* ##t42 ([http://gu.bzleague.com/index.php?link=teaminfo&amp;amp;id=39 GULeague team])&lt;br /&gt;
* ##untamed ([http://my.bzflag.org/league/index.php?link=teaminfo&amp;amp;id=909 DUCLeague team])&lt;br /&gt;
&lt;br /&gt;
When the Freenode Group Management System is implemented, channels with a single # will need to either register their organization with Freenode or rename to begin with ## (a &amp;quot;reference&amp;quot; channel, one that holds no legal claim to the name).&lt;br /&gt;
&lt;br /&gt;
=stormcenter.net=&lt;br /&gt;
An unofficial bzflag channel is run on irc.stormcenter.net&lt;br /&gt;
* #bzflag (official support channel for [http://www.bztank.net BZtank] servers)&lt;br /&gt;
&lt;br /&gt;
=IRC Clients=&lt;br /&gt;
To access the IRC network you need to use an IRC client. [http://irchelp.org/ http://irchelp.org/] is an excellent resource for more information on general IRC.&lt;br /&gt;
&lt;br /&gt;
=External links=&lt;br /&gt;
*[http://irchelp.org/ IRC help docs]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Support]]&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFS&amp;diff=6614</id>
		<title>BZFS</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFS&amp;diff=6614"/>
		<updated>2009-08-11T08:14:36Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: Noted that bzfs -conf files have to end with a newline or bzfs complains about them not existing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This is an article specifically about the BZFS program. For general information on creating a BZFlag server, see [[Creating A Server]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
BZFS is name of the the [[BZFlag]] server application. It is a command line application that can ether be run manually or started from within the game. The server supports a large list of [[BZFS Command Line Options|command line options]] that can be used. All BZFlag games are hosted on BZFS servers, there is no &#039;single player&#039; game that is run with only a client.&lt;br /&gt;
&lt;br /&gt;
==Public Vs. Private Servers==&lt;br /&gt;
BZFS can be run in ether a public or private mode. Public servers are listed with the central [[List Server]] system and can take advantage of the [[Global Registration]] system for user management. Private servers will only be visible on the LAN they are started on. The in-game server menu can only start private servers.&lt;br /&gt;
&lt;br /&gt;
==Command line options and Config files==&lt;br /&gt;
BZFS uses a large number of [[BZFS Command Line Options|command line options]] to set the various modes and options for a game. These options can be specified from the command line prompt of the host OS, or via a text file that is called the &#039;Config&#039;. BZFS does not ship with a standard config file, it is assumed that the user will make their own. The full path to the config file is specified with the &#039;&#039;&#039;-conf&#039;&#039;&#039; option. The file referenced by &#039;&#039;&#039;-conf&#039;&#039;&#039; must itself end with a newline or bzfs will complain that the file does not exist.&lt;br /&gt;
&lt;br /&gt;
==World Files==&lt;br /&gt;
BZFS can read in [[BZW]] formated map files and use them to define the 3d world the game is played in.&lt;br /&gt;
&lt;br /&gt;
==Plug-ins and the BZFS API==&lt;br /&gt;
BZFS can be extended by the use of server side [[Plug-ins]]. These [[Plug-ins]] are runtime loaded DLLs/SO files that use the [[BZFS API]] to modify and automate various game logic and settings.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[BZFS Command Line Options]] &lt;br /&gt;
&lt;br /&gt;
[[BZFS API]] &lt;br /&gt;
&lt;br /&gt;
[[Plug-ins]] &lt;br /&gt;
&lt;br /&gt;
[[Sample conf|Sample Config File]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_on_IRC&amp;diff=6581</id>
		<title>BZFlag on IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_on_IRC&amp;diff=6581"/>
		<updated>2009-08-02T04:12:03Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: /* Other projects and unofficial channels */ Added BZTraining&amp;#039;s channel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=FreeNode=&lt;br /&gt;
The official BZFlag org. and its associated communities use the [http://freenode.net/ freenode IRC network] for communication and collaboration.&lt;br /&gt;
&lt;br /&gt;
==Channels==&lt;br /&gt;
===Official channels===&lt;br /&gt;
BZFlag maintains 2 official channels run by the org.&lt;br /&gt;
====#bzflag====&lt;br /&gt;
The [irc://irc.freenode.net/bzflag #bzflag] channel is the primary development and support channel. The major developers and many long time community members are users. Discussions in the channel range from development and coding discussions to technical support and bug reports. #bzflag is a great channel to discuss new features and bugs. The channel is moderated by the project administration and development staff. &#039;&#039;&#039;This channel is not for help with specific servers or administration issues&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====#bzflag-chat====&lt;br /&gt;
The #bzflag-chat channel is a more informal channel designated for player community discussions.&lt;br /&gt;
&lt;br /&gt;
===Other projects and unofficial channels===&lt;br /&gt;
A number of players, servers, and [[leagues]] have their own channel for more focused discussion. Some of these include:&lt;br /&gt;
&lt;br /&gt;
* ##bar (DUCLeague team, The Barbarians)&lt;br /&gt;
* #badgerking (Official Channel for Badgerking&#039;s FFA)&lt;br /&gt;
* #BoomBZ (Team Channel for GU team [BoOm])&lt;br /&gt;
* ##bz-inc (DUCLeague team, [http://my.bzflag.org/league/index.php?link=teaminfo&amp;amp;id=689/ Bz-Incorporated])&lt;br /&gt;
* ##bzexcess (Support channel for the [http://bzexcess.com BZExcess.com servers.])&lt;br /&gt;
* ##bzflagr (Support channel for the [http://bzflagr.net BZFlagr.net servers.]) - closed down&lt;br /&gt;
* #bzfx (Support channel for the bzfx.net BZFlag servers)&lt;br /&gt;
* ##bzpod (Channel to discuss the BZFlag podcast, BZPod)&lt;br /&gt;
* ##bzpro (Support channel for the [http://bzpro.net BZPro.net servers.])&lt;br /&gt;
* ##bztank (Unofficial support channel for the [http://bztank.net BZTank.net servers].)&lt;br /&gt;
* #bztraining (Official support channel for the [http://bztraining.org BZTraining server network])&lt;br /&gt;
* ##bzw (A place to discuss map making for BZFlag, including ideas and help)&lt;br /&gt;
* ##divi (Support channel for [http://divi.fairserve.net Divibox] and other [http://fairserve.bzflag.org Fairserve] servers)&lt;br /&gt;
* #dub (Support channel for the dub.bzflag.org BZFlag servers)&lt;br /&gt;
* ##ducleague (Support channel for [http://my.bzflag.org/league/ Ducati League (DucLeague)])&lt;br /&gt;
* #forestforce ([http://gu.bzleague.com/index.php?link=teaminfo&amp;amp;id=10 GULeague Team])&lt;br /&gt;
* ##guleague (Support channel for [http://gu.bzleague.com/ GamesUnited League (GULeague)])&lt;br /&gt;
* #hepcat (Support channel for borrego.hepcat.org BZFlag server) &#039;&#039;defunct&#039;&#039;&lt;br /&gt;
* ##icf (Support channel for [http://gu.bzleague.com/index.php?link=teaminfo&amp;amp;id=112 Invasive Chaotic Frenzies, (GULeague)])&lt;br /&gt;
* #inleague (Support channel for [http://in.bzleague.com InterNational League (INLeague)])&lt;br /&gt;
* #kas (GULeague team, KAS)&lt;br /&gt;
* ##norang (Support channel for [http://bzflag.norang.ca Norang.ca] BZFlag servers)&lt;br /&gt;
* #pillbox (Support channel for [http://pillbox.bzleague.com/ Pillbox League (PBLeague)])&lt;br /&gt;
* ##planetmofo (Support channel for [http://www.planet-mofo.com planet-mofo.com] servers)&lt;br /&gt;
* #plosileague (Support channel for [http://bzfx.net/league/ Plosileague]) &#039;&#039;defunct&#039;&#039;&lt;br /&gt;
* #silvercat (Support channel for [http://silvercat.bzflag.org/ Silvercat BZFlag servers]) &#039;&#039;defunct&#039;&#039;&lt;br /&gt;
* ##t42 ([http://gu.bzleague.com/index.php?link=teaminfo&amp;amp;id=39 GULeague team])&lt;br /&gt;
* ##untamed ([http://my.bzflag.org/league/index.php?link=teaminfo&amp;amp;id=909 DUCLeague team])&lt;br /&gt;
&lt;br /&gt;
When the Freenode Group Management System is implemented, channels with a single # will need to either register their organization with Freenode or rename to begin with ## (a &amp;quot;reference&amp;quot; channel, one that holds no legal claim to the name).&lt;br /&gt;
&lt;br /&gt;
=stormcenter.net=&lt;br /&gt;
An unofficial bzflag channel is run on irc.stormcenter.net&lt;br /&gt;
* #bzflag (official support channel for [http://www.bztank.net BZtank] servers)&lt;br /&gt;
&lt;br /&gt;
=IRC Clients=&lt;br /&gt;
To access the IRC network you need to use an IRC client. [http://irchelp.org/ http://irchelp.org/] is an excellent resource for more information on general IRC.&lt;br /&gt;
&lt;br /&gt;
There is a BZFlag-hosted IRC client at http://my.BZFlag.org/irc/irc.cgi.&lt;br /&gt;
&lt;br /&gt;
=External links=&lt;br /&gt;
*[http://my.BZFlag.org/irc/irc.cgi BZFlag.org-hosted IRC client]&lt;br /&gt;
*[http://irchelp.org/ IRC help docs]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Support]]&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlagWiki:Content_Policy&amp;diff=6580</id>
		<title>BZFlagWiki:Content Policy</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlagWiki:Content_Policy&amp;diff=6580"/>
		<updated>2009-08-02T03:50:24Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: /* Writing Style */ &amp;quot;exempt&amp;quot; is correct grammer here, not &amp;quot;exempted&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the acceptable content policy for articles in this wiki.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The BZFlag wiki is provided as shared informational resource for the player community. Its intended content is factual information regarding the BZFlag game and its community. To do this it must maintain a level of impartiality when dealing with that content. Below is a set of guidelines for users posting articles here.&lt;br /&gt;
&lt;br /&gt;
== Subjects ==&lt;br /&gt;
All articles on the BZFlag Wiki MUST have a direct bearing on the game itself. Articles that are not directly related to the game will be removed from the wiki.&lt;br /&gt;
&lt;br /&gt;
=== Acceptable Subjects ===&lt;br /&gt;
The following are acceptable subjects for BZFlag Wiki Articles.&lt;br /&gt;
* Documentation of BZFlag Software.&lt;br /&gt;
* Documentation of BZFlag terms and concepts.&lt;br /&gt;
* Documentation of tasks specific to the direct use of the BZFlag source code, or software.&lt;br /&gt;
* Collaborative development projects directly related to BZFlag.&lt;br /&gt;
* Guides and help for playing the game or using BZFlag-related tools.&lt;br /&gt;
* Factual historical references to BZFlag, software, source code, and developers.&lt;br /&gt;
* General Information about specific maps, and links to their location.&lt;br /&gt;
* General Information about specific servers, and links to their administration and websites.&lt;br /&gt;
* General Information about server networks, and links to their administration and websites.&lt;br /&gt;
&lt;br /&gt;
=== Unacceptable Subjects ===&lt;br /&gt;
The following subjects should not be addressed in wiki articles.&lt;br /&gt;
* Server specific rules and policies.&lt;br /&gt;
* Advertisements for specific servers, users, or maps.&lt;br /&gt;
&lt;br /&gt;
== Article Contents ==&lt;br /&gt;
The contents of articles must be presented in an impartial and factual manner. Wiki articles should be considered descriptive of their subjects, and at all times informational. If a statement can not be backed up with facts, it does not belong in the article. If the fact has no bearing on the subject matter in a descriptive way, it does not belong in the article. Some articles will have more or less factual content following these rules. The further away a subject is from the core game, the less information is applicable to the wiki. The page describing the command line options of the BZFS server will have significantly more applicable information then an article on a network of servers will. &lt;br /&gt;
&lt;br /&gt;
If the article does not deal directly with the BZFlag software or development process, and needs to reference information that is available on other websites, then the article should simply link to them. This includes items such as server rules, and other information that is elsewhere.&lt;br /&gt;
&lt;br /&gt;
Articles should not be written to promote or hinder any one specific server, network, group, or person. No statements should be based on opinion unless the article is designed specifically for promoting a collaborative workflow.  In all cases statements should be presented with civility.&lt;br /&gt;
&lt;br /&gt;
Articles do not &amp;quot;belong&amp;quot; to any one author. The nature of a wiki is for community created and edited content. Recognize that articles can be changed by anyone and no individual controls any specific article; therefore, any writing you contribute can be mercilessly edited and redistributed at will by the community. If the author of an articles wishes to post information that is not to be changed by other users (such as server rules), it should not be part of the wiki article. This information should be linked to via an external web-link.&lt;br /&gt;
&lt;br /&gt;
== Writing Style ==&lt;br /&gt;
As previously stated articles should be written to be descriptive. Personal words like &amp;quot;you&amp;quot;, &amp;quot;me&amp;quot;, &amp;quot;your&amp;quot;, etc.. should not be used, as the wiki is not a conversation. If part of the article is a description of steps of action, then they should simply be described as the action taken, not the actions of the specific user.  The various talk namespaces are of course exempt from this rule.&lt;br /&gt;
&lt;br /&gt;
== Content Disputes ==&lt;br /&gt;
As the wiki is user edited, conflicts and edits in the contents or articles can and will occur. When an article is changed, the previous author should read the changes and attempt to understand them before taking any action. Users changing articles should leave descriptive comments with the change indicating why they changed the article. Be civil. If a previous author disputes the changes, they should attempt to work out an amicable solution on the talk page of the article. Stay cool when the editing gets hot; find consensus. The revert function should not be used in haste; it is primarily intended to assist with article vandalism, or when a change blatantly disregards this policy. Users that are unable to work out acceptable content for an article should contact the Project Administrators and be prepared to explain the issue and how the desired content will follow this policy.&lt;br /&gt;
&lt;br /&gt;
==Page History==&lt;br /&gt;
Please [[BZFlagWiki:Be_bold|&#039;&#039;&#039;Be Bold&#039;&#039;&#039;]] when editing, moving and creating articles. This is how a wiki grows and do not worry about messing up. All prior versions of articles are kept, so there is no way that you can accidentally damage the BZFlag Wiki or irretrievably destroy content. But remember — whatever you write here will be preserved for posterity.&lt;br /&gt;
&lt;br /&gt;
[[Category:BZFlagWiki Policy]]&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=User:Javawizard2539&amp;diff=6577</id>
		<title>User:Javawizard2539</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=User:Javawizard2539&amp;diff=6577"/>
		<updated>2009-07-29T21:26:46Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;ve been playing BZFlag since something like early &#039;07. My primary programming language is Java. I also program in C++. My nickname on Freenode IRC is usually jcp, although I sometimes use javawizard2539 there too, and my username on the forums and while playing bzflag is javawizard2539. If you need to contact me, probably the best way is to pm me on the forums, or contact me via IRC.&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=User:Javawizard2539&amp;diff=6576</id>
		<title>User:Javawizard2539</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=User:Javawizard2539&amp;diff=6576"/>
		<updated>2009-07-29T21:26:21Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;ve been playing BZFlag since something like early &#039;07. My primary programming language is Java. I also program in C++. My nickname on IRC is usually jcp, although I sometimes use javawizard2539 there too, and my username on the forums and while playing bzflag is javawizard2539. If you need to contact me, probably the best way is to pm me on the forums.&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=User:Javawizard2539&amp;diff=6569</id>
		<title>User:Javawizard2539</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=User:Javawizard2539&amp;diff=6569"/>
		<updated>2009-07-25T07:56:33Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;ve been playing BZFlag since something like early &#039;07. My primary programming language is Java. I also program in C++. My nickname on IRC is usually jcp, although I sometimes use javawizard2539 there too, and my username on the forums and while playing bzflag is javawizard2539. If you need to contact me, probably the best way is to send me an email at javawizard at trivergia dot com, or you can also send me a PM on the forums or catch me online at the [[BZFlag on IRC|BZFlag IRC Channels]].&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5561</id>
		<title>Template:Apicall/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5561"/>
		<updated>2009-03-14T03:41:10Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: I think I&amp;#039;ve pretty much updated the documentation to reflect what I changed. Now I just need to get around to documenting all of the Template:apicall subpages...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This template can be used for bzfs api call documentation pages. It contains fields for the parameters of the api call, it&#039;s return type (if any), a description for it, and some other api calls that can be referenced. The template supports up to 10 api call parameters, although support for more can be added by editing this template.&lt;br /&gt;
&lt;br /&gt;
The template also includes a link at the bottom to the list of api functions, unless the parameter nopagelink is present (with any value). For simplicity, nopagelink has been set on all of the templates in this document, except for the last one.&lt;br /&gt;
&lt;br /&gt;
To use the template, you must include at least a name parameter, and preferably a description. For example, a call that takes no arguments and returns nothing, and that doesn&#039;t have a desctiption, could be declared like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
If we wanted a description for our call, we could do something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
Now let&#039;s say that our function takes some parameters. We can add those like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
We can also add documentation on the function&#039;s return value. This can be done like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returntype       = bz_APIString&lt;br /&gt;
| returns          = A string that means absolutely nothing. It might contain lang (depending on who implements the actual function), so make sure to censor it before using it anywhere.&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which results in this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returntype       = bz_APIString&lt;br /&gt;
| returns          = A string that means absolutely nothing. It might contain lang (depending on who implements the actual function), so make sure to censor it before using it anywhere.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5560</id>
		<title>Template:Apicall/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5560"/>
		<updated>2009-03-14T03:30:59Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;This documentation needs to be updated, due to some changes I&#039;ve made in the template.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template can be used for bzfs api call documentation pages. It contains fields for the parameters of the api call, it&#039;s return type (if any), a description for it, and some other api calls that can be referenced. The template supports up to 10 api call parameters, although support for more can be added by editing this template.&lt;br /&gt;
&lt;br /&gt;
The template also includes a link at the bottom to the list of api functions, unless the parameter nopagelink is present (with any value). For simplicity, nopagelink has been set on all of the templates in this document, except for the last one.&lt;br /&gt;
&lt;br /&gt;
To use the template, you must include at least a name parameter, and preferably a description. For example, a call that takes no arguments and returns nothing, and that doesn&#039;t have a desctiption, could be declared like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
If we wanted a description for our call, we could do something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
Now let&#039;s say that our function takes some parameters. We can add those like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
We can also add documentation on the function&#039;s return value. This can be done like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returntype       = bz_APIString&lt;br /&gt;
| returns          = A string that means absolutely nothing. It might contain lang (depending on who implements the actual function), so make sure to censor it before using it anywhere.&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which results in this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returntype       = bz_APIString&lt;br /&gt;
| returns          = A string that means absolutely nothing. It might contain lang (depending on who implements the actual function), so make sure to censor it before using it anywhere.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5559</id>
		<title>Template:Apicall/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5559"/>
		<updated>2009-03-14T03:30:02Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: Updated the documentation to add the return type, which was omitted by mistake&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;This documentation needs to be updated, due to some changes I&#039;ve made in the template.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template can be used for bzfs api call documentation pages. It contains fields for the parameters of the api call, it&#039;s return type (if any), a description for it, and some other api calls that can be referenced. The template supports up to 10 api call parameters, although support for more can be added by editing this template.&lt;br /&gt;
&lt;br /&gt;
The template also includes a link at the bottom to the list of api functions, unless the parameter nopagelink is present (with any value). For simplicity, nopagelink has been set on all of the templates in this document, except for the last one.&lt;br /&gt;
&lt;br /&gt;
To use the template, you must include at least a name parameter, and preferably a description. For example, a call that takes no arguments and returns nothing, and that doesn&#039;t have a desctiption, could be declared like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
If we wanted a description for our call, we could do something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
Now let&#039;s say that our function takes some parameters. We can add those like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
We can also add documentation on the function&#039;s return value. This can be done like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returntype       = bz_APIString&lt;br /&gt;
| returns          = A number that means absolutely nothing. It might be 0, or it might be 1, or it might be something else.&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which results in this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returntype       = bz_APIString&lt;br /&gt;
| returns          = A string that means absolutely nothing. It might contain lang (depending on who implements the actual function), so make sure to censor it before using it anywhere.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall&amp;diff=5558</id>
		<title>Template:Apicall</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall&amp;diff=5558"/>
		<updated>2009-03-14T03:24:47Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;tt&amp;gt;{{#if:{{{returns|}}}|{{apicall/typelink|{{{returntype}}}}}|void}} {{{name}}} ({{apicall/ifsigparam|{{{param1type|}}}|{{{param1|}}}}}{{apicall/ifnsigparam|{{{param2type|}}}|{{{param2|}}}}}{{apicall/ifnsigparam|{{{param3type|}}}|{{{param3|}}}}}{{apicall/ifnsigparam|{{{param4type|}}}|{{{param4|}}}}}{{apicall/ifnsigparam|{{{param5type|}}}|{{{param5|}}}}}{{apicall/ifnsigparam|{{{param6type|}}}|{{{param6|}}}}}{{apicall/ifnsigparam|{{{param7type|}}}|{{{param7|}}}}}{{apicall/ifnsigparam|{{{param8type|}}}|{{{param8|}}}}}{{apicall/ifnsigparam|{{{param9type|}}}|{{{param9|}}}}}{{apicall/ifnsigparam|{{{param10type|}}}|{{{param10|}}}}})&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 30px solid white; border-top: 1px solid white&amp;quot;&amp;gt;&lt;br /&gt;
{{#if:{{{version|}}}|&amp;lt;b&amp;gt;Minimum API Version:&amp;lt;/b&amp;gt; {{{version|}}} &amp;lt;br&amp;gt;}}&lt;br /&gt;
{{{description|&amp;lt;i&amp;gt;No description&amp;lt;/i&amp;gt;}}}&lt;br /&gt;
{{#if:{{{param1|}}}{{{param2|}}}{{{param3|}}}{{{param4|}}}{{{param5|}}}{{{param6|}}}{{{param7|}}}{{{param8|}}}{{{param9|}}}{{{param10|}}}{{{param11|}}}{{{param12|}}}{{{param13|}}}{{{param14|}}}{{{param15|}}}{{{param16|}}}{{{param17|}}}{{{param18|}}}{{{param19|}}}{{{param20|}}}|&amp;lt;div style=&amp;quot;border-top: 4px solid white; border-bottom: 3px solid white&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Parameters: &amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;}}&lt;br /&gt;
{{apicall/ifparam|{{{param1|}}}|{{{param1desc|}}}}}{{apicall/ifparam|{{{param2|}}}|{{{param2desc|}}}}}{{apicall/ifparam|{{{param3|}}}|{{{param3desc|}}}}}{{apicall/ifparam|{{{param4|}}}|{{{param4desc|}}}}}{{apicall/ifparam|{{{param5|}}}|{{{param5desc|}}}}}{{apicall/ifparam|{{{param6|}}}|{{{param6desc|}}}}}{{apicall/ifparam|{{{param7|}}}|{{{param7desc|}}}}}{{apicall/ifparam|{{{param8|}}}|{{{param8desc|}}}}}{{apicall/ifparam|{{{param9|}}}|{{{param9desc|}}}}}{{apicall/ifparam|{{{param10|}}}|{{{param10desc|}}}}}{{apicall/ifparam|{{{param11|}}}|{{{param11desc|}}}}}{{apicall/ifparam|{{{param12|}}}|{{{param12desc|}}}}}{{apicall/ifparam|{{{param13|}}}|{{{param13desc|}}}}}{{apicall/ifparam|{{{param14|}}}|{{{param14desc|}}}}}{{apicall/ifparam|{{{param15|}}}|{{{param15desc|}}}}}{{apicall/ifparam|{{{param16|}}}|{{{param16desc|}}}}}{{apicall/ifparam|{{{param17|}}}|{{{param17desc|}}}}}{{apicall/ifparam|{{{param18|}}}|{{{param18desc|}}}}}{{apicall/ifparam|{{{param19|}}}|{{{param19desc|}}}}}{{apicall/ifparam|{{{param20|}}}|{{{param20desc|}}}}}{{#if:{{{returns|}}}|&amp;lt;div style=&amp;quot;border-top: 4px solid white&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Returns: &amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;border-left: 30px solid white; border-top: 4px solid white&amp;quot;&amp;gt;{{{returns}}}&amp;lt;/div&amp;gt;&amp;lt;br/&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br/&amp;gt;{{#ifeq:{{{nopagelink|_NOT_HERE_}}}|_NOT_HERE_|[[Functions(API)|Function List]]}}&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:BZFS API Functions]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=User:Javawizard2539&amp;diff=5536</id>
		<title>User:Javawizard2539</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=User:Javawizard2539&amp;diff=5536"/>
		<updated>2009-03-02T04:28:57Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: Creative, it really is getting reported by CIA. Reverted my user page back to the way it was before.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;ve been playing BZFlag since something like early &#039;07. My primary programming language is Java. I also program in C++. My nickname on IRC is javawizard2539, and my username on the forums and while playing bzflag is... go figure. I&#039;m involved in 2 projects on Sourceforge, BZFlag and [http://sf.net/projects/OpenGroove OpenGroove], a project I recently started that is still WAY early in development. If you need to contact me, probably the best way is to send me an email at javawizard&amp;lt;!--intended to discourage harvesting --&amp;gt;@&amp;lt;!--intended to discourage harvesting --&amp;gt;trivergia&amp;lt;!--intended to discourage harvesting --&amp;gt;.&amp;lt;!--intended to discourage harvesting --&amp;gt;com , or you can also send me a PM on the forums or catch me online at the [[BZFlag on IRC|BZFlag IRC Channels]].&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=User:Javawizard2539&amp;diff=5535</id>
		<title>User:Javawizard2539</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=User:Javawizard2539&amp;diff=5535"/>
		<updated>2009-03-02T04:28:02Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: Added something to my user page...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;ve been playing BZFlag since something like early &#039;07. My primary programming language is Java. I also program in C++. My nickname on IRC is javawizard2539, and my username on the forums and while playing bzflag is... go figure. I&#039;m involved in 2 projects on Sourceforge, BZFlag and [http://sf.net/projects/OpenGroove OpenGroove], a project I recently started that is still WAY early in development. If you need to contact me, probably the best way is to send me an email at javawizard&amp;lt;!--intended to discourage harvesting --&amp;gt;@&amp;lt;!--intended to discourage harvesting --&amp;gt;trivergia&amp;lt;!--intended to discourage harvesting --&amp;gt;.&amp;lt;!--intended to discourage harvesting --&amp;gt;com , or you can also send me a PM on the forums or catch me online at the [[BZFlag on IRC|BZFlag IRC Channels]].&lt;br /&gt;
&lt;br /&gt;
Testing, testing, 1, 2, 3...&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Known_Cheats&amp;diff=5530</id>
		<title>Known Cheats</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Known_Cheats&amp;diff=5530"/>
		<updated>2009-02-21T17:57:54Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: /* Blatant Cheats */ Added the cheat that allows speaking as another player (but not how it&amp;#039;s done, for obvious reasons)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cheats performed on BZFlag are usually made by modifying your client. A great deal of power is invested in the client program, and therefore the client may cheat in every way from creating invincible tanks, to invisibility, to super killing. If you have seen any cheats, have performed them yourself, or have noticed a hole in the source, please add it here. Preventions for many of these cheats are being developed for inclusion in [[BZFlag 3.0|v3.0]].&lt;br /&gt;
&lt;br /&gt;
== Warning ==&lt;br /&gt;
Do not use a modified client on a public server. If you are found to be using a cheat client, you will likely be banned from multiple servers and could quickly find yourself with nowhere to play.  Cheating in BZflag is not the same as using a cheat code in a PlayStation game. See also the &#039;&#039;Notes on &amp;quot;CHEAT&amp;quot; servers&#039;&#039; at the bottom of the [[BZFlag_README | README]], which forbid the hosting of a &amp;quot;cheat&amp;quot; server. A copy of the README is included with the source code and is displayed when you install a pre-compiled copy of the game.&lt;br /&gt;
&lt;br /&gt;
== Blatant Cheats ==&lt;br /&gt;
The following cheats are considered &amp;quot;blatant&amp;quot; cheats because they are usually apparent, even to new players. &lt;br /&gt;
&lt;br /&gt;
NOTE: Some of these cheats may be prevented or already fixed in certain versions of BZFlag.&lt;br /&gt;
&lt;br /&gt;
A cheater may:&lt;br /&gt;
* fly without Wings.&lt;br /&gt;
* steal from or give flags to other players.&lt;br /&gt;
* give flags to observers.&lt;br /&gt;
* rapidly pickup and drop every flag on the map, as if a flag reset were performed.&lt;br /&gt;
* spawn with a flag (usually Guided Missile or Genocide, but can be anything).&lt;br /&gt;
* be immune to the effects of bad flags.&lt;br /&gt;
* grab a new flag when passing through a teleporter (when no flag exists).&lt;br /&gt;
* move, pickup flags, or shoot other tanks while paused.&lt;br /&gt;
* move through buildings without Oscillation Overthruster (&amp;quot;wall walking&amp;quot;).&lt;br /&gt;
* move backwards through buildings with the Oscillation Overthruster.&lt;br /&gt;
* drive outside of the playing area.&lt;br /&gt;
* jump back briefly to avoid a bullet then return to where you were (&amp;quot;network jitter&amp;quot;).&lt;br /&gt;
* double jump.&lt;br /&gt;
* move vertically on a map very quickly or higher than settings would normally allow.&lt;br /&gt;
* instantaneous travel to a new location.&lt;br /&gt;
* jump and land at a pre-determined set of coordinates (i.e. the center of a team pad).&lt;br /&gt;
* shoot teammates without blowing them up.&lt;br /&gt;
* shoot bullets that travel at a different rate (usually faster).&lt;br /&gt;
* shoot bullets that travel at impossible linear paths (i.e. downwards, sideways).&lt;br /&gt;
* shoot bullets from any side of their tank.&lt;br /&gt;
* fire multiple shots simultaneously, often in spreads &amp;amp; separate impossible paths.&lt;br /&gt;
* shoot bullets which cannot be seen on radar or in the HUD.&lt;br /&gt;
* cause himself to be shot by any other player, even if no shots were fired or the player hasn&#039;t spawned (AKA &amp;quot;TK Cheat&amp;quot;).&lt;br /&gt;
* cause another player to shoot the cheater, even if no shots were fired.&lt;br /&gt;
* produce abnormally long laser blasts (in terms of length and time).&lt;br /&gt;
* be zoned, but yet still shoot tanks that are not zoned.&lt;br /&gt;
* become instantly unzoned.&lt;br /&gt;
* not lose flags when paused.&lt;br /&gt;
* cause the bullets of other tanks to explode prematurely.&lt;br /&gt;
* lock onto stealthed players while using Guided Missile.&lt;br /&gt;
* produce abnormally large, small, or frequent shockwave blasts.&lt;br /&gt;
* produce shockwaves at several locations simultaneously.&lt;br /&gt;
* respond differently to gravity.&lt;br /&gt;
* move at a different rate (usually faster).&lt;br /&gt;
* instantly self-destruct.&lt;br /&gt;
* be completely invincible to shots (&amp;quot;god mode&amp;quot;).&lt;br /&gt;
* be invincible while on auto-pilot.&lt;br /&gt;
* be partially invincible, repelling everything but some particular flags (often SW or SR are chosen).&lt;br /&gt;
* instantly kill everyone else.&lt;br /&gt;
* spawn without delay or very rapid respawns (Has been fixed in 2.0.11).&lt;br /&gt;
* be joined as an observer, but playing with a visible, invincible tank&lt;br /&gt;
* be able to strafe or slide left or right&lt;br /&gt;
* send chat messages that appear to have come from another player&lt;br /&gt;
&lt;br /&gt;
== Subtle Cheats ==&lt;br /&gt;
&#039;&#039;&#039;Subtle cheats&#039;&#039;&#039; are modifications to the BZFlag client that give the user an unfair advantage.  Unlike the obvious &amp;quot;blatant&amp;quot; cheats, these modifications are often difficult to detect by other players.  These modifications often involve small changes to existing source code, and will make their users appear luckier, more intuitive, or more accurate shooters, giving them a slight edge.&lt;br /&gt;
&lt;br /&gt;
Some of these cheats may be detected by examining long-term player statistics. For example, if a specific player picks up a certain superflag 80% of the time over an extended period, on a map where flag positions are completely randomized, then there is strong reason to suspect the player of using a flag identification cheat. &lt;br /&gt;
&lt;br /&gt;
The following is a list of known subtle cheats:&lt;br /&gt;
&lt;br /&gt;
[[Image:Bzfi0002.png|thumb|A screenshot taken on a typical cheat client. Various modifications and enhancements are visible.]]&lt;br /&gt;
[[Image:Coo.png|thumb|A screenshot taken on cheat client.]]&lt;br /&gt;
&lt;br /&gt;
;FlagColoring&lt;br /&gt;
:Flags are given unique colors (or some other identifying feature - colors are simplest). This can be applied to some, or all flags. For example, bad flags are brown, Shock Wave is cyan, Stealth is orange, Guided Missile is pink, etc. This allows the user to avoid bad flags, spot good flags from across the map, and tell what flags other players are carrying or picking up much more easily.&lt;br /&gt;
&lt;br /&gt;
;RadarPath&lt;br /&gt;
:The player can see bullet trajectories at an extended length, making shots easier to avoid, or aiding with targeting. The latter function is used mostly on ricochet maps.&lt;br /&gt;
&lt;br /&gt;
;StealthDetect&lt;br /&gt;
:The player can see stealthed tanks on the radar. Often times the cheater&#039;s client will flash the stealthed tank on the cheater&#039;s radar. This allows a cheater to know that he shouldn&#039;t be able to know that tanks position and allow him to &amp;quot;play dumb&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
;CloakDetect&lt;br /&gt;
:The player can see cloaked tanks on the field. Often times the cheater&#039;s client will show cloaked tanks as zoned tanks (as if holding the PZ flag).&lt;br /&gt;
&lt;br /&gt;
;DisableBadFlags&lt;br /&gt;
:Bad flags whose effects are invisible to other players are disabled from affecting the tank.&lt;br /&gt;
&lt;br /&gt;
;NoGenocide&lt;br /&gt;
:A teammate is  impervious to Genocide.&lt;br /&gt;
&lt;br /&gt;
;FunnyBullet&lt;br /&gt;
:Various cheats that affect the manner in which bullets are fired are possible. The simplest is to increase bullet velocity.  Other cheats include launching multiple bullets in different directions and giving bullets a vertical slope. Many of these cheats are less subtle, and discussed above.&lt;br /&gt;
&lt;br /&gt;
;SkinnyTank&lt;br /&gt;
:Normally, if your aim is a little bit off, you can still kill a tank. When this cheat is in effect, other players have to aim more accurately to kill the user.&lt;br /&gt;
&lt;br /&gt;
;ImprovedConsole&lt;br /&gt;
:The player&#039;s console provides more information than is normal. It&#039;s debatable whether this should be considered a cheat or not, but players with better consoles will have a slight advantage.&lt;br /&gt;
&lt;br /&gt;
;GuidedMissileWontUnlock&lt;br /&gt;
:When the user is killed, his guided missiles remain locked on their targets. This is harder to detect than a Guided Missile being able to lock onto stealthed players, which is discussed above.&lt;br /&gt;
&lt;br /&gt;
[[Image:Bzfi0001.png|thumb|A hacked client equipped with the ProgressiveIdentify cheat. One flag has been identified so far.]]&lt;br /&gt;
&lt;br /&gt;
;BulletFreeZone&lt;br /&gt;
:Any player in the game can cause anyone else&#039;s bullets to explode prematurely (if their client is hacked). Here are a few possible effects:&lt;br /&gt;
:# A victim (or victims) will not be able to fire his weapon (bullets will explode shortly after leaving the muzzle). Others can&#039;t tell who is causing this.&lt;br /&gt;
:# Bullets will explode before hitting a cheater, as if the cheater has a forcefield.&lt;br /&gt;
:# Bullets will explode before hitting a &amp;quot;victim&amp;quot; who is not the cheater, creating the impression that the victim has a forcefield and is cheating. Or the cheater could create the impression that a whole group of tanks are cheating.&lt;br /&gt;
:# Bullets will not be allowed to enter a &amp;quot;bullet-free zone&amp;quot; (such as a building or platform). &lt;br /&gt;
&lt;br /&gt;
;TinyCloak&lt;br /&gt;
:The cheater&#039;s tank is modified to be smaller and harder to hit, but only when carrying the Cloaking flag.  Making a tank this hard to hit would be a blatant cheat if the tank wasn&#039;t cloaked.&lt;br /&gt;
&lt;br /&gt;
;ProgressiveIdentify&lt;br /&gt;
:A variation of the FlagColoring cheat. The client holds the identity of each flag in memory whenever it is picked up by any player and displays the flag type on the cheater&#039;s HUD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition to the above subtle cheats, a cheater may:&lt;br /&gt;
* have a wider than normal field of vision (e.g. 120 degrees)&lt;br /&gt;
* have Guided Missles modified to not lock onto team mates&lt;br /&gt;
* modify the turn rate of his Guided Missles&lt;br /&gt;
* modify the way his targets are selected for Guided Missle lock&lt;br /&gt;
* have an indicator showing when an opponent is in reloading mode&lt;br /&gt;
* modify his client string&lt;br /&gt;
* automatically self-destruct if a geno bullet comes too close to him&lt;br /&gt;
* see the screen and radar when paused&lt;br /&gt;
* be able to see who locked on them with a Guided Missle&lt;br /&gt;
* have radar or different radar settings independent of server radar settings&lt;br /&gt;
* have lines on the radar showing which way each tank is facing &lt;br /&gt;
* see burrowed tanks as regular tanks on the radar&lt;br /&gt;
* have no limits imposed upon the radar &amp;quot;/set _radarLimit 0 or Burrow do not affect the radar&amp;quot;&lt;br /&gt;
* have shots by a zoned tank not show up on radar&lt;br /&gt;
* make slight turns when falling&lt;br /&gt;
* have different binocular zoom settings&lt;br /&gt;
* fire with no delay after stealing a flag with thief&lt;br /&gt;
* have an indicator showing how many wing jumps are left&lt;br /&gt;
* see invisible bullets on radar&lt;br /&gt;
* see opponent&#039;s team color despite opponent having masquerade flaga&lt;br /&gt;
* have an auto-aiming ability that lines up on other tanks to fire upon&lt;br /&gt;
* be able to enable auto-pilot on non-auto-pilot maps&lt;br /&gt;
* be able to enable/disable/enable auto-pilot without delay&lt;br /&gt;
* be able to enable auto-pilot without notifying the server/other players&lt;br /&gt;
&lt;br /&gt;
== Other Malicious Activities ==&lt;br /&gt;
The following is a list of malicious activities that cheaters might also engage in:&lt;br /&gt;
&lt;br /&gt;
* attempt to guess or &amp;quot;crack&amp;quot; the server or map&#039;s password.&lt;br /&gt;
* the use of &amp;quot;Bots&amp;quot; or &amp;quot;Drones&amp;quot; to lag a server by sending large amounts of data or using client commands rapidly&lt;br /&gt;
* the use of &amp;quot;Bots&amp;quot; or &amp;quot;Drones&amp;quot; to deny a poll or create and complete a poll in the favor of the cheater&lt;br /&gt;
&lt;br /&gt;
[[Category:Gameplay]]&lt;br /&gt;
[[Category:Server]]&lt;br /&gt;
[[Category:Server Security]]&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Flag_ideas&amp;diff=5305</id>
		<title>Flag ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Flag_ideas&amp;diff=5305"/>
		<updated>2009-01-03T02:25:02Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Some simple guidelines ==&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;color:#cc0000&amp;quot;&amp;gt;READ THIS FIRST&amp;lt;/span&amp;gt; ===&lt;br /&gt;
* First, check that your idea isn&#039;t already here.  Also check the [[Flag ideas/Rejected|flag ideas already rejected]] page to see if your idea has already been considered and dismissed. The chances are that someone else has already come up with your flag.&lt;br /&gt;
* Next, think carefully about your flag. Come up with a short and succinct description. Not only will a short description will make it easier for the project management team to make a decision about the flag, but it usually also indicates the quality of the idea. Chances are if a flag requires more than a short sentence or two, it&#039;s too complicated for the game.&lt;br /&gt;
* Make sure your flag idea isn&#039;t overpowered or stupid.&lt;br /&gt;
* Finally, add your flag to the &#039;&#039;&#039;top&#039;&#039;&#039; of the section with the blank &#039;status&#039; field. Use the teal background color and leave the status blank!&lt;br /&gt;
* Note that  your flag approved to a &amp;amp;quot;yes&amp;amp;quot; does not mean it will happen. Everything done is what the developers want to do - if a flag requires significant changes to the codebase and isn&#039;t the most brilliant idea ever, it&#039;ll probably sit here for quite some time before being implemented, if ever.&lt;br /&gt;
&lt;br /&gt;
This is NOT a list of flags that are being considered. Discussion/implementation of these is encouraged, but does not mean any of these flags are going into the game.&lt;br /&gt;
&lt;br /&gt;
If you do implement a flag keep these things in mind:&lt;br /&gt;
* All powerful flags aren&#039;t fun.&lt;br /&gt;
* Flags that ensure your immediate destruction aren&#039;t fun.&lt;br /&gt;
* Flags that aren&#039;t useful aren&#039;t fun.&lt;br /&gt;
* Flags boost/modulate tactical trait of tanks&lt;br /&gt;
&lt;br /&gt;
Based on these observations we have the following rules:&lt;br /&gt;
&lt;br /&gt;
;Flag power must be limited&lt;br /&gt;
:For example, BZFlag has stealth and cloaking flags, but no stealth-and-cloak flag. Such a tank would be virtually impossible to destroy. Nobody likes to play against someone who can&#039;t lose.&lt;br /&gt;
The guided missile and laser flags are both exceptionally powerful flags, but neither make the owner invincible. Laser takes twice as long to reload and a guided missile can be dodged while still firing on the owner. You&#039;ve got to be good, but it can be done!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Flag powers can counteract/balance each other.&lt;br /&gt;
:Some flags are handily defeated with another kind of flag. The oscillation overthruster can be destroyed by a super bullet or a shock wave (or a genocide). Cloaking is effective against laser and stealth is good against guided missile. Ricochet is useful against ricochet.&lt;br /&gt;
:Consider adding counterbalancing flags together. Or consider adding a flag that acts as a counterbalance to an existing flag or flags. Also consider making your new flag counterbalanced by an existing flag; superbullet is often a good choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Don&#039;t add flags that (almost) instantly kill the owner.&lt;br /&gt;
:I considered adding a Death flag that would instantly kill the tank that grabbed it. I changed my mind because that&#039;s not fun and seriously dampens interest in picking up flags. Mines are similar. You&#039;re driving around and *boom* you&#039;re dead. Nothing you could&#039;ve done to avoid it, no mistake you made. You&#039;re just dead. People don&#039;t mind losing so much if they know it was because they did something wrong.&lt;br /&gt;
:Even worse is a flag that disables your radar and vision. You&#039;re basically dead. You can shoot at random and hope to get lucky, but no amount of skill can save you. And what&#039;s worse than the Death flag is that you have to stagger around waiting for someone to kill you.&lt;br /&gt;
:A flag that seriously disables a tank is not as bad because the player can still use skill to defeat as many enemies as possible before getting shot. Thus we have flags like left turn only and obesity.&lt;br /&gt;
&lt;br /&gt;
;Flags should require new skills&lt;br /&gt;
:Flags that require new skills keep the game interesting. If there&#039;s still more to learn about using ricochet or guided missile, or more to learn about fighting against them, then people will keep playing.&lt;br /&gt;
:Some flags seem pretty dull to some players. The steamroller and the phantom zone come to mind, or quick turn. These aren&#039;t the most powerful flags, but they do have their uses and some people enjoy them. However, I think I should have removed SR and PZ. Steamroller&#039;s usefulness is very limited and looks pretty weak compared to shock wave. PZ tends to encourage very defensive play, which slows the game down. But quick turn can be very effective when used well; put it in a tight furball and it&#039;ll do serious damage. You just have to learn how to take full advantage of it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== List of suggested flags: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+align=&amp;quot;bottom&amp;quot; style=&amp;quot;color:#e76700;&amp;quot;|&#039;&#039;Legend&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#5BFAFA;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|To be Approved&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#a14141;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Approved as a not bad idea, but needs research&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Rejected&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#41a141;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Claimed (Implementing)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#4141a1;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|SVN (Implemented, and going to be in the release)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:transparent;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Maybe but there are issues&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#ffff88;&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!+/-&lt;br /&gt;
!Status&lt;br /&gt;
!Use&lt;br /&gt;
|-&lt;br /&gt;
|Omega Flag (OF)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Not really fair to those without the flag, and technical aspects of BZFlag don&#039;t allow flags to spawn out-of-bounds&#039;&#039;&lt;br /&gt;
|In game description: Flag with vast power that only spawns out-of-bounds.&lt;br /&gt;
&lt;br /&gt;
Development description: Combines the effects of Wings, Ricochet, Guided Missile, Tiny, Laser, Super Bullet, Rapid Fire, Stealth, Cloaking, Oscillation Overthruster, Phantom Zone, Shield, Low Gravity, Mass Driver, Seer, Shock Wave, and Invisible Bullet. Meaning, it makes you undetectable save for Seer and effects, only drops the flag when you&#039;re shot, lets you rapidly fire a guided laser that goes through walls, ricochets off the outside wall, is invisible on radar and creates a shock wave where it hits, and lets you see through other disguises. However, this omega doomsday flag only spawns out-of-bounds by default, unless the server is configured to spawn it in a certain location (past an army of server-side bots, perhaps?) so it is only available to those capable of the /flag command or getting through whatever guards it. I know this flag is WAY overpowered, but that&#039;s the point.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Another Dimension (AD)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Confusing, especially for new players; just kill the player.&#039;&#039;&lt;br /&gt;
|In game description: Lock on with right click, and hit to send target to another dimension.&lt;br /&gt;
&lt;br /&gt;
Development description: The projectile looks like a normal shot, but it&#039;s guided, goes through walls and has infinite range. One shot only. If it hits (it can be blocked with the outside wall) it will teleport the target to a maze world map that is installed to the hard drive with the client. (Score is not affected by this flag.) This sub-map is very large, but can be exited by entering a teleporter, dying, or leaving. The point at which the target enters the maze is random, and perhaps the positions of the teleporters out are variable also.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|No Vertical velocity (NV)&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color:#5BFAFA;&amp;quot;| &#039;&#039; &#039;&#039;&lt;br /&gt;
|Shots will not keep Vertical Velocity.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Ammo (AM)&lt;br /&gt;
| +&lt;br /&gt;
| style=&amp;quot;background-color:#5BFAFA;&amp;quot;| &#039;&#039; &#039;&#039;&lt;br /&gt;
|You will gain 1 shot for every 4 shots you have. You start with one shot gained.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Vertical Velocity (VV)&lt;br /&gt;
| +&lt;br /&gt;
| style=&amp;quot;background-color:#5BFAFA;&amp;quot;| &#039;&#039; &#039;&#039;&lt;br /&gt;
|Your shots will keep vertical velocity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|No Ricochet (NR)&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color:#5BFAFA;&amp;quot;| &#039;&#039; &#039;&#039;&lt;br /&gt;
|Your shots don&#039;t bounce off objects that they would normally bounce off of.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Low Jump&lt;br /&gt;
| +/-&lt;br /&gt;
| style=&amp;quot;background-color:#5BFAFA;&amp;quot;| &#039;&#039; &#039;&#039;&lt;br /&gt;
|Tank won&#039;t jump to full height.  Blessing and a curse; less time in the air is good in combat but tank can&#039;t reach areas designed for normal jumps.&lt;br /&gt;
|-&lt;br /&gt;
|Long Range (LR)&lt;br /&gt;
| +&lt;br /&gt;
| style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|If your bullets hit tanks within a short distance, they do not kill, but can kill at a long distance 2x the server-set distance&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Punch Bullet (PB)&lt;br /&gt;
| +&lt;br /&gt;
| style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|If your bullets hit tanks they are thrown some distance away in the direction of the bullet&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|Subtle Tankochet (SA)&lt;br /&gt;
| +&lt;br /&gt;
| style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Like Tankochet flag below (bullets bounce off you) but for every bullet that bounces off you you lose a point and you die when you drop the flag (if you have been shot already)&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|Bouncy Tank (BT)&lt;br /&gt;
| +&lt;br /&gt;
| style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description:  Your tank bounces off of walls! &lt;br /&gt;
Description here: When you touch a wall or building, your tank will bounce off of it. This could make it easier to dodge. The server could possibly decide how much you bounce, or the angle and speed at which you hit the wall or building. --Data&lt;br /&gt;
|-&lt;br /&gt;
|Disable (DA)&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description:  Shots travel faster and further, but only temporarily disables targets.&lt;br /&gt;
Description here: Increased reload speed (say, same as Rapid Fire) and perhaps also increased range (devs should determine best balance); shots have a different colour (much darker, or maybe even an &amp;quot;electric charge&amp;quot; crackle). On the other hand, hits don&#039;t actually kill, but only disables the target for some seconds (perhaps by server variable). Useful to freeze groups of enemies for instance during base invasion, but requires other team mates to actually finish the job. Shooting a disabled tank works as normal (that is, the shooter gets the point and the Disable-carrying tank gets nothing). /KlaymenDK&lt;br /&gt;
|-&lt;br /&gt;
|No Shooting (NS)&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description:  Can&#039;t shoot. Stay out of trouble!&lt;br /&gt;
Description here: Pretty much as it says in the in-game description. You can&#039;t shoot. How you would be able to get rid of it in those &amp;quot;kill to get rid of bad flag&amp;quot; servers I&#039;m not entirely sure.&lt;br /&gt;
|-&lt;br /&gt;
|Short Shot (SS)&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Shots don&#039;t go as far. Stay in the fray!&lt;br /&gt;
Description here: Not as limited as the No Shooting flag, this shortens how far your shots go before dissipating. Speed stays the same.&lt;br /&gt;
|-&lt;br /&gt;
|Long Shot (LS)&lt;br /&gt;
| +&lt;br /&gt;
| style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Shots go farther. Snipe from a distance!&lt;br /&gt;
Description here: The inverse of the Short Shot flag, your shot speed will stay the same but it&#039;ll remain on the field longer.&lt;br /&gt;
|-&lt;br /&gt;
|AfterBurner (AB)&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
Rocket Jam (RJ)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Tank can&#039;t stop going forwards at high speed. Don&#039;t hesitate!&lt;br /&gt;
&lt;br /&gt;
Description here: On pickup (or perhaps after first forward movement) tank instantly starts going forwards (only, no reverse) at high-speed (or faster?). Left/Right turning is still normal. (Perhaps reduced turning circle?)&lt;br /&gt;
&lt;br /&gt;
Makes it easy to crash into walls. Getting stuck in a corner will make you an easy target. However, an alert player could probably hold out with this for long enough to make it quite fun.&lt;br /&gt;
|-&lt;br /&gt;
|Temporary Shield (TS)&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description:  Trigger a temporary shield. Be careful not to hold on too long!&lt;br /&gt;
Description here:  Akin to the shield on the old Atari 2600/coin-op [http://www.atariage.com/manual_html_page.html?SoftwareID=828 Asteroids] game.  &amp;quot;Fire&amp;quot; triggers shield, which remains in place until released, but enabling shield for too long (A short &amp;quot;reload&amp;quot; threshold, 2 seconds?) results in self-destruction.  Shots at shielded player could be any of: &#039;&#039;pass-through&#039;&#039;, &#039;&#039;absorb&#039;&#039;, or &#039;&#039;deflect&#039;&#039; -- although the first one is more true to the original concept.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other notes:&#039;&#039;&#039;&lt;br /&gt;
* Suggested limit of 3-5 uses per flag, although this would be set per-server.   &lt;br /&gt;
* This is an implicitly defensive flag -- there&#039;s no weaponry when using it -- but could be well suited for advancing a front in a CTF, etc.&lt;br /&gt;
|-&lt;br /&gt;
|Low Ammo (LA)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Description: You will have half of the ammo you originally had. If odd round up with maybe a little longer reload time.&lt;br /&gt;
|-&lt;br /&gt;
|Safe Thief (ST)&lt;br /&gt;
| &lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Front and rear shots.&lt;br /&gt;
&lt;br /&gt;
Description here: Shots only go go 1/4 distance of normal shot, can only be killed with thief, SW, &amp;amp; SB,  any tank that touches you dies and you get their flag, if they don&#039;t have a flag; you still drop your flag.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Front+Rear fire (FR)&lt;br /&gt;
| &lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Front and rear shots.&lt;br /&gt;
&lt;br /&gt;
Description here: Fires the default fire and additionally fires at the same time rear-shots.&lt;br /&gt;
|-&lt;br /&gt;
|No Ricochet (NR)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Shots don&#039;t ricochet.&lt;br /&gt;
&lt;br /&gt;
Description here: Like the Jamming and No Jumping flags in maps that have radar and jumping enabled by default, this flag disables the ricochet ability in maps where ricochet is normally enabled.&lt;br /&gt;
|-&lt;br /&gt;
|Long SB (LSB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Shoot through building, infinite range, long reload time&lt;br /&gt;
&lt;br /&gt;
Description here: SB-- range and speed of L, 2.5 times reload time of normal SB.&lt;br /&gt;
|-&lt;br /&gt;
|Radar (RD)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Can use radar.&lt;br /&gt;
&lt;br /&gt;
Description here: Like how in some maps that have jumping flags or ricochet flags when those things are normally disabled, in maps with radar disabled, this would give you radar ability. It would counteract the Jamming flag in normal maps.&lt;br /&gt;
|-&lt;br /&gt;
|Sticky Jump (SJ)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Stick to ceeling.&lt;br /&gt;
&lt;br /&gt;
Description here: When you jump when you are under a building, your tank &#039;sticks&#039; to the ceeling. Pressing jump again would cause you to end up on the top of the building.  When a tank is stuck to the ceelimg, it would be incincible to L; and have a form of GM that had 1/4 the range and only locked-on to targets below.&lt;br /&gt;
|-&lt;br /&gt;
|Flat (FL)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Tank is flat from sides, but normal size from front and back. Can hide against walls.&lt;br /&gt;
&lt;br /&gt;
Description here: Like Narrow but the forward-backward dimension is where you are flat instead of the left-right dimension if you understand.&lt;br /&gt;
|-&lt;br /&gt;
|Signal Decoder (SD)/Transmission Interceptor (TI)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Listen to all messages.&lt;br /&gt;
&lt;br /&gt;
Description here: Any message sent on the server, even ones to a team or individual tank, are picked up. In the case of private messages, it will appear as [SendingTank-&amp;gt;IntendedRecipient]. Also, commands show up, such as /set, /me, or /say, as well as their results. Good for detecting enemy strategies.&lt;br /&gt;
|-&lt;br /&gt;
|Carbonite Missile (CM)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Shoots a guided missile that slows down tanks near where it detonates. Can kill only with a direct hit.&lt;br /&gt;
&lt;br /&gt;
Description here: The missile is similar to the missile from GM, but it&#039;s light blue and has different variables to control its movement speed/turn speed. When it hits something or times out, it creates a light blue shockwave-looking pulse that may leave residual graphical effects in the vicinity and/or on tanks in the area. Instead of doing damage, this pulse temporarily slows down the tanks it hits; the duration of the slowdown is the same as the duration of the residual graphical effects mentioned above. The time that the tanks are slowed down, as well as the degree of the slowdown and the degree of reduction to turning capability (it can slow turning too) are all server variables. There should also be a brief time between shots, and/or an increase in reload time.&lt;br /&gt;
|-&lt;br /&gt;
|Pulse/Plasma Cannon (PC)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Fires a burst of plasma capable of shaking buildings. Can kill Phantom Zone.&lt;br /&gt;
&lt;br /&gt;
Description here: Shoots a large, wave-like shot that is bigger and slower than normal shots. Alternately, two shots spiraling around each other. Either way, it hovers in front of you for a short time before going forward, and during that time you cannot fire. If it hits a building, all tanks inside that building via OO or PZ are killed, all shots inside it (such as SB or PZ) are disintegrated, all tanks touching the sides bounce away, and all tanks on top briefly are forced to jump rapidly, like on a trampoline that has a very low jump height.&lt;br /&gt;
|-&lt;br /&gt;
|Mass Driver (MD)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Fires a fast bullet that can go through multiple targets and shields. No ricochet.&lt;br /&gt;
&lt;br /&gt;
Description here: The bullet moves about twice as fast as a normal bullet, and has 1.5x range by default, and corresponding reduction in reload time. It kills shielded tanks, and keeps going if it hits a tank to hit other tanks. However, it never ricochets.&lt;br /&gt;
&lt;br /&gt;
Possible addition: A server variable (binary/true or false/trinary) sets whether it shoots one shot from the tank&#039;s barrel, one shot alternating between left and right of the tank, or two shots from the left and right of the tank at once, in reference to the Canderous-class Assault Tank from Star Wars: Empire at War: Forces of Corruption.&lt;br /&gt;
|-&lt;br /&gt;
|Shield (SH)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Description: It&#039;s an idea for the improvement of Shield, not a new flag entirely. The idea is that if a person with Shield is hit, they are briefly invincible, and possibly flicker and/or be unable to shoot. This would really help; I remember numerous times when I was hit while equipped with Shield, and was immediately killed anyway because the other guy launched a cluster of shots.&lt;br /&gt;
|-&lt;br /&gt;
|Score Drain (SD)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Drains score continuously. Does not kill.&lt;br /&gt;
&lt;br /&gt;
Description here: Shoots a normal bullet with a line (laser sprite) between it and the user tank. When it hits someone, the line attaches to them instead. The bullet vanishes. Then score goes continuously from the tank with higher score to the one with the lower score at a speed determined by the size of the difference of the scores (the larger the difference, the faster the score drains, and obviously it slows down as time passes) as well as server variables; it stops draining when the scores are equal. The tanks have full freedom of movement, but if they get out of range of each other (&amp;quot;range&amp;quot; being the range of a standard shot), or something (either a wall or a tank) gets between them, the line will disappear and the drainage will stop. The tank firing can only have one line out at once, even if it hasn&#039;t hit something yet. The range is reduced if the firing tank moves backward or to the side; the line cannot be longer than the range of a shot.&lt;br /&gt;
|-&lt;br /&gt;
|ShotGun (SG)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Shoots a large bullet that explodes into smaller ones on contact.&lt;br /&gt;
&lt;br /&gt;
Description here: What this does is shoots a single abnormally large shot using all of your shots. It has reduced range and speed and does not ricochet. When it hits anything, it does not do damage; it releases as many bullets as you have shots; they fly in random directions and are normal range. Server variables control whether they go out in set angles or random, and if they go at random/set/no vertical angles. Note that the big shot does NOT do damage directly; it explodes on contact, but does not kill, but the target usually dies from bursts.&lt;br /&gt;
|-&lt;br /&gt;
|Basic Invulnerability (BI)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Immune to normal shots[ and shots from Rogues]. Any altered shot[ from a team] can kill. [Can&#039;t kill Rogues.]&lt;br /&gt;
&lt;br /&gt;
Description here: It&#039;s immunity to normal shots. ANY other shot, be it GM, SW, from PZ, or even RF, MG, or even ricochet in a non-ricochet map, (but not Burrow, Wings, or vertical velocity shots or similar) can kill the user. This is designed to counter non-shot flag users, non-flag users, and rogues. Some binary switch on the server makes the stuff in [] square brackets appear and immunity to rogues take effect.&lt;br /&gt;
|-&lt;br /&gt;
|Fog Shield (FS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Creates fog nearby for decreased visibility nearby and deflection of Shock Wave and Super Bullet.&lt;br /&gt;
&lt;br /&gt;
Description here: A sphere with extremely thick gray fog. If Super Bullet hits it will bounce off; if Shock Wave hits it the shock wave will cease to exist in the area or bounce off or just totally disappear. Designed as a counter for Shock Wave and Super Bullet.&lt;br /&gt;
|-&lt;br /&gt;
|Cloaking Shield (CS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Causes everything non-permanent nearby to be invisible out-the-window; still visible on radar and Phantom Zone. Blocks OO, PZ, and Laser.&lt;br /&gt;
&lt;br /&gt;
Description here: The in-game description is pretty effective. It generates a sphere of tank and shot invisibility that blocks Oscillation Overthruster, Phantom Zone, and Laser, and is specifically designed to counter Laser. The downside is the double-blindness of those in the shield; they can&#039;t see tanks or shots out-the-window. Radius defined by /set variable.&lt;br /&gt;
|-&lt;br /&gt;
|RepulsorLift (RL)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Tank floats over the ground. Immune to steamroller. Good for avoiding burrowers and climbing stairs or ramps.&lt;br /&gt;
&lt;br /&gt;
Description here: The tank will lose its treads for a wider hull, hover in the air, and appear to be constantly activating its jump thrusters. If possible, also make it so it moves up and down. Due to this, it is over the heads of those tanks that use burrow, and it can&#039;t steamroll them; it can&#039;t be shot by them either, but it may be able to shoot them with vertical velocity shots and the up-down automatic movement, and if it jumps and gets close to the ground as it lands. It can change direction in midair, and go up ramps of steepness less than a value (in degrees) defined at the server. Also, it&#039;s immune to steamrollering because it floats; it can possibly be squished (if you decide to implement it) only by landing directly on it. Can&#039;t multi-jump.&lt;br /&gt;
|-&lt;br /&gt;
|Jamming Shield (JS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Jams radar, communications, and guided missiles nearby.&lt;br /&gt;
&lt;br /&gt;
Description here: Within a radius around the tank, no tank (not even allies or the user) can see on radar. Within this area, communications do not exist; if someone (except the server or observers, or using a non-/me command) says something, no tank in the area will hear it; and if one within the field chats, no one will hear it (except observers and loggers). Projectiles that can be guided (even when not guided as they enter the field) within the field will constantly lock on to random points and therefore be ineffective; but if they leave the field, they will return to their original targeting; if they weren&#039;t guided, they will just go straight.&lt;br /&gt;
|-&lt;br /&gt;
|Point Defense (PD)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In-game description: Automatically shoots down incoming missiles.&lt;br /&gt;
&lt;br /&gt;
Description here: When a missile that has a lock (any team&#039;s missile, even allied, but not ones fired without locking on first) gets within a certain range of the tank, a laser shoots from the tank (preferably from the top of the tank, under the flag, but if that&#039;s too hard to implement, from the main muzzle) to the missile for exactly one frame and destroys the missile. There is a brief reload time between shots, say about double the reload time of MG. This flag is the perfect counter-flag to GM. And don&#039;t say Stealth is the counter to GM; it&#039;s NOT, it&#039;s only as effective against GM as anything else.&lt;br /&gt;
|-&lt;br /&gt;
|AirStrike (AS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#transparent;&amp;quot;|&#039;&#039; Too complex and confusing for players, too powerful &#039;&#039;&lt;br /&gt;
|Lock onto a player using right click; firing drops a bullet from the sky onto target. Similar to GM, but useful against people who camp on towers and can&#039;t be hit by normal means. (dim3wit)&lt;br /&gt;
|-&lt;br /&gt;
|Shoot Different (SD)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Your tank leaves a &amp;quot;trail&amp;quot; behind about 20 world units long that, if shot, will result in your tank being destroyed by the next shot that travels over the trail. If any tank runs over the trail you will also die. The trail is not visible, but emits a glow that is seen around the borders. The trail is the same width as the tank. When you shoot a tank, it results in that tank killing you. I don’t think you’d want to get this flag because it is BAD, which means you can’t drop it.  &lt;br /&gt;
|-&lt;br /&gt;
|Bad Thief (BT)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|When you shoot a tank with this flag, the flag is transferred to that tank while a random flag (including bad flags) is transferred to you. If you don’t shoot someone in 1 minute, you die. You can only be killed by SB, L, SW, and GM with this flag.&lt;br /&gt;
|-&lt;br /&gt;
|Evil Tunneler (ET) (mind the abbreviation)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|With this flag, you tunnel completely under the ground and you can go up or down as well by pressing V or C, respectively. When you pick up the flag, you go below the ground to a default 50 world units and generates a 100 world units force field for 3 seconds that allows you to go below safely. Your shots travel straight up and if you are in a position that lets your shot travel above the ground (your shots underground have the same range as a regular bullet), you can shoot, and your shots travel straight upwards at a velocity equal to that of a normal bullet, pausing 20 world units above the ground or building it passes through, then traveling downwards at a speed equal to a Burrow tank going forward, and expiring when it hits the ground. You can’t be steamrolled while you have this flag but if a SB or L passes above you at any altitude you die. You can be shot by other ET tanks, if their shots pass within 10 world units of you, you die, and when a GM is fired within 100 world units of you, it goes underground towards you and expires normally, however, if that explodes below any tank, including teammates they die. Your shots show up on radar but they appear a stationery dot with altitude, if the altitude is below ground the entire square is colored purple or some other color like that. You cannot kill PZ or tanks with Wings. The maximum depth you can descend to is 3000 world units, so if you go any lower, you self-destruct. The maximum altitude (literally) you can reach is the same as a burrow tank and in that altitude you can be steamrolled, and as long as your muzzle is above ground you fire normal shots and can be steamrolled. PZ tanks can steamroll you at any altitude. When your shots expire, they explode in a cloud that tags all tanks caught in it with a 20-second time bomb and when the time’s up, the points go to you but only ½ rounded to the nearest even number, excluding 1. You can only fire half the shots allowed between reloads but reload is ½ server set time. Your tank controls are normal and normal speed. When you jump you go downwards instead of up at the server-set jump height, except reversed.&lt;br /&gt;
|-&lt;br /&gt;
|Ghost (GH)&lt;br /&gt;
| +/-&lt;br /&gt;
|style=&amp;quot;background-color:#transparent;&amp;quot;|&#039;&#039; no flag combos &#039;&#039;&lt;br /&gt;
|Combines Stealth and Cloak, but the player who picks up this flag will die in around 20-30 seconds, even if he drops the flag. Only useful if applied well. (dim3wit)&lt;br /&gt;
|- &lt;br /&gt;
|Shot Shockwave (SS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Like SP, but you can only have one shot.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|Dangerous Debris (DD)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|When you shoot a tank, their “debris” destroys all tanks they touch on the ground or in the air.&lt;br /&gt;
|-	&lt;br /&gt;
&lt;br /&gt;
|RaDiation (RD)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|For 10 seconds, your tank emits a “radiation” that kills all tanks within a 5 world unit radius.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|Wind Shot (WS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Your shots deflect away from enemies when you have this flag. You cannot be shot by regular shots with this flag, and cannot kill any tanks (except PZ). &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|BadBullet (BB)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&lt;br /&gt;
|Your bullets become guided missiles that loop around and hit you, if there are no enemies in the way (if they get hit they die). Does not kill teammates. Goes slow enough for you to outrun but goes through buildings. Has very long range and cannot travel out of the world. Stops after 3 minutes. Has large turning circle and ricochets off world borders and teleporters. Bad flag.&lt;br /&gt;
|-&lt;br /&gt;
|Jump and Stay (JS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&lt;br /&gt;
|You jump and when you reach the top of the jump, you stay at that level, but cannot jump further. You can still move and shoot. &lt;br /&gt;
|-&lt;br /&gt;
|Crazy Color (CC)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&lt;br /&gt;
|Your tank looks like a rogue on the hud, radar and scoreboard, but isn&#039;t. Prevents teams from knowing which side you&#039;re on. Bad flag.&lt;br /&gt;
|-&lt;br /&gt;
|CanYon (CY)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&lt;br /&gt;
|Causes a deep gorge to spread in front and behind you, killing all tanks that fall in. Teammates are not affected. You can&#039;t shoot while you have this flag.&lt;br /&gt;
|-&lt;br /&gt;
|Quantum Plane(QP)&lt;br /&gt;
| +/-&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Basically the bullet behaves like a quantum, where it starts off like a wave and has multiple locations, has the capability of tunneling through boundaries, and when encountered by  a tank collapses into a particle resulting in that tank collapsing into a reality where that tank may or may not be killed (like Schrödinger&#039;s Cat). When a tank shoots, the shot does not have a specific location, but rather a probability distribution along a plane parallel to the ground at the same altitude the shot was made.  This &amp;quot;quantum plane&amp;quot; would have the same color as a bullet, however it would be brighter and more opaque where the probability of the bullet&#039;s location is higher, and more translucent and not as bright where the probability is less, in other words it would look like a flat electron cloud.  The Bullet would have zero probability of being in an object, so OO tanks are safe, however the bullet can be inside hollow areas closed off from the area where the tank shot the bullet (i.e. rooms), this allows for quantum tunneling.  The probability distribution is determined by the boundaries formed from the cross section of the map in the quantum plane, in other words the wave has to be a standing wave that resonates within the boundaries, thus the particular probability distribution would be found by a partial differential equation.  When a tank intersects the plane, the probability of that tank being hit by the bullet is calculated by a double integral, where the tank&#039;s cross section is the boundary.  Then a random number generator determines if that tank is shot or not shot, and the chances of either way is determined by the the tank&#039;s probability of being shot. Once it is determined either way, that particular plane collapses for the tank that intersected with it, thus the plane does not affect that particular tank anymore nor does that tank see it, so to that tank the plane doesn&#039;t exist anymore, however it can still affect other tanks that have not collapsed the wave function.  The Quantum Plane exists until all the tanks intersect with it, or until it expires after the amount of time it takes to reload a regular bullet.  It is possible for more than one tank to be killed by the same Quantum Plane, however it is also possible for the QP holder&#039;s teamates and even the QP holder itself to be killed.  In fact as soon as the QP holder fires, it collapses the Quantum Plane in its perspective, because the holder automatically intersects with the plane.&lt;br /&gt;
|- &lt;br /&gt;
|Teleport Shot&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#5BFAFA;&amp;quot;|&#039;&#039;No, no on drop flags, and too complex&lt;br /&gt;
UPDATE: It&#039;s not on-drop, it means that only one shot is allowed. I clarified the description.&#039;&#039;&lt;br /&gt;
|You can only shoot one shot with this flag. When your shot expires, you appear where it expired. Shots don&#039;t kill.&lt;br /&gt;
|-&lt;br /&gt;
|Flame Thrower (FT)&lt;br /&gt;
| +&lt;br /&gt;
|&lt;br /&gt;
|Firing a shot emits a short length of flame, which never ricochets.  It should get wider as it leaves the barrel, have a duration of half a second or so and have a long reload time. If it could &amp;quot;snake&amp;quot; as the turret turns, even better!  There should be a new sound to accompany the firing and some nice graphics for the flame.&lt;br /&gt;
|-&lt;br /&gt;
|Flag Drop (FD) &lt;br /&gt;
| +&lt;br /&gt;
|&lt;br /&gt;
|Firing causes all tanks nearby to drop their flags. Cannot kill with this flag.&lt;br /&gt;
|-&lt;br /&gt;
|Cloaked Shot (CS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#4141a1;&amp;quot;|&#039;&#039;Yes, done in 2.99&#039;&#039;&lt;br /&gt;
|Shots are invisible out-the-window. Still visible on radar. Glow is still visible out HUD. Watch out for ricochet!&lt;br /&gt;
|-&lt;br /&gt;
|Unsteady (US)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#5bfafa;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|When jumping, the tank gets a random angular momentum, like you accidently moved your move while pressing jump.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(This is a resubmit: I submitted this flag along with others quite some time ago, but, unlike the others, this just vanished from the Wiki)&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|SPinner (SP)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#5BFAFA;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|If you turn when you have this flag you can&#039;t stop turning. Optional: If you leave the tank turning it slowly gets faster and faster, but probably only to a set speed otherwise it would get too fast.&lt;br /&gt;
|-&lt;br /&gt;
|Blink (BK)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039; complex, pick one &#039;&#039;&lt;br /&gt;
|Player alternates from stealth to cloak.  Radar signature alternates from stealth to cloak. Player with flag is always visible either in window or radar.  If a bad flag, player alternates from blindness and jamming for limited time.&lt;br /&gt;
|-&lt;br /&gt;
|Blink (BK)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039; mean &#039;&#039;&lt;br /&gt;
|If a bad flag, player alternates from blindness and jamming for limited time. Primary preference is to use blink as super flag described above.&lt;br /&gt;
|-&lt;br /&gt;
|Tankochet&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039; just a super shield, too powerfull &#039;&#039;&lt;br /&gt;
|bullets ricochet off your tank for a limited time&lt;br /&gt;
|-&lt;br /&gt;
|False Enemy (FE)&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color:#5BFAFA;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|The opposite of MQ; when you pick up this flag, your teammates see you as from another team.&lt;br /&gt;
|-&lt;br /&gt;
|Campers Bullet (CP)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039; to specific&#039;&#039;&lt;br /&gt;
|Shots go through teleporters, without actually teleporting. Useful for hiding behind a teleporter and shooting through it, while being shielded by the teleporter.&lt;br /&gt;
|-&lt;br /&gt;
|Black Hole (BH)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039; too complex &#039;&#039;&lt;br /&gt;
|Your shots move slowly, shots within half a shockwave radius of yours aim towards yours, (double maximum turn/frame of guided missile,) your shots absorb any shots that hit them to increase their range. Black holes either can&#039;t absorb each other or if they collide, they instantly kill all tanks, including the shooter(s).&lt;br /&gt;
|-&lt;br /&gt;
|GalaGa (GG)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039; lame &#039;&#039;&lt;br /&gt;
|When this flag is held, your tank becomes 1.5 (to 2) times wider. However, you are able to shoot two bullets at the cost of one (like a dual fighter in Galaga).&lt;br /&gt;
|-&lt;br /&gt;
|Dome of Protection (DP)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039; shield&#039;&#039;&lt;br /&gt;
|Similar to SW, but instead the &amp;quot;shell&amp;quot; is a protective dome. All shots are simply absorbed or, if there is richochet, bounce off it. It can only be penetrated by SB and SW. Note: when the flag is held the player cannot fire normal shots. They can still fight by making the shots bounce back at them.&lt;br /&gt;
|-&lt;br /&gt;
|Ricochet Guided missile (RG)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;combo flag.&#039;&#039;&lt;br /&gt;
|Instead of exploding, the RG bounces off of surfaces and continues to track the target. Option 1: It loses velocity with each bounce. Option 2: When the RG bounces, it travels in a straight line for a certain distance before regaining lock. EDIT: Perhaps we keep it as a simple ricochet, without any lock loss. The GM keeps lock, it&#039; just takes longer to get there.&lt;br /&gt;
|-&lt;br /&gt;
|NearSight (NS)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;complex&#039;&#039;&lt;br /&gt;
|All tanks farther than (variable defined) world units are completely invisible on HUD. The closer they are to the player, the more visible they become. Similar to an invisible fog, does NOT effect buildings. Gives enemies a long-range advantage.&lt;br /&gt;
|-&lt;br /&gt;
|Long Shot (LS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:transparent;&amp;quot;|&#039;&#039;Maybe, not a bad idea.&#039;&#039;&lt;br /&gt;
|Bullets go twice as far but at a slower speed. Possibly N/2 extra bullets.\&lt;br /&gt;
|-&lt;br /&gt;
|Low Gravity(LG)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#4141a1;&amp;quot;|&#039;&#039;Yes, done in 2.99&#039;&#039;&lt;br /&gt;
|Gravity is reduced to a large degree allowing the tank to jump very high in the air.&lt;br /&gt;
|-&lt;br /&gt;
|Long Reload (LR)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#a14141;&amp;quot;|&#039;&#039;Yes.&#039;&#039;&lt;br /&gt;
|Reloading weapon takes twice as long.&lt;br /&gt;
|-&lt;br /&gt;
|Don&#039;t Stop (DS)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#a14141;&amp;quot;|&#039;&#039;Yes.&#039;&#039;&lt;br /&gt;
|Tank always moves forward or backwards, it cannot stop.&lt;br /&gt;
|-&lt;br /&gt;
|BackFire (BF)&lt;br /&gt;
| +/-&lt;br /&gt;
|style=&amp;quot;background-color:#a14141;&amp;quot;|&#039;&#039;Yes.&#039;&#039;&lt;br /&gt;
|Shots fire to rear of tank instead of front.&lt;br /&gt;
|-&lt;br /&gt;
|FrienDly fire (FD)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;no, a server mode.&#039;&#039;&lt;br /&gt;
|Your shots don&#039;t kill friendly tanks (Your own ricochets are harmless!).&lt;br /&gt;
[Additional suggestions: immune to friendly shots? This can also be a server-side setting, like ricochet.]&lt;br /&gt;
|-&lt;br /&gt;
|Sensor Echo (SE)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#a14141;&amp;quot;|&#039;&#039;Maybe, not a bad idea.&#039;&#039;&lt;br /&gt;
|All tanks show up twice (or more) on radar. Echoes behave like the tank they mirror, down to the flag.&lt;br /&gt;
|-&lt;br /&gt;
|Delayed Shot (DS)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#a14141;&amp;quot;|&#039;&#039;Yes.&#039;&#039;&lt;br /&gt;
|Shots wait some prescribed amount of time (2 seconds?) between clicking and actually firing.&lt;br /&gt;
|-&lt;br /&gt;
|Extra Shot (ES)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#a14141;&amp;quot;|&#039;&#039;Yes.&#039;&#039;&lt;br /&gt;
|Player gets an extra shot.&lt;br /&gt;
|-&lt;br /&gt;
|SlowMotion (SM)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#a14141;&amp;quot;|&#039;&#039;Yes.&#039;&#039;&lt;br /&gt;
|Tank moves and turns with half speed.&lt;br /&gt;
|-&lt;br /&gt;
|INcoming (IN)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, it&#039;s very very close to a cheat.&#039;&#039;&lt;br /&gt;
|Bullets that will hit the tank are highlighted on radar/main view in some fashion as a warning system.&lt;br /&gt;
|-&lt;br /&gt;
|Flip Out (FO)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No not really different from reverse controls.&#039;&#039;&lt;br /&gt;
|Out of window view is upside-down.&lt;br /&gt;
|-&lt;br /&gt;
|EarthQuake (EQ)&lt;br /&gt;
| + &lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, same as using a shockwave on landing.&#039;&#039;&lt;br /&gt;
|When landing after a jump, a shockwave will destroy tanks on the ground in the immediate vicinity of the landing tank. &lt;br /&gt;
|-&lt;br /&gt;
|DeFender (DF)&lt;br /&gt;
| + &lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing for players.&#039;&#039;&lt;br /&gt;
|Fires a short-range shot that projects a miniature shockwave to destroy enemy shots.&lt;br /&gt;
|-&lt;br /&gt;
|Retro (RE)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, doesn&#039;t do ANYTHING&#039;&#039;&lt;br /&gt;
|View becomes green wireframe and otherwise looks like the  [http://en.wikipedia.org/wiki/Battlezone original Battlezone].&lt;br /&gt;
|-&lt;br /&gt;
|Velocity Shooting (VS)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, is a server option, not to be mixed for some players and not others.&#039;&#039;&lt;br /&gt;
|Shots keep Vertical-Velocity (as its set on some Servers for all players). If you jump; shots go up and when you fall; shots aim downward.&lt;br /&gt;
|-&lt;br /&gt;
|SQuishable (SQ)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing for players.&#039;&#039;&lt;br /&gt;
|The opposite of Steamroller. When you touch other tanks (including teammates), you die.&lt;br /&gt;
|-&lt;br /&gt;
|Judas (JD)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing for players.&#039;&#039;&lt;br /&gt;
|When you pick up the flag, you immediately become a player on a different (random) team (or rogue). You must play on that team for as long as you have the flag. If you kill one of your new teammates, you die. BUT you can kill your old teammates for as long as you hold the flag. When you drop the flag or are killed, you revert to your old color.&lt;br /&gt;
|-&lt;br /&gt;
|ANtagonize(AN)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, can not be localized easily, and may anger people.&#039;&#039;&lt;br /&gt;
|This bad flag causes your tank to automatically send out mild insults and taunts to opposing players. Especially the good ones by name.&lt;br /&gt;
|-&lt;br /&gt;
|CoW launcher (CW)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, would require vertical aiming to work properly.&#039;&#039;&lt;br /&gt;
|(Goofy) Launches a cow along a parabolic trajectory.&lt;br /&gt;
|-&lt;br /&gt;
|ConFusion (CF)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too similar to CB.&#039;&#039;&lt;br /&gt;
|Tank colors and names are shuffled around. Like colorblindness, but worse.&lt;br /&gt;
|-&lt;br /&gt;
|ShowOff(SO)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, basically useless in gameplay.&#039;&#039;&lt;br /&gt;
|(Goofy) Tank is capable of doing tricks, back flips when jumping, riding on one tread, etc.&lt;br /&gt;
|-&lt;br /&gt;
|Leash(LE)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing for players.&#039;&#039;&lt;br /&gt;
|Tank is confined to a small radius for a set time period but can still jump.&lt;br /&gt;
|-&lt;br /&gt;
|BUckler (BU)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, shield is enough.&#039;&#039;&lt;br /&gt;
|Give the player a 45 degree shield that reflects all shots. It should be located in the arc between 270-315 degrees. The shielded area should be visible but transparent.&lt;br /&gt;
|-&lt;br /&gt;
|PSychic (PS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too powerful and makes ID pointless.&#039;&#039;&lt;br /&gt;
|Callsigns and flag names of all (visible?) tanks appear above the tank.&lt;br /&gt;
|-&lt;br /&gt;
|Full Reverse(FR)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too similar to HS and too limited in scope.&#039;&#039;&lt;br /&gt;
|Your tank can move full speed in reverse. A middle ground between high speed and normal.&lt;br /&gt;
|-&lt;br /&gt;
|All Terrain (AT)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No slopes, never. No.&#039;&#039;&lt;br /&gt;
|Can drive over slopes and pyramids, (unless steeper than 45?) and perhaps up walls too.&lt;br /&gt;
|-&lt;br /&gt;
|Tac Nuke (TN)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No too powerful.&#039;&#039;&lt;br /&gt;
|On impact with any surface or tank, causes TN to detonate like a half-size SW. Option 1: TN has long reload time or is a single shot flag. Option 2: TN has an &amp;quot;arming&amp;quot; range where it cannot detonate until it passes out of that range. This range can be equal to 1/2 the blast radius or some arbitrary number. Option 3: If the TN hits a tank with a Shield flag, it is neutralized.&lt;br /&gt;
|-&lt;br /&gt;
|Glue Trail (GT)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing for players.&#039;&#039;&lt;br /&gt;
|Leaves a trail that slows down other tanks behind it. fades after server-set number of seconds?&lt;br /&gt;
|-&lt;br /&gt;
|Oil Slick (OS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing for players.&#039;&#039;&lt;br /&gt;
|Leaves a trail that makes tanks behind skid/spin. Fades after server-set number of seconds?&lt;br /&gt;
|-&lt;br /&gt;
|Petrificus Totalus (PT)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing for players, and rather lame.&#039;&#039;&lt;br /&gt;
|Paralyzes tank. Cannot move, turn or shoot for set number of seconds.&lt;br /&gt;
|-&lt;br /&gt;
|Toy Gun (TG)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, pointless in game play, just use the Useless flag.&#039;&#039;&lt;br /&gt;
|When you shoot,the bullet that comes out is a fake bullet attached to a string which is attached to your tank.&lt;br /&gt;
|-&lt;br /&gt;
|Icy Treads (IT)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just like momentum.&#039;&#039;&lt;br /&gt;
|Tank loses traction on the ground and on all objects, as if the friction setting was lowered for that particular tank.&lt;br /&gt;
|-&lt;br /&gt;
|ParaChute (PC)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just like Wings.&#039;&#039;&lt;br /&gt;
|You can control your tank ONLY when falling down and you fall down slower.&lt;br /&gt;
|-&lt;br /&gt;
|ToRnado (TR)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing for players.&#039;&#039;&lt;br /&gt;
|You jump and spin uncontrollably.&lt;br /&gt;
|-&lt;br /&gt;
|GhostS (GS)/SPawn (SP)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, FAR too complex.&#039;&#039;&lt;br /&gt;
|2 or 3 mini bot tanks come out of your tanks and help you by providing cover ect. They die by being shot or after a certain period of time (45 secs?).&lt;br /&gt;
|-&lt;br /&gt;
|Death Ball (DB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, FAR too complex.&#039;&#039;&lt;br /&gt;
|Tank morphs into a Death Ball and kills anyone who touches it. Faster than a normal tanks. Can be killed by being shot 5 times. You can&#039;t jump.&lt;br /&gt;
|-&lt;br /&gt;
|DiG (DG)&lt;br /&gt;
| +/-&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too similar to burrow.&#039;&#039;&lt;br /&gt;
|Your tank goes completely underground upon picking up the flag, and you may then shoot up at tanks above you. Anybody may lock on you (as with GM) if they hold GM, SB, or even no flag. You are also in range of SW. Bullets will follow you underground.&lt;br /&gt;
|-&lt;br /&gt;
|RaM (RM)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too poweful and complex.&#039;&#039;&lt;br /&gt;
|Tank travels at normal speed unless you fire. Firing causes your tank to accelerate forward quickly and only for a certain range. When you touch another tank, it has Steamroller effect, causing them to explode.&lt;br /&gt;
|-&lt;br /&gt;
|Auto Teleport (AT)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too complex, too powerful, and looks too much like a cheat.&#039;&#039;&lt;br /&gt;
|With this flag a player can teleport to any place visible place on the radar by clicking the desired area on the radar. Only one teleport can be done per flag, otherwise you would be impossible to kill. Another way to make it harder is to put a reload time on it, so there would be at least some pause between teleports. If you teleport to an area occupied by a building, you go to the highest place on the specified area of the building.&lt;br /&gt;
|-&lt;br /&gt;
|Ice Laser (IL)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing for players, just kill them.&#039;&#039;&lt;br /&gt;
|This laser does not kill players. Instead, it freezes them. They can&#039;t move, jump, or shoot, for 10 seconds. Players who are shot by normal bullets while they are frozen become unfrozen. When a tank is frozen, the tank becomes white, preventing other players from knowing which team the frozen tank is on.&lt;br /&gt;
|-&lt;br /&gt;
|Kamakazi Attack (KA)&lt;br /&gt;
| +/-&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing for players.&#039;&#039;&lt;br /&gt;
|This can be a good and a bad flag. When picked up, starts a self-destruct timer, that, when runs out, will blow you up. But if the right button is pressed before the time is up, then you blow up on the click. This can be use to kill multiple tanks, and can also be used in mid-air. Moderate blast-radius?&lt;br /&gt;
|-&lt;br /&gt;
|Swallow Tanks (SW)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, far too confusing.&#039;&#039;&lt;br /&gt;
|(GOOFY) If you touch another tank it disappears and becomes an observer to your tank. The more tanks you swallow the more obese you become. You can only swallow a limit of 3 tanks at a time, if you swallow more you pop. If you are killed all of the tanks you are carrying are set free. The tanks jump as they are set free to avoid multiple shots that may have been fired at the original tank. Swallow your own teammates and carry them deep into enemy territory!&lt;br /&gt;
|-&lt;br /&gt;
|Electricity Bolt (EB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, far too powerful and confusing.&#039;&#039;&lt;br /&gt;
|Looks like thief shot when fired (Short range weapon) only when it hits a structure it kills everyone on it or touching it (or in it, players with OO). This would be handy for killing tanks sitting in hard to get to places!&lt;br /&gt;
|-&lt;br /&gt;
|Invisible Objects (IO)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Maybe.&#039;&#039;&lt;br /&gt;
|All surface objects (pyramids, boxes, etc.) become invisible.&lt;br /&gt;
|-&lt;br /&gt;
|Meatloaf Launcher(ML) &lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Just move forward while jumping, unrelated name.&#039;&#039;&lt;br /&gt;
|Jumping propels your tank not only upwards but forwards as well.&lt;br /&gt;
|-&lt;br /&gt;
|Bent Turret (BT)&lt;br /&gt;
| -/+&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Maybe.&#039;&#039;&lt;br /&gt;
|All shots go out 30 degrees to the left/right (than a normal shot). Some people might call this a super flag because it helps dodging.&lt;br /&gt;
|-&lt;br /&gt;
|Tiny Bullet (TB)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Perhaps.&#039;&#039;&lt;br /&gt;
|This bad flag causes your the bullets to shrink, making them hard for you to hit your opponent.&lt;br /&gt;
|-&lt;br /&gt;
|Missle Jammer (MJ)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Maybe.&#039;&#039;&lt;br /&gt;
|Prevents a GM lock on your tank.  You can still be killed by normal shots, or unlocked shots.&lt;br /&gt;
|-&lt;br /&gt;
|Score Flags (SF)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#a14141;&amp;quot;|&#039;&#039;Maybe, a multi-player isn&#039;t a bad idea.&#039;&#039;&lt;br /&gt;
|Gives you more than one point for each kill. Maybe randomize between 2 and 5 points. (This could also be used as a handicap for beginners)&lt;br /&gt;
|-&lt;br /&gt;
|NearSight (NS)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Maybe, not too game breaking, but not relay that exciting.&#039;&#039;&lt;br /&gt;
|All tanks farther than (variable defined) world units are completely invisible on HUD. The closer they are to the player, the more visible they become. Similar to an invisible fog, does NOT effect buildings. Gives enemies a long-range advantage.&lt;br /&gt;
|-&lt;br /&gt;
|Black Death (BD)&lt;br /&gt;
| +/-&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, far too powerful and confusing&#039;&#039;.&lt;br /&gt;
|This flag is similar to a team flag only when it is captured it kills all other opposing teams (instead of just one specific team). This would make it so that multiple teams would be competing for one flag. (The color of the flag is black)&lt;br /&gt;
|-&lt;br /&gt;
|Colored Flag (CF)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, would destroy CTF.&#039;&#039;&lt;br /&gt;
|CTF only flag. Other people see the CF as their own team flag (except own team?)&lt;br /&gt;
|-&lt;br /&gt;
|Punch (PU)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just kill with steamroller.&#039;&#039;&lt;br /&gt;
|Hitting a tank at full speed throws it some appreciable distance away&lt;br /&gt;
|-&lt;br /&gt;
|Remote Mines (RM)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, no mines. They will seem to kill players for no reason.&#039;&#039;&lt;br /&gt;
|Firing places a mine, up to some predefined number. The next shot detonates all of them&lt;br /&gt;
|-&lt;br /&gt;
|Firewall (FW)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too hard to sync, and somewhat confusing.&#039;&#039;&lt;br /&gt;
|Firing creates a temporary wall of flame that tanks cannot pass&lt;br /&gt;
|-&lt;br /&gt;
|Glue Bomb (GB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing for players.&#039;&#039;&lt;br /&gt;
|Shot would detonate in a big pile of glue, slowing down people in the blast radius&lt;br /&gt;
|-&lt;br /&gt;
|Corbomite Device (CD)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing, and hard to sync.&#039;&#039;&lt;br /&gt;
|When the tank is shot, it generates a reciprocating shot to what killed it - these shots can be dodged normally, in most cases (SW, GM being impossible/difficult)&lt;br /&gt;
|-&lt;br /&gt;
|Clone (CN)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing and too much like cheats.&#039;&#039;&lt;br /&gt;
|Tank emits a hologram clone at some offset from itself as a diversion.&lt;br /&gt;
|-&lt;br /&gt;
|Smoke Screen (SC)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, doesn&#039;t add much for gameplay.&#039;&#039;&lt;br /&gt;
|The tank emits a cloud of smoke behind it. This provides a visual wall, and perhaps cancels out GM locks as well.&lt;br /&gt;
|-&lt;br /&gt;
|Time Lapse (TL)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too similar to blind and jamming combined.&#039;&#039;&lt;br /&gt;
|Holding this flag will cause the HUD &amp;amp; radar to refresh only every second or so.&lt;br /&gt;
|-&lt;br /&gt;
|Big Bullet (BB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too powerful, shots are computed as point hits.&#039;&#039;&lt;br /&gt;
|Bullets are twice (or more) as large. Tank feels a kick-back when firing&lt;br /&gt;
|-&lt;br /&gt;
|Gravity Well (GW)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, FAR too complex.&#039;&#039;&lt;br /&gt;
|One-shot fire, creates a gravity well at some distance away from the firing tank. This well pulls in all tanks around it - driving away from the well will slow the descent. Possible avoidance/negation flags include BU, OO, PZ, HS.&lt;br /&gt;
|-&lt;br /&gt;
|Mirror (MI)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just make CL deflect laser.&#039;&#039;&lt;br /&gt;
|Holding this flag will reflect a hit by laser. Flag is not dropped after a hit. The appearance of a tank holding this flag changes so that it reflects the surroundings. Or maybe appears pseudo-transparent, rather like the inside of structures viewed with Oscillation Overthruster, or of objects when in the PZ.&lt;br /&gt;
|-&lt;br /&gt;
|Plasma Ball (PB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too limited, and just kinda weird.&#039;&#039;&lt;br /&gt;
|Shoots a large (8 unit) sphere that behaves exactly like a super bullet -- except it travels very, very slowly. It would travel as fast as a burrowed tank going in reverse, thus being easy to outrun in open areas, but hard to avoid on &amp;quot;indoor&amp;quot; maps. Because of the size, it would kill burrowed tanks when fired on the ground.&lt;br /&gt;
|-&lt;br /&gt;
|Fake Bullets(FB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too complex, and pointless.&#039;&#039;&lt;br /&gt;
|1) your bullets look, bounce, show up on radar, and seem real, but they pass right through tanks, causing no damage, and can&#039;t harm anyone. This can seem like a bad flag, but would be great to get the other team jumping and running while having zero chance of hitting your own team (and this is how I&#039;d like to use it). 2) Could be made a bad flag that requires you to hold it for a certain amount of time before dropping it. (Would be nice if there were a way to keep a bad flag if you choose.) 3) optional: fire rate is doubled, or unlimited&lt;br /&gt;
|-&lt;br /&gt;
|BulletInertia(BI)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, it&#039;s a server setting.&#039;&#039;&lt;br /&gt;
|When a shot is fired it has the same motion as the tank when it was fired. So if the tank is falling the shots move downward towards the ground, and shots are accelerated or decelerated if the tank is going forward of backward.&lt;br /&gt;
|-&lt;br /&gt;
|Warp Engine (WE)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, FAR too complex.&#039;&#039;&lt;br /&gt;
|Tank can hit newly-defined &amp;quot;Warp&amp;quot; key (perhaps jump key?) and, with a two-second delay, instantaneously be transported an amount in the direction of facing equal to the current warp power, which starts at a minimum value. Pushing the key during the delay period increases the power; increasing it past a certain amount causes the warp engine to overload and blow up. Warping into buildings or outside the world boundary causes a collision and blows up the tank. (A random chance of being dropped when used, depending on how much power is applied? Use a gradual teleporter fog during the about-to-warp delay? Signal about-to-warpness to the other players by turning the tank gradually bright glowing white? Use a new sound for when the warp occurs?)&lt;br /&gt;
|-&lt;br /&gt;
|Identify Friend/Foe (FF)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just apply the setting to Masquerade.&#039;&#039;&lt;br /&gt;
|Masquerade for the radar. Tank shows up for everyone as their team on the radar.&lt;br /&gt;
|-&lt;br /&gt;
|Rotating Turret (RT)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, no turning turrets, ever.&#039;&#039;&lt;br /&gt;
|Turret can turn. Like GM, you can lock on people, and the turret always fires in their direction (horizontally, not vertically). May need some graphics changes (tank becomes bottom part - tank orientation + top part - turret orientation)&lt;br /&gt;
|-&lt;br /&gt;
|Boat (BO)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too dependent on map features.&#039;&#039;&lt;br /&gt;
|Tank floats on water. Moats don&#039;t kill you. You move a bit slower on water though. You can still jump on water, but not as high.&lt;br /&gt;
|-&lt;br /&gt;
|MortarBomb (MB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, requires vertical aim to be any use.&#039;&#039;&lt;br /&gt;
|Shot has same trajectory as a jump. Vertical velocity alters trajectory. Should be very useful once mastered. Many applications e.g. stop-shoot-go to drop a shot on a pursuer. - FiringSquad&lt;br /&gt;
|-&lt;br /&gt;
|CriticalMass (CM)&lt;br /&gt;
| +/-&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, this is a server side plugin, not a flag.&#039;&#039;&lt;br /&gt;
|When killed you explode in a ShockWave (perhaps larger). Tanks with this flag should pulse on your radar. Suicide to kill at close range and dangerous to have near you. Points scored from explosion should accrue to the holder not the killer, otherwise not worth holding onto flag. - FiringSquad&lt;br /&gt;
|-&lt;br /&gt;
|ShortHop (SH)&lt;br /&gt;
| +/-&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too similar to jump.&#039;&#039;&lt;br /&gt;
|Jump is half the normal height and takes half the time. (+) Good for jumping over bullets and regaining control quickly to return fire. (-) Unable to reach everywhere. - FiringSquad&lt;br /&gt;
|-&lt;br /&gt;
|1000 Tons Weight (TW)&lt;br /&gt;
| +/-&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just stupid&#039;&#039;&lt;br /&gt;
|Timer starts as soon as flag as picked up(30 sec timer? Server set?), and user cant drop it. When timer runs out, a 1000 ton weight falls out of the sky killing the owner. When you shoot someone the flag gets transfered over. Player 1 gets TW, 25 seconds go by, he shoots Player 2, then, 5 seconds time, BOOM. Make a nice CLLANNG sound, and tank stops, and other tanks see the weight fall on him. (Punkus)&lt;br /&gt;
|-&lt;br /&gt;
|Red Eye (RE)&lt;br /&gt;
| +/-&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too complex and somewhat pointless.&#039;&#039;&lt;br /&gt;
|First shot causes target tank out-of-window screen to become all white (like a red-eye flash). Out-of-window view stays white for a certain number of seconds (2? 3?). Within that time initial tanks shots are normal, other shooting tank causes white screen again. Radar works as normal, only out-of-window view is affected&lt;br /&gt;
|-&lt;br /&gt;
|SUbtle (SU)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just use CL&#039;&#039;&lt;br /&gt;
|Tank appears normal to friendlies - only outline visible to enemies.&lt;br /&gt;
|-&lt;br /&gt;
|Klingon Cloak (KC)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, to powerful.&#039;&#039;&lt;br /&gt;
|A super cloak, combining stealth and cloak to render you totally invisible to others (though not untouchable). You&#039;re not invincible though because, just like with the cloaks used by the Klingons, your tank cannot fire while you have this flag and there is a couple second delay between dropping cloak and being able to fire. Not much for fighting, but great for sneaking up on campers.&lt;br /&gt;
|-&lt;br /&gt;
|Team Invulnerable(TI)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just use Friendly Fire.&#039;&#039;&lt;br /&gt;
|Can&#039;t be killed by a teammate, except maybe superbullet, genocide.&lt;br /&gt;
|-&lt;br /&gt;
|TagYourit (TY)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, should be a game mode, not a flag.&#039;&#039;&lt;br /&gt;
|Your tank can&#039;t fire and the only way to drop the flag is to get within a certain radius of another tank. The flag is automatically transferred to the other tank.&lt;br /&gt;
|-&lt;br /&gt;
|SwiM (SM)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too complex.&#039;&#039;&lt;br /&gt;
|In short: Can get into building. while in building can:&lt;br /&gt;
* raise slowly while the jump-key is pressed. fall slowly otherwise.&lt;br /&gt;
* get to the almost top of the building. from the top can shoot and be shot - while holding the jump key(otherwise he&#039;ll fall-in)&lt;br /&gt;
* and can die if the countdown reaches zero. a countdown will be started when he gets to a building, and stopped when he gets out.&lt;br /&gt;
|-&lt;br /&gt;
|Proximity Drop (PD)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too confusing for the other players.&#039;&#039;&lt;br /&gt;
|When driving close to opposing tanks (say 3 tank lengths) you cause them to lose their flags.&lt;br /&gt;
|-&lt;br /&gt;
|Lightning Bolt (LB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, lame munchkin flag. Too limited in use.&#039;&#039;&lt;br /&gt;
|A lightning bolt descends from the sky and hits the highest object above the tank (possibly passing through everything on it&#039;s way down?), destroying people above you. Harmless to your own tank. Effective against tanks with GM sniping from high places. Completely useless against almost everything else.&lt;br /&gt;
|-&lt;br /&gt;
|ThrUster (TU)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, We have Wings.&#039;&#039;&lt;br /&gt;
|Clicking causes thrusters to fire up underneath your tank. Holding the left mouse button keeps the rockets on (for a time, until they burn out and you plummet to the ground). Landing on other tanks destroys, unless the thrusters used up. Rockets must recharge (especially after being burnt out) like any offensive weapon. A bit like the tank in StarFox64 - yes, I know, sinful console game.&lt;br /&gt;
|-&lt;br /&gt;
|Ostrich (OS)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, we have burrow.&#039;&#039;&lt;br /&gt;
|(Goofy) Your tank becomes an ostrich. Clicking causes you to bury your head (and the rest of your body) underground, making it impervious to attack for a very short period, but completely unable to move. Any tanks in the way of it diving underground are destroyed. Weak against lasers, because there would be no time to duck.&lt;br /&gt;
|-&lt;br /&gt;
|LaZarus(LZ)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just use shield.&#039;&#039;&lt;br /&gt;
|When killed holding this flag, after being exploded your tank magically combines, and you are not dead.&lt;br /&gt;
|-&lt;br /&gt;
|WaveFront (WF)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just use shockwave.&#039;&#039;&lt;br /&gt;
|Like shockwave, but only, say, 30 degrees high and wide, but has longer range&lt;br /&gt;
|-&lt;br /&gt;
|Dud Shot (DS)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, it&#039;s kinda mean. And you could not shake it on servers with shake kills.&#039;&#039;&lt;br /&gt;
|Not all of your bullets work&lt;br /&gt;
|-&lt;br /&gt;
|Death Blossom (DB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, Just use shockwave.&#039;&#039;&lt;br /&gt;
|Shoots all bullets available in a circular pattern from the tank.&lt;br /&gt;
|-&lt;br /&gt;
|COlumn(CO)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, very limited in use.&#039;&#039;&lt;br /&gt;
|All of your (currently loaded) shots are fired at once, on top of each other, making a vertical column.&lt;br /&gt;
|-&lt;br /&gt;
|Sniper Rifle (SR)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just use laser.&#039;&#039;&lt;br /&gt;
|Your Tank&#039;s shots have infinite range, think of the good, and the bad.&lt;br /&gt;
|-&lt;br /&gt;
|Flash Bang (FB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, redefines too many existing behaviors, and far too complex.&lt;br /&gt;
|A few possible implementations. 1) Right-click fires non-lethal shots which travel until a second right-click upon which they explode (similar to SW radius, perhaps bigger) and blind tanks within blast. 2) Could be semi-bad flag where normal shots don&#039;t kill but temporarily blind tanks that are hit to allow escape (or kill by teammate). 3) Right click flashes all opponents within line-of-sight of tank w/flag. If tanks are turned such that they can see tank w/flag, they are temporarily blinded.&lt;br /&gt;
|-&lt;br /&gt;
|Freeze Wave (FW)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just kill them.&#039;&#039;&lt;br /&gt;
|Similar to Shock Wave, except that instead of destroying other tanks within the shock radius, it freezes other tanks within the freeze radius for a certain time, so they cannot move or fire (even in mid-air). When the other tanks re-awaken, they are immune to freezing for a certain time. Dropping the flag forces a reload time (like Thief). This flag encourages team play. An alternate implementation would freeze yourself if any team tanks get frozen.&lt;br /&gt;
|-&lt;br /&gt;
|ARchitect(AR)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.. Just... No.&#039;&#039;&lt;br /&gt;
|Your tank can move buildings by driving into them.&lt;br /&gt;
|-&lt;br /&gt;
|Gravity Bullet (GB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, requires vertical aim to work well.&#039;&#039;&lt;br /&gt;
|Your bullets are affected by gravity. This obviously reduces the range when fired on the ground, but a tank sitting on a building or jumping has the ability to hit people below them... if they time their shots right.&lt;br /&gt;
|-&lt;br /&gt;
|RubberTank (RT)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, use shield.&#039;&#039;&lt;br /&gt;
|I&#039;m rubber and you&#039;re glue, whatever you shoot bounces off me and kills you! Regular shots ricochet off your tank back in the direction they came, if shooter is still there or close then he gets hit by his own shot. GMs explode without killing or cause rubber damage (flag drop). Super bullet and shock wave kill. Steam roller bounces off you, maybe causing his death or both your flags to drop.&lt;br /&gt;
|-&lt;br /&gt;
|MagNet (MN)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, it&#039;s just mean.&#039;&#039;&lt;br /&gt;
|Bullets are attracted to player&#039;s tank.&lt;br /&gt;
|-&lt;br /&gt;
|Force Field (FF)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, Just use Shield.&#039;&#039;&lt;br /&gt;
|Pushes bullets away. Well aimed shots do not get pushed away&lt;br /&gt;
|-&lt;br /&gt;
|Boomerang Bullet (BB)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too limiting.&#039;&#039;&lt;br /&gt;
|Shots move in a curved path that includes the point of firing&lt;br /&gt;
|-&lt;br /&gt;
|ZigZag (ZZ)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too limiting. &#039;&#039;&lt;br /&gt;
|Shots don&#039;t fly straight. Instead they fly in a sine wave or a zigzag pattern. Probably no reasonable expectation of hitting what you want.&lt;br /&gt;
|-&lt;br /&gt;
|FReeze (FR)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No Too limiting.&#039;&#039;&lt;br /&gt;
|Tank can&#039;t move, only jump and fire.&lt;br /&gt;
|-&lt;br /&gt;
|Shock Ring (??)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just use shockwave.&#039;&#039;&lt;br /&gt;
|Shockwave in a horizontal ring pattern&lt;br /&gt;
|-&lt;br /&gt;
|RemoteControl (RC)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.. Just... No.&#039;&#039;&lt;br /&gt;
|Player can take control of another player&#039;s tank, steer and/or fire it, causing the other player to become vulnerable and/or kill himself or others. Offensive and defensive uses, especially if gm or laser campers are around. Automatically dropped after use.&lt;br /&gt;
|-&lt;br /&gt;
|TransLocate (TL)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.. Just... No.&#039;&#039;&lt;br /&gt;
|Identify a player, then switch places (perhaps N times use)&lt;br /&gt;
|-&lt;br /&gt;
|Clone (CN)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.. Just... No.&#039;&#039;&lt;br /&gt;
|Takes on the properties of the nearest player&#039;s flag&lt;br /&gt;
|-&lt;br /&gt;
|Lemur mode (LM)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.. Just... No.&#039;&#039;&lt;br /&gt;
|Walk on walls. (maybe parallel to ground only, from however high you touched it, and then jump to get off?)&lt;br /&gt;
|-&lt;br /&gt;
|Cattle Prod (CP)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, Steamroller!?!?!&#039;&#039;&lt;br /&gt;
|(Goofy) A cattle prod sticks out some fixed distance in front of the bearer&#039;s tank. Anyone who touches the prod dies. Clicking while the flag is in effect does nothing.&lt;br /&gt;
|-&lt;br /&gt;
|MiRage (MR)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.. Just... No.&#039;&#039;&lt;br /&gt;
|Player sees tanks and shots where they shouldn&#039;t be.&lt;br /&gt;
|-&lt;br /&gt;
|Wormhole Bullet(WB)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.. Just... No.&#039;&#039;&lt;br /&gt;
|Bullets that hit other tanks send them to a random link/teleporter instead of killing them. (If there are no teleporters, don&#039;t create flags?).&lt;br /&gt;
|-&lt;br /&gt;
|INflate(IN)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.. Just... No.&#039;&#039;&lt;br /&gt;
|Your bullets cause tiny tanks to become normal sized, normal tanks to become obese, and obese tanks to explode.&lt;br /&gt;
|-&lt;br /&gt;
|Proximity Fuse (PF)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.. Just... No.&#039;&#039;&lt;br /&gt;
|Shells explode with a small shock wave when they pass within range of a tank (even a friendly one).&lt;br /&gt;
|-&lt;br /&gt;
|Laser Cloud(LC)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.. Just... No.&#039;&#039;&lt;br /&gt;
|Firing this causes a x amount (x = amount of shots available) of short laser beams to project from the tank, killing all GM, bullets, and tanks they meet. It can aim up and down, and has the range of a Shockwave. Can be over driven by a greater amount of shots than the tank has lasers for. Right clicking causes one single laser beam twice as long as usual, it uses all the shots available, and takes twice as long to recover (optional)&lt;br /&gt;
|-&lt;br /&gt;
|French Fries (FF)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too complex, kinda lame.&#039;&#039;&lt;br /&gt;
|(Goofy) Other tanks are attracted to the french fry and will turn to it if they are facing it within 90 degrees.It automatically moves toward it. Other tanks can still turn around (slowly) until it gets out of the magical 90 degrees.&lt;br /&gt;
|-&lt;br /&gt;
|Time Displacement(TD)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|Employing this causes the whole world to freeze for a short period of time. Except you, and perhaps PZ. You loose your flag after this. You can&#039;t shoot while the world is frozen.&lt;br /&gt;
|-&lt;br /&gt;
|Ugly&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|When opposing tanks have you in there lock angle, their tanks automatically turn away from you. This can be compensated for by turning against it.&lt;br /&gt;
|-&lt;br /&gt;
|Fly by Wire (FW)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, though adding this to GM might be nice.&#039;&#039;&lt;br /&gt;
|Missile flies with built-in camera; player&#039;s tank stands still until missile flight is over.&lt;br /&gt;
|-&lt;br /&gt;
|KamikaZe (KZ)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|Tank drives fast, explodes with a large radius when it collides with another tank or obstacle&lt;br /&gt;
|-&lt;br /&gt;
|Random Teleport (RT)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|Can&#039;t control when or where it teleports you&lt;br /&gt;
|-&lt;br /&gt;
|Air Burst (AB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Never.&#039;&#039;&lt;br /&gt;
|Flag explodes when it reaches its apex when dropped. Apex is especially high. Explosion is large (bigger than shock wave). Being in or behind a building should protect you. Being behind (or through!) a teleporter should not.&lt;br /&gt;
|-&lt;br /&gt;
|Heat Seeker (HS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Never, same as GM.&#039;&#039;&lt;br /&gt;
|Missile is fire-and-forget; heads toward nearest &amp;quot;heat source&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|HoloGram (HG)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Never.&#039;&#039;&lt;br /&gt;
|Player&#039;s tank appears off to one side from where it really is.&lt;br /&gt;
|-&lt;br /&gt;
|Grappling Beam (GB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|Clicking fires a laser-like beam that travels at the same speed as bullets, and does the same thing to enemy tanks if they are hit. If the beam hits a pyramid or a box, however, the tank gets pulled rapidly to the object that was hit (like a grappling hook).&lt;br /&gt;
|-&lt;br /&gt;
|ILlusion (IL)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|Opposing players see 2(?) fake copies of your tank at constant random offsets from your real position (if they are shot, either nothing happens or the fakes disappear?).&lt;br /&gt;
|-&lt;br /&gt;
|SNake (SN)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|(Goofy) Becomes like a game of Nibbles for the bearer of the flag; a laser-looking barrier comes out behind the tank, and stays there (possibly for only a fixed length). Any player that touches the barrier dies.&lt;br /&gt;
|-&lt;br /&gt;
|Kill or be Killed (KK)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Never.&#039;&#039;&lt;br /&gt;
|Player has to make kills within a certain time, or risk blowing him/herself up. {abbrev should be changed for obvious reasons}&lt;br /&gt;
|-&lt;br /&gt;
|ShotGun (SG)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Never.&#039;&#039;&lt;br /&gt;
|Shots split and go off in different directions.&lt;br /&gt;
|-&lt;br /&gt;
|Interdimensional Teleport (IT)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Never, no &amp;quot;on drop&amp;quot; actions.&#039;&#039;&lt;br /&gt;
|Teleports to a random location when dropped&lt;br /&gt;
|-&lt;br /&gt;
|Rear Shot (RS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Never.&#039;&#039;&lt;br /&gt;
|Shoots both in front and behind (if available shots)&lt;br /&gt;
|-&lt;br /&gt;
|LLama (LL)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|(Goofy) Involuntarily charges all visible tanks, starting with the closest, including teammates. Has the same effect as SR on impact. Other tanks see an amusing llama. graphic.&lt;br /&gt;
|-&lt;br /&gt;
|SuperDrop(SD)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Never.&#039;&#039;&lt;br /&gt;
|When killed holding this flag, all tanks loose their flags, and they are sucked into the ether.&lt;br /&gt;
|-&lt;br /&gt;
|George Bush (GB)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|(Goofy) All game and player messages are sent through a filter translating them into George W. Bush speak. Because he knows how difficult it is to put code on your project.&lt;br /&gt;
|-&lt;br /&gt;
|Turbo Boost (TB) &lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Never.&#039;&#039;&lt;br /&gt;
|Right click makes you faster than high speed briefly. Flag can be used multiple times, maybe with a recharge time.&lt;br /&gt;
|-&lt;br /&gt;
|ReFlect (RF)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Never.&#039;&#039;&lt;br /&gt;
|When you get hit, you die as usual, but shot isn&#039;t stopped, it is reflected back in the direction it came from.&lt;br /&gt;
|-&lt;br /&gt;
|MirroR (MR)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Never.&#039;&#039;&lt;br /&gt;
|See reflections of other tanks on the walls for aiming ricochet bullets&lt;br /&gt;
|-&lt;br /&gt;
|SubterFuge (SF)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Never.&#039;&#039;&lt;br /&gt;
|Similar to Antagonize. Players near you or those you id are sent deceptive messages purportedly from other players or teammates. These would be stock messages such as: watch out, [callsign] is behind you... let&#039;s go after [callsign]... boo... where callsign is a player on a team other than theirs or a rogue.&lt;br /&gt;
|-&lt;br /&gt;
|MagShield(MS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, need to shoot.&#039;&#039;&lt;br /&gt;
|A defense only flag. Fire and you envelope yourself with a brief magnetic shield that looks like or similar to shock wave, only this shield acts like a wall stopping or causing shots to rico as appropriate. Put up your shield soon enough and you&#039;re safe, but wait too long and a shot&#039;s ricocheting around inside with you. Tanks can drive thru the shield, both to fire at you or to be protected by you as you approach a target (camper). To fire yourself you have to drop the flag.&lt;br /&gt;
|-&lt;br /&gt;
|Tether Ball(TB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No. too many changes.&#039;&#039;&lt;br /&gt;
|A ball appears behind the tank attached by a tether and can be swung along the ground by sharp turns. If a tank (even your own) hits either the tether or the ball it is destroyed.&lt;br /&gt;
|-&lt;br /&gt;
|Dumbfire Missile (DM)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|A missile that can not be locked on, but has an actual blast area (miniature shock-wave, but without affecting PZ players). Possible alternative: Full size SW, but flag is &#039;used&#039; (dropped for a long time, like the shield flag) when fired.&lt;br /&gt;
|-&lt;br /&gt;
|MultiFlag (MF)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Never.&#039;&#039;&lt;br /&gt;
|Tank can hold two other flags at the same time.&lt;br /&gt;
|-&lt;br /&gt;
|OIl (OI)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No. large engine change.&#039;&#039;&lt;br /&gt;
|Tank leaves an oil trail behind which steers people off course.&lt;br /&gt;
|-&lt;br /&gt;
|Flag Launcher(FL)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No. No multiple flags.&#039;&#039;&lt;br /&gt;
|Gives tank the same attributes as TH but can pick up a second flag without being affected, and fire it at another tank. If it misses you keep the flag but if it hits the tank is forced to give up any currently held flags and pick up the launched flag. Good with LE.&lt;br /&gt;
|-&lt;br /&gt;
|Radar Scout (RS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, confusing.&#039;&#039;&lt;br /&gt;
|Your tank becomes a radar-equipped scout (you can still shoot). In a certain radius around you, all tanks (except you) look obese (due to increased radar) and can be shot like obese tank (hitting is easier); they still fit through teleporters. In addition, cloaked and stealthed tanks and shots also become visible. Every tank on the play field can see and shoot the obese and cloaked tanks, so you have the advantages that&lt;br /&gt;
 &lt;br /&gt;
Tanks are more likely to shoot at each other, since you are normal in size, the others are obese&lt;br /&gt;
Others will think twice before destroying you since you provide them with a targeting aid&lt;br /&gt;
|-&lt;br /&gt;
|TurreT (TT)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|Turns your tank into a turret. Same as Burrow + Machine Gun + Angular Velocity, but your tank can&#039;t move at all.&lt;br /&gt;
|-&lt;br /&gt;
|AnnoYance (AY)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too easy to camp by a flag.&#039;&#039;&lt;br /&gt;
|Tank is very large and fast, can&#039;t shoot, and invincible. Can distract enemies while friendlies go in for the kill.&lt;br /&gt;
|-&lt;br /&gt;
|AntiMatter (AM)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, needs more thought for vertical worlds.&#039;&#039;&lt;br /&gt;
|Tank cannot be hit except for SB/SW. 50% increased reload time, can be steamrolled by any tank, colliding with buildings results in death too&lt;br /&gt;
|-&lt;br /&gt;
|Targeting Computer (TC)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, a lag nightmare.&#039;&#039;&lt;br /&gt;
|HUD shows where to aim for lead-ahead based on dead reckoning&lt;br /&gt;
|-&lt;br /&gt;
|StraFe (SF)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, will not be a flag feature if ever implemented.&#039;&#039;&lt;br /&gt;
|Modifier key makes turning strafe&lt;br /&gt;
|-&lt;br /&gt;
|ECCM (um...)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|When firing from ECCM equipped tank, other tanks in front of it, 20/30 degrees, have for a while both not working radar and communication (excluding admins).&lt;br /&gt;
|-&lt;br /&gt;
|HeadAche (HA)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|All colors (not just tank colors) are inverted. Causes confusion for player, should have time limit. Submitted by ThatGuySpencer&lt;br /&gt;
|-&lt;br /&gt;
|Double Shot (DS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, see backfire.&#039;&#039;&lt;br /&gt;
|Shots come out of both ends of your tank, shoting backwards and fowards (maybe your bullets run out twice as fast) - Terminator&lt;br /&gt;
|-&lt;br /&gt;
|X-ray Vision(XV)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, difficult to portray with complex worlds.&#039;&#039;&lt;br /&gt;
|Can see through buildings, but not drive through them. Either they are completely invisible (making out-the window driving fun) or they show up like with OO. Makes it possible to surprise others who are behind objects, and who are depending only on radar to know where you are.&lt;br /&gt;
|-&lt;br /&gt;
|SNiper (SN)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, to much like laser.&#039;&#039;&lt;br /&gt;
|Tank has one, invisible, shot that lasts until it hits something/someone. Never ricochets. Blam!&lt;br /&gt;
|-&lt;br /&gt;
|PariaH (PH)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|Tank is identified in all ways as each other player&#039;s nemesis.&lt;br /&gt;
|-&lt;br /&gt;
|NeMesis (NM)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, not a good flag feature.&#039;&#039;&lt;br /&gt;
|HUD indicates direction (but not distance) to last person to kill you, even if under stealth.&lt;br /&gt;
|-&lt;br /&gt;
|Rear Window (RW)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No.&#039;&#039;&lt;br /&gt;
|View is split horizontally, bottom half is view out the back.&lt;br /&gt;
|-&lt;br /&gt;
|Collector (CO)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No holding multiple flags, unproductive&#039;&#039;&lt;br /&gt;
|Or cleaner (CR). Everything is normal except this tank can collect all the flags, without being able to use them. The moment he presses spacebar or dies all flags he holds return to the world.&lt;br /&gt;
|-&lt;br /&gt;
|Bomber (BM)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No we don&#039;t do splash damage&#039;&#039;&lt;br /&gt;
|Like WG, but all shots go downwards. Speed is determined by _gravity. Useful for flying servers. When flying with BM the speed is slower than that of WG, but bombs shot will have a larger radius (can kill more things around them).&lt;br /&gt;
|- &lt;br /&gt;
|Pole-aXed (PX)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No may as well just kill him, and we don&#039;t kill for a bad flag&#039;&#039;&lt;br /&gt;
|Tank cannot move forwards or backwards, can steer and jump (even on no jump servers,to be more fair). It&#039;s like being stuck on a pole.&lt;br /&gt;
|- &lt;br /&gt;
|Splash-Damage (SD)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No we don&#039;t do splash damage&#039;&#039;&lt;br /&gt;
|When one of your bullets hits an enemy, he explodes in a shockwave.&lt;br /&gt;
|-&lt;br /&gt;
|PHase shift (PH)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Combines OO, SB and more -- too powerful.&#039;&#039;&lt;br /&gt;
|Oscillation Overthruster, but can backup, jump and shoot in walls. Shoots Super Bullets, and can be killed by Phantom Zone.}&lt;br /&gt;
|-&lt;br /&gt;
|ASsassin (AS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too complex, too powerfull&#039;&#039;&lt;br /&gt;
|As small, fast and short-ranged as thief. Fatal and can&#039;t steal flags. Stealth and Cloaking in effect when someone is not in range, and cloaking in effect when you can&#039;t see them. (partial cloaking in effect when you can see part of them, that is, they&#039;re on the side of your view.) Can be steamrolled by anyone. Longer reload time than Thief. Can only kill once (but maybe you still keep the flag?).&lt;br /&gt;
|-&lt;br /&gt;
|BoMb (BM)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, rather pointless&#039;&#039;&lt;br /&gt;
|Can be transferred to someone by shooting them, also transfers the timer. When the bad flag timer (or another timer) is up, the holder dies and creates a shockwave.&lt;br /&gt;
|-&lt;br /&gt;
|Terrain Immunity (TI)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too map specific&#039;&#039;&lt;br /&gt;
|User is invulnerable to, and can walk through, terrain hazards such as stuff that would normally be fatal to touch and conveyor belts.&lt;br /&gt;
|-&lt;br /&gt;
|Cloaked Bullet (CB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;Same as Cloaked Shot, implemented in 2.99&#039;&#039;&lt;br /&gt;
|Your bullets are invisible out-the-window.&lt;br /&gt;
|-&lt;br /&gt;
|Charge Beam (CB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, just use multiple shots from a regular laser&#039;&#039;&lt;br /&gt;
|Hold mouse button to charge. Releasing shoots a laser that keeps firing for as long as you charged the beam for. (Maybe a limit on charge time, so there&#039;s a limit on how long you fire a laser for?)&lt;br /&gt;
|-&lt;br /&gt;
|Gravitational Field (GF)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;BZFlag is not a physics engine. Possible lag and sync nightmare.&#039;&#039;&lt;br /&gt;
|Attracts nearby tanks and bullets towards you. You are also afected by Newton&#039;s third law, with a resulting force pushing you in the opposite direction of the sum of all the force vectors of  all the tanks and bullets you attract.  It can be good and bad.  With skill you can use this flag to alter bullet paths and tank motion to your/your teammate&#039;s advantage, or to your enemy&#039;s disadvantage.  An example of the effect might be if a tank w/ WG is nearby you could be pulled aloung in flight,although flight would be more difficult for the tank w/ WG. There is a higher risk of being hit and higher difficulty in moving.&lt;br /&gt;
|-&lt;br /&gt;
|Destroy Buildings (DB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, significantly difficult to implement, and allows for to much abbuse&#039;&#039;&lt;br /&gt;
|When your shot hits an object (such as a building) it causes that object to disappear temporarily. Still ricochets off.&lt;br /&gt;
|-&lt;br /&gt;
|PLane (PL)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No multiple flags, no vertical shots, no weird [http://en.wikipedia.org/wiki/Royal_Flying_Corps flying] stuff. This probably won&#039;t be implemented.&#039;&#039;&lt;br /&gt;
|Turns your tank into a plane. Planes have two guns, one on each wing. You can accelerate or decelerate by using scroll wheel up to accelerate, down to decelerate. Point the mouse in the direction you want to turn. If you are shot or touch a wall you turn back into a tank. ENEMY tanks get vertical lock-on on you, meaning if they shoot while you are within their view, then their shot is at an angle upward or downward so that it might hit you. You can get some flags as a plane. Shock wave drops a bomb straight down with the velocity of a shot, plus your velocity; Laser shoots a laser from your nose-cone; Rapid Fire, Super Bullet, Machine Gun, GM are the same as normal (but you still have wing guns); Cloaking, Stealth, and Masquerade are the same; Thief shoots from nose-cone; Black Hole shoots from nose-cone; OO lets you fly through walls (except floor and the surrounding wall, of course); PZ is same as normal; Galaga makes you wider, but you can shoot more shots; Charge Beam from nose-cone; Sensor Package is same as normal; No Ricochet prevents ricochet; etc.. If you drop a flag as a plane, it drops first the grabbed flag, then once you have no grabbed flag, turns you back into a tank. I realize this probably won&#039;t be implemented.&lt;br /&gt;
|-&lt;br /&gt;
|Sensor Package (SP)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too powerful&#039;&#039;&lt;br /&gt;
|In-game description: &amp;quot;Tank has upgraded sensors and can send locks to guided missiles and allies.&amp;quot; Description here: You can see what flag an enemy has, you get those arrow things for enemy team flags as well as your own (and also vertical ones), all walls show up as green wireframe on black background; you get those &amp;quot;enemy in range, enemy to left/right&amp;quot; from Battle Zone when an enemy is in your range; you can lock on to enemies (but not allies) (as you do, all ENEMY missiles within the radius of a SW lock onto them, all ALLIES with GM lock onto them, but not their fired missiles), you also get notifications when you are within an enemy&#039;s line of sight and range, especially when you are within the blast radius of someone with shockwave, you can see what flag somebody has on the radar and HUD (letters over their head). &lt;br /&gt;
|-&lt;br /&gt;
|Flak (FK)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too complex&#039;&#039;&lt;br /&gt;
|Your tank shoots debris (or oval shaped sheilds or whatever they may look like) that collide and disintegrate regular type bullets instantly when the two come in contact.&lt;br /&gt;
|-&lt;br /&gt;
|Improved Masquerade (IM)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, no on shot changes, and too complex&#039;&#039;&lt;br /&gt;
|Your tank appears on the Radar and through the view finder as a friendly tank to the enemy, but not to right-clicks and identification through targeting. However, this lasts until your fire. When you fire, you immediately lose the flag. This is good for infiltrating another side, but as soon as someone right-clicks you in his targeting reticule, your identity is displayed.&lt;br /&gt;
|-&lt;br /&gt;
|Kick back (KB)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, no advantage to the flag, just make it a server option for all shots&#039;&#039;&lt;br /&gt;
|When shot your tanks goes backwards a certain distance. This lasts for a server set # of seconds&lt;br /&gt;
[Note: How is this a positive flag? This is also too similar to Big Bullet.]&lt;br /&gt;
|-&lt;br /&gt;
|Oldschool (OS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, is not general enough, depends on other map setup&#039;&#039;&lt;br /&gt;
|Immune to super bullets, missiles, laser beams, shock waves, and steamrolls. Tanks with other flags can still hit you, and theives can steal your flag; in other words, business as usual. Make others drop their precious flags.&lt;br /&gt;
|-&lt;br /&gt;
|New Age (NA)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, is not general enough, depends on other map setup&#039;&#039;&lt;br /&gt;
|Immune to regular bullets; can only be killed by lasers, missiles, super bullets, steamrolls, and shock waves. Opposite of Oldschool. Probably disabled on maps without easily accessible superweapon flags.&lt;br /&gt;
|-&lt;br /&gt;
|Entanglement (QE)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No&#039;&#039;&lt;br /&gt;
|Whoever kills you gets destroyed by the server.&lt;br /&gt;
|-&lt;br /&gt;
|Laser Tripwire (LT)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too complex&#039;&#039;&lt;br /&gt;
|Shot travels until it strikes a wall, then generates a (non-ricocheting) laser beam along the direction of the surface normal until it reaches another surface. Beam remains until touched by a tank, which is destroyed. If player fires another tripwire, the existing tripwire is deleted.  Player may drop the flag to leave the most recent tripwire in place. Shockwave will delete any tripwire it touches (if not too difficult to code).&lt;br /&gt;
|-&lt;br /&gt;
|Shotgun (SG) (Different to other one)&lt;br /&gt;
| +/-&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too much like MG, same as the other ShotGun suggestion&#039;&#039;&lt;br /&gt;
|All available shots are fired at once (set # by server), 1 straight, the next a set # of degrees left of the first, then the next # of degress right of the first and so on creating dispersed shots. Fast bullets but reduced range, no ricochet and very slow reload time. Good against multiple enemies in range and provides strategic usage of walls for cover while reloading. Useless against laser and guided missle and good players can jump/avoid and shoot you while reloading which is why shots travel faster. Good for short range but useless in long range.&lt;br /&gt;
|-&lt;br /&gt;
|Air Safe (AS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, GM already has a counter flag: ST&#039;&#039;&lt;br /&gt;
|Countermeasure for guided missle. Guided missles that come within sw radius of the player are destroyed but all other shots unaffected. Dampens power of guided missle.&lt;br /&gt;
|-&lt;br /&gt;
|SHort tank (SH)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, simply make a server option to make burrow jump&#039;&#039;&lt;br /&gt;
|Makes tank short. Exactly like burrow except that it allows you to be on buildings and jump.&lt;br /&gt;
|-&lt;br /&gt;
|Communications Disruption (CD)&lt;br /&gt;
| -&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too specific to a play style&#039;&#039;&lt;br /&gt;
|You cannot send team messages. You can still send PMs, Admin messages and public messages.&lt;br /&gt;
|- &lt;br /&gt;
|Double Shot (DS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too complex, with not enough added benefit. Shots would have to bounce in non physical ways to seperate.&#039;&#039;&lt;br /&gt;
|Every time a player with this flag fires and the shots bounce off a wall (or other object) it splits the shot into 2 shots. Can only happen once (split shots cannot split again).&lt;br /&gt;
|- &lt;br /&gt;
|Super Shield (SS)&lt;br /&gt;
| +&lt;br /&gt;
|style=&amp;quot;background-color:#ffff00;&amp;quot;|&#039;&#039;No, too complex&#039;&#039;&lt;br /&gt;
|You have to be shot a set amount of times to die. A bit like shield BUT different types of shots damage the tank more. (Say a tanks picks up the SS flag and he/she has to be hit 5 times to die, but SW takes off 4 hits so he only has to be hit 2 times with SW to die).  This could also work with Double Shot (DS) where when the shot splits it only makes half the damage of a normal shot. (He/she would now have to be hit 10 times with split bullets to die). Maybe put a health bar over the players tank that shows how many times YOU have to hit the tank with your bullets. (P1 gets SS flag and has to be hit 4 times to die, P2 gets GM (which takes off 2 hits) and he looks at P1 and it has the health bar and a number saying 2 (P2 has to hit P1 with the GM that he has 2 times) then P3 gets a SW flag and the health bar says 1 (because SW takes off 4 points and P1 only has 4 health points).  If the health bar is too hard then i think that you could just have the SS without a health bar.&lt;br /&gt;
|-&lt;br /&gt;
|Flag Magnet (FM)&lt;br /&gt;
| +&lt;br /&gt;
|&lt;br /&gt;
|When you shoot this, all nearby flags get pulled into it and disappear (Go to phantom zone?)&lt;br /&gt;
|-&lt;br /&gt;
|Flag Changer (FC)&lt;br /&gt;
| +&lt;br /&gt;
|&lt;br /&gt;
|You can give/take somebody bad/good flags. (Zoned flags too?) Dontkillmyimabeg.&lt;br /&gt;
|-&lt;br /&gt;
[[Category:Gameplay]]&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=5274</id>
		<title>Functions (API)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=5274"/>
		<updated>2008-12-20T06:10:37Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: /* Reporting */ bz_fileReport takes two arguments, not one (the second argument is the player to indicate that the report has come from)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DoDoc|Fill in articles for all API Functions}}&lt;br /&gt;
&lt;br /&gt;
{{BZFS_API_Doc}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The BZFS API provides a number of functions to plug-ins for use in querying the current game state. Functions are used both to get information about the game, and to trigger in game actions, such as activating a world weapon.&lt;br /&gt;
&lt;br /&gt;
==Function Groups==&lt;br /&gt;
Functions are broken into a series of groups based on the type of action or information they deal with.&lt;br /&gt;
&lt;br /&gt;
===Event Registration===&lt;br /&gt;
 BZF_API bool [[bz_registerEvent]] ( [[Events(API)|bz_eEventType]] eventType, [[Events(API)|bz_EventHandler]]* eventHandler );&lt;br /&gt;
 BZF_API bool [[bz_removeEvent]] ( [[Events(API)|bz_eEventType]] eventType, [[Events(API)|bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
===Non-Player Connections===&lt;br /&gt;
 BZF_API bool [[bz_registerNonPlayerConnectionHandler]] ( int connectionID, [[bz_NonPlayerConnectionHandler]]* handler );&lt;br /&gt;
 BZF_API bool [[bz_removeNonPlayerConnectionHandler]] ( int connectionID, [[bz_NonPlayerConnectionHandler]]* handler );&lt;br /&gt;
 BZF_API bool [[bz_sendNonPlayerData]] ( int connectionID, const void *data, unsigned int size );&lt;br /&gt;
 BZF_API bool [[bz_disconectNonPlayerConnection]] ( int connectionID );&lt;br /&gt;
&lt;br /&gt;
===Player Information===&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_getPlayerIndexList]] ( [[bz_APIIntList]] *playerList );&lt;br /&gt;
 BZF_API [[bz_APIIntList]] *[[bz_getPlayerIndexList]] ( void );&lt;br /&gt;
 BZF_API [[bz_BasePlayerRecord]] *[[bz_getPlayerByIndex]] ( int index );&lt;br /&gt;
 BZF_API bool [[bz_updatePlayerData]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
 BZF_API bool [[bz_hasPerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_grantPerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_revokePerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_getAdmin]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_validAdminPassword]] ( const char* passwd );&lt;br /&gt;
 BZF_API bool [[bz_freePlayerRecord]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
 BZF_API const char* [[bz_getPlayerFlag]] ( int playerID );&lt;br /&gt;
 BZF_API const char* [[bz_getPlayerCallsign]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_getPlayerCurrentState]] ( int playerID, [[bz_PlayerUpdateState]] &amp;amp;state );&lt;br /&gt;
 BZF_API bool [[bz_isPlayerPaused]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerOperator]] ( int playerId );&lt;br /&gt;
 BZF_API [[bz_APIIntList]]* [[bz_getPlayerIndexList]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_canPlayerSpawn]]( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerSpawnable]]( int playerID, bool spawn );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerLimboMessage]]( int playerID, const char* text );&lt;br /&gt;
 BZF_API int [[bz_getPlayerCount]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_anyPlayers]] ( void );&lt;br /&gt;
&lt;br /&gt;
=== Team Management===&lt;br /&gt;
 BZF_API unsigned int [[bz_getTeamPlayerLimit]] ( bz_eTeamType team )&lt;br /&gt;
 BZF_API int [[bz_getTeamCount]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamScore]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamWins]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamLosses]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API void [[bz_setTeamWins]] ([[bz_eTeamType]] team, int wins );&lt;br /&gt;
 BZF_API void [[bz_setTeamLosses]] ([[bz_eTeamType]] team, int losses );&lt;br /&gt;
 BZF_API void [[bz_resetTeamScore]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API void [[bz_resetTeamScores]] ( void );&lt;br /&gt;
 BZF_API void [[bz_changeTeam]]( int player, [[bz_eTeamType]] team );&lt;br /&gt;
&lt;br /&gt;
=== Score Management ===&lt;br /&gt;
 BZF_API bool [[bz_setPlayerWins]] (int playerId, int wins);&lt;br /&gt;
 BZF_API bool [[bz_setPlayerLosses]] (int playerId, int losses);&lt;br /&gt;
 BZF_API bool [[bz_setPlayerTKs]] (int playerId, int tks);&lt;br /&gt;
 BZF_API bool [[bz_resetPlayerScore]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerWins]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerLosses]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerTKs]] (int playerId);&lt;br /&gt;
&lt;br /&gt;
=== Latency Information ===&lt;br /&gt;
 BZF_API int [[bz_getPlayerLag]] ( int playerId );&lt;br /&gt;
 BZF_API int [[bz_getPlayerJitter]] ( int playerId );&lt;br /&gt;
 BZF_API float [[bz_getPlayerPacketloss]] ( int playerId );&lt;br /&gt;
&lt;br /&gt;
=== Permission Group Management ===&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* [[bz_getGroupList]] ( void );&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* [[bz_getGroupPerms]] ( const char* group );&lt;br /&gt;
 BZF_API bool [[bz_groupAllowPerm]]( const char* group, const char* perm );&lt;br /&gt;
&lt;br /&gt;
=== Chat Messages ===&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessage]] (int from, int to, const char* message);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessage]] (int from, [[bz_eTeamType]] to, const char* message);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessagef]] (int from, int to, const char* fmt, ...);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessagef]] (int from, [[bz_eTeamType]] to, const char* fmt, ...);&lt;br /&gt;
 BZF_API bool [[bz_sendFetchResMessage]] ( int playerID,  const char* URL );&lt;br /&gt;
&lt;br /&gt;
=== Server Management ===&lt;br /&gt;
 BZF_API bool [[bz_restart]] ( void );&lt;br /&gt;
 BZF_API void [[bz_shutdown]] ();&lt;br /&gt;
 BZF_API void [[bz_superkill]] ();&lt;br /&gt;
 BZF_API void [[bz_gameOver]] (int playerID, bz_eTeamType = eNoTeam);&lt;br /&gt;
 BZF_API void [[bz_reloadLocalBans]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadMasterBans]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadGroups]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadUsers]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadHelp]] ();&lt;br /&gt;
&lt;br /&gt;
=== Rabbit Hunt===&lt;br /&gt;
 BZF_API void [[bz_newRabbit]]( int player, bool swap );&lt;br /&gt;
 BZF_API void [[bz_removeRabbit]]( int player );&lt;br /&gt;
&lt;br /&gt;
=== Map Management ===&lt;br /&gt;
 BZF_API void [[bz_setClientWorldDownloadURL]]( const char* URL );&lt;br /&gt;
 BZF_API const bzApiString [[bz_getClientWorldDownloadURL]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_saveWorldCacheFile]]( const char* file );&lt;br /&gt;
&lt;br /&gt;
=== Flag Management ===&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_givePlayerFlag]] ( int playerID, const char* flagType, bool force );&lt;br /&gt;
 BZF_API bool [[bz_removePlayerFlag]] ( int playerID );&lt;br /&gt;
 BZF_API void [[bz_resetFlags]] ( bool onlyUnused );&lt;br /&gt;
 BZF_API unsigned int [[bz_getNumFlags]] ( void );&lt;br /&gt;
 BZF_API const [[bz_ApiString]] [[bz_getFlagName]]( int flag );&lt;br /&gt;
 BZF_API bool [[bz_resetFlag]] ( int flag );&lt;br /&gt;
 BZF_API int [[bz_flagPlayer]] ( int flag );&lt;br /&gt;
 BZF_API bool [[bz_getFlagPosition]] ( int flag, float* pos );&lt;br /&gt;
 BZF_API bool [[bz_moveFlag]] ( int flag, float pos[3], bool reset = true );&lt;br /&gt;
 BZF_API bool [[bz_RegisterCustomFlag]] ( const char* abbr, const char* name, const char* helpString, bz_eShotType shotType, bz_eFlagQuality quality );&lt;br /&gt;
&lt;br /&gt;
=== Shot Type Control ===&lt;br /&gt;
 BZF_API bool [[bz_setPlayerShotType]]( int playerId, [[bz_eShotType]] shotType );&lt;br /&gt;
&lt;br /&gt;
=== World Weapon Management ===&lt;br /&gt;
 BZF_API bool [[bz_fireWorldWep]] ( const char* flagType, float lifetime, float *pos, float tilt, float direction, int shotID , float dt );&lt;br /&gt;
 BZF_API int [[bz_fireWorldGM]] ( int targetPlayerID, float lifetime, float *pos, float tilt, float direction, float dt);&lt;br /&gt;
&lt;br /&gt;
=== Server Time ===&lt;br /&gt;
 BZF_API double [[bz_getCurrentTime]] ( void );&lt;br /&gt;
 BZF_API float [[bz_getMaxWaitTime]] ( void );&lt;br /&gt;
 BZF_API void [[bz_setMaxWaitTime]] ( float maxTime );&lt;br /&gt;
 BZF_API void [[bz_getLocaltime]] ( [[bz_localTime]] *ts );&lt;br /&gt;
&lt;br /&gt;
=== Global Database Management (BZDB) ===&lt;br /&gt;
 BZF_API double [[bz_getBZDBDouble]] ( const char* variable );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getBZDBString]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_getBZDBBool]]( const char* variable );&lt;br /&gt;
 BZF_API int [[bz_getBZDBInt]]( const char* variable );&lt;br /&gt;
 BZF_API int [[bz_getBZDBItemPerms]] ( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_getBZDBItemPersistent]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_BZDBItemExists]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBDouble]] ( const char* variable, double val, int perms = 0, bool persistent = false );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBString]]( const char* variable, const char *val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBBool]]( const char* variable, bool val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBInt]]( const char* variable, int val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API int [[bz_getBZDBVarList]]( bz_APIStringList	*varList );&lt;br /&gt;
 BZF_API void [[bz_resetBZDBVar]]( const char* variable );&lt;br /&gt;
 BZF_API void [[bz_resetALLBZDBVars]]( void );&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
 BZF_API void [[bz_debugMessage]] ( int level, const char* message );&lt;br /&gt;
 BZF_API void [[bz_debugMessagef]]( int level, const char* fmt, ... )&lt;br /&gt;
 BZF_API int [[bz_getDebugLevel]] ( void );&lt;br /&gt;
&lt;br /&gt;
===Server Administration===&lt;br /&gt;
 BZF_API bool [[bz_kickUser]] ( int playerIndex, const char* reason, bool notify );&lt;br /&gt;
 BZF_API bool [[bz_IPBanUser]] ( const char* ipAddress, const char* ip, int durration, const char* reason );&lt;br /&gt;
 BZF_API bool [[bz_IDBanUser]] ( const char* bzid, const char* bzID , int duration, const char *reason );&lt;br /&gt;
 BZF_API bool [[bz_IPUnbanUser]] ( const char* ip );&lt;br /&gt;
 BZF_API bool [[bz_IDUnbanUser]] ( const char* bzID );&lt;br /&gt;
 &lt;br /&gt;
 BZF_API int [[bz_getLagWarn]]( void );&lt;br /&gt;
 BZF_API bool [[bz_setLagWarn]]( int lagwarn );&lt;br /&gt;
 BZF_API bool [[bz_pollActive]]( void );&lt;br /&gt;
 BZF_API bool [[bz_pollVeto]]( void );&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* bz_getReports( void );&lt;br /&gt;
 BZF_API [[bool bz_fileReport]]( const char* message, const char* from );&lt;br /&gt;
&lt;br /&gt;
=== Timed Game Management===&lt;br /&gt;
 BZF_API bool [[bz_setTimeLimit]]( float timeLimit );&lt;br /&gt;
 BZF_API float [[bz_getTimeLimit]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isTimeManualStart]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isCountDownActive]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isCountDownInProgress]]( void );&lt;br /&gt;
 BZF_API void [[bz_pauseCountdown]] ( const char *pausedBy );&lt;br /&gt;
 BZF_API void [[bz_resumeCountdown]] ( const char *resumedBy );&lt;br /&gt;
 BZF_API void [[bz_startCountdown]] ( int delay, float limit, const char *byWho );&lt;br /&gt;
&lt;br /&gt;
=== Custom Text Commands===&lt;br /&gt;
 BZF_API bool [[bz_registerCustomSlashCommand]] ( const char* command, [[bz_CustomSlashCommandHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomSlashCommand]] ( const char* command );&lt;br /&gt;
&lt;br /&gt;
===Plug-in Management===&lt;br /&gt;
 BZF_API int [[bz_getLoadedPlugins]]( bz_APIStringList * list );&lt;br /&gt;
 BZF_API bool [[bz_loadPlugin]]( const char* path, const char* params );&lt;br /&gt;
 BZF_API bool [[bz_unloadPlugin]]( const char* path );&lt;br /&gt;
 BZF_API bool [[bz_registerCustomPluginHandler]] ( const char* extension, [[bz_APIPluginHandler]] * handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomPluginHandler]] ( const char* extension, [[bz_APIPluginHandler]] * handler );&lt;br /&gt;
&lt;br /&gt;
=== Public Server Information===&lt;br /&gt;
 BZF_API bool [[bz_getPublic]]( void );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getPublicAddr]]( void );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getPublicDescription]]( void );&lt;br /&gt;
 BZF_API void [[bz_updateListServer]] ( void );&lt;br /&gt;
&lt;br /&gt;
===HTTP Transfer===&lt;br /&gt;
 BZF_API bool [[bz_addURLJob]] ( const char* URL, [[bz_BaseURLHandler]]* handler = NULL, const char* postData = NULL );&lt;br /&gt;
 BZF_API bool [[bz_removeURLJob]] ( const char* URL );&lt;br /&gt;
 BZF_API bool [[bz_stopAllURLJobs]] ( void );&lt;br /&gt;
&lt;br /&gt;
===Inter-Plug-in Communications===&lt;br /&gt;
 BZF_API bool [[bz_clipFieldExists]] ( const char *name );&lt;br /&gt;
 BZF_API const char* [[bz_getclipFieldString]] ( const char *name );&lt;br /&gt;
 BZF_API float [[bz_getclipFieldFloat]] ( const char *name );&lt;br /&gt;
 BZF_API int [[bz_getclipFieldInt]] ( const char *name );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldString]] ( const char *name, const char* data );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldFloat]] ( const char *name, float data );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldInt]] ( const char *name, int data );&lt;br /&gt;
 BZF_API bool [[bz_addClipFieldNotifier]] ( const char *name, [[bz_ClipFiledNotifier *cb );&lt;br /&gt;
 BZF_API [[_removeClipFieldNotifier]] ( const char *name, [[bz_ClipFiledNotifier *cb );&lt;br /&gt;
&lt;br /&gt;
===Game Recording===&lt;br /&gt;
 BZF_API bool [[bz_saveRecBuf]]( const char * _filename, int seconds);&lt;br /&gt;
 BZF_API bool [[bz_startRecBuf]]( void );&lt;br /&gt;
 BZF_API bool [[bz_stopRecBuf]]( void );&lt;br /&gt;
&lt;br /&gt;
===Map Management===&lt;br /&gt;
====Map Information====&lt;br /&gt;
 BZF_API void [[bz_getWorldSize]]( float *size, float *wallHeight );&lt;br /&gt;
 BZF_API int [[bz_getWorldObjectCount]]( void );&lt;br /&gt;
 BZF_API [[bz_APIWorldObjectList]]* [[bz_getWorldObjectList]]( void );&lt;br /&gt;
 BZF_API void [[bz_releaseWorldObjectList]]( [[bz_APIWorldObjectList]]* list );&lt;br /&gt;
&lt;br /&gt;
====Map Collisions====&lt;br /&gt;
 [[bz_eAPIColType]] [[bz_cylinderInMapObject]] ( float pos[3], float height, float radius, [[bz_APIBaseWorldObject]] **object );&lt;br /&gt;
 [[bz_eAPIColType]] [[bz_boxInMapObject]] ( float pos[3], float size[3], float angle, [[bz_APIBaseWorldObject]] **object );&lt;br /&gt;
&lt;br /&gt;
====Custom Map Objects====&lt;br /&gt;
 BZF_API bool [[bz_registerCustomMapObject]] ( const char* object, [[bz_CustomMapObjectHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomMapObject]] ( const char* object );&lt;br /&gt;
&lt;br /&gt;
===Utility===&lt;br /&gt;
 BZF_API const char *[[bz_MD5]](const char* str);&lt;br /&gt;
 BZF_API const char *[[bz_MD5]](const void* data, size_t size);&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
 BZF_API bool [[bz_getStandardSpawn]] ( int playerID, float pos[3], float *rot );&lt;br /&gt;
 BZF_API bool [[bz_killPlayer]] ( int playerID, bool spawnOnBase, int killerID = -1, const char* flagID = NULL );&lt;br /&gt;
 BZF_API bool [[bz_sendPlayCustomLocalSound]] ( int playerID, const char* soundName );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_filterPath]] ( const char* path );&lt;br /&gt;
 BZF_API const char *[[bz_format]](const char* fmt, ...)_ATTRIBUTE12;&lt;br /&gt;
 BZF_API const char *[[bz_toupper]](const char* val );&lt;br /&gt;
 BZF_API const char *[[bz_tolower]](const char* val );&lt;br /&gt;
 BZF_API const char *[[bz_urlEncode]](const char* val );&lt;br /&gt;
 BZF_API [[bz_eGameType]] [[bz_getGameType]]( void );&lt;br /&gt;
 BZF_API [[bz_eTeamType]] [[bz_checkBaseAtPoint]] ( float pos[3] );&lt;br /&gt;
&lt;br /&gt;
===Server Side Players (Development)===&lt;br /&gt;
 BZF_API int [[bz_addServerSidePlayer]] ( [[bz_ServerSidePlayerHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeServerSidePlayer]] ( int playerID, [[bz_ServerSidePlayerHandler]] *handler );&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[BZFS API]]&lt;br /&gt;
&lt;br /&gt;
[[plug-ins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:BZFS_API_Functions]]&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=5273</id>
		<title>Functions (API)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=5273"/>
		<updated>2008-12-20T06:08:09Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: /* Server Administration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DoDoc|Fill in articles for all API Functions}}&lt;br /&gt;
&lt;br /&gt;
{{BZFS_API_Doc}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The BZFS API provides a number of functions to plug-ins for use in querying the current game state. Functions are used both to get information about the game, and to trigger in game actions, such as activating a world weapon.&lt;br /&gt;
&lt;br /&gt;
==Function Groups==&lt;br /&gt;
Functions are broken into a series of groups based on the type of action or information they deal with.&lt;br /&gt;
&lt;br /&gt;
===Event Registration===&lt;br /&gt;
 BZF_API bool [[bz_registerEvent]] ( [[Events(API)|bz_eEventType]] eventType, [[Events(API)|bz_EventHandler]]* eventHandler );&lt;br /&gt;
 BZF_API bool [[bz_removeEvent]] ( [[Events(API)|bz_eEventType]] eventType, [[Events(API)|bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
===Non-Player Connections===&lt;br /&gt;
 BZF_API bool [[bz_registerNonPlayerConnectionHandler]] ( int connectionID, [[bz_NonPlayerConnectionHandler]]* handler );&lt;br /&gt;
 BZF_API bool [[bz_removeNonPlayerConnectionHandler]] ( int connectionID, [[bz_NonPlayerConnectionHandler]]* handler );&lt;br /&gt;
 BZF_API bool [[bz_sendNonPlayerData]] ( int connectionID, const void *data, unsigned int size );&lt;br /&gt;
 BZF_API bool [[bz_disconectNonPlayerConnection]] ( int connectionID );&lt;br /&gt;
&lt;br /&gt;
===Player Information===&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_getPlayerIndexList]] ( [[bz_APIIntList]] *playerList );&lt;br /&gt;
 BZF_API [[bz_APIIntList]] *[[bz_getPlayerIndexList]] ( void );&lt;br /&gt;
 BZF_API [[bz_BasePlayerRecord]] *[[bz_getPlayerByIndex]] ( int index );&lt;br /&gt;
 BZF_API bool [[bz_updatePlayerData]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
 BZF_API bool [[bz_hasPerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_grantPerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_revokePerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_getAdmin]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_validAdminPassword]] ( const char* passwd );&lt;br /&gt;
 BZF_API bool [[bz_freePlayerRecord]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
 BZF_API const char* [[bz_getPlayerFlag]] ( int playerID );&lt;br /&gt;
 BZF_API const char* [[bz_getPlayerCallsign]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_getPlayerCurrentState]] ( int playerID, [[bz_PlayerUpdateState]] &amp;amp;state );&lt;br /&gt;
 BZF_API bool [[bz_isPlayerPaused]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerOperator]] ( int playerId );&lt;br /&gt;
 BZF_API [[bz_APIIntList]]* [[bz_getPlayerIndexList]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_canPlayerSpawn]]( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerSpawnable]]( int playerID, bool spawn );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerLimboMessage]]( int playerID, const char* text );&lt;br /&gt;
 BZF_API int [[bz_getPlayerCount]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_anyPlayers]] ( void );&lt;br /&gt;
&lt;br /&gt;
=== Team Management===&lt;br /&gt;
 BZF_API unsigned int [[bz_getTeamPlayerLimit]] ( bz_eTeamType team )&lt;br /&gt;
 BZF_API int [[bz_getTeamCount]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamScore]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamWins]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamLosses]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API void [[bz_setTeamWins]] ([[bz_eTeamType]] team, int wins );&lt;br /&gt;
 BZF_API void [[bz_setTeamLosses]] ([[bz_eTeamType]] team, int losses );&lt;br /&gt;
 BZF_API void [[bz_resetTeamScore]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API void [[bz_resetTeamScores]] ( void );&lt;br /&gt;
 BZF_API void [[bz_changeTeam]]( int player, [[bz_eTeamType]] team );&lt;br /&gt;
&lt;br /&gt;
=== Score Management ===&lt;br /&gt;
 BZF_API bool [[bz_setPlayerWins]] (int playerId, int wins);&lt;br /&gt;
 BZF_API bool [[bz_setPlayerLosses]] (int playerId, int losses);&lt;br /&gt;
 BZF_API bool [[bz_setPlayerTKs]] (int playerId, int tks);&lt;br /&gt;
 BZF_API bool [[bz_resetPlayerScore]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerWins]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerLosses]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerTKs]] (int playerId);&lt;br /&gt;
&lt;br /&gt;
=== Latency Information ===&lt;br /&gt;
 BZF_API int [[bz_getPlayerLag]] ( int playerId );&lt;br /&gt;
 BZF_API int [[bz_getPlayerJitter]] ( int playerId );&lt;br /&gt;
 BZF_API float [[bz_getPlayerPacketloss]] ( int playerId );&lt;br /&gt;
&lt;br /&gt;
=== Permission Group Management ===&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* [[bz_getGroupList]] ( void );&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* [[bz_getGroupPerms]] ( const char* group );&lt;br /&gt;
 BZF_API bool [[bz_groupAllowPerm]]( const char* group, const char* perm );&lt;br /&gt;
&lt;br /&gt;
=== Chat Messages ===&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessage]] (int from, int to, const char* message);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessage]] (int from, [[bz_eTeamType]] to, const char* message);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessagef]] (int from, int to, const char* fmt, ...);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessagef]] (int from, [[bz_eTeamType]] to, const char* fmt, ...);&lt;br /&gt;
 BZF_API bool [[bz_sendFetchResMessage]] ( int playerID,  const char* URL );&lt;br /&gt;
&lt;br /&gt;
=== Server Management ===&lt;br /&gt;
 BZF_API bool [[bz_restart]] ( void );&lt;br /&gt;
 BZF_API void [[bz_shutdown]] ();&lt;br /&gt;
 BZF_API void [[bz_superkill]] ();&lt;br /&gt;
 BZF_API void [[bz_gameOver]] (int playerID, bz_eTeamType = eNoTeam);&lt;br /&gt;
 BZF_API void [[bz_reloadLocalBans]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadMasterBans]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadGroups]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadUsers]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadHelp]] ();&lt;br /&gt;
&lt;br /&gt;
=== Rabbit Hunt===&lt;br /&gt;
 BZF_API void [[bz_newRabbit]]( int player, bool swap );&lt;br /&gt;
 BZF_API void [[bz_removeRabbit]]( int player );&lt;br /&gt;
&lt;br /&gt;
=== Map Management ===&lt;br /&gt;
 BZF_API void [[bz_setClientWorldDownloadURL]]( const char* URL );&lt;br /&gt;
 BZF_API const bzApiString [[bz_getClientWorldDownloadURL]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_saveWorldCacheFile]]( const char* file );&lt;br /&gt;
&lt;br /&gt;
=== Flag Management ===&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_givePlayerFlag]] ( int playerID, const char* flagType, bool force );&lt;br /&gt;
 BZF_API bool [[bz_removePlayerFlag]] ( int playerID );&lt;br /&gt;
 BZF_API void [[bz_resetFlags]] ( bool onlyUnused );&lt;br /&gt;
 BZF_API unsigned int [[bz_getNumFlags]] ( void );&lt;br /&gt;
 BZF_API const [[bz_ApiString]] [[bz_getFlagName]]( int flag );&lt;br /&gt;
 BZF_API bool [[bz_resetFlag]] ( int flag );&lt;br /&gt;
 BZF_API int [[bz_flagPlayer]] ( int flag );&lt;br /&gt;
 BZF_API bool [[bz_getFlagPosition]] ( int flag, float* pos );&lt;br /&gt;
 BZF_API bool [[bz_moveFlag]] ( int flag, float pos[3], bool reset = true );&lt;br /&gt;
 BZF_API bool [[bz_RegisterCustomFlag]] ( const char* abbr, const char* name, const char* helpString, bz_eShotType shotType, bz_eFlagQuality quality );&lt;br /&gt;
&lt;br /&gt;
=== Shot Type Control ===&lt;br /&gt;
 BZF_API bool [[bz_setPlayerShotType]]( int playerId, [[bz_eShotType]] shotType );&lt;br /&gt;
&lt;br /&gt;
=== World Weapon Management ===&lt;br /&gt;
 BZF_API bool [[bz_fireWorldWep]] ( const char* flagType, float lifetime, float *pos, float tilt, float direction, int shotID , float dt );&lt;br /&gt;
 BZF_API int [[bz_fireWorldGM]] ( int targetPlayerID, float lifetime, float *pos, float tilt, float direction, float dt);&lt;br /&gt;
&lt;br /&gt;
=== Server Time ===&lt;br /&gt;
 BZF_API double [[bz_getCurrentTime]] ( void );&lt;br /&gt;
 BZF_API float [[bz_getMaxWaitTime]] ( void );&lt;br /&gt;
 BZF_API void [[bz_setMaxWaitTime]] ( float maxTime );&lt;br /&gt;
 BZF_API void [[bz_getLocaltime]] ( [[bz_localTime]] *ts );&lt;br /&gt;
&lt;br /&gt;
=== Global Database Management (BZDB) ===&lt;br /&gt;
 BZF_API double [[bz_getBZDBDouble]] ( const char* variable );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getBZDBString]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_getBZDBBool]]( const char* variable );&lt;br /&gt;
 BZF_API int [[bz_getBZDBInt]]( const char* variable );&lt;br /&gt;
 BZF_API int [[bz_getBZDBItemPerms]] ( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_getBZDBItemPersistent]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_BZDBItemExists]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBDouble]] ( const char* variable, double val, int perms = 0, bool persistent = false );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBString]]( const char* variable, const char *val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBBool]]( const char* variable, bool val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBInt]]( const char* variable, int val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API int [[bz_getBZDBVarList]]( bz_APIStringList	*varList );&lt;br /&gt;
 BZF_API void [[bz_resetBZDBVar]]( const char* variable );&lt;br /&gt;
 BZF_API void [[bz_resetALLBZDBVars]]( void );&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
 BZF_API void [[bz_debugMessage]] ( int level, const char* message );&lt;br /&gt;
 BZF_API void [[bz_debugMessagef]]( int level, const char* fmt, ... )&lt;br /&gt;
 BZF_API int [[bz_getDebugLevel]] ( void );&lt;br /&gt;
&lt;br /&gt;
===Server Administration===&lt;br /&gt;
 BZF_API bool [[bz_kickUser]] ( int playerIndex, const char* reason, bool notify );&lt;br /&gt;
 BZF_API bool [[bz_IPBanUser]] ( const char* ipAddress, const char* ip, int durration, const char* reason );&lt;br /&gt;
 BZF_API bool [[bz_IDBanUser]] ( const char* bzid, const char* bzID , int duration, const char *reason );&lt;br /&gt;
 BZF_API bool [[bz_IPUnbanUser]] ( const char* ip );&lt;br /&gt;
 BZF_API bool [[bz_IDUnbanUser]] ( const char* bzID );&lt;br /&gt;
 &lt;br /&gt;
 BZF_API int [[bz_getLagWarn]]( void );&lt;br /&gt;
 BZF_API bool [[bz_setLagWarn]]( int lagwarn );&lt;br /&gt;
 BZF_API bool [[bz_pollActive]]( void );&lt;br /&gt;
 BZF_API bool [[bz_pollVeto]]( void );&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* bz_getReports( void );&lt;br /&gt;
 BZF_API [[bool bz_fileReport]]( const char* message );&lt;br /&gt;
&lt;br /&gt;
=== Timed Game Management===&lt;br /&gt;
 BZF_API bool [[bz_setTimeLimit]]( float timeLimit );&lt;br /&gt;
 BZF_API float [[bz_getTimeLimit]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isTimeManualStart]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isCountDownActive]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isCountDownInProgress]]( void );&lt;br /&gt;
 BZF_API void [[bz_pauseCountdown]] ( const char *pausedBy );&lt;br /&gt;
 BZF_API void [[bz_resumeCountdown]] ( const char *resumedBy );&lt;br /&gt;
 BZF_API void [[bz_startCountdown]] ( int delay, float limit, const char *byWho );&lt;br /&gt;
&lt;br /&gt;
=== Custom Text Commands===&lt;br /&gt;
 BZF_API bool [[bz_registerCustomSlashCommand]] ( const char* command, [[bz_CustomSlashCommandHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomSlashCommand]] ( const char* command );&lt;br /&gt;
&lt;br /&gt;
===Plug-in Management===&lt;br /&gt;
 BZF_API int [[bz_getLoadedPlugins]]( bz_APIStringList * list );&lt;br /&gt;
 BZF_API bool [[bz_loadPlugin]]( const char* path, const char* params );&lt;br /&gt;
 BZF_API bool [[bz_unloadPlugin]]( const char* path );&lt;br /&gt;
 BZF_API bool [[bz_registerCustomPluginHandler]] ( const char* extension, [[bz_APIPluginHandler]] * handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomPluginHandler]] ( const char* extension, [[bz_APIPluginHandler]] * handler );&lt;br /&gt;
&lt;br /&gt;
=== Public Server Information===&lt;br /&gt;
 BZF_API bool [[bz_getPublic]]( void );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getPublicAddr]]( void );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getPublicDescription]]( void );&lt;br /&gt;
 BZF_API void [[bz_updateListServer]] ( void );&lt;br /&gt;
&lt;br /&gt;
===HTTP Transfer===&lt;br /&gt;
 BZF_API bool [[bz_addURLJob]] ( const char* URL, [[bz_BaseURLHandler]]* handler = NULL, const char* postData = NULL );&lt;br /&gt;
 BZF_API bool [[bz_removeURLJob]] ( const char* URL );&lt;br /&gt;
 BZF_API bool [[bz_stopAllURLJobs]] ( void );&lt;br /&gt;
&lt;br /&gt;
===Inter-Plug-in Communications===&lt;br /&gt;
 BZF_API bool [[bz_clipFieldExists]] ( const char *name );&lt;br /&gt;
 BZF_API const char* [[bz_getclipFieldString]] ( const char *name );&lt;br /&gt;
 BZF_API float [[bz_getclipFieldFloat]] ( const char *name );&lt;br /&gt;
 BZF_API int [[bz_getclipFieldInt]] ( const char *name );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldString]] ( const char *name, const char* data );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldFloat]] ( const char *name, float data );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldInt]] ( const char *name, int data );&lt;br /&gt;
 BZF_API bool [[bz_addClipFieldNotifier]] ( const char *name, [[bz_ClipFiledNotifier *cb );&lt;br /&gt;
 BZF_API [[_removeClipFieldNotifier]] ( const char *name, [[bz_ClipFiledNotifier *cb );&lt;br /&gt;
&lt;br /&gt;
===Game Recording===&lt;br /&gt;
 BZF_API bool [[bz_saveRecBuf]]( const char * _filename, int seconds);&lt;br /&gt;
 BZF_API bool [[bz_startRecBuf]]( void );&lt;br /&gt;
 BZF_API bool [[bz_stopRecBuf]]( void );&lt;br /&gt;
&lt;br /&gt;
===Map Management===&lt;br /&gt;
====Map Information====&lt;br /&gt;
 BZF_API void [[bz_getWorldSize]]( float *size, float *wallHeight );&lt;br /&gt;
 BZF_API int [[bz_getWorldObjectCount]]( void );&lt;br /&gt;
 BZF_API [[bz_APIWorldObjectList]]* [[bz_getWorldObjectList]]( void );&lt;br /&gt;
 BZF_API void [[bz_releaseWorldObjectList]]( [[bz_APIWorldObjectList]]* list );&lt;br /&gt;
&lt;br /&gt;
====Map Collisions====&lt;br /&gt;
 [[bz_eAPIColType]] [[bz_cylinderInMapObject]] ( float pos[3], float height, float radius, [[bz_APIBaseWorldObject]] **object );&lt;br /&gt;
 [[bz_eAPIColType]] [[bz_boxInMapObject]] ( float pos[3], float size[3], float angle, [[bz_APIBaseWorldObject]] **object );&lt;br /&gt;
&lt;br /&gt;
====Custom Map Objects====&lt;br /&gt;
 BZF_API bool [[bz_registerCustomMapObject]] ( const char* object, [[bz_CustomMapObjectHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomMapObject]] ( const char* object );&lt;br /&gt;
&lt;br /&gt;
===Utility===&lt;br /&gt;
 BZF_API const char *[[bz_MD5]](const char* str);&lt;br /&gt;
 BZF_API const char *[[bz_MD5]](const void* data, size_t size);&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
 BZF_API bool [[bz_getStandardSpawn]] ( int playerID, float pos[3], float *rot );&lt;br /&gt;
 BZF_API bool [[bz_killPlayer]] ( int playerID, bool spawnOnBase, int killerID = -1, const char* flagID = NULL );&lt;br /&gt;
 BZF_API bool [[bz_sendPlayCustomLocalSound]] ( int playerID, const char* soundName );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_filterPath]] ( const char* path );&lt;br /&gt;
 BZF_API const char *[[bz_format]](const char* fmt, ...)_ATTRIBUTE12;&lt;br /&gt;
 BZF_API const char *[[bz_toupper]](const char* val );&lt;br /&gt;
 BZF_API const char *[[bz_tolower]](const char* val );&lt;br /&gt;
 BZF_API const char *[[bz_urlEncode]](const char* val );&lt;br /&gt;
 BZF_API [[bz_eGameType]] [[bz_getGameType]]( void );&lt;br /&gt;
 BZF_API [[bz_eTeamType]] [[bz_checkBaseAtPoint]] ( float pos[3] );&lt;br /&gt;
&lt;br /&gt;
===Server Side Players (Development)===&lt;br /&gt;
 BZF_API int [[bz_addServerSidePlayer]] ( [[bz_ServerSidePlayerHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeServerSidePlayer]] ( int playerID, [[bz_ServerSidePlayerHandler]] *handler );&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[BZFS API]]&lt;br /&gt;
&lt;br /&gt;
[[plug-ins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:BZFS_API_Functions]]&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=5272</id>
		<title>Functions (API)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=5272"/>
		<updated>2008-12-20T06:05:28Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: /* Player Information */ Changed setPlayerLimboText to setPlayerLimboMessage (the correct name)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DoDoc|Fill in articles for all API Functions}}&lt;br /&gt;
&lt;br /&gt;
{{BZFS_API_Doc}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The BZFS API provides a number of functions to plug-ins for use in querying the current game state. Functions are used both to get information about the game, and to trigger in game actions, such as activating a world weapon.&lt;br /&gt;
&lt;br /&gt;
==Function Groups==&lt;br /&gt;
Functions are broken into a series of groups based on the type of action or information they deal with.&lt;br /&gt;
&lt;br /&gt;
===Event Registration===&lt;br /&gt;
 BZF_API bool [[bz_registerEvent]] ( [[Events(API)|bz_eEventType]] eventType, [[Events(API)|bz_EventHandler]]* eventHandler );&lt;br /&gt;
 BZF_API bool [[bz_removeEvent]] ( [[Events(API)|bz_eEventType]] eventType, [[Events(API)|bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
===Non-Player Connections===&lt;br /&gt;
 BZF_API bool [[bz_registerNonPlayerConnectionHandler]] ( int connectionID, [[bz_NonPlayerConnectionHandler]]* handler );&lt;br /&gt;
 BZF_API bool [[bz_removeNonPlayerConnectionHandler]] ( int connectionID, [[bz_NonPlayerConnectionHandler]]* handler );&lt;br /&gt;
 BZF_API bool [[bz_sendNonPlayerData]] ( int connectionID, const void *data, unsigned int size );&lt;br /&gt;
 BZF_API bool [[bz_disconectNonPlayerConnection]] ( int connectionID );&lt;br /&gt;
&lt;br /&gt;
===Player Information===&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_getPlayerIndexList]] ( [[bz_APIIntList]] *playerList );&lt;br /&gt;
 BZF_API [[bz_APIIntList]] *[[bz_getPlayerIndexList]] ( void );&lt;br /&gt;
 BZF_API [[bz_BasePlayerRecord]] *[[bz_getPlayerByIndex]] ( int index );&lt;br /&gt;
 BZF_API bool [[bz_updatePlayerData]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
 BZF_API bool [[bz_hasPerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_grantPerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_revokePerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_getAdmin]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_validAdminPassword]] ( const char* passwd );&lt;br /&gt;
 BZF_API bool [[bz_freePlayerRecord]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
 BZF_API const char* [[bz_getPlayerFlag]] ( int playerID );&lt;br /&gt;
 BZF_API const char* [[bz_getPlayerCallsign]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_getPlayerCurrentState]] ( int playerID, [[bz_PlayerUpdateState]] &amp;amp;state );&lt;br /&gt;
 BZF_API bool [[bz_isPlayerPaused]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerOperator]] ( int playerId );&lt;br /&gt;
 BZF_API [[bz_APIIntList]]* [[bz_getPlayerIndexList]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_canPlayerSpawn]]( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerSpawnable]]( int playerID, bool spawn );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerLimboMessage]]( int playerID, const char* text );&lt;br /&gt;
 BZF_API int [[bz_getPlayerCount]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_anyPlayers]] ( void );&lt;br /&gt;
&lt;br /&gt;
=== Team Management===&lt;br /&gt;
 BZF_API unsigned int [[bz_getTeamPlayerLimit]] ( bz_eTeamType team )&lt;br /&gt;
 BZF_API int [[bz_getTeamCount]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamScore]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamWins]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamLosses]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API void [[bz_setTeamWins]] ([[bz_eTeamType]] team, int wins );&lt;br /&gt;
 BZF_API void [[bz_setTeamLosses]] ([[bz_eTeamType]] team, int losses );&lt;br /&gt;
 BZF_API void [[bz_resetTeamScore]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API void [[bz_resetTeamScores]] ( void );&lt;br /&gt;
 BZF_API void [[bz_changeTeam]]( int player, [[bz_eTeamType]] team );&lt;br /&gt;
&lt;br /&gt;
=== Score Management ===&lt;br /&gt;
 BZF_API bool [[bz_setPlayerWins]] (int playerId, int wins);&lt;br /&gt;
 BZF_API bool [[bz_setPlayerLosses]] (int playerId, int losses);&lt;br /&gt;
 BZF_API bool [[bz_setPlayerTKs]] (int playerId, int tks);&lt;br /&gt;
 BZF_API bool [[bz_resetPlayerScore]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerWins]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerLosses]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerTKs]] (int playerId);&lt;br /&gt;
&lt;br /&gt;
=== Latency Information ===&lt;br /&gt;
 BZF_API int [[bz_getPlayerLag]] ( int playerId );&lt;br /&gt;
 BZF_API int [[bz_getPlayerJitter]] ( int playerId );&lt;br /&gt;
 BZF_API float [[bz_getPlayerPacketloss]] ( int playerId );&lt;br /&gt;
&lt;br /&gt;
=== Permission Group Management ===&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* [[bz_getGroupList]] ( void );&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* [[bz_getGroupPerms]] ( const char* group );&lt;br /&gt;
 BZF_API bool [[bz_groupAllowPerm]]( const char* group, const char* perm );&lt;br /&gt;
&lt;br /&gt;
=== Chat Messages ===&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessage]] (int from, int to, const char* message);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessage]] (int from, [[bz_eTeamType]] to, const char* message);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessagef]] (int from, int to, const char* fmt, ...);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessagef]] (int from, [[bz_eTeamType]] to, const char* fmt, ...);&lt;br /&gt;
 BZF_API bool [[bz_sendFetchResMessage]] ( int playerID,  const char* URL );&lt;br /&gt;
&lt;br /&gt;
=== Server Management ===&lt;br /&gt;
 BZF_API bool [[bz_restart]] ( void );&lt;br /&gt;
 BZF_API void [[bz_shutdown]] ();&lt;br /&gt;
 BZF_API void [[bz_superkill]] ();&lt;br /&gt;
 BZF_API void [[bz_gameOver]] (int playerID, bz_eTeamType = eNoTeam);&lt;br /&gt;
 BZF_API void [[bz_reloadLocalBans]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadMasterBans]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadGroups]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadUsers]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadHelp]] ();&lt;br /&gt;
&lt;br /&gt;
=== Rabbit Hunt===&lt;br /&gt;
 BZF_API void [[bz_newRabbit]]( int player, bool swap );&lt;br /&gt;
 BZF_API void [[bz_removeRabbit]]( int player );&lt;br /&gt;
&lt;br /&gt;
=== Map Management ===&lt;br /&gt;
 BZF_API void [[bz_setClientWorldDownloadURL]]( const char* URL );&lt;br /&gt;
 BZF_API const bzApiString [[bz_getClientWorldDownloadURL]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_saveWorldCacheFile]]( const char* file );&lt;br /&gt;
&lt;br /&gt;
=== Flag Management ===&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_givePlayerFlag]] ( int playerID, const char* flagType, bool force );&lt;br /&gt;
 BZF_API bool [[bz_removePlayerFlag]] ( int playerID );&lt;br /&gt;
 BZF_API void [[bz_resetFlags]] ( bool onlyUnused );&lt;br /&gt;
 BZF_API unsigned int [[bz_getNumFlags]] ( void );&lt;br /&gt;
 BZF_API const [[bz_ApiString]] [[bz_getFlagName]]( int flag );&lt;br /&gt;
 BZF_API bool [[bz_resetFlag]] ( int flag );&lt;br /&gt;
 BZF_API int [[bz_flagPlayer]] ( int flag );&lt;br /&gt;
 BZF_API bool [[bz_getFlagPosition]] ( int flag, float* pos );&lt;br /&gt;
 BZF_API bool [[bz_moveFlag]] ( int flag, float pos[3], bool reset = true );&lt;br /&gt;
 BZF_API bool [[bz_RegisterCustomFlag]] ( const char* abbr, const char* name, const char* helpString, bz_eShotType shotType, bz_eFlagQuality quality );&lt;br /&gt;
&lt;br /&gt;
=== Shot Type Control ===&lt;br /&gt;
 BZF_API bool [[bz_setPlayerShotType]]( int playerId, [[bz_eShotType]] shotType );&lt;br /&gt;
&lt;br /&gt;
=== World Weapon Management ===&lt;br /&gt;
 BZF_API bool [[bz_fireWorldWep]] ( const char* flagType, float lifetime, float *pos, float tilt, float direction, int shotID , float dt );&lt;br /&gt;
 BZF_API int [[bz_fireWorldGM]] ( int targetPlayerID, float lifetime, float *pos, float tilt, float direction, float dt);&lt;br /&gt;
&lt;br /&gt;
=== Server Time ===&lt;br /&gt;
 BZF_API double [[bz_getCurrentTime]] ( void );&lt;br /&gt;
 BZF_API float [[bz_getMaxWaitTime]] ( void );&lt;br /&gt;
 BZF_API void [[bz_setMaxWaitTime]] ( float maxTime );&lt;br /&gt;
 BZF_API void [[bz_getLocaltime]] ( [[bz_localTime]] *ts );&lt;br /&gt;
&lt;br /&gt;
=== Global Database Management (BZDB) ===&lt;br /&gt;
 BZF_API double [[bz_getBZDBDouble]] ( const char* variable );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getBZDBString]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_getBZDBBool]]( const char* variable );&lt;br /&gt;
 BZF_API int [[bz_getBZDBInt]]( const char* variable );&lt;br /&gt;
 BZF_API int [[bz_getBZDBItemPerms]] ( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_getBZDBItemPersistent]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_BZDBItemExists]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBDouble]] ( const char* variable, double val, int perms = 0, bool persistent = false );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBString]]( const char* variable, const char *val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBBool]]( const char* variable, bool val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBInt]]( const char* variable, int val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API int [[bz_getBZDBVarList]]( bz_APIStringList	*varList );&lt;br /&gt;
 BZF_API void [[bz_resetBZDBVar]]( const char* variable );&lt;br /&gt;
 BZF_API void [[bz_resetALLBZDBVars]]( void );&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
 BZF_API void [[bz_debugMessage]] ( int level, const char* message );&lt;br /&gt;
 BZF_API void [[bz_debugMessagef]]( int level, const char* fmt, ... )&lt;br /&gt;
 BZF_API int [[bz_getDebugLevel]] ( void );&lt;br /&gt;
&lt;br /&gt;
===Server Administration===&lt;br /&gt;
 BZF_API bool [[bz_kickUser]] ( int playerIndex, const char* reason, bool notify );&lt;br /&gt;
 BZF_API bool [[bz_IPBanUser]] ( int playerIndex, const char* ip, int durration, const char* reason );&lt;br /&gt;
 BZF_API bool [[bz_IDBanUser]] ( int playerIndex, const char* bzID , int duration, const char *reason );&lt;br /&gt;
 BZF_API bool [[bz_IPUnbanUser]] ( const char* ip );&lt;br /&gt;
 BZF_API bool [[bz_IDUnbanUser]] ( const char* bzID );&lt;br /&gt;
 &lt;br /&gt;
 BZF_API int [[bz_getLagWarn]]( void );&lt;br /&gt;
 BZF_API bool [[bz_setLagWarn]]( int lagwarn );&lt;br /&gt;
 BZF_API bool [[bz_pollActive]]( void );&lt;br /&gt;
 BZF_API bool [[bz_pollVeto]]( void );&lt;br /&gt;
&lt;br /&gt;
=== Reporting ===&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* bz_getReports( void );&lt;br /&gt;
 BZF_API [[bool bz_fileReport]]( const char* message );&lt;br /&gt;
&lt;br /&gt;
=== Timed Game Management===&lt;br /&gt;
 BZF_API bool [[bz_setTimeLimit]]( float timeLimit );&lt;br /&gt;
 BZF_API float [[bz_getTimeLimit]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isTimeManualStart]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isCountDownActive]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isCountDownInProgress]]( void );&lt;br /&gt;
 BZF_API void [[bz_pauseCountdown]] ( const char *pausedBy );&lt;br /&gt;
 BZF_API void [[bz_resumeCountdown]] ( const char *resumedBy );&lt;br /&gt;
 BZF_API void [[bz_startCountdown]] ( int delay, float limit, const char *byWho );&lt;br /&gt;
&lt;br /&gt;
=== Custom Text Commands===&lt;br /&gt;
 BZF_API bool [[bz_registerCustomSlashCommand]] ( const char* command, [[bz_CustomSlashCommandHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomSlashCommand]] ( const char* command );&lt;br /&gt;
&lt;br /&gt;
===Plug-in Management===&lt;br /&gt;
 BZF_API int [[bz_getLoadedPlugins]]( bz_APIStringList * list );&lt;br /&gt;
 BZF_API bool [[bz_loadPlugin]]( const char* path, const char* params );&lt;br /&gt;
 BZF_API bool [[bz_unloadPlugin]]( const char* path );&lt;br /&gt;
 BZF_API bool [[bz_registerCustomPluginHandler]] ( const char* extension, [[bz_APIPluginHandler]] * handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomPluginHandler]] ( const char* extension, [[bz_APIPluginHandler]] * handler );&lt;br /&gt;
&lt;br /&gt;
=== Public Server Information===&lt;br /&gt;
 BZF_API bool [[bz_getPublic]]( void );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getPublicAddr]]( void );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getPublicDescription]]( void );&lt;br /&gt;
 BZF_API void [[bz_updateListServer]] ( void );&lt;br /&gt;
&lt;br /&gt;
===HTTP Transfer===&lt;br /&gt;
 BZF_API bool [[bz_addURLJob]] ( const char* URL, [[bz_BaseURLHandler]]* handler = NULL, const char* postData = NULL );&lt;br /&gt;
 BZF_API bool [[bz_removeURLJob]] ( const char* URL );&lt;br /&gt;
 BZF_API bool [[bz_stopAllURLJobs]] ( void );&lt;br /&gt;
&lt;br /&gt;
===Inter-Plug-in Communications===&lt;br /&gt;
 BZF_API bool [[bz_clipFieldExists]] ( const char *name );&lt;br /&gt;
 BZF_API const char* [[bz_getclipFieldString]] ( const char *name );&lt;br /&gt;
 BZF_API float [[bz_getclipFieldFloat]] ( const char *name );&lt;br /&gt;
 BZF_API int [[bz_getclipFieldInt]] ( const char *name );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldString]] ( const char *name, const char* data );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldFloat]] ( const char *name, float data );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldInt]] ( const char *name, int data );&lt;br /&gt;
 BZF_API bool [[bz_addClipFieldNotifier]] ( const char *name, [[bz_ClipFiledNotifier *cb );&lt;br /&gt;
 BZF_API [[_removeClipFieldNotifier]] ( const char *name, [[bz_ClipFiledNotifier *cb );&lt;br /&gt;
&lt;br /&gt;
===Game Recording===&lt;br /&gt;
 BZF_API bool [[bz_saveRecBuf]]( const char * _filename, int seconds);&lt;br /&gt;
 BZF_API bool [[bz_startRecBuf]]( void );&lt;br /&gt;
 BZF_API bool [[bz_stopRecBuf]]( void );&lt;br /&gt;
&lt;br /&gt;
===Map Management===&lt;br /&gt;
====Map Information====&lt;br /&gt;
 BZF_API void [[bz_getWorldSize]]( float *size, float *wallHeight );&lt;br /&gt;
 BZF_API int [[bz_getWorldObjectCount]]( void );&lt;br /&gt;
 BZF_API [[bz_APIWorldObjectList]]* [[bz_getWorldObjectList]]( void );&lt;br /&gt;
 BZF_API void [[bz_releaseWorldObjectList]]( [[bz_APIWorldObjectList]]* list );&lt;br /&gt;
&lt;br /&gt;
====Map Collisions====&lt;br /&gt;
 [[bz_eAPIColType]] [[bz_cylinderInMapObject]] ( float pos[3], float height, float radius, [[bz_APIBaseWorldObject]] **object );&lt;br /&gt;
 [[bz_eAPIColType]] [[bz_boxInMapObject]] ( float pos[3], float size[3], float angle, [[bz_APIBaseWorldObject]] **object );&lt;br /&gt;
&lt;br /&gt;
====Custom Map Objects====&lt;br /&gt;
 BZF_API bool [[bz_registerCustomMapObject]] ( const char* object, [[bz_CustomMapObjectHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomMapObject]] ( const char* object );&lt;br /&gt;
&lt;br /&gt;
===Utility===&lt;br /&gt;
 BZF_API const char *[[bz_MD5]](const char* str);&lt;br /&gt;
 BZF_API const char *[[bz_MD5]](const void* data, size_t size);&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
 BZF_API bool [[bz_getStandardSpawn]] ( int playerID, float pos[3], float *rot );&lt;br /&gt;
 BZF_API bool [[bz_killPlayer]] ( int playerID, bool spawnOnBase, int killerID = -1, const char* flagID = NULL );&lt;br /&gt;
 BZF_API bool [[bz_sendPlayCustomLocalSound]] ( int playerID, const char* soundName );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_filterPath]] ( const char* path );&lt;br /&gt;
 BZF_API const char *[[bz_format]](const char* fmt, ...)_ATTRIBUTE12;&lt;br /&gt;
 BZF_API const char *[[bz_toupper]](const char* val );&lt;br /&gt;
 BZF_API const char *[[bz_tolower]](const char* val );&lt;br /&gt;
 BZF_API const char *[[bz_urlEncode]](const char* val );&lt;br /&gt;
 BZF_API [[bz_eGameType]] [[bz_getGameType]]( void );&lt;br /&gt;
 BZF_API [[bz_eTeamType]] [[bz_checkBaseAtPoint]] ( float pos[3] );&lt;br /&gt;
&lt;br /&gt;
===Server Side Players (Development)===&lt;br /&gt;
 BZF_API int [[bz_addServerSidePlayer]] ( [[bz_ServerSidePlayerHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeServerSidePlayer]] ( int playerID, [[bz_ServerSidePlayerHandler]] *handler );&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[BZFS API]]&lt;br /&gt;
&lt;br /&gt;
[[plug-ins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:BZFS_API_Functions]]&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Cite&amp;diff=5270</id>
		<title>Template:Cite</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Cite&amp;diff=5270"/>
		<updated>2008-12-20T00:14:38Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;{{{ref}}}&amp;quot; name=&amp;quot;{{{ref}}}&amp;quot; class=&amp;quot;citation&amp;quot;&amp;gt;{{{author}}},  &#039;&#039;{{{title}}}&#039;&#039;,  [[{{{publisher}}}]],  [[{{{date}}}]].&amp;lt;/span&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_canPlayerSpawn&amp;diff=5266</id>
		<title>Bz canPlayerSpawn</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_canPlayerSpawn&amp;diff=5266"/>
		<updated>2008-12-15T07:43:26Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: {{apicall | name          = bz_canPlayerSpawn | description   = Returns true if the specified player is allowed to spawn, false if they are not | param1        = playerID | param1type    =...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_canPlayerSpawn&lt;br /&gt;
| description   = Returns true if the specified player is allowed to spawn, false if they are not&lt;br /&gt;
| param1        = playerID&lt;br /&gt;
| param1type    = int&lt;br /&gt;
| param1desc    = The player to check&lt;br /&gt;
| returntype    = bool&lt;br /&gt;
| returns       = True if the player is allowed to spawn, false otherwise&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_setPlayerOperator&amp;diff=5265</id>
		<title>Bz setPlayerOperator</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_setPlayerOperator&amp;diff=5265"/>
		<updated>2008-12-15T07:12:21Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: {{apicall | name          = bz_setPlayerOperator | description   = Marks this player as a server operator. A player typically becomes a server operator by providing the correct password to...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_setPlayerOperator&lt;br /&gt;
| description   = Marks this player as a server operator. A player typically becomes a server operator by providing the correct password to the /password command.&lt;br /&gt;
| param1        = playerID&lt;br /&gt;
| param1type    = int&lt;br /&gt;
| param1desc    = The id of the player to mark as an operator&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_isPlayerPaused&amp;diff=5264</id>
		<title>Bz isPlayerPaused</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_isPlayerPaused&amp;diff=5264"/>
		<updated>2008-12-15T07:06:26Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: {{apicall | name          = bz_isPlayerPaused | description   = Returns true if the specified player is currently paused, false if they are not | param1        = playerID | param1type    =...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_isPlayerPaused&lt;br /&gt;
| description   = Returns true if the specified player is currently paused, false if they are not&lt;br /&gt;
| param1        = playerID&lt;br /&gt;
| param1type    = int&lt;br /&gt;
| param1desc    = The id of the player to check&lt;br /&gt;
| returntype    = bool&lt;br /&gt;
| returns       = True if the player specified is paused; false otherwise&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_getPlayerCurrentState&amp;diff=5263</id>
		<title>Bz getPlayerCurrentState</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_getPlayerCurrentState&amp;diff=5263"/>
		<updated>2008-12-15T07:03:19Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: {{apicall | name          = bz_getPlayerCurrentState | description   = Gets the specified player&amp;#039;s current state. This includes information about how fast they&amp;#039;re traveling, if they&amp;#039;re in ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_getPlayerCurrentState&lt;br /&gt;
| description   = Gets the specified player&#039;s current state. This includes information about how fast they&#039;re traveling, if they&#039;re in the air, if they&#039;re rotating, and more.&lt;br /&gt;
&lt;br /&gt;
A player&#039;s state changes very frequently (since players are typically on the move, fighting, and jumping, just to name a few), so the data obtained from this method won&#039;t be valid for very long.&lt;br /&gt;
| param1        = playerID&lt;br /&gt;
| param1type    = int&lt;br /&gt;
| param1desc    = The id of the player to get the state for&lt;br /&gt;
| param2        = state&lt;br /&gt;
| param2type    = bz_PlayerUpdateState&amp;amp;&lt;br /&gt;
| param2desc    = A bz_PlayerUpdateState to put the information of the player specified by &amp;lt;tt&amp;gt;playerID&amp;lt;/tt&amp;gt; into&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_freePlayerRecord&amp;diff=5262</id>
		<title>Bz freePlayerRecord</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_freePlayerRecord&amp;diff=5262"/>
		<updated>2008-12-15T06:52:18Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: {{apicall | name          = bz_freePlayerRecord | description   = Frees the player record specified. This should be called on each player record after it&amp;#039;s no longer needed, to release the...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_freePlayerRecord&lt;br /&gt;
| description   = Frees the player record specified. This should be called on each player record after it&#039;s no longer needed, to release the memory used by that player record.&lt;br /&gt;
| param1        = playerRecord&lt;br /&gt;
| param1type    = bz_BasePlayerRecord&lt;br /&gt;
| param1desc    = The player record to free&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_getPlayerFlag&amp;diff=5261</id>
		<title>Bz getPlayerFlag</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_getPlayerFlag&amp;diff=5261"/>
		<updated>2008-12-15T06:41:45Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_getPlayerFlag&lt;br /&gt;
| description   = Gets the flag id of the flag that the specified player is currently holding.&lt;br /&gt;
| param1        = playerID&lt;br /&gt;
| param1type    = int&lt;br /&gt;
| param1desc    = The id of the player to check&lt;br /&gt;
| returntype    = const char*&lt;br /&gt;
| returns       = The two-character flag id of the flag that the player specified is holding, or NULL if the player does not exist or is not currently holding a flag&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_getPlayerFlag&amp;diff=5260</id>
		<title>Bz getPlayerFlag</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_getPlayerFlag&amp;diff=5260"/>
		<updated>2008-12-15T06:41:29Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: {{apicall | name          = bz_getPlayerFlag | description   = Gets the flag id of the flag that the specified player is currently holding. | param1        = playerID | param1type    = int...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_getPlayerFlag&lt;br /&gt;
| description   = Gets the flag id of the flag that the specified player is currently holding.&lt;br /&gt;
| param1        = playerID&lt;br /&gt;
| param1type    = int&lt;br /&gt;
| param1desc    = The id of the player to check&lt;br /&gt;
| returntype    = const char*&lt;br /&gt;
| return        = The two-character flag id of the flag that the player specified is holding, or NULL if the player does not exist or is not currently holding a flag&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_APIIntList&amp;diff=5259</id>
		<title>Bz APIIntList</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_APIIntList&amp;diff=5259"/>
		<updated>2008-12-15T06:18:03Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: A list of integers. This is used for passing lists of integers from the bzfs api itself to the plugin that uses the api.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of integers. This is used for passing lists of integers from the bzfs api itself to the plugin that uses the api.&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_getAdmin&amp;diff=5258</id>
		<title>Bz getAdmin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_getAdmin&amp;diff=5258"/>
		<updated>2008-12-15T06:16:49Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: {{apicall | name          = bz_getAdmin | description   = Returns true if the player specified is an administrator on this server. Returns false otherwise. | param1        = playerID | par...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_getAdmin&lt;br /&gt;
| description   = Returns true if the player specified is an administrator on this server. Returns false otherwise.&lt;br /&gt;
| param1        = playerID&lt;br /&gt;
| param1type    = int&lt;br /&gt;
| param1desc    = The id of the player to check for admin status&lt;br /&gt;
| returntype    = bool&lt;br /&gt;
| returns       = True if the player specified is an administrator; false otherwise&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_revokePerm&amp;diff=5257</id>
		<title>Bz revokePerm</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_revokePerm&amp;diff=5257"/>
		<updated>2008-12-15T06:15:09Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: {{apicall | name          = bz_revokePerm | description   = Revokes the specified permission on the specified player. The player then loses this permission. | param1        = playerID | pa...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_revokePerm&lt;br /&gt;
| description   = Revokes the specified permission on the specified player. The player then loses this permission.&lt;br /&gt;
| param1        = playerID&lt;br /&gt;
| param1type    = int&lt;br /&gt;
| param1desc    = The id of the player on which to perform this action&lt;br /&gt;
| param2        = perm&lt;br /&gt;
| param2type    = const char*&lt;br /&gt;
| param2desc    = The name of the permission to revoke&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_grantPerm&amp;diff=5256</id>
		<title>Bz grantPerm</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_grantPerm&amp;diff=5256"/>
		<updated>2008-12-15T06:14:13Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: {{apicall | name          = bz_grantPerm | description   = Grants the specified player the specified permission. After this method has been called, calls to bz_hasPerm, passing in this...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_grantPerm&lt;br /&gt;
| description   = Grants the specified player the specified permission. After this method has been called, calls to [[bz_hasPerm]], passing in this player&#039;s id and the permission specified, will return true.&lt;br /&gt;
| param1        = playerID&lt;br /&gt;
| param1type    = int&lt;br /&gt;
| param1desc    = The id of the player to grant the permission to&lt;br /&gt;
| param2        = perm&lt;br /&gt;
| param2type    = const char*&lt;br /&gt;
| param2desc    = The name of the permission to grant&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_hasPerm&amp;diff=5255</id>
		<title>Bz hasPerm</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_hasPerm&amp;diff=5255"/>
		<updated>2008-12-15T06:11:38Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: {{apicall | name          = bz_hasPerm | description   = Checks to see if the player specified has the permission specified. | param1        = playerID | param1type    = int | param1desc  ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_hasPerm&lt;br /&gt;
| description   = Checks to see if the player specified has the permission specified.&lt;br /&gt;
| param1        = playerID&lt;br /&gt;
| param1type    = int&lt;br /&gt;
| param1desc    = The id of the player to check&lt;br /&gt;
| param2        = perm&lt;br /&gt;
| param2type    = const char*&lt;br /&gt;
| param2desc    = The name of the permission to check for&lt;br /&gt;
| returntype    = bool&lt;br /&gt;
| returns       = True if the player specified has the permission specified, false if they do not have the permission specified&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_updatePlayerData&amp;diff=5254</id>
		<title>Bz updatePlayerData</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_updatePlayerData&amp;diff=5254"/>
		<updated>2008-12-15T06:03:04Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: {{apicall | name          = bz_updatePlayerData | description   = Updates the data in a bz_BasePlayerRecord to the current state of that player. The information in a base player record...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_updatePlayerData&lt;br /&gt;
| description   = Updates the data in a [[bz_BasePlayerRecord]] to the current state of that player. The information in a base player record instance is not kept up-to-date as the game progresses, so this method must be called to get the most up-to-date information.&lt;br /&gt;
| param1        = playerRecord&lt;br /&gt;
| param1type    = bz_BasePlayerRecord*&lt;br /&gt;
| param1desc    = The player record to update. This record will contain the current information for the player it represents after this method call returns.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_getPlayerByIndex&amp;diff=5253</id>
		<title>Bz getPlayerByIndex</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_getPlayerByIndex&amp;diff=5253"/>
		<updated>2008-12-15T06:00:19Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: {{apicall | name          = bz_getPlayerByIndex | description   = Gets the information for the player at the index specified. The index should be one of the elements of the list returned b...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_getPlayerByIndex&lt;br /&gt;
| description   = Gets the information for the player at the index specified. The index should be one of the elements of the list returned by [[bz_getPlayerIndexList]]. The returned player info won&#039;t update as the game progresses. If you need new updates on the player&#039;s info, you can call [[bz_updatePlayerData]].&lt;br /&gt;
&lt;br /&gt;
After you&#039;re done with the player info returned from this method, you must release it by calling [[bz_freePlayerRecord]].&lt;br /&gt;
| param1        = index&lt;br /&gt;
| param1type    = int&lt;br /&gt;
| param1desc    = The index of the player in question, as obtained from bz_getPlayerIndexList&lt;br /&gt;
| returntype    = bz_BasePlayerRecord*&lt;br /&gt;
| returns       = an instance of [[bz_BasePlayerRecord]] that contains the player in question&#039;s information&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall/typelink&amp;diff=5252</id>
		<title>Template:Apicall/typelink</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall/typelink&amp;diff=5252"/>
		<updated>2008-12-15T05:55:25Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: Changed to {{{1}}} because the current contents were causing links to pointer types to link to an article with the pointer type embedded&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{1}}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_getPlayerIndexList&amp;diff=5251</id>
		<title>Bz getPlayerIndexList</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_getPlayerIndexList&amp;diff=5251"/>
		<updated>2008-12-15T05:54:05Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: New page: {{apicall | name          = bz_getPlayerIndexList | description   = Returns a list of players indexes. Same as bz_getPlayerIndexList(bz_APIIntList), but a new bz_APIIntList is created ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_getPlayerIndexList&lt;br /&gt;
| description   = Returns a list of players indexes. Same as [[bz_getPlayerIndexList(bz_APIIntList)]], but a new bz_APIIntList is created and returned. This newly-created api int list must be deleted when it is no longer needed.&lt;br /&gt;
| returntype    = bz_APIIntList*&lt;br /&gt;
| returns       = A pointer to a newly-created bz_APIIntList that contains the player indexes&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_removeEvent&amp;diff=5250</id>
		<title>Bz removeEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_removeEvent&amp;diff=5250"/>
		<updated>2008-12-15T05:27:00Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name            = bz_removeEvent&lt;br /&gt;
| description     = Removes the specified event listener. The event listener must previously have been added by a call to [[bz_registerEvent]]. &lt;br /&gt;
| param1          = eventType&lt;br /&gt;
| param1type      = bz_eEventType&lt;br /&gt;
| param1desc      = The type of event that this listener was previously registered to handle. This is so that if this listener is registered for multiple event types, only one of those will be removed.&lt;br /&gt;
| param2          = listener&lt;br /&gt;
| param2type      = bz_EventHandler*&lt;br /&gt;
| param2desc      = The listener to remove.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall/typelink&amp;diff=5249</id>
		<title>Template:Apicall/typelink</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall/typelink&amp;diff=5249"/>
		<updated>2008-12-15T04:37:08Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{lc:{{{1}}}}}|const char*={{{1}}}|const char *={{{1}}}|int={{{1}}}|bool={{{1}}}|float={{{1}}}|[[{{{1}}}]]}}&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5248</id>
		<title>Template:Apicall/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5248"/>
		<updated>2008-12-15T04:24:26Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;This documentation needs to be updated, due to some changes I&#039;ve made in the template.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template can be used for bzfs api call documentation pages. It contains fields for the parameters of the api call, it&#039;s return type (if any), a description for it, and some other api calls that can be referenced. The template supports up to 10 api call parameters, although support for more can be added by editing this template.&lt;br /&gt;
&lt;br /&gt;
The template also includes a link at the bottom to the list of api functions, unless the parameter nopagelink is present (with any value). For simplicity, nopagelink has been set on all of the templates in this document, except for the last one.&lt;br /&gt;
&lt;br /&gt;
To use the template, you must include at least a name parameter, and preferably a description. For example, a call that takes no arguments and returns nothing, and that doesn&#039;t have a desctiption, could be declared like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
If we wanted a description for our call, we could do something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
Now let&#039;s say that our function takes some parameters. We can add those like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
We can also add documentation on the function&#039;s return value. This can be done like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returns          = A number that means absolutely nothing. It might be 0, or it might be 1, or it might be something else.&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which results in this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returntype       = bz_APIString&lt;br /&gt;
| returns          = A string that means absolutely nothing. It might contain lang (depending on who implements the actual function), so make sure to censor it before using it anywhere.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5247</id>
		<title>Template:Apicall/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5247"/>
		<updated>2008-12-15T04:17:13Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;This documentation needs to be updated, due to some changes I&#039;ve made in the template.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template can be used for bzfs api call documentation pages. It contains fields for the parameters of the api call, it&#039;s return type (if any), a description for it, and some other api calls that can be referenced. The template supports up to 10 api call parameters, although support for more can be added by editing this template.&lt;br /&gt;
&lt;br /&gt;
The template also includes a link at the bottom to the list of api functions, unless the parameter nopagelink is present (with any value). For simplicity, nopagelink has been set on all of the templates in this document, except for the last one.&lt;br /&gt;
&lt;br /&gt;
To use the template, you must include at least a name parameter, and preferably a description. For example, a call that takes no arguments and returns nothing, and that doesn&#039;t have a desctiption, could be declared like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
If we wanted a description for our call, we could do something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
Now let&#039;s say that our function takes some parameters. We can add those like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
We can also add documentation on the function&#039;s return value. This can be done like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returns          = A number that means absolutely nothing. It might be 0, or it might be 1, or it might be something else.&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which results in this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returntype       = int&lt;br /&gt;
| returns          = A string that means absolutely nothing. It might contain lang (depending on who implements the actual function), so make sure to censor it before using it anywhere.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5246</id>
		<title>Template:Apicall/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5246"/>
		<updated>2008-12-15T04:15:54Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;This documentation needs to be updated, due to some changes I&#039;ve made in the template.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template can be used for bzfs api call documentation pages. It contains fields for the parameters of the api call, it&#039;s return type (if any), a description for it, and some other api calls that can be referenced. The template supports up to 10 api call parameters, although support for more can be added by editing this template.&lt;br /&gt;
&lt;br /&gt;
The template also includes a link at the bottom to the list of api functions, unless the parameter nopagelink is present (with any value). For simplicity, nopagelink has been set on all of the templates in this document, except for the last one.&lt;br /&gt;
&lt;br /&gt;
To use the template, you must include at least a name parameter, and preferably a description. For example, a call that takes no arguments and returns nothing, and that doesn&#039;t have a desctiption, could be declared like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
If we wanted a description for our call, we could do something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
Now let&#039;s say that our function takes some parameters. We can add those like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
We can also add documentation on the function&#039;s return value. This can be done like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returns          = A number that means absolutely nothing. It might be 0, or it might be 1, or it might be something else.&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which results in this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returntype       = bz_APIString&lt;br /&gt;
| returns          = A string that means absolutely nothing. It might contain lang (depending on who implements the actual function), so make sure to censor it before using it anywhere.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5245</id>
		<title>Template:Apicall/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5245"/>
		<updated>2008-12-15T04:14:59Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;This documentation needs to be updated, due to some changes I&#039;ve made in the template.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template can be used for bzfs api call documentation pages. It contains fields for the parameters of the api call, it&#039;s return type (if any), a description for it, and some other api calls that can be referenced. The template supports up to 10 api call parameters, although support for more can be added by editing this template.&lt;br /&gt;
&lt;br /&gt;
The template also includes a link at the bottom to the list of api functions, unless the parameter nopagelink is present (with any value). For simplicity, nopagelink has been set on all of the templates in this document, except for the last one.&lt;br /&gt;
&lt;br /&gt;
To use the template, you must include at least a name parameter, and preferably a description. For example, a call that takes no arguments and returns nothing, and that doesn&#039;t have a desctiption, could be declared like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
If we wanted a description for our call, we could do something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
Now let&#039;s say that our function takes some parameters. We can add those like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
We can also add documentation on the function&#039;s return value. This can be done like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returns          = A number that means absolutely nothing. It might be 0, or it might be 1, or it might be something else.&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which results in this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returntype       = bz_APIString&lt;br /&gt;
| returns          = A number that means absolutely nothing. It might be 0, or it might be 1, or it might be something else.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall/typelink&amp;diff=5244</id>
		<title>Template:Apicall/typelink</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall/typelink&amp;diff=5244"/>
		<updated>2008-12-15T04:14:20Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: Undo revision 5242 by Javawizard2539 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{lc:{{{1}}}}}|const char*={{{1}}}|const char *={{{1}}}|int={{{1}}}|bool={{{1}}}|float={{{1}}}|[[{{{1}}}]]}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5243</id>
		<title>Template:Apicall/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall/doc&amp;diff=5243"/>
		<updated>2008-12-15T04:13:57Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;This documentation needs to be updated, due to some changes I&#039;ve made in the template.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template can be used for bzfs api call documentation pages. It contains fields for the parameters of the api call, it&#039;s return type (if any), a description for it, and some other api calls that can be referenced. The template supports up to 10 api call parameters, although support for more can be added by editing this template.&lt;br /&gt;
&lt;br /&gt;
The template also includes a link at the bottom to the list of api functions, unless the parameter nopagelink is present (with any value). For simplicity, nopagelink has been set on all of the templates in this document, except for the last one.&lt;br /&gt;
&lt;br /&gt;
To use the template, you must include at least a name parameter, and preferably a description. For example, a call that takes no arguments and returns nothing, and that doesn&#039;t have a desctiption, could be declared like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
If we wanted a description for our call, we could do something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This is the description for the function. This particular function doesn&#039;t really do anything. The text of this function&#039;s description is intentionally long, so that you can see that, when it line-wraps, the text is still indented.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
Now let&#039;s say that our function takes some parameters. We can add those like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would result in the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| nopagelink       =&lt;br /&gt;
}}&lt;br /&gt;
We can also add documentation on the function&#039;s return value. This can be done like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returns          = A number that means absolutely nothing. It might be 0, or it might be 1, or it might be something else.&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which results in this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{apicall&lt;br /&gt;
| name             = bz_testApiCall&lt;br /&gt;
| description      = This function does nothing, except that it accepts two numbers as inputs.&lt;br /&gt;
| param1           = theFirstParameter&lt;br /&gt;
| param1type       = int&lt;br /&gt;
| param1desc       = This number is the first number. It doesn&#039;t do anything.&lt;br /&gt;
| param2           = theSecondParameter&lt;br /&gt;
| param2type       = int&lt;br /&gt;
| param2desc       = This is the second of the two numbers. Like the first number, this one does absolutely nothing.&lt;br /&gt;
| returntype       = int&lt;br /&gt;
| returns          = A number that means absolutely nothing. It might be 0, or it might be 1, or it might be something else.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall/typelink&amp;diff=5242</id>
		<title>Template:Apicall/typelink</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall/typelink&amp;diff=5242"/>
		<updated>2008-12-15T04:13:12Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: Replacing page with &amp;#039;{{{1}}}&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{1}}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall&amp;diff=5241</id>
		<title>Template:Apicall</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall&amp;diff=5241"/>
		<updated>2008-12-15T04:12:36Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;tt&amp;gt;{{#if:{{{returns|}}}|{{apicall/typelink|{{{returntype}}}}}|void}} {{{name}}} ({{apicall/ifsigparam|{{{param1type|}}}|{{{param1|}}}}}{{apicall/ifnsigparam|{{{param2type|}}}|{{{param2|}}}}}{{apicall/ifnsigparam|{{{param3type|}}}|{{{param3|}}}}})&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left: 30px solid white; border-top: 1px solid white&amp;quot;&amp;gt;&lt;br /&gt;
{{{description|&amp;lt;i&amp;gt;No description&amp;lt;/i&amp;gt;}}}&lt;br /&gt;
{{#if:{{{param1|}}}{{{param2|}}}{{{param3|}}}{{{param4|}}}{{{param5|}}}{{{param6|}}}{{{param7|}}}{{{param8|}}}{{{param9|}}}{{{param10|}}}{{{param11|}}}{{{param12|}}}{{{param13|}}}{{{param14|}}}{{{param15|}}}{{{param16|}}}{{{param17|}}}{{{param18|}}}{{{param19|}}}{{{param20|}}}|&amp;lt;div style=&amp;quot;border-top: 4px solid white; border-bottom: 3px solid white&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Parameters: &amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;}}&lt;br /&gt;
{{apicall/ifparam|{{{param1|}}}|{{{param1desc|}}}}}{{apicall/ifparam|{{{param2|}}}|{{{param2desc|}}}}}{{apicall/ifparam|{{{param3|}}}|{{{param3desc|}}}}}{{apicall/ifparam|{{{param4|}}}|{{{param4desc|}}}}}{{apicall/ifparam|{{{param5|}}}|{{{param5desc|}}}}}{{apicall/ifparam|{{{param6|}}}|{{{param6desc|}}}}}{{apicall/ifparam|{{{param7|}}}|{{{param7desc|}}}}}{{apicall/ifparam|{{{param8|}}}|{{{param8desc|}}}}}{{apicall/ifparam|{{{param9|}}}|{{{param9desc|}}}}}{{apicall/ifparam|{{{param10|}}}|{{{param10desc|}}}}}{{apicall/ifparam|{{{param11|}}}|{{{param11desc|}}}}}{{apicall/ifparam|{{{param12|}}}|{{{param12desc|}}}}}{{apicall/ifparam|{{{param13|}}}|{{{param13desc|}}}}}{{apicall/ifparam|{{{param14|}}}|{{{param14desc|}}}}}{{apicall/ifparam|{{{param15|}}}|{{{param15desc|}}}}}{{apicall/ifparam|{{{param16|}}}|{{{param16desc|}}}}}{{apicall/ifparam|{{{param17|}}}|{{{param17desc|}}}}}{{apicall/ifparam|{{{param18|}}}|{{{param18desc|}}}}}{{apicall/ifparam|{{{param19|}}}|{{{param19desc|}}}}}{{apicall/ifparam|{{{param20|}}}|{{{param20desc|}}}}}{{#if:{{{returns|}}}|&amp;lt;div style=&amp;quot;border-top: 4px solid white&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Returns: &amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;border-left: 30px solid white; border-top: 4px solid white&amp;quot;&amp;gt;{{{returns}}}&amp;lt;/div&amp;gt;&amp;lt;br/&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br/&amp;gt;{{#ifeq:{{{nopagelink|_NOT_HERE_}}}|_NOT_HERE_|[[Functions(API)|Function List]]}}&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:BZFS API Functions]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Template:Apicall/typelink&amp;diff=5240</id>
		<title>Template:Apicall/typelink</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Template:Apicall/typelink&amp;diff=5240"/>
		<updated>2008-12-15T04:11:35Z</updated>

		<summary type="html">&lt;p&gt;Javawizard2539: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{lc:{{{1}}}}}|const char*={{{1}}}|const char *={{{1}}}|int={{{1}}}|bool={{{1}}}|float={{{1}}}|[[{{{1}}}]]}}&lt;/div&gt;</summary>
		<author><name>Javawizard2539</name></author>
	</entry>
</feed>