<?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=Mrapple</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=Mrapple"/>
	<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/Special:Contributions/Mrapple"/>
	<updated>2026-05-19T14:56:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Web_Services&amp;diff=7654</id>
		<title>Web Services</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Web_Services&amp;diff=7654"/>
		<updated>2011-05-16T23:06:01Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: Add link for home page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Possible services layout===&lt;br /&gt;
&lt;br /&gt;
* [[Web_Services/Home_Page|Home Page]] (bzflag.org)&lt;br /&gt;
** Portal to all other sites&lt;br /&gt;
** News postings&lt;br /&gt;
* Wiki (wiki.bzflag.org)&lt;br /&gt;
* [[Web_Services/Player_Portal|Player Portal]]&lt;br /&gt;
** User management&lt;br /&gt;
*** Registration&lt;br /&gt;
*** User profile&lt;br /&gt;
*** Enable various other services (forum, wiki, API) (?)&lt;br /&gt;
** Weblogin System&lt;br /&gt;
** Group management&lt;br /&gt;
*** Create/modify/remove groups&lt;br /&gt;
*** View where groups are being used (?)&lt;br /&gt;
*** View group membership&lt;br /&gt;
** Server key management&lt;br /&gt;
* Social site (social.bzflag.net)&lt;br /&gt;
** Group/clan/team pages/mini-forums&lt;br /&gt;
** Blog-like posting&lt;br /&gt;
** Social networking&lt;br /&gt;
** League hosting (?)&lt;br /&gt;
* Player stats site (stats.bzflag.org)&lt;br /&gt;
** Stats for registered players only&lt;br /&gt;
** Stats would be pushed to the site&lt;br /&gt;
*** Built into 3.x.x&lt;br /&gt;
*** Available as a plugin for 2.0.x&lt;br /&gt;
* API (api.bzflag.org)&lt;br /&gt;
** Player registration (?)&lt;br /&gt;
** Player stats&lt;br /&gt;
** Server list&lt;br /&gt;
** Group management&lt;br /&gt;
* Forum (forum.bzflag.org)&lt;br /&gt;
** Mainly for support topics&lt;br /&gt;
* Map resource hosting (resources.bzflag.org)&lt;br /&gt;
** Replacement for images.bzflag.org&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Config_File&amp;diff=7424</id>
		<title>Config File</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Config_File&amp;diff=7424"/>
		<updated>2011-03-13T01:22:41Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: This could confuse some people&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag uses an ASCII configuration file to store user settings. The file is called &amp;quot;config.cfg.&amp;quot;&lt;br /&gt;
==Location==&lt;br /&gt;
The location of the config file depends on your operating system.&lt;br /&gt;
===Windows===&lt;br /&gt;
&#039;&#039;&#039;XP&#039;&#039;&#039;: C:\Documents and Settings\[user]\My Documents\My BZFlag Files\2.0\config.cfg &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Vista&#039;&#039;&#039;: C:\Users\[user]\Documents\My BZFlag Files\2.0\config.cfg&lt;br /&gt;
&lt;br /&gt;
(Of course, replace [user] with your username)&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
~/Library/Application Support/BZFlag/2.0/config.cfg&lt;br /&gt;
set list http://my.bzflag.org:81/db&lt;br /&gt;
&lt;br /&gt;
===Linux and unix platforms===&lt;br /&gt;
~/.bzf/2.0/config.cfg&lt;br /&gt;
&lt;br /&gt;
Note: &amp;quot;~&amp;quot; is your home directory&lt;br /&gt;
==Editing the Config File==&lt;br /&gt;
As the config file is a text file, it is possible to directly edit it via text-editor instead of through the built-in GUI. Most things can be edited through the in-game GUI, however, there are some things that you can only add via text-editor. Settings that can only be set by editing the config file directly will be discussed here. (Note: these can also be set in-game with the /localset or /bind commands).&lt;br /&gt;
&lt;br /&gt;
===Localset Options===&lt;br /&gt;
  set highlightPattern &amp;quot;laser&amp;quot;&lt;br /&gt;
  set highlightPattern &amp;quot;laser|genocide&amp;quot;&lt;br /&gt;
  set highlightPattern &amp;quot;(Team Flag|Team&#039;s Flag|Genocide)&amp;quot;&lt;br /&gt;
&#039;&#039;highlightPattern&#039;&#039; highlights lines with the selected words when they appear in the console(chat box).&lt;br /&gt;
*When highlighting one word, just type the word in quotes, such as &amp;quot;laser.&amp;quot;&lt;br /&gt;
*If one wants to highlight two or more words, the words must be separated with a &#039;|&#039;, such as &amp;quot;laser|genocide&amp;quot; (highlights lines with laser OR genocide).&lt;br /&gt;
*If any of the words have spaces, all the words must be surrounded in parentheses, such as &amp;quot;(Team Flag|Team&#039;s Flag|Genocide)&amp;quot; (highlights lines with &amp;quot;Team Flag,&amp;quot; &amp;quot;Team&#039;s Flag,&amp;quot; OR &amp;quot;Genocide&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  set linedradarshots 10&lt;br /&gt;
  set linedradarshots 65&lt;br /&gt;
&#039;&#039;linedradarshots&#039;&#039; sets how long shots are on the radar. While this option &#039;&#039;is&#039;&#039; set-able through the in-game GUI, you can only set this setting up to 10 via the GUI. You can hand-edit your config to give you longer shot lengths.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  set latitude 45&lt;br /&gt;
  set longitude 71&lt;br /&gt;
&#039;&#039;latitude&#039;&#039; and &#039;&#039;longitude&#039;&#039; set the latitude and longitude for BZFlag&#039;s sky rendering system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hint: To always have a black sky set latitude 90 (north pole) or -90 (south pole) for winter/summer respectively.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Binding Custom Keys===&lt;br /&gt;
One can bind custom keys outside of those given in the in-game GUI.&lt;br /&gt;
&lt;br /&gt;
The standard format for binding a key is as follows:&lt;br /&gt;
  bind &amp;lt;event&amp;gt; &amp;lt;press&amp;gt; &amp;lt;action&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The event is the key or button that was pressed (or a combination of keys) such as F or &amp;quot;Shift+Page Up&amp;quot;. The double quotes are necessary if there are spaces. The press will be one of up, down, or both. If it is set to up, for example, if will only trigger when they key or button is released. And finally, the action is what will be triggered.&lt;br /&gt;
&lt;br /&gt;
For example, the following binding sets &#039;&#039;displayRadarRange&#039;&#039;, or how far the radar is zoomed, to 0.12, when the key &#039;`&#039; is pressed.&lt;br /&gt;
  bind ` down &amp;quot;set displayRadarRange 0.12&amp;quot;&lt;br /&gt;
&lt;br /&gt;
One can use this template to set any of the options in the config file. However, some of the options, like &#039;&#039;radarsize&#039;&#039; need an additional function call that is only called via the options menu, and as such cannot be altered with this method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One can also use the toggle keyword instead of set to have a key toggle two options:&lt;br /&gt;
  bind F down &amp;quot;toggle linedradarshots 65&amp;quot;&lt;br /&gt;
  bind F down &amp;quot;toggle linedradarshots 65 10&amp;quot;&lt;br /&gt;
The first line toggles the length of shots on the radar between 65 and an implied 0. The second line toggles &#039;&#039;linedradarshots&#039;&#039; between 65 and 10. This is much easier than having two keys to switch between two options.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Don&#039;t do this.)&#039;&#039;&lt;br /&gt;
  bind F down &amp;quot;set linedradarshots 65&amp;quot;&lt;br /&gt;
  bind G down &amp;quot;set linedradarshots 10&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You can also bind one key with two funtions:&lt;br /&gt;
&lt;br /&gt;
 bind E down fire&lt;br /&gt;
 bind E up identify&lt;br /&gt;
&lt;br /&gt;
This will make it so you can fire and lock-on with GM with the same button. &lt;br /&gt;
&lt;br /&gt;
To un-bind a key, just place a hash(#) at the front of the line, or remove the line completely. For example, to if one is tired of unintentionally hitting F12, he or she can simply disable it.&lt;br /&gt;
  #bind F12 down quit&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
Sample Config file to reference, if you want to expand further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
set activeInputDevice Keyboard&lt;br /&gt;
#set allowInputChange 1&lt;br /&gt;
set alwaysShowTeamScores 1&lt;br /&gt;
#set animatedTreads 1&lt;br /&gt;
#set aniso 1&lt;br /&gt;
#set baseTopTexture basetop&lt;br /&gt;
#set baseWallTexture basewall&lt;br /&gt;
set blend 1&lt;br /&gt;
#set blueTeamPrefix blue_&lt;br /&gt;
#set boltTexture bolt&lt;br /&gt;
#set boxTopTexture roof&lt;br /&gt;
#set boxWallHighResTexRepeat 5.0&lt;br /&gt;
#set boxWallTexRepeat 1.5&lt;br /&gt;
#set boxWallTexture boxwall&lt;br /&gt;
set callsign me1&lt;br /&gt;
#set cautionTexture caution&lt;br /&gt;
#set coloredradarshots 1&lt;br /&gt;
#set colorful 1&lt;br /&gt;
set config_version 3&lt;br /&gt;
#set consoleFont VeraMonoBold&lt;br /&gt;
set cpanelfontsize 1&lt;br /&gt;
#set deathEffect 1&lt;br /&gt;
set displayFlagHelp 0&lt;br /&gt;
set displayLabels 0&lt;br /&gt;
#set displayReloadTimer 1&lt;br /&gt;
#set displayScore 1&lt;br /&gt;
#set displayZoom 1&lt;br /&gt;
set dither 1&lt;br /&gt;
#set doDownloads 1&lt;br /&gt;
set email &amp;quot;&amp;quot;&lt;br /&gt;
set emailDispLen 128&lt;br /&gt;
#set enableLocalShotEffect 0&lt;br /&gt;
#set enableLocalSpawnEffect 1&lt;br /&gt;
#set f2bsort 1&lt;br /&gt;
set flagChunks 32&lt;br /&gt;
#set flagLists 0&lt;br /&gt;
set fogEffect 2&lt;br /&gt;
#set fpsLimit 30&lt;br /&gt;
set gamma 1.000000&lt;br /&gt;
set geometry 800x600&lt;br /&gt;
#set gmPuffEffect 2&lt;br /&gt;
#set gmPuffTime 1/8&lt;br /&gt;
#set greenTeamPrefix green_&lt;br /&gt;
#set groundHighResTexRepeat 0.05&lt;br /&gt;
#set groundTexRepeat 0.1&lt;br /&gt;
#set hideEmails 0&lt;br /&gt;
set highlightPattern &amp;quot;(Team Flag|Team&#039;s Flag|Genocide)&amp;quot;&lt;br /&gt;
#set httpTimeout 15&lt;br /&gt;
#set hudGUIBorderOpacityFactor 0.75&lt;br /&gt;
#set hunterTeamPrefix hunter_&lt;br /&gt;
set jumpTyping 0&lt;br /&gt;
#set killerhighlight 1&lt;br /&gt;
#set landEffect 1&lt;br /&gt;
#set laserTexture laser&lt;br /&gt;
set lastScreenshot 185&lt;br /&gt;
set latitude 45&lt;br /&gt;
set leadingShotLine 1&lt;br /&gt;
#set lightLists 0&lt;br /&gt;
set lighting 1&lt;br /&gt;
set linedradarshots 10&lt;br /&gt;
#set list http://my.BZFlag.org/db/&lt;br /&gt;
#set listIcons 1&lt;br /&gt;
#set lodScale 1.0&lt;br /&gt;
set longitude 71&lt;br /&gt;
#set maxCacheMB 32&lt;br /&gt;
#set maxTextureSize 512&lt;br /&gt;
#set meshLists 1&lt;br /&gt;
set moonSegments 64&lt;br /&gt;
#set motdServer http://bzflag.org/motd.php&lt;br /&gt;
set mouseboxsize 4&lt;br /&gt;
set mousegrab true&lt;br /&gt;
set noGUI 0&lt;br /&gt;
#set noMeshClusters 0&lt;br /&gt;
#set observerTeamPrefix observer_&lt;br /&gt;
set panelopacity 0.000000&lt;br /&gt;
set password nopasswordforyou&lt;br /&gt;
set port 4410&lt;br /&gt;
set pulseDepth 0.900000&lt;br /&gt;
set pulseRate 1.800000&lt;br /&gt;
#set purpleTeamPrefix purple_&lt;br /&gt;
#set pyrWallHighResTexRepeat 8.0&lt;br /&gt;
#set pyrWallTexRepeat 3.0&lt;br /&gt;
#set pyrWallTexture pyrwall&lt;br /&gt;
set quality experimental&lt;br /&gt;
#set rabbitTeamPrefix rabbit_&lt;br /&gt;
#set radarLodScale 1.0&lt;br /&gt;
set radarStyle 2&lt;br /&gt;
#set radarTankPixels 2.0&lt;br /&gt;
set radarsize 15&lt;br /&gt;
#set redTeamPrefix red_&lt;br /&gt;
#set remoteSounds 1&lt;br /&gt;
set resolution &amp;quot;1280x1024 @75Hz 32 bits&amp;quot;&lt;br /&gt;
#set ricoEffect 1&lt;br /&gt;
#set roamSmoothTime 0.5&lt;br /&gt;
#set rogueTeamPrefix rogue_&lt;br /&gt;
#set sansSerifFont TogaSansBold&lt;br /&gt;
set saveAsMeshes 0&lt;br /&gt;
set saveAsOBJ 0&lt;br /&gt;
set saveEnergy 1&lt;br /&gt;
set saveFlatFile 0&lt;br /&gt;
#set saveIdentity 2&lt;br /&gt;
#set saveSettings 1&lt;br /&gt;
set scoreboardSort 1&lt;br /&gt;
set scorefontsize 1&lt;br /&gt;
#set scrollPages 20&lt;br /&gt;
#set serifFont TogaSerifBold&lt;br /&gt;
set server bzflag2.norang.ca&lt;br /&gt;
#set serverCacheAge 0&lt;br /&gt;
#set shadowAlpha 0.5&lt;br /&gt;
set shadows 1&lt;br /&gt;
#set shotEffect 1&lt;br /&gt;
#set showCollisionGrid 0&lt;br /&gt;
set showCoordinates 1&lt;br /&gt;
#set showCullingGrid 0&lt;br /&gt;
#set showTreads 0&lt;br /&gt;
set showVelocities 3&lt;br /&gt;
set showtabs 0&lt;br /&gt;
set sizedradarshots 4&lt;br /&gt;
set smooth 1&lt;br /&gt;
#set spawnEffect 1&lt;br /&gt;
set startcode bfaaaaabaaaaa&lt;br /&gt;
#set stdGroundTexture std_ground&lt;br /&gt;
#set stencilShadows 0&lt;br /&gt;
#set superPrefix super_&lt;br /&gt;
#set tankTexture tank&lt;br /&gt;
set team Automatic&lt;br /&gt;
set tesselation 1&lt;br /&gt;
set texture linearmipmaplinear&lt;br /&gt;
set timedate 2&lt;br /&gt;
set tkwarnratio .4&lt;br /&gt;
#set tpEffect 1&lt;br /&gt;
#set trackMarkCulling 3&lt;br /&gt;
set treadStyle 0&lt;br /&gt;
#set udpnet 1&lt;br /&gt;
set underlineColor Cyan&lt;br /&gt;
set updateDownloads 1&lt;br /&gt;
#set useDrawInfo 1&lt;br /&gt;
#set useFancyEffects 1&lt;br /&gt;
#set useMeshForRadar 0&lt;br /&gt;
set useQuality 3&lt;br /&gt;
#set useVelOnShotEffects 1&lt;br /&gt;
#set userMirror 1&lt;br /&gt;
set userRainScale 1.000000&lt;br /&gt;
set userTrackFade 1.000000&lt;br /&gt;
set volume 7&lt;br /&gt;
#set waterTexture water&lt;br /&gt;
set worldCacheLimit 10485760&lt;br /&gt;
#set zbuffer 1&lt;br /&gt;
#set zoneGroundTexture zone_ground&lt;br /&gt;
bind Pause down pause&lt;br /&gt;
bind End down &amp;quot;scrollpanel bottom&amp;quot;&lt;br /&gt;
bind &amp;quot;Left Arrow&amp;quot; down &amp;quot;turn left&amp;quot;&lt;br /&gt;
bind &amp;quot;Right Arrow&amp;quot; down &amp;quot;turn right&amp;quot;&lt;br /&gt;
bind &amp;quot;Up Arrow&amp;quot; down &amp;quot;drive forward&amp;quot;&lt;br /&gt;
bind &amp;quot;Down Arrow&amp;quot; down &amp;quot;drive reverse&amp;quot;&lt;br /&gt;
bind &amp;quot;Page Up&amp;quot; down &amp;quot;scrollpanel up_page&amp;quot;&lt;br /&gt;
bind &amp;quot;Page Down&amp;quot; down &amp;quot;scrollpanel down_page&amp;quot;&lt;br /&gt;
bind Delete down destruct&lt;br /&gt;
bind F1 down fullscreen&lt;br /&gt;
bind Shift+F1 down &amp;quot;messagepanel all&amp;quot;&lt;br /&gt;
bind Shift+F2 down &amp;quot;messagepanel chat&amp;quot;&lt;br /&gt;
bind Shift+F3 down &amp;quot;messagepanel server&amp;quot;&lt;br /&gt;
bind F4 down iconify&lt;br /&gt;
bind Shift+F4 down &amp;quot;messagepanel misc&amp;quot;&lt;br /&gt;
bind F5 down screenshot&lt;br /&gt;
bind F6 down &amp;quot;roam cycle subject backward&amp;quot;&lt;br /&gt;
bind F7 down &amp;quot;roam cycle subject forward&amp;quot;&lt;br /&gt;
bind F8 down &amp;quot;roam cycle type forward&amp;quot;&lt;br /&gt;
bind F9 down &amp;quot;roam zoom in&amp;quot;&lt;br /&gt;
bind F10 down &amp;quot;roam zoom out&amp;quot;&lt;br /&gt;
bind F11 down &amp;quot;roam zoom normal&amp;quot;&lt;br /&gt;
bind F12 down quit&lt;br /&gt;
bind &amp;quot;Left Mouse&amp;quot; down fire&lt;br /&gt;
bind &amp;quot;Middle Mouse&amp;quot; down drop&lt;br /&gt;
bind &amp;quot;Right Mouse&amp;quot; down identify&lt;br /&gt;
bind &amp;quot;Wheel Up&amp;quot; down fire&lt;br /&gt;
bind &amp;quot;Shift+Wheel Up&amp;quot; down &amp;quot;radarZoom in&amp;quot;&lt;br /&gt;
bind &amp;quot;Ctrl+Wheel Up&amp;quot; down &amp;quot;viewZoom in&amp;quot;&lt;br /&gt;
bind &amp;quot;Wheel Down&amp;quot; down &amp;quot;scrollpanel down 3&amp;quot;&lt;br /&gt;
bind &amp;quot;Shift+Wheel Down&amp;quot; down &amp;quot;radarZoom out&amp;quot;&lt;br /&gt;
bind &amp;quot;Ctrl+Wheel Down&amp;quot; down &amp;quot;viewZoom out&amp;quot;&lt;br /&gt;
bind Tab down jump&lt;br /&gt;
bind , down &amp;quot;send nemesis&amp;quot;&lt;br /&gt;
bind - down &amp;quot;time backward&amp;quot;&lt;br /&gt;
bind . down &amp;quot;send recipient&amp;quot;&lt;br /&gt;
bind 1 down &amp;quot;set displayRadarRange 0.25&amp;quot;&lt;br /&gt;
bind 2 down &amp;quot;set displayRadarRange 0.5&amp;quot;&lt;br /&gt;
bind 3 down &amp;quot;set displayRadarRange 1.0&amp;quot;&lt;br /&gt;
bind 4 down &amp;quot;radarZoom in&amp;quot;&lt;br /&gt;
bind 5 down &amp;quot;radarZoom out&amp;quot;&lt;br /&gt;
bind 7 down addhunt&lt;br /&gt;
bind 9 down autopilot&lt;br /&gt;
bind = down &amp;quot;time forward&amp;quot;&lt;br /&gt;
bind A down &amp;quot;toggle slowKeyboard&amp;quot;&lt;br /&gt;
bind B down &amp;quot;viewZoom toggle&amp;quot;&lt;br /&gt;
bind E down &amp;quot;toggle noGUI&amp;quot;&lt;br /&gt;
bind F down &amp;quot;toggle linedradarshots 65 10&amp;quot;&lt;br /&gt;
bind H down &amp;quot;toggleFlags radar&amp;quot;&lt;br /&gt;
bind I down identify&lt;br /&gt;
bind J down &amp;quot;toggleFlags main&amp;quot;&lt;br /&gt;
bind K down silence&lt;br /&gt;
bind L down &amp;quot;toggle displayLabels&amp;quot;&lt;br /&gt;
bind M down &amp;quot;send team&amp;quot;&lt;br /&gt;
bind N down &amp;quot;send all&amp;quot;&lt;br /&gt;
bind O down servercommand&lt;br /&gt;
bind P down pause&lt;br /&gt;
bind Q down toggleRadar&lt;br /&gt;
bind S down &amp;quot;toggle displayScore&amp;quot;&lt;br /&gt;
bind U down hunt&lt;br /&gt;
bind W down toggleConsole&lt;br /&gt;
bind Z down &amp;quot;send admin&amp;quot;&lt;br /&gt;
bind ` down &amp;quot;set displayRadarRange 0.12&amp;quot;&lt;br /&gt;
bind &amp;quot;Left Arrow&amp;quot; up &amp;quot;turn left&amp;quot;&lt;br /&gt;
bind &amp;quot;Right Arrow&amp;quot; up &amp;quot;turn right&amp;quot;&lt;br /&gt;
bind &amp;quot;Up Arrow&amp;quot; up &amp;quot;drive forward&amp;quot;&lt;br /&gt;
bind &amp;quot;Down Arrow&amp;quot; up &amp;quot;drive reverse&amp;quot;&lt;br /&gt;
bind F9 up &amp;quot;roam zoom in&amp;quot;&lt;br /&gt;
bind F10 up &amp;quot;roam zoom out&amp;quot;&lt;br /&gt;
bind F11 up &amp;quot;roam zoom normal&amp;quot;&lt;br /&gt;
bind &amp;quot;Left Mouse&amp;quot; up fire&lt;br /&gt;
bind &amp;quot;Right Mouse&amp;quot; up restart&lt;br /&gt;
bind &amp;quot;Wheel Up&amp;quot; up fire&lt;br /&gt;
bind Tab up jump&lt;br /&gt;
bind I up restart&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Client]]&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Weapon_(object)&amp;diff=7329</id>
		<title>Weapon (object)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Weapon_(object)&amp;diff=7329"/>
		<updated>2010-11-04T21:26:23Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* Appearance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A weapon object is a [[BZW]] map structure that defines a fixed weapon effect. This is also called a &#039;&#039;&#039;world weapon&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
The code for a weapon object is as follows&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 weapon&lt;br /&gt;
  name example_weapon&lt;br /&gt;
  position 0.0 0.0 0.0&lt;br /&gt;
  rotation 0.0&lt;br /&gt;
  color 0&lt;br /&gt;
  tilt 0.0&lt;br /&gt;
  initdelay 10.0&lt;br /&gt;
  delay 10.0 3.0 5.0 3.0&lt;br /&gt;
  type SW&lt;br /&gt;
  trigger oncap&lt;br /&gt;
  eventteam 1&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
Valid parameters for a weapon object are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=the name of the weapon, generally unused.&lt;br /&gt;
position =the position in world units for the effect to begin at&lt;br /&gt;
rotation =the orientation in degrees for the effect to fire in.&lt;br /&gt;
color =the color the weapon should be. 0: rogue, 1: red, 2: green, 3: blue, 4: purple 5: observer, 6: rabbit - note there is no observer super bolt texture&lt;br /&gt;
tilt =the vertical tilt in degrees for the effect to fire in.&lt;br /&gt;
initdelay =the delay to wait after the server starts before the effect is triggered. &lt;br /&gt;
delay =a list of delays to loop through after the startup delay. (optional)&lt;br /&gt;
type = the [[FlagCode]] for the flag effect to use for the weapon. Using V or A for example would create a high speed bullet while using SW would create a shockwave.&lt;br /&gt;
trigger =if a delay is not used, when to trigger the flag, currently only oncap is valid.&lt;br /&gt;
eventteam =the team to use when looking at oncap weapons. Use numeric values 1 - red 2 - green 3 - blue 4 - purple. Explodes when the flag of that team is captured. &lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
The weapon object can be used as many times as desired on a map.&lt;br /&gt;
The flag for the weapon must be specified in options. If a worldweapon is desired, without a corresponding flag on the ground, it can be specified without a quantity.  +f &amp;lt;flag&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
The weapon object will produce a weapon effect that is exactly the same as similar effects produced by players.&lt;br /&gt;
&lt;br /&gt;
Be sure to note that if you specify an observer shot color and set the shot type to SB (SuperBullet) a white box will appear because there is no texture for an observer super bolt.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The weapon object was added in [[BZFlag 2.0.0|v2.0.0]].&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
The weapon object is only fully supported by the [[BZWTools]] blender plug-in.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map Objects]]&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Weapon_(object)&amp;diff=7328</id>
		<title>Weapon (object)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Weapon_(object)&amp;diff=7328"/>
		<updated>2010-11-04T21:24:56Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A weapon object is a [[BZW]] map structure that defines a fixed weapon effect. This is also called a &#039;&#039;&#039;world weapon&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
The code for a weapon object is as follows&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
 weapon&lt;br /&gt;
  name example_weapon&lt;br /&gt;
  position 0.0 0.0 0.0&lt;br /&gt;
  rotation 0.0&lt;br /&gt;
  color 0&lt;br /&gt;
  tilt 0.0&lt;br /&gt;
  initdelay 10.0&lt;br /&gt;
  delay 10.0 3.0 5.0 3.0&lt;br /&gt;
  type SW&lt;br /&gt;
  trigger oncap&lt;br /&gt;
  eventteam 1&lt;br /&gt;
 end&lt;br /&gt;
|}&lt;br /&gt;
Valid parameters for a weapon object are:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
name=the name of the weapon, generally unused.&lt;br /&gt;
position =the position in world units for the effect to begin at&lt;br /&gt;
rotation =the orientation in degrees for the effect to fire in.&lt;br /&gt;
color =the color the weapon should be. 0: rogue, 1: red, 2: green, 3: blue, 4: purple 5: observer, 6: rabbit - note there is no observer super bolt texture&lt;br /&gt;
tilt =the vertical tilt in degrees for the effect to fire in.&lt;br /&gt;
initdelay =the delay to wait after the server starts before the effect is triggered. &lt;br /&gt;
delay =a list of delays to loop through after the startup delay. (optional)&lt;br /&gt;
type = the [[FlagCode]] for the flag effect to use for the weapon. Using V or A for example would create a high speed bullet while using SW would create a shockwave.&lt;br /&gt;
trigger =if a delay is not used, when to trigger the flag, currently only oncap is valid.&lt;br /&gt;
eventteam =the team to use when looking at oncap weapons. Use numeric values 1 - red 2 - green 3 - blue 4 - purple. Explodes when the flag of that team is captured. &lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
The weapon object can be used as many times as desired on a map.&lt;br /&gt;
The flag for the weapon must be specified in options. If a worldweapon is desired, without a corresponding flag on the ground, it can be specified without a quantity.  +f &amp;lt;flag&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
The weapon object will produce a weapon effect that is exactly the same as similar effects produced by players. &lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The weapon object was added in [[BZFlag 2.0.0|v2.0.0]].&lt;br /&gt;
&lt;br /&gt;
==Editor Support==&lt;br /&gt;
The weapon object is only fully supported by the [[BZWTools]] blender plug-in.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Map Objects]]&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Packetloss&amp;diff=7268</id>
		<title>Packetloss</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Packetloss&amp;diff=7268"/>
		<updated>2010-10-02T22:13:16Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: Oops&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Packetloss is a term used in networking to describe an event where some of the data sent between computers does not reach the intended destination.&lt;br /&gt;
&lt;br /&gt;
This loss of data can have detrimental effects on software that is expecting the data. In the case of BZFlag this data loss causes player tanks to not show correctly on remote clients and causes the game play mechanics to fail.&lt;br /&gt;
&lt;br /&gt;
Many BZFlag game servers will force a user to disconnect if his/her packetloss is too high in order to ensure a playable game for the rest of the players.&lt;br /&gt;
&lt;br /&gt;
=Display=&lt;br /&gt;
BZFlag can display a &#039;&#039;&#039;packet loss percentage&#039;&#039;&#039; in its lagstats. This represents an approximation of the current data loss for the user. The number is computed by keeping track of how many lagping (MsgLagPing) packets are sent and how many are received. This ratio is the packetloss.&lt;br /&gt;
&lt;br /&gt;
=Causes=&lt;br /&gt;
All packetloss happens in the network layer of a connection. The most common cause is a weak or intermittent network connection on a client&#039;s network. Low frame rate can cause [[Lag]] but not packetloss.&lt;br /&gt;
&lt;br /&gt;
==Wireless networks==&lt;br /&gt;
By far the most common reason for both high packetloss and high [[Jitter]] is poor wireless networking at the client end. Wireless networks are easily interrupted by interference from other radio signals. This includes both WIFI, cellular, and satellite connections. Many of these connection technologies are not suited for high speed gaming.&lt;br /&gt;
&lt;br /&gt;
===Common Solutions===&lt;br /&gt;
The most basic thing to try when attempting to resolve WIFI related issues is to connect client directly to the internet over an Ethernet cable. If that is not possible then changing the channel that the WIFI uses may help to reduce interference. Other issues are often are often not repairable by the end user, or just a limitation of the connection technology (i.e. satellite).&lt;br /&gt;
&lt;br /&gt;
==Internet Route==&lt;br /&gt;
The route from the client to the server can also have packetloss, especially if the server is a long physical distance from the client, or the internet route is complex. These types of issues generally can not be resolved by the end user and are simply the nature of internet data transmissions.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Packetloss&amp;diff=7267</id>
		<title>Packetloss</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Packetloss&amp;diff=7267"/>
		<updated>2010-10-02T22:10:47Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: Error&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Packetloss is a term used in networking to describe an event where some of the data sent between computers does not reach the intended destination.&lt;br /&gt;
&lt;br /&gt;
This loss of data can have detrimental effects on software that is expecting the data. In the case of BZFlag this data loss causes player tanks to not show correctly on remote clients and causes the game play mechanics to fail.&lt;br /&gt;
&lt;br /&gt;
Many BZFlag game servers will force a user to disconnect if his/her packetloss is too high in order to ensure a playable game for the rest of the players.&lt;br /&gt;
&lt;br /&gt;
=Display=&lt;br /&gt;
BZFlag can display a &#039;&#039;&#039;packet loss percentage&#039;&#039;&#039; in its lagstats. This represents an approximation of the current data loss for the user. The number is computed by keeping track of how many packets are sent and how many are received. This ratio is the packetloss.&lt;br /&gt;
&lt;br /&gt;
=Causes=&lt;br /&gt;
All packetloss happens in the network layer of a connection. The most common cause is a weak or intermittent network connection on a client&#039;s network. Low frame rate can cause [[Lag]] but not packetloss.&lt;br /&gt;
&lt;br /&gt;
==Wireless networks==&lt;br /&gt;
By far the most common reason for both high packetloss and high [[Jitter]] is poor wireless networking at the client end. Wireless networks are easily interrupted by interference from other radio signals. This includes both WIFI, cellular, and satellite connections. Many of these connection technologies are not suited for high speed gaming.&lt;br /&gt;
&lt;br /&gt;
===Common Solutions===&lt;br /&gt;
The most basic thing to try when attempting to resolve WIFI related issues is to connect client directly to the internet over an Ethernet cable. If that is not possible then changing the channel that the WIFI uses may help to reduce interference. Other issues are often are often not repairable by the end user, or just a limitation of the connection technology (i.e. satellite).&lt;br /&gt;
&lt;br /&gt;
==Internet Route==&lt;br /&gt;
The route from the client to the server can also have packetloss, especially if the server is a long physical distance from the client, or the internet route is complex. These types of issues generally can not be resolved by the end user and are simply the nature of internet data transmissions.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_ePlayerCollision&amp;diff=7239</id>
		<title>Bz ePlayerCollision</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_ePlayerCollision&amp;diff=7239"/>
		<updated>2010-09-26T22:47:14Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_ePlayerCollision&#039;&#039;&#039; is an API event that is called each time two players collide.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_ePlayerCollision&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_PlayerCollisionEventData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_ePlayerCollision&lt;br /&gt;
  |-&lt;br /&gt;
  |players&lt;br /&gt;
  |int[2]&lt;br /&gt;
  |The players that have collided&lt;br /&gt;
  |-&lt;br /&gt;
  |pos&lt;br /&gt;
  |float[3]&lt;br /&gt;
  |The position of the collision&lt;br /&gt;
  |-&lt;br /&gt;
  |handled&lt;br /&gt;
  |bool&lt;br /&gt;
  |Whether or not the plug-in has handled the data&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
It appears this event is in BZFlag 2.99.x but has not been fully implemented and will probably never return data.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=7238</id>
		<title>Functions (API)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=7238"/>
		<updated>2010-09-26T22:41:31Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* Player State Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DoDoc|&lt;br /&gt;
Fill in articles for all API Functions&amp;lt;br&amp;gt;&lt;br /&gt;
Finish updating to 2.99.x&lt;br /&gt;
}}&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;
 BZF_API unsigned int [[bz_getNonPlayerConnectionOutboundPacketCount]] ( int connectionID );&lt;br /&gt;
 BZF_API const char* [[bz_getNonPlayerConnectionIP]] ( int connectionID );&lt;br /&gt;
 BZF_API const char* [[bz_getNonPlayerConnectionHost]] ( int connectionID );&lt;br /&gt;
&lt;br /&gt;
=== Player Information ===&lt;br /&gt;
==== Player Information ====&lt;br /&gt;
 BZF_API bool [[bz_hasPerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_getAdmin]] ( int playerID );&lt;br /&gt;
 BZF_API bz_eTeamType [[bz_getPlayerTeam]] ( int playerID );&lt;br /&gt;
 BZF_API const char* [[bz_getPlayerCallsign]] ( int playerID );&lt;br /&gt;
 BZF_API const char* [[bz_getPlayerIPAddress]] ( int playerID );&lt;br /&gt;
 BZF_API const char* [[bz_getPlayerReferrer]] ( int playerID );&lt;br /&gt;
 BZF_API const char* [[bz_getPlayerCustomData]] (int playerID, const char* key );&lt;br /&gt;
 BZF_API const char* [[bz_getPlayerFlag]] ( int playerID );&lt;br /&gt;
&lt;br /&gt;
==== Player State Information ====&lt;br /&gt;
 BZF_API bool [[bz_getPlayerPosition]] ( int playerID, float pos[3], bool extrapolate );&lt;br /&gt;
 BZF_API bool [[bz_getPlayerRotation]] ( int playerID, float *rot, bool extrapolate );&lt;br /&gt;
 BZF_API bool [[bz_getPlayerVelocity]] ( int playerID, float vel[3] );&lt;br /&gt;
 BZF_API bool [[bz_getPlayerAngVel]] ( int playerID, float *angvel );&lt;br /&gt;
 BZF_API bool [[bz_getPlayerPhysicsDriver]] ( int playerID, int* phydrv );&lt;br /&gt;
 BZF_API bool [[bz_isPlayerPaused]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_canPlayerSpawn]]( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_getPlayerCurrentState]] ( int playerID, bz_PlayerUpdateState &amp;amp;state );&lt;br /&gt;
&lt;br /&gt;
==== Player Lists and Records ====&lt;br /&gt;
 BZF_API [[bz_BasePlayerRecord]] *[[bz_getPlayerByIndex]] ( int index );&lt;br /&gt;
 BZF_API [[bz_BasePlayerRecord]] *[[bz_getPlayerByCallsign]] ( const char* name );&lt;br /&gt;
 BZF_API [[bz_BasePlayerRecord]] *[[bz_getPlayerByBZID]] ( int BZID );&lt;br /&gt;
 BZF_API bool [[bz_updatePlayerData]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
 BZF_API bool [[bz_freePlayerRecord]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
&lt;br /&gt;
 BZF_API [[bz_APIIntList]] *[[bz_newIntList]] ( void );&lt;br /&gt;
 BZF_API [[bz_APIIntList]] *[[bz_getPlayerIndexList]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_getPlayerIndexList]] ( [[bz_APIIntList]] *playerList );&lt;br /&gt;
 BZF_API void [[bz_deleteIntList]] ( [[bz_APIIntList]] *l);&lt;br /&gt;
&lt;br /&gt;
==== Player Management ====&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_validAdminPassword]] ( const char* passwd );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerOperator]] ( 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 bool [[bz_setPlayerCustomData]] (int playerID, const char* key, const char* data );&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;
 BZF_API float [[bz_getPlayerRank]] ( 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;
 BZF_API bool [[bz_sendJoinServer]] ( int playerID, const char* address, int port, int team, const char* referrer, const char* message );&lt;br /&gt;
 BZF_API bool [[bz_sendLuaData]] ( int dstPlayerID, int dstScriptID, int statusBits, const char* data, int len,&lt;br /&gt;
                               int srcPlayerID = 0, int srcScriptID = 0 );&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;
 BZF_API int [[bz_getPlayerCount]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_anyPlayers]] ( void );&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_Time]] *ts );&lt;br /&gt;
 BZF_API void [[bz_getUTCtime]] ( [[bz_Time]] *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_HostBanUser]] ( const char* hostmask, const char* source, 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;
 BZF_API bool [[bz_HostUnbanUser]] ( const char* hostmask );&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 unsigned int [[bz_getReportCount]] ( void );&lt;br /&gt;
 BZF_API const char* [[bz_getReportSource]] ( unsigned int id );&lt;br /&gt;
 BZF_API const char* [[bz_getReportBody]] ( unsigned int id );&lt;br /&gt;
 BZF_API const char* [[bz_getReportTime]] ( unsigned int id );&lt;br /&gt;
 BZF_API bool [[bz_clearReport]] ( unsigned int id );&lt;br /&gt;
 BZF_API bool [[bz_clearAllReports]] ( 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 const char* [[bz_pluginBinPath]] ( void );&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;
=== Callback Functions ===&lt;br /&gt;
 BZF_API bool [[bz_registerCallBack]] ( const char* name, [[bz_GenericCallback]] *callback );&lt;br /&gt;
 BZF_API bool [[bz_registerCallBack]] ( const char* name, [[bz_GenericCallbackFunc]] callback );&lt;br /&gt;
 BZF_API bool [[bz_removeCallBack]] ( const char* name, [[bz_GenericCallback]] *callback );&lt;br /&gt;
 BZF_API bool [[bz_removeCallBack]] ( const char* name, [[bz_GenericCallbackFunc]] callback );&lt;br /&gt;
 BZF_API bool [[bz_callCallback]] ( const char* name, void *param );&lt;br /&gt;
 BZF_API bool [[bz_callbackExists]] ( const char* name );&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 bool [[bz_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 unsigned 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;
 BZF_API unsigned int [[bz_findWorldObject]] ( const char *name );&lt;br /&gt;
 BZF_API [[bz_APIBaseWorldObject]]* [[bz_getWorldObjectByID]] ( unsigned int id );&lt;br /&gt;
 BZF_API bool [[bz_getTeleLinkIDs]] ( const char* teleName, int* frontLink, int* backLink );&lt;br /&gt;
 BZF_API const char* [[bz_getLinkTeleName]] ( int linkIndex );&lt;br /&gt;
 BZF_API int [[bz_getPhyDrvID]] ( const char* phyDrvName );&lt;br /&gt;
 BZF_API const char* [[bz_getPhyDrvName]] ( unsigned int phyDrvID );&lt;br /&gt;
 BZF_API bool [[bz_SetWorldObjectTangibility]] ( int id, const [[bz_SolidObjectPassableAtributes]] &amp;amp;atribs );&lt;br /&gt;
 BZF_API bool [[bz_GetWorldObjectTangibility]] ( int id, [[bz_SolidObjectPassableAtributes]] &amp;amp;atribs );&lt;br /&gt;
 BZF_API void [[bz_ResetWorldObjectTangibilities]] ( void );&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;
 BZF_API const char *[[bz_getServerVersion]] ( void );&lt;br /&gt;
 BZF_API const char *[[bz_getProtocolVersion]] ( void );&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 bool [[bz_allowJumping]] ( void );&lt;br /&gt;
 BZF_API [[bz_eTeamType]] [[bz_checkBaseAtPoint]] ( float pos[3] );&lt;br /&gt;
 BZF_API int [[bz_APIVersion]] ( void );&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>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_ePlayerStatus&amp;diff=7237</id>
		<title>Bz ePlayerStatus</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_ePlayerStatus&amp;diff=7237"/>
		<updated>2010-09-26T22:38:22Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: bz_ePlayerStatus&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The bz_ePlayerStatus is used to define the current status of a player.&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eDead&lt;br /&gt;
  |Player is not alive, not paused, (not not) responding, etc&lt;br /&gt;
  |-&lt;br /&gt;
  |eAlive&lt;br /&gt;
  |Player is alive&lt;br /&gt;
  |-&lt;br /&gt;
  |ePaused&lt;br /&gt;
  |Player is paused&lt;br /&gt;
  |-&lt;br /&gt;
  |eExploding&lt;br /&gt;
  |Player is exploding&lt;br /&gt;
  |-&lt;br /&gt;
  |eTeleporting&lt;br /&gt;
  |Teleported recently&lt;br /&gt;
  |-&lt;br /&gt;
  |eInBuilding&lt;br /&gt;
  |has OO and is in a building&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_PlayerUpdateState&amp;diff=7236</id>
		<title>Bz PlayerUpdateState</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_PlayerUpdateState&amp;diff=7236"/>
		<updated>2010-09-26T22:30:37Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: bz_PlayerUpdateState&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
==Overview==&lt;br /&gt;
bz_PlayerUpdateState contains useful information that allow plugins to determine a player&#039;s state.&lt;br /&gt;
&lt;br /&gt;
==Types==&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |falling&lt;br /&gt;
  |bool&lt;br /&gt;
  |Not driving on the ground or an obstacle&lt;br /&gt;
  |-&lt;br /&gt;
  |crossingWall&lt;br /&gt;
  |bool&lt;br /&gt;
  |crossing an obstacle wall&lt;br /&gt;
  |-&lt;br /&gt;
  |inPhantomZone&lt;br /&gt;
  |bool&lt;br /&gt;
  |zoned or not&lt;br /&gt;
  |-&lt;br /&gt;
  |pos&lt;br /&gt;
  |float[3]&lt;br /&gt;
  |position of the tank&lt;br /&gt;
  |-&lt;br /&gt;
  |velocity&lt;br /&gt;
  |float[3]&lt;br /&gt;
  |velocity of the tank&lt;br /&gt;
  |-&lt;br /&gt;
  |rotation&lt;br /&gt;
  |float&lt;br /&gt;
  |orientation of the tank&lt;br /&gt;
  |-&lt;br /&gt;
  |angVel&lt;br /&gt;
  |float&lt;br /&gt;
  |angular velocity of the tank&lt;br /&gt;
  |-&lt;br /&gt;
  |phydrv&lt;br /&gt;
  |int&lt;br /&gt;
  |physics driver the tank is on&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_setPlayerSpawnable&amp;diff=7233</id>
		<title>Bz setPlayerSpawnable</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_setPlayerSpawnable&amp;diff=7233"/>
		<updated>2010-09-26T21:16:49Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_setPlayerSpawnable&lt;br /&gt;
| description   = Marks this player as allowed to spawn or not allowed to spawn.&lt;br /&gt;
| param1        = playerID&lt;br /&gt;
| param1type    = int&lt;br /&gt;
| param1desc    = The id of the player to mark as spawnable.&lt;br /&gt;
| param2        = spawn&lt;br /&gt;
| param2type    = bool&lt;br /&gt;
| param2desc    = Mark them as able to spawn or not spawn&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_setPlayerSpawnable&amp;diff=7232</id>
		<title>Bz setPlayerSpawnable</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_setPlayerSpawnable&amp;diff=7232"/>
		<updated>2010-09-26T21:16:04Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: bz_setPlaerSpawnable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{apicall&lt;br /&gt;
| name          = bz_setPlaerSpawnable&lt;br /&gt;
| description   = Marks this player as allowed to spawn or not allowed to spawn.&lt;br /&gt;
| param1        = playerID&lt;br /&gt;
| param1type    = int&lt;br /&gt;
| param1desc    = The id of the player to mark as spawnable.&lt;br /&gt;
| param2        = spawn&lt;br /&gt;
| param2type    = bool&lt;br /&gt;
| param2desc    = Mark them as able to spawn or not spawn&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eShotTeleportEvent&amp;diff=7223</id>
		<title>Bz eShotTeleportEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eShotTeleportEvent&amp;diff=7223"/>
		<updated>2010-09-25T19:05:47Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: bz_eShotTeleportEvent&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eShotTeleportEvent&#039;&#039;&#039; is an API event that is called each time a shot teleports via a teleporter.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eShotTeleportEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_ShotTeleportEventData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eShotTeleportEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player whos shot was teleported&lt;br /&gt;
  |-&lt;br /&gt;
  |shotID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the shot that teleported&lt;br /&gt;
  |-&lt;br /&gt;
  |type&lt;br /&gt;
  |[[bz_APIString]]&lt;br /&gt;
  |What type the shot was&lt;br /&gt;
  |-&lt;br /&gt;
  |pos&lt;br /&gt;
  |float[3]&lt;br /&gt;
  |Where the shot teleported&lt;br /&gt;
  |-&lt;br /&gt;
  |linkSrcID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the teleporter the shot went into&lt;br /&gt;
  |-&lt;br /&gt;
  |linkDstID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the teleporter the shot came out of&lt;br /&gt;
  |}&lt;br /&gt;
==Usage==&lt;br /&gt;
Data returned can not be modified.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eShotStoppedEvent&amp;diff=7222</id>
		<title>Bz eShotStoppedEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eShotStoppedEvent&amp;diff=7222"/>
		<updated>2010-09-25T19:02:56Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: bz_eShotStoppedEvent&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eShotStoppedEvent&#039;&#039;&#039; is an API event that is called each time a shot stops.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eShotStoppedEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_ShotStoppedEventData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eShotStoppedEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player whos shot stopped&lt;br /&gt;
  |-&lt;br /&gt;
  |shotID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the shot that stopped&lt;br /&gt;
  |-&lt;br /&gt;
  |type&lt;br /&gt;
  |[[bz_APIString]]&lt;br /&gt;
  |What type the shot was&lt;br /&gt;
  |-&lt;br /&gt;
  |pos&lt;br /&gt;
  |float[3]&lt;br /&gt;
  |Where the shot stopped&lt;br /&gt;
  |-&lt;br /&gt;
  |obstacleGUID&lt;br /&gt;
  |unsigned int&lt;br /&gt;
  |ID of what obstacle the shot stopped on&lt;br /&gt;
  |}&lt;br /&gt;
==Usage==&lt;br /&gt;
Data returned can not be modified.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_ePlayerSentCustomData&amp;diff=7221</id>
		<title>Bz ePlayerSentCustomData</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_ePlayerSentCustomData&amp;diff=7221"/>
		<updated>2010-09-25T18:59:57Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: bz_ePlayerSentCustomData&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_ePlayerSentCustomData&#039;&#039;&#039; is an API event that is called each time a player is sent custom data.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_ePlayerSentCustomData&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_PlayerCustomData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_ePlayerSentCustomData&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player receiving the change&lt;br /&gt;
  |-&lt;br /&gt;
  |key&lt;br /&gt;
  |const char*&lt;br /&gt;
  |The BZDB variable being changed&lt;br /&gt;
  |-&lt;br /&gt;
  |data&lt;br /&gt;
  |const char*&lt;br /&gt;
  |The value its changing too&lt;br /&gt;
  |}&lt;br /&gt;
==Usagae==&lt;br /&gt;
Data can be changed.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eShotRicochetEvent&amp;diff=7220</id>
		<title>Bz eShotRicochetEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eShotRicochetEvent&amp;diff=7220"/>
		<updated>2010-09-25T18:53:51Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: bz_eShotRicochetEvent&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eShotRicochetEvent&#039;&#039;&#039; is an API event that is called each time a shot ricochetes.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eShotRicochetEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_ShotRicochetEventData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eShotRicochetEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player whos shot ricocheted&lt;br /&gt;
  |-&lt;br /&gt;
  |shotID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the shot that ricocheted&lt;br /&gt;
  |-&lt;br /&gt;
  |type&lt;br /&gt;
  |[[bz_APIString]]&lt;br /&gt;
  |What type the shot was&lt;br /&gt;
  |-&lt;br /&gt;
  |pos&lt;br /&gt;
  |float[3]&lt;br /&gt;
  |Where the shot ricocheted&lt;br /&gt;
  |-&lt;br /&gt;
  |obstacleGUID&lt;br /&gt;
  |unsigned int&lt;br /&gt;
  |ID of what obstacle the shot ricocheted off of&lt;br /&gt;
  |}&lt;br /&gt;
==Usage==&lt;br /&gt;
Data returned can not be modified.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eShotExpiredEvent&amp;diff=7219</id>
		<title>Bz eShotExpiredEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eShotExpiredEvent&amp;diff=7219"/>
		<updated>2010-09-25T18:50:13Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: bz_eShotExpiredEvent&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eShotExpiredEvent&#039;&#039;&#039; is an API event that is called each time a shot expires.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eShotExpiredEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_ShotExpiredEventData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eShotExpiredEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player who fired the shot&lt;br /&gt;
  |-&lt;br /&gt;
  |shotID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the shot that expired&lt;br /&gt;
  |-&lt;br /&gt;
  |type&lt;br /&gt;
  |[[bz_APIString]]&lt;br /&gt;
  |What type the shot was&lt;br /&gt;
  |-&lt;br /&gt;
  |pos&lt;br /&gt;
  |float[3]&lt;br /&gt;
  |Where the shot expired&lt;br /&gt;
  |}&lt;br /&gt;
==Usage==&lt;br /&gt;
Data returned can not be modified.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_ePlayerUpdateDoneEvent&amp;diff=7218</id>
		<title>Bz ePlayerUpdateDoneEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_ePlayerUpdateDoneEvent&amp;diff=7218"/>
		<updated>2010-09-25T18:47:12Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: bz_ePlayerUpdateDoneEvent&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_ePlayerUpdateDoneEvent&#039;&#039;&#039; is an API event that is called each time a player update finishes.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_ePlayerUpdateDoneEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_PlayerUpdateDoneEventData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_ePlayerUpdateDoneEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player whos update finished&lt;br /&gt;
  |-&lt;br /&gt;
  |stateTime&lt;br /&gt;
  |double&lt;br /&gt;
  |The time the update finished&lt;br /&gt;
  |}&lt;br /&gt;
==Usage==&lt;br /&gt;
Data returned can not be modified.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_ePlayerTeamChangeEvent&amp;diff=7217</id>
		<title>Bz ePlayerTeamChangeEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_ePlayerTeamChangeEvent&amp;diff=7217"/>
		<updated>2010-09-25T18:44:51Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: bz_ePlayerTeamChangeEvent&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_ePlayerTeamChangeEvent&#039;&#039;&#039; is an API event that is called each time a player switches teams via bz_changeTeam().&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_ePlayerTeamChangeEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_PlayerTeamChangeData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_ePlayerTeamChangeEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player whos team was switched&lt;br /&gt;
  |-&lt;br /&gt;
  |oldTeam&lt;br /&gt;
  |[[bz_eTeamType]]&lt;br /&gt;
  |The team the player used to be on&lt;br /&gt;
  |-&lt;br /&gt;
  |newTeam&lt;br /&gt;
  |[[bz_eTeamType]]&lt;br /&gt;
  |The new team the player is on&lt;br /&gt;
  |}&lt;br /&gt;
==Usagae==&lt;br /&gt;
Data returned can not be modified.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_ePlayerPauseRequestEvent&amp;diff=7216</id>
		<title>Bz ePlayerPauseRequestEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_ePlayerPauseRequestEvent&amp;diff=7216"/>
		<updated>2010-09-25T18:42:01Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_ePlayerPauseRequestEvent&#039;&#039;&#039; is an API event that is called each time a player wants to pause.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_ePlayerPauseRequestEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_PlayerPauseRequestData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_ePlayerPauseRequestEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player who wants to pause&lt;br /&gt;
  |-&lt;br /&gt;
  |allow&lt;br /&gt;
  |bool&lt;br /&gt;
  |Wether or not to allow the pause&lt;br /&gt;
  |-&lt;br /&gt;
  |reason&lt;br /&gt;
  |[[bz_APIString]]&lt;br /&gt;
  |The reason if pause request is denied. Default: pause request denied&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
Data retured can be modified.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_ePlayerPauseRequestEvent&amp;diff=7215</id>
		<title>Bz ePlayerPauseRequestEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_ePlayerPauseRequestEvent&amp;diff=7215"/>
		<updated>2010-09-25T18:41:14Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: New page: {{BZFS_API_Doc}} {{BZFS_API_Events}}  ==Overview== The &amp;#039;&amp;#039;&amp;#039;bz_ePlayerPauseRequestEvent&amp;#039;&amp;#039;&amp;#039; is an API event that is called each time a player wants to pause. ==Data== &amp;#039;&amp;#039;&amp;#039;bz_ePlayerPauseReques...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_ePlayerPauseRequestEvent&#039;&#039;&#039; is an API event that is called each time a player wants to pause.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_ePlayerPauseRequestEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_PlayerPauseRequestData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_ePlayerPauseRequestEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player who wants to pause&lt;br /&gt;
  |-&lt;br /&gt;
  |allow&lt;br /&gt;
  |bool&lt;br /&gt;
  |Wether or not to allow the pause&lt;br /&gt;
  |-&lt;br /&gt;
  |reason&lt;br /&gt;
  |bz_ApiString&lt;br /&gt;
  |The reason if pause request is denied. Default: pause request denied&lt;br /&gt;
  |}&lt;br /&gt;
==Usage==&lt;br /&gt;
Data retured can be modified.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_ePlayerCustomDataChanged&amp;diff=7214</id>
		<title>Bz ePlayerCustomDataChanged</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_ePlayerCustomDataChanged&amp;diff=7214"/>
		<updated>2010-09-25T18:37:02Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* bz_ePlayerCustomDataChanged */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_ePlayerCustomDataChanged&#039;&#039;&#039; is an API event that is called each time bz_setPlayerCustomData() is run.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_ePlayerCustomDataChanged&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_PlayerCustomData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_ePlayerCustomDataChanged&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player receiving the change&lt;br /&gt;
  |-&lt;br /&gt;
  |key&lt;br /&gt;
  |const char*&lt;br /&gt;
  |The BZDB variable being changed&lt;br /&gt;
  |-&lt;br /&gt;
  |value&lt;br /&gt;
  |const char*&lt;br /&gt;
  |The value its changing too&lt;br /&gt;
  |}&lt;br /&gt;
==Usagae==&lt;br /&gt;
All data retured is only for notification purposes.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eLuaDataEvent&amp;diff=7213</id>
		<title>Bz eLuaDataEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eLuaDataEvent&amp;diff=7213"/>
		<updated>2010-09-25T18:32:25Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eLuaDataEvent&#039;&#039;&#039; is an API event that is called each time a BZDB variable is changed.&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eLuaDataEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_LuaDataEventData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eLuaDataEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |srcPlayerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player sending the data&lt;br /&gt;
  |-&lt;br /&gt;
  |dstPlayerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player receiving the data&lt;br /&gt;
  |-&lt;br /&gt;
  |srcScriptID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the sending script&lt;br /&gt;
  |-&lt;br /&gt;
  |dstScriptID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the receiving script&lt;br /&gt;
  |-&lt;br /&gt;
  |status&lt;br /&gt;
  |int&lt;br /&gt;
  |Status of the data&lt;br /&gt;
  |-&lt;br /&gt;
  |data&lt;br /&gt;
  |const char*&lt;br /&gt;
  |The data being sent&lt;br /&gt;
  |-&lt;br /&gt;
  |doNotSend&lt;br /&gt;
  |bool&lt;br /&gt;
  |Whether or not to send the data&lt;br /&gt;
  |}&lt;br /&gt;
==Usagae==&lt;br /&gt;
All data retured is only for notification purposes except for doNotSend.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eLuaDataEvent&amp;diff=7212</id>
		<title>Bz eLuaDataEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eLuaDataEvent&amp;diff=7212"/>
		<updated>2010-09-25T18:31:53Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: forgot bz_&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;bz_&#039;eLuaDataEvent&#039;&#039;&#039; is an API event that is called each time a BZDB variable is changed.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eLuaDataEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_LuaDataEventData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eLuaDataEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |srcPlayerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player sending the data&lt;br /&gt;
  |-&lt;br /&gt;
  |dstPlayerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player receiving the data&lt;br /&gt;
  |-&lt;br /&gt;
  |srcScriptID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the sending script&lt;br /&gt;
  |-&lt;br /&gt;
  |dstScriptID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the receiving script&lt;br /&gt;
  |-&lt;br /&gt;
  |status&lt;br /&gt;
  |int&lt;br /&gt;
  |Status of the data&lt;br /&gt;
  |-&lt;br /&gt;
  |data&lt;br /&gt;
  |const char*&lt;br /&gt;
  |The data being sent&lt;br /&gt;
  |-&lt;br /&gt;
  |doNotSend&lt;br /&gt;
  |bool&lt;br /&gt;
  |Whether or not to send the data&lt;br /&gt;
  |}&lt;br /&gt;
==Usagae==&lt;br /&gt;
All data retured is only for notification purposes except for doNotSend.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eLuaDataEvent&amp;diff=7208</id>
		<title>Bz eLuaDataEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eLuaDataEvent&amp;diff=7208"/>
		<updated>2010-09-25T18:30:10Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* eLuaDataEvent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;eLuaDataEvent&#039;&#039;&#039; is an API event that is called each time a BZDB variable is changed.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;eLuaDataEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_LuaDataEventData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |eLuaDataEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |srcPlayerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player sending the data&lt;br /&gt;
  |-&lt;br /&gt;
  |dstPlayerID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the player receiving the data&lt;br /&gt;
  |-&lt;br /&gt;
  |srcScriptID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the sending script&lt;br /&gt;
  |-&lt;br /&gt;
  |dstScriptID&lt;br /&gt;
  |int&lt;br /&gt;
  |ID of the receiving script&lt;br /&gt;
  |-&lt;br /&gt;
  |status&lt;br /&gt;
  |int&lt;br /&gt;
  |Status of the data&lt;br /&gt;
  |-&lt;br /&gt;
  |data&lt;br /&gt;
  |const char*&lt;br /&gt;
  |The data being sent&lt;br /&gt;
  |-&lt;br /&gt;
  |doNotSend&lt;br /&gt;
  |bool&lt;br /&gt;
  |Whether or not to send the data&lt;br /&gt;
  |}&lt;br /&gt;
==Usagae==&lt;br /&gt;
All data retured is only for notification purposes except for doNotSend.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eBZDBChange&amp;diff=7206</id>
		<title>Bz eBZDBChange</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eBZDBChange&amp;diff=7206"/>
		<updated>2010-09-25T18:21:54Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* bz_eBZDBChange */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eBZDBChange&#039;&#039;&#039; is an API event that is called each time a BZDB variable is changed.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eBZDBChange&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_BZDBChangeData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eBZDBChange&lt;br /&gt;
  |-&lt;br /&gt;
  |key&lt;br /&gt;
  |[[Bz_APIString]]&lt;br /&gt;
  |The variable that was changed&lt;br /&gt;
  |-&lt;br /&gt;
  |value&lt;br /&gt;
  |[[Bz_APIString]]&lt;br /&gt;
  |What the variable was changed too&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eAutoPilotChangeEvent&amp;diff=7205</id>
		<title>Bz eAutoPilotChangeEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eAutoPilotChangeEvent&amp;diff=7205"/>
		<updated>2010-09-25T18:17:11Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eAutoPilotChangeEvent&#039;&#039;&#039; is an API event that is called each time a player is about to change autopilot.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eAutoPilotChangeEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_eAutoPilotChangeData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eAutoPilotChangeEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |Who is changing their autopilot&lt;br /&gt;
  |-&lt;br /&gt;
  |autopilot&lt;br /&gt;
  |bool&lt;br /&gt;
  |Whether the player is turning auto pilot on / off&lt;br /&gt;
  |-&lt;br /&gt;
  |allow&lt;br /&gt;
  |bool&lt;br /&gt;
  |Whether or not to allow the change&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eAutoPilotChangeEvent&amp;diff=7204</id>
		<title>Bz eAutoPilotChangeEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eAutoPilotChangeEvent&amp;diff=7204"/>
		<updated>2010-09-25T18:16:47Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* bz_eAutoPilotChangeEvent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eAutoPilotChangeEvent&#039;&#039;&#039; is an API event that is called each time a player is about to change autopilot.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eAutoPilotChangeEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_eAutoPilotChangeEvent&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eAutoPilotChangeEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |Who is changing their autopilot&lt;br /&gt;
  |-&lt;br /&gt;
  |autopilot&lt;br /&gt;
  |bool&lt;br /&gt;
  |Whether the player is turning auto pilot on / off&lt;br /&gt;
  |-&lt;br /&gt;
  |allow&lt;br /&gt;
  |bool&lt;br /&gt;
  |Whether or not to allow the change&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eAllowAutoPilotChangeEvent&amp;diff=7203</id>
		<title>Bz eAllowAutoPilotChangeEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eAllowAutoPilotChangeEvent&amp;diff=7203"/>
		<updated>2010-09-25T18:13:08Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* bz_eAllowAutoPilotChangeEvent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;eAllowAutoPilotChangeEvent&#039;&#039;&#039; is an API event that is called each time a player is about to change autopilot.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;eAllowAutoPilotChangeEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_AutoPilotChangeData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |eAllowAutoPilotChangeEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |allow&lt;br /&gt;
  |bool&lt;br /&gt;
  |Whether or not to allow the change&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Events_(API)&amp;diff=7202</id>
		<title>Events (API)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Events_(API)&amp;diff=7202"/>
		<updated>2010-09-25T18:08:14Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: OK its right this time&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
==Overview==&lt;br /&gt;
API events are callbacks that a [[Plug-ins|plug-in]] can install into [[BZFS]] to be called in response to specific actions or state changes in the server side game world. Events are the primary method of communication from BZFS to installed plug-ins. Specific events exist for nearly all logical actions that can happen during a game of BZFlag.&lt;br /&gt;
&lt;br /&gt;
==Installation and Removal==&lt;br /&gt;
The callbacks for events are typically installed during the [[bz_Load]] entry point in a plug-in, so they can be active when a plug-in is first loaded.&lt;br /&gt;
&lt;br /&gt;
The plug-in must call the function;&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_registerEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
The plug-in registers and event callback derived from [[bz_EventHandler]] for each specific event types it wishes to monitor.&lt;br /&gt;
&lt;br /&gt;
When a plug-in no longer needs to monitor an event, or when it is unloaded in the [[bz_Unload]] entry point, the plug-in must remove the installed callback by calling the function;&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_removeEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
==Event Handler==&lt;br /&gt;
The plug-in must define a class that is derived from [[bz_EventHandler]] and pass a pointer to an object of that class when ever it registers an event callback.&lt;br /&gt;
&lt;br /&gt;
When ever a specific event is triggered, BZFS will call the &#039;process&#039; method of the installed callback class.&lt;br /&gt;
&lt;br /&gt;
   virtual void process ( bz_EventData *eventData ) = 0;&lt;br /&gt;
&lt;br /&gt;
==Event Data==&lt;br /&gt;
With each call to the &#039;process&#039; method of the installed event handler, BZFS will pass the plug-in a pointer to a class that contains all the data provided by the event. Each event derives a specific data class from [[bz_EventData]] that contains the specific member variables that contain the data. The base class [[bz_EventData]] contains the data member;&lt;br /&gt;
   bz_eEventType	eventType;&lt;br /&gt;
This data member allows a plug-in to identify the specific event and cast the &#039;bz_EventData&#039; pointer to the appropriate specific data class. This is usefull for plug-ins that use the same &#039;bz_EventHandler&#039; to process more then one specific message.&lt;br /&gt;
&lt;br /&gt;
Please see the descriptions of each specific event for information and descriptions of the data classes for each event. Some specific events allow plug-ins to change the values of data members in the data class and will use the modified values instead.&lt;br /&gt;
&lt;br /&gt;
Plug-ins should never delete or free the memory for a data class. BZFS will manage all pointers passed to plug-ins.&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
The following list contains all the event types currently supported by BZFS version 2.99&lt;br /&gt;
&lt;br /&gt;
  [[bz_eAllowAutoPilotChangeEvent]]&lt;br /&gt;
  [[bz_eAllowCTFCaptureEvent]]&lt;br /&gt;
  [[bz_eAllowFlagGrabEvent]]&lt;br /&gt;
  [[bz_eAllowKillCommandEvent]]&lt;br /&gt;
  [[bz_eAllowPlayer]]&lt;br /&gt;
  [[bz_eAllowSpawn]]&lt;br /&gt;
  [[bz_eAnointRabbitEvent]]&lt;br /&gt;
  [[bz_eAutoPilotChangeEvent]]&lt;br /&gt;
  [[bz_eBZDBChange]]&lt;br /&gt;
  [[bz_eBanEvent]]&lt;br /&gt;
  [[bz_eCaptureEvent]]&lt;br /&gt;
  [[bz_eFilteredChatMessageEvent]]&lt;br /&gt;
  [[bz_eFlagDroppedEvent]]&lt;br /&gt;
  [[bz_eFlagGrabbedEvent]]&lt;br /&gt;
  [[bz_eFlagResetEvent]]&lt;br /&gt;
  [[bz_eFlagTransferredEvent]]&lt;br /&gt;
  [[bz_eGameStartEvent]]&lt;br /&gt;
  [[bz_eGameStartEvent|bz_eGameEndEvent]]&lt;br /&gt;
  [[bz_eGetAutoTeamEvent]]&lt;br /&gt;
  [[bz_eGetPlayerInfoEvent]]&lt;br /&gt;
  [[bz_eGetPlayerSpawnPosEvent]]&lt;br /&gt;
  [[bz_eGetWorldEvent]]&lt;br /&gt;
  [[bz_eHostBanModifyEvent]]&lt;br /&gt;
  [[bz_eHostBanNotifyEvent]]&lt;br /&gt;
  [[bz_eIdBanEvent]]&lt;br /&gt;
  [[bz_eIdleNewNonPlayerConnection]]&lt;br /&gt;
  [[bz_eKickEvent]]&lt;br /&gt;
  [[bz_eKillEvent]]&lt;br /&gt;
  [[bz_eListServerUpdateEvent]]&lt;br /&gt;
  [[bz_eLogingEvent]]&lt;br /&gt;
  [[bz_eLuaDataEvent]]&lt;br /&gt;
  [[bz_eMessageFilteredEvent]]&lt;br /&gt;
  [[bz_eNetDataReceveEvent]]&lt;br /&gt;
  [[bz_eNetDataSendEvent]]&lt;br /&gt;
  [[bz_eNewNonPlayerConnection]]&lt;br /&gt;
  [[bz_eNewRabbitEvent]]&lt;br /&gt;
  [[bz_eNullEvent]]&lt;br /&gt;
  [[bz_ePlayerAuthEvent]]&lt;br /&gt;
  [[bz_ePlayerCollision]]&lt;br /&gt;
  [[bz_ePlayerCustomDataChanged]]&lt;br /&gt;
  [[bz_ePlayerDieEvent]]&lt;br /&gt;
  [[bz_ePlayerJoinEvent]]&lt;br /&gt;
  [[bz_ePlayerPartEvent]]&lt;br /&gt;
  [[bz_ePlayerPauseRequestEvent]]&lt;br /&gt;
  [[bz_ePlayerPausedEvent]]&lt;br /&gt;
  [[bz_ePlayerSentCustomData]]&lt;br /&gt;
  [[bz_ePlayerSpawnEvent]]&lt;br /&gt;
  [[bz_ePlayerTeamChangeEvent]]&lt;br /&gt;
  [[bz_ePlayerUpdateDoneEvent]]&lt;br /&gt;
  [[bz_ePlayerUpdateEvent]]&lt;br /&gt;
  [[bz_eRawChatMessageEvent]]&lt;br /&gt;
  [[bz_eReloadEvent]]&lt;br /&gt;
  [[bz_eReportFiledEvent]]&lt;br /&gt;
  [[bz_eServerMsgEvent]]&lt;br /&gt;
  [[bz_eShotEndedEvent]]&lt;br /&gt;
  [[bz_eShotExpiredEvent]]&lt;br /&gt;
  [[bz_eShotFiredEvent]]&lt;br /&gt;
  [[bz_eShotRicochetEvent]]&lt;br /&gt;
  [[bz_eShotStoppedEvent]]&lt;br /&gt;
  [[bz_eShotTeleportEvent]]&lt;br /&gt;
  [[bz_eSlashCommandEvent]]&lt;br /&gt;
  [[bz_eTeleportEvent]]&lt;br /&gt;
  [[bz_eTickEvent]]&lt;br /&gt;
  [[bz_eUnknownSlashCommand]]&lt;br /&gt;
  [[bz_eWorldFinalized]]&lt;br /&gt;
  [[bz_eZoneEntryEvent]]&lt;br /&gt;
  [[bz_eZoneExitEvent]]&lt;br /&gt;
&lt;br /&gt;
There exists one additional event in the &#039;bz_eEventType&#039; enumeration in &#039;bzfsAPI.h&#039;, &#039;&#039;bz_eLastEvent&#039;&#039;. This event is simply used by BZFS to assist in the counting of the total number of events, it will never be called and can not be installed.&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_Events]]&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Events_(API)&amp;diff=7201</id>
		<title>Events (API)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Events_(API)&amp;diff=7201"/>
		<updated>2010-09-25T18:06:54Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* Alphabetical? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
==Overview==&lt;br /&gt;
API events are callbacks that a [[Plug-ins|plug-in]] can install into [[BZFS]] to be called in response to specific actions or state changes in the server side game world. Events are the primary method of communication from BZFS to installed plug-ins. Specific events exist for nearly all logical actions that can happen during a game of BZFlag.&lt;br /&gt;
&lt;br /&gt;
==Installation and Removal==&lt;br /&gt;
The callbacks for events are typically installed during the [[bz_Load]] entry point in a plug-in, so they can be active when a plug-in is first loaded.&lt;br /&gt;
&lt;br /&gt;
The plug-in must call the function;&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_registerEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
The plug-in registers and event callback derived from [[bz_EventHandler]] for each specific event types it wishes to monitor.&lt;br /&gt;
&lt;br /&gt;
When a plug-in no longer needs to monitor an event, or when it is unloaded in the [[bz_Unload]] entry point, the plug-in must remove the installed callback by calling the function;&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_removeEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
==Event Handler==&lt;br /&gt;
The plug-in must define a class that is derived from [[bz_EventHandler]] and pass a pointer to an object of that class when ever it registers an event callback.&lt;br /&gt;
&lt;br /&gt;
When ever a specific event is triggered, BZFS will call the &#039;process&#039; method of the installed callback class.&lt;br /&gt;
&lt;br /&gt;
   virtual void process ( bz_EventData *eventData ) = 0;&lt;br /&gt;
&lt;br /&gt;
==Event Data==&lt;br /&gt;
With each call to the &#039;process&#039; method of the installed event handler, BZFS will pass the plug-in a pointer to a class that contains all the data provided by the event. Each event derives a specific data class from [[bz_EventData]] that contains the specific member variables that contain the data. The base class [[bz_EventData]] contains the data member;&lt;br /&gt;
   bz_eEventType	eventType;&lt;br /&gt;
This data member allows a plug-in to identify the specific event and cast the &#039;bz_EventData&#039; pointer to the appropriate specific data class. This is usefull for plug-ins that use the same &#039;bz_EventHandler&#039; to process more then one specific message.&lt;br /&gt;
&lt;br /&gt;
Please see the descriptions of each specific event for information and descriptions of the data classes for each event. Some specific events allow plug-ins to change the values of data members in the data class and will use the modified values instead.&lt;br /&gt;
&lt;br /&gt;
Plug-ins should never delete or free the memory for a data class. BZFS will manage all pointers passed to plug-ins.&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
The following list contains all the event types currently supported by BZFS version 2.99&lt;br /&gt;
&lt;br /&gt;
[  [[bz_eAllowAutoPilotChangeEvent]]&lt;br /&gt;
  [[bz_eAllowCTFCaptureEvent]]&lt;br /&gt;
  [[bz_eAllowFlagGrabEvent]]&lt;br /&gt;
  [[bz_eAllowKillCommandEvent]]&lt;br /&gt;
  [[bz_eAllowPlayer]]&lt;br /&gt;
  [[bz_eAllowSpawn]]&lt;br /&gt;
  [[bz_eAnointRabbitEvent]]&lt;br /&gt;
  [[bz_eAutoPilotChangeEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eBZDBChange]]&lt;br /&gt;
  [[bz_eBanEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eCaptureEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eFilteredChatMessageEvent]]&lt;br /&gt;
  [[bz_eFlagDroppedEvent]]&lt;br /&gt;
  [[bz_eFlagGrabbedEvent]]&lt;br /&gt;
  [[bz_eFlagResetEvent]]&lt;br /&gt;
  [[bz_eFlagTransferredEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eGameStartEvent]]&lt;br /&gt;
  [[bz_eGameStartEvent|bz_eGameEndEvent]]&lt;br /&gt;
  [[bz_eGetAutoTeamEvent]]&lt;br /&gt;
  [[bz_eGetPlayerInfoEvent]]&lt;br /&gt;
  [[bz_eGetPlayerSpawnPosEvent]]&lt;br /&gt;
  [[bz_eGetWorldEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eHostBanModifyEvent]]&lt;br /&gt;
  [[bz_eHostBanNotifyEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eIdBanEvent]]&lt;br /&gt;
  [[bz_eIdleNewNonPlayerConnection]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eKickEvent]]&lt;br /&gt;
  [[bz_eKillEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eListServerUpdateEvent]]&lt;br /&gt;
  [[bz_eLogingEvent]]&lt;br /&gt;
  [[bz_eLuaDataEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eMessageFilteredEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eNetDataReceveEvent]]&lt;br /&gt;
  [[bz_eNetDataSendEvent]]&lt;br /&gt;
  [[bz_eNewNonPlayerConnection]]&lt;br /&gt;
  [[bz_eNewRabbitEvent]]&lt;br /&gt;
  [[bz_eNullEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_ePlayerAuthEvent]]&lt;br /&gt;
  [[bz_ePlayerCollision]]&lt;br /&gt;
  [[bz_ePlayerCustomDataChanged]]&lt;br /&gt;
  [[bz_ePlayerDieEvent]]&lt;br /&gt;
  [[bz_ePlayerJoinEvent]]&lt;br /&gt;
  [[bz_ePlayerPartEvent]]&lt;br /&gt;
  [[bz_ePlayerPauseRequestEvent]]&lt;br /&gt;
  [[bz_ePlayerPausedEvent]]&lt;br /&gt;
  [[bz_ePlayerSentCustomData]]&lt;br /&gt;
  [[bz_ePlayerSpawnEvent]]&lt;br /&gt;
  [[bz_ePlayerTeamChangeEvent]]&lt;br /&gt;
  [[bz_ePlayerUpdateDoneEvent]]&lt;br /&gt;
  [[bz_ePlayerUpdateEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eRawChatMessageEvent]]&lt;br /&gt;
  [[bz_eReloadEvent]]&lt;br /&gt;
  [[bz_eReportFiledEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eServerMsgEvent]]&lt;br /&gt;
  [[bz_eShotEndedEvent]]&lt;br /&gt;
  [[bz_eShotExpiredEvent]]&lt;br /&gt;
  [[bz_eShotFiredEvent]]&lt;br /&gt;
  [[bz_eShotRicochetEvent]]&lt;br /&gt;
  [[bz_eShotStoppedEvent]]&lt;br /&gt;
  [[bz_eShotTeleportEvent]]&lt;br /&gt;
  [[bz_eSlashCommandEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eTeleportEvent]]&lt;br /&gt;
  [[bz_eTickEvent]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eUnknownSlashCommand]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eWorldFinalized]]&lt;br /&gt;
&lt;br /&gt;
  [[bz_eZoneEntryEvent]]&lt;br /&gt;
  [[bz_eZoneExitEvent]]&lt;br /&gt;
&lt;br /&gt;
There exists one additional event in the &#039;bz_eEventType&#039; enumeration in &#039;bzfsAPI.h&#039;, &#039;&#039;bz_eLastEvent&#039;&#039;. This event is simply used by BZFS to assist in the counting of the total number of events, it will never be called and can not be installed.&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_Events]]&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Events_(API)&amp;diff=7200</id>
		<title>Events (API)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Events_(API)&amp;diff=7200"/>
		<updated>2010-09-25T18:04:43Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: Alphabetically Sorted (yay)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
==Overview==&lt;br /&gt;
API events are callbacks that a [[Plug-ins|plug-in]] can install into [[BZFS]] to be called in response to specific actions or state changes in the server side game world. Events are the primary method of communication from BZFS to installed plug-ins. Specific events exist for nearly all logical actions that can happen during a game of BZFlag.&lt;br /&gt;
&lt;br /&gt;
==Installation and Removal==&lt;br /&gt;
The callbacks for events are typically installed during the [[bz_Load]] entry point in a plug-in, so they can be active when a plug-in is first loaded.&lt;br /&gt;
&lt;br /&gt;
The plug-in must call the function;&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_registerEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
The plug-in registers and event callback derived from [[bz_EventHandler]] for each specific event types it wishes to monitor.&lt;br /&gt;
&lt;br /&gt;
When a plug-in no longer needs to monitor an event, or when it is unloaded in the [[bz_Unload]] entry point, the plug-in must remove the installed callback by calling the function;&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_removeEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
==Event Handler==&lt;br /&gt;
The plug-in must define a class that is derived from [[bz_EventHandler]] and pass a pointer to an object of that class when ever it registers an event callback.&lt;br /&gt;
&lt;br /&gt;
When ever a specific event is triggered, BZFS will call the &#039;process&#039; method of the installed callback class.&lt;br /&gt;
&lt;br /&gt;
   virtual void process ( bz_EventData *eventData ) = 0;&lt;br /&gt;
&lt;br /&gt;
==Event Data==&lt;br /&gt;
With each call to the &#039;process&#039; method of the installed event handler, BZFS will pass the plug-in a pointer to a class that contains all the data provided by the event. Each event derives a specific data class from [[bz_EventData]] that contains the specific member variables that contain the data. The base class [[bz_EventData]] contains the data member;&lt;br /&gt;
   bz_eEventType	eventType;&lt;br /&gt;
This data member allows a plug-in to identify the specific event and cast the &#039;bz_EventData&#039; pointer to the appropriate specific data class. This is usefull for plug-ins that use the same &#039;bz_EventHandler&#039; to process more then one specific message.&lt;br /&gt;
&lt;br /&gt;
Please see the descriptions of each specific event for information and descriptions of the data classes for each event. Some specific events allow plug-ins to change the values of data members in the data class and will use the modified values instead.&lt;br /&gt;
&lt;br /&gt;
Plug-ins should never delete or free the memory for a data class. BZFS will manage all pointers passed to plug-ins.&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
The following list contains all the event types currently supported by BZFS version 2.99&lt;br /&gt;
&lt;br /&gt;
[[bz_eAllowAutoPilotChangeEvent]]&lt;br /&gt;
[[bz_eAllowCTFCaptureEvent]]&lt;br /&gt;
[[bz_eAllowFlagGrabEvent]]&lt;br /&gt;
[[bz_eAllowKillCommandEvent]]&lt;br /&gt;
[[bz_eAllowPlayer]]&lt;br /&gt;
[[bz_eAllowSpawn]]&lt;br /&gt;
[[bz_eAnointRabbitEvent]]&lt;br /&gt;
[[bz_eAutoPilotChangeEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eBZDBChange]]&lt;br /&gt;
[[bz_eBanEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eCaptureEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eFilteredChatMessageEvent]]&lt;br /&gt;
[[bz_eFlagDroppedEvent]]&lt;br /&gt;
[[bz_eFlagGrabbedEvent]]&lt;br /&gt;
[[bz_eFlagResetEvent]]&lt;br /&gt;
[[bz_eFlagTransferredEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eGameStartEvent]]&lt;br /&gt;
[[bz_eGameStartEvent|bz_eGameEndEvent]]&lt;br /&gt;
[[bz_eGetAutoTeamEvent]]&lt;br /&gt;
[[bz_eGetPlayerInfoEvent]]&lt;br /&gt;
[[bz_eGetPlayerSpawnPosEvent]]&lt;br /&gt;
[[bz_eGetWorldEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eHostBanModifyEvent]]&lt;br /&gt;
[[bz_eHostBanNotifyEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eIdBanEvent]]&lt;br /&gt;
[[bz_eIdleNewNonPlayerConnection]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eKickEvent]]&lt;br /&gt;
[[bz_eKillEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eListServerUpdateEvent]]&lt;br /&gt;
[[bz_eLogingEvent]]&lt;br /&gt;
[[bz_eLuaDataEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eMessageFilteredEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eNetDataReceveEvent]]&lt;br /&gt;
[[bz_eNetDataSendEvent]]&lt;br /&gt;
[[bz_eNewNonPlayerConnection]]&lt;br /&gt;
[[bz_eNewRabbitEvent]]&lt;br /&gt;
[[bz_eNullEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_ePlayerAuthEvent]]&lt;br /&gt;
[[bz_ePlayerCollision]]&lt;br /&gt;
[[bz_ePlayerCustomDataChanged]]&lt;br /&gt;
[[bz_ePlayerDieEvent]]&lt;br /&gt;
[[bz_ePlayerJoinEvent]]&lt;br /&gt;
[[bz_ePlayerPartEvent]]&lt;br /&gt;
[[bz_ePlayerPauseRequestEvent]]&lt;br /&gt;
[[bz_ePlayerPausedEvent]]&lt;br /&gt;
[[bz_ePlayerSentCustomData]]&lt;br /&gt;
[[bz_ePlayerSpawnEvent]]&lt;br /&gt;
[[bz_ePlayerTeamChangeEvent]]&lt;br /&gt;
[[bz_ePlayerUpdateDoneEvent]]&lt;br /&gt;
[[bz_ePlayerUpdateEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eRawChatMessageEvent]]&lt;br /&gt;
[[bz_eReloadEvent]]&lt;br /&gt;
[[bz_eReportFiledEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eServerMsgEvent]]&lt;br /&gt;
[[bz_eShotEndedEvent]]&lt;br /&gt;
[[bz_eShotExpiredEvent]]&lt;br /&gt;
[[bz_eShotFiredEvent]]&lt;br /&gt;
[[bz_eShotRicochetEvent]]&lt;br /&gt;
[[bz_eShotStoppedEvent]]&lt;br /&gt;
[[bz_eShotTeleportEvent]]&lt;br /&gt;
[[bz_eSlashCommandEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eTeleportEvent]]&lt;br /&gt;
[[bz_eTickEvent]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eUnknownSlashCommand]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eWorldFinalized]]&lt;br /&gt;
&lt;br /&gt;
[[bz_eZoneEntryEvent]]&lt;br /&gt;
[[bz_eZoneExitEvent]]&lt;br /&gt;
&lt;br /&gt;
There exists one additional event in the &#039;bz_eEventType&#039; enumeration in &#039;bzfsAPI.h&#039;, &#039;&#039;bz_eLastEvent&#039;&#039;. This event is simply used by BZFS to assist in the counting of the total number of events, it will never be called and can not be installed.&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_Events]]&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eZoneExitEvent&amp;diff=7199</id>
		<title>Bz eZoneExitEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eZoneExitEvent&amp;diff=7199"/>
		<updated>2010-09-25T17:56:15Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: Shouldn&amp;#039;t be a stub. What more is there to say?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eZoneExitEvent&#039;&#039;&#039; is an API event that is called each time a player leaves a [[zone]] on a [[BZW]] map. The event is unused and has no data.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Administrator&amp;diff=7198</id>
		<title>Administrator</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Administrator&amp;diff=7198"/>
		<updated>2010-09-25T17:54:25Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: Expanded Article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[administrator]] is usually an owner of the server, or are trusted friends of the owner who enforce server rules to make the most of the game. They are there to protect the good players, and get rid of rule breakers, depending on the server rules.&lt;br /&gt;
&lt;br /&gt;
An [[administrator]] can also mean an adminsistrator on the [http://my.bzflag.org/bb/ forums]. Along with server admins, there are also forum admins which moderate the forums. Most of them are also project admins for the project on sourceforge.net.&lt;br /&gt;
&lt;br /&gt;
The [[administrator]] may be able to start/shutdown the server and edit the many options of it, depending on their [[Server Permissions|permissions]]. &lt;br /&gt;
&lt;br /&gt;
==Display==&lt;br /&gt;
On the [[scoreboard]], most admins have an &#039;&#039;&#039;@&#039;&#039;&#039; sign next to their name. There is a way, through permissions, for an admin to appear as only a regular registered user with a &#039;&#039;&#039;+&#039;&#039;&#039; and these are called &#039;&#039;Hidden Admins&#039;&#039;.&lt;br /&gt;
For a person to become a &#039;&#039;Hidden Admin&#039;&#039; they must have the &amp;quot;hideAdmin&amp;quot; permission. This can be assigned by the owner in the server&#039;s group file. Note that for a person to have an &amp;quot;@&amp;quot; they must have either shortBan or Ban permissions, otherwise they will not have an &amp;quot;@&amp;quot; sign.&lt;br /&gt;
&lt;br /&gt;
There is also a plugin called [[ShowAdmin]] that allows server owners to show a player as an admin even if they don&#039;t have shortBan or Ban.&lt;br /&gt;
&lt;br /&gt;
==Permissions==&lt;br /&gt;
Administrators can run many [[Slash Commands | commands]] on the server depending on the [[Server Permissions|permissions]] given to them by the server owner, they may include the following:&lt;br /&gt;
*/kick&lt;br /&gt;
*/ban&lt;br /&gt;
*/banlist&lt;br /&gt;
*/mute&lt;br /&gt;
*/say&lt;br /&gt;
*/set&lt;br /&gt;
*/flag (reset,give/take)&lt;br /&gt;
*The list continues... more in [[Slash Commands]]&lt;br /&gt;
&lt;br /&gt;
Terms have appeared for administrators with various permissions.  In general, ones with only a few permissions are called &amp;quot;cop&amp;quot;.  People referred to as cops often don&#039;t have permissions such as ban or flagMaster.  Administrators with the hideAdmin permission are often referred as &amp;quot;hidden admin&amp;quot; or &amp;quot;hidden cop&amp;quot;.  Administrators with more permissions than cops and hidden admins are normally called simply &amp;quot;admin&amp;quot;.  Sometimes, a server owner will reserve certain permissions for himself only, such as shutdownServer, to protect his server from disappearing off the list server.&lt;br /&gt;
&lt;br /&gt;
Other time server owners will also setup a /password via the -passwd option. This allows them, at any time, to gain full access to the server. If they forget their bzbb password or are using a different account, this can come in handy.&lt;br /&gt;
&lt;br /&gt;
==Becoming an Admin==&lt;br /&gt;
Perhaps the number one rule of becoming a server admin is to &#039;&#039;&#039;never ask to become one&#039;&#039;&#039;. Most owners frown upon this and will not consider you for future promotions. You do not need to bring anything to their attention, if they need an admin, they will ask someone if they would like to become one.&lt;br /&gt;
&lt;br /&gt;
One way to increase your chances of becoming an admin is to register on the [http://my.bzflag.org/bb/ forums] and participate in the community. Post responses to people&#039;s questions. Help out with what you&#039;re capable of doing. Getting involved and being noticed as a helpful and good addition to the community is a good way to increase your chances of becoming  an admin.&lt;br /&gt;
&lt;br /&gt;
Trust is also an important value to have in an admin. If you are not trustworthy, then being a server admin probably isn&#039;t for you. Server owners usually only let trusted people become server admins. If you do something behind the server owner&#039;s back or are always trying to get promoted, chances are you will be removed or possibly even banned.&lt;br /&gt;
&lt;br /&gt;
==Being a Good Admin==&lt;br /&gt;
A good admin exhibits several traits. A good admin enforces and follows the rules set by the server owner, and does not interfere with honest game play. They also are always vigilant for [[Known Cheats|cheaters]]. The admin supports the server and promotes good and courteous gameplay. When you find a disruptive player, don&#039;t kick or ban right away. If they are using abusive language, then mute them, don&#039;t kick them. If they log out, and then back in to avoid the mute, then kick them. Be sure to only kick, mute, or ban someone if they are breaking the specific server rules.&lt;br /&gt;
&lt;br /&gt;
Being a good admin also means participating in the community! If you have worked hard and participated in the community and are admin on a few servers, don&#039;t stop there. Keep participating and help others when you can. Always having a positive attitude can make the difference.&lt;br /&gt;
&lt;br /&gt;
==Things to Remember==&lt;br /&gt;
&#039;&#039;&#039;One bad decision can stay with you forever.&#039;&#039;&#039; Most server owners keep logs of their servers. If they see you repeatedly goofing off, making rash decisions, or supporting rule-breaking behavior, you may be removed as an admin. Make sure that you always do what you think is right. If you&#039;re not quite sure, ask the owner.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The magic order: warn, kick, short ban, long ban.&#039;&#039;&#039; This always comes in handy is usually the way to handle misbehavior. Don&#039;t ban them right away if they do something wrong unless it was meaningful and completely rash. Usually giving them a warning will resolve some issues. However, if they continue to misbehave, kick them and let them know it was their final warning. If they continue to do wrong, ban them for a short period of time. If you see them again at a different time performing the same bad behavior, re-do the ban with a longer ban length. If a user is using bad language, mute them and give them a warning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use common sense.&#039;&#039;&#039; Whenever making tough decisions, do what you think is right and go with your gut. If you perform without thinking, you may be making a mistake. If you have to think over banning a person, it may not be the right thing to do. All questions should be directed to the server owner, however, if there is another admin on they may be able to help out.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eWorldFinalized&amp;diff=7196</id>
		<title>Bz eWorldFinalized</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eWorldFinalized&amp;diff=7196"/>
		<updated>2010-09-25T02:58:12Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eWorldFinalized&#039;&#039;&#039; is an API event that is called when the world is done loading.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
bz_eWorldFinalized is only a notification.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Events_(API)&amp;diff=7195</id>
		<title>Events (API)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Events_(API)&amp;diff=7195"/>
		<updated>2010-09-25T01:58:41Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: Added more events that were missing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
==Overview==&lt;br /&gt;
API events are callbacks that a [[Plug-ins|plug-in]] can install into [[BZFS]] to be called in response to specific actions or state changes in the server side game world. Events are the primary method of communication from BZFS to installed plug-ins. Specific events exist for nearly all logical actions that can happen during a game of BZFlag.&lt;br /&gt;
&lt;br /&gt;
==Installation and Removal==&lt;br /&gt;
The callbacks for events are typically installed during the [[bz_Load]] entry point in a plug-in, so they can be active when a plug-in is first loaded.&lt;br /&gt;
&lt;br /&gt;
The plug-in must call the function;&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_registerEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
The plug-in registers and event callback derived from [[bz_EventHandler]] for each specific event types it wishes to monitor.&lt;br /&gt;
&lt;br /&gt;
When a plug-in no longer needs to monitor an event, or when it is unloaded in the [[bz_Unload]] entry point, the plug-in must remove the installed callback by calling the function;&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_removeEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
==Event Handler==&lt;br /&gt;
The plug-in must define a class that is derived from [[bz_EventHandler]] and pass a pointer to an object of that class when ever it registers an event callback.&lt;br /&gt;
&lt;br /&gt;
When ever a specific event is triggered, BZFS will call the &#039;process&#039; method of the installed callback class.&lt;br /&gt;
&lt;br /&gt;
   virtual void process ( bz_EventData *eventData ) = 0;&lt;br /&gt;
&lt;br /&gt;
==Event Data==&lt;br /&gt;
With each call to the &#039;process&#039; method of the installed event handler, BZFS will pass the plug-in a pointer to a class that contains all the data provided by the event. Each event derives a specific data class from [[bz_EventData]] that contains the specific member variables that contain the data. The base class [[bz_EventData]] contains the data member;&lt;br /&gt;
   bz_eEventType	eventType;&lt;br /&gt;
This data member allows a plug-in to identify the specific event and cast the &#039;bz_EventData&#039; pointer to the appropriate specific data class. This is usefull for plug-ins that use the same &#039;bz_EventHandler&#039; to process more then one specific message.&lt;br /&gt;
&lt;br /&gt;
Please see the descriptions of each specific event for information and descriptions of the data classes for each event. Some specific events allow plug-ins to change the values of data members in the data class and will use the modified values instead.&lt;br /&gt;
&lt;br /&gt;
Plug-ins should never delete or free the memory for a data class. BZFS will manage all pointers passed to plug-ins.&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
The following list contains all the event types currently supported by BZFS version 2.99&lt;br /&gt;
&lt;br /&gt;
  [[bz_eNullEvent]]&lt;br /&gt;
  [[bz_eCaptureEvent]]&lt;br /&gt;
  [[bz_ePlayerDieEvent]]&lt;br /&gt;
  [[bz_ePlayerSpawnEvent]]&lt;br /&gt;
  [[bz_eZoneEntryEvent]]&lt;br /&gt;
  [[bz_eZoneExitEvent]]&lt;br /&gt;
  [[bz_ePlayerJoinEvent]]&lt;br /&gt;
  [[bz_ePlayerPartEvent]]&lt;br /&gt;
  [[bz_eRawChatMessageEvent]]&lt;br /&gt;
  [[bz_eFilteredChatMessageEvent]]&lt;br /&gt;
  [[bz_eUnknownSlashCommand]]&lt;br /&gt;
  [[bz_eGetPlayerSpawnPosEvent]]&lt;br /&gt;
  [[bz_eGetAutoTeamEvent]]&lt;br /&gt;
  [[bz_eAllowPlayer]]&lt;br /&gt;
  [[bz_eTickEvent]]&lt;br /&gt;
  [[bz_eGetWorldEvent]]&lt;br /&gt;
  [[bz_eGetPlayerInfoEvent]]&lt;br /&gt;
  [[bz_eAllowSpawn]]&lt;br /&gt;
  [[bz_eListServerUpdateEvent]]&lt;br /&gt;
  [[bz_eBanEvent]]&lt;br /&gt;
  [[bz_eHostBanNotifyEvent]]&lt;br /&gt;
  [[bz_eHostBanModifyEvent]]&lt;br /&gt;
  [[bz_eIdBanEvent]]&lt;br /&gt;
  [[bz_eKickEvent]]&lt;br /&gt;
  [[bz_eKillEvent]]&lt;br /&gt;
  [[bz_ePlayerPausedEvent]]&lt;br /&gt;
  [[bz_eMessageFilteredEvent]]&lt;br /&gt;
  [[bz_eGameStartEvent]]&lt;br /&gt;
  [[bz_eGameStartEvent|bz_eGameEndEvent]]&lt;br /&gt;
  [[bz_eSlashCommandEvent]]&lt;br /&gt;
  [[bz_ePlayerAuthEvent]]&lt;br /&gt;
  [[bz_eServerMsgEvent]]&lt;br /&gt;
  [[bz_eShotFiredEvent]]&lt;br /&gt;
  [[bz_eAnointRabbitEvent]]&lt;br /&gt;
  [[bz_eNewRabbitEvent]]&lt;br /&gt;
  [[bz_eReloadEvent]]&lt;br /&gt;
  [[bz_ePlayerUpdateEvent]]&lt;br /&gt;
  [[bz_eNetDataSendEvent]]&lt;br /&gt;
  [[bz_eNetDataReceveEvent]]&lt;br /&gt;
  [[bz_eLogingEvent]]&lt;br /&gt;
  [[bz_eFlagTransferredEvent]]&lt;br /&gt;
  [[bz_eFlagGrabbedEvent]]&lt;br /&gt;
  [[bz_eFlagDroppedEvent]]&lt;br /&gt;
  [[bz_eShotEndedEvent]]&lt;br /&gt;
  [[bz_eNewNonPlayerConnection]]&lt;br /&gt;
  [[bz_eIdleNewNonPlayerConnection]]&lt;br /&gt;
  [[bz_ePlayerCollision]]&lt;br /&gt;
  [[bz_eFlagResetEvent]]&lt;br /&gt;
  [[bz_eWorldFinalized]]&lt;br /&gt;
  [[bz_eAllowCTFCaptureEvent]]&lt;br /&gt;
  [[bz_eAllowFlagGrabEvent]]&lt;br /&gt;
  [[bz_eAllowKillCommandEvent]]&lt;br /&gt;
  [[bz_eReportFiledEvent]]&lt;br /&gt;
  [[bz_eTeleportEvent]]&lt;br /&gt;
  [[bz_ePlayerPauseRequestEvent]]&lt;br /&gt;
  [[bz_ePlayerUpdateDoneEvent]]&lt;br /&gt;
  [[bz_eShotExpiredEvent]]&lt;br /&gt;
  [[bz_eShotStoppedEvent]]&lt;br /&gt;
  [[bz_eShotRicochetEvent]]&lt;br /&gt;
  [[bz_eShotTeleportEvent]]&lt;br /&gt;
  [[bz_ePlayerSentCustomData]]&lt;br /&gt;
  [[bz_ePlayerCustomDataChanged]]&lt;br /&gt;
  [[bz_eBZDBChange]]&lt;br /&gt;
  [[bz_eLuaDataEvent]]&lt;br /&gt;
  [[bz_eAutoPilotChangeEvent]]&lt;br /&gt;
  [[bz_eAllowAutoPilotChangeEvent]]&lt;br /&gt;
  [[bz_ePlayerTeamChangeEvent]]&lt;br /&gt;
&lt;br /&gt;
There exists one additional event in the &#039;bz_eEventType&#039; enumeration in &#039;bzfsAPI.h&#039;, &#039;&#039;bz_eLastEvent&#039;&#039;. This event is simply used by BZFS to assist in the counting of the total number of events, it will never be called and can not be installed.&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_Events]]&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Events_(API)&amp;diff=7194</id>
		<title>Events (API)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Events_(API)&amp;diff=7194"/>
		<updated>2010-09-25T01:52:37Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: Remove extra spacing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
==Overview==&lt;br /&gt;
API events are callbacks that a [[Plug-ins|plug-in]] can install into [[BZFS]] to be called in response to specific actions or state changes in the server side game world. Events are the primary method of communication from BZFS to installed plug-ins. Specific events exist for nearly all logical actions that can happen during a game of BZFlag.&lt;br /&gt;
&lt;br /&gt;
==Installation and Removal==&lt;br /&gt;
The callbacks for events are typically installed during the [[bz_Load]] entry point in a plug-in, so they can be active when a plug-in is first loaded.&lt;br /&gt;
&lt;br /&gt;
The plug-in must call the function;&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_registerEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
The plug-in registers and event callback derived from [[bz_EventHandler]] for each specific event types it wishes to monitor.&lt;br /&gt;
&lt;br /&gt;
When a plug-in no longer needs to monitor an event, or when it is unloaded in the [[bz_Unload]] entry point, the plug-in must remove the installed callback by calling the function;&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_removeEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
==Event Handler==&lt;br /&gt;
The plug-in must define a class that is derived from [[bz_EventHandler]] and pass a pointer to an object of that class when ever it registers an event callback.&lt;br /&gt;
&lt;br /&gt;
When ever a specific event is triggered, BZFS will call the &#039;process&#039; method of the installed callback class.&lt;br /&gt;
&lt;br /&gt;
   virtual void process ( bz_EventData *eventData ) = 0;&lt;br /&gt;
&lt;br /&gt;
==Event Data==&lt;br /&gt;
With each call to the &#039;process&#039; method of the installed event handler, BZFS will pass the plug-in a pointer to a class that contains all the data provided by the event. Each event derives a specific data class from [[bz_EventData]] that contains the specific member variables that contain the data. The base class [[bz_EventData]] contains the data member;&lt;br /&gt;
   bz_eEventType	eventType;&lt;br /&gt;
This data member allows a plug-in to identify the specific event and cast the &#039;bz_EventData&#039; pointer to the appropriate specific data class. This is usefull for plug-ins that use the same &#039;bz_EventHandler&#039; to process more then one specific message.&lt;br /&gt;
&lt;br /&gt;
Please see the descriptions of each specific event for information and descriptions of the data classes for each event. Some specific events allow plug-ins to change the values of data members in the data class and will use the modified values instead.&lt;br /&gt;
&lt;br /&gt;
Plug-ins should never delete or free the memory for a data class. BZFS will manage all pointers passed to plug-ins.&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
The following list contains all the event types currently supported by BZFS version 2.99&lt;br /&gt;
&lt;br /&gt;
  [[bz_eNullEvent]]&lt;br /&gt;
  [[bz_eCaptureEvent]]&lt;br /&gt;
  [[bz_ePlayerDieEvent]]&lt;br /&gt;
  [[bz_ePlayerSpawnEvent]]&lt;br /&gt;
  [[bz_eZoneEntryEvent]]&lt;br /&gt;
  [[bz_eZoneExitEvent]]&lt;br /&gt;
  [[bz_ePlayerJoinEvent]]&lt;br /&gt;
  [[bz_ePlayerPartEvent]]&lt;br /&gt;
  [[bz_eRawChatMessageEvent]]&lt;br /&gt;
  [[bz_eFilteredChatMessageEvent]]&lt;br /&gt;
  [[bz_eUnknownSlashCommand]]&lt;br /&gt;
  [[bz_eGetPlayerSpawnPosEvent]]&lt;br /&gt;
  [[bz_eGetAutoTeamEvent]]&lt;br /&gt;
  [[bz_eAllowPlayer]]&lt;br /&gt;
  [[bz_eTickEvent]]&lt;br /&gt;
  [[bz_eGetWorldEvent]]&lt;br /&gt;
  [[bz_eGetPlayerInfoEvent]]&lt;br /&gt;
  [[bz_eAllowSpawn]]&lt;br /&gt;
  [[bz_eListServerUpdateEvent]]&lt;br /&gt;
  [[bz_eBanEvent]]&lt;br /&gt;
  [[bz_eHostBanNotifyEvent]]&lt;br /&gt;
  [[bz_eHostBanModifyEvent]]&lt;br /&gt;
  [[bz_eIdBanEvent]]&lt;br /&gt;
  [[bz_eKickEvent]]&lt;br /&gt;
  [[bz_eKillEvent]]&lt;br /&gt;
  [[bz_ePlayerPausedEvent]]&lt;br /&gt;
  [[bz_eMessageFilteredEvent]]&lt;br /&gt;
  [[bz_eGameStartEvent]]&lt;br /&gt;
  [[bz_eGameStartEvent|bz_eGameEndEvent]]&lt;br /&gt;
  [[bz_eSlashCommandEvent]]&lt;br /&gt;
  [[bz_ePlayerAuthEvent]]&lt;br /&gt;
  [[bz_eServerMsgEvent]]&lt;br /&gt;
  [[bz_eShotFiredEvent]]&lt;br /&gt;
  [[bz_eAnointRabbitEvent]]&lt;br /&gt;
  [[bz_eNewRabbitEvent]]&lt;br /&gt;
  [[bz_eReloadEvent]]&lt;br /&gt;
  [[bz_ePlayerUpdateEvent]]&lt;br /&gt;
  [[bz_eNetDataSendEvent]]&lt;br /&gt;
  [[bz_eNetDataReceveEvent]]&lt;br /&gt;
  [[bz_eLogingEvent]]&lt;br /&gt;
  [[bz_eFlagTransferredEvent]]&lt;br /&gt;
  [[bz_eFlagGrabbedEvent]]&lt;br /&gt;
  [[bz_eFlagDroppedEvent]]&lt;br /&gt;
  [[bz_eShotEndedEvent]]&lt;br /&gt;
  [[bz_eNewNonPlayerConnection]]&lt;br /&gt;
  [[bz_eIdleNewNonPlayerConnection]]&lt;br /&gt;
  [[bz_ePlayerCollision]]&lt;br /&gt;
  [[bz_eFlagResetEvent]]&lt;br /&gt;
  [[bz_eWorldFinalized]]&lt;br /&gt;
  [[bz_eAllowCTFCaptureEvent]]&lt;br /&gt;
  [[bz_eAllowFlagGrabEvent]]&lt;br /&gt;
  [[bz_eAllowKillCommandEvent]]&lt;br /&gt;
  [[bz_eReportFiledEvent]]&lt;br /&gt;
  [[bz_eTeleportEvent]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There exists one additional event in the &#039;bz_eEventType&#039; enumeration in &#039;bzfsAPI.h&#039;, &#039;&#039;bz_eLastEvent&#039;&#039;. This event is simply used by BZFS to assist in the counting of the total number of events, it will never be called and can not be installed.&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_Events]]&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Events_(API)&amp;diff=7193</id>
		<title>Events (API)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Events_(API)&amp;diff=7193"/>
		<updated>2010-09-25T01:52:08Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: All articles for all API events have been completed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
API events are callbacks that a [[Plug-ins|plug-in]] can install into [[BZFS]] to be called in response to specific actions or state changes in the server side game world. Events are the primary method of communication from BZFS to installed plug-ins. Specific events exist for nearly all logical actions that can happen during a game of BZFlag.&lt;br /&gt;
&lt;br /&gt;
==Installation and Removal==&lt;br /&gt;
The callbacks for events are typically installed during the [[bz_Load]] entry point in a plug-in, so they can be active when a plug-in is first loaded.&lt;br /&gt;
&lt;br /&gt;
The plug-in must call the function;&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_registerEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
The plug-in registers and event callback derived from [[bz_EventHandler]] for each specific event types it wishes to monitor.&lt;br /&gt;
&lt;br /&gt;
When a plug-in no longer needs to monitor an event, or when it is unloaded in the [[bz_Unload]] entry point, the plug-in must remove the installed callback by calling the function;&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_removeEvent]] ( bz_eEventType eventType, [[bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
==Event Handler==&lt;br /&gt;
The plug-in must define a class that is derived from [[bz_EventHandler]] and pass a pointer to an object of that class when ever it registers an event callback.&lt;br /&gt;
&lt;br /&gt;
When ever a specific event is triggered, BZFS will call the &#039;process&#039; method of the installed callback class.&lt;br /&gt;
&lt;br /&gt;
   virtual void process ( bz_EventData *eventData ) = 0;&lt;br /&gt;
&lt;br /&gt;
==Event Data==&lt;br /&gt;
With each call to the &#039;process&#039; method of the installed event handler, BZFS will pass the plug-in a pointer to a class that contains all the data provided by the event. Each event derives a specific data class from [[bz_EventData]] that contains the specific member variables that contain the data. The base class [[bz_EventData]] contains the data member;&lt;br /&gt;
   bz_eEventType	eventType;&lt;br /&gt;
This data member allows a plug-in to identify the specific event and cast the &#039;bz_EventData&#039; pointer to the appropriate specific data class. This is usefull for plug-ins that use the same &#039;bz_EventHandler&#039; to process more then one specific message.&lt;br /&gt;
&lt;br /&gt;
Please see the descriptions of each specific event for information and descriptions of the data classes for each event. Some specific events allow plug-ins to change the values of data members in the data class and will use the modified values instead.&lt;br /&gt;
&lt;br /&gt;
Plug-ins should never delete or free the memory for a data class. BZFS will manage all pointers passed to plug-ins.&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
The following list contains all the event types currently supported by BZFS version 2.99&lt;br /&gt;
&lt;br /&gt;
  [[bz_eNullEvent]]&lt;br /&gt;
  [[bz_eCaptureEvent]]&lt;br /&gt;
  [[bz_ePlayerDieEvent]]&lt;br /&gt;
  [[bz_ePlayerSpawnEvent]]&lt;br /&gt;
  [[bz_eZoneEntryEvent]]&lt;br /&gt;
  [[bz_eZoneExitEvent]]&lt;br /&gt;
  [[bz_ePlayerJoinEvent]]&lt;br /&gt;
  [[bz_ePlayerPartEvent]]&lt;br /&gt;
  [[bz_eRawChatMessageEvent]]&lt;br /&gt;
  [[bz_eFilteredChatMessageEvent]]&lt;br /&gt;
  [[bz_eUnknownSlashCommand]]&lt;br /&gt;
  [[bz_eGetPlayerSpawnPosEvent]]&lt;br /&gt;
  [[bz_eGetAutoTeamEvent]]&lt;br /&gt;
  [[bz_eAllowPlayer]]&lt;br /&gt;
  [[bz_eTickEvent]]&lt;br /&gt;
  [[bz_eGetWorldEvent]]&lt;br /&gt;
  [[bz_eGetPlayerInfoEvent]]&lt;br /&gt;
  [[bz_eAllowSpawn]]&lt;br /&gt;
  [[bz_eListServerUpdateEvent]]&lt;br /&gt;
  [[bz_eBanEvent]]&lt;br /&gt;
  [[bz_eHostBanNotifyEvent]]&lt;br /&gt;
  [[bz_eHostBanModifyEvent]]&lt;br /&gt;
  [[bz_eIdBanEvent]]&lt;br /&gt;
  [[bz_eKickEvent]]&lt;br /&gt;
  [[bz_eKillEvent]]&lt;br /&gt;
  [[bz_ePlayerPausedEvent]]&lt;br /&gt;
  [[bz_eMessageFilteredEvent]]&lt;br /&gt;
  [[bz_eGameStartEvent]]&lt;br /&gt;
  [[bz_eGameStartEvent|bz_eGameEndEvent]]&lt;br /&gt;
  [[bz_eSlashCommandEvent]]&lt;br /&gt;
  [[bz_ePlayerAuthEvent]]&lt;br /&gt;
  [[bz_eServerMsgEvent]]&lt;br /&gt;
  [[bz_eShotFiredEvent]]&lt;br /&gt;
  [[bz_eAnointRabbitEvent]]&lt;br /&gt;
  [[bz_eNewRabbitEvent]]&lt;br /&gt;
  [[bz_eReloadEvent]]&lt;br /&gt;
  [[bz_ePlayerUpdateEvent]]&lt;br /&gt;
  [[bz_eNetDataSendEvent]]&lt;br /&gt;
  [[bz_eNetDataReceveEvent]]&lt;br /&gt;
  [[bz_eLogingEvent]]&lt;br /&gt;
  [[bz_eFlagTransferredEvent]]&lt;br /&gt;
  [[bz_eFlagGrabbedEvent]]&lt;br /&gt;
  [[bz_eFlagDroppedEvent]]&lt;br /&gt;
  [[bz_eShotEndedEvent]]&lt;br /&gt;
  [[bz_eNewNonPlayerConnection]]&lt;br /&gt;
  [[bz_eIdleNewNonPlayerConnection]]&lt;br /&gt;
  [[bz_ePlayerCollision]]&lt;br /&gt;
  [[bz_eFlagResetEvent]]&lt;br /&gt;
  [[bz_eWorldFinalized]]&lt;br /&gt;
  [[bz_eAllowCTFCaptureEvent]]&lt;br /&gt;
  [[bz_eAllowFlagGrabEvent]]&lt;br /&gt;
  [[bz_eAllowKillCommandEvent]]&lt;br /&gt;
  [[bz_eReportFiledEvent]]&lt;br /&gt;
  [[bz_eTeleportEvent]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There exists one additional event in the &#039;bz_eEventType&#039; enumeration in &#039;bzfsAPI.h&#039;, &#039;&#039;bz_eLastEvent&#039;&#039;. This event is simply used by BZFS to assist in the counting of the total number of events, it will never be called and can not be installed.&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_Events]]&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eAllowKillCommandEvent&amp;diff=7192</id>
		<title>Bz eAllowKillCommandEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eAllowKillCommandEvent&amp;diff=7192"/>
		<updated>2010-09-25T01:51:31Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* bz_eAllowKillCommandEvent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eAllowKillCommandEvent&#039;&#039;&#039; is an API event that is called each the /kill command is executed.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eAllowKillCommandEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_eAllowKillCommandEvent_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eAllowKillCommandEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerKilling&lt;br /&gt;
  |int&lt;br /&gt;
  |The ID of the player who is issuing the /kill command&lt;br /&gt;
  |-&lt;br /&gt;
  |playerToKill&lt;br /&gt;
  |int&lt;br /&gt;
  |The ID of the player that will be killed&lt;br /&gt;
  |-&lt;br /&gt;
  |allow&lt;br /&gt;
  |bool&lt;br /&gt;
  |Whether or not to allow the /kill&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eAllowFlagGrab&amp;diff=7191</id>
		<title>Bz eAllowFlagGrab</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eAllowFlagGrab&amp;diff=7191"/>
		<updated>2010-09-25T01:49:24Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* bz_eAllowFlagGrabEvent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eAllowFlagGrabEvent&#039;&#039;&#039; is an API event that is called each time a player is about to grab a flag.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eAllowFlagGrabEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_eAllowFlagGrabEvent_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eAllowFlagGrabEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |The ID of the player who is grabbing the flag&lt;br /&gt;
  |-&lt;br /&gt;
  |pos&lt;br /&gt;
  |float[3]&lt;br /&gt;
  |The position of the player about to grab the flag&lt;br /&gt;
  |-&lt;br /&gt;
  |flagID&lt;br /&gt;
  |int&lt;br /&gt;
  |The ID of the flag that is going to be grabbed&lt;br /&gt;
  |-&lt;br /&gt;
  |flagType&lt;br /&gt;
  |const char*&lt;br /&gt;
  |The type of the flag about to be grabbed&lt;br /&gt;
  |-&lt;br /&gt;
  |allow&lt;br /&gt;
  |bool&lt;br /&gt;
  |Whether or not to allow the flag grab&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eWorldFinalized&amp;diff=7190</id>
		<title>Bz eWorldFinalized</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eWorldFinalized&amp;diff=7190"/>
		<updated>2010-09-25T01:45:34Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eWorldFinalized&#039;&#039;&#039; is an API event that is not implmented, but, it is defined in BZFlag 2.99.x. This page will be updated when progress is made.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eWorldFinalized&amp;diff=7189</id>
		<title>Bz eWorldFinalized</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eWorldFinalized&amp;diff=7189"/>
		<updated>2010-09-25T01:44:53Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* bz_eWorldFinalized */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eWorldFinalized&#039;&#039;&#039; is an API event that is not yet implmented yet but is defined in BZFlag 2.99.x. This page will be updated when progress is made.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_ePlayerCollision&amp;diff=7188</id>
		<title>Bz ePlayerCollision</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_ePlayerCollision&amp;diff=7188"/>
		<updated>2010-09-25T01:40:37Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* bz_ePlayerCollision */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_ePlayerCollision&#039;&#039;&#039; is an API event that is called each time two players collide.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_ePlayerCollision&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_ePlayerCollision_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_ePlayerCollision&lt;br /&gt;
  |-&lt;br /&gt;
  |players&lt;br /&gt;
  |int[2]&lt;br /&gt;
  |The players that have collided&lt;br /&gt;
  |-&lt;br /&gt;
  |pos&lt;br /&gt;
  |float[3]&lt;br /&gt;
  |The position of the collision&lt;br /&gt;
  |-&lt;br /&gt;
  |handled&lt;br /&gt;
  |bool&lt;br /&gt;
  |Whether or not the plug-in has handled the data&lt;br /&gt;
  |}&lt;br /&gt;
==Usage==&lt;br /&gt;
It appears this event is in BZFlag 2.99.x but has not been fully implemented and will probably never return data.&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eIdleNewNonPlayerConnection&amp;diff=7187</id>
		<title>Bz eIdleNewNonPlayerConnection</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eIdleNewNonPlayerConnection&amp;diff=7187"/>
		<updated>2010-09-25T01:36:18Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* bz_eIdleNewNonPlayerConnection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eIdleNewNonPlayerConnection&#039;&#039;&#039; is an API event that is called each time there is an idle connection.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eIdleNewNonPlayerConnection&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_eIdleNewNonPlayerConnection_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eNewNonPlayerConnection&lt;br /&gt;
  |-&lt;br /&gt;
  |connectionID&lt;br /&gt;
  |int&lt;br /&gt;
  |The ID of the connection&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eNewNonPlayerConnection&amp;diff=7186</id>
		<title>Bz eNewNonPlayerConnection</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eNewNonPlayerConnection&amp;diff=7186"/>
		<updated>2010-09-25T01:35:27Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eNewNonPlayerConnection&#039;&#039;&#039; is an API event that is called each time there is a connection to the server not from a player.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eNewNonPlayerConnection&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_eNewNonPlayerConnection_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eNewNonPlayerConnection&lt;br /&gt;
  |-&lt;br /&gt;
  |connectionID&lt;br /&gt;
  |int&lt;br /&gt;
  |The ID of the connection&lt;br /&gt;
  |-&lt;br /&gt;
  |data&lt;br /&gt;
  |void*&lt;br /&gt;
  |The packet data&lt;br /&gt;
  |-&lt;br /&gt;
  |size&lt;br /&gt;
  |unsigned int&lt;br /&gt;
  |The size of the packet&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eNewNonPlayerConnection&amp;diff=7185</id>
		<title>Bz eNewNonPlayerConnection</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eNewNonPlayerConnection&amp;diff=7185"/>
		<updated>2010-09-25T01:32:41Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* bz_eNewNonPlayerConnection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eNewNonPlayerConnection&#039;&#039;&#039; is an API event that is called each time there is a connection to the server not from a player.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eNewNonPlayerConnection&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_eNewNonPlayerConnection&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eNewNonPlayerConnection&lt;br /&gt;
  |-&lt;br /&gt;
  |connectionID&lt;br /&gt;
  |int&lt;br /&gt;
  |The ID of the connection&lt;br /&gt;
  |-&lt;br /&gt;
  |data&lt;br /&gt;
  |void*&lt;br /&gt;
  |The packet data&lt;br /&gt;
  |-&lt;br /&gt;
  |size&lt;br /&gt;
  |unsigned int&lt;br /&gt;
  |The size of the packet&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eReloadEvent&amp;diff=7184</id>
		<title>Bz eReloadEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eReloadEvent&amp;diff=7184"/>
		<updated>2010-09-25T01:29:25Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: New page: {{BZFS_API_Doc}} {{BZFS_API_Events}}  ==Overview== The &amp;#039;&amp;#039;&amp;#039;bz_eReloadEvent&amp;#039;&amp;#039;&amp;#039; is an API event that is called each time a player reloads. ==Data== &amp;#039;&amp;#039;&amp;#039;bz_eReloadEvent&amp;#039;&amp;#039;&amp;#039; returns the &amp;#039;&amp;#039;&amp;#039;bz_eRe...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eReloadEvent&#039;&#039;&#039; is an API event that is called each time a player reloads.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eReloadEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_eReloadEvent_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eReloadEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerID&lt;br /&gt;
  |int&lt;br /&gt;
  |The ID of the player reloading&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eNewRabbitEvent&amp;diff=7183</id>
		<title>Bz eNewRabbitEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eNewRabbitEvent&amp;diff=7183"/>
		<updated>2010-09-25T01:27:11Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* Bz_eNewRabbitEvent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;Bz_eNewRabbitEvent&#039;&#039;&#039; is an API event that is called each time a new rabbit is selected.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;Bz_eNewRabbitEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;Bz_eNewRabbitEvent_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |Bz_eNewRabbitEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |newRabbit&lt;br /&gt;
  |int&lt;br /&gt;
  |The ID of the new rabbit&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eAnointRabbitEvent&amp;diff=7182</id>
		<title>Bz eAnointRabbitEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eAnointRabbitEvent&amp;diff=7182"/>
		<updated>2010-09-25T01:25:59Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* Bz_eAnointRabbitEvent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;Bz_eAnointRabbitEvent&#039;&#039;&#039; is an API event that is called each time a new rabbit is to be selected.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;Bz_eAnointRabbitEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;Bz_eAnointRabbitEvent&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |Bz_eAnointRabbitEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |newRabbit&lt;br /&gt;
  |int&lt;br /&gt;
  |The ID of the new rabbit&lt;br /&gt;
  |-&lt;br /&gt;
  |swap&lt;br /&gt;
  |bool&lt;br /&gt;
  |?&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eAllowCTFCaptureEvent&amp;diff=7181</id>
		<title>Bz eAllowCTFCaptureEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eAllowCTFCaptureEvent&amp;diff=7181"/>
		<updated>2010-09-25T01:18:55Z</updated>

		<summary type="html">&lt;p&gt;Mrapple: /* bz_eAllowCTFCaptureEvent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eAllowCTFCapEvent&#039;&#039;&#039; is an API event that is called each time a flag is about to be captured.&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eAllowCTFCapEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_eAllowCTFCapEvent&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eAllowCTFCapEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |playerCapping&lt;br /&gt;
  |int&lt;br /&gt;
  |The ID of the player making the capture&lt;br /&gt;
  |-&lt;br /&gt;
  |teamCapped&lt;br /&gt;
  |[[bz_eTeamType]]&lt;br /&gt;
  |The team making the capture&lt;br /&gt;
  |-&lt;br /&gt;
  |teamCapping&lt;br /&gt;
  |[[bz_eTeamType]]&lt;br /&gt;
  |The team whose flag is being captured&lt;br /&gt;
  |-&lt;br /&gt;
  |pos&lt;br /&gt;
  |float[3]&lt;br /&gt;
  |The position of the player&lt;br /&gt;
  |-&lt;br /&gt;
  |rot&lt;br /&gt;
  |float&lt;br /&gt;
  |The direction the player is facing&lt;br /&gt;
  |-&lt;br /&gt;
  |allow&lt;br /&gt;
  |bool&lt;br /&gt;
  |Whether or not to allow the capture&lt;br /&gt;
  |-&lt;br /&gt;
  |time&lt;br /&gt;
  |double&lt;br /&gt;
  |The server time at which the event occurred (in seconds).&lt;br /&gt;
  |}&lt;/div&gt;</summary>
		<author><name>Mrapple</name></author>
	</entry>
</feed>