=============================================================================================
				    Banished Entertainment
 				           presents...

	  	                  The CTF Expansion Project
=============================================================================================

Title    : CTF EP (The CTF Expansion Project Server)
Filename : ctfeps10.zip
Version  : 1.0
Date     : 97-08-30
Email    : hanzo@sni.net
Info	 : This patch contains two versions of CTF EP 1.0, for Regular Quake (1.06
	   or later) and QuakeWorld 1.55 or later.  Note that you need qwsv
           1.55 and qwcl 1.55 or later in order to play.

=============================================================================================
					     STAFF
=============================================================================================
Shawn Holmes  : Senior Project Manager, CTFEP Server programming, CTFEP Console Background
          	Design, Documentation, Level Designer, CTF Bot waypoint development/testing
David Wolfe   : B/W Textures
Don Petersen  : Level Designer
John Schultz  : Level Designer
Arlo Peck +
Erik Phillips : Collaborating on the new CTFEP death messages

Special thanks to :

Dave Kirsch   : (big breath) Here we go....
		    1.  Creating The Threewave CTF mod
		    2.  Allowing the server source (v4.2) to be used for the CTF EP Server
		    3.  Allowing the use of CTFSTART.BSP
		    4.  Writing the original documentation which follows
		    5.  For kicking my ass at Qcon97.  Again.
		    6.  For being a cool friend and not letting his celebrity
			  status go to his head.
		    (I hope that covers it, because if it doesn't, Zoid is going
		    to have my head for breakfast) :)
Drew Davidson : Offering CTFEP support for The CTF BOT
Larry Sanders : Supplying Wasatch Fault's QW Server for Beta1 and Beta2
id Software   : Allowing the use of modified versions of START.BSP and E3M6.BSP

Thanks to whoever's at http://road.kill.com/ for the drop quad/ring code (I couldn't
find a name or email address anywhere!)

And to the beta testers and judges for their invaluable feedback on Beta1 and Beta2

=============================================================================================
					  LEVELS
=============================================================================================


ctfstart   Introduction          	John Romero <romero@ionstorm.com>
                                 	Additional CTF exits by Dave 'Zoid' Kirsch 
                                 	<zoid@threewave.com>
			         	Modified for The CTF Expansion Project by
			         	John 'Tattoo' Schultz <tattoo@enteract.com>
ctf1bsp1   Holy Warz			Matthew Robinson <robinsm@sunyit.edu>
ctf1bsp2   Tormented Fortress    	John 'Tattoo' Schultz <tattoo@enteract.com>
ctf1bsp3   The BanZoia			Eben Gulick <dungo@buckeyeweb.com>
ctf1bsp4   Barbie's Domain              Tony Distler <adistler@oucsace.cs.OhioU.Edu>
ctf1bsp5   [CapturE CastleS]		Neil Shaw <gri@null.net>
ctf1bsp6   Tickle-Me Shambler?	        Don Petersen <dp@premierweb.net>
ctf1bsp7   Never Mined			Casey <casey@burningchrome.com>
ctf1bsp8   The Forgotten Outpost        Scooby <bglines@apeleon.net>
ctf1bsp9   Salvage The Weak             Ralph Gustavsen <clg@coastlinegraphics.com>
ctf1bsp0   Capturellamaphobopolis 	Shawn Holmes <shawnh@sni.net>
????????   ??????: ??? ?????????        Matt Fox <mix@mixworld.com>          
           
[ctfstart and ctf1bsp2 appear courtesy of id Software]

=============================================================================================
					  SETUP INFO
=============================================================================================

Type of Mod
-----------
Quake C  : yes
Sound    : yes
MDL      : yes

Format of QuakeC
----------------
.qc files     : yes
progs.dat     : yes
qwprogs.dat   : yes

In the .ZIP file you got this file from, you also have a server: a progs.dat for
normal quake and and qwprogs.dat for QuakeWorld.  Essentially, you have a Threewave
CTF Server with the following options added:

1. Support for The CTF Expansion Project levels (plus the new CTFSTART.BSP)
2. The ability to configure the server to turn runes on or off
3. The ability to configure the server to allow killed players to drop quad/ring of
   invis.
4. Glowing colored flags in GLQuakeWorld (also coded into the standard Quake server, so
   when the next version of glquake.exe comes out support EF_BLUE and EF_RED, the server
   will automatically kick into action) 
5. Pentagram and Quad glow

The CTF Expansion Project's server files for Quake and QuakeWorld are
virtually identical to Threewave; ergo, the following instructions are
gratiously taken from Threewave's setup file.  I will insert notes relating
to CTF EP specifics as we go along.
						 --Hanzo

QUICKSTART
----------

1.  This patch supports serveral modes of operating all related to Capture
    the Flag.  It can also provide an enhanced form of normal DeathMatch
    as well.  In the default configuration, it is set up for using a
    special start map for voting that determines the set of levels to play.

    NOTE: For custom CTF support, you need this server side package AND
    the client side one for the special levels.  In other words, to install
    this on a server you need ctfeps10.zip, 3wctfc30.zip, 3wctfc40.zip and
    ctfepc10.zip (server, Threewave 3.0, Threewave 4.0 and The CTF Expansion
    Project, respectively).  See step 5 for more information.

    Even though this is a Quickstart, I really, really recommend one reads
    this entire file.

2.  This file assumes you are running Linux.  Windows 95 or NT operators
    will have to replace the / characters with backslash (\) and stuff like
    xquake with q95.bat or winded.exe.  Major differences will be noted.

3.  Go into your central Quake directory and make a subdirectory called
    "ctf"

        cd quake
        mkdir ctf

4.  Unzip this file into that directory (pkunzip users, make sure you use -d).  
    You should have progs.dat, qwprogs.dat, ctfepsv.txt (this file), a 
    subdirectory called src that contains the Quake-C source for regular
    Quake, and a subdirectory called qwsrc that contains the QuakeWorld source.

    ==NOTE==: The .ent files are NOT included with this distrubition...and these
    files are needed if you wish to support id's original Quake levels in CTF.
    This file assumes you have already setup Threewave 4.0 on your server, and
    previously converted all of id's maps.  If you have not, download the proper
    files from http://threewave.planetquake.com/

    You'll also get a preconfigured autoexec.cfg and server.cfg (for Quake
    and QuakeWorld, respectively) with commonly used defaults for the server
    all ready to go.

5.  Download the client patch (ctfepc10.zip, plus 3wctfc30.zip and 3wctfc40.zip
    from Threeave) and unzip them into this directory as well.  It should add
    pak0.pak, pak1.pak, pak2.pak and readme.txt.  DO NOT OVERWRITE YOUR EXISTING
    pak0.pak AND pak1.pak FILE IN THE id1 DIRECTORY.

6. Load the autoexec.cfg file for regular Quake, or the server.cfg for
    QuakeWorld in the ctf directory into your favorite text
    editor (NOTE to Win95/NT users.  Notepad will barf on this file because it
    is in Unix text format.  Use the DOS based EDIT to work on it).  The
    default one looks like this:

        sys_ticrate 0.1
        deathmatch 1
        teamplay 6051?CTF4
        hostname "The CTF Expansion Project 1.0"
        timelimit 35
        fraglimit 150
        noexit 0
	samelevel 0
        pausable 0
        sv_aim 1
        map ctfstart
        temp1 24

    Detailed description follows:

        sys_ticrate 0.1
            This sets the update frequency of the server to remote players.
            The default is 0.05.  Modem players will be a lot happier if its
            set to 0.1.  Not needed for QuakeWorld

        teamplay 6051
            The teamplay variable has been overloaded a lot.  It's a set of
            bit flags that indicate the team configuration options.  See the
            section on the teamplay variable below.  Essentially, you figure
            out which options you want enabled, add them all together and set
            the teamplay variable to that value.

            A significant value added to this is 512: it controls whether the
            custom CTF stuff is enabled or not.  If it is not enabled, your
            clients do not have to download any files to play on the server.
            If it is, they have to download the special client pak from the
            ThreeWave home page at http://quake.threewave.com/
			512 is assumed in QuakeWorld (custom only).
			1024 (team selection) is not available in QuakeWorld.

	    ===NOTE=== 
	    A new change to the server must require admins to TURN RUNES ON
	    via a new bit described below with the others.  The default 
 	    autoexec.cfg has runes turned on, like Threewave, but please keep
	    this in mind when you are setting your preferable teamplay settings.

        hostname "The CTF Expansion Project 1.0"
            This is the hostname of your Quake server that people see when
            they query it.  I recommend you use something that identifies it
            as your server.  It is best to leave CTF in the title so people
            know your server is running CTF.

        timelimit 35
            If no one gets to the fraglimit in 35 minutes, change levels
            anyway.

        fraglimit 150
            Change levels when someone gets to 150 frags.

        noexit 0
	samelevel 0
            Exits on CTF really really, *didn't* make sense, except for that
	    there is now a *hidden* level in the Expansion Project, so to be
	    able to find it, players must *at least* have the ability to take
            that exit to the secret level.  This might cause problems in the
 	    old E?M? id levels, but by now, CTF players should know not to take
            the exits.  Please NOTE than in QuakeWorld, noexit is invalid, and so server
	    admins who wish to allow players to take the secret exit must have SAMELEVEL set
	    to 0.

        pausable 0
            Stop those annoying people from playing pause games.
        
        map ctfstart
		Start on the new ctfstart map.  This allows exit voting.

===Quake Only===

	  temp1 24
		This is the variable to enable quad and ring dropping (if you are
		killed when carrying them). You can set temp1 to 8 for just quad dropping,
		and 16 for just ring dropping, if you choose.
       
===QuakeWorld Only===

To enable your QuakeWorld CTF server for ring/quad dropping (in other words, if you
die with Quad or Ring of Invisibility, you will drop it) simply type

serverinfo dq 1
serverinfo dr 1

at the QWSV console.  DQ 1 enables the dropping of Quad, where DR 1 enables the
dropping of the ring of invis.

7.  You will probably want to modify the message of the day displayed upon
    connection, or enable the remote adminstration functions in admin.qc.  To
    do this, you must edit the files status.qc for the MOTD and admin.qc to
    enter an admin code.

    After you have made the changes, you must compile the Quake-C source.  qcc
    comes with the qutils package mentioned in 9.  Just run qcc in the
    quake/ctf/src directory.  Assuming a succesful compile, copy the new
    progs.dat to quake/ctf.

    For QuakeWorld, the src is in quake/ctf/qwsrc, copy the qwprogs.dat to
    quake/ctf

8. Run the server.  Linux:

        cd quake
        ./xquake -dedicated 16 -game ctf

    Windows 95/NT:

        cd \quake
        q95 -dedicated 16 -game ctf

            - or -

        cd \quake
        winquake -dedicated 16 -game ctf

	QuakeWorld:

		qwsv +gamedir ctf

==NOTE==
	Please note, the subdir must be called 'ctf'.  The new qwsv automatically
	transmits the gamedir to the clients.  Since the clients are all installed
	as 'ctf', you must also use this directory on the server.


9. Enjoy!

[What's new section moved near the end]

------------------------------------------------------------------------------

Description of the Modification
-------------------------------

Teamplay (much of this documentation comes from John Spickes Complete
    Enhanced Teamplay Patches).
        
        The Complete Enhanced Teamplay is a QuakeC mod which is intended
        to provide a great deal of flexibility in teamplay settings.  I've
        retained all of the original functionality of Quake v1.01 and my
        previous Enhanced Teamplay, and added many more features.  My aim
        is to have lots of useful teamplay options which the server can
        select at will, while minimizing my modification to the original
        QuakeC code.  The options included in this release are:

        * Players' health can be protected from friendly fire damage
        * Players' armor can be protected from friendly fire damage
        * Damage inflicted to teammates can be mirrored on the attacker
        * Frags can be deducted for the killing of teammates
        * Players can be killed for killing their teammates
        * Players can be required to use only colors specified by the server
        * Players can be prohibited from changing teams
        * Players can be allowed to drop ammo and weapons

        All these options can be turned on and off individually.

        Teamplay feature use:

        A lot of options can be configured with this mod.  The majority of
        these options are configurable using the teamplay variable.
        This mod uses the teamplay variable as a bitfield, with each bit
        associated with a different teamplay option.  The bits are as follows:

        1       Health Protect
                Players receive no health damage from teammates' attacks.
        2       Armor Protect
                Players receive no armor damage from teammates' attacks.
        4       Damage to Attacker
                A player who attacks his teammate will receive the same
                damage the teammate would have received, had he not been
                protected.
        8       Frag Penalty
                Any player who kills his teammate will be penalized frags.
                The number of frags to penalize is adjustable by a simple
                edit in the teamplay.qc file.
        16      Death Penalty
                Any player who kills his teammate will burst apart in a
                bloody mess.
        32      Team Color Lock
                Players will only be allowed to be certain colors.  Team
                colors can be specified for up to four teams in the
                teamplay.qc file.  Players who have illegal colors
                when they enter will be put into the team with the fewest
                members.  Any player who changes team (pants color) will
                be fragged and their frag count is reset to zero.
        64      Static Teams
                Players will not be allowed to change teams.  
        128     Drop Items
                Players will be allowed to drop ammo and weapons.  
                IMPULSE 20 will drop a backpack and IMPULSE 21 will 
                drop the current weapon.  You can't drop the axe or
                single-shotgun.
        256     Capture the Flag
                This enables Capture the Flag support.
        512     Custom Capture the Flag
                The enables the use of new sounds, models, maps and skins for
                Capture the Flag.  If you enable this, your clients must
                download the CTF custom pak file and install it.
				***NOTE:  Not in QW version, assumes custom
	1024    Enable the ability for players to select a team
NEW!    4096    Enables Rune spawning of the server.  If you do not include this
		bit, YOUR CTF SERVER WILL NOT SUPPORT THE FOUR CTF RUNES.  It is
		suggested you leave this bit on.
        
        Obviously, not all these options make sense together.  teamplay 9
        doesn't really make sense, because you couldn't ever kill a
        teammate, and thus you could never incur the one frag penalty.
        To select multiple options, add the numbers of the options together.

        Examples:
        teamplay 995    Static Teams, Color Lock, Health Protect, Armour
                Protect, Capture the Flag, CUSTOM Capture the Flag, Drop Items
		    No runes
        teamplay 5027    Color Lock, Health Protect, Armour
                Protect, Capture the Flag, CUSTOM Capture the Flag, Drop Items
		    runes enabled
        teamplay 6115   Static Teams, Color Lock, Health Protect, Armour
                Protect, Capture the Flag, CUSTOM Capture the Flag, 
		    runes enabled, drop Items, Player can choose teams

        Besides the teamplay setting, there are some other options that can
        be modified by editing the source.  These options are constants at
        the beginning of teamplay.qc and are marked so you can find them.
        One option specifies the default frag penalty.  This is the number
        of frags that will be deducted by the bit-field Frag Penalty setting.

        There are four constants in teamplay.qc which allow configuration of
        the teamlock settings.  TEAM_COLOR1 thru TEAM_COLOR4 have values
        indicating a legal team color, or -1.  A value of -1 indicates that
        this team is not used.  Thus, the number of teams is adjustable
        from 1 to 4.

        Example:

        float   TEAM_COLOR1 =   4;
        float   TEAM_COLOR2 =   13;
        float   TEAM_COLOR3 =   -1;
        float   TEAM_COLOR4 =   -1;

        This setting indicates that there should be two teams.  Team 1's
        color is red and team 2's color is blue.  Teams 3 & 4 are not used
        and thus have a value of -1.

        NOTE: If you enable Capture the Flag, you MUST HAVE ONLY TWO
        TEAMS defined.  TEAM_COLOR3 and TEAM_COLOR4 MUST be set to
        -1.  If you don't, results are unpredictable.

        If you change any of the constant values, you must recompile before
        your changes will take effect.

                      THE COMPLETE ENHANCED TEAMPLAY

                              Programming by
                          John Spickes aka Guru
                          jspickes@eng.umd.edu                               
        [Please direct any comments about this package to *me*, Zoid at
        zoid@mindlink.net.  Don't bug John about my mods].

Capture the Flag

   Capture the flag offers an exciting variation on team play.  It gives
   meaning to base defense along with offensive positioning and strikes.
   The implementation is an extension of John Spickes JTEAM patches.

   The basic premise is: attack the enemy base, grab their flag than
   take it back to your base.  In the variation I've written into Quake,
   you must touch your base flag when carrying the enemy flag in order
   to score.

   Map modifications have to be done in order to enable Capture the Flag
   play on a map.  See the accompaning file capture.txt for information
   on how to modify maps for flag support.
   
   Rules:

   - Two sections of the map are designated as base encampments.  
   - When you join the game (or enter the level) you are assigned to a
     team (Using John Spickes JTEAM patches, with many modifications).
     Changing teams may or may not be allowed depending on the setting
     of the teamplay variable.  You are spawned at the base (this is were 
     my map mods come in).  If you die, you are not spawned at the base, 
     but at one of the deathmatch start spots.
      This way, you don't kill a guy trying to get the flag at the base and he
     comes back to life immediately there.
   - The flags are based on the key models.  If you pick up the enemy flag,
     you must touch your flag in order to win.  Note that if you get
     back to the base, your flag might not be there if the other team
     has it!  Get the rest of your team to go get their flag back!  The
     player who touches his base flag when carrying the other team's gets
     20 frags, and everyone on his team gets 10 frags.  
     Also, when you get a flag, you have that nice glow around you (such as 
     when you get the quad damage.) If you kill an opposing team player who 
     has your flag, he drops it.  If you touch your flag, it will teleport 
     back to your base.
   - Since everyone starts at their base after level change, or joining the
     game, the team will have to work out who is going to go and try to get
     the enemy flag (offensive strike), and who will stay to defend.  
     Yes, this is camping, but its camping with a cause!  Remember, you can 
     communicate only with teammates by using messagemode2.  Put this in your
     id1\autoexec.cfg file
        bind r "messagemode2"
     When you hit "r", you will get the usually talk prompt, except your 
     message will only go to your teammates.

Runes
   The rune game (several functions near the end of items.qc).  If the server
   is configured to support them, runes are spawned randomly, one of each with
   an unique power.  Currently there are four:
     - Earth (resistance, half damage)
     - Black (strength, double damage)
     - Hell (haste, double fire rate) 
     - Elder (regeneration)
   When someone dies, the rune pops out and can be picked up.  You can only 
   carry one rune at a time.

   HANZO:
   A subtle reminder once again, that runes are no longer forced by the server
   automatically (as in Threewave).  To enable runes, you must have the teamplay
   bit 4096 on.

MOTD
   MOTD (Message of the day) function added.  To change it edit status.qc
   and edit the text near the top.  There are different messages for
   regular deathmatch, team mode and capture the flag mode.

Suicide protection.  
   A person can suicide four times, then can't suicide anymore.
   Resets after level change (there are legitmate reasons to suicide,
   but rarely more than four times in a level).

Telefrag Delay
   When telefragged, the person who was killed stays dead for two to
   five seconds.  This is needed to get rid of the "frag snowball" effect
   one sees at the beginning of a new level, when 16 players try to
   fit into five deathmatch spots.  The telefrags would snowball and
   eventually crash the server.  With this delay, its eliminated.

Server Logging
   Server logging.  This is really useful in for a Linux server, since
   I save the log files.  Reports on why a client connects, how they died,
   etc.  This is still being fine tuned.

   Windows 95/NT server operators:  use the -condebug Quake command line
   paramter to dump the log to a file.
 
Grappling Hook
   New weapon added.  "Mike" <amichael@asu.alasu.edu> Morning Star, renamed
   to grappling hook.  Changed to use existing models (vore ball for hook,
   spikes for the chain links).  This weapon lets you hook the ceiling and
   get pulled toward it (think of Batman's grapple in the movies).  You can
   also hang from the ceiling and snipe at people.  Don't worry, its doesn't
   make camping any more effective, as a rocket at the ceiling usually
   deals with anyone hanging around.  :)
   IMPULSE 22 or select axe twice.

Redundant Message Removal
   Removed redundant messages such as "You got the shells" or "You got the
   armor."  This was just cluttering up the message stream and isn't needed
   since pickups are already signified by a flash and an audio cue.

Copyright and Distribution Permissions
--------------------------------------

Authors MAY use these modifications as a basis for other
publically available work.
^^^^^^^^^^

//ZOID:  Use this in a commercial endevour and become a friend of Satan.  Talk
to me first, ok?

//HANZO: That goes double for me.

DISCLAIMER:  Shawn Holmes is not responsible for any damage this may cause,
either to yourself or to your computer, so use at your own risk.

I will not be responsible for dizziness, fatigue, shortness of breath,
blatant CTF addicition, or any other after effect this insanely cool mod
may cause.

Do not taunt this mod.

This mod has been known to accelerate to high speeds.

Worship this mod and be one with CTF.

//ZOID: If you put this on a CD, you owe me three free copies of the CD.
You also owe a free copy of the CD to all the contributed authors listed at
the top of the document.  You pay postage, too.  Don't like this?  Don't put
it on a CD!

If you take my work and rip my name off, you will burn in hell.

//HANZO: Same

Availability
------------

This modification is available from the following places:

WWW   : http://www.frag.com/ctf/

=============================================================================================
			        The CTF Expansion Project
				is dedicated to the memory of
				     RatBoy and MichaelJ
			   Two CTF Fans who will be sadly missed
=============================================================================================
