Quake2 Battleground v1.38
-------------------------

See the file battleground.txt for a description of the mod and a complete
command reference, and/or use the "commands" and "acommands" commands on any
server running the mod for online command help.

Quake2 Battleground is currently available for Sparc/Solaris, Intel/Win32,
Intel/Linux, and Alpha/Linux.  Requests for other platforms can be
accomodated only if I am given temporary access to a machine suitable for
building a version for the desired platform.

Please send any comments or bug reports to me at punisher@ogl.org.  For bug 
reports, please send me a detailed description of what you did to uncover the 
bug, so that I can reproduce it and then fix it.

Thanks, and enjoy!

Ernie Pistor
3/26/99

Changes since v1.36
-------------------
 - Eliminated multiple-item spawns on rotating spawn spots
 - Stopped unreasonable flood kicks/silences during a timout or other pause
   (flood protection is still active during a paused game; it now works
   properly and will not be triggered due to normal conversation)
 - Fixed individual-mode ghost codes
 - Fixed "break" command for individual-mode countdowns
 - Fixed occasional "teamless" players after a match has ended.  The problem
   occurred when a player's team had been destroyed before he entered the
   game after a level change under certain circumstances
 - Fixed Linux version to correctly report to the Quake2 Battleground master
 - Fixed blinking "AutoCam" when nobody is in the game and an observer is
   using the autocam
 - Corrected auto-ghost routines to check both name and IP if the player
   didn't supply a code (was previously just checking IP, but there is the
   small possibility that another player on the same ISP has come on from a
   disconnected player's modem IP)
 - Made "pickplayer" (and "team" and "join" with a joincode argument) look
   for a player's ghost and reattach it if possible, to avoid cluttering up
   "stats" with multiple copies of the same player

Changes since v1.35
-------------------
 - Restored original Q2BG-style flood kicks, in addition to id-style flood
   protection.  You have to try real hard to be flood-kicked, anyway
 - Corrected players being kicked for flooding when game resumed after they
   spoke during a pause or timeout
 - Properly added Q2BG-style flood proetection during pauses/timeouts
   (id-style flood protection is disabled during pauses/timeouts)
 - Added "defaultname" and "defaultskin" commands for setting the initial
   names for the 2 teams when maxteams is 2 and the mode is switched to
   "match".  "defaultname 1 red" sets the name of the first team to "red"
   upon a switch to match mode
 - Added "match" and "dm" arguments to "tp", "dm", and "selfdamage" commands
   to allow the setting of default values upon mode switch.  The commands
   function in the same manner as the "tl", "fl", and "dmf" commands
 - Made "selfdamage" command actually work
 - Fixed crash problem with "all" option of "disallow" admin command

Changes since v1.30
-------------------
 - Increased maximum team name length from 9 to 12 characters
 - Added dynamic top-4 ranking to HUD (top 4 teams in match mode, top 4
   players in DM and individual modes)
 - Stopped printing map name to server console multiple times at the end of a
   match
 - Enabled many-team support.  New commands related to this feature are
   "minteams", "maxteams", and "create".  If "maxteams" is 2 (the default),
   then the server will behave as it always has (i.e. 2 pre-created teams),
   otherwise it will allow up to "maxteams" teams to be created in match mode
 - Sort teams in "stats" display
 - Finished ghost removal changes.  The previous fix only took care of the
   case of an admin changing the map, but did not handle voted changes or
   a change to match mode
 - Added ability to report to the Quake2 Battleground master server and thus
   be shown on the list at http://www.ogl.org/battle/servers.html.  By default,
   all Quake2 Battleground servers beyond v1.30 will report to the master.  If
   you do not wish your server's address to appear on the servers page or in
   the GameSpy listing, set the console variable "private" to "1".  This will
   exclude your server from the GameSpy list and replace its address on the
   web page with "<PRIVATE>".  To completely turn off reporting to the master,
   set the variable "nomaster" to "1".  Please use "private 1" rather than
   "nomaster 1" if you wish to run a private server, though, so that an
   accurate server count will be shown on the web page
 - Tweaked the large-match telefrag avoidance code a bit
 - Made GibStats logging print the patch name correctly even if it is turned
   on after the game has started
 - Allowed admins (and the server console) to use the "pickplayer" and
   "kickplayer" commands in individual mode, for adding new players during
   matches and removing players without kicking them from the server
 - Made "pickplayer", "kickplayer", and "captain" commands case-insensitive
   with respect to player names
 - Fixed potential crashes when players "reconnect" during a match without
   disconnecting completely
 - Fixed problem that was causing "ghost" command to always expect a code,
   even though it is supposed to try to find your ghost without one if needed.
   Also improved the player recognition logic when no code is supplied
 - Made "teams" and "teamskins" commands available to admins even in DM and
   individual modes, so they can get the names to use when maxteams is 2 and
   they wish to pre-configure the team settings
 - Corrected the modified adminmode "strict" to proprely start the countdown
   once all players are ready
 - Added GXMod-style "accuracy", "deathstats", and "killstats" commands by
   popular demand
 - Tweaked bot detection a bit
 - Tweaked autocam logic and display
 - Took player's skin out of "id" display
 - Allow private messages to the console using "talk", i.e. "talk console hi"
 - Minor performance tweaks
 - Added "selfdamage" admin command to control whether or not players can hurt
   themselves (the default, of course, is 1, meaning they can), so admins can
   allow self health protection independent of the "tp" setting
 - Changed "team" and "join" commands (and the corresponduing menu choices) to
   attempt to automatically match a player to his ghost if a match is in
   progress, to make rejoining a team after a disconnect even easier
 - Added "unreadyteam" captain/admin command by popular request
 - Fixed an unlikely but possible server shutdown condition during map change
 - Changed post-match scoreboard to show players' pings at match end rather
   than all 0's
 - Fixed a possible memory leak in the menu system
 - Fixed players sometimes getting other players' menus, and added multi-team
   support to the menu system

Changes since v1.30b2
---------------------
 - Fixed what should be the final accounting problem due to laggy-player
   reconnects
 - Properly removed players' ghosts upon a level change (except during a
   multi)
 - Fixed Standard Logging in individual mode.  It was previously recording all
   kills as team kills, even though there are no teams!
 - Record players becoming observers as "PlayerLeft" (disconnect) in Standard
   Logs.  They are not double-counted at disconnect time
 - Improved "ghost" and "ghostcode" routines to look up your code even after a
   disconnect if you come back from the same address.  This means that
   "ghostcode" will give you your code, and "ghost" will reconnect you to your
   old team/stats even if you *don't* supply your code
 - (Finally) fixed server crashes due to a rare problem with the join menu
 - Added Zbot command flood protection.  Limits server's reporting of Zbot
   command usage (impulse 174/175) to 1 message per player per 5-second
   period, since lamers were flooding servers with repeated impulses
 - Changed adminmode "strict" to allow players to ready up (i.e. start
   matches), by popular demand.

Changes since v1.30b1
---------------------
 - Fixed "unresolved symbols" in Linux and Solaris versions
 - Fixed broken "admin" command (grrrr...)
 - Made sure players are not ready upon joining in individual mode
 - Developed and changed to a new method of bot detection.  Should eliminate
   false positives, though I make no guarantees
 - Server now reports client usage of Zbot on/off and radar commands

Changes since v1.29 (Frag2 Edition)
-----------------------------------
 - Added "minrate" and "maxrate" commands to control the minimum and maximum
   allowed "rate" settings for clients
 - Fixed occasional menus popping up when switching camera modes
 - Made player's spawn protection (if enabled) vanish upon firing the blaster
 - Fixed problem where players who reconnected without fully disconnecting
   (i.e. certain types of timeouts) were getting double-counted
 - Added timeouts.  Admin or server op may set the # per team and the duration
   using "timeouts", and team captains may call timeouts using "time", and
   end them using "timein".  NOTE that this "time" command replaces the
   previous "time" command for printing the elapsed time in a match.  The old
   "time" command may be accessed via "timeleft"
 - Changed idle-server routines
 - Prevent all telefrags at match start.  This was done to prevent overflows
   at the start of very large matches on small maps, where people were spawning
   on top of each other with alarming frequency.  Also prevent overflowing at
   "changemap" time in similar situations
 - Improved internal item control routines
 - Changed the "botdetect" command to be a set of flags (0 = off, 1 = log,
   2 = notify, 4 = kick, 8 = ban) rather than 3 separate modes, to give more
   control over the bot detection behavior than I previously made available.
   Added "sv_botdetection" console variable so that the bot detection settings
   will be available from GameSpy, but its value MUST still be set using the
   "botdetect" command.  Credit for the flags approach goes to
   Peter Engstrm (riviera@earthling.net, check out RivCTF at
   http://http://www.d.kth.se/~d94-pen/RivCTF)

Changes since v1.26
--------------------
 - Fixed "start" command (broken in v1.25 and v1.26)
 - Got rid of "killed self" message and death sounds when a player switches teams
 - Stop showing post-match scores bafore a minute is up if server switches from
   warmup to pregame mode (i.e. if > half the players ready up), so players can
   see who isn't ready
 - Fixed problem where uppercase server ("sv") commands were causing crashes
   (this has been present forever, but was never reported)
 - Fixed accounting in "unreadyall" command
 - Added an "individual" mode, for tournament-style free-for-alls.  Players
   enter as observers, then join in warmup mode.  The process for starting a match
   is the same as for match mode (i.e. "ready", or the "start" command), complete
   with ghosts!
 - Stopped logging observers connecting for GibStats/Standard Logs, since they do
   not count as players for logging purposes.  Connects are logged when a player
   join a team in match mode, or when they join up in DM or individual mode
 - Changed "mode" command to be the same as "battlemode" for simplicity.  The old
   "mode" command can now be accessed using "settings", which is a better
   description of it, anyway
 - In match and individual modes, force dead clients to respawn after 5 seconds,
   to avoid people building up a lead and then staying dead to protect it
 - Fixed occasional "lost" player IPs in console messages and "kickban" command
 - Made "disallow id" command fully work.  It previously failed to turn off "id"
   for players that already had it on
 - Added "warmup" command for specifying the minimum percentage of players that
   must ready up before the server switches from warmup mode to no-fire pregame
   mode.  The default is 50.  A value of 0 causes warmup mode to be disabled
 - Took away "kill" command when game is paused
 - Made "hold" command a toggle (though "resume" will still work)
 - Added "Paused" pic at center of screen when the game is paused
 - Added "stoptime" command to allow admins to set the maximum amount of time
   (in minutes) to wait before stopping a match if only one team is left on
   the server.  During this waiting period, the game is paused.  This is most
   useful in 1-on-1 matches, to give a disconnected player time to reconnect and
   use his ghost code to rejoin.  The default is 0 (stop match immediately if
   only 1 team is left)
 - Fixed "kickban" to actually ban once again
 - Added an auto-cam, based on Paul Jordan's q2cam
   (http://www.prismnet.com/~jordan/q2cam).  It can be accessed through the
   click-list of cams in observer mode as well as through the "autocam" command

Changes since v1.25
--------------------
 - Fixed server accounting (i.e. player counting) problem when clients
   disconnect during intermission
 - Replaced standard Quake2 console messages at level change with something
   a little more meaningful

Changes since v1.20
--------------------
 - ZBOT detection!  Lithium2-style, but not using WhiteFang's object file
 - Cleaned up "kickuser" and "kickban" commands, and added "boot" synonym for
   "kickuser" for compatability with other mods
 - Added "flimit" and "tlimit" synonyms for "fl" and "tl" for compatability
   with other mods
 - Teammates no longer get caught inside of each other at match start if team
   health protect is on and they happen to spawn in the same spot
 - Added a print of "Map: mapname" at match start, so that client logs no
   longer count warmup kills as part of the match
 - Fixed annoying demo effect where weapons, armor, and powerups would not
   show up in client demos
 - Fixed post-match scoreboard issues: prevented occasional extra players from
   previous matches from being displayed, highlighted team captains, allowed
   up to 4 observer names to be displayed, fixed post-match team sorting
 - Print player's IP to console upon connection, and show the total number of
   clients on the server when a player enters.

Changes since v1.06a
--------------------
 - Added ClanRing/CRMod-style ghosts, with all respective commands ("ghost",
   "ghostcode", "ghostlist").  A player is assigned a 3-digit ghost code
   upon readying up for a match.  If the player is disconnected after that
   point, he can be re-attached to his old body, stats and all, by using the
   "ghost" command with his ghost code.  A player that leaves a team to become
   an observer loses his ghost (i.e. if he later rejoins his old team using a
   joincode he starts with 0 frags), though previous stats are stored for
   reporting purposes
 - Incorporated Hentai's 3.15/7/9 vwep changes from the source on
   http://www.telefragged.com/vwep.  I had previously been working only from
   Zoid's v3.15 release notes, so my fix wasn't complete
 - Added "readyteam" command.  Currently any member of a team may use it to
   ready all team members for a match
 - Added "unreadyall" admin command to unready all players
 - Added auto-disabling of warmup mode (the server reverts to the old no-touch
   pregame mode) once more than half of the players have readied up.  This was
   done to encourage the rest to ready up as well.  Note that the server will
   revert to warm-up mode if all players leave their teams
 - Prevented blaster firing when not in match or warmup
 - Added fine item control using "itemflags" and "item".  "itemflags" is a bit
   unwieldy due to the large numbers, but is much faster than the individual
   "item" command
 - Fixed server hangs due to changing map when play is paused
 - Fixed annoying "exploding elevator" bug in warmup/pregame mode (I believe it
   is an id thing, so it may still happen during DM or matches)
 - Corrected an error that would not allow the "tp" mode to be switched
   directly from 4 to 1
 - Made sure a player is not ready upon switching teams or joining a team
   after becoming an observer
 - Added rudimentary message flood protection
 - Added sounds in addition to messages every time a time remaining message is
   printed.  Also when going into overtime
 - Removed items from level prior to the start of a countdown
 - Changed camera switching slightly so that annoying messages are not printed
   when there is nobody to chase
 - Fixed "tl" and "fl" voting to cause the timelimit and fraglimit to be
   properly updated in match mode
 - Changed "bfg" and "powerups" commands to take effect instantly, including
   removal from or addition to the level, and removal from player inventories
   if necessary
 - Updated "stats" command to include stats of disconnected players, and fixed
   a bug that sometimes caused a player's efficiency to be incorrectly
   displayed after a match
 - Reduced the frequency of overflows at match end
 - Allowed client-side "skin" command to be used to set the skin for a team
 - Audible ticks at each second of the countdown
 - Play a sound at each announcement of remaining time during a match (except
   for times < 1 minute)
 - Added team captain functionality, including "captain" and "captains"
   commands (see battleground.txt or the in-game help) and auto-selection of a
   new captain if the current captain leaves
 - Added "pickplayer" command for compatability with Rancor, and for yet
   another way for players to be added during a match (joincode, ghost code,
   and now pickplayer)
 - Added "kickplayer" command for forcibly removing a player from a team
 - Restricted use of teamname, teamskin, readyteam, lockteam, unlockteam,
   captain, pickplayer, kickplayer and joincode commands to team captains and
   admins
 - Fixed problem that was causing cameras to be tilted if you became an
   observer while still dead
 - Fixed annoying bug that would sometimes cause female players to be reported
   as male in match mode
 - Added id-style IP banning support (in addition to the native Q2BG ban
   commands), including the "filterban" console variable to control whether
   to prevent addresses in the banlist from connecting (the default) or to
   allow ONLY those IPs to connect.  The id banning commands are supported
   both as admin commands and as server commands.  The "writeip" command was
   NOT added, as it is inconsistent with the way Quake2 Battleground reads
   bans.  As part of this change, the ability to ban by player number was
   removed (it clashes with the ability to ban toplevel domains).  The
   "kickban" command still requires a player number as its argument, though
 - Added auto-switching to next level if intermission lasts longer than 25
   seconds
 - Switched to Rancor/GX-like scoreboard (with the colors reversed and a few
   other differences) in preparation for multi-team support
 - Changed the efficiency calculation for the stats command to be
   score / (deaths + suicides + teamkills)... used to be
   (score - teamkills) / (deaths + suicides)
 - Put in "player" command for compatability with GX.  People always seem to
   type "player" on my test server and wonder why it doesn't work...
 - Constrained maxplayers to be greater than or equal to minplayers.  This
   should have been true to begin with
 - Added optional spawn protection ("spawnprot" admin command), up to 10
   seconds
 - Made scoreboard show previous match results for one minute after a match

Changes since v1.06
-------------------
 - Fixed server hangs that were sometimes occurring when a match had more 
   players than the map had spawn points (the bug was introduced with v1.05's
   random respawns at match start)

Changes since v1.05
-------------------
 - Added "chasecam", "trackcam", and "eyecam" commands to switch a client to
   each camera.  All 3 commands take a optional player number argument -- if
   given, the player whose number was given is chased
 - Set observer's "weapon" to blaster and health to 100 if a client leaves a 
   team.  It was previously displayed as whatever weapon the client had been 
   using while on a team, though with no ammo, and health of 0
 - Finally completely fixed map verification via maps.txt.  A bug still existed
   where under certain circumstances an invalid map would appear to the server 
   to be valid, resulting in game shutdown
 - Added "minplayers" command and setting to specify the minimum number of
   players that must be on each team before a match may be started.  The default
   is 0.  This setting is useful for preventing matches from starting before
   all players have arrived.  NOTE that a match may be started using the "start"
   command regardless of whether or not each team has the minimum number of
   players
 - Added "joincodes" admin command to allow an admin to view the joincodes of
   both teams.  Useful for player substitutions, since (if an admin is present)
   a player from the team does not need to stop to give the sub the team's
   joincode information
 - Fixed server hangs caused by breaking a paused match

Changes since v1.03a
--------------------
 - Made DUCK button switch to previous target when in chase/eye/track-cameras
 - Made cameras auto-switch to next target if the current target leaves the
   game or becomes an observer
 - Fixed reading of MOTD and reading/writing of bans when the mod is run from
   "baseq2" (same problem as with maps.txt)
 - Replaced hands-off pregame with full-combat warmup prior to a match.  Players
   start with 100 health, 100 armor, all weapons except the BFG, and the
   maximum ammo for each weapon.  No scores are recorded, and no bodies or 
   weapons are left behind
 - Auto-set max. players per team ("maxplayers") once the countdown starts if
   not previously set by an admin.  Also, admins may now change "maxplayers"
   while a match is in progress
 - Fixed bug that sometimes caused a track-cam or eye-cam user to take damage
   or be killed (doh!)
 - Fixed view bug when switching from track-cam to eye-cam on a dead player
   (it was causing you to track at a 45-degree angle as if you were dead)
 - Finally broke down and wrote in much better random spawning at match start
   time
 - Changed "pretime" to take values in minutes rather than seconds, and made the
   maximum time between rounds 60 minutes (default is still 1 minute).  Also
   enabled the setting of "pretime" during a multi-round match
 - Added mode specifier and timer to the HUD in match mode.  Timer counts down
   during a timed match, countdown, or warmup (in multi-round mode), and counts
   up if a match has no timelimit
 - Disabled "ready" command when only one team is populated (doh!)
 - Forced reading of MOTD when a new level is loaded (so that it is updated)
 - Added automatic overtime ("overtime" command).  Can be switched between
   sudden death, timed match extension (i.e. add minutes to the round if tied),
   and none.  Default is sudden death.

Changes since v1.03
-------------------
 - Fixed problem with reading "maps.txt" when the server is run from the
   "baseq2" directory

Changes since v1.02 (OGL 60-player DM Special Edition)
------------------------------------------------------
 - Added audible countdown at end of match
 - Added "powerups" command and vote option to toggle use of powerups
 - Restricted "id" radius a little bit
 - Changed "tl", "fl", and "dmf" commands to allow for the setting of
   mode-specific default values.  The commands now work as follows:
    - Each command now has "dm" and "match" options for setting the values
      that should be used in match and dm modes (i.e. "tl dm 45" will 
      cause the timelimit to be set to 45 each time the battlemode is
      changed to "dm"
    - When used without the "dm" or "match" options (i.e. "tl 45"), these
      commands change the value of the timelimit, fraglimit, or dmflags
      for the current mode.  Upon a later switch back to this mode, the
      default value set using the "match" or "dm" option will be used.
      (See the provided battle.cfg for examples)
 - Added Rocket Arena 2-style EyeCam and TrackCam, courtesy of RA2 author
   David Wright (wrightd@stanford.edu).  As part of this addition, made the
   fire button cycle through the 4 observer modes and removed the chasecam
   option from the Join Menu.  Also made the jump button switch to the next
   player in eye/track/chasecam modes (invnext and invprev, or ] and [,
   will still switch to the next and previous player, respectively)
 - Added "bfg" command and vote option to toggle the presence of the BFG on
   maps that normally have one
 - Fixed MOTD read routines to re-read MOTD on player connect (so the MOTD
   may be changed dynamically)
 - Condensed command descriptions on "commands" and "acommands" menus to 2
   lines or less, and added a blank line between each command.  This should
   reduce the possibility of an overflow when these menus are up
 - Fixed minor bug that was causing some players to wear the white diaper
   in match mode if their client-side model was not vwep-supported
 - Re-worked "kickban" and "ban" player-number banning code.  I'm pretty
   sure this will squash the occasional crashes that occurred when
   kickbanning a user
 - Added check for skins of the form "model/skin" to the "teamskin" command
 - Allowed "inven" (usually bound to TAB) to bring up a menu for players on
   teams.  Consecutive presses to the TAB key or use of the "inven" command
   by non-observers will bring up the inventory, then the menu, then clear it.
   For observers, the inventory will not be shown
 - Fixed random joincodes sometimes being more than 4 characters
 - Added obsmode "shutup" to allow admins to prevent observers from speaking
   *at all*.  Also, observing admins are now allowed to speak no matter what 
   the obsmode is
 - Added map name to "stats" display
 - Players may now leave a team during a match without disconnecting
 - Added "Help" option to Join Menu

Changes since v1.01 (QuakeCon CPL Tournament Edition)
-----------------------------------------------------
 - Added "switch" command to allow server to switch to DM mode (a la QWComp)
   after a specified amount of time
 - Fixed bug that only allowed votes with the "tp" option to be for 0
   (nonexistent!) or 1.  Now you can vote for 1-4 as expected
 - Removed lowercase letters from random joincodes

Changes since v1.0
-----------------------------------------------------
 - Allowed the use of "maintenance" commands (teamname, teamskin, counttime,
   pretime, and obsmode) in battlemode "dm"
 - Fixed "stats" to not show observers (who have no stats, of course) during
   a match or a free-for-all
 - Fixed "dm" voting.  "vote dm 0" was not being properly handled.
 - Added team names and scores to the HUD in match mode for easy viewing

Changes since v0.99i
--------------------
 - Added an optional server-enforced ping minimum and maximum.  A client whose
   average ping drops below the min or rises above the max for a sustained 
   period of time is automatically removed from the game
 - Fixed match/deathmatch pausing ("hold" and "resume" commands)
 - Added GibStats frag logging capability
 - Re-added vwep support, and made it compatible with 3.15's auto-vwep.
 - Changed the default timelimit logic to *not* set the default time to 20
   minutes if timelimit is 0 but fraglimit is nonzero
 - Fixed fraglimit voting
 - The MOTD is now displayed automatically at connect time in match mode as
   well as in free-for-all mode
 - Observers are now permitted in deathmatch/free-for-all mode
 - Made menus dynamic, so they can be used even when you are on a team or in
   a free-for-all.  If you are not an observer, they can be accessed by using
   the "menu" command.
 - Fixed "time" command to report the correct elapsed and remaining times
 - Server no longer crashes when banning by player number or kickbanning
   (it was due to a dangling pointer introduced in 0.99i)
 - Allow voting when only one player is present on the server
 - Refined/redefined the 3 adminmodes as follows:
      CLIENT: clients may vote, make team name/skin changes, and start matches
      ADMIN : clients may make team name/skin changes and start matches
      STRICT: only admins may make team name/skin changes or start matches
 - Added "join" command for joining a deathmatch without the menu.  In 
   battlemode "match", functions much like the "team" command
 - Changed the "teamname" and "teamskin" commands as follows: if called with
   a single argument, they assume you wish to change your own team's name or
   skin to the supplied value.  If called with a third argument, assumes that
   the second is the name or skin the team  you wish to modify and the third
   is the new value.
 - Added the "teams" and "teamskins" commands to display the names and skins
   of the 2 teams, respectively.  This restores the functionality lost in 
   the "teamname"/"teamskin" changes.
 - Due to popular demand, renamed the old "dm" command that set the "dmflags"
   directly to "dmf".  The "dm" command itself is now used to set the
   2 familiar deathmatch modes used in many classic Quake teamplay mods.
 - Added the "tp" command to set the 4 familiar teamplay modes
 - Made teammate armor protect work in deathmatch mode (not that anyone cares)

Changes since v0.99
-------------------
 - Enabled the server ("sv") version of the "obsmode" command
 - Made "dmflags", "tl", and "fl" votable when adminmode is "client", and 
   and otherwise disabled non-admin changing of these settings
 - Stopped (or minimized) player overflows when beginning large matches
 - Fixed minor chasecam bugs (thanks to Chris Jones, u238|squish)
 - Added a MOTD mechanism
 - Added an additional config file ("battle.cfg" by default) to be read at
   server startup.  This will allow automatic server customization.
 - Revamped "maxplayers" command.  It now sets the maximum number of players 
   that may be on a single team.  A value of 0 means no max. per team.
 - Added an "optional" map list.  If the file ("maps.txt" by default) exists,
   then only the maps listed in it may be accessed using the "changemap" command
   or during a player vote.  The "maps.txt" file that ships with Quake2
   Battleground contains the names of all standard id single-player and
   deathmatch levels.  Add or delete as desired.  If the file does not exist,
   then the server will try to change to any supplied map.  Note that THE SERVER
   WILL CRASH if it tries to change to a bad map (there is no known way to test
   for the existence of a map), so be wary of not having this file or making
   typos in it.
 - Banned IPs are now stored in a file ("bans.txt" by default).  The file is 
   read at server startup and written each time IPs are banned or unbanned.
 - Added option to manually set your team's joincode before the start of a
   match.  If this is done, no random joincode will be generated at match
   start, though the chosen code will be displayed to team members.
 - Fixed bug in the observer code (only seen when using the "observer" command,
   i.e. not when you first connect) that caused mouse look to be disabled when
   the fire button was pressed.
 - Added the "stats" command to show player stats (deaths, kills, teammate
   kills, suicides, net score, kill-to-death ratio)
 - Removed broken vwep implementation.. will add support for Zoid's built-in
   vwep as soon as 3.16 source is out
