				- Expert Quake Version 1.1 -

-----------------
Expert Quake Info
-----------------

	Expert Quake is a QW mod originally based on JTEAM, or "The Complete Enhanced
Teamplay" by John Spickes.  Expert Quake supports deathmatch, teamplay and CTF modes,
with a massive list of features that can be enabled or disabled in any mode where it
makes sense to do so.  For instance, both the grappling hook and the alternate
powerup set are available in deathmatch, teamplay and CTF.  Expert Quake is so
configurable that it can be reverted to normal Quake behavior in all but a few
trivial ways.

	The goal of the Expert Quake patch is to turn Quake into the skillful combat game
it can be, rather than the item fetching game it is.  To that end, options are provided
that balance many previously unbalanced items in the game.  In Expert Quake, combatants
are almost always even, and combat skill and teamwork are the only things that can make
the difference in the outcome of combat. 

	The Expert Quake web page :

http://www.myrkul.org/expert/

	Specifically the design document for Expert Quake is at :

http://www.myrkul.org/qgame.html

The Expert Team is:
-------------------
Charles "Myrkul" Kendrick (myrkul@myrkul.org)
DaScott (dascott@infi.net)
Rich "Publius" Tollerton (rtollert@tranquility.net)
Nelson "TheGriffin" Hicks (thegriffin@usa.net)

Webmasters:
JEzTER
Phlame

Thanks go to:
-------------
John "Guru" Spickes of course, for writing JTEAM and writing it well

Wedge and Choryoth for the Throwing Axe model and observed behavior
(our code for it is original).

Mr. Peach, Spacetec Quake server admin, who came up with the idea behind
the Expert Hook and implemented it on his server.

Unknown Soldier, for the *great* audio files used in Team Radio.

All contributors to ThreeWave CTF for some of the CTF code, the custom
models and sounds for the hook and flags, and the custom CTF levels.

id software for driving the industry toward configurable game engines.

-----------------
Key Feature List:
-----------------
These are the features that players and server admins rave about most, and
this is still only a small subset of all the features of Expert.

*** Every feature of Expert Quake can be enabled or disabled in any play
mode in which it makes sense.  It is possible to revert to the behavior
of the standard progs in all but a few trivial ways.

*** Expert Hook: fully optional in any play mode, fully independent of
weapons, will not hook players, higher flight speed.

*** Threewave style CTF, no Runes, hook optional (again), flag sound instead
of glow for better performance.

*** Team Audio: players can play sound files using impulses to warn teammates
about flag status, coordinate for attacks or for holding key positions.

*** Admin-configurable level sets without recompiles (just edit a .cfg file)

*** Fully configurable, 4 team teamplay ala JTEAM.

*** Alternate weapons, again optional.  Some originals and some with interesting
usage.  Alternate weapons can also be set as the only weapons available.

-------------------------------
Deathmatch/Basic Teamplay Setup
-------------------------------

	Expert Quake is a QuakeWorld server mod.  You need qwsv.exe version 1.64 to run an
Expert Quake server (1.55 has a serverinfo-related bug), which can be gotten from the files
section of just about any major quake web page, for instance, http://www.quakeworld.net/

	Unzip the contents of the zip file into your Quake directory, or if you have
already unzipped the file, move the resulting folder called "expert" into your Quake
directory.

	In the folder "expert", there is a batch file called "expert.bat".  Move this file
into your main quake directory (ie where quake.exe and qwsv.exe are) and you should be
able to start an Expert server.  This batch file will start up a server using Expert
Quake in teamplay mode with various options set.  There are also a multitude of
.cfg files in the "expert" folder, which can be used to start up servers with various
options set.  These config files are documented below, as are all the options you
could possibly set if you made your own config file.

------------------------
Additional Setup for CTF
------------------------

	The following instructions assume your Quake directory is c:\quake

	If you are running an Expert CTF server, you will need the Threewave .pak files,
which contain the Threewave custom maps, models and sounds.  You can download them from
ftp://ftp.cdrom.com/pub/quake/planetquake/threewave/ctf/client/3wctfc.zip
Take the files "pak0.pak" and "pak1.pak" in this zip file and put them into 
c:\quake\expert.

	You will also need to create custom versions of the original id maps that have the
CTF entities (flags, base caches, etc).  To do this, first unzip winpak12.zip in
c:\quake\expert\winpak.  Open c:\quake\id1\pak1.pak and c:\quake\id1\pak0.pak in winpak,
and extract all the .bsp files for e*m* and dm* (eg e1m1.bsp, dm3.bsp, ..).  Move the
resulting .bsp files from c:\quake\id1\maps\ to c:\quake\expert\maps\

	Then, in c:\quake\expert\maps\, run dobsp.bat.  You should see output showing 
each .bsp file being altered using each of the .ent files.  Once this is done, if you
move c:\quake\expert\expctf.bat into c:\quake, you should be able to use expctf.bat to
run an Expert ctf server.

	Finally, please drop Expert Quake a note about your server.  We can inform you
of newer versions of the server and advertise your server on the Expert web pages.

--------------
Expert Configs
--------------

	The following .cfg files are provided with Expert Quake.  To use any of these,
either replace "ext.cfg" in the provided "expert.bat" batch file to the config you
want to use, or whip up your own batch file.

Deathmatch Configs:

exdm.cfg----------------10 player enhanced deathmatch
	
	All deathmatch behavior set: item behavior similar to "deathmatch 3" mode from
	id, all balancing options and tweaks are active, Expert Hook enabled.

	This is the recommended Deathmatch mode.

exdmh.cfg---------------10 player enhanced deathmatch, no Expert Hook

	As exdm.cfg, Expert Hook disabled.

Basic Teamplay Configs:

ext.cfg-----------------9 player, 3 team enforced teamplay

	As exdm.cfg, but teamplay enabled, with 3 teams of 3 players.  Players can switch
	teams but only to a team with less players.

	This is the recommended teamplay mode.  The included batch file uses this mode.

exth.cfg----------------9 player, 3 team enforced teamplay, no Expert Hook

	As ext.cfg, Expert Hook disabled.

CTF Configs:

exctf.cfg---------------14 player CTF

	Balance options, CTF level set, Expert scoring, hook enabled, team audio enabled.

exctfh.cfg--------------14 player CTF, no hook

	As exctf.cfg, no hook (which causes a different level set).


It's easy to whip up your own configs for Expert Quake.  The following section describes
the options that are available, but to give a hint, you can enable the Expert Hook,
perhaps a few other features that tickle your fancy, and leave everything else untouched.

If you are a programmer, or if you just know enough to twiddle some constants and recompile,
be sure to check the last section.  Expert Quake is well written and well commented code that
is very easy to expand upon or modify.  Write something cool.. we'd love to integrate your
code into the next release.

--------------------
Custom Configuration
--------------------

Expert Quake is a highly configurable mod, with most features fully customizable from the
console.  Two internal variables (deathmatch and teamplay) and serverinfo variables called
"ctf" and "loadmod" are used to turn various options on and off.  All these variables are
bitfields, with each bit toggling an associated feature.

------------------------------
Deathmatch Feature Description
------------------------------

Deathmatch features enhance combat by balancing the game, and are meant to be used in both
Deathmatch and Teamplay modes. 

The bits controlling deathmatch features are as follows:

	1	Items Respawn
		When turned on, health and ammo will respawn after being collected.
		When off, health and ammo can be collected only once.
	2	Weapons Stay (persistent weapons)
		When on, weapons remain in place after being collected, and cannot
		be picked up multiple times to stockpile ammo.  When off, weapons
		respawn similarly to any other item, and can be grabbed multiple times.
	4	Balanced Weapons
		All weapons are "equalized" so that every weapon is of roughly equal
		power, although each weapon is more or less effective in different combat
		circumstances.  This adds more variety to weapon use, reduces weapon
		camping, and helps make skill determine combat outcome.  Other assorted
		effects, see description below for more details.
	8	Balanced Items
		The amount of armor given for each type is inversely proportional to
		the damage absorption.  For instance, red armor has the highest absorption,
		and so the least amount of armor.  Any armor remaining on dead players 
		ends up in their backpacks, and supershotguns are given on spawn.  See
		description below for more details.
	16	Expert Hook
		Players are given a hook on spawn, which can be used by binding a
		key to the alias "+hook".  Holding the button down extends the hook,
		while releasing the button releases the hook.  No weapon switching is
		required, the Expert Hook fires with any weapon out and that weapon can 
		be fired simultaneously. The hook bounces off other players, and can only
		hold to a surface for a little over 2 seconds before retracting.  Can 
		be used simultaneously with other weapons.  If a player attempts to 
		activate the hook through one of the methods used to activate the 
		old-style hook, such as by sending impulse 22 or by sending impulse 1
		with the axe selected, a message will be printed informing the player
		how to use the new hook.
	32	Randomize Powerups
		Powerups, specifically the Quad Damage, Pentagram of Protection, and Ring
		of Invisibility, will randomly respawn as a different powerup. The 
		probability of the Quad damage spawning is 40%, the Ring is 40%, and the
		Pentagram is 20%. This is for preventing optimal paths through levels,
		timed to pick up powerups.
	64	Alternate Powerups
		An alternate set of powerups will be used.  See below.
	128	Expert Level Sets
		A loop of levels hand-selected from the four original Quake episodes and
		the DM levels will run.  The list of maps can be changed by editing the
		.cfg file (yes, CONFIG file) expcycle.cfg.  _No recompile_ is necessary.
		The cycle used for DM is "DMCYCLE".
	256	Frag Minimum
		Players who attempt to exit the level with less than a
		certain number of frags are killed.
	512	Armor Color
		Shirt colors will be forced to match the type of armor a player is
		wearing.
	1024	Swinging Hook
		Changes the grappling hook into a swinging hook.  This version of the
		swinging hook uses no extra impulses, and a simple physical model of
		acceleration toward the hook's anchor point.
	2048	Weapon Modes
		Alternate modes will be available for some weapons by hitting '9' (or
		impulse 210).  All weapons are balanced by Expert against the original
		set.  See "Weapon Modes" for further documenation.  See also Alternates
		Only (32768).
	4096	Performance
		Changes to improve the rendering performance on clients (not network
		performance).  All flickering lights in a level are changed to 
		non-flickering lights of medium brightness, and the nailguns and the
		lightning gun do not have muzzle flashs.  This reduces surface redraw
		for much better framerate, and also reduces network traffic.
	8192	Player Forwarding
		When only one player slot is left, server will forward players to a 
		server at the IP specified in serverinfo under the key "forwardTo"
		(caps count).  Typical usage is to set "maxclients" one greater then
		the number of players you actually want in the game.  Any player
		attempting to fill the last slot will be forwarded to another server,
		perhaps another server running Expert at a higher port number.
	16384	Realistic Physics
		More realistic physics are used, such as adding a player's velocity to
		the velocity of fired projectiles.  This has fairly drastic effects
		that may be difficult to get used to.  Recommended only when players are
		very aware that the physics have been are altered, such as in a LAN game.
	32768	Alternates Only
		Combined with Weapon Modes (2048), this means only the alternate modes
		of weapons with be used, that is, among other weapon changes, the Rocket
		Launcher becomes the Mortar Launcher and the normal mode is no longer
		available.

----------------------------
Teamplay Feature Description
----------------------------

Teamplay features control team setup and enforcement, and how teammates
can interact with each other.

The bits controlling teamplay features 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	Fair Teams
		Players are allowed to change to a team with fewer members
		than their current one. "Static Teams" will override this
		setting.
	256	Shirt Enforcement
		Player's shirt color must match pant color.
	512	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.
	1024	Boot Negs
		Boots players who get too many negative frags.  Useful
		on servers that allow friendly fire with negative frags
		for killing teammates, to prevent server abuse.
	2048	Friendly Fire Notification
		Players who shoot a teammate repeatedly will be informed
		that they are shooting a teammate.
	4096	Team Score Printing
		The Team score, as the total number of frags for all
		players on each team, will be printed periodically.  This
		option is only valid with "Team Color Lock".
	8192	Team Audio Enabled
		Team Audio is a system that allows players to send audio
		messages to their teammates using impulses.  See the full
		documentation under "Team Audio". 

-------------------------
CTF Feature Description
-------------------------

The CTF bits are as follows:

	1	Capture the Flag on
		Setting this bit turns on Capture the Flag.  Requires the pak files from
		Threewave CTF for the flag models, sound effects, and the CTF3 + CTF4 maps
		(if you intend to use them).  These can be found at 
		http://threewave.planetquake.com/
		in the Files section.

---------------------------
LoadMod Feature Description
---------------------------

LoadMod can be used to modify the items that appear on a level, including adding more items
to the level.  LoadMod options are set by defining a serverinfo variable "loadmod".  For
instance, placing the following in your server's .cfg file:

serverinfo loadmod 17

.. will cause loadmod to be active, enabling the options listed below by 1 and 16.

The loadmod bits are as follows:

	1	Quota Add
		Health and Armor are added dynamically to a level to meet the
		demand of the number of players allowed in the game.  They will be spawned
		on top of other items as far from items of the same type as possible.
	2	Quota Remove [NOT CURRENTLY IMPLEMENTED]
		Health and Armor are removed dynamically from a level where there
		are surpluses.  They will be removed starting with those as close to other
		items of the same type as possible.  This can have unexpected behavior on
		large maps with few players.  
	4	Redo Items [NOT CURRENTLY IMPLEMENTED]
		Health, Ammo, and Armor are completely replaced to redistribute these
		powerups amongst the map.
	8	Remove Pentagram
		Removes any "Pentagram of Protection" artifacts from the current map.
	16	Remove Ring
		Removes any "Ring of Invisibility" artifacts from the current map.
		(Useful for team games)
	32	Remove Quad
		Removes any "Quad Damage" artifacts from the current map.
	64	Remove Base Spawns
		Remove any deathmatch spawn points within a certain radius of a flag.
		Only valid if CTF is enabled.

--------------------------
More on Balanced Features
--------------------------

Balanced weapons alters both the damage and armor-puncturing qualities of each
weapon to try and even up the gaps in usefulness between each.

	- Modified weapon damages (especially explosives and axe)
	- Armor penetration for nails, buckshot and lightning
	- 50 Green armor given out on spawn (respawning players aren't as easy a target)
	- Super NailGun takes one nail per shot
	- Normal NailGun nails have higher airspeed
	- Less resistance to splash damage from one's own explosions
	- Less kickback on heavy weapons fire, but still full rocket jump height
	- Reduced lightning gun discharge damage

Balanced items alters items other than weapons (such as armor) to achieve balance.

	- Armors with higher absorption have less amount:
		o Red armor 60% absorption, 100 amount
		o Yellow armor 45% absorption, 130 amount
		o Green armor 30% absorption, 190 amount
	- Remaining armor is placed in backpacks on death
	- Health gained from the 100 Health rots away at double the rate
	- Players are given the Super Shotgun on spawn in addition to the normal shotgun
	- Quad and Pentagram make sound periodically so they can be recognized

Alternate Powerups are:

	o Quad becomes the Glyph of the Lich: you take back as health 1/2 of 
	the health damage you do to other players.
	o Pentagram becomes the Fiend Glide: ability to jump like a fiend
	o Ring becomes the Ring of Will: weapon hits from enemies don't push you
					around, weapon hits on enemies push them farther
	
None of the alternate powerups cause the user to glow.  The alternate powerups
are less inherently powerful in order to prevent them becoming focal points in 
a deathmatch, and less dangerous to other players so they don't require
the warning glow.

---------------------
More on Level Cycling
---------------------

The Expert Quake team invented a system that allows server admins to change the
level cycle that a server goes through without modifying or recompiling .qc code.

To change the map list, you can either edit "expcycle.cfg" directly, or use the
included tool, BuildMapList to generate "expcycle.cfg" from expcycle.txt.  See
"bml.txt" for instructions on using BuildMapList.

Technical info: making modifications directly to expcycle.cfg
-------------------------------------------------------------

When the Expert mod is at the point of changing levels, instead of changing the
level through the normal .qc mechanism, a command is sent to the server console
to change the level.

This command is actually the name of an alias, say "DMCYCLE".  The job of the
alias is to change the level, then redefine the alias so that next time the
alias is executed, it changes to the next level in the cycle.  Here's an example
of an alias that accomplishes a four level cycle.

alias DM.e1m1 "map e1m1; alias DMCYCLE DM.dm2"
alias DM.dm3 "map dm2; alias DMCYCLE DM.e1m2"
alias DM.e1m2 "map e1m2; alias DMCYCLE DM.e3m6"
alias DM.e3m6 "map e3m6; alias DMCYCLE DM.e1m1"

alias DMCYCLE DM.e1m1

Expert Quake 1.1 uses 5 map cycles.  The definitions of these cycles are in
expcycle.cfg.  The server automatically switches between cycles according to
what mode it's in.

DMCYCLE (deathmatch and teamplay),
CHSCYCLE (CTF, <20 players, with hook)
CHLCYCLE (CTF, >20 players, with hook)
CNSCYCLE (CTF, <20 players, without hook)
CNLCYCLE (CTF, >20 players, without hook)

This mechanism also makes it possible to arbitrarily change the server
configuration on a per level basis.  For example:

alias DM.e1m1 "map e1m1; alias DMCYCLE DM.dm2"
alias DM.dm3 "deathmatch 1; map dm2; alias DMCYCLE DM.e1m2"
alias DM.e1m2 "deathmatch 3; map e1m2; alias DMCYCLE DM.e3m6"
alias DM.e3m6 "map e3m6; alias DMCYCLE DM.e1m1"

alias DMCYCLE DM.e1m1

This alias causes e1m1, e1m2 and e3m6 to be played in "deathmatch 3" mode, while
dm2 specifically will be played in "deathmatch 1" mode.  Using Expert bitvector
configuration, it's also possible to change settings such as whether the hook is
enabled, or whether alternate weapon modes are available.

-----------
More on CTF
-----------

Expert CTF behaves similarly to Threewave CTF for most CTF basics, with some
exceptions.

The status bar is altered to include information about whose team you're on,
what the status of each team's flag is, and what each team's score is.

The Expert Hook behaves differently from the grappling hook used in Threewave
(and is optional).

The level sets used for Expert CTF are hand picked from all id and Threewave
levels.  There are 4 different level sets, chosen according to whether or not
the hook is enabled and whether the maximum number of players is greater than
20.  You can alter the level set by editing "expcycle.cfg" (again, without
recompiling).

Instead of glowing, the flags make a 'flapping' sound.  This is because 
1) Having the flag glow causes severe framerate problems for some people.
2) Having the flag make noise is less surreal.
3) There is no longer an ambiguity with powerup glows.

Players do not get free points for teammate's captures.  Instead, through the
Expert scoring system's Assists and Bonuses, players will get points reflecting
the extent to which a player has benefitted his team (rather than presence on the
server).  The best individual players on the server should have the highest score,
regardless of team.  Team score is separate, appears in the status bar, and reflects
the number of captures each team has made.

-----------------
More on TeamAudio
-----------------

There are two kinds of TeamAudio messages: local and global.  Global messages go to
a player's entire team.  Local messages go to teammates within a certain radius (without
decreasing volume).  Local messages can be enabled in both basic teamplay and CTF, and
Global messages are only available in CTF.

When TeamAudio is enabled, typing "speech" at the console will dump text explaining
what TeamAudio is, what impulses are attached to which messages, and what options are
available.  Typing "usage" at the console explains what each of the TeamAudio messages
is meant for.  impulse 160 will bind the to the F5-F12 keys to the TeamAudio impulses.

In addition, impulses 180 and 181 bring up 'quick-help' charts of messages.  Impulse 180
centerprints a listing of the global Team-Audio messages and their keys, and Impulse 181
centerprints a listing of the local Team-Audio messages and their keys.

Global Audio Messages

	"Is our base secure?"		- F5 -	IMPULSE 161
		Used by a Flag Carrier to ask the base if it's safe for the carrier to be there.
	"Roger, base is clear."		- F6 -	IMPULSE 162
		Reply to tell the Flag Carrier that the base is safe, for the moment.
	"The base is under attack!"	- F7 -	IMPULSE 163
		Reply to tell the Flag Carrier that the base isn't safe yet.
	"Our base has been overrun!"	- F8 -	IMPULSE 164
		Used to warn everyone that the base's defense has been beaten, and needs to be
		secured again as soon as possible.

Local Audio Messages

	"Link up for an assault,	- F9 -	IMPULSE 165
	 wait for my signal."
		Use this to tell everyone nearby to hold up and make an organized	attempt
		at an attack.  Good for assaults on well-defended bases or camper	entrenchments.
	"Attack now!"			- F10 -	IMPULSE 166
		Tells your assembled group to begin the attack.  
	"Enemy units incoming"		- F11 -	IMPULSE 167
		A general purpose 'heads-up' to everyone.
	"Cover me!"				- F12 -	IMPULSE 168
		This can be used in CTF by a flag carrier, or by an attacker needing cover.

------------------
More on Status Bar
------------------

The status bar is enabled by default in both CTF and basic teamplay modes.  In CTF mode,
the status bar displays the team score in captures and the flag status for both teams, 
and the name of the player you are looking at (this functionality is called "ident").
In teamplay or deathmatch, the status bar just displays the name of the player you are
looking at.

The server stores each player's status bar and ident configuration in infokey variables called
"statusbar" and "ident", which players can set directly.  These infokeys can even be set before
joining the server.

Legal values for the 'statusbar' infokey variable are:
0	- Status Bar off
1	- 320x200
2	- 320x240
3	- 400x300
4	- 640x350
5	- 512x384
6	- 640x400
7	- 640x480
8	- 800x600
9	- 1024x768

If your resolution doesn't match one of these, use the option with the next-lowest vertical 
resolution.  In addition, you can set 'statusbar' to the vertical resolution.  For example, 
instead of setting statusbar to 4, you could set statusbar to 350.

You can also set your resolution by using impulse 71 through 79, or use impulse 70 to turn
it off.

Player identify is a component of the status bar, if you turn off the status bar, player
identify is also turned off.  If the status bar is enabled, a value of 1 turns player 
identify on, and 0 turns player identify off.

Player identify prints the name of the player closest to directly in front of you.  If no
player is close to in front of you, no player name is displayed.  Ident can accurately
discern which player you are looking at even if two players are directly adjacent, but 
ident is refreshed only as often as the statusbar, that is, every 1.5 seconds.

You can turn ident on and off by changing the ident infokey variable, or through impulse 80.

--------------------
More on Weapon Modes
--------------------

There are no alternate modes for the nailgun or for the lightning gun.

Throwing Axe, alternate for Axe
	Medium flight speed
	75 damage on direct impact, 35 damage on bounce
	0.7 second refire.
	Players spawn with 4 axes, can pick up axes they throw and can get axes
	from other player's backpacks.  Up to 15 axes can be carried

Pulse Rifle, alternate for Shotgun
	Fast flight speed
	50 damage on direct impact
	0.5 second refire
	30% armor penetration
	Requires no ammo.
	
Pulse Spread, alternate for Super Shotgun
	Medium flight speed
	25 damage per bolt, 3 parallel bolts
	0.7 second refire
	30% armor penetration
	Uses one cell.

Fleshripper, alternate for Super Nailgun
	High flight speed
	50 damage per gib, 6 to self
	0.3 second refire

Squirrel Bombs, alternate for Grenade Launcher
	Like a grenade, except regains it's original velocity after a bounce.
	100 splash damage
	0.8 second refire

Mortar Launcher, alternate for Rocket Launcher
	Ballistic flight path.
	80 radius, less dropoff with distance from explosion, smaller max radius.
	0.7 second refire

-----------------
Selecting Options
-----------------

To select multiple options, add the numbers of the options together.

Examples:
teamplay 96		Team Color Lock, Static Teams
			This results in players being automatically assigned to
			teams and being prevented from changing to other teams.
teamplay 3		Health Protect, Armor Protect
			You can't hurt your teammates' health OR armor.
teamplay 28		Mirror Damage, Frag Penalty, Death Penalty
			When you shoot your teammates, you take damage and so
			do they.  If you kill a teammate, you'll take a frag
			penalty and you'll be killed.
teamplay 120	Static Teams, Color Lock, Frag Penalty, Death Penalty

----------------
Conflicting Bits
----------------

Obviously, not all of the available options make sense together.  Here 
is a listing of all conflicts between features, or features that nearly
cancel each other's effect.  Typically you don't want to use these together:

Shirt Enforcement (teamplay) and Armor Color (deathmatch)
	Causes the shirt color to shift constantly between your armor color and
	your team color.
Frag Penalty (teamplay) and Health Protect (teamplay)
Death Penalty (teamplay) and Health Protect (teamplay)
	Other than telefrags, you won't be able to kill your teammate due to
	Health Protect.  However, you probably _do_ want to set Frag Penalty
	with Health Protect, so that teammates can't get frags for telefragging
	each other.
Static Teams (teamplay) and Team Color Lock **OFF** (teamplay)
	Players will end up stuck with whatever team they happened to be when
	they joined the server.
Static Teams (teamplay) and Fair Teams (teamplay)
	Static teams overrides Fair Teams, so you won't be able to change teams.
	Period.
Remove Powerup (loadmod) and Randomize Powerups (deathmatch)
	You can do some interesting things with combinations of "Remove Quad" (loadmod), 
	"Remove Ring" (loadmod), "Remove Pentagrams" (loadmod), and "Randomize
	Powerups" (deathmatch).  Essentially, any powerups you opt to remove will be
	gone, but the remaining powerups (if any) can still respawn as any other powerup,
	INCLUDING the ones you removed.  Just be aware of this unusual condition.

------
Quirks
------

In the unmodified version of the QuakeWorld source, ammo respawns at different
rates in "deathmatch 1" mode vs "deathmatch 3" mode.  In this mod, ammo respawns
at the faster rate whenever the Respawn Items bit is set.

Take a close look at the "conflicting bits" listing above and be sure you
know what you are doing before trying to use these features together.

In order to change teams, players must attempt to change color.
Attempting to change team name (by typing "team blah") will not
have an effect, nor will attempting to change skin.

--------
MOTD Use
--------

Most of the MOTD functionality resides in motd.qc.  If you want 
to change your MOTD, you can modify motd.qc.  It's a simple matter
of changing the print statements to say what you want.  

The MOTD is printed for players when they first join the server and 
after every level change.

------------
Future Plans
------------

enhanced Team Audio - more sounds with stronger meaning in the game.
"Bolo" game mode.
"Tag" game mode.
Any good ideas we get requests for - we have implemented people's requests
in the past and expect to do so again.

---------------
For Programmers
---------------

Expert Quake adds several source files to the standard distribution:

teamplay.qc
	All the team setup and enforcement code.

dm.qc
	All the deathmatch enhancement code.

loadmod.qc
	All the code for LoadMod, which can modify the list of items in a level at load
	time, fulfilling quotas for types of items, disabling certain items, or anything
	else you can think to use the code for.

grapple.qc
	Grappling hook functions.

ctf.qc
	CTF control code.

status.qc
	Status bar for CTF.

ident.qc
	Player identify function, part of the status bar for CTF.

weapons2.qc
	Code for alternate weapons.

Wherever possible, we have tried to minimize the changes to the original codebase
(thank god for John Spickes starting this trend with JTEAM).  For instance, LoadMod
is only dependant upon a single small change in world.qc, so you could easily add it
to another mod (if you do so please let us know).  Wherever significant behavior
needed to be added, there are calls out to functions defined in one of the added
source files.

When searching for changes, use these keys:

	Expert
		Should hit all Expert Quake related code in standard distribution files.
	DM_
		Anything related to the "deathmatch" bitvector.
	TEAM_
		Anything related to the "teamplay" bitvector

The codebase for Expert Quake has been carefully factored and commented for easy
modification and porting.  If you make a good modification to Expert Quake, that
is, a modification that adds to the game without destroying balance, we'd love to
include it.

Expert Quake is also the ideal base on which to build your own custom mods, whether
the focus of the mod is balance or not.

--------------------
Source Code Settings
--------------------

	Besides the teamplay, deathmatch and loadmod settings, there are some 
other options that can be modified by editing the source.  These options
are constants at the beginnings of teamplay.qc, dm.qc, and loadmod.qc and
are marked so you can find them.  One such option specifies the default frag
penalty.  This is the number of frags that will be deducted for killing 
a teammate when the Frag Penalty setting is enabled.

	There are four constants in teamplay.qc which allow configuration of
the color that will be used for teams.  Up to four teams can be enabled, so
there are four colors:

float   COLOR1 =   4; // red
float   COLOR2 =   13; // blue
float   COLOR3 =   11; // green
float   COLOR4 =   12; // yellow

By default, the server will enforce that all players are wearing skins
that allow the players to be told apart by color.  Alternately,
teams can be told apart by the skin they are wearing.  To set this up,
go into teamplay.qc and edit the skin names in the function 
TeamSkinForTeam().  You may also want to edit the names of the teams in
TeamNameForTeam().  No understanding of the code is required.

The file dm.qc contains the damages of the equalized weapons and stats for
the modified armors, splash damage, weapon kickback, and suicide delay.
These constants are marked in dm.qc by the comment /** MODIFIABLE CONSTANTS **/

The file loadmod.qc contains the quotas for armor, health, and various ammos.
The numbers are a per-player fraction.  Again, look for the comment
/** MODIFIABLE CONSTANTS **/

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