VITAL NOTES FOR WFA SERVER ADMINS
Version 3.5
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.planetquake.com/weaponsfactory/quake3/.
What's in this document:
IMPORTANT ISSUES WITH FILES, ROTATIONS, AND MISC STUFF
Step one: Read the changes.htm, there's important information within the document.
Step two: Weapons factory arena has changed the way the engine files are distributed since version 3.3. The WFA media 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, but as mentioned in the client manual they most likely will not work. 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.5 distribution, in the 2 map packs for 3.5 or the installer. We also recommend reading the changes.htm included within this distribution.
WFA specifically has some awesome configs and in 3.5 we added more to it. But this can be daunting at first; learn to become familiar with it. Time limits, class limits, warmup times, 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. We set the timelimits to 31 with a 1 minute warmup. You are, of course, welcome to change these settings by editing your servercfg.cfg file.
Command point: All maps now have commandpoint installed. A 3.5 map needs these entities in order to fire up correctly, so previous maps may not function with 3.5 at all and may error out your server with a crash (not a hard crash, just a console error). The server.cfg file has 4 sets of configs now, 2 for CTF and 2 for commandpoint, prepended by their name automatically. You do not need to add the ctf- or cp- before the name within the main server config, it is done automatically.
Warmup: You can now specify the warmup per config. Ref's have the ability to change the warmup, however it will stay that way until either a new config is executed or the server is restarted.
Punkbuster: Due to the nature of the application of the pb settings, it is only advised that you run it and enable it. Feedback from the last settings we released enabled us to reach a happy medium for limiting items and exploits, while enabling performance tweaks at the level editor's discretion. (Level designers can now disallow picmip for instance, clamp lightmap and vertex brightness, grid light values, and various other settings.) The latest hacks and bots change too swiftly to be constantly updated. Keep an eye on the evenablance.com site for updates if your server is not updating automatically or through the pb_sv_update command.
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.
Players have the ability to view all referenced packs on the server. If you are running non-standard wfa 3.5 packs, they will be able to tell.
I recommend you make another directory somewhere on your machine (like wfa/temp) and move the maps and pk3's 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.
Make sure at least one sv_master points to wfamaster.planetice.net for those that cannot use ASE. Gamespy, or PingTool.
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_gametype | Allows ref to change the gametype. Only takes effect after a map restart. |
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 |
ref_warmup | Enables ref to override the g_wf_warmup variable |
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. |
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 (OBSOLETE) 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 | "1" | Enables the bot's usage of the grapple |
bot_enable | "1" | Enables loading of the AAS files. |
This part is directly from the serverconfig.cfg; you can have up to 8 combinations. Matchmode and default are mandatory.
{ Open Curley Bracket servercfg "ctf-default" This is the name of the config used. timelimit "30" This is the timelimit for the general playlist. caplimit "10" This is the caplimit for the general playlist refpassword "test" This is the Referee Password warmup "60" This is the Warmup Value 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
{ 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
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.planetquake.com/weaponsfactory/quake3/server-docs/WFA-Win32-Server-Docs.htm (Win32)
http://www.planetquake.com/weaponsfactory/quake3/server-docs/WFA-Linux-Server-Docs.htm (*nix)
You can also try ShadowSpawn's server setup guides:
http://www.shadowspawn.net/beta/quake3_service.htm
http://www.shadowspawn.net/beta/quake3_scheduled.htm
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/beta/quake3_server_commands.htm 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 PIII 500 or better computer, 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 our gameadmins.com 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
:EndCreate 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/beta/quake3_service.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. Make sure you at least point it to the wfamaster.planetice.net as well.
5.22 Why don't I have any class limits?
You need to make sure that you have a g_defaultserverconfig variable that's supposed to be in the wfa-server.cfg pointing to the right config in the g_serverfile 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.
Questions? Comments? E-Mail Shadowspawn or visit the forums.