- Expert Quake2 Version 3.2 - For detailed info on game behavior, for instance commands to be used by players 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 ----- If you have not already downloaded the Expert server distribution, or if you simply want to make sure you have the most recent version, go to the Expert download page: http://www.planetquake.com/expert/download.html From the above page, you should also download the Expert DM recommended maps if you are running a DM server and/or the Expert CTF recommended maps if you are running a CTF server. The default configuration of the Expert DM or CTF server will use these recommended maps. The Expert Quake2 server distribution comes as a .zip file. Unzip the contents of this zip file into your Quake2 directory, or if you have already unzipped the file, move the resulting folder called "expert" into your Quake2 directory (where quake2.exe is). From here on, all references to directories will be made as though Quake2 were installed in c:\quake2. In the folder c:\quake2\expert, there are three batch files named "expdm.bat", "expteam.bat" and "expctf.bat". Move these batch files into c:\quake2. You should now be able to run "expdm.bat", and an Expert Deathmatch dedicated server will be started, using the Expert DM recommended maps. -- NEWBIE NOTE: Dedicated servers in general will not have a 3d view! A dedicated server is simply a text console - on a Windows machine, this means it will appear similar to a DOS console window. Once you have run a dedicated server, if you wish to play on it, launch Quake2 as you would normally launch it in order to play, and connect to the IP address of the machine on which you are running the dedicated server. -- The dedicated server you have just started uses the "Combat Deathmatch" configuration. The batch file "expteam.bat" will start a dedicated server in the "Combat Teamplay" configuration. These configurations and several other recommended configurations are included as part of the Expert server. All of the included configurations are documented below in the "Expert Configs" section. All of the options you could possibly set if you made your own configuration are also documented below under "Custom Configuration". If you intend to run an Expert Deathmatch or Expert Teamplay server, but not an Expert CTF server, you are now done installing Expert. If you intend to run an Expert CTF server, rename your existing c:\quake2\ctf folder to c:\quake2\oldctf (any name is fine), and either copy or rename the c:\quake2\expert directory to c:\quake2\ctf. Then copy c:\quake2\oldctf\pak0.pak to c:\quake2\ctf - this file contains the CTF maps, skins and other media from id's Threewave CTF. If you were able to find and copy pak0.pak into your c:\quake2\ctf directory, you are now done installing Expert CTF. The "expctf.bat" batch file will start an Expert CTF server in the "Expert CTF" configuration documented below under "Expert Configs". If you didn't have an existing CTF folder, or didn't have a pak0.pak in your existing CTF folder, you need to download Threewave CTF from id software. One location of an archive containing this file is: ftp://ftp.cdrom.com/pub/idgames/idstuff/quake2/ctf/q2ctf102.zip If the above link does not work, you could try id software's website: http://www.idsoftware.com/ Note that the only file you need from Threewave CTF is the pak0.pak file. Do not run id's Threewave CTF installer on your c:\quake2 directory after installing Expert CTF or you will have to reinstall Expert CTF, since id's Threewave CTF installer will overwrite various files in your c:\quake2\ctf directory, destroying your installation of Expert CTF. ---------------------------------- More Info for New Server Operators ---------------------------------- Console Variables (cvars) ------------------------- A cvar is just a name to which you can assign a value. For example, to set the value of the cvar "expflags" to 182: set expflags 182 To check the value of expflags: expflags The console will report "expflags" is "182" To see a list of all cvars and their values, type "cvarlist". Config (.cfg) files ------------------- A .cfg file is just a text file. You can edit it with any text editor, for example, Windows Notepad. A .cfg file can be "executed" from the server console like so exec [filename] for example exec exctf.cfg What this does is cause each line in the .cfg file to be executed on the console as though you had typed in yourself. .cfg files are used both by players and server ops to store a series of configuration commands, for instance, commands to set cvars. .cfg files can also be executed from the command line when starting quake2 like this: quake2 +exec exctf.cfg This is what the batch files that come with Expert do (for example expdm.bat). game directory -------------- The game directory is the value of the "game" cvar. The game directory is a subdirectory of the quake2 directory in which quake2 will look first whenever it needs to load files. For example, if the "game" cvar is set to "ctf", quake2 will look in quake2/ctf for any files it needs to load, then in quake2/baseq2 (it always looks in quake2/baseq2 last). For example, if you try to "exec exctf.cfg", quake2 will look for quake2/ctf/exctf.cfg, then quake2/baseq2/exctf.cfg. The game code (gamex86.dll in Windows, gamei386.so in Linux) is also loaded from the game directory. The game code is the file that contains all the behaviors that are part of a mod, for example, Expert's triple railgun. The "game" cvar cannot ordinarily be set from the console, instead, it must be set on the command line as Quake2 is launched. This is what the batch files that come with Expert do (for example expdm.bat). ------------ Further Help ------------ Before contacting the Expert team for help please try the web. An excellent way to get help is to do a web search at Alta Vista. http://www.altavista.com/ For example, trying searching for "quake2 server setup". ------------------------------ Getting Players on Your Server ------------------------------ The configurations that come with the Expert Server distribution will all register your server with public "master" servers, which means your servers will be visible in server browsers such as Gamespy, and will be included in many web-based server listings. Please drop evilbob (evilbob@bigfoot.com) 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 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 " 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. 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 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. 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 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. 1 ENABLE Gibstat logging Log frags and other events in GibStats 1.2 format to the file specified by the cvar "giblog". The default file is "gibstats.log". The gibstats log always appears in the "game" directory, for example in quake2/ctf for a capture the flag game. 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. 8 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. 16 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. 32 DISABLE Bot Detection By default, Expert servers detect the "zbot" proxy bot by detecting the use of commands that are used to control the proxy, such as impulses. This bot detection can be bogusly triggered by simply typing "impulse 20" in a client's console, so this option is provided to disable it in case it becomes a problem. 64 ENABLE Player Forwarding When the server becomes full, "forward" players to another server. This is something of a hack. You must set "maxclients" to one greater than the actual number of players you want in the game. For example if you want to run a 10 player server that forwards extra players to another server, you must set maxclients to 11. When players connect in the 11th slot they will be forwarded. The cvar "forwardAddress" sets the ip address/machine name to forward players to. The cvar "forwardMessage" sets the text message the player will see when being forwarded. 128 Gibstats log-per-level When this option is enabled along with Gibstats logging, Gibstats logs will be written to separate files for each level played on the server. This is useful for recording a gibstats log for a single match rather than general stats for an open play server. The file name for per-level logs is as follows: [giblog].YY.MM.DD.[mapname].HH.MM.SS For example, if the cvar "giblog" is set to "match", the map is q2ctf2, and the time is 5:32pm and 26 seconds on January 12, 1999: match.99.01.12.q2ctf2.17.32.26 ----------------- 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 -------------- 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/ ------------------- Flooding Protection ------------------- Expert servers have a basic flooding protection (floodprot) mechanism. It is automatically enabled and will silence players who send 5 messages in 3 seconds for 20 seconds. In future versions of Expert, floodprot will be configurable. -------------- Bot Protection -------------- Expert server implement some basic detection of zbots and other bots that use similar control mechanisms. The cvar "botaction" can be set to one of a number of values to indicate what action the server should take when a bot is detected: botaction value action --------------- ------ "kick" kicks the player and prints a message to the console "log" prints a message to the console only The default value of "botaction" is "kick". In future versions of Expert, better detection may be implemented, as well as more options for actions when bots are detected (kick and ban for a certain amount of time, for instance). ---------- 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: teams.txt 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 playerid enforced teams fair teams no team switch pogo slow hook sky hook no plats ctf team distribution 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. --------------- 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 ------------------- TeamAudio Expansion ------------------- The Expert TeamAudio system is primarily documented in "user.txt". Server admins can make additions to the built-in set of TeamAudio sounds by setting Properties. The name of the property is the name of the audio file to be played, and the value of the property indicates whether the sound is Short Range or Team-Wide, and what gesture is associated with the sound. For example: sv prop cheer 3 In this case, if the player sends the command "ta cheer" to the server, the sound "cheer.wav" (male or female according to the sex of the player) will be played for teammates within earshot of the player who sent the "ta cheer" command. The number "1" indicates which gesture the player will do, as follows: Number Gesture ---------------------- 0 Flipoff 1 Salute 2 Taunt 3 Wave 4 Point So in this case of "sv prop cheer 3", the player will do the "Wave" gesture. If no gesture should be done to accompany the sound, set the property to -1. If the sound is to be played Team-Wide, set the property to 8; Team-Wide sounds don't include gestures since the entire team can't see the speaker. Note that if a property is set to a null string ("") or is set to a non- numeric value, the property will be treated as having the value "0". Some examples: sv prop retreat 3 // Short Range sound, player waves sv prop regroupatbase 8 // Team-Wide sound (no gesture) sv prop dman/needammo -1 // Short Range sound, no gesture. Sound // is in a subdirectory called "dman" sv prop killme "" // Short Range sound, player flipoff's ----------------------- 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. Joseph "Match" Szabo, for lots of good testing, suggestions and bits of code. id software for driving the industry toward configurable game engines.