Manual


Title    : ClanRing CRMod++ v6.6 Quake Competition Server
Filename : crmod66.zip
Version  : 6.6
Date     : March 12, 2017
Author   : J.P. Grossman (a.k.a. Mephistopheles)
Email    : jpg@alum.mit.edu
URL      : http://www.crmod.com

This is a Quake1 NETQUAKE mod.  It does not work with Quakeworld.  Do not send
us email asking us to make a Quakeworld version; we're not going to.


============
User's Guide
============

    /-------------\
0.0 Getting Started
    \-------------/

The following is a five-step self-help program to turn your plain old
computer into a bona-fide ClanRing CRMod++ v6.6 Quake server:

1. Create a subdirectory in your Quake directory called 'crmod' or whatever
   else you feel like calling it.
   
2. Unzip the contents of crmod65d.zip into this new subdirectory.  Make sure that
   whatever program you use to unzip the files preserves the directory structure
   contained in crmod65d.zip.

3. Edit autoexec.cfg, crmod.cfg, levels.cfg, ban.cfg and userdefs.cfg.  Each 
   of these files is commented with editing instructions.  Make sure you 
   change the passwords!  *Don't* give out password 0!!!

4. Run the crmake utility.  (crmake.exe in Win95/NT or crmake.linux in linux)

5. Start up your quake server with '-game crmod' in the command line replacing
   'crmod' with whatever name you gave your subdirectory.
   
Examples:  

  wqpro.exe -condebug -game crmod -dedicated +hostname godzilla 
  sqpro -condebug -game crmod -dedicated 16 +hostname bambi

The recommended quake executable for running a CRMod server is ProQuake
(http://quakeone.com/proquake).  It is also recommended that you use 
-condebug in the command line.  This will create a console log called
Qconsole.log in your crmod directory.  It is useful for seeing what has 
happened on your server, and it can also help the debugging process if you
encounter problems running crmod.  This file can also be given a different
name, or even named sequentially so that successive runs of the quake
executable don't overwrite previous log files (see the ProQuake manual
for details).

0.1 Recommended Settings
     
The following settings are recommended for FFA play:

-zone 512 -condebug -dedicated 12 -deathmatch 1 +pausable 0 +noexit 1 
+sv_aim 2 +timelimit 30 +fraglimit 50

zone 512 and condebug were explained above.  dedicated 12 allows for a 
reasonable number of players.  The maximum allowed by Quake is 16; this is 
almost always too many.  Most good servers set the limit to 10 or 12.  
deathmatch 1 is pretty standard and self-explanatory.  pausable 0 prevents 
players from pausing the game, which can be badly abused.  noexit 1 prevents 
a rapid progression through levels when there's always one person who doesn't
like such and such a level.  sv_aim 2 allows players to shoot where they aim -
it removes the vertical correction that is annoying to all experienced quake 
players.  timelimit and fraglimit are of course more subjective.. I have found
30, 50 to be quite reasonable.  Note the *absence* of teamplay 1; all serious 
quake servers use teamplay 0 to prevent really cheap tactics with grenades, 
rocket launchers and lightening gun discharges.

If the server is to be run in match mode, then -dedicated 16 is recommended
to allow for the maximum number of observers, and teamplay should be set to 2.

    /------\
1.0 Contents
    \------/

    0.0   Getting Started
      0.1   Recommended Settings

    1.0   Contents

    2.0   Play Modes

    3.0   Match Mode
      3.1   Joining a Match
      3.2   Timer
      3.3   Team Size
      3.4   Ghosts
      3.5   Match Start Points
      3.6   Spawning
      3.7   Overtime
      3.8   Number of Teams
      3.9   Teamplay / Individual mode

    4.0   Observer Modes
      4.1   Walk Mode
      4.2   Fly Mode
      4.3   Chase Mode
      4.4   Autochase Mode
      4.5   Tournament Chase Mode
      4.6   Eyecam Mode
      4.7   Camera Mode
      4.8   Autocam/QuakeTV
      4.9   Heads Up Display
      4.10  Smoothing
      4.11  Running Commentary

    5.0   User Commands
      5.1   Teamstats

    6.0   Administrator Mode
      6.1   autoss
      6.2   Privileged Administrators
      6.3   Banning
      6.4   vote-admin

    7.0   Server Console Commands
      7.1   Using 'skill'
      7.2   Setting the Passwords
      7.3   Freshspawns
      7.4   Banning and Unbanning
      7.5   AFK Settings

    8.0   Config Files
      8.1   crmod.cfg
      8.2   level-specific config files
      8.3   levels.cfg
      8.4   userdefs.cfg
      8.5   ban.cfg

    9.0   Entity and Camera Files
      9.1   newspawn
      9.2   killspawn
      9.3   newstart
      9.4   makeitem
      9.5   changeitem
      9.6   killitem
      9.7   makecam

    10.0  Qsmack Support
 
    11.0  ProQuake Support
      11.1  Muted Console Variables
      11.2  Team Scores
      11.3  Match Timer
      11.4  Ping Times
      11.5  'pq' command

    12.0  Other Features
      12.1  Statistics
      12.2  Autokicking
      12.3  Player Name Check
      12.4  Autoswitching
      12.5  Extended Obituaries
      12.6  Gibs
      12.7  Teamscores
      12.8  Deathmatch 3
      12.9  Ping Hiding Character
      12.10 READY in Scoreboard
      12.11 ASCII Names in Server Console
      12.12 IP hiding
      12.13 Smooth Attacks

    13.0  Bug Fixes
      13.1  Suicide during intermission
      13.2  Impulse 11
      13.3  Non-zero velocity on respawn
      13.4  Bad respawns in e3m7
      13.5  chase_active
      13.6  Glowing bodies
      13.7  Disconnect ghosts
      13.8  Connect failures
      13.9  Falling after discharge bug
      13.10 Disconnect after gib bug
      13.11 Bad teleport in start bug

    14.0  Bugs Not Fixed
      14.1  Reverse Telefrag
      14.2  Start with Stairs
      14.3  Teleport Time
      14.4  'Wigging'
      14.5  Flashing Glow

    15.0  Other Issues
      15.1  Listen server intermission crash
      15.2  exec levels.cfg
      15.3  Map initialization time
      15.4  Winquake listen server locks up on Intel machines

    /--------\
2.0 Play Modes
    \--------/

The CRMod++ server supports the following four play modes:

Normal   -  Standard FFA deathmatch mode.

Match    -  Match mode for tournament team play (see section 3)

Individual - Individual mode for tournament FFA play (see section 3.9)

Practice -  Phat respawns (200 armour, 100 health, all weapons)
         -  Unlimited ammo
         -  When you damage another player, the player name and the
            amount of damage are displayed on the screen
         -  When you are killed, the health of the person who killed you
            is displayed on the screen
         -  Weapon, ammo and backpack items do not appear (this reduces
            network traffic)

By default, the server starts up in normal mode.  To start it in match mode
use +samelevel 2 and +teamplay 1 or +teamplay 2 in the command line.  To start
it in individual mode use +samelevel 2 and +teamplay 0 in the command line.
To start it in practice mode use +samelevel 4.  Note: for some reason the 
+samelevel X command does not get parsed properly if it is at the end of a 
long command line.  So if you are having problems (i.e. server starts in 
Normal mode even with +samelevel 2) or if you just want to play it safe, 
place +samelevel X immediately after the quake program name, e.g.

winquake +samelevel 2 -dedicated 16 -game cr4 +hostname Banana_Split

You can also place these parameters in an autoexec.cfg file.  A sample
autoexec.cfg file is included in the zip file which starts the server in
match mode.

To change modes once the server has started, use the commands 'normal',
'practice', 'match' and 'individual'.  They can be entered either by an 
administrator or directly into the quake servers console.  When mode voting 
is enabled, players can also use these commands to initiate a vote to change 
modes.  Mode voting is toggled using the 'modevote' command, and is disabled 
by default.

    /--------\            
3.0 Match Mode
    \--------/

Match mode provides tournament play between two or more teams.  All players 
are gibbed at the start and end of a match, and a team's score is the sum of 
the frags of each player on the team.

3.1 Joining a Match

As in Clanring3.0, all players start in observer mode.  To join a team, first
choose a color by typing 'color <shirt> <pants>' in the console, or just
'color <pants>' (e.g. 'color 8 2').  Then type 'ready' to commit to the
team with the specified pant color.  To uncommit yourself type 'notready';
this only works *before* the match begins.  At any point before or during
the match type 'observer' to leave the match and become an observer.

You cannot join a match after T-5 seconds unless you are joining a team that 
has fewer players.  To add players after this point, e.g. to change a 3v3 to 
a 4v4, the countdown timer must first be stopped.

3.2 Timer

By default, the timer starts when there are two teams and all non-observers
are ready.  The match begins one minute after the timer starts.  If a player
uncommits the timer stops; it will restart (at T minus one minute) once
all players are ready.  All items will respawn at T minus 30 seconds.

If there are two teams present but someone is not ready, players may vote
to force the timer to start using the 'timerstart' command.  During
the match players may vote to pause the match using the 'timerstop'
command, then restart it using the 'timerstart' command.  At any point if
both teams become empty then the match is aborted and the timer is stopped.

The 'autopause' command can be used to enable automatic match pausing.  
When this feature is enabled, the match will pause automatically if a player 
becomes disconnected.

When fast match starts are enabled, the timer will start at T minus 20
seconds instead of T minus one minute.  Fast match starts are toggled using
the 'faststart' administrator command.  They can also be enabled/disabled
from the console (see section 7).

When the countdown timer reaches T-5 seconds, no new players may join
unless one of the teams still has fewer players.  For example, if at
T-5 seconds there are two red players and three blue players, then noone
may join the blue team but one player may join the red team.  In order to
allow someone to join the blue team, the timer must be stopped.

3.3 Team Size

Team size is set dynamically; when the match begins the team size is taken
to be the size of the largest team.  Once the match has started, a player may 
only join a team whose size is less than this teamsize.  To remove this 
restriction and allow players to join at will, match participants must vote 
to unlock the match using the 'unlock' command.  After new players have been 
joined, the team sizes can be re-capped using the 'lock' command.

3.4 Ghosts

When a player commits to a team they are assigned a two digit ghost code.
If the player becomes disconnected during the match, they can reconnect and
enter their ghost code using the 'ghost' command to rejoin the match and
restore their color, frags and statistics.  This is the ONLY circumstance
under which a player may ghost themselves; in particular a ghost code
cannot be used if the owner of the ghost is still connected to the server,
and if a player leaves a match by becoming an observer then their ghost is
destroyed.  If the player is able to reconnect to the server without
restarting quake, then they will not need to manually enter the ghost code; 
it will be entered automatically when they use the 'ghost' command.

In the event that a player disconnects while the match is paused or when
autopause is enabled (see section 3.2) and then reconnects and
ghosts back in while the match is still paused, they will be *completely*
restored.. armor, weapons, position, velocity, powerups.. the whole nine
yards.  However, if the match is unpaused while they are disconnected then
this information will be lost and they will be restored with color, 
frags and statistics only.

Players are given their ghostcode as soon as they ready up, and they can 
view it at any time before or during the match using the 'ghostcode' command.
The 'ghostcode' command will work even *after* the player is disconnected
from the server.  To prevent players from using someone else's ghost, only 
administrators can view the ghost database using the 'ghostlist' command.  
This may seem a bit draconian, but it works out; if a player is disconnected 
and forgets their ghostcode, then either it's not an important match in which 
case it doesn't really matter, or it *is* an important match in which case 
there should be an administrator present who can provide the player with 
his/her ghostcode.

3.5 Match Start Points

Match start points may be specified in addition to the usual spawn points to
prevent telefrags at the start of a match.  They are ONLY used at the start
of a match, and they are only used if there are more players than spawn
points.  Match start points for a level are specified in that level's
entity file (see section 9).

3.6 Spawning

All players spawn simultaneously at the start of the match independent of
whether or not they are pressing jump/fire.  During the match, press jump or
fire to respawn after being killed.  Players are respawned automatically
after being dead for 5 seconds.

3.7 Overtime

Players may use the 'otset' command to specify an overtime of sudden death,
1, 2, 3, 4, 5 or 10 minutes.  In sudden death the match ends as soon as the
tie is broken.  In all other cases if the match is tied at the end of the 
overtime period, the overtime will repeat until the tie has been broken.

3.8 Number of Teams

By default the maximum number of teams is 2.  This can be changed using the
administrator/console command 'maxteams'.

3.9 Teamplay / Individual mode

In match mode teamplay can be set to either 1 or 2.  If teamplay is 0 then the
server will be in Individual mode.  Individual mode is exactly like a match
mode in which all teams are of size 1 and different teams can have the same
color.  The only other difference is that scores are reported using player
names rather than team names.

    /------------\
4.0 Observer Modes
    \------------/

Anyone can become an observer by typing "observer", "walk", "flyme", "chase",
"autochase", "eyecam", "camera" or "autocam" in the console.  There are seven
observer modes corresponding to the last seven of these commands.  In
addition, there is a "tournament" mode for chase and autochase which is 
toggled using the "tourney" console command.

The observer moves around on their own in walk and fly mode; in all other 
modes movement is automatic.  In both walk mode and fly mode the observer 
automatically moves through doors, and teleports are functional.

To re-enter the game, use the "ready" console command.

4.1 Walk Mode

In walk mode the observer moves exactly as if they were a regular player, but 
of course they don't interact with the game at all.  This includes jumping
and moving in water.  The only difference is that up and down motion is
faster under water.  When in walk mode, hold down the fire button to fly.

Whenever a player appears in the line of sight, that player's name appears on 
the screen and their information appears in the status bar.

4.2 Fly Mode

In fly mode the observer moves exactly as if they were under water - this 
includes moving up and down (although the up/down motion, as in walk mode, is 
faster than in normal quake).  The following controls are used in fly mode:

jump        - move up
+moveup     - move up
+movedown   - move down
attack      - fly through walls

As in walk mode, whenever a player appears in the line of sight, that player's 
name appears on the screen and their information appears in the status bar.

4.3 Chase Mode

In chase mode movement is automatic; the observer chases the currently 
selected player.  That player's name appears on the screen and their 
information appears in the status bar.  The following controls are used 
in chase mode:

attack      - freelook
jump        - select next player
attack+jump - select previous player

4.4 Autochase Mode

Autochase is exactly the same as chase mode except that the server will 
periodically decide who the most interesting player is to chase.  The 
controls are exactly the same as for chase mode.

4.5 Tournament Chase Mode

In both chase and autochase modes, tournament chasecam mode can be toggled
using the "tourney" console command.  In tournament mode when there is an
enemy present their name will appear on the screen (in addition to the
name of the player being chased) and the camera will look in their direction.
Tournament chase mode is enabled by default.

4.6 Eyecam Mode

In eyecam mode the observer sees through the eyes of the selected player, 
rather than chasing them from behind.  As in chase mode, the selected player's 
name appears on the screen and their information appears in the status bar.
There is no auto mode or tournament mode for eyecam.  The controls are 
exactly the same as those for chase mode.

4.7 Camera Mode

In camera mode the observer simply sits at a camera and watches one of the
areas in the level.  It was included fairly specifically for the purpose of
setting up a few large displays to watch a live tournament.  The controls
for camera mode are as follows:

attack      - freelook
jump        - select next camera
attack+jump - select previous camera

In both camera and autocam modes, observers will see automatically generated
running commentary if there is a match in progress.

4.8 Autocam/QuakeTV

Autocam mode adds cameras to autochase, so in addition to switching from 
player to player the server will also occasionally switch to a camera.
The controls are exactly the same as for camera mode.  This mode is also
known as QuakeTV, and the "quaketv" command can be used to activate it.

4.9 Heads Up Display

There is an optional heads up display for showing player information in all
observer modes; it is toggled using the "headsup" console command.  The 
heads up display contains the player name, weapon, armor type and value,
health, ammo, and ring, suit and quad flags.  The match mode display 
"X up by Y" is not shown with the heads up display.

4.10 Smoothing

Chasecam, eyecam and camera modes appear perfectly smooth when using
ProQuake, available at

http://quakeone.com/proquake

If not using proquake, a partial smoothing can be achieved using the
"smooth" command to toggle camera smoothing.  This command does *not* use 
an impulse; it is an alias to directly toggle the console variable cl_nolerp.  
Smoothing does not help, and should not be used, in walk and fly modes, or 
during regular play.  The server will automatically turn smoothing off when 
an observer enters walk/fly mode or readies up.

4.11 Running Commentary

In match mode, observers will, by default, be given a running commentary
of the match.  This includes comments for when a player obtains a powerup,
for when a team has control, and a bunch of other stuff.  This commentary
can be toggled using the "commentary" command.

    /-----------\
5.0 User Commands
    \-----------/

help          impulse   description
----          -------   ------------
help-server     100     Show main help commands
help-match      129     Match mode help
help-misc       105     Misc commands
help-observer   101     Show observer commands
help-walk       144     Show observer walk mode controls
help-fly        145     Show observer fly mode controls
help-chase      146     Show observer chase mode controls
help-camera     156     Show observer camera mode controls
help-stats      179     Statistics commands help
commands        106     List all commands and impulses
levels          107     List all levels recognized by the server
vinfo           117     Show server version info

match         impulse   description
-----         -------   ------------
ready           120     Leave observer mode / commit to a team in match mode
notready        121     Used to uncommit in match mode
unlock          122     Request to unlock match (allows new players to join)
lock            130     Request to re-cap the team sizes
ready?          123     List the players that are not ready
timerstop       124     Request to pause a match
timerstart      125     Request to start/restart the timer
ghostcode       N/A     Display your ghost code
ghost           127     Restore yourself from a ghost
score           128     Show time left and score in match
+teamscores     N/A     Bind this to a key.  Shows time left and score.
rockets         133     Lists the players that have an RL
timer           124     Toggle on-screen match timer
timeset         215     Request to set the match timelimit
otset           216     Request to set the match overtime

observer      impulse   description
--------      -------   ------------
observer        140     Enter observer mode
walk            141     Enter walk mode
flyme           142     Enter fly mode
chase           143     Enter chasecam mode
autochase       155     Enter autochase mode
eyecam          149     Enter eyecam mode
camera          153     Enter camera mode
autocam         154     Enter autocam/quaketv mode
quaketv         154     Enter autocam/quaketv mode
commentary      147     Toggle running commentary
headsup         148     Enable/disable heads up display
tourney         151     Toggle tournament chasecam mode
smooth          N/A     Toggle camera smoothing for chase, camera and eyecam

statistics    impulse   description
----------    -------   ------------
killstats       170     View kill statistics for each player
efficiency/eff  171     View weapon efficiency statistics for each player
stats           172     View kill/weapon summary statistics for each player
quadstats       173     View kill/weapon quad statistics
badstats        174     View RL packs given up and damage done to self/team
teamstats       175     Various team statistics (see section 5.1)
autostats       178     Automatically dump statistics at the end of matches

misc          impulse   description
----          -------   ------------
rules           103     Show the server rules
admin           108     Enter administrator code
motd            109     Show the message of the day
admins          110     List administrators and the code they used (0-9)
autoweaponon    111     Enable autoweapon switching     
pq              112     Toggle ProQuake settings (see section 11.5)
autoweapon/aw   114     Toggle smart autoweapon switching
yes             115     Used for voting
no              116     Used for voting
ticrate         118     View sys_ticrate
ratings         183     View the player ratings
autopause       210     Request to enable/disable automatic match pausing
obits           211     Request to enable/disable extended obituaries
normal          217     Request to set playmode to 'normal' (FFA)
practice        218     Request to set playmode to 'practice'
match           219     Request to set playmode to 'match'
individual      220     Request to set playmode to 'individual'
setquad         221     Request to enable/disable quad
setpent         222     Request to enable/disable pentagram
setring         223     Request to enable/disable ring of shadows
nogibs          225     Request to disable gibs
lowgibs         226     Request to set gibs to 'low' (less network traffic)
highgibs        227     Request to set gibs to 'high' (default quake gibs)
vote-admin      251     Request to be given administrator privileges

The smartweapon setting prevents you from automatically switching to a 
weapon that you pick up if it's an explosive weapon or if it's the
lightning gun and you're under water.  Both autoweapon/aw and
autoweaponon control this setting; the difference is that autoweaponon
enables it whereas the other commands toggle it.

To request a level change, enter the name of the level in the console.
Valid level names are:

    start       - Start level; stairs appear if all runes are present
    start0      - Start level; force no stairs
    start1      - Start level; force stairs
    end         - End level
    e1m1-e1m8   - Episode 1
    e2m1-e2m7   - Episode 2
    e3m1-e3m7   - Episode 3
    e4m1-e4m8   - Episode 4
    dm1-dm6     - Deathmatch levels
    <any user specified level>

User specified levels are defined in userdefs.cfg and added to progs.dat
using the crmake utility.

All requests (timelimit, gibs, level change, etc.) are followed by a vote.
Votes are passed by majority.  Observer votes are given less weight than
non-observer votes.

5.1 Teamstats

The following statistics are reported by the teamstats command:

Q         - Number of quads obtained by the team
666       - Number of pentagrams obtained by the team
RING      - Number of rings obtained by the team
RL        - Number of RLs obtained by the team (not including paks)
LG        - Number of lightning guns obtained by the team
GL        - Number of grenade launchers obtained by the team
SNG       - Number of super nailguns obtained by the team
NG        - Number of nailguns obtained by the team
MH        - Number of megahealths obtained by the team
RA        - Number of red armours obtained by the team
YA        - Number of yellow armours obtained by the team
GA        - Number of green armours obtained by the team
+PAK      - Number of times a player with no RL picked up an enemy RL pak
-PAK      - Number of RL Paks dropped (including those not picked up)
Control   - Percentage of game during which the team had control

    /----------------\
6.0 Administrator Mode
    \----------------/

To become an administrator, use the command 'admin' and then enter the code
digits in the console one at a time.  If you make a mistake while entering 
the password, type 'admin' to start over.  Players who have the number keys 
0-9 bound to impulses 1-10 can use these keys to enter the administrator 
password instead of typing the digits in the console.  Administrators can 
participate in the game.

A server can have up to ten admin codes, numbered 0-9.  

Codes 1-9 are equivalent; the multiple codes are primarily for security 
purposes so that, for example, you can figure out who leaked your admin code, 
or take away a certain person's admin priviledges without changing the other 
codes.  Code 0 admins are priviledges (see section 6.2); it is recommended
that you do *not* give out code 0.

All user commands are available to administrators.  Requests are granted
immediately (there is no vote).  In addition, if a non-administrator
initiates a vote, then the vote is either passed or cancelled immediately
if the administrator enters 'yes' or 'no' in the console.

The following commands are available to administrators only:

command       impulse   description
-------       -------   ------------
help-admin      200     List admin commands
autoss          204     Force players to take a screenshot
crban           205     Ban a player from the server
bans            197     View the currently-banned IP addresses (code 0 only)
unban           198     Remove the temporary ban
ips             206     View player IP addresses (code 0 only)
dmset           207     Set deathmatch mode (1/2/3)
maxteams        208     Set the maximum number of teams for match mode
faststart       209     Toggle fast match starts
ghostlist       212     List all ghosts in the database
crkick          213     Kick a player
abortmatch      214     Aborts a match in progress
safepractice    224     Disable practice mode discharging and grenade spamming
modevote        228     Enable/disable voting to change modes
options         229     Brings up the on-screen options menu
nextspawn       246     Go to the next spawn point
makespawn       247     Create a new spawn point
nextcam         248     Go to the next camera
makecam         249     Create a new camera
spot            250     View coordinates and angles for current location
qsmack          37      Send a command to the Qsmack bot

The options menu can be used to set playmode, timelimit (for all modes),
fraglimit, overtime, gibs, teamplay, noexit, pausable, quad, pent, ring,
modevote, deathmatch and sys_ticrate.

6.1 autoss

The purpose of autoss is to catch cheaters in network games.  By forcing
players to take screenshots at unexpected times, players who use modified
graphics will not have a chance to change their graphics back to normal
or somehow hide the modification before taking a screenshot and sending
it in.

autoss does slightly different things depending on the situation.  If you are
eyecamming a player, then it forces that player only that player to take
a screenshot, and it also takes a screenshot for you.  You can then compare
the two screenshots to see if the player is using a cheat.  If you are not
eyecamming a player, then it forces *all* players to take a screenshot
simultaneously.  During a match, this will be a single normal screenshot,
and it is not taken for players using GLQuake due to the length of time it
takes GLQuake to generate a screenshot.  If a match is not in progress, this 
will actually produce a pair of more extensive screenshots; one screenshot 
will show the graphics with the current rankings displayed, and the other 
screenshot will show the console with the current search path displayed 
(used to detect pak2.pak).

For dm3 in match mode only, autoss will take a single screenshot for all 
players which places the viewpoint in the RL area and puts most of the 
models on the screen.  This screenshot cannot be taken during a match or
during the 10 second countdown; if 'autoss' is entered at one of these
times the then screenshot will be taken automatically upon match completion.
Note that although the placement of the models is deterministic, their 
orientation is not and should be checked for a matching screenshot.

In all cases, the screenshots will contain the name of the player and the
name of the administrator who issued the command:

Clanring screenshot by administrator
"name" is "player"

6.2 Priviledged Administrators

Administrators that use code 0 are "privileged".  In addition to the usual
administrator capabilities, privileged administrators can do the following:

- kick non-privileged administrators using the crkick console command
- view player IP addresses using the 'ips' command
- view the list of banned IPs with the 'bans' command
- ban up to 127 different IP addresses
- use the 'give' cheat in practice mode
- forward arbitrary commands to the server using 'cmd' while observing
  or while in practice mode

6.3 Banning

The banning procedure has been completely revamped in crmod 6.0, making use
of the new compiler technology.  The interface is now exactly the same as
for kicking: after typing 'crban', the administrator will be presented with
a list of players from which they can choose one to ban.  After choosing
the player, the administrator can choose to ban the exact IP, all IPs
matching the first three numbers, or all IPs matching the first two numbers.
When the player is banned, the server will kick them off.

Dedicated servers only:

Non-privileged administrators may ban only one IP at a time (referred to as
a temporary ban).  Privileged dministrators may ban as many IPs as they wish.
To remove the temporary ban (bans created by non-privileged administrators),
use the 'unban' command.  To unban one or more IP addresses which were banned,
by a privileged administrator, forward the 'unban' command to the server 
console using 'cmd' (see section 7.4).  To ban an IP which is not currently 
connected to the server, forward the 'crban' command to the server console 
using 'cmd' (see section 7.4).

Banning is preserved across level changes, but is reset upon server restart.
To ban IP addresses permanently, add them to ban.cfg (see section 8.5).

6.4 vote-admin

The vote-admin command allows a player to request administrator privileges.
If the vote is passed, they become an administrator with code 'V'.  They
have the same rights as non-code 0 administrators except that they 
cannot set deathmatch or maxteams, and they cannot create cameras or
spawn points.  Also, they can be kicked or banned by normal administrators.

    /---------------------\
7.0 Server Console Commands
    \---------------------/

The following commands can be entered directly into the console of a 
dedicated server (setpass is omitted here and described in section 7.2):

commands   - Show list of commands
vinfo      - Show server version info
sping      - EXACT client ping times
time       - Show how much time has elapsed on the current level
s          - Show server status, including elapsed time
score      - Show time left and score in match
ghostlist  - List all ghosts in the database
killstats  - View kill statistics for each player
efficiency - View weapon efficiency statistics for each player
stats      - View kill/weapon summary statistics for each player
quadstats  - View kill/weapon quad statistics
badstats   - View RL packs lost and damage done to self/team
teamstats  - Various team statistics (see section 5.1)
admins     - List administrators and the code they used (0-9)
ips        - View player IP addresses
bans       - List the currently banned players
crban      - Ban an IP address
unban      - Unban an IP address
normal     - Change playmode to 'normal' (FFA)
practice   - Change playmode to 'practice'
match      - Change playmode to 'match'
individual - Change playmode to 'individual'
nogibs     - Disable gibs
lowgibs    - Set gibs to 'low' (less network traffic)
highgibs   - Set gibs to 'high' (default quake gibs)
quadon     - Enable quad damage
quadoff    - Disable quad damage
penton     - Enable pentagram of protection
pentoff    - Disable pentagram of protection
ringon     - Enable ring of shadows
ringoff    - Disable ring of shadows
obitson    - Enable extended obituaries
obitsoff   - Disable extended obituaries
otset      - Set overtime (use 'skill')
maxteams   - Set maximum number of teams (use 'skill')
nopractice - Disable practice mode (only administrators can switch to it)
setafk     - Set time (minutes) before a player is marked as afk (use 'skill')
kickafk    - Set time (minutes) before an afk player is kicked (use 'skill')
autopauseon     - Enable automatic match pausing when a player disconnects
autopauseoff    - Disable automatic match pausing when a player disconnects
modevoteon      - Enable voting to change modes
modevoteoff     - Disable voting to change modes
levelvoteon     - Enable voting to change levels
levelvoteoff    - Disable voting to change levels
freshspawnson   - Enable fresh spawns
freshspawnsoff  - Disable fresh spawns
safepracticeon  - Disable practice mode discharging and grenade spamming
safepracticeoff - Enable practice mode discharging and grenade spamming
autostatson     - Automatcially dump statistics at the end of matches
autostatsoff    - Disable automatci stats dumping after matches
novoteadmin     - Disable the vote-admin command

7.1 Using 'skill'

The commands 'setpass', 'otset' and 'maxteams' each take a single numerical
argument.  This number is supplied by setting skill immediately *before* 
issuing the command, e.g.:

// Set the maximum number of teams to 3
skill 3
maxteams

The password can be any 4-7 digit number.  For overtime, a value less than 0
specifies sudden death, 0 specifies no overtime, and any positive number
specifies the length of the overtime in minutes.  'maxteams' must be at least
2 and at most 8.

7.2 Setting the passwords

Starting with version 5.1, a server can have up to 10 passwords.  The main
password is set using the setpass command from previous version, e.g.

skill 1234567
setpass

The nine additional passwords can be set using the command setpassX where
X is a digit 1-9, e.g.

skill 7654321
setpass4

All passwords must be at least 4 and at most 7 digits long, and cannot start
with zero.  As mentioned in section 6, all passwords provide the same admin
priviledges with one exception: administrators who used the main password
can kick administrators who used one of the additional passwords; other than
that one administrator cannot kick another.

Make sure that no password is an extension of another.  For example, if 
password 2 is 1234 and password 0 is 1234567, then noone will be able to use
password 0 (the server will recognize password 2 before they can finish
entering password 0).

7.3 Freshspawns

Freshspawns apply to FFA mode only.  If freshspawns are enabled, players will
start new levels with no armor, 100 health, 25 shells and no weapons other
than a shotgun.

7.4 Banning and Unbanning

Use the 'crban' command to ban up to 127 IP addresses from the server.  The 
syntax of the command is best explained by example.  To ban the specific ip 
24.129.6.17, type:

24;129;6;17;crban

To ban all ips of the form 24.129.6.xxx, type:

24;129;6;crban

To ban all ips of the form 24.129.xxx.xxx, type:

24;129;crban

Note that the ip address bytes are separated by SEMICOLONS, NOT PERIODS.  IP
addresses may be unbanned using the 'unban' command.  'unban' has exactly
the same syntax as 'ban'.  'unban' causes the removal of *all* matching
bans, where a matching ban is any ban which would prevent the IP being
unbanned from connecting to the server.  For example, suppose the server
is currently banning the following addresses:

128.52.34.15
128.52.34.xxx
128.52.xxx.xxx

Then typing "128;52;34;15;unban" removes all of these bans, since any one of
these bans would prevent 128.52.34.15 from connecting.  Typing 
"128;52;34;unban" removes the second and third bans but not the first,
since the first ban does not necessarily prevent an address of the 
form 128.52.34.xxx from connecting to the server.

The crban and unban commands may be forwarded to the server console by a 
privileged administrator.  ProQuake users may forward the banning command
as follows:

cmd 128;52;34;15;crban

Standard quake users must forward each piece of this command seperately as 
follows:

cmd 128
cmd 52
cmd 34
cmd 15
cmd crban

'unban' is forwarded to the server in exactly the same manner as 'ban'.

Banning is preserved across level changes, but is reset upon server restart.
To ban IP addresses permanently, add them to ban.cfg (see section 8.5).

7.5 AFK Settings

The setafk and kickafk commands are used to control AFK (Away From Keyes)
settings.  Use setafk to set the time in minutes before a player is 
marked as AFK.  They can remain on the server, but are not counted
in votes.  Use kickafk to set the time in minutes before an AFK player
is kicked from the server.  Defaults are 5 minutes for setafk and 30
minutes for kickafk.  Use of a lower setting for kickafk is not
recommended as it is conceivable that someone might set up a demo
for a match and then leave the computer running to record the game.
Use 'skill' to set these values, e.g.

skill 60
kickafk

To disable either AFK setting, set it to 0.

    /----------\
8.0 Config Files
    \----------/

There are four configuration files used by the crmod server: crmod.cfg,
levels.cfg, userdefs.cfg and ban.cfg.  crmod.cfg, levels.cfg and ban.cfg
are read by the server directly.  userdefs.cfg is not read by the server; 
it is incorporated into progs.dat using the crmake utility (see readme.txt 
for instructions).

8.1 crmod.cfg

The file "crmod.cfg" contains server settings.  Any console command can be
used in crmod.cfg.  Additionally, the regular quake commands 'timelimit',
'fraglimit', 'pausable', 'noexit' and 'deathmatch' can be used to set these
variables.

crmod.cfg is read by the server at the start of each level.  Commands in 
crmod.cfg can be executed conditionally depending on the server mode.  If 
you want certain commands to be executed only in normal mode, precede them 
with the '[normal]' directive.  The same holds for practice, match and 
individual modes ('[practice]', '[match]' and '[individual]' directives).  
If you want certain commands to be executed only once at server startup,
precede them with the '[init]' directive.  If you want certain commands to
be executed each time a new level starts, then do not precede them with
any directives (i.e. put them at the start of the file).

Make sure that one of the 'setpass' commands is issued each time the server 
starts a new level, or the administrator password will be disabled.  Unless 
for some reason you want a different password for different modes, then it is
recommended that you put the 'setpass' command at the start of the file to
ensure that you don't accidentally precede it with one of the conditional
directives.

8.2 level-specific config files

In addition to crmod.cfg which is read at the start of each level, you can
define level-specific config files which customize crmod settings for 
individual levels.  Simple add the file <levelname>.cfg to the config
directory (e.g. dm3.cfg for level dm3).  The format of this file is 
exactly the same as the format for crmod.cfg; in particular you can use
the directives [normal], [practice], [match], [individual] and [init].
The settings in level-specific config files override the settings in 
crmod.cfg.

8.3 levels.cfg

The file "levels.cfg" sets the order of levels for normal (FFA) or practice 
mode.  The file should contain a list of levels to loop through, one level 
per line.  Valid level names are those listed in section 5.  A single level 
can appear multiple times in the order.  THIS FEATURE IS ONLY AVAILABLE FOR
DEDICATED SERVERS.

8.4 userdefs.cfg

The file "userdefs.cfg" sets the maximum number of suicides per level, the
user-specified levels, the user MOTD, and the Qsmack logon password.

8.5 ban.cfg

To ban IP addresses from the server permanently, add them to ban.cfg.  This
file is executed once on server startup.  Up to 127 IP addresses may be 
banned in this file, one per line.  The syntax for each line is the same
as the syntax for the crban command described in section 7.4.  If you edit
ban.cfg while the server is running and want to reload the file, simply
type "exec ban.cfg" in the server console, or become a code 0 privileged
administrator and type "cmd exec ban.cfg" in the console (recall that you
must be an observer, or the server must be in practice mode, for this to
work properly).

    /---------------------\
9.0 Entity and Camera Files
    \---------------------/

When running a DEDICATED server it is possible to add cameras and edit level 
entities.  The entities directory contains, optionally, one entity file for 
each level.  The cameras directory contains, optionally, one camera file for
each level.  When a level starts, the server attempts to read the entity and 
camera files for that level.  The general format for an entry in an entity 
or camera file is as follows:

scr_ofsx <x-coord>
scr_ofsy <y-coord>
scr_ofsz <z-coord>
v_ipitch_level <pitch>
v_iyaw_level   <yaw>
v_iroll_level  <roll>
<entity declaration>

Use the administrator command 'spot' in walk or fly mode to obtain coordinates
in a level.  The following sections describe specific declarations which can 
be used.

9.1 newspawn

scr_ofsx <x-coord>
scr_ofsy <y-coord>
scr_ofsz <z-coord>
v_iyaw_level   <yaw>
newspawn

This creates a new deathmatch spawn point at the given location and with
the given angle.

9.2 killspawn

scr_ofsx <x-coord>
scr_ofsy <y-coord>
scr_ofsz <z-coord>
killspawn

This removes the deathmatch spawn point at the given location (see e3m7.ent).

9.3 newstart

scr_ofsx <x-coord>
scr_ofsy <y-coord>
scr_ofsz <z-coord>
v_iyaw_level   <yaw>
newstart

This creates a new match start point at the given location and with the given 
angle.  Match start points are described in section 3.5.

9.4 makeitem

scr_ofsx <x-coord>
scr_ofsy <y-coord>
scr_ofsz <z-coord>
skill <item number>
makeitem

This creates a new item at the given location.  The item is specified by skill
as follows:

skill        item
-----        ----
  1          15 health
  2          25 health
  3          mega health
  4          green armour
  5          yellow armour
  6          red armour
  7          20 shells
  8          40 shells
  9          25 nails
  10         50 nails
  11         5 rockets
  12         10 rockets
  13         6 cells
  14         12 cells
  15         super shotgun
  16         nailgun
  17         super nailgun
  18         grenade launcher
  19         rocket launcher
  20         lightning gun
  21         radiation suit
  22         quad damage
  23         pentagram
  24         ring of shadows

9.5 changeitem

scr_ofsx <x-coord>
scr_ofsy <y-coord>
scr_ofsz <z-coord>
skill <item number>
changeitem

The server looks for an item at the given location and changes it to the 
specified item.  The new item is specified by skill as in section 9.4.

9.6 killitem

scr_ofsx <x-coord>
scr_ofsy <y-coord>
scr_ofsz <z-coord>
killitem

This removes the item at the given location.

9.7 makecam

scr_ofsx <x-coord>
scr_ofsy <y-coord>
scr_ofsz <z-coord>
v_ipitch_level <pitch>
v_iyaw_level   <yaw>
makecam

This is the declaration which is used in camera files to create a new camera.

     /------------\
10.0 QSmack Support
     \------------/

There are three things you need to do to set up QSmack to run with CRMod++:

i)  Set ban_impulse to 20 in the QSmack config file.  This is not a typo;
    CRMod++ does *not* use the standard ban_impulse of 220.

ii) Set the five QSmack logon impulses in the QSmack config file using numbers
    in the range 20-250.

iii) Set the five user variables QSMACK1 - QSMACK5 in userdefs.cfg to match
     these logon impulses

For example, here is a valid QSmack config file:

quakeserver            starcastle.idle.com:26000
player_name            theBot
shirt_color            0
pants_color            0
log_file               26000.log
ban_impulse            20
init_impulse           99
init01_impulse         20
init02_impulse         250
init03_impulse         107
init04_impulse         69
banfile                ban.26000
stats_file             stats.log
listen_port            36000
password               PeelMe

To make it work with your CRMod++ server, set the QSMACK variables in
userdefs.cfg as follows:

QSMACK1 = "99";
QSMACK2 = "20";
QSMACK3 = "250";
QSMACK4 = "107";
QSMACK5 = "69";

Server administrators can send commands to the QSmack bot using the 'qsmack'
console command (aliased to impulse 37).  For more information, consult the
QSmack website:

http://lemur.stanford.edu/clan9/qsmack/

     /--------------\
11.0 ProQuake Support
     \--------------/

crmod has native support for ProQuake.  ProQuake is the recommended version of
quake for both running crmod servers and connecting to crmod servers.  The 
following sections list the ProQuake features which are directly supported by
crmod.

11.1 Muted Console Variables

In unmodified quake, certain console variables are designated as "server"
variables, and when they are changed a message is automatically broadcasted
to all clients.  This causes some undesirable spamming when crmod.cfg is
read, and also when timelimit changes every minute during a match.  ProQuake
servers provide a mechanism to mute these console variables to eliminate
this spamming; crmod uses this mechanism to mute the variables "timelimit"
and "fraglimit".

11.2 Team Scores

When a ProQuake client connects to a crmod 6.0 server in match mode, the 
server sends team colours and scores to the client.  The team scores are 
displayed in the status bar in lieu of the individual scores.

11.3 Match Timer

ProQuake clients by default display a timer in the status bar; in match mode
this timer gives time remaining.  This feature works for *all* crmod servers,
but it is most accurate on crmod 6.0 servers, as crmod 6.0 sends explicit
messages to the client giving the current match time.

11.4 Ping Times

ProQuake clients by default display ping times in the scoreboard.  This
feature works for any server (crmod or non-crmod).  Ping times are normally
updated once every five seconds while the scoreboard is being displayed,
but crmod 6.0 sends messages to update the ping times once every second.

11.5 'pq' command

The 'pq' command can be used to inform the crmod server that you are using
ProQuake and have it act accordingly.  Currently, the only difference this
command makes is that the match time remaining messages are only printed
every five minutes, not every minute (since ProQuake has a match timer 
in the status bar).

     /------------\
12.0 Other Features
     \------------/

12.1 Statistics

The server maintains kill, weapon, quad and 'bad' statistics for each player.
The  kill statistics are: total frags, number of enemies killed, number of 
teammates killed, number of times killed self, and number of times killed by 
enemy.  The weapon statistics give efficiencies for bullets, nails, rockets 
and lightning gun.  For each of these, efficiency is equal to the total damage
done to enemies and shootable switches divided by the total damage fired.
'damage fired' is computed as follows:

    attack          damage fired
    ------          ------------
    shotgun             24
    super shotgun       56
    nailgun             9 per nail
    super nailgun       18 per nail
    rocket              120
    rocket jump         0
    lightning gun       30 per frame
    discharge           not counted

Rockets that don't hit near an enemy and aren't fired near an enemy are
assumed to be "defensive" shots are not counted towards efficiency.
Statistics for each player may be viewed using the 'killstats', 'efficiency',
'quadstats', 'stats' and 'badstats' commands.  The 'stats' command gives 
overall weapon  and kill efficiency, where weapon efficiency is equal to the 
total damage done divided by the total damage fired, and kill efficiency is 
equal to the number of enemies killed divided by the total number of kills 
that the player was involved in (enemies, self, teammates, killed by other).
The 'badstats' command shows statistics for player blunders; it gives the
percentage damage done to teammates, percentage damage done to self, and
number of RL paks given up to the enemy.  Statistics can be automatcially
dumped at the end of matches using the 'autostats' command.

12.2 Autokicking

The server will automatically kick any player who suicides more than the
maximum allowed number of times (specified in userdefs.cfg) times on the same
level.  The server will also kick any player that becomes disconnected for 20
seconds (this prevents the other team from racking up bogus frags).  Finally,
the server will kick any player that tries to hack the admin code.

12.3 Player Name Check

Clients that connect with names "" or "unconnected" are renamed to "player".
Clients that rename to "" or "unconnected" while playing are kicked.  Also,
any double quotes that appear in a player's name are converted to single
quotes as double quotes can cause problems for the quake engine.

12.4 Autoswitching

When smart weapon switching is enabled, you will not switch to lightning gun
when it is acquired underwater (either by picking it up directory or by 
getting a backpack).  You will also not switch to rocket or grenade launcher 
when these items are obtained from a backpack.  Smart weapon switching is
toggled using the 'autoweapon' command ('aw' for short).

12.5 Extended Obituaries

The regular quake obituaries were getting old, so we added some new ones.
For those who are purists and insist on sticking to the regular obituaries,
the 'obits' command toggles extended obituaries.

12.6 Gibs

Three gibs settings are provided: high, low and disabled.  'High' gibs is the
default quake gibbing, and is meant for servers where most players have good
connections.  'Low' gibs reduces network traffic significantly by using fewer 
gibs which disappear sooner; it maintains the gibbing effect in a more 
HPB-friendly way.  Players are not gibbed if gibs are disabled; this setting 
has the lowest network traffic and should be used if the gibs are lagging some
of the players.

12.7 Teamscores

There is a new command, +teamscores, which should be bound to a key.  When 
the key is pressed during or after a match, the team scores and animated time
remaining are displayed in the scoreboard.

Example of binding +teamscores to a key:

bind q +teamscores

12.8 Deathmatch 3

The original release of quake featured two deathmatch modes: deathmatch 1
(standard) and deathmatch 2 (weapons didn't disappear when picked up;
items didn't respawn).  Clanring 4.0 features a third mode, deathmatch 3,
in which weapons don't disappear but items *do* respawn, and ammo
respawns in 15 seconds as opposed to the more standard 30.  To enter this
mode, type "deathmatch 3" in the server console, or use the console 
command 'dmset', or use the administrator command 'dmset'.

12.9 Ping Hiding Character

It is fairly well known that character 13 can be included in a player's name
to hide their ping.  crmod 6.0 changes this character to character 141 which
looks exactly the same but does not hide pings.

12.10 READY in Scoreboard

In match and individual modes, READY is shown in the scoreboard after the
names of those players which have readied up.

12.11 ASCII Names in Server Console

When any of the statistics commands are entered in the server console, the
player names are all displayed using ASCII characters so that they can be
read without using DeQuake.  This is particularly useful for automatically
generating readable match statistics using the 'autostats' console command.

12.12 IP hiding

One of the oldest problems with quake is that it displays player IP addresses
for all to see, giving rise to nuking and qkicking.  Exact IP addresses are
finally hidden by masking out the last number, so for example the IP address
128.52.38.15 will only be visible as 128.52.38.xxx.

12.13 Smooth Attacks

The original QuakeC code causes player viewangles to jitter when a weapon is
fired, resulting in a "vibrating screen" effec, particularly when using
the super nail gun.  This jitter has been removed.

12.14 Player Ratings

The server keeps track of ratings for all connected players based on every
kill.  A player's rating is initialized to 1000 when they connect to the 
server and is updated based on a variant of the ELO rating algorithm.
Player ratings persist across level changes, and can be viewed by players
and in the dedicated server console using the "ratings" command.

     /--------\
13.0 Bugs Fixes
     \--------/

13.1 Suicide during intermission

In original Quake you can suicide ("kill" command in console) during the 5 
second interval between levels.  It's very strange because you reappear with 
size zero and you can move around.. try it the next time you suspect you are
on a server that might not have this bug fixed!

13.2 Impulse 11

This is the cheat command that makes runes appear in the bottom right hand 
corner.  In original Quake, the cheat command was not disabled for deathmatch 
play and any player could enter it.  Due to another bug in original quake,
this could lead to a "trapped at start with stairs showing" condition.

13.3 Non-zero velocity on respawn

In original quake, gibbed players who respawned before their heads stopped
bouncing would respawn with their old velocity.  This has been fixed.

13.4 Bad respawns in e3m7

Players who were killed in e3m7 often respawned exactly where they died
(which is particularly bad if they died in lava).  This was due to a bad
spawn point which has been removed (see section 9).

13.5 chase_active

Winquake has a console flag called chase_active which is not disabled in
multiplayer games.  When set, it places the viewpoint behind the normal
location which, when a player is backed up against a wall, can allow the 
player to see other parts of the map (thus a team could potentially use
this to cheat).  chase_active has been disabled in CRMod++.

13.6 Glowing bodies

Players who die or disconnect with quad damage or pentagram lose their
glow.  No more radioactive bodies.

13.7 Disconnect ghosts

A bug in the Quake code sometimes allows clients to disconnect improperly,
leaving behind a white ghost.  These ghosts are automatically detected and
removed in CRMod++.

13.8 Connect failures

One of the more notorious bugs in Clanring 3.x was the one that prevented
players from connecting, often requiring multiple attempts.  This issue has
been resolved.

13.9 Falling after discharge bug

After a suicide by discharge, the original QuakeC code did not properly reset 
a flag indicating vertical velocity.  The result was that when the player
respawned they would go "ungh!" and lose 5 health as though they had fallen
from a great distance.

13.10 Disconnect after gib bug

Part of the player entity was not reset correctly in the original QuakeC
code if a player disconnected immediately after being gibbed.  This would
usually cause the next player coming along to be unable to connect to
the server.

13.11 Bad teleport in start bug

For some reason there is a hidden teleport in the start level in that pit
you jump into to get to the final level.  Under normal circumstances it has
no effect because there is also a changelevel trigger that always gets
touched first.  However, in match mode all changelevel triggers are removed.
This exposes the teleport which has no destination, and this causes the
server to crash when someone jumps in the pit.  It's hard to say if this is
really a bug in quake since it had no effect in original quake, but it's
certainly a sloppy mistake on the part of the level designer - one that has
been fixed in crmod 5.0.

     /------------\
14.0 Bugs Not Fixed
     \------------/

Some QuakeC bugs were found but not fixed because they weren't too drastic
and fixing them would affect game play.  They are mentioned here for the sake
of completeness and interest.

14.1 Reverse Telefrag

Players who teleport onto a player protected by the pentagram were originally
supposed to get fragged themselves with the message "Satan's power deflects
<player>'s telefrag".  However, this was never quite implemented.  The result
is that 50,000 damage points are done to the player with the pentagram (the
usual telefrag).  However, the pentagram keeps the player alive, so the only
effect that the damage has is to nuke whatever armour was left and give the
player one HELL of a push (the momentum that is added when damage is
sustained is proportional to the amount of damage, in this case 50,000).  The
result is that the player suddenly finds himself in a very different place.
This obviously doesn't happen very often, but it's strange as heck when it
does.

14.2 Start with Stairs

There was never supposed to be a start deathmatch level with the stairs 
showing.  The floor of that area has a special flag that causes it to 
disappear when all four runes are present; this opens the way to the
teleporter that takes you to Shub-Niggurath in non-deathmatch play.  But
there is also a wall which has a flag that causes it to appear in deathmath
play.  The result is stairs that don't lead anywhere!  The original QuakeC
code tried to avoid this by never going back to start with all four runes.
It failed.  The result was a start with stairs, and the "trapped at start"
problem mentioned earlier.  Since some players may actually enjoy this odd
level, it has been included as 'start1' in the crmod server.

14.3 Teleport Time

There is supposed to be a delay time after teleporting during which you
cannot teleport again, but this was not fully implemented.  HPB's are quite
familiar with the result of this on DM5.

14.4 'Wigging'

In rare circumstances a player model can get stuck cycling through ALL
walk, run, weapon and death animation frames while the player runs
around.  This is referred to as 'wigging'.  It virtually never appears
during real play and is funny as hell to see, so I've left it in.

14.5 Flashing Glow

When a server has been on the same level for a really long time, the quad
and pent glows get messed up and become flashy and annoying.  I have no
idea what causes this or how to fix it.  As a workaround, CRMod 6.4 and
above will restart the level if the level has been active for over six
hours and the server is empty.

     /----------\
15.0 Other Issues
     \----------/

15.1  Listen server intermission crash

For some reason if a new player joins a listen server during intermission, the
server crashes with the message

Host_Error: Received signon 1 when at 1

I don't know why this happens, but there is an obvious workaround.. the guy 
sitting at the listen server can type "map <whatever>" and the clients can
reconnect.  If there's no guy sitting there.. then why are you running a
listen server?

15.2  exec levels.cfg

If you want to see crmod crash spectacularly, type "exec levels.cfg" in the 
server console.  Not recommended for the faint-hearted.

15.3  Map initialization time

To prevent possible problems with intermission, starting in version 5.1
levels.cfg is processed at the start of each level.  Until the processing
is complete (usually takes a few seconds) exits are disabled, and attempts
to change the level or mode will be greeted with "Wait for map to initialize".

15.4  Winquake listen server locks up on Intel machines

Due to some details of the way in which winquake handles floating point
numbers, winquake listen servers will lock up on Intel machines when
running crmod 6.0.  This problem does not affect previous versions of
crmod, GLQuake, or Athlon systems.  A workaround is to use -dibonly in the 
command line, which diminishes graphics performance slighly but prevents the 
system from locking up.  Another workaround is to purchase an Athlon system
which will also prevent the system from locking up and which will improve
graphics performance considerably.


Send questions/comments/suggestions/bug reports to jpg@alum.mit.edu