User Tools

Site Tools


Quake 3 Arena dedicated Server

Here's a quickguide to running a Q3A dedicated server on a debian system.

I assume you have running Quake3Arena for linux running on your client computer already. We'll use this installation as base.

  • Create a user and it's home dir
#> useradd -u 666 -g games -d /opt/games/quake3 quake3
#> mkdir -p /opt/games/quake3
#> chown games:games /opt/games
#> chown quake3:games /opt/games/quake3
  • Copy the needed files over from your workstation
#> su - quake3
$> scp -r you@workstation:games/quake3 .
  • Create a link to make Q3A happy (this fixes some maybe problems)
$> ln -s /opt/games/quake3 .q3a
  • Create a new baseq3/autoexec.cfg with the following basic values
set vm_game 2
set vm_cgame 2
set vm_ui 2
set dedicated 1       //dedicated but no announce
set com_hunkmegs 32   //How much RAM for your server
set net_port 32000    //The network port
  • Create a base3/server.cfg file with additonal parameters
seta sv_hostname "My Q3A Server"
seta sv_maxclients 8
seta g_motd "=== Happy fragging ==="
seta g_quadfactor 4

//### team deathmatch ###
//seta g_gametype 3
//seta g_teamAutoJoin 1
//seta g_teamForceBalance 1
//seta timelimit 15
//seta fraglimit 25

//### free for all ###
seta g_gametype 0
seta timelimit 10
seta fraglimit 15

seta bot_nochat 1

seta g_weaponrespawn 2
seta g_inactivity 3000
seta g_forcerespawn 0
seta g_log server.log
seta logfile 3
seta rconpassword "secret"

seta rate "12400"
seta snaps "40"
seta cl_maxpackets "40"
seta cl_packetdup "1"
  • Create a baseq3/levels.cfg file which contains all maps you want to use in rotation
set dm1 "map q3dm1; set nextmap vstr dm2"
set dm2 "map q3dm2; set nextmap vstr dm3"
set dm3 "map q3dm3; set nextmap vstr dm1"
vstr dm1
  • Set up some bots in a baseq3/bots.cfg
seta bot_enable 1
seta bot_minplayers 4

addbot doom 3 blue 10
addbot orbb 3 red 10
addbot bones 3 blue 10
addbot major 3 red 10

Okay thats it. Now you can run your server with

$> ./quake3.x86 +exec server.cfg +exec levels.cfg +exec bots.cfg

To automate this have a look at the init script below. Oh and be sure to open your firewall or your buddies can't connect.

Init Script

This script starts and stops the dedicated server. Installed to /etc/init.d/q3a_server and optionally linked to the default runlevel.

#! /bin/sh
set -e

OPTIONS="+exec server.cfg +exec levels.cfg +exec bots.cfg"

test -x $DAEMON || exit 0


case "$1" in
        echo -n "Starting Q3A"
        cd $BASEPATH
        start-stop-daemon --start --quiet -c $RUNAS --pidfile $PIDFILE \
                -N -10 -m -b -d $BASEPATH --exec $DAEMON -- $OPTIONS
        echo "."
        echo -n "Stopping Q3A"
        start-stop-daemon --stop --quiet --pidfile $PIDFILE \
                --exec $DAEMON
        echo "."
        $0 stop
        sleep 3
        $0 start
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 1

exit 0
q3aserver.txt · Last modified: 2007/11/03 08:43 by