Weapons Factory Server Setup Documentation

See What's New for 4.0

The Weapons Factory Server Admin Discussion Board is the place to go for WF Server Admin questions.

If you have a high-bandwidth connection and would like to start up your own Weapons Factory server, the instructions below will tell you how.

Setting up a Quake server

If you need some basic information on how to set up a generic Quake2 server, visit http://www.planetquake.com/q2s-faq

Admins using Linux may want to check http://www.linuxquake.com

We recommend the news group "rec.games.computer.quake.servers". Here you can post server questions and seek answers.

Also you can subscribe to this Q2 server mailing list.

Downloading the Weapons Factory server software

You will need the current Weapons Factory server software to proceed. Do not unzip the file before reading the configuration instructions below.

Download problems? If you have any trouble downloading from the links below, go to this site: ftp://ftp.cdrom.com/pub/idgames2/planetquake/captured/weaponsfactory/ . You'll have to make a note and download the individual files that you need.

wfserver34-nt.zip Win 95/NT - Version 4.0 Server Files. (You must also download wfclient34.zip from the downloads page)
wfserver34-unix.tar.gz Combined Linux/Solaris server for WF 4.0. Includes updated documentation and installation instructions for WF 4.0. .tar.gz version. (You must also download wfclient34.zip from the downloads page)
wfserver34-unix.tar.Z Combined Linux/Solaris server for WF 4.0. Includes updated documentation and installation instructions for WF 4.0. .tar.Z version for people who don't have gzip. (You must also download wfclient34.zip from the downloads page)

What's New in 4.0

  • Changed name of standard logging file from std.log to std_xxxx.log where xxxx = the IP port of the server.
  • New CVAR variable: "logfilename" This sets the name of the log file to something other than std_xxxx.log when standard logging (see wfflags) is enabled. Usefull for admins running multiple wf servers on the same machine using different ports.
  • New Team Balancing WFFLAGS option.

What makes a good server?

  • A good admin.  Check your server often.  Play there.  Listen to your users.  Resist the urge to be a tyrant.
  • A fast network connection.  ISDN or telephone modems won't cut the mustard.   Cable modems can, in some circumstances, work well.  But it depends on your cable company's quality of service.
  • A good machine. You don't need a Cray to run a first class server.  But you won't get good results on a 486 either.  Linux servers tend to need less horsepower than NT servers, but both need an adequate machine.  A pentium 200+ should be able to run a 16 player game pretty well with enough memory.  128 megs is ideal on Linux - NT may require more depending on what else you have running on the machine.

Configuring a Quake server for Weapons Factory

1) To run the Weapons Factory mod, you must first install and configure a standard Q2 server. Q2 updates can be found at ftp://ftp.cdrom.com/pub/idgames/idstuff/quake2 .  Be sure to install the binaries with the CTF option. If you are upgrading, be sure to copy your server config file and wfserver.ini file to a safe location, or they will be overwritten.

2) Make a "wf" subdirectory off your Quake2 directory.

3) Download the WF server AND client files, and unzip into the quake2\wf directory.

4) Download and unzip all required maps into the quake2\wf\maps directory.

5) Read all the documentation below

6) To get WF working correctly you MUST copy all the teamx.class files into your quake2\wf directory. By default the Team9 class layout is loaded.

Special Linux/Unix Installation Instructions

A few additional steps are required to get Weapons Factory working under Linux or Solaris.  You'll get the best results by running your server under the root login.   If you are upgrading, be sure to copy your server config file and wfserver.ini file to a safe location, or they will be overwritten.

1)  As with NT, you must first get and configure a standard Quake2 server.  Be sure to install the binaries that include the CTF option.

2) Make a "wf" subdirectory off your Quake2 directory.

3) Download the WF server and Client files.  The server files come in both *.tar.gz and *.tar.Z flavors.

4) Uncompress the server files by copying the archive into the Quake2 directory.  Type the following command to uncompress the binaries into the WF directory:   zcat wfserver34.tar.gz | tar xvf -

5) Now, copy the Client files into the WF directory.   Uncompress the archive by typing:  unzip wfclient34.zip

6) Now that the files are uncompressed, change the ownership of the files to the root user.  Change to the WF directory, and type:   chown root.root *

7)  Check to be sure all files are named with lower case letters.

Setting Game Options

Included in the WF distribution files, is a sample server configuration file server.cfg - You should use this file to preserve your settings so that you won't have to re-type them each time you start the server.  See the section on server config files below.  Most of the game options listed below can be set in the config file.

WF Flags Options

A new server variable called WFFLAGS can be used to control gameplay. It is used the same way that the dmflags variable is used.

To set the variable, simply add a "+set" statement in your command line, or execute a "set" command in the console window. For example, to turn off homing rockets, you would type:

set wfflags 8

The number at the end is determined by adding the option values together. The values are:

WF_ALLOW_FRIENDLY_FIRE  1
WF_STD_LOGGING  2
WF_NO_FORT_RESPAWN  4
WF_NO_HOMING 8
WF_NO_FLYING 16
WF_DECOY_PURSUE 32
(Unused) 64   (Was WF_NO_RAILGUN_EFFECT)
WF_NO_TURRET 128
WF_NO_EARTHQUAKE  256
WF_NO_GRAPPLE 512
WF_MAP_VOTE 1024
(unused)   2048
WF_ZOID_FLAGCAP 4096
WF_NO_PLAYER_CLASSES 8192
WF_ZBOT_DETECT 16384 
WF_AUTO_TEAM_BALANCE 32768  (new)

 

So, to turn off flying and homing rockets, you would type:

set wfflags 24

since 8 + 16 = 24.

Here are the detailed explanations for each flag:

DF_ALLOW_FRIENDLY_FIRE - If set, this will allow homing rockets, laserballs, proximity bombs to target teammates. It will also allow the decoys their owners.

WF_STD_LOGGING- If set, all frags and scores will be written to a frag log file called std_xxxx.log (where xxxx is the IP port number of the server) in the quake2\wf directory. The file will be in standard log format used by programs such as GibStats. Note: use the "+set logfilename xxxx.xxx" command to change the name of the log file name. This is usefull for admins running multiple wf servers on different ports.

DF_NO_FAST_WEAPONS_SWITCH - If set, this will turn OFF fast weapons switching

WF_NO_FORT_RESPAWN - Turns off spawning in own fort

WF_NO_HOMING - Turn off homing rockets

WF_NO_FLYING - Turns off ability to fly

WF_DECOY_PURSUE - will let the decoy chase after an enemy

WF_NO_TURRET - Turns off turret grenades

WF_NO_EARTHQUAKE - Prevents any earthquake grenades (Disabled anyway)

WF_NO_GRAPPLE - Turns off grappling hooks

WF_MAP_VOTE - Allows players to vote for the next map. A one minute warning will be given before the end of the level to remind players to vote.

WF_ZOID_FLAGCAP - Allows you to turn off Team Fortress style flag captures and set it back to normal CTF flag capture mode.

WF_NO_PLAYER_CLASSES - If set, this will turn OFF player classes.

WF_ZBOT_DETECT - If set, the server will attempt to detect ZBOT users. If detected, the user will be disconnected from the server, and a log entry will be written to the zbot.log file.

WF_AUTO_TEAM_BALANCE- Turns on automatic team balancing

Setting Gamestyle (Class Definitions)

If you want a diffrent class system simply load that class file after the server has started via the console, or via rcon access, like so:

sv classdef <file>

Example:

sv classdef team3.class

The above would load the old WF2.1B 3 class style class system. The provided class files are:

	team3.class - Old WF2.1B style
	team6.class - 6 classes, well armed
	team9.class - True TF style classes
	

All's quiet on the waterfront.

NEW Team Balancing

Team Balancing is a server option (WFFLAG |= 32768) that seeks to balance the damage players receive based on the current team score (captures only, not frags). It is only active when either team has at least three captures. It works by adding or subtracting 10% of the damage for each point difference.

It is not noticeable until the point difference is at least 3 or 4. When it gets to 8 or 9, it rocks.

Examples:

Your team is down 3 points, you will receive 100% - 30% = 70% damage
Your enemy will get 130% damage

Your team really sucks and is down 15 points,
You will receive 100% - 80% = 20% damage (there is a 20% minimum)
Your enemy will get 250% damage (no maximum)

Your team is winning by 6 points, you will receive 100% + 60% = 160%
The losers on the other team receive only 100% - 60% = 40%

This has undergone extensive play testing on out internal LAN. It stopped the whining about teams.

Unbalanced Team Limits

You can now prevent unbalanced teams from being able to capture the flag by using a new console command:

SET UNBALANCED_LIMIT n


where n is the number that determines how unbalanced the teams can be before the flag pickups are disallowed.

For example, lets say you set the unbalanced_limit to 3. If the blue team has 3 or more players greater than the red team, the blue team will not be able to pick up the red flag. The default setting is 0, which means no limit will be imposed.

Note that setting this value should be dependant on the max players you allow for your server. For example, if you run 64 players on a server, you would probably want to set the unbalanced limit higher, say to 5. For smaller servers, you may want to set the limit to 2 or 3.

IP Banning

A set of new server commands have been added to allow server admins to ban specific users based on their IP address. The commands have the same format as id's CTF mod. They are:

  sv addip (ip address)         - adds an ip address to the ban list

  sv removeip (ip address)      - removes an ip address from the ban list

  sv writeip                    - writes the ban list to ban list file

  sv listip                     - lists the currently banned ip addresses

  sv testip (ip address)        - test a given ip address against the ban list

Each time an ip address is added or removed from the ban list, the list is written to the ban file located in the quake2\wf directory (called listip.cfg). Therefore, the writeip command is not really needed.  The listip.cfg file can be edited directly outside the game.

A new CVAR called "FILTERBAN" can also be set to change the behavior of the ban list. By default, filterban is set to 1 which means that any person with an ip address in the ban list will not be allowed to play. If you set filterban to 0, it means that ONLY people with ip address in the ban list will be allowed to play.

You can also ban a group of players on the same subnet. For example, if you wish to ban all players that have ip addresses starting with 199.111.222, just set the last number in the ip address to zero, like this:

sv addip 199.111.222.0

This one entry would ban 199.111.222.1 through 199.111.222.255.

At this time, subnets other than those using the last number (octet) of the ip address are not supported. For example, you cannot ban all 199.111.*.* players.

Since many players log on to ISP's that use dynamic IP addressing, it is often necessary to ban an entire network in order to prevent that user from merely logging off, and logging back on again with a new ip - at which time he can get into your server if you don't ban the whole network number.

Map Rotations

The Weapons Factory now supports map rotations. To enable this feature, do the following:

1) Create a file called wfserver.ini (if there isn't one) in the quake2\wf directory.

2) Inlude the names of the maps you wish to use in the wfserver.ini file. A sample is shown here:

        [maplist]
	2fort7wf
        eight v
	###

The file must start with the "[maplist]" line, and end with the "###" line.

The "v" after a mapname means that map is only "votable" and will not be loaded by the server in regular rotation, it must be voted into use.

You must ensure that EVERY map is spelled exactly.  Errors in the maplist will cause the game to crash at map change.  On unix systems, mapnames are case-sensitive.   Do not add the .bsp file extension to the list entry.

3) From the server console, or via rcon access, execute the following command:

sv maplist wf\wfserver.ini

This will load the map rotation preferences.

If you wish to have random map selections, load the map list like this:

sv maplist wf\wfserver.ini 1

The 1 at the end will force random map selection.

4) When a fraglimit, capturelimit or timelimit is reached, the next map in the rotation will be executed.

Details:

sv maplist                   - if no list loaded, shows syntax
                               if list is loaded, shows maps in list
sv maplist <filename> <flag> - Loads map list from <filename>
                               if <flag> = 1, maps will be randomly
                               selected
sv maplist first             - Selects first map in list
sv maplist next              - Selects next map in list

5) You can disable the map list without shutting down the game. For example, if you've added or revised a map, you can disable the map list, revise the wfserver.ini file and reload the maplist without restarting the game. The command is:

sv maplist off

Message of the Day

As a game server administrator, you can insert custom messages into the first menu displayed to the user. To do this, create a file called "motd.txt" (or see the example one included) and put it in the \quake2 directory. The first two lines of the file will be used as the first two lines of the first menu text. You should try to keep each line to 27 characters or less, otherwise it wont fit on the menu graphic.

You have your choice of colors for the text - as long as they are white or green. To use white text you don't have to do anything special. For green text, simply put a "*" as the first character of the line.

For example, if the following lines are entered into the motd.txt file:

*Reno Bros Server
        Weapons Factory Mod v4.0

Then the first line would appear in green, the second would be white.

GameSpy Support

To make your server show up in gamespy, you need to have it send periodic messages to a Q2 master server. To do this, enter the following lines into the console, or add them to your startup script:

set public 1
setmaster q2master.planetquake.com 

NOTE: This will only work for dedicated servers, make sure you are running Weapons Factory from your quake2/wf directory or your server will NOT show up in the GameSpy tab.   If your server is down more than a few minutes, it will be removed from the active master server lsit, and users will not be able to see it.  Please note, that users often update their lists only occaisionally.  Therefore, you should not expect your server to become instantly popular.  It may take a few days for the players to find you.

Most players will use the WF Custom Gamespy Tab.

Here is the Planet Quake Server List.

Voyager has set up a Weapons Factory server list for Gamespy. Follow this link to add your WF server to the server list page, scroll down, you need to send an email to shryqe.

You should also put "(WF)" in your server name. This will help older GameSpy tabs find your server.

Turning off CTF

It is possible to turn the Weapons Factory CTF mod into a pure deathmatch mod. This will remove the flags, teams, and team scoring. To do this, add the following option at startup:

+set ctf 0

Thats it!

Flood Control

WF has built in flood control to limit how fast players can type messages. Without this control, players can flood servers with messages which can cause lag.

A new CVAR server variable was create to control message flooding. To set how long a player must wait between messages. For example, if can add the following to your startup command line:

+set floodertime 8

This will set the flood protection time to 8, so players have to wait 8 seconds between messages. The default is 5 seconds. Setting floodertime to 0 will disable flood protection.

You can also use the set command without the "+" sign in your startup config file like this:

set floodertime 2

NOTE: The flood control also works with the wfplay and wfplay_team commands to prevent players from flooding the server with sound commands.

Controlling Player Classes

It is now possible to control which player classes are used on the server by setting the CVAR server variable "noclass".

To set the variable, simply add a "+set" statement in your command line, or execute a "set" command in the console window. For example, to turn off class #4, you would type:

set noclass 8

The number at the end is determined by adding the option values together. The values are:

   NO_CLASS#1   1
   NO_CLASS#2   2
   NO_CLASS#3   4
   NO_CLASS#4   8
   NO_CLASS#5   16
   NO_CLASS#6   32
   NO_CLASS#7   64
   NO_CLASS#8   128
   NO_CLASS#9   256
   NO_CLASS#10  512
   NO_CLASS#11  1024
   NO_CLASS#12  2048
   NO_CLASS#13  4096
   NO_CLASS#14  8192
        

so, to turn off class #2 and #8, you would type:

set noclass 130

since 2 + 128 = 130.

Note that classes are defined by number instead of name like "spy" or "sniper". This is because different class configurations have different classes. However, if you are using the team9.class configuration, you can use these settings:

   NO_RECON     1
   NO_NURSE     2
   NO_ENGINEER  4
   NO_MARINE    8
   NO_CYBORG    16
   NO_ARSONIST  32
   NO_GUNNER    64
   NO_SNIPER    128
   NO_SPY       256
        

With the new "noclass" settings, you can come up with unique configurations like "snipers only" or "flame wars" with the arsonist.

Anti-ZBot Protection

ZBot is a program that helps players cheat in Q2 games by auto-aiming and firing their weapons.  Some of the big advantages the ZBot has over human players is that it can see through walls, and fire the instant they have a clear shot.

The way ZBot works, is that it intercepts commands from the player, and either passes them on to the server, or interprets them itself.  The ZBot-specific commands either start with "!", or "impulse".  These are used to control the ZBot, and are not passed on to the server.

The way the detection works, is that it passes a ZBot-specific command to the client, and then waits to see if that command is passed back to the server.  If the server does not receive the command, it assumes that the player is a zbot user.  Older versions occaisionally incorrectly identified users with poor network connections as ZBot users.  Weapons Factory uses a newer version of the code that takes poor network connections into account, resulting in very few false detections.

Using Server Config Files

Server configuration files store all your game settings in one place, and make it simple to run your server with consistant settings from game to game.  This will be important to your users, who may become irrritated if you experiment too often with game settings.

The Weapons Factory distribution comes with a sample server configuration file called server.cfg. This file contains a basic configuration that you can use as a template to set up your own server config file.

NOTE:  Do not name your actual working server config file server.cfg.   Choose a name that will be difficult to guess, since knowledgable users may be able to download your config file if it is easily guessed.

Your config file name can be passed to the server on the command line.  Here's an example command line to give you an idea (NT version)    quake2 +set dedicated 1 +set game wf +set port 27910 +exec server.cfg +set noipx 1

Here's a Linux version (runs in background.  To run on console, use same command as the NT version):

nohup ./quake2 +set dedicated 1 +set game wf +set port 27910 +set gamename wf +exec server.cfg +set noipx 1 > /dev/null &

Editing the Config File

Open the file in a convienient text editor, and change it to reflect your desires.   You can enter comments in the file by starting the line with 2 / characters.   

//This is a comment line

We recommend that you do not change the dmflags setting.  You may get unexpected results.

First, set the wfflags variable.  17442 is a good starting setting (this will also enable frag logging and zbot protection.  To disable frag logging, use 17440).

Next, edit the Hostname, FTP, admin, system, inet, and os variables to reflect your servers information.  These values will be visible in gamespy.

Do not change the deathmatch variable unless you fully understand the settings.

Now, edit the maxclients variable.  This setting will determine the number of players that can play at one time on your machine. Resist the temptation to set this too high.  Overdoing it will make your server "laggy" to your players.

Next, edit the following variables.

fraglimit (number of frags before the map will change - try 150 for a start)
capturelimit (number of flag captures one team can make before the map will change - try 8)
timelimit (Time limit before the map will change - try 30 (minutes)).

Leave the zombietime variable alone.

If you want to have rcon access available, add the following line:

set rcon_password mypassword

Finally, add a line to load your maplist:

sv maplist wf/wfserver.ini 1    (the 1 will enable random map selection if no votes were received.)

That should do it.  Now save the file, and don't forget to use the name you saved it as on the command line when you start the game.

See sections above for additional variables that can be set, or for other values for these settings.

Support

Email support can be obtained from the contacts page.

If you are having configuration problems be sure to include your server.cfg in your mail message. Here is a demo server.cfg file.

 

Copyright © 1998 Weapons Factory Software
WEAPONS FACTORY is a trademark of Weapons Factory Software for its software products.