ServerConfigMOD Version v3.2 DeathMatch 
Giving the Power & Flexibility to any Quake 2 
Server Operator
Written by Patrick "Gutspiller" Stepp
E-Mail: sconfig@quake2.com
Thanks to all those who have contributed their ideas, code and beta 
testing time into this project!

Highlight of some new features:


* NEW in 3.2:  Added error checking for highscore files.  If the file
               cannot be "written" because of an improper path, or
               for whatever reason, this will no longer bomb the
               server, but rather inform the console the problem and
               offer suggestions on what to fix.

               Chat Flood Protection: From the Q2 3.20 source code, and
               now in ServerConfigMOD v3.20... Admin can configure via
               console the 'flood_msgs' (4) default, it takes to silence
               a user, 'flood_persecond' (4) default, how long between
               chat attempts before silencing, and 'flood_waitdelay' (10)
               default, how long a user has to wait to be able to talk
               again after being silenced.

	       IP Filtering:  Also using the default idSoftware code,
               this way of banning/allowing specific IP's and subnets is
               as simple as it gets!  Accessed via the 'sv' command from
               the console, an admin can 'sv addip', 'sv removeip', 
               'sv listip' and 'sv writeip'.  Be sure to add the
               parameter '+exec listip.cfg" to your shortcut (default).
               Use the variable 'filterban 1' (default) to ban ip's, and
               'filterban 0' to only allow those ip's you specify.


High Scores 
    Fully compatible with LFire highscore datafiles for those admins who use 
    it for easy upgrade
    Dynamically creates highscore datafiles if none are detected (no need for 
    template files)
    Top 10 list displayed at the end of level (allowing 16 characters in names) 
    Empty slots will display as <EMPTY>
    Upon request I can offer a Top 15 list with 11-12 chars in the name.  I 
    find most beta testers and users enjoyed having 16 characters for their 
    name to minimize their name or name and clan cut off on the high
    score list.
Fast Change Weapons
    As per many users and server admins requests, fast weapon changing is 
    now active by default.  You can easily change it back t the default setting 
    in the config file under the FastChangeWeapons variable.  
In Game Chase Cam Feature
    New connects can stay in "float" mode, or enter chase cam and follow players
    Current players in game can ALSO SELECT chase cam or enter "float mode"
    See below details for the specifics on its functionality
Off Hand Grapple Support
    Thanks to ExpertDM grapple routines, ServerConfigMOD now allows a 
    server admin to enable or disable grappling hook support.  Players need only 
    bind a key to +hook.
Enhanced Cloaking Options
    Adding an entirely new dimension to gameplay, cloaking allows a player 
    when stationary to become invisible.  Again, the server admin can enable 
    or disable this feature.  This feature uses a players cells as energy to 
    power the cloak.  The draining speed can be configured as well by the admin.
ZBot Detection and Automatic Removal
    Nothing like a cheater using a Zbot to ruin your highscores, disgruntle 
    your players and suck bandwidth.  ServerConfigMOD automatically will 
    announce, toss out, and record to a logfile ZBot users name,  IP and
    more.

Introduction:
What is ServerConfigMOD?  ServerConfigMOD (sconfig for short) is a 
server side only MOD (like many others).  But that's where the similarities 
end.  With sconfig you, the server operator, has FULL control over how you 
want your server to be set up, and with many features other MODs don't 
have.  All settings  are initially made via a primary configuration file 
(config.txt) along with some miscellaneous support files.  These include 
custom Server Obituary messages, name banning and map cycling  to allow 
complete control.  You also have full control to change just about all 
settings at the console or while playing on the server itself via the 
commands listed in `sv help'. Remote admins only need you rcon password 
to access these via `rcon <password> sv <command>'.

The Possibilities are Practically Endless:
Whether you want to run a strict DM server, balanced weapon server, or 
any other custom server with features like cloaking, accelerated weapons 
and projectile speeds, the bottomline is you can do anything you want with 
it.  No programming, no hassles, and the freedom to experiment and create 
your own signature server.

I start my server but it crashed. Why?
Most common problem is you incorrectly modified your cycle.txt file, see 
the cycle.txt section in this document.  Next most common mistake is 
mixing ;comment lines in the middle of the key/value pairs in the config.txt 
file. Best thing to do if you can't figure out what is wrong is to email 
sconfig@quake2.com your config.txt, server.cfg and cycle.txt files.  I 
recommend starting YOUR server for the very FIRST time with the 
"default" setup.  After you verify all is running well, play around and have 
fun with the settings.

Why Should I Use SeverConfigMOD or Switch?
Why be satisfied with your current MOD when this one can do exactly the 
SAME thing plus more?  As with anything, it is hard to satisfy every user or 
admin, but just take a look at what you CAN do and what others CAN'T.  
Ever wish a few things weren't setup the way they currently are, well you 
should give sconfig a try and change what you wish.

Platforms Supported:
Now sconfig is available in both Win 9x/NT and Linux.  I've compiled the 
Linux version under RedHat 5.2.  There are two distributions for Win 
9x/NT, make sure you get the right one.  If you have installed Quake 2 in 
some other directory than the root of  C: or D:, and because the possibilities 
are endless, be sure to visit http://quake2.com/sconfig for the latest 
instructions which outline what files need to be modified to include your 
proper directory paths. YES, a Linux version will be made available within 
2-3 weeks (max) after the Win 9x/NT distribution is posted online for 
download.
 
I just ran the installation program, how do I start the server?
You are ready to run in `vanilla' mode immediately after installation.  
Browse to your Quake2/sconfig30 directory and double click on the 
`sconfig30DM' shortcut.  If you want to start in dedicated mode, you can 
click on the shortcut with the dedicated keyword in its name.  Or you can 
edit the sconfig30DM shortcut by adding `+set dedicated 1' to the command 
line.  Linux users see specific docs included in the Linux distribution for 
your start parameter details.

** Server Settings **

Chase Cam (Accessible to players before they join the game and during 
their game) -  
* If player dies, spectator STAYS with them, when the player respawns 
(if not automatically depending on DM FLAGS) the spectator 
follows.
* If spectator is following a player, and the spectator  re-selects Chase 
Cam, the spectator will enter float mode.
* If player in gib state after death, the player entering chase cam would 
first attempt to follow the next player available, if none  are available 
to chase the game will bring them to "float mode".
* If player dies, and player enters chase cam, spectator will enter "float" 
mode. 
* If player dies, and player is gibbed, sepctator will enter "float" mode

Fraglogging for use with  QuakeWorld Parsers - Support for using Perl 
scripts and other pre-existing programs to analyze your frag data.  By 
default this setting is turned off (set to 0) in the config.txt file, due to the 
superiority of  the ever popular GibStat logging which is enabled.  Both 
QW Style fraglogging and GibStat logging can be simultaneously activated, 
deactivated or any combination if so desired.

Fraglogging for use with GibStats - Full GibStat logging is enabled with 
the distribution.  Settings are by default set in the server.cfg file.  The 
default file name for logging is `StdLog.log', a setting also defied in your 
server.cfg file.  Change this to whatever name you wish or leave default.

Message of the  (MOTD) - You can modify your message of the day via 
the config.txt file.  To highlight a particular line simply place an asterick (*) 
before the text.  Default text is white, highlighted text is green.  The 
message of the day screen is displayed to the user before they enter the 
game.  Players have the option of hitting the right and left brackets (`]' and 
`[`) to select Continue to enter the game and select different players to 
follow via `Chase Cam'.

VWEP support - Make sure both your server and the clients that connect 
to your server use the latest Vwep patch.

Name Banning - Banning an `exact match' of names are enabled by 
default (1). When set to (0) the name banning routine can search for the 
banned text anywhere in the name.  If set to (0),  if `punk' was in the 
banlist.txt file then no user would be able to connect to the server with 
names such as: `punk', `badpunk', `punker', `punkrock', etc. The default 
setting of (1) is straightforward, if you have a name of `punk' in the 
banlist.txt file, only that user `punk' (case insensitive) will be banned.  
Also, server operators can change this setting on the fly via `sv 
matchfullname' with a 0 or 1 as a value.   Put as many names in here is you 
like.  Note if you enable name banning but remove or have no entries in the 
banlist.txt file your server will turn away everyone. If you keep the default 
and add to it, you will have no problems.

Player Kicking - This feature is already built into Quake 2.  Remote admin 
users can use `rcon <password> stats' to get a list of players and 
their ID's.  Then they can use `rcon <password> kick <ID 
#>.......' to boot the user.  Players which have been automatically 
detected with ZBot will automatically be kicked.  Local server admins will 
not use the preceding rcon keyword, but simply just stats and kick 
<ID #>.

Client Logs - When ClientLog is set to on (1) which is the default, the 
server operator can see who is connecting and disconnecting, the clients IP, 
the time of the connect and their rate they entered the game under.  Use 
`ClientLogName' located in the config.txt file to change the name of the 
path and logfile.  Most admins won't have to change this setting, simply 
changing ClientLog from 1 to 0 will disable logging of this kind. (See Max 
Player Rate for sample logfile output.)  Disconnects via those players being 
kicked due to automatic ZBot detection will be recorded in logfile as well.
 
Max Player Rate -  Below is a sample logfile, the first entry is the local 
user running the server connecting, the next shows a client connecting at the 
rate of 8000, then the MaxClientRate setting shows that a user tried to 
connect at a setting higher than the allowed, and thus was re-adjusted before 
entering. Thanks to ThreadZ for some initial beta code!  NOTE: Version 2.6 
and 2.7 did not handle the rate properly, however has been fixed with a 2.7 
update and of course is fixed with the 3.0 release. 

Connect,,Sat Oct 31 16:33:33 1998,,GuTSpiller,,10.100.20.236:27901,,8000
Disconnect,,Sat Oct 31 16:34:23 1998,,GuTSpiller,,
Connect,,Sat Oct 31 16:34:43 1998,,GuTSpiller,,10.100.20.236:27901,,MaxClientRat
Disconnect,,Sat Oct 31 16:35:19 1998,,GuTSpiller,,

Cloak Setting (On/Off) - This setting is turned off by default, I suggest 
you have some fun with this great feature and turn it on and play with it for 
a while.  It truly is unique.  This setting is found in the config.txt file and 
can be activated by changing the default value from 0 to 1.

Client Cloaking Drain Speeds - With cloaking activated on your server, 
you can modify how fast it is used up should it be activated by a client.  
Values are from 0 to 10.  This value is the approximate number of cells per 
second which is drained from the users arsenal with cloak activated.  
Depending on the clients "framerate" the cell drain is affected, allowing 
better fairness to all users. Cloaking does not become activated unless a user 
types `cloak' to toggle on/off.  It is recommended for a user to bind a key to 
promote better utilization of their new device, ie. `bind k cloak' on the 
client would accomplish this.  Note: The user can jump, fire a weapon and 
look around with cloak active, however any forward, backward or side to 
side movement will cause them to become visible.  A user needs to remain 
stationary for 1.5 seconds before cloaking will be enabled. Since cloaking 
uses cells, when they activate cloak the cell status will appear on their HUD 
and be removed when they either run out of cells or uncloak themselves 
with the bound key.

Grappling Hook - Like any other feature ServerConfigMOD supports, the 
offhand grapple can be enabled or disabled by the server operator.  This can 
also be done on the fly, see your `sv help6' menu from the console for a list 
of options relating to the grapple.  Client need to bind a key such as `bind h 
+hook' to use the grapple if you enable it.  The server operator can also 
change the properties of how the grapple works, see the config.txt file 
[Grapple] section for further documentation 

Global Settings - Found in your confg.txt file, this is where you can define 
your default time and fraglimits, along with gravity setttings.  I recommend 
keeping gravity default at 800 (normal), and using your cycle.txt file to 
specify any other setting on a level by level basis.

Scoreboard Style - There are 3 separate scoreboard modes, which are 
controlled solely by the server operator to promote better stability and 
consistentcy.  Modes values are 0, 1, or 2.  Setting 2 enables players to see 
what spectators are in the game.
 
HUD (Frags, Timelimit, Rank, # of Players) - By default they are all 
active.  You may elect to take players off the hud or possibly the timelimit 
depending on your server settings and personal preferences.

Weapon Banning - Sconfig was one of the first mods to have implented a 
weapon banning routine.  A user cannot pick up the weapon if it is banned 
from use.  You can ban any weapon via the config.txt file.  Like most other 
options Server Operators can also ban and unban weapons on the fly within 
Quake 2 or at the console.  You can type `sv help', `sv help2', . `sv help5' 
to view your options.

Weapon Projectile Damage -  This feature is great for those who want to 
better balance the weapons within Quake 2.  It could also be used to make a 
weapon not usually of choice for the player to have increased power to add 
yet another dimention to the gameplay on you server.

Start Weapons - Starting with that blaster, when others are out there 
stalking your or camping with their railgun & rocket launchers isn't quite 
fair.  An idea rather than ban those weapons would be to allow everyone to 
start with a shotgun for example to help balance the slaughter.

Start Items - Enable your players to start with Quad Damage, set the time 
limit for Quad (default is 30 seconds for all items), and either allow it to be 
placed in Inventory for later use or activate upon startup. You can also 
change these sorts of settings for Invulnerability, Rebreather and the 
Environment Suit.  You an also change settings for the Silencer, Power 
Screen and Power Shields.  Feature:With auto-spawn with Invulnerability 
set to on (on by default for 3 seconds) you give all new players entering the 
game and those who just got fragged to get their bearings or run like hell.  
This grace period better allows you scores to be based more on actual talent 
that would normally be biased for those that like to hang around 
regeneration spots on the board.  These items can all be configured in the 
config.txt file.

Start Ammo - Like many of the other options that can be set, this one is 
pretty easy to understand.  The only catch is to make sure your Max Ammo 
is higher than your Start Ammo, for obvious reasons.  Servers that run small 
DM boards with their DM Flags for weapons stay and items stay turned off 
may elect to give people ammo to start.  Larger boards tend not to need the 
server operator to aid in this aspect  However almost no player objects at 
this bit of help.

Max Ammo - Set this value from 0 to 999.  Let your players eyes light up 
when they are able to grab more ammo than otherwise expected.

Start Health - The default value is set at 100, configurable in the config.txt 
file.  Have some insane server settings in the works, you may opt to 
increase this level to make it possible to stay alive for more than a few 
moments.

Max Health - Grab that super health did ya?  Now it's starting to 
countdown back to 100 maybe. You can easilly increase the maximum 
health to be attained by altering this setting in your config.txt file.


** External Files **

quake2/sconfig30/config.txt - This file is the `guts' (haha) of sconfig.  
From here you can basically change any setting, anyway you like.  I've 
heard of some Server Operators actually having several config files that 
they rotate depending upon the day or what mood their in.  Experiment, 
beyond anything else, it sure is fun to see things work the way YOU 
specify.  Whether the settings are good, fair, crazy, whatever is entirely up 
to you.  Visit http://quake2.com/sconfig for additional config files, some 
created by myself and others sent in from users.  Speaking of which, if you 
have a config file that just rocks, send it this way and I'll incorporate it on 
the site and give you full credit, list the server it is running on (if a publc 
server) and provide a link back to your Website if applicable.  Mail your 
files to sconfig@quake2.com.

quake2/sconfig30/cycle.txt - This file is the heart of the map rotation 
within sconfig.  I soon will be adding support in a future release to allow a 
server operator to move forward and backward within the list.  Currently 
you must set this file up before starting your server.  By default it has the 
q2dmx levels, modify to your liking.  If you ever bomb out or crashes, it is 
more than likely it is because of this file and either embedded spaces, tabs 
or carriage returns where they shouldn't be.  Use your cursor keys to get a 
feel for how the default `cycle.txt' file is put together and to see where 
carriage returns have or haven't been placed.

quake2/sconfig30/banlist.txt - The newest support file for sconfig.  This 
file is enabled from the config,txt file by default.  One name or portion of a 
name per line only.  Also within the config file, as server operator you have 
the option to ban either `exact names' or names with the particular string of 
characters you specify. 

quake2/sconfig30/server.cfg - This file is where your DM Flags are set, 
GibStat logging settings are made, your first initial map (aside from the 
cycle.txt settings) is determined, and more.  Better familiarize yourslef with 
these configuration files if you aren't satisfied with the description outlined 
in this document. 

quake2/sconfig30/sconfig30DM.lnk - The shortcut which starts in all in 
action.  Be sure to add the commad `+set dedicated 1' to command line in 
this shortcut to start a dedicated server, otherwise you shouldn't have to edit 
this file if you plan on playing on the server as well.

quake2/sconfig30/so/ServObits.txt - This file can give you the ability to 
set your very own custom death messages, and rather easily at that.  Perhaps 
your playing on a LAN with a bunch of people you know, customize these 
to give all a laugh, piss people off, whatever your heart desires.  I know I 
would rather see some unique death message than `Gustpiller got shot with 
Whoever's shotgun', can you say BORING?  Of course this file is usually 
left untouched or experimented with last by most, as the custom messages 
in this file are much better than the default's already. 


** Client Options **

Chase Cam - When a new players enters the game, they are presented with 
the MOTD menu screen. A user needs to hit the left or right bracket `[` or 
`]'. (The common standard for Quake 2 menu navigation) and select Chase 
Cam.  If there are no users in the game they will only be able to stay in 
"float" mode.  A common problem has been a newbie connecting and 
hitting `Esc' without reading the MOTD or knowing they only need to hit 
Enter (the key common to invuse) to join the game or use the brackets to 
select chase cam.  In order to get the menu back a user needs to only hit 
their `Tab' key or whatever key is bound to Inventory.  Or they can type 
`menu' at the console.  This really isn't at all complicated but thought I'd 
address some issues and feedback here.  A client can enter Chase Cam 
mode or "float" mode while IN THE GAME as well.  Simply by hitting 
their Tab key or typing menu at the console will allow them to either look at 
their Inventory or select Chase Cam.  If a user is in chase cam mode and 
then selects chase cam mode again they enter `float' mode.  When in either 
Chase Cam mode, they can "Rejoin" the game.  It is up to the server admin 
to either allow them to keep their exisitng number of frags (points) or to 
take them away.  A user will lose all items and weapons when they enter 
Chase Cam from within the game.

Player Identification -  The player must either bind a key or enable this 
feature by typing `cmd id' at their console.  Users can bring their console 
down by hitting the tilde (~) key.  Hit tilde again to return back to the game.

Grapple - Players bind a key to the hook, ie. 'bind <key> +hook', 
depending on settings set by the server operator when used in conjunction 
with cloaking, players may or may not become visible when using the 
grapple.

Cloaking - Assuming the server operator doesn't have Cloaking disabled, a 
user is encouraged to bind a key to toggle cloaking on/off.  ie. `bind k 
cloak'.  Cloaking drains a users cells for power.  If a user does not have any 
cells, cloaking will automatically turn itself off as it will also do if a player 
runs out of cells while being cloaked.  Players who are cloaked (assuming 
their gl_polyblend setting isn't set to 0) will be given  a visual effect (kudos 
from some code found on Quake DeveLS).  A blue tint overcomes the 
vision of a player who is cloaked.  They will also hear and emit a pulsating 
beeping sound (low volume) when cloaking is active.  Players that venture 
within short distance of one who is cloaked will hear this sound the closer 
they get to the cloaked player.  Hint: Use `cmd id' to help find cloaked 
players.. It will only give a general vicinity but anything helps.  It's good to 
have both hunt and hide features available.

Flipping Off - Not that everyone has the time to flip someone off within 
Quake 2, and I'm not promoting this in any way, shape or form, but there is 
now a sound associated with this grand `ol feature.  `Not good enough' will 
emit from the players lips.  The sound is not gender specific, but it does 
emphasize the point across quite well. Heh heh.  The `Flipoff' action by a 
player will trigger this sound. Reminds me of the Duke Nukem sounds.. 
Now if I only had some bubblegum.. Heheh, you won't get that unless you 
ever Hit F10 while player multiplayer Duke Nukem game. Oh, what 
memories..

** CONFIG.TXT file (primary configuration file) **

[START OF CONFIG.TXT SECTION]

; ServerConfigMOD v3.2
; http://quake2.com/sconfig
; sconfig@quake2.com
;
; Modify this file as you see fit, and at your own risk. Enjoy!
;
; Be sure to review your server.cfg, cycle.txt and banlist.txt
; Note: Do not mix comments with your key and variable/value pairs
; -----------------------------------------------------------------
;
; Message of the Day (MOTD)
;   Message of the day can be at MOST 16 lines, 26 chars wide per line.
;   All lines become centered.
;   To change color to green place a * in front of the word.
;
;   Example:
;            This is the message of the day
;            *this is green text
;            this is normal text
;
; To indicate a BLANK line, just leave it blank, simple enough.
;
;----[12345678901234567890123456]-----
[MOTD]
line1=*ServerConfigMOD v3.2
line2=
line3=Cloaking support
line4=Off hand grapple support
line5=
line6=*Now with HIGH SCORES
line7=and
line8=*Fast Weapon Changing
line9=
line10=*IN GAME CHASE CAM
line11=
line12=--------------------------
line13=F1 for scores
line14=TAB to return to this menu
line15=Enter to Join

; Grappling Support Configuration (Disabled by default), Also 'sv help6' on console
;  NOTE: Recommended to enable/disable before starting server.
; * EnableHook, change to 1 to enable players to bind a key to +hook, 0  disables
; * HookTime, number of seconds hook can be actively in use, both in flight and/or
;    attached to a solid (ie. a wall, or possibly the sky),
;    default value for HookTime is 4 seconds.
; * HookSpeed, the velocity at which the hook is fired, default is 1900
; * HookDamage, the amount of damage done by the hook, default is 10
; * PullSpeed, 420 is default, 650 appears to be the max w/o jitter effect
; * SkySolid, 0 is default, set to 1 means hook can stick to sky, keep at 0 to 
;     disable hook from attaching to sky. When 1 hook can damage players as well.
; * CloakGrapple, when set to 1 (on), game will allow a player to stay invisible as they
;     use the hook. (Assuming cloak is enabled, if cloak is not enabled, it doesn't 
;     matter what value of CloakGrapple is) By default it is set to 0, meaning when 
;     a player uses the hook when cloaked they become visible. They also cannot cloak 
;     when using the grapple when the value is set to 0 (off).
; * HookPathColor, default is 4 (gold/yellow) path for the hook. You can select any of
;     the following as well as change them on the fly.
;     0 = red blood trail
;     1 = red particles (narrow)
;     2 = red particles (wide), as in the CTF red flag carrier trail with light source
;     3 = blue particles (wide), as in the CTF red blue carrier trail with light source
;     4 = gold trail (default)
;     5 = yellow particles (teleporter, very visible)
;     6 = black flies
;
[Grapple]
EnableHook=0
HookTime=4
HookSpeed=1900
HookDamage=10
PullSpeed=420
SkySolid=0
CloakGrapple=0
HookPathColor=4

; Extended Server Obituary Messages
;
; * ModelGenDir, defines where the ModelGen.dat file resides
; * obitsDir, defines where the obits.txt, SrvObLog.txt & ServObit.ini files reside
; * NOTE, if these paths are incorrect it will attempt to load these from your root
;   quake2 directory, if you modify these paths, remember the trailing slash
;
[ServObits]
ModelGenDir=C:/Quake2/sconfig30/SO/
obitsDir=C:/Quake2/sconfig30/SO/

; Miscellaneous Section
;
; * ScoreboardStyle, 0 (id default), 1 (enhanced), or 2 (spectator view/split)
; * timehud, rankhud, playershud, are all set to 1 (on), set to 0 to remove from HUD
; * NameBanning, default value set to 1 (on), adjust to 0 to disable
;     Make sure you edit your banlist.txt file to customize to your liking. 
; * MatchFullName, default set to (1), which will match up name letter for letter 
;     (case insensitive), when set to (0) it will look to match value in any part of name to ban
; * BanDirectory, location of banlist.txt file, needs to have trailing slash 
;     1 line per name to be banned
; * ClientLog, default setting is on (1), set to 0 to stop logging user connects/disconnects
;     which also have their ip, time, rate.
; * ClientLogFile, the path and filename of your clientlog file.
; * Cloaking, default setting of (0) off prevents user from using cloak, set to 1 to enable
; * CloakingDrain, set from 0 to 10.  Default value is 4, approx drains 4 cells per second
; * MaxClientRate, default is (25000), I've been told a server with a T1 is at it's full load 
;     with approximately 12 clients at this rate. Settings this value as low as 8000 will keep
;     your server healthy and your users won't notice any difference. Recommended you change default value.
;
[Misc]
Scoreboard=2
timehud=1
rankhud=1
playershud=1
NameBanning=1
MatchFullName=1
BanDirectory=C:/Quake2/sconfig30/
ClientLog=1
ClientLogFile=C:/Quake2/sconfig30/connectlog.txt
Cloaking=0
CloakingDrain=4
MaxClientRate=25000

; Rocket Launcher/Rocket Customization
;
; * RocketVelocity, default value (650), increase or decrease to your preference.
;     (Maximum value seems to be around 2000, any higher throws off accuracy of shot)
; * Damage, default value (100), increase or decrease to your preference
; * RadiusDamage, default value (120), damage which takes place within blast radius
; * DamageRadius, default value (120), radius in which blast occurs which causes damage
; * FastRocketFire, default is 0 (off), set to 1 to increase the rocket fire rate
;
[Rocket]
RocketVelocity=650
Damage=100
RadiusDamage=120
DamageRadius=120
FastRocketFire=0

; Grenade Launcher Customization
;
; * Timer, default value (2.5), time it takes in seconds before grenade detonates
; * FireDistance, default value (600) 
; * Damage, default value (120)
; * Radius, default value (40), radius of blast where damage can be inflicted
;
[GrenadeLauncher]
Timer=2.5
FireDistance=600
Damage=120
Radius=40

; Grenade customization
;
; * Timer, default value (3.0)
; * Damage, default value (125)
; * Radius, default value (40)
; * MinSpeed, default value (400)
; * MaxSpeed, default value (800)
;
[Grenade]
Timer=3.0
Damage=125
Radius=40
MinSpeed=400
MaxSpeed=800

; Blaster and HyperBlaster customization
; 
; * HyperBlasterDamage, default value (15), damage per round of hyperblaster
; * ProjectileSpeed, default value (1000)
; * BlasterDamage, default value (15)
;
[Blaster]
HyperBlasterDamage=15
ProjectileSpeed=1000
BlasterDamage=15

; Gun Customizations
; Including Machinegun, chaingun, supershotgun, shotgun, railgun and BFG10K
;
; * ShotgunDamage, default value (4)
; * SuperShotgunDamage, default value (6)
; * MachinegunDamage, default value (8)
; * ChaingunDamage, default value (6)
; * RailgunDamage, default value (100)
; * BFGDamage, default value (200)
; * BFGDamageRadius, default value (1000)
;   ------------------------------------------
; * ShotgunKick, default value (8)
; * SuperShotgunKick, default value (12)
; * MachinegunKick, default value (2)
; * ChaingunKick, default value (2)
; * RailgunKick, default value (200)
;   ------------------------------------------
; * BFGProjectileSpeed, default value (400)
; * FastRailgun, default value is normal speed (0), can adjust to match fire rate of
;     rocketlauncher (1), or as fast as the blaster (2).  You 'might' want to lower
;     the RailGunDamage if you choose to make it fire as fast as the blaster...
;
[Guns]
ShotgunDamage=4
SuperShotgunDamage=6
MachinegunDamage=8
ChaingunDamage=6
RailgunDamage=100
BFGDamage=200
BFGDamageRadius=1000
ShotgunKick=8
SuperShotgunKick=12
MachinegunKick=2
ChaingunKick=2
RailgunKick=200
BFGProjectileSpeed=400
FastRailgun=0

; Weapon Banning - When banned weapons cannot be picked up.
;
; * banShotgun, default value is NOT TO BAN (0), set to 1 to BAN Weapon
; * banSupershotgun, default value is NOT TO BAN (0), set to 1 to BAN Weapon
; * banMachinegun, default value is NOT TO BAN (0), set to 1 to BAN Weapon
; * banChaingun, default value is NOT TO BAN (0), set to 1 to BAN Weapon
; * banGrenadelauncher, default value is NOT TO BAN (0), set to 1 to BAN Weapon
; * banRocketlauncher, default value is NOT TO BAN (0), set to 1 to BAN Weapon
; * banHyperblaster, default value is NOT TO BAN (0), set to 1 to BAN Weapon
; * banRailgun, default value is NOT TO BAN (0), set to 1 to BAN Weapon
; * banBFG, default value is NOT TO BAN (0), set to 1 to BAN Weapon
;
[BanWeapons]
banShotgun=0
banSupershotgun=0
banMachinegun=0
banChaingun=0
banGrenadelauncher=0
banRocketlauncher=0
banHyperblaster=0
banRailgun=0
banBFG=0

; Frag logging, same format as QuakeWorld
; NOTE: GibStat logging is on by default and found in server.cfg file 
; (courtesy of Dave "Mongoose" Feldman, dmf14@cornell.edu for QW Style logging)
;
; *QWStyleLogging, default is off (0), enable use by setting to 1 
; * Dir, default value is blank, which will write the logs in your quake2 root directory
;     If you wish to specify a location, first make sure the path is valid and then type
;     the complete path with a trailing slash, ie. Dir=C:/logs/
;     (Note: The path for Dir can be up to 80 character's in length)
; * GibStat support, to enable see your server.cfg file, also located in your sconfig30 directory
;
[LogOptions]
QWStyleLogging=0
Dir=C:/logs/

; Master/Global Limits and Gravity Setting
;   Used in conjunction with cycle.txt file, note these values override any settings set by a
;   server.cfg type file and even a command line switch.
;
; * GlobalFragLimit, default is (0) - Set to 0 will assure high scores work. Highscore's
;        won't display if the fraglimit is hit.
; * GlobalTimeLimit, default is (30)
; * GlobalGravity, default is (800), set lower more of a weightlessness effect
;
[LevelChange]
GlobalFragLimit=0
GlobalTimeLimit=30
GlobalGravity=800

; Start Weapons
;   These weapons are what the player will begin with when they enter the level or respawn
;   All users start with a Blaster
;
; * ShotGun, default value (0), change to 1 to have player start with this weapon
; * SuperShotGun, default value (0), change to 1 to have player start with this weapon
; * MachineGun, default value (0), change to 1 to have player start with this weapon
; * ChainGun, default value (0), change to 1 to have player start with this weapon
; * GrenadeLauncher, default value (0), change to 1 to have player start with this weapon
; * RocketLauncher, default value (0), change to 1 to have player start with this weapon
; * HyperBlaster, default value (0), change to 1 to have player start with this weapon
; * RailGun, default value (0), change to 1 to have player start with this weapon
; * BFG10K, default value (0), change to 1 to have player start with this weapon
;
[StartWeapons]
ShotGun=0
SuperShotGun=0
MachineGun=0
ChainGun=0
GrenadeLauncher=0
RocketLauncher=0
HyperBlaster=0
RailGun=0
BFG10K=0

; Start Items, Join/Respawn with Invulnerability Protect
;   By default players do not start the game with anything.  
;   Valid values are either 0 (do not start with item), or 1 (start with item)
;   Most items have time values, setting these values effect gameplay on the entire server
;     ie. Quad lasts 30 seconds by default, you can adjust from 10-120 seconds
;     Same holds true for times pertaining to Invulnerability, EnvironmentSuit and Rebreather
;
; * QuadDamage, default value is (0), meaning do not start with item
; * QuadDamageTime=30, default value is (30), adjust to meet your needs
; * AutoUseQuad, default value is (0), if starting with Quad, don't use until player activates it
; * Invulnerability, default value is (0), meaning do not start with item
; * InvulnerabilityTime, default value is (30), adjust to meet your needs
; * AutoUseInvulnerability, default value is (0), if starting with Invulnerability,
;     don't use until player activates it
; * Silencer, default value is (0), meaning do not start with item
; * SilencerShots, default value is (30), adjust to meet your needs
; * Rebreather, default value is (0), meaning do not start with item
; * RebreatherTime, default value is (30), adjust to meet your needs
; * EnvironmentSuit, default value is (0), meaning do not start with item
; * EnvironmentSuitTime, default value is (30), adjust to meet your needs
; * PowerScreen, default value is (0), meaning do not start with item
; * PowerShield, default value is (0), meaning do not start with item
; ------------------------------------------------------------------------------
; * RegenInvulnerability, default is (1), set to 0 to disable new players and those
;     that have just been fragged to be respawn with invulnerability (indicated by
;     the red glow) from 3-10 seconds as specified in the RegenInvulnerabilityTime variable
; * RegenInvulnerabilityTime, default value is (3) seconds, you can adjust up to 10
;      If you set this value below 3, it is the same as setting RegenInvulnerability to 0 (off).
[StartItems]
QuadDamage=0
QuadDamageTime=30
AutoUseQuad=0
Invulnerability=0
InvulnerabilityTime=30
AutoUseInvulnerability=0
Silencer=0
SilencerShots=30
Rebreather=0
RebreatherTime=30
EnvironmentSuit=0
EnvironmentSuitTime=30
PowerScreen=0
PowerShield=0
RegenInvulnerability=1
RegenInvulnerabilityTime=3

; Start Ammunition
;   If the StartAmmo value is greater than the MaxAmmo Entry value, MaxAmmo setting used
;
; * Bullets, default value (0), adjust to your preferences
; * Shells, default value (0), adjust to your preferences
; * Cells, default value (0), adjust to your preferences
; * Grenades, default value (0), adjust to your preferences
; * Rockets, default value (0), adjust to your preferences
; * Slugs, default value (0), adjust to your preferences
;
[StartAmmo]
Bullets=0
Shells=0
Cells=0
Grenades=0
Rockets=0
Slugs=0

; Max Ammunition
;  The value you specify should be from 0 to 999.
;
; * Bullets, default value (200) - Machinegun, Chaingun Ammo
; * Shells, default value (100)  - Shotgun, SuperShotgun Ammo
; * Cells, default value (200)   - Hyperblaster, BFG Ammo and used for 'Cloak' power
; * Grenades, default value (50) - Grenade/Grenade Launcher Ammo
; * Rockets, default value (50)  - Rocket Launcher Ammo
; * Slugs, default value (50)    - Railgun Ammo
;
[MaxAmmo]
Bullets=200
Shells=100
Cells=200
Grenades=50
Rockets=50
Slugs=50

; Health
;
; * StartHealth, default value (100)
; * MaxHealth, default value (100)
;  
[Health]
StartHealth=100
MaxHealth=100

; (Do not remove this last line, or your server will not finish parsing this file correctly)

[END OF CONFIG.TXT SECTION]

** SERVER.CFG file (called from shortcut via +exec server.cfg) **
Note: Your actual server.cfg may have extra parameters, these have been 
placed to help first time operators start a public server, you can of course 
use the section below instead to create a new server.cfg file if you so desire.

[START OF SERVER.CFG SECTION]

//  Server Configuration File for ServerConfigMOD v3.2 DM
// ***************************************************************************
// *** You may need to change the configlocation and cyclelocation values  ***
// *** from the default values to match with your installation to match    ***
// *** up with the proper path.                                            ***
// ***************************************************************************
//
// DM FLAG SETTINGS:  Change dmflags setting as needed
//
//   DF_WEAPONS_STAY + DF_INSTANT_ITEMS + DF_SPAWN_FARTHEST + 
//       DF_FORCE_RESPAWN + DF_QUAD_DROP + DF_ARMOR_PROTECT
//
//   4 + 16 + 512 + 1024 + 16384 + 262144 =   280084
//
//
// 'map' sets the VERY FIRST map, it uses the config.txt file for the
// global time/frag and gravity limits.  After this first initial map 
// ends, the next map to be played will be the first entry in the cycle.txt 
// file.
//
// stdlogfile set to a non zero value enables GibStat support, it is best to set 
// this value to 1 to enable logging.
//
// stdlogname names your GibStat logfile, StdLog.log by default. This file
// is written to your root quake2 dir, ie. C:/quake2/StdLog.log, rename 
// it what you like if you so desire.
//
// START OF SETTINGS
set dmflags 280084
set deathmatch 1
set maxclients 16
set sv_gravity 800
set cl_vwep 1
set configlocation C:/quake2/sconfig30/config.txt
set cyclelocation C:/quake2/sconfig30/cycle.txt
set stdlogfile 1
set stdlogname StdLog.log
map q2dm1

[END OF SERVER.CFG SECTION]


** CYCLE.TXT file **
(used for map rotation, this could have any number of maps in it)

The cycle.txt file supports an unlimited listing of maps.  The very first map 
to be played when you start your server must be setup in your server.cfg 
file.  After this first map is over, the game will then use the cycle.txt file.  
When your Quake 2 server reaches the end of its list, it will automatically 
cycle back to the type of the list and run down it again.  For example make 
q2dm1 your first map, specified in your server.cfg file.  Start your cycle.txt 
file with q2dm2 and end it with q2dm1.  This will assure that it rotates 
properly.  This is the way the default distribution of sconfig is, you do not 
need to modify and of these settings unless you want to add custom maps 
(which are also supported).

[START OF CYCLE.TXT SECTION]

<TOF>
q2dm2<CR>
q2dm3<CR>
q2dm4<CR>
q2dm5<CR>
q2dm6<CR>
q2dm7<CR>
q2dm8<CR>
q2dm1<CR>
<CURSOR><EOF>

[END OF CYCLE.TXT SECTION]

<TOF> = Top of file, q2dm2 in this case is the very first entry, no leading 
        spaces, carriage returns, etc.
<CR> = Indicates a carriage return (you hit your enter key, you get carriage 
       return)
<CURSOR> = Blinking Cursor position should be here before save
<EOF> = End of File, notice no extra spaces or carriage returns with the 
        exception of very last line

You can also specify extended options to your maps.  The 
ServerConfigMOD cycle.txt file also allows you to mix and match plain 
map names with map names with.

The extended format would be in this format: 
mapname,gravitysetting,timelimit,fraglmit,repeat
(Again, notice no embedded spaces, tabs or any other character that 
shouldn't belong)

Repeat means, when set to 1 that you will play the map then it will play it again 
before moving on to the next map in the list.  Set it to 2 and it will play it 
again twice before moving on to the next map in the list, etc...

An example cycle.txt file could look like the one above or this one:
fact3,400,20,0,0
boss2,300,20,0,0
biggun,400,20,0,0
city3,400,20,0,0

Or any variation, like the one shown below:
fact3
boss2,300,20,0,0
biggun
city3,400,20,0,0


In the last above example, fact3 and biggun would use the default global 
gravity settings 
you set in the config.txt file.  boss2 and city3 would use the gravity settings 
300 and 400 respectively.


** BANLIST.TXT file (Used to ban unwanted names) **

The banlist.txt file can hold any number of names you want to be banned.  
This will prevent users with names that contain the banned name (string of 
text ) from connecting to your server at all.  To go a step further, if a player 
enters the game and attempts to change their name the server will not allow 
it.  The server performs this extra check to prohibit users connecting to the 
site under one name and changing to the banned name or a name which 
contains banned text.  This way you don't need to ban the IP, just the name, 
most players are fixated on their name and won't be too happy to play 
without it on your servers and wreak havoc. ;-)  IP Banning will be coming 
soon.  You'll be able to ban everyone, allow everyone and specify who you 
want to be banned or allowed depending on your needs.  A `sv kick' routine 
will also be built in allowing you to boot the user as well as ban their IP all 
in one step.

In the config.txt file under the [Misc] key, you'll see the following settings 
which relate to name banning:

NameBanning=1
MatchFullName=1
BanDirectory=C:/Quake2/sconfig30/

Here is the sample banlist.txt file:

[START OF BANLIST.TXT SECTION]

ModifyAsYouSeeFit

[END OF BANLIST.TXT SECTION]

This file, by default, along with the default config.txt file will ban users 
with the exact matches of `ModifyAsYouSeeFit'.  If you have 
NameBanning set to (1), meaning active, the banlist.txt file must contain at 
least one name to function properly.  When set to off (0), obviously this file 
doesn't matter.

You can alter the MatchFullName setting from 1 (exact match) to 0 (partial 
match) as well.
If MatchFullName is set to 0, by taking the above example and default 
banlist.txt file text of `ModifyAsYouSeeFit' anyone that connects with 
`ModifyAsYouSeeFit' in their name cannot use this name to connect or 
use during a game. Ie. `User ModifyAsYouSeeFit' or 
`ModifyAsYouSeeFit User' would also be banned from connecting.



=-=-=-=-=-=-=-=-=-=-=-=-=



If anyone has any bug reports, questions, suggestions or just to let me know 
their site is now running ServerConfigMOD, let me know.  I can be reached 
at sconfig@quake2.com.  Thanks to all those authors, users, server 
operators, the id team, QDeveLS, Zoid, ThreadZ, SteQve and many, many 
others for contributing to the development in one way, shape or another to 
sconfig.  Now, where is that Q3 source? ;-)



