3. QuakeWorld

QuakeWorld is a multiplayer-only version of Quake with optimized network code. Id Software released the sourcecode for Quake/QuakeWorld in 1999, creating a number of projects set out to improve, optimize, add more features to the code and make it more secure. QuakeForge is the most advanced, and I recommend that you use it instead of id's old qwsv if you can. QuakeForge is based on id's QuakeWorld 2.40 code and is totally compatible with it.

3.1. System requirements

Here are the minimum system requirements for the QW (QuakeWorld) server. Remember that the requirements depend on how many players you have on your server.

3.2. Installing

First you have to download QuakeForge or qwsv 2.30, the QW server. QuakeForge should be used with all modern distributions. There are two versions of the old qwsv, one for glibc (libc6) and one for libc5 if you happen to run such an old system. Download the version that suits you, most likely QuakeForge.

Note: QuakeForge is actively being developed, and it is highly possible that a newer version than the one linked below is out, so check http://quakeforge.net/files.php before you proceed further.

Create a directory where you want to place the QW server, /usr/local/games/quake for example.

If you downloaded QuakeForge:

bash$ mkdir /usr/local/games/quake
bash$ tar zxvf quakeforge-0.2.99beta6.tar.gz
bash$ cd quakeforge-0.2.99beta6
bash$ ./configure --prefix=/usr/local/games/quake --bindir=/usr/local/games/quake; make; make install

This will at least build the qf-server and possibly one or more QF-clients. We don't need the latter; you can choose to not compile them or simply remove them if you want to. Anyway, if the compilation went fine you should now have a binary called qf-server in /usr/local/games/quake. You might want to rename it to qwsv since that's what I'll call it in the rest of this document.

If you downloaded qwsv:

bash$ mkdir /usr/local/games/quake
bash$ tar zxvf qwsv-2.30-glibc-i386-unknown-linux2.0.tar.gz -C /usr/local/games/quake

Now create an id1 directory in the quake directory and copy the pak0.pak and pak1.pak files from your Quake CD or wherever you have them into that directory.

bash$ mkdir /usr/local/games/quake/id1
bash$ cp /where/ever/id1/pak*.pak /usr/local/games/quake/id1

Now you're ready to run qwsv! Run it by typing ./qwsv in the quake directory. It should work fine now (if not, check so that all the filenames are lower-case), try connecting to your server with a QW client.

3.3. Configuring

Now it's time to configure your QW server. Make a server.cfg file in the id1 directory containing:

sv_gamedir qw
deathmatch 1
hostname                "QW testserver"
serverinfo admin        "webmaster@xyz.com"
serverinfo url          "http://url.net"
rcon_password xxxx
timelimit 35
fraglimit 150
noexit 1
pausable 0
samelevel 2
maxclients 16
map dm3
floodprot 4 8 30
floodprotmsg "You have activated the flood protection and will be silenced for 30 seconds"
maxspectators 2
allow_dowload 1
allow_download_skins 1
allow_download_models 1
allow_download_sounds 1
allow_download_maps 1

As you can see the server.cfg file contains all kinds of variables the server uses.

bash$ ./qwsv > /dev/null &

The above command runs the qwsv server in the background and sends all output to /dev/null (if you want to log the output, just replace /dev/null with /blah/qw.log or whatever), -port specifies the port the server will use, default is 27500 for QW. For a complete list of commands and the official QW manual, see http://qwcentral.stomped.com.

3.4. Threewave CTF (Capture The Flag)

Capture The Flag, or CTF for short, is the most popular Quake modification. There are many different CTF-variants. Threewave CTF is the original and most popular CTF modification. You need the following files:

Create a ctf directory and extract all the files you downloaded to it (note: replace ~/ with the path to the directory where you downloaded the files).

bash$ cd /usr/local/games/quake
bash$ mkdir ctf
bash$ unzip ~/3wave42.zip -d ctf
bash$ unzip ~/3wave421.zip -d ctf
bash$ unzip ~/3wctfc.zip -d ctf

Now try to start the server (if you don't specify which map to play it'll default to an interesting modified version of Quake's start level):

bash$ ./qwsv +gamedir ctf +map ctf1

3.5. Rocket Arena

Rocket Arena is a very exciting modification. It's one-on-one games with the simple rule "winner stays, loser goes". Each player waits for his/her turn to fight in the arena. Every player gets full armor (200), 100 health and all weapons when they enter the arena. The winner stays to fight again, the loser goes back to the line. Simple? Yes. Boring? No!

Now, on to installing this modification. Get the following files:

Create a directory called arena in your quake directory and unzip the above files to that directory:

bash$ cd /usr/local/games/quake
bash$ mkdir arena
bash$ unzip ~/fasrv12.zip -d arena
bash$ unzip ~/farena12.zip -d arena

Start the server:

bash$ ./qwsv +gamedir arena +setmaster 204.182.161.2 +exec rotate.cfg +maxclients 6 +timelimit 20 +fraglimit 15

For map rotation you can choose one of the following (of course you can edit these or make your own, remember that the last map must loop to the first):