====== 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