|  | Features
AirFist Chasecam Client Disconnect Messages Crosshair CTF Bot Event Logging Exit Rules Grappling Hook KickStooge KickSuicider Map Queuing Message of the Day | MultiSkin Observer On-line Ranking Random Item Respawn Redundant Message Removal Remote Site Management Runes Select Previous Weapon Tabulated Team Scoring Teamplay Telefrag Protection

Quaker Server Modifications is the most advanced server modification that includes remote administration and extended teamplay (including Capture the Flag) functions.

Some of the Quaker Server Modifications features are:

## Remote Site Management

> ### `ADMIN.QC:` Administration

> Uses a three-impulse sequence to give a client administrator privileges, and then other impulse commands are used to perform certain functions, such as:

> - changing gameplay settings (coop, deathmatch, noexit, pausible, registered, samelevel, teamplay);
> - changing environment settings (fraglimit, timelimit, sv_friction, sv_gravity);
> - changing levels (restart, "start", nextmap, and "dm1" - "dm6");
> - CTF Bot control (if the bots are running);
> - reassign player teams;
> - kicking users; and
> - remote shut-down of server.

> Set '`KILLSERVER_ALLOWED = 1`' in `ADMIN.QH` if you wish the killserver command to be available for use by administrators.

> The command 'help-admin' displays administrator commands, while 'admin-revoke' removes administrator privileges.

> ### `AUTH.QC:` Authorization

> Uses a three-impulse sequence to give a client authorization capability to a server. Configurable in `AUTH.QH`. Set '`AUTH_CONNECTS`' to the number of player connections that are reserved for authorization. Set '`AUTH_IS_ADMIN = 1`' if you wish authenticated players to be given administrator privileges immediately upon logging in.

> Unauthorized players connect as ineffectual observers (unable to change intermission spots or respawn as an active player) and receive a centerprinted and console message letting them know that all the anonymous connections are full and a password is required. The server will then wait until the three-impulse authorization password is received or the time to authenticate expires (set by 'AUTH_DURATION'; default of 30 seconds). If a player slot becomes free during the wait time, players in the authorization loop are released to fill them.

> ### Expanded Console Messages

> If `USE_MODULE_CONSOLE = 1` is set in `MODULES.QH`, the console will receive a message when a client connects, disconnects, exits a level, or suicides.

## `AIRFIST.QC:` AirFist

The experimental AirFist has become a formidable defensive weapon in the fight against Quake. A compressed air weapon that sends almost anything it is aimed at flying. This weapon is also used to send incoming ordinance other than where it was originally intended. However, the self-recharging compressor requires time after a series of rapid bursts. The AirFist is toggled on the same impulse as the shotgun (IMPULSE 2), .

The command 'help-fist' gives information about the AirFist, while 'fist' switches directly to the AirFist.

## `CHASECAM.QC:` Chasecam

Creates a camera which follows the player around.

The command 'help-cam' displays help on the chasecam, while 'cam' togges the camera on and off and 'cam-in', 'cam-out', 'cam-up', 'cam-down' adjust the camera position. The camera is automatically disabled while the player is in water, or while the player is an observer.

## CTF Bot

This is a heavily modified version of the CTF Bot, a computer-control deathmatch opponent that plays Threewave Capture the Flag 4.0. This variation of the CTF Bot adds the bots to the Quake rankings screen and allows the bots to use proper skin and colormaps. New action and prioritization code has been added as well.

Bots can be set to automatically even up teams during CTF games. (Note that the total number of bots + players cannot exceed `maxplayers`.) The bot's operation is completely autonomous, although control and debug functions can be performed by an administrator.

## `EXITRLS.QC:` ExitRules

Disallows exiting a level too early. Players can only exit a level:

- if at least one player has reached a minimum number of frags (0 by default);
- and if a certain time has passed on the current level (3 minutes by default).

Exit rules are configurable in `EXITRLS.QC`. The ExitRules valid for the current level are displayed when the player enters the level. Levels like 'dm1'-'dm6', 'start', and 'end' don't impose ExitRules.

The command 'help-exitrules' shows the rules in effect for the current level.

## `GRAPPLE.QC:` Grappling Hook

This weapon lets you hook the ceiling and get pulled toward it. You can also hang from the ceiling and snipe at people. The grappling hook is toggled on the same impulse as the axe (IMPULSE 1).

The command 'help-grapple' gives information about using the hook, while 'grapple' allows the player to change directly to the grappling hook.

## `KCKSTGE.QC:` KickStooge

Detects (at least Stooge) Bots' unnatural movements, which means running in some direction with constant speed while firing in all directions. Players meeting this criteria are considered to be using hacked StoogeBots and automatically removed from the server.

## `KCKSCDR.QC:` KickSuicider

Provides a way to get rid of the suicider-nuisance (players suiciding in rapid succession a few dozen times). Players suiciding more than two times in two minutes on a level are kicked out of the game.

## `LOG.QC:` Event Logging

Logs events (player deaths, CTF team statistics, and notices) to the server log, suitable for offline processing.

## `MAPQUE.QC:` Map Queuing

Allows scripting to specify a sequence of levels to be played on the server (configurable in `MAPQUE.QH`).

## `MESSAGES.QC:` Redundant Message Removal

The module allows the selective removal of redundant messages such as "You got the shells" or "You got the armor." This was just cluttering up the message stream and isn't needed since pickups are already signified by a flash and an audio cue. Messages may be enabled or disabled by class of message by editing `MESSAGES.QH`.

## `MOTD.QC:` Message of the Day

When connecting to the server a MOTD (set in `MOTD.QC`) is center-printed to the player's screen. A moment later, information about local server settings and extensions is dumped to the player's console.

## `OBSERVER.QC:` Observer

As observer you just watch what's happening, without interacting with other players or with the environment. This especially means that other players will not notice you when you are an observer. You can turn into an observer by pressing a button when you are dead. As an observer you can:

- fly around;
- switch to another observation point by pressing 'fire';
- and join the game as regular player by pressing 'jump'.

When you connect to the server you automatically start as observer, unless '`ONLY_ADMIN_IS_OBSERVER = TRUE`' (the default in `OBSERVER.QH`), in which case only players with the `PLAYER_IS_ADMIN` bitflag set are allowed this privilege.

The command 'help-observer' provides help on the observer mode, while 'observer-noclip' toggles clipping on and off in observer mode, and 'observer-toggle' toggles respawning as an observer on and off.

## `PreviousWeaponCommand():` Select Previous Weapon

By selecting IMPULSE 69 a player may change to the previously selected weapon (if it is valid). This is a custom implementation of an idea suggested to me by Michael "McBain" Peckman at GWU.

## `RANDOM.QC:` Random Item Respawn

Enabling this module causes items to respawn in random (valid item) locations.

## `RANK.QC:` On-line Ranking

The command 'rank' displays a sorted ranking table with entries in the format:

> TOTAL = KILLS DEATHS ACCIDENTS = PLAYER, where:

> - PLAYER = the name of the player,
> - TOTAL = player's total score,
> - KILLS = how many kills the player made,
> - DEATHS = how often the player got killed by other players,
> - ACCIDENTS = number of self-caused, deathly accidents.

The score is prefixed by a "D" if the player is dead, and an "O" if the player is an observer at the time the rank report is output.

The command 'help-rank' provides help on the format of the ranking table and should explain the local formula (set in `RANK.QC`) used to calculate the total score as well.

## `RUNES.QC:` Runes

Runes are spawned randomly, one of each with an unique power. Currently there are four:

- Black Magic (strength, double damage);
- Earth Magic (resistance, half damage);
- Elder Magic (regeneration); and
- Hell Magic (haste, double fire rate).

When someone dies, the Rune pops out and can be picked up. You can only carry one Rune at a time.

The command 'help-runes' provides help on the Runes, while 'runes-show' shows who is currently carrying each Rune. The command 'toss-rune' allows a player to drop a currently carried Rune (if `RUNES_ALLOW_DROP = 1` in `RUNES.QC`). By default the ability to toss a Rune is turned off.

## `SKIN.QC:` MultiSkin

This is an improved version of Dennis Noordsij's Multiskin, which allows you to use different skins. Only a few changes have been made to his code, with the effect that:

- corpses show the correct skin;
- skins are preserved across level changes;
- names for:
  - MultiSkin 1.1
  - http://www.cdrom.com/pub/idgames2/graphics/mdl/top20skins-3.zip
  skins are shown when the player chooses a skin; and
- team skins are automatically enabled in teamplay mode, including Capture the Flag (requires the custom Threewave `PAK`).

The commands 'skin-next' and 'skin-prev' may be used to change skins (except while in teamplay mode). The command 'help-skin' provides some help about available commands.

Players have to use proper player and player-head model files containing the actual skins to be displayed (the display of skins is handled by the client).

## `PROTECT.QC:` Protect

Protects respawning players. The protection ends automatically after a certain amount of time or if the player fires or picks up an item (weapon, armor, powerup, etc.).

## `TEAMPLAY.QC:` Teamplay

The command 'help-team' gives information on current teamplay settings.

The options included in this release are: health protect, armor protect, mirror damage, frag penalty, death penalty, team color lock, static teams, drop ammo/weapon, Capture the Flag, and custom Capture models.

> ### Enhanced Teamplay

> The command 'help-team' gives information on current teamplay settings.

> ### Capture the Flag

> Capture the flag offers an exciting variation on team play. It gives meaning to base defense along with offensive positioning and strikes. The basic premise is: attack the enemy base, grab their flag, then take it back to your base. In this variation, you must touch your base flag while carrying the enemy flag in order to score.

> Map modifications have to be performed on the server map files in order to enable Capture the Flag play on each map.

> The command 'help-ctf' gives basic information about Capture the Flag and currently set CTF options, while 'flag-show' gives information on the current disposition of the team flags. The command 'toss-flag' will allow a player to drop the flag they are carrying (if `FLAG_ALLOW_DROP = 1` in `CTF.QH`). By default the ability to toss the flag is turned off. The command, 'sbar' toggles the status bar on and off.

## `TELEFRAG.QC:` Telefrag Protection

Reduces the risk of getting telefragged by respawning players. When a player respawns the module tries to find a spot which is not occupied by another player. If such a spot is available the player will respawn there. Only if no such spot is found the player will respawn in occupied space, thereby telefragging another player. Note that telefragging caused by players leaving teleporters is not affected.

## `TSCORE.QC:` Tabulated Team Scoring

If teamplay is on, upon the exit of each level, the server calculates the team scores then prints them to all player's consoles, winning team last. To give clients time to read the scores it then waits (set by `TEAMEXIT_WAIT` in TSCORE.QH) before calling the intermission.

## `XHAIR.QC:` Crosshair

The command 'help-xhair' gives information on the crosshair, while 'xhair' toggles the crosshair on and off. The crosshair is automatically disabled while the player is an observer.

## `XITMSG.QC:` Client Disconnect Messages

Instead of getting "<player> has left the game with <n> frags" when a client disconnects, the player's number of frags is ranked, and an appropriate comment or insult is displayed. There are five exit "categories": dead last/less than one frag, 0% - 33%, 33% - 66%, 66% - 100%, and top player.

QUAKE is a registered trademark of id Software, Inc.
The bird in the Quaker Server Modifications logo is a cinnamon Quaker Parakeet (myiopsitta monachus). More information on Quaker Parakeets may be found on the Quaker Parrot Homepage
Copyright © 1997, Dark Grue.