                  - Expert Quake2 Version 3.0 -

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/

The Coliseum (clan ladder)
http://coliseum.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

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

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 without 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
	Expert treats the hook as an action, like jumping, which is 
	completely independent of weapons use.  The hook is a movement 
	tool.  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.

2048				Pogo
	The Pogo is a movement mechanism like the Expert Hook.
	When fired, the Pogo provides a sudden forward and upward 
	thrust that throws the player forward.  The force of Pogo can 
	be combined with jumping or rocket jumping.  When Pogo is 
	enabled, no players ever take falling damage.  Pogo cannot be 
	fired more often than every 0.5 seconds.  Pogo is fired with 
	the alias "+pogo".
	NOTE If both Pogo and Expert Hook are enabled, 
	     only Pogo functions.

4096				Slow Hook
	Only valid with the Expert Hook option.  Players are still 
	given a hook on spawn that is operated by +hook, but the 
	hook is very slow, only usable for getting past obstacles 
	that would otherwise be impassable on foot.  The slow hook is 
	not useful in combat and not useful to speed up travelling 
	where there is a path traversable on foot.  This option 
	is intended to create an effectively hookless game while
	still supporting maps that expect the presence of the hook.

8192				Sky Solid
	The sky will be considered solid for the hook and for 
	explosive projectiles.  This means the hook will stick
	to the sky, rockets will explode on impact with sky, and
	grenades can be bounced off the sky.

65536				Alternate Restore
	No health, armor or healing powerups spawn in the level.  
	Instead of grabbing items to heal themselves, players are
	healed only by fighting and killing enemy players and by
	regenerating.  This option should only be used with 
	Balanced Items.

131072				Ammo Regen
	All forms of ammo will be removed from the level.  Instead
	of picking up ammo, players regenerate ammo with much lower
	maximum ammo quantities.  The regeneration rates and 
	maximum ammo capacities are designed to prevent running out
	of ammo with any weapon as long as some ammo conservation
	is applied.  Abusing a weapon, such as by continuous 
	filling a corridor with grenades or rockets, will quickly
	lead to running out of that ammo type.
	
----------------------------
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.

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

--------------
Entmap loading
--------------

If a file is present in quake2/[game directory]/maps named after the
current map but with the extension ".ent", it will be loaded and
used as the entity map for the level.  For example, if a Capture
the Flag server (with a game directory of "ctf") were changing to 
the map base3, the file quake2/ctf/maps/base3.ent would be looked 
for and used if present.

Note: an entity map is a list of "entities" to be placed in a level.
Entities represent basically everything in a level except walls:
health, armor, ammo and powerups, ctf flags and banners.  Entity
maps are typically used to add CTF support to a deathmatch level
and/or to tweak item placement.

One place to get entity maps for use with the Quake2 DM and single
player levels is as part of Vanilla CTF
http://frag.com/vanctf/

----------
Properties
----------

Expert servers have a "properties" system almost exactly like the
"localinfo" system 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

To see the value of a property, use the command "sv prop [prop]".
For example:

sv prop base1
[Server reply]: "base1" is jail4

To remove a property, set it's value to "".  For example:

sv prop base1 ""

To see all currently set properties, simply type "sv prop".  To 
clear all property settings, type "sv clearprops".

Note that all properties are reset every time the server is 
reloaded, which includes every time the command "map" is used to
change the current level.  The command "gamemap" does not reload
the server, so properties persist when the level is changed with
"gamemap".

------------
Level Cycles
------------

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.

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 the fraglimit is normally
40, but for some larger levels, you want to set the fraglimit
to 25, you could create these configs:

eachlev.cfg:
fraglimit 40

jail2.cfg, mine2.cfg, mine4.cfg:
fraglimit 25

Note if the "gamemap" or "map" command is used to change
levels, neither eachlev.cfg nor [mapname].cfg will be executed.

----------------
The "cycle" cvar
----------------

The "cycle" cvar can be used to avoid name collisions between 
files used in more than one game mode.  When the cvar "cycle"
is set, all per-level .cfg files (including eachlev.cfg) and 
some game-mode-specific data files will be looked for in the
subdirectory named by "cycle".  

As an example, say the Expert modification is installed in 
quake2/ctf.  If the cycle cvar is not set, when the server is 
transitioning to the level q2ctf5, the server will attempt to 
execute 

quake2/ctf/q2ctf5.cfg

If the cycle cvar has been set to "ctfbase" the server will 
attempt to execute

quake2/ctf/ctfbase/q2ctf5.cfg

In addition, when the cycle cvar is set, the following files
will be looked for under the subdirectory named by the cycle
cvar:

motd.txt 

--------------------
The "sv set" command
--------------------

As a convenience for use with the level scripting system, a
new server command "sv set" has been added that can be used
to change settings in the "expflags" bitfield.  The syntax
of the command is

sv set [feature] [off]

For examples:

sv set "Expert hook"

would turn the "expert hook" on.

sv set "alternate restore" off

would turn the "alternate restore" feature off.  The names
of features are not case-sensitive.

Here is a full list of the names of all the features
for use with "sv set":

expert weapons
balanced items
free gear
powerups
no powerups
expert hook
no hacks
pogo
slow hook
sky hook
alternate restore
ammo regen

Note that the "sv set" command cannot be used while the
server has not actually entered a map, that is, "sv set"
commands will not work if included in the .cfg that starts
the server.  For this reason the usefulness of the "sv set" 
is limited to level scripting.

--------------------
Server Pause Command
--------------------

The command "sv pause" can be used to pause and unpause play
on a server.  While a server is paused, all players are unable
to move, and players cannot take damage, although most other 
functions of the server continue normally.  For example, 
projectiles continue to fly.

-----------------
Disabling Weapons
-----------------

Weapons can be individually disabled so that they will not appear
when a level is loaded, or, if the Free Gear option is enabled,
will not be given to players on spawn.  To disable a weapon,
simply set a property with the name of the weapon and a value
of "remove".  For example

sv prop "Grenade Launcher" "remove"

would disable the Grenade Launcher.  The names of all the
weapons are as follows:

Shotgun
Super Shotgun
Machinegun
Chaingun
Grenade Launcher
Rocket Launcher
HyperBlaster
Railgun
BFG10K

Note that if a weapon is set as disabled while a level is being
played, players who still have the weapon will have it until
they die.  Similarly, if the server is not in Free Gear mode,
the weapon will continue to respawn if it exists in the level.

Note that weapon names that have a space in them, such as Grenade
Launcher, must be quoted: "Grenade Launcher".  Weapon names are
also case insensitive.  Also, any non-blank value, not just 
"remove", will disable the weapon.  

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