====== 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
BASEPATH="/opt/games/quake3"
BINARY="quake3.x86"
DAEMON="$BASEPATH/$BINARY"
OPTIONS="+exec server.cfg +exec levels.cfg +exec bots.cfg"
RUNAS="quake3:games"
PIDFILE="$BASEPATH/$BINARY.pid"
test -x $DAEMON || exit 0
export HOME=$BASEPATH
case "$1" in
start)
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 "."
;;
stop)
echo -n "Stopping Q3A"
start-stop-daemon --stop --quiet --pidfile $PIDFILE \
--exec $DAEMON
echo "."
;;
restart|force-reload)
$0 stop
sleep 3
$0 start
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0