How to: Quake 1 dedicated server
Recently I had a strong yearning for a nostalgic hit of good ol' original Quake multiplayer. I used to love the simple, raw deathmatch and co-op. Turns out that it's quite difficult these days to find information and downloads for running dedicated servers.
Here's what I did to run "original", mod-free Q1 and a dedicated server.
I say "original" but I ended up using a slightly modified version of Quake called ProQuake which provides useful improvements such as the dedicated server mode.
- Client: WinXP PC
- Server: Ubuntu
Preparing the Linux server
- Make a directory e.g. mkdir ~/quake
- Upload or copy the sqpro file into the quake directory
- You may need to make sqpro executable: chmod +x ~/quake/sqpro
- Copy the id1 directory from your Quake game into quake
You should now have the following. If the filenames are not lowercase, you will need to lowercase them.
quake sqpro rwxr-xr-x id1 config.cfg r--r--r-- pak0.pak rw-r--r-- pak1.pak rw-r--r--
Here's my server config.cfg (different from the client config.cfg) which contains a remote administration password and default settings like co-operative mode turned on. Note that I've made it read-only (chmod -w); otherwise it gets overwritten upon server exit.
Launching the server
Run the server from the command line:
./sqpro -dedicated 4 &
I'm running the server in the background and controlling it with Ubuntu's jobs.
Other command-line parameters you may need to use or tinker with:
- -dedicated 16 launches as dedicated server and allows up to 16 players.
- -ip 126.96.36.199 is the IP address to bind to. May be necessary if the machine has multiple IPs.
- -condebug generates a qconsole.log text file of events on the server.
- -heapsize 32768 is a memory allocation of 32 MB.
- -mem 32 alternative to -heapsize.
- -zone 1024 is another memory allocation of 1 MB for alias memory. ProQuake defaults to 512.
- -port 26001 or -udpport 26001 is the connection port. Port 26000 is the default used by the server and Quake clients.
- -noipx disables IPX/SPX support.
- +map dm2 is the map the server starts on.
Note: If you run sqpro and get "No such file or directory" this is because sqpro is a 32-bit application and your Ubuntu is probably 64-bit. You may need to install 32-bit libraries: sudo apt-get install ia32-libs
Launching the client
wqpro.exe -window -width 1600 -height 1024
Once the game loads, hit tilde/backtick to bring up the console, then enter:
+mlook — enables mouse look; mine is always off by default...
rcon_password hello — password so client can use remote administration
connect xx.xx.xx.xx — IP of the server
Hopefully you'll now be connected to the server. You can test the remote administration by typing: rcon status
The following useful commands can be typed into the running server application:
- status shows hostname, IP, map and players.
- coop [0|1] turns on/off co-operative mode. Do this before choosing a map.
- skill [0|1|2|3] changes the difficulty: 0 easy, 1 normal, 2 hard, 3 nightmare.
- map e1m2 restart from this map (see list below). Drops players.
- changelevel e1m2 changes the map (see list below).
- rcon_password "mypassword" defines or changes the remote administration password.
- rcon_password "" disables remote administration.
Any of these can also be done from the client console if remote administration is active, simply by prefixing with rcon. For example:
- rcon status
- rcon map e2m3
- One annoying thing I experience is when forcing the server to change maps (e.g. rcon map dm3) that it drops all client connections. I suspect this is an issue with ProQuake and just means that clients have to reconnect. It doesn't occur when a map ends normally and switches to the next map.
Update: B.Thoor suggests changing maps with rcon changelevel e1m7 which does not drop players.
Quake map list
- Episode one
- Episode two
- Episode three
- Episode four
- e4m8 (crashes for me)