================================================================
Title                   : VanillaCTF
Version			: 0.9
Filename                : vanctf09.zip
Date			: June 29, 1999
Author                  : James Abbatiello
			   (member of Clan Noname:
			    http://www.WPI.EDU/~mongoose/ClanNoname/)
Email Address           : abbeyj@frag.com
Description             : Q2 gamex86.dll mod
			  Basic CTF play
Additional Credits to   : Id Software (of course)
			  Zoid (zoid@idsoftware.com) for 
			   Threewave CTF from which I took the
			   idea and a bit of code for this
			   patch
			  Mongoose (mongoose@wpi.edu) for sound
			   advice and level conversions
			  OpenQuake (http://www.openquake.org)
			   for just being there
			  MutMut (thomase@idcomm.com) for a
			   bugfix
			  Deltoid[DPS] for testing and Q2DMx
			   map conversions
			  Kai "L-Fire" Kenner (LFire@yyz.com)
			   for info regarding 3.15 VWEP support
			  Everyone on the PQ Q2Coding mailing
			   list
================================================================

* Files Included *
readme.txt		The file you're reading
gamex86.dll		Compiled version for Win95/NT
gamei386.so		Compiled version for Linux (glibc)
maps\*.ent		Files containing flag placement information
maps.lst		Default map list
maps*.lst		Sample map lists


* Description *
This is a Q2 mod to add CTF teamplay.  This is a server-side
only mod, so there is no client download necessary.  It has 
optional support for Zoid's Q2CTF which, when enabled, requires 
the clients to have Q2CTF installed or be able to autodownload
the necessary files.


* Features *
- Two Flags :) (with cool laser beams marking the flag bases) 
- HUD: Displays flag status and team scores
- Teams: male (Red) vs. female (Blue).
- say_team variables (%l, %a, %h, etc) are supported
- Tractor Beam (Grappling Hook): supports regular operation
	("use grapple") or offhand mode ("+hook") if enabled
- Runes: The 4 standard Threewave runes.
- MOTD:	Server can add a custom message without recompiling
- External entity definitions: 	Convert levels for CTF 
	without recompiling the .BSP files
- Q2CTF Support: Allows the use of Q2CTF skins, flag models
	and levels
- Player Identification: "id" displays the name of the player 
	you are looking at
- Reconnecting to a server restores your previous team / score
- Anti-Zbot code
- Ability for server to eliminate undesirable weapons (ie, BFG)
	from the levels
- Can optionally automatically kick people who have wandered
	away from their keyboards
- Server admins can switch a person's team
	

* Installation *
Notes:
- This is server-side only.  Only the server has to follow
these instructions.  Everyone else just plays as normal.

- This was designed and tested on Quake2 v3.20.  Attempting to
run this on any version of Quake2 other than v3.20 is
unsupported.

- Please make sure that there is no gamex86.dll file in the 
Release subdirectory of your main Quake2 directory 
(for instance, c:\Quake2\Release) unless you explicitly
installed one there.  This will cause problems with most mods
and especially VanCTF.  If there is one there that you did
not install, please move or rename it.

For Win95/98/NT:
extract "vanctf09.zip" to your main Quake2 directory
(for instance, C:\Quake2).  It will automatically create
a subdirectory called "vanctf"  If you use pkunzip, 
be sure to use the -d option.  Make a copy of your existing 
Quake2 icon (right click on the Start button, select Open,
then double click Programs and then Quake2 to get to it).  Edit
the properties of the new icon and add the following to the end
of the line in the Target box:
	+set game vanctf
Now use the new icon to launch Quake2.

For Linux:
Basically follow the above instructions, but ignore all the
stuff about shortcuts.  Tack the following onto the end of 
your command line:
	+set game vanctf
Please note that this version has not been tested.  If it
fails to work for you, please drop me a note about it.  But
first please ensure that you are running the glibc version
of Quake2.  If you are running Quake2 on a libc5 system, then
you'll have to try to download the source code and compile
it yourself as I no longer have access to a machine with
libc5 devel libraries on it.

If you are on an Alpha, complain to me to compile an Alpha
version. :)


* Server Cvars *
Runes: the number of runes in the level is configurable
through the "runes" server cvar.  This specifies the number of
each rune to spawn in the level.  Thus a value of 1 means 4
runes, 2 means 8 runes, etc.  The default is 1.  Examples:
	set runes 0		// no runes
	set runes 2		// 2 of each rune

Offhand hook: Default is disabled (0).  To enable:
	set offhand 1		// enable offhand hook

Q2CTF support: if you want to use the Q2CTF skins and flag
models (and thus require all of your clients to have Q2CTF
installed or be willing to wait through a small autodownload).
Default is disabled (0).  To enable:
	set zoidctf 1		// use Zoid's skins and flags

Scoreboard setting: if you liked the deathmatch scoreboard and
run a server with a maxclients setting of 12 or less, you may want
to try using this to bring it back.  Default is to use the new
ctf scoreboard (1).  To use the old scoreboard:
	set ctfscore 0		// use non-ctf scoreboard

Team score limit: once either team's total score hits this, the
level is over (default is 0, meaning no limit):
	set teamscorelimit 300	// level's over at 300 points

Weapon banning: lets you remove any weapon from the level.  Add
up the values corresponding to each weapon you want to ban in
the following table, then use that value of the weaponban cvar.
Default is no weapons banned (0).
		Shotgun			   4
		Super Shotgun		   8
		Machinegun		  16
		Chaingun		  32
		Grenade Launcher	  64
		Rocket Launcher		 128
		HyperBlaster		 256
		Railgun			 512
		BFG10k			1024

	set weaponban 1024	// no bfg
	set weaponban 1280	// no bfg and no hyperblaster

AntiZbot: There are two cvars: az_logonly and az_retry.  The
first controls whether people using the zbots are only logged
in the console (1, default) or both logged and then kicked 
from the server (0).  The second controls how many retries to
give a person before determining that they are a zbot.  It is
probably wise to leave this at the default (5) unless you have
some really important reason for changing it.  Example:
	set az_logonly 0	// kick zbots

Team-colored Quad Shells: By default (1), people with Quad
glow with a shell the same color as their team.  To switch
back to the old behavior (flashing blue shells):
	set colorquad 0		// dont use team-colored quad

Anti-idle: This automatically kicks people off the server who
remain inactive for a duration specified in minutes.  If
enabled, they will get a few warnings before being disconnected.
Default is to never kick people for inactivity (0).  To kick
people after a specified period of time (for instance, 15
minutes):
	set antiidle 15		// kick people idle for 15 minutes

DMFlags: In addition to the normal dmflags values supported by
Quake2, VanCTF also supports two additional flags, making the
complete supported list as follows:
        DF_NO_HEALTH            1
        DF_NO_ITEMS             2
        DF_WEAPONS_STAY         4
        DF_NO_FALLING           8
        DF_INSTANT_ITEMS        16
        DF_SAME_LEVEL           32
        DF_SPAWN_FARTHEST       512
        DF_FORCE_RESPAWN        1024
        DF_NO_ARMOR             2048
        DF_ALLOW_EXIT           4096
        DF_INFINITE_AMMO        8192
        DF_QUAD_DROP            16384
        DF_FIXED_FOV            32768
        DF_ARMOR_PROTECT	262144
        DF_CTF_NO_TECH      	524288
DF_ARMOR_PROTECT stops shots from your teammates from being
able to strip away your armor.  DF_CTF_NO_TECH removes all
the runes from the level (same as "set runes 0").  To figure
out what value to use, add up the numbers corresponding to
each option that you wish to use, and then use that number
as your dmflags value.
	

* More Server Configuration *
Displaying a MOTD: Create a file called "motd.txt" in
your vanctf folder.  This will be displayed to all clients upon 
connecting.  There is room for 4 lines of up to 27 characters
(more if you don't care about the text scrolling outside the
boundaries of the graphic).

Modifying the map rotation: VanCTF supports the standard Quake2
method of selecting a list of maps to rotate through (using
sv_maplist).  For instance:
	set sv_maplist "fact3 q2dm8 q2ctf1 q2ctf4a"
will cause the game to play through just those 4 maps and then
loop around to the beginning again.  However, lists created
this way are limited to about 128 characters, so VanCTF
also supports the method of map rotation that was used in 
previous versions.  Create a file called "maps.lst" in your
vanctf folder.  Put one map name per line. When the server 
is run, it will cycle through only those maps in the list 
(in order).  For example, something like this:
	fact3
	q2dm8
	q2ctf1
	q2ctf4a
For the above example, you probably want to start the server
with "+map fact3" on the command line to start at the first map 
in the list.  There are several sample lists included:
	mapsall.lst	All the supported maps (see above)
	mapssingle.lst	The single player maps
	mapsdm.lst	The Q2DM levels
	mapsctf.lst	The Q2CTF levels
	mapsctfa.lst	The Q2CTF levels with Q2CTF4a
	mapsmost.lst	Mostly all the maps (default)
	mapsmosta.lst	Mostly all the maps with Q2CTF4a
        mapsrandom.lst  mapsmost.lst in "random" order
        mapsrandoma.lst mapsmosta.lst in "random" order
You can copy any of these files to maps.lst to use them.
Please note that sv_maplist takes precedence, so if you
wish to use the "maps.lst" file, please insure that
sv_maplist is set to the empty string, like so:
	set sv_maplist ""

Running Q2CTF levels: this requires that the clients have
Q2CTF installed.  Copy the pak0.pak file from your Quake2\ctf 
directory to your Quake2\vanctf directory.  Edit the maps.lst
file or sv_maplist cvar to include the levels in the rotation
(see: Modifying the map rotation above).  Clients connect as
normal.

Switching a person's team:
Use the command "sv forceteam", for example:
sv forceteam Player blue	// puts Player on blue team
sv forceteam # 0 red		// puts the first client on 
				// the red team

* Startup *
The server has to start a multiplayer server on one of the
supported levels  (Or any other level that was designed for 
CTF or has been converted for it by the use of .ent files):
base1		"Outer Base"
base2		"Installation"
base3		"Comm Center"
train		"Lost Station"
bunk1		"Ammo Depot"
ware1		"Supply Station"
ware2		"Warehouse"
jail1		"Main Gate"
jail2		"Detention Center"
jail3		"Security Complex"
jail4		"Torture Chambers"
jail5		"Guard House"
security	"Grid Control"
mintro		"Mine Entrance"
mine1		"Upper Mines"
mine2		"Bore Hole"
mine3		"Drilling Area"
mine4		"Lower Mines"
fact1		"Receiving Center"
fact2		"Processing Plant"
fact3		"Sudden Death"
power1		"Power Plant"
power2		"The Reactor"
cool1		"Cooling Facility"
waste1		"Toxic Waste Dump"
waste2		"Pumping Station 1"
waste3		"Pumping Station 2"
biggun		"Big Gun"
command		"Launch Command"
strike		"Outlands"
city1		"Outer Courts"
city2		"Lower Palace"
boss1		"Inner Chamber"
boss2		"Final Showdown"
q2dm1		"The Edge"
q2dm2		"Tokay's Towers"
q2dm3		"The Frag Pipe"
q2dm4		"Lost Hallways"
q2dm5		"The Pits"
q2dm6		"Lava Tomb"
q2dm7		"The Slimy Place"
q2dm8		"WareHouse"
q2ctf1		"McKinley Revival"
q2ctf2		"Stronghold Opposition"
q2ctf3		"The Smelter"
q2ctf4		"Outlands"
q2ctf4a		"Outlands II"
q2ctf5		"Capture Showdown"

Clients join the game.  Fun ensues.


* Client Commands *
"ctfhelp"
	- displays a short help message
"drop tech" or "drop rune"
	- drops the rune you are carrying
"flagstat" or "cmd flagstatus"
	- displays the status of the flags (if they are at
	base or carried, who they are being carried by, 
	etc.)  
"id"
	- identifies the player you are looking at.  The
	person does not have to be directly under the
	crosshair, just close.
"team blue"
	- switches to the blue (female) team
"team red"
	- switches to the red (male) team
"use grapple"
	- switches the current weapon to the hook
"+hook"
	- fires the offhand grappling hook (if available)


* Contacting the Author *
Mail me (abbeyj@frag.com) with bug reports, comments,
suggestions, etc.


* Copyright / Permissions *
Authors MAY use these modifications as a basis for other
publicly available work provided that they follow
Id's license.

I haven't put anything intentionally dangerous
in here, but here we go with legal stuff ...

This software is provided "as is" with no warranties,
either express or implied.  In no way shall James
Abbatiello be held liable for any damage, either direct
or indirect, resulting from the use of this software.


* Availability *
You can get this from:
	http://www.frag.com/vanctf
