				- Expert Quake Version 1.31 -

For detailed info on game behavior, for instance impulse commands and
exact damage values for weapons, see the client-side documentation,
client.txt

-----------------
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, arena, 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.

	Expert CTF is the product of extended design focusing on game
depth and playability.  Through many means, including balance and
lowered lethality, simple-minded tactics such as camping and 
ambushing are eliminated in Expert because they are ineffective,
and reflexes and ping have a reduced role in the game.  Only through
great skill and teamwork can players excel at Expert.

	The Expert Quake web page :

http://www.planetquake.com/expert/

	Specifically the design document for Expert Quake is at :

http://www.planetquake.com/qgame.html

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

	Expert Quake is a QuakeWorld server mod.  You need qwsv.exe
version 1.64 or later 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/

	Note that Quakeworld does not support IPX, only TCP/IP.  If
you want to play Expert on a LAN, all machines must be configured
for TCP/IP.

	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.

	Please drop TheGriffin (thegriffin@usa.net) a note about
your Expert Quake server.  We can inform you of newer versions
of the server and advertise your server on the Expert web pages.

------------------------
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.

--------------------------
Additional Setup for Arena
--------------------------

	If you are running an Expert Arena server, you will need 
the Rocket Arena .pak file, which contains the Arena custom maps
and sounds.  You can download it from 
http://www.cdrom.com/pub/quake/planetquake/servers/arena/rarena11.zip
	[**IMPORTANT**] The Rocket Arena pak0.pak file includes 
a qwprogs.dat file that will be used instead of the qwprogs.dat 
in the current directory.  The best way to work around this is
to use winpak to extract all of the maps from the Rocket Arena 
pak0.pak (follow procedure for CTF above), then move the 
original "pak0.pak" file out of the expert directory.

--------------
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.

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

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

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

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

As ext.cfg plus CTF game mode, team audio enabled.

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.

NOTE: if you write your own config, please DO NOT IGNORE settings
you see in the provided configs that you don't understand.  Among
other things, .cfg files containing level cycles are exec'd by 
the above config files.

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", "arena" and "loadmod" are used to turn various options 
on and off.  All these variables are bitfields, with each bit 
toggling an associated feature.

[NOTE]: Unlike CTF and Arena, FlagTrack is enabled by setting
bit 16384 of "teamplay".

------------------------------
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	Free Gear
	This bit implements id's "deathmatch 4" and 
	"deathmatch 5" mode, that is, weapons are given out on
	player spawn and do not appear in the level.  If 
	"Items Respawn" is _not_ set, players have limitless
	ammo and ammo does not spawn, packs give 10 health, Octal
	damage and invul at 300 health, etc. If "Balanced Items"
	is also set, packs give 30 restorative health (won't go
	over 100).  With "Alternate Powerups" also set (to 
	eliminate OctaPower), "deathmatch 4" becomes a mode 
	playable for more than just a lark.
8	Alternate Restore
	Alternate restoration system.  Armor and health do not
	spawn in the level. Players spawn with 100 health and
	50 yellow armor, and receive 50 health and 30 yellow 
	armor immediately on making a kill.  All players also
	regenerate at 1 point/second in 4 point chunks.  
	Combined with "deathmatch 4", this means that nothing
	spawns but powerups, and players don't drop packs 
	(nothing to get).
16	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.
32	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.  The 100 Health becomes the "Arc of Life",
	gives full green armor and full health if a player 
	needs it.  See description below for more details.
64	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
	will not attach to players, and can only hold to a
	surface for a little over 2 seconds before retracting.
	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.
128	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.
256	Alternate Powerups
	An alternate set of powerups will be used.  See below.
512	**** 
	Expert Level Sets 
	NO LONGER SUPPORTED: USE QW 2.0 "localinfo" level cycles
	****
1024	Frag Minimum
	Players who attempt to exit the level with less than a
	certain number of frags are killed.
2048	Armor Color
	Shirt colors will be forced to match the type of armor
	a player is	wearing.
4096	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 in to get Tarzan-like swings.
8192	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).
16384	Performance
	Changes to improve the rendering and network 
	performance for clients by eliminating some 
	unnecessary effects.  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.
32768	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.
65536	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.
131072	Alternates Only
	Combined with "Weapon Modes", 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, or if two or more teams
	have equal numbers of members on the team with 
	the least score out of all teams with equal
	numbers of 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". 
16384	Expert FlagTrack
	Enables Expert FlagTrack game mode.

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

The CTF bits are as follows:

	1	Capture the Flag on
		Setting this bit turns on Capture the Flag.

-------------------------
Arena Feature Description
-------------------------

The Arena bits are as follows:

	1	Arena on
		Setting this bit enables Arena mode.

---------------------------
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 even up the
gaps in usefulness between each.

- Modified weapon damages (especially explosives, 
	lightning gun 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
- Lightning gun uses cells at half rate
- 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
- Lightning gun damages only the firer when discharged
	under water

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

- 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
- In "deathmatch 4" and "deathmatch 5" modes, 30 
	restorative health is also placed in backpacks
- 100 Health becomes "Ark of Life", restores full green
	armor and 100 health to players that need it
- 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 more easily

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, immunity to lava and slime
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.

-----------------
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

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

Not all of the available options make sense together.

** CTF mode does not function with more than two teams, 
or with Team Color Lock disabled.

** Arena mode does not function with teamplay or CTF.

NOTE: The following quirk no longer exists.  Respawn 
rates will be exactly the same as in the original id
modes.
--
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.
--

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.

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

A multiple-base teamplay mode
Any good ideas we get requests for - we have implemented
people's requests in the past and expect to do so again.

The Expert Team is:
-------------------
Charles "Myrkul" Kendrick (myrkul@myrkul.org) [Team Manager]
DaScott (dascott@infi.net)
Rich "Publius" Tollerton (rtollert@tranquility.net)
Nelson "TheGriffin" Hicks (thegriffin@usa.net) [New Server Contact]
Michael "Smeagol" Buttrey (zephyralfredo@agt.net) [Public Relations]
Seth "[SWiFT]" Fowler (swift@worldreach.net)
Tony "*this" Distler (adistler@ace.cs.ohiou.edu)

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.

crt and Nioxin for Rocket Arena (our code for arena mode
is original).

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.

-------------------------
Reference For Programmers
-------------------------

Expert Quake adds several source files to the standard
distribution:

expdefs.qc
	Definitions of bitvectors and brief feature
	descriptions

dm.qc
	All the deathmatch enhancement code.

arena.qc
	Implementation of Arena mode.

teamplay.qc
	All the team setup and enforcement code.

ctf.qc
	CTF control code for Threewave-style CTF.

ctf2.qc
	CTF control code for FlagTrack.

loadmod.qc
lists.qc
touch.qc
	All the code for LoadMod.

grapple.qc
	Grappling hook functions.

status.qc
	Status bars for all the modes that use them.

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
ctf
	Anything related to CTF
arena
	Anything related to Arena

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 game depth, 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 game depth 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 (just double-click on qcc.exe in the "src"
directory) before your changes will take effect.
