4. Quake II

Quake II is the sequel to Quake, featuring great multiplayer capabilities just like its prequel.

4.1. System requirements

As always, the minimum system requirements vary depending on the number of clients.

4.2. Installing

To start a Q2 server you need the Q2 client package and the pak files from the Q2 CD. Download the one that suits your system (glibc, unless your distribution is really ancient):

Create a directory for Q2 and extract the Q2 client package to it:

$ mkdir quake2
$ tar zxvf quake2-3.20-glibc-i386-unknown-linux2.0.tar.gz -C quake2

Now create a baseq2 directory inside the quake2 directory and copy the pak files to it from the Q2 CD-ROM:

$ mkdir quake2/baseq2
$ cp /mnt/cdrom/baseq2/*.pak quake2/baseq2

Go to the Quake2 directory and start the server:

$ cd quake2
$ ./quake2 +set dedicated 1 +set deathmatch 1

It should work fine and people should be able to connect to it.

4.3. Configuring

You'll want to create a server config (cfg) file. Put the following in a file called server.cfg in the baseq2 directory and modify it as you like:

set hostname "Q2 testserver"
set deathmatch "1"
set rcon_password "xxxx"
set timelimit "30"
set fraglimit "100"
set maxclients "16"
set allow_download "1"
set allow_download_players "0"
set allow_download_models "1"
set allow_download_sounds "1"
set allow_download_maps "1"

Settings:

Now start the server with ./quake2 +set dedicated 1 +exec server.cfg. Your config file will be read and the variables in it will be used. You can have different config files for different game types, for example ffa.cfg, ctf.cfg, etc. with customized settings. They should all be in the baseq2 directory.

To have your server listed on the master servers (so people using GameSpy, XQF and similar programs can see your server), type set public 1 in the server console or in the config file. With the command set setmaster 'master server' you can change master server (default is id Software's master server).

4.4. Q2CTF (Capture The Flag)

Download one of the following (you'll most likely want the glibc one, unless your distribution is ancient).

It only contains the file gamei386.so. Create a ctf directory in your Q2 directory and extract the q2ctf archive:

$ mkdir quake2/ctf
$ tar zxvf q2ctf150-glibc-i386-unknown-linux.tar.gz -C quake2/ctf

You'll also want the Q2CTF package with the CTF maps, ftp://ftp.sunet.se/pub/pc/games/idgames2/idstuff/quake2/ctf/q2ctf150.zip (9.1 MB). Unzip it to the ctf directory. To start a CTF server, run ./quake2 +set dedicated 1 +set game ctf +exec server.cfg, where server.cfg is a file you should create in the ctf directory, containing this:

deathmatch 3
maxclients 12
rcon_password password
fraglimit 0
timelimit 30
set hostname "Q2CTF Testserver"
set admin "admin@xyz.com"
map q2ctf1

4.5. LMCTF (Loki's Minions CTF)

LMCTF, Loki's Minions CTF, is a popular CTF modification for Q2. You need all the following files:

Create a lmctf directory in your Q2 directory and unzip all the files to it. Go to the Q2 root directory and start with the following command:

$ ./quake2 +set dedicated 1 +set deathmatch 1 +set game lmctf +exec server.cfg

There are some files in the lmctf directory that you'll probably want to edit: server.cfg is the main cfg file containing many standard server options. maplist.txt contains the list of maps the server cycles through. To alter the map list, create a file in your root Q2 directory called maplist.txt containing the names of the maps and add +map mapname to the command line when you start the server, where mapname is the name of the first map in the maplist.txt you just created. The file motd.txt contains the "message of the day" clients will see when joining the server.

For more information on LMCTF, see its homepage.

4.6. Rocket Arena 2

To run a Rocket Arena 2 server you need the following files:

Create a directory called arena in your quake2 directory and extract the above files:

$ cd quake2
$ mkdir arena
$ unzip ra2250sv.zip -d arena
$ unzip ra2250cl.exe -d arena

Edit server.cfg to your liking. Another file that you may want to edit is arena.cfg, which is used to customize settings on a per arena basis as well as map rotation information. Start the server:

$ ./quake2 +set dedicated 1 +set game arena +exec server.cfg

4.7. Lithium II

Lithium II is a very popular and configurable server-side deathmatch mod, adding things like the grappling hook and letting you configure pretty much everything; see its readme.txt file for more information. Download the following file:

Extract the file in your quake2 directory. All the files will be placed in a new directory called lithium:

$ cd quake2
$ tar zxvf lithium2_1.24-i386-unknown-linux2.0.tar.gz

Lithium II comes with four different config files, copy one of them to server.cfg and modify it to your liking:

Start a deathmatch server with the following command:

$ ./quake2 +set dedicated 1 +set game lithium +exec server.cfg

To start a CTF server, you must have Q2CTF installed. Extract the lithium archive to your ctf directory and start with the following command:

$ ./quake2 +set dedicated 1 +set game ctf +set ctf 1 +exec server.cfg

4.8. L-Fire DM

L-Fire DM is a server-side mod that adds many features to Q2, such as organized match support, anti-spam, highscore lists for each level, profanity filtering, etc. What you need:

You can run L-Fire DM from either the baseq2 directory (in that case it'll show up as a standard DM mod in GameSpy and similar tools, or you can give it its own directory (lfiredm or whatever you prefer). Extract the archive (actually, it only contains two files, gamei386.so and readme.txt), or in other words place gamei386.so in your directory of choice.

$ cd quake2
$ mkdir lfiredm
$ tar zxvf LFireDM_v1_11_Linux.tar.gz -C lfiredm

LFireDM_v1_11_Config.tar.gz contains many config files which you may want to edit. Extract it to the directory where you put gamei386.so:

$ tar zxvf ~/LFireDM_v1_11_Config.tar.gz -C lfiredm

Start the server:

$ ./quake2 +set dedicated 1 +game lfiredm

4.9. L-Fire CTF

L-Fire CTF is like L-Fire DM a server-side mod that adds many features to Q2CTF like match support, anti-spam, highscore lists for each level, rocket arena/sudden death overtime, etc. What you need:

Extract the archive to your Q2CTF directory:

$ cd quake2
$ tar zxvf LFireCTF_v1_20_Linux.tar.gz -C ctf

LFireCTF_v1_20_Config.tar.gz contains a bunch of configuration files which you may want to edit. Extract it to the Q2CTF directory:

$ tar zxvf LFireCTF_v1_20_Config.tar.gz -C ctf

Start the server just as you normally would:

$ ./quake2 +set dedicated 1 +game ctf

4.10. Q2Admin

Q2Admin is a very good transparent proxy modificatiom that adds many admin functions, and the most important, ZBot/Ratbot (among other things) detection to preven cheating. Q2Admin works with all Q2 mods transparently by filtering communication between the server and the mod it's running on top of. I recommend that you install Q2Admin if you're going to run a public server. Download this file:

Now extract the archive and compile it:

$ cd quake2
$ mkdir q2admin
$ tar zxvf q2admin18src.tar.gz -C q2admin
$ cd q2admin; make

Now you should have a file called q2admin.so in the q2admin directory. For each mod you want to protect with Q2Admin, copy the install and q2admin.so files to each mod directory and optionally the *.txt files if you want to customize the Q2Admin settings for different mods. Run install, ./install (chmod +x install if it's not executable) and start the server as usual. The install script moves gamei386.so to gamei386.real.so and q2admin.so to gamei386.so. Run install again to move the files back to their original names. There's a huge number of commands; See readme.txt included in the q2admin package for everything you need to know.