VITAL NOTES FOR WFA SERVER ADMINS
 Version 3.0b

Server Questions? Comments? Visit our forums!
For even more server help, go to WFA Server Administration Guide or to the WFA Server Administration forum, accessible from the main WFA site: http://www.captured.com/weaponsfactory/quake3/.


What's in this document:


IMPORTANT ISSUES WITH FILES, ROTATIONS, AND MISC STUFF

Weapons factory arena has changed the way the engine files are distributed. The files are now married into one single PK3. If you are installing on top of another installation, it is required to delete ALL of the WFA-Media-<whatever> files that used to reside in past installations. If you fail to do this, WFA will not work right. At all. Period. If you have maps you would like to keep, then by all means do so. We recommend overwriting your maps with the ones in this distribution. The maps included in this distribution have enhancements and fixes that past maps do not have. If you experience problems, we suggest only keeping the maps proven to work with the 3.3 distribution, in the 2 map packs for 3.3. We also recommend reading the changes.txt included within this distribution.

WFA specifically has some awesome configs. But this can be daunting at first; learn to become familiar with it. Time limits, class limits, and the ref password are controlled by the file servercfg.cfg, which is in your wfa directory.  The map rotation can hold up to 26 maps and is in the maplist.cfg file, and the main file is the wfa-server.cfg. Combinations of serverconfigs and maplist configs can reach ultimate configuration for multi-honed servers, or infinite amount of maps with some config magic. Use something like notepad or wordpad (not word) to edit these plaintext files. By default, WFA servers are being set to use the official map rotation and a classlimit of 2 on all classes.  You are, of course, welcome to change these settings by editing your servercfg.cfg file.   

However, no matter whether you choose to stay with the official maps or introduce freelance maps, you should move all of the map pk3 files for maps NOT in your rotation OUT of your WFA directory!  Failure to do this will cause users who don't have autodownload set to off (in the menu items) that don't have ALL the pk3's in your wfa directory will try to download theml, even if the maps that they don't have are not included in your server rotation! Sorry folks, this is how Id designed it, and we can't change it. The only way around this problem is for you not to run your server in pure mode, and I am assuming that most of you have run servers long enough to know that you don't want to do that unless you have to.  For those of you who don't care if someone cheats once in a while on your server (or are running beta files), set your server to non-pure by changing the server line in your wfa-server.cfg that starts your WFA server so that "+set sv_pure 1" is "+set sv_pure 0" instead.

If you are running your server pure, though, let me reiterate: YOU SHOULD MOVE ALL OF THE MAP FILES NOT IN YOUR ROTATION OUT OF YOUR WFA DIRECTORY.

I recommend you make another directory somewhere on your machine (like wfa/temp) and move the maps you aren't using there.  Then, as you change your map rotation, move the maps from that directory into the wfa directory. Just remember to shut your server down before attempting to move them, quake3 grabs hold of all the pk3 files while it's loaded.


Back To Top


 

WFA REFEREE COMMAND LIST

ref   shows who the ref is
ref_password <password> gives this player ref ability if password is correct
ref_leave player leaves ref mode
ref_kick <playername/playerid> kicks the player named playername or with the id playerid from the server
ref_observer <playername/playerid/all> puts the player named playername or with the id playerid into observer mode.  Or, if "all" is provided as an argument, all players are put into observer mode.
ref_nextmap <mapname> sets this server's next map to mapname
ref_map <mapname> changes the server to the map mapname immediately.
ref_restartmap [time] restarts the level in time seconds.  If no argument is provided, restarts the map immediately.
ref_matchtime <time> changes the current map's time limit and sets the match length to time minutes.
ref_caplimit <numcaps> changes the current map's capture limit (the number of captures allowed on one team before the map changes) to numcaps.
ref_pspass <password> sets this server's password to password.  This is the password that players must provide to connect to this server.
ref_clearscore This clears all players personal scores as well as the team scores.
ref_showplayers This dumps a list of all players and their player ids to the console.
ref_clearbans Clears any temporary bans that resulted from a kick. does not affect g_banips
cg_drawtimelimit 0/1 not really a ref command, but if set to 1 (the default), causes the timelimit to be shown on the user's screen, counting down.

 


Back To Top


 

Commands and Variables handled by the wfa-server.cfg

Network and Security, Performance

net_ip "Localhost" The Bound IP of the Primary Adapter's Primary Address
net_port "27960" The Bound Port of the server's listen port for initial incoming connections and queries
rconpassword "" The Remote CONsole password
com_zonemegs "24" The amount of memory allocated for the AI for dynamic level routing algorythms
com_hunkmegs "70" The total amount of memory allocated for the server to use

Server Variables

sv_hostname "noname" The 'Name' that appears on server browsers for the server
sv_maxclients "14" The maximum total of clients on the server
sv_maxrate "10000" The maximum rate that a client can use
sv_minrate "2000" The minimum rate that a client can use
sv_zombietime "2" The amount in time, in seconds, that a server will hold a client's slot open for if the client does a non-graceful disconnect from the server
sv_pure "1" Clients can only use files that the server has. Also, PK3 files that have a different CRC will be rejected if set to "1"
sv_privateclients "0" The amount of "reserved" slots that clients must have a pwd for
sv_privatePassword "" The password required for privateclients
sv_allowdownload "0" Allow downloading of pk3's, limited to 2k per conenction
sv_timeout "350" Amount of time that a "dead" client is given before disconnection
sv_floodprotect "0" This should be set to zero, as WF has optimized client/server command communications
sv_master1 "master3.idsoftware.com" These are the master servers that a dedicated server reports to.
sv_master2 "master0.gamespy.com"  
sv_master3 "wfamaster.planetice.net"  
sv_master4 "q3master.barrysworld.com"  
sv_master5    

Weapons Factory Variables

wfflags "0" wfflags is used to disable or enable features by adding these bits
example : wfflags 10 (2 + 8) means no grapple or flying WF_NO_FLYING 2
WF_NO_TURRET 4
WF_NO_GRAPPLE 8
WF_ZOID_FLAGCAP_ON 16
WF_DISABLE_DEFUSE 64
g_forceteambalance "2" The minimal amount of over/under players necessary per team
g_wf_warmup "60" The amount of time before the match starts after map loading
g_serverFile servercfg.cfg The name of the server configuration file
g_customMapLimits "0" Whether or not to use the custom limits in the maplist.cfg
g_mapfile maplist.cfg This config holds the map rotation and custome limites
g_matchlimits "0" This specifies whether or not to load up the 'matchmode' configuration in the g_serverfile 
g_wf_bankicks "1" This specifies whether or not to ban players kicked by the ref or vote kicked by other players. Bans are cleared at the beginning of each map. 
g_wf_spectimelimit "0" This specifies how long a player may be in spectator before being kicked (when matchmode is off). 0 turns this off competely. 
droppacks "1" Allows the dropping of ammo packs/antidotes from a dead player
g_randomteams "1" Automatically kicks everyone to spectator at the beginning of each map. 
overtimelimit "5" The amount of time a match can exist with tied scores

Logging

g_log "games.log" The logfile that contains player data collected throughout the game
g_logSync "1" Determines weather to buffer, write line by line the logfile
logfile "0" Only used to record the console text as qconsole.log
Beta AI commands that may or may not work
g_spskill "5" Automatic Skill of spawned bots
bot_minplayers "3" Keeps the teams at least this number; bots get kicked as the human player amount approaches this number per team.
bot_challenge "1" Whether or not the bot will wait to fight or initiate combat
bot_grapple "0" Enables the bot's usage of the grapple
bot_enable "0" Enables loading of the AAS files.

 


Back To Top


 

Example from serverconfig.cfg

This part is directly from the serverconfig.cfg; you can have up to 8 combinations. Matchmode and default are mandatory.

{                             Open Curley Bracket 
servercfg "default"      This is the name of the config used.
timelimit "30"              This is the timelimit for the general playlist if
g_customMapLimits is not specified.
caplimit "10"              This is the caplimit for the general playlist if
g_customMapLimits is not specified.
refpassword "test"      This is the Referee Password
reconlimit "2"             These are the classlimits
nurselimit "2"
engineerlimit "2"
marinelimit "2"
cyborglimit "2"
arsonistlimit "2"
gunnerlimit "2"
sniperlimit "2"
assassinlimit "2"
}                            Closed Curley Bracket 

 


Back To Top


 

Example from maplist.cfg

{                             Open Curley Bracket 
map "0fear-wfa"         This is the name of the Map
timelimit "30"             This is the customMapLimit timelimit for this particular map
caplimit "10"              This is the customMapLimit Caplimit for this particular map
maptype "ctf"            This is gametype that this map will load for
}                             Closed Curley Bracket 

 


Back To Top


 

Frequently Asked Questions

5.1 How do I start a WFA server?

quake3.exe +set fs_game wfa +set gametype 4 +exec wfa-server.cfg

quake3.exe +set fs_game wfa +set gametype 4 +exec wfa-server.cfg

5.2 How do I turn flood control off?

/seta sv_floodcontrol 0

5.3 I need help setting up a WFA server. Where can I go for help?

http://www.captured.com/weaponsfactory/quake3/server-docs/WFA-Win32-Server-Docs.htm (Win32)
http://www.captured.com/weaponsfactory/quake3/server-docs/WFA-Linux-Server-Docs.htm (*nix)

You can also try ShadowSpawn's server setup guides:
http://www.shadowspawn.net/content/game/quake/server-config.asp
http://www.shadowspawn.net/content/game/quake/server_setup.asp

For general server help, try:
http://www.planetquake.com/scarab/Server_Setup/More_Server_Help/body_more_server_help.html
http://www.deathcon.com/quake3/dedicated.html

5.4 In GameSpy, a server shows 20/22 spots taken, but when I try to join it tells me 'Server Full'. What does this mean?

This means that the server has 2 reserved spots, and you need a password to join one of those spots.

 

5.5 Why wont my server show up in Gamespy at all?

The master servers will not list a server that is run with +set dedicated 1, or constantly spams them by constant restarts. Give it time.

 

5.6 I have linux, god of all servers, why won't it work right?

You need to add +set vm_ui 2 +set vm_cgame 2 +set vm_game 2 to the command line parameters

 

5.7 Why won't my wfa-server.cfg work right?

You may need to delete your q3config.cfg after every server launch, as it reads and exec's it AFTER every other config. Don't go write-protecting your q3config either.

5.8 How much bandwidth does this monster use?

Approximately 3k/sec for each player, dependant on the 'rate' limit set. No, cable modems and dsl modems are not the greatest either. Sometimes even though you have a great upload cap, that doesn't mean that you can host a good, reliable, packet-lossless server. Things such as aggregation, routing issues, and other deficiencies with sub-tier 3 providers can make for a horrible host.

5.9 Why do I get constant GPF's or Dr. Watson's for my server?

Either you don't have enough memory, your config has been totally ganked, your files are corrupt or you have some missing, your system has other problems, or you are simply missing something out of the file system.

5.10 How much memory does my server need?

This is open to debate. Right now, the minimum we have launched with is 56mb in the hunk, and 16 in the zone. This may be expanded as high as you want. Different maps may demand different amounts, so with 64mb of ram running NT 4.0 stand-alone totally BARE BONES and configured correctly that means you may host a 16 player server with no bots and have barely enough room to spare. Won't be pretty under load, but will suffice. Linux is the same, it all depends on what other services are running at the time. You shouldn't see over a 30% utilization peaking anywhere with a stable server.

5.11 My server just sits there and says something about demoq3 and won't do anything else

You are probably missing a pak or two, or are trying to start a server with the demo files. Go over the file list or buy the game.

5.12 It stops and says that it can't load the default.cfg.

You are not running the exe in the same directory as the paks, or you are trying to run the demo files as a server.

5.13 I always get a variable 'latched', but it never seems to take no matter where I specify it, or I am getting cvar_overflow messages or cvar_pushevent errors.

You have write-protected the q3config. Unwrite protect it.

5.14 Where can I get a list of all server variables?

Two places. The first place it at http://www.shadowspawn.net/content/game/quake/server-config.asp which lists all the relevant ones to WFA and are the defaults used, and another way to do it is to launch the server and do the following: set logfile 1 (this creates a logfile called qconsole.log) and then type cvarlist. You will get a big dump of every variable that is set.

5.15 How do I get bots to run on my server?

You don't. You can try, but it won't work right. They are under development.

5.16 I have a router or are using NAT and none can connect inside the firewall to it. Why's that? Some are getting 'client unknown to auth'!

NAT is tricky. The documentation for the reverse-NAT should be given to you with the equipment. Things like MSP, LynkSys, and others are very different and detailed when specifying which ports to bind to an address. Good place to start is to see how to bind a web server first, then adapt that to Quake3. Remember that quake3 first sees the client's connection on the 'listen' port, then tries to connect the client on a subsequent 'qport', a UDP dynamically-assigned port that can be, well, anything within range. IF you are getting 'Client Unknown to AUTH' errors, this is probably why; the server can't get the client on an open 'qport'.

5.17 What are the minimum requirements to set a server up?

This is debatable. However, any socket 7 or 8 Pentium-class processor over 200mhz with no idle load and sufficient memory will handle up to 20 players with 25% utilization. This means that your computer should be streamlined, fast, and not be running anything but what it needs to. Like everything else, the components make the whole. This means that PCI everything, no ISA, bus mastering cards, the motherboard, the memory, the peripherals all make up the whole system. If you can play quake3 arena on it, it's probably good to run a server. You don't need a great video card either to run one, just no ISA cards.

5.18 I am a newbie! What tools are out there that exist to help me?

Look back here soon. If you want beta programs, jump in #irc.enterthegame.com and stop on in #wfa and ask around. Be patient, everyone is usually playing WFA anyway. Or check out www.shadowspawn.net/wfa/scheduled for some cool programs and links.

5.19 How do I get my server to restart when it crashes and I am not around? Scheduling?

Easiest way is with cron for nix. I am not going to explain here, if you installed nix you should know what cron is.

2 ways with NT/W2K. The first is easy. The second is not. Both you should require Dr. Watson to not give any visual notification, turn off logging, and no dumping of debug symbols. drwtsn32 is it's name, fire it up at a cmd prompt.

1.) Thanks to Fluke of the infamous Dallas Servers:

Create a batch file called q3start.cmd and put this in there:

@echo off
:startgame
call "C:\Quake3\q3param.cmd"
echo ======================
echo Auto server restart on
date /t
echo at
time /t
echo ======================
rem NOTE: rem pause after testing
rem It prevents run-away looping
pause
goto startgame
:Loop
:End

Create a file called q3param.cmd and put this in there:

START /DC:\Quake3 /MIN /NORMAL /WAIT quake3.exe +set dedicated 2 +set fs_game wfa +set com_hunkmegs 56 +set com_zoneMegs 32 +set net_port 27960 +exec wfa-server.cfg

As you can see, the param has the command-line startups. Fire up the q3start.cmd and there ya go. If it ever dr.watsons, it'll restart.

2.) This is not easy but it gains loads of performance. http://www.shadowspawn.net/content/game/quake/wfa.htm not for the timid.

Either way on either OS you can specify jobs for each config, and have a totally different server configuration load up on a scheduler. This way you can rotate the server for different clans, and don't have to worry about anyone not unpasswording the server, plus you can rule the schedule with an iron fist and never need to talk to anyone.

5.20 I just fired up a server, and now I am getting thousands of ICMP recieves and UDP requests in my newly installed firewall software. Why are all these hackers trying to hack my machine? Is this normal?

When you fire up a server, you are firing up a service that will allow incoming connections. That is the definition of a server. It serves requests to clients. It also announces to the world (dedicated 2) that it is present and open to queries (ICMP) and connections (UDP). Before you even think of firing up a server, understand the basics of networking, how the internet actually functions (i.e.. the internet is not just something on the other side of that shiny new wall plate someone just installed last weekend, ooo... pretty colors!) Some people have fired up public game servers and complained to the ISP's that people were hacking them. In the logs that they sent, it showed the normal Quake3 protocol handshakes and queries. So please, use your brain. If you don't want to be connected to, don't fire up a server in the first place.

5.21 Why won't my server show up in the ingame browser?

The current ID master has only room for 2048 servers. If yours is last, it won't be in the database. Sorry, just be patient.

5.22 Why don't I have any class limits?

You need to make sure that you have a g_inifile variable that's supposed to be in the wfa-server.cfg pointing to the wfa-ini.cfg file.

5.23 Some people are complaining that my refs are showing up all over the scoreboard. What gives?

It's an ID bug from people using the sv_privateclients password on large servers.

5.23 I get this error with Linux: Shutdown tty console; Sys_Error: Recursive error after: Filesystem made without initialization

Thanks to Andres for hunting this one out, add "+set ttycon 0" to the cmd line startup parameter.

 


Back To Top


 

 

 

Questions? Comments? E-Mail Shadowspawn or visit the forums.