Sys Admin Guide
Contents
So, You've Decided to Start a Quake 3: Arena Server.
This guide will help you get started.
You will need a legitimate copy of Quake 3: Arena. It is currently only available through Steam on Windows or if you'd like it on-disc second-hand markets like Ebay may have copies.
Once you have the game downloaded, copy pak0.pk3
to your server's baseq3
directory.
Ports
Forward and open port 27960
on your firewall or router and in whatever operating system you use.
Linux
- Create a new user for your ioquake3 server to run as. You can use the command
sudo adduser ioq3srv
for example to add a new user namedioq3srv
- Switch to the new user
su - ioq3srv
- Download
server_compile.sh
wget https://raw.githubusercontent.com/ioquake/ioq3/master/misc/linux/server_compile.sh
- Install any pre-requisites according to your distribution documentation. If you run into trouble here, please ask for help on our forums after attempting the next command and saving the output to pastebin
sh server_compile.sh
- Copy
pak0.pk3
from your purchased copy of Quake 3: Arena to thebaseq3
sub-directory ofioquake3
- Download
start_server.sh
wget https://raw.githubusercontent.com/ioquake/ioq3/master/misc/linux/start_server.sh
- Type
screen
and thensh start_server.sh
. You can leave the screen at any time by pressing Ctrl+a then d, and then get access to your running server again by typingscreen -drU
- You're ready to go, just type
map q3dm17
in your new server's console.
Mac OS X
Windows
Useful ioquake3 server console commands
- banaddr <range>
- ban an ip address range from joining a game on this server, valid <range> is either playernum or CIDR notation address range.
- exceptaddr <range>
- exempt an ip address range from a ban.
- bandel <range>
- delete ban (either range or ban number)
- exceptdel <range>
- delete exception (either range or exception number)
- rehashbans
- reload the banlist from serverbans.dat
- flushbans
- delete all bans
- net_restart
- restart network subsystem to change latched settings
- game_restart <fs_game>
- Switch to another mod
- kicknum <client number>
- kick a client by number, same as clientkick command
- kickall
- kick all clients, similar to "kick all" (but kicks everyone even if someone is named "all")
- kickbots
- kick all bots, similar to "kick allbots" (but kicks all bots even if someone is named "allbots")
- tell <client num> <msg>
- send message to a single client (new to server)
Using HTTP/FTP Download Support
You can enable redirected downloads on your server even if it's not an ioquake3 server. You simply need to use the 'sets' command to put the sv_dlURL
cvar into your SERVERINFO
string and ensure sv_allowDownloads
is set to 1
sv_dlURL
is the base of the URL that contains your custom .pk3 files the client will append both fs_game and the filename to the end of this value. For example, if you have sv_dlURL
set to "http://ioquake3.org"
, fs_game
is "baseq3"
, and the client is missing "test.pk3"
, it will attempt to download from the URL "http://ioquake3.org/baseq3/test.pk3"
sv_allowDownload
's value is now a bitmask made up of the following flags:
1 - ENABLE
4 - do not use UDP downloads
8 - do not ask the client to disconnect when using HTTP/FTP
Server operators who are concerned about potential leeching from their HTTP servers from other ioquake3 servers can make use of the
HTTP_REFERER
that ioquake3 sets which is "ioQ3://{SERVER_IP}:{SERVER_PORT}"
. For, example, Apache's mod_rewrite can restrict access based on HTTP_REFERER
.
On a sidenote, downloading via UDP has been improved and yields higher data rates now. You can configure the maximum bandwidth for UDP downloads via the cvar sv_dlRate. Due to system-specific limits the download rate is capped at about 1 Mbyte/s per client, so curl downloading may still be faster.
Using Old Versions or Protocols
Sometimes we get asked to help with NoGhost or other mods that require versions of Quake 3 prior to 1.32c. Unfortunately there is no way to make mods that require old versions of Quake 3 work with ioquake3. When id software released the source code which ioquake3 is based on we only received access to the latest version at the time they stopped working on it.
Punkbuster
Similarly, we sometimes get asked to support Punkbuster. This is closed source cheat detection software that we don't have the ability to use with ioquake3.