                  - Expert Quake2 Version 2.2 -

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

------------------
Expert Quake2 Info
------------------

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

Expert Quake web site at PlanetQuake:
http://www.planetquake.com/expert/

Expert News (also at PlanetQuake):
http://www.planetquake.com/eqnews/

Expert Quake Clans (clan hosting!)
http://www.eqclans.com/

-----
Setup
-----

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

	In the folder "expert", there is a batch file called 
"expert.bat".  Move this file into your main Quake2 directory (i.e. 
where quake2.exe is) and you should be able to run "expert.bat"
and start an Expert server.  This batch file will start up a server 
using Expert Quake with the "Combat Deathmatch" config listed below.

	Several other configurations are provided, and are documented 
below, as are all the options you could possibly set if you made 
your own config file.

	If you intend to run an Expert CTF server, you need to move
any existing "ctf" folder out of the way, and either copy or 
rename the "expert" directory to "ctf".  You will also need to
grab the "pak0.pak" file from Threewave CTF for Quake2 and place
it in the "ctf" directory.  One location of an archive containing
this file is:
ftp://ftp.cdrom.com/pub/idgames/idstuff/quake2/ctf/q2ctf102.zip

	Please drop evilbob (evilbob@ocis.net) a note about your 
Expert Quake2 server.  Your server will be advertised on Expert
News and you can be added to the Expert Servers mailing list for
news and pre-release server updates.

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

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

	In the case of teamplay .cfgs other than Expert CTF, you 
must also edit "teams.txt".  See Enforced Teamplay below for
directions.

Small Strategy DM ------- exdms.cfg ------ 2-4 player deathmatch

Expert weapons, but not balanced items or alternate powerups.
Newly spawned players are not helpless, but the game revolves
around efficiently gathering armor and powerups.  All players
should be intimately familiar with level.  Going over 4 players 
will start to introduce randomness.

Combat DM --------------- exdmc.cfg -------- Any size deathmatch 

All balance options enabled and free gear.  Almost purely 
combat-based DM: a series of even fights.  Should scale to large 
numbers of players at high density without becoming very random.

Clan Strategy Teams ----- extms.cfg ------- 4-14 player teamplay

Like small strategy DM.  Intended only for team matches where
all players know the level intimiately and both teams have pre-
arranged strategies for controlling powerful items in the level.

Combat Teams ------------ extmc.cfg ---------- Any size teamplay

Like Combat DM.  Should scale to large numbers of players at
high density with becoming very random.

NOTE: Adding Expert Hook to any of the above should preserve
gameplay.

Expert CTF -------------- exctf.cfg ------------ 6-18 player CTF

Like Combat Teamplay, with flags and capture the flag scoring.

NOTE: on appropriate levels, Expert CTF without hook plays very 
well.

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

Expert Quake2 is a highly configurable mod, with most features
fully customizable from the console.  Console variables (cvars)
control the behavior of an Expert Quake2 server.  Each cvar
is a bit-field, with each bit toggling an associated feature.
To set a cvar, use the command "set <cvarname> <value>" at the
server console, for example "set expflags 80".

--------------------------
Expert Feature Description
--------------------------

The cvar "expflags" controls features that affect deathmatch
and basic teamplay.

Detailed descriptions of effects are given in user.txt

The bits controlling deathmatch features are as follows:

1					Expert Weapons
	Weapons left unbalanced by id (eg blaster) are balanced.
	Various changes reduce randomness, increase the skill 
	required to use weapons, increase control, and reduce the 
	importance of ammo.
	
2					Balanced Items
	With balanced items set, players cannot gain large
	endurance advantages by picking up armor or powerups,
	and health and armor is quickly restored to injured
	players to ensure even combat.

4					Free Gear
	Players are given all weapons and significant ammo on 
	spawn.

8					Expert Powerups
	The most powerful powerups (quad, invulnerability and power 
	shield) have different, less powerful effects so that they 
	do not become focal points of the game, and so that skill
	is required to make effective use of powerups.

16					No Powerups
	Prevents the most powerful powerups (quad, invulnerability,
	and power shield) from ever spawning into the level.

32					Expert Hook
	Players are given a hook on spawn, which can be used
	by binding a key to "+hook".

64					No Hacks
	Various changes to reduce the utility of cheating.  Players
	and projectiles easier to see, especially in the dark.

128					Player ID
	When looking in the vicinity of another player, that player's
	name appears near the bottom of the screen.
	
256					Enforced Teams
	When players join, they will be assigned to one of a set of
	teams predefined in teams.txt.  Players will be prevented from
	changing model or skin to a setting not allowed for their 
	team.  Players may switch teams using the "team" command.
	SEE "Expert Teamplay" below

512					Fair Teams
	Players will be prevented from changing teams unless the team
	they are switching to has less members than the team they are 
	currently on.  Only valid with Enforced Teams.
	SEE "Expert Teamplay" below

1024				No Team Switch
	Prevents any team changes.  Players cannot change from the
	team they were assigned when they joined the server.  Only
	valid with Enforced Teams.  Overrides Fair Teams.
	SEE "Expert Teamplay" below

2048				Pogo
	Expert Pogo is similar to the Airfist, but with the control
	system of the Expert Hook.  Firing Pogo while facing a 
	nearby surface will throw the player backward with a force
	proportional the player's distance from the surface.  The
	force of Pogo can be combined with jumping or rocket jumping.
	Pogo's force cannot be used to push other players around,
	and Pogo can be fired only about as frequently as the rocket 
	launcher.  Pogo is fired with the alias "+pogo".
	NOTE If both Pogo and Expert Hook are enabled, 
	     only Pogo functions.

8192				Sky Hook
	Hook sticks to sky.  This has both benefits and drawbacks 
	in terms of gameplay.  If the hook releases on hitting sky,
	on levels with grates and small windows hitting sky when 
	aiming for a wall is highly random.   Similarly, firing 
	the grapple from under opaque water becomes random.  On 
	the other hand, some large rooms where the hook can make 
	a player overly difficult to kill are capped with sky roofs;
	a grapple that releases from sky prevents in that case 
	prevents mindless getaways.  Also, in some maps there are 
	viewpoints from near the sky where a large area can be 
	viewed that should not seen.

16384				No Plats
	Plats, that is, rising platforms, will be removed from the
	level.  Useful when Expert Hook or Pogo is enabled, since
	plats won't be needed to get around, and may get in the way.

32768				Team Distribution
	In CTF, a small graph will appear on the right side of the 
	player's HUD showing the rough distribution of teammates
	over the field, relative to the two bases.	Only valid in 
	CTF mode.

65536				Alternate Restore
	No health, armor or healing powerups spawn in the level.  
	Instead of grabbing items to heal themselves, players are
	healed only in one of two ways: by getting a pack from a
	killed player, which restores roughly 50% of health and 
	armor, or by regenerating.  Players regenerate much faster 
	if they are in combat or have recently been in combat.
	This option should only be used with Balanced Items.

----------------------------
Utility Features Description
----------------------------

The cvar "utilflags" controls utility features independent
of gameplay.  Most of these flags turn features OFF, which
are otherwise on by default.

1				ENABLE Gibstat logging [NON-FUNCTIONAL]
	Log frags and other events in GibStats 1.2 format to 
	"gibstats.log".  

2				DISABLE Expert Client Obituaries
	Disables the Expert custom obituary system, reverting to
	the obituaries from id software.  For info about the
	custom obituary system, see "obituary.txt".  This file
	also contains all the obituary messages.

4				DISABLE MOTD
	Disable message of the day printing.  By default, if
	a file named "motd.txt" is present in "gamedir", it will
	be displayed to players on initial login.  If "motd.txt" is
	changed, the new message will appear after a level cycle.

8				DISABLE Spawn Message
	Disable messages on spawn.  By default, Expert servers print
	a one-line message on spawn telling users what the game mode is
	and how to get info about Expert features.  If you aren't using
	any Expert features and are running vanilla deathmatch, you
	might want to disable this.

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

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

Example:
expflags 96		Expert Hook, No hacks

-----
Modes
-----

Capture the Flag
----------------

Like Threewave CTF, with no "Tech Powerups", many scoring changes, and 
of course any Expert options you wish to enable.

To enable, "set ctf 1" on the server console or in a .cfg file

Arena coming soon
FlagTrack coming soon

---------------------------
Level Cycles and Properties
---------------------------

Expert servers have a "properties" system almost exactly like the
"localinfo" implemented by QuakeWorld servers.

A property is a name/value pair, such as: 
base1 jail4
where "base1" is the name and "jail4" is the value.

Properties are defined with the console command "sv prop".  For
example, to define the example property above:
sv prop base1 jail4

Properties can be used to define level cycles.  If a property
is set with the same name as the current level being played
the server will attempt to go to the level that is the property's
value.  For example, a simple three-map level cycle:

sv prop jail1 base3
sv prop base3 mine1
sv prop mine1 jail1

---------------
Level Scripting
---------------

To enabled server operators to change settings on a per-level 
basis, Expert servers support a simple level scripting facility:
immediately before going to a new map, the command

exec [newlevel].cfg

is send to the server console.  Thus if the server is about to 
go to the map "base1", the .cfg file "base1.cfg" will be 
executed if present.

For an example of usage, say a server had a level cycle:

q2ctf1 -> q2ctf3 -> q2ctf5 -> q2ctf1

and the server operator wanted to enabled the "No Plats" option
for q2ctf5 (Capture Showdown) only, to remove the plats near each
base.  If "expflags" is normally set to 13295, these two .cfgs
would enable the "No Plats" option (16384) for q2ctf5 only.

q2ctf5.cfg:
expflags 29679

q2ctf1.cfg:
expflags 13295

In addition, if a config file named "eachlev.cfg" is present it
will be executed on every level cycle, immediately before the 
.cfg file named after the level that the server is about to 
transition to.  "eachlev.cfg" can be used to reset properties 
that are set by other .cfg file on a per-level basis.

For example, if during a level cycle expflags is normally 13295,
and the server operator wanted to disabled the Expert Hook on
jail2, mine2 and mine4, the server operator could create these 
configs:

eachlev.cfg:
expflags 13295

jail2.cfg, mine2.cfg, mine4.cfg:
expflags 13263

---------------
Expert Teamplay
---------------

The "Enforced Teams" setting enables Expert Teamplay.

When Enforced Teams is enabled, team definitions will be read
from a file called teams.txt.  The cvar "numteams" controls 
how many teams will be active out of all the teams defined in  
teams.txt.  If "numteams" is less than 2, teamplay is disabled.

The format of teams.txt is as follows:

# comment - will be ignored
teamName1=model1/skin1;model2/skin2
teamName2=model3/skin3;model4/skin4;model5/skin5

#another comment
#teamName4=model5/skin5 this definition is ignored

In this example, two teams, "teamName1" and "teamName2", are
defined.  Players assigned to "teamName1" will be forced to
use either "model1" with "skin1" or "model2" with "skin2".

More examples:

The basic CTF teams:

red=male/ctf_r;female/ctf_r
blue=male/ctf_b;female/ctf_b

Males vs Females vs Cyborgs:

male=male/claymore
female=female/jungle
cyborg=cyborg/oni911

Whitespace in a team definition is ignored.  That is:
red =  male/ctf_r      ;   female/ctf_r
is the same as
red=male/ctf_r;female/ctf_r

In Enforced Teamplay mode with "Model Teams", the server will 
enforce that each player assigned to a team use one of the 
models allowed for that team, but will allow the player to use
any skin.  The skin as specified in "teams.txt" will only be
used as a default in the case that a connecting player's model 
needs to change to match his assigned team. 

Note that the Quake2 client (3.14) defaults to model "male"
and skin "grunt" when it sees a skin it doesn't have.  This 
means that if a player on a team using only the female model 
sets his skin to a non-existant skin name, all other players 
would see the player with the bogus skin as "male/grunt" and 
get confused.  

Thus for now the Model Teams combined with Enforced Teams is
probably a LAN-party-only feature.  If you want to play teams
by models, set Skin Teams and enter a long list of allowed
skins for each model team in teams.txt.

Future versions of Quake2 should provide a workaround to this
problem. 

Further teamplay options, such as "Fair Teams", are documented
above. 

The console command "sv switch [playernum] [team]" allows team
switching from console (or via rcon).  A player's "playernum" 
can be determined using the console command "status".  Team
can be either the name of a team (case insensitive) or the 
number of team, numbered from 0 according to order of 
appearance in teams.txt.

For example, to switch player 3 to Blue team:
sv switch 3 blue

-----------------------
Modifying Expert Quake2
-----------------------

Source is included partly in the hopes that users will make useful
modifications and bugfixes that can be incorporated in later 
releases.  If you make a modification or bugfix to Expert please 
create a context diff of your changes to the source and send it to 
myrkul@myrkul.org.  You will be credited in this file and on the 
web.

Before sending modifications, please consider the balance and
game depth theme of the Expert patch.  Changes that ruin the
balance of the game will not be accepted even if implemented as
options.  Design-neutral utility patches are always welcome.

Also note that we have endeavored to keep as much code outside of
the original source base as possible.  Please follow that pattern
in your modifications.

The Expert Programming Team is:
-------------------------------

Charles "Myrkul" Kendrick (myrkul@myrkul.org) 
Rich "Publius" Tollerton (rtollert@tranquility.net)
Tim "Blitherakt!" Adamec (blitherakt@blitherakt.com)
Michael "Smeagol" Buttrey (zephyralfredo@agt.net) 
Nelson "TheGriffin" Hicks (thegriffin@usa.net)

Thanks go to:
-------------

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

id software for driving the industry toward configurable
game engines.

