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.
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.
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.
-port - Specified the port for the server to listen on, default is 27500.
timelimit - Match ends when timelimit (specified in minutes) is reached.
password - Password protect the server. Clients must set a matching password to be able to connect.
allow_download - Set this to 1 to allow clients download files they don't have from the server.
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.
ftp://ftp.sunet.se/planetquake/threewave/ctf/server/3wave42.zip - All the server files.
ftp://ftp.sunet.se/planetquake/threewave/ctf/server/3wave421.zip - Some bugs fixed (4.2 is required).
ftp://ftp.sunet.se/planetquake/threewave/ctf/client/3wctfc.zip - All the CTF maps.
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 |
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:
ftp://ftp.sunet.se/pub/games/PC/idgames2/planetquake/servers/arena/fasrv12.zip - All the server files.
ftp://ftp.sunet.se/pub/games/PC/idgames2/planetquake/servers/arena/farena12.zip - The required client files (maps and sounds).
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):
rotate.cfg - All the Final Arena maps.
newmaps.cfg - The new Final Arena and the TF arena maps.
classic.cfg - The most popular earlier Arena maps.