Castanet Communications banner image
 
 

 
Quake 3 Server Setup Guide
Author: Craig "hachiroku" Mercer
Date Created:2002-12-05
Operating System(s):Windows Logo imageWindows 9X/2000/XP MacOS Logo imageMacOS OS X Linux Logo imageLinux
  Quake 3 image

The Quake 3 Server Guide. No guide collection would be complete without the server that started it all! Oh if only all game servers were as easy to configure as a Quake 3 server!

cg_drawFPS 1

 

Guide Quick Navigation
Getting Started - Creating the Server (CFG) File(s)

Create 2 shortcuts on the desktop to the quake3.exe and then add the following to the target field in the properties (right-hand mouse click on the shortcut) window.

It will look something like this: Target: "X:\Games\Quake 3\quake3.exe"

On the first shortcut we will set up a Capture the Flag Server. Do this by adding the following after quake3.exe and make sure these is a space between them:

+set dedicated 1 +exec server_ctf.cfg

+set dedicated 1
// make it a dedicated server (0=OFF 1=ON)

+exec server_ctf.cfg
// Name of the CTF server script you wish to execute.
NOTE:
Be sure it is saved in your X:\Quake 3\baseq3\ directory or it will not work

You now should have a shortcut named Quake 3 on your desktop with properties that look like this:

Target: "X:\Games\Quake 3\quake3.exe" +set dedicated 1 +exec server_ctf.cfg

Next do the same thing for the second shortcut except change the script name for a Death match server:

Target: "X:\Games\Quake 3\quake3.exe" +set dedicated 1 +exec server_dm.cfg

Next open a new file in you fave text editor copy and paste the CTF script to a file and save it as "server_ctf.cfg" to your \Quake 3\baseq3\ folder.

Then create a new file and copy the Death Match script into it and save it as "server_dm.cfg" to your \Quake 3\baseq3\ folder.

 

// Capture the Flag Script
seta sv_hostname "LANage CTF Server"
seta g_motd "Welcome to the LANage Q3 CTF Server"
seta sv_maxclients 16
seta g_quadfactor 4
seta g_gametype 4
seta timelimit 15
seta fraglimit 5
seta g_weaponrespawn 3
seta g_inactivity 3000
seta g_forcerespawn 0
seta rconpassword "password"
set d1 "map q3ctf1 ; set nextmap vstr d2"
set d2 "map q3ctf2 ; set nextmap vstr d3"
set d3 "map q3ctf3 ; set nextmap vstr d1"
vstr d1

 

// Death Match Script
seta sv_hostname "LANage Death Match Classic Server"
seta g_motd "Welcome to the LANage Q3 Death Match Classic Server"
seta sv_maxclients 16
seta g_quadfactor 4
seta g_gametype 4
seta timelimit 15
seta fraglimit 50
seta g_weaponrespawn 3
seta g_inactivity 3000
seta g_forcerespawn 0
seta rconpassword "password"
set d1 "map q3dm1 ; set nextmap vstr d2"
set d2 "map q3dm2 ; set nextmap vstr d3"
set d3 "map q3dm3 ; set nextmap vstr d1"
vstr d1

 

Server CFG File Descriptions

seta sv_hostname "LANage Death Match Classic Server"
// what players will see on the join server window

seta g_motd "Welcome to the LANage Q3 Death Match Classic Server"
// message of the day that players will see while joining the server

seta sv_maxclients 16
// maximum number of players on the server

seta g_quadfactor 4
// Quad Damage strength. 4 is default

seta g_gametype 4
// Sets the type of game.
// 0 - Free for all
// 1 - Tournament
// 2 - Free for all(again)
// 3 - Team Deathmatch
// 4 - Capture the Flag

seta timelimit 15
// Sets the timelimit

seta fraglimit 50
// sets the fraglimit (flag limit)

seta g_weaponrespawn 3
// number of seconds before weapons respawn

seta g_inactivity 3000
// number of seconds before an inactive player is kicked

seta g_forcerespawn 0
// forces players to respawn 0=OFF 1=ON

seta rconpassword "password"
// sets the password to allow client control of the server

// Map Rotation
set d1 "map q3dm1 ; set nextmap vstr d2"
set d2 "map q3dm2 ; set nextmap vstr d3"
set d3 "map q3dm3 ; set nextmap vstr d1"
vstr d1

 

Serving Quake 3 Behind a Firewall
(Putting your server behind a firewall is a BEST PRACTICE)

If you plan on putting your Q3 Server behind a firewall (ie: residential ones D-Link, Linksys, SMC) you will need to open and forward the following UDP (and possibly TCP) ports in order for Q3 to work.

UDP 27960 Q3 Default Server Port *
UDP 12300 GameSpy Monitoring Port *
UDP 13139 GameSpy UDP Pings
UDP 27900 GameSpy Master Server Heartbeat
TCP 28900 GameSpy Master Server List
TCP 29900 GameSpy Connection Manager
TCP 29901 GameSpy Search Manager
UDP 6500 GameSpy Query Port
UDP 6515 GameSpy DPlay Port
UDP 3783 GameSpy Voice Chat
UDP 6667 GameSpy IRC Chat

* denotes ports that absolutely have to be open and forwarded to the Server in order for your server to work online. You don't have to have any of the other ports open in order to serve games via the in game Gamespy server list, but you may want to open them for other reasons.

 

Using RCON from a Client
(you have already set the rcon password in your server config file "server.cfg")

Remember to open the console by hitting the "~" also known as the tilde key.

/rconpassword "password"
- Logs you into the server. password is the rcon password from your server config.
/rcon kick "playername"
- kicks individual client by playername.
/rcon clientkick "#"
- kicks individual client by client number. The easiest way to kick players that use name scripts to change their names to letters that are hard to type in and clients with spaces in their names is to use the client number provided by status
/rcon say "yada yada"
- uses console to say yada yada (or whatever you want) to gamers on server.

You may use any command and set any server variable by using /rcon (like /rcon timelimit 25, /rcon motd "clan match at 1400" or /rcon map q3dm1). Some of the settings require a map change to get activated.

 

< Calling a Vote

This command can be used to propose changes on a server, and allow all the players on the server to vote on it. This can be used to change maps, game modes, settings, and even kick players if necessary. To vote on a proposed change, press F1 to vote "yes" and F2 to vote "no".

Examples:
callvote map q3dm3 - will call a vote to change to the q3dm3 map
callvote g_gravity - calls a vote to change the gravity (default is 800)
callvote kick jerkwad - calls a vote to kick the player jerkwad

 

Server Consolem Commands
Remember to open the console by hitting the "~" also known as the tilde key.
Commands Comment
callvote "proposed vote" - this command can be used to propose changes on a server, and allow all the players on the server to vote on it. This can be used to change maps, game modes, settings, and even kick players if necessary. To vote on a proposed change, press F1 to vote "yes" and F2 to vote "no".
cd "folder" - change current directory to folder
cheats "0 or 1" - sets cheats off (0) or on (1)
cmdlist - list all console commands
dir - list all files in current directory
echo - echoes text to the console
fdir "filter" - list all files in current directory, applying filter (ex. fdir *.bsp)
fraglimit "#" - displays or sets the server frag limit
kick all - kicks all players
kick "player" - kicks player
killserver - kills the server
map - selects a map from the pk3 files or from the 'Baseq3\maps\' directory
maplist - list maps
map_restart - will reload current map. You may have to use this command before various server settings can take effect.
meminfo - gives info about memory
path - echo current search path to console
reload - reload current weapon
restart - restarts server
say "message" - send message to all players in the game
serverinfo - echo server information to console
status - echo status/player info to console
sv_hostname - change or view the current server name with this command
systeminfo - echo system information to console
timelimit "#" - displays or sets the server time limit
(var) add "var" "amount" - add amount to var
(var) append "var" "string" - append string to var
(var) reset "var" - set var to its default
(var) set "var" "value" - sets var to value
(var) subtract "var" "amount" - subtract amount from var
(var) toggle "var" - toggle var value to 0 or 1

 

Client Console Commands
Remember to open the console by hitting the "~" also known as the tilde key.
Commands Comment
altbind "key" "command" - bind command to alt+key
altbindlist - list all alt+key bindings
autosavegame - save current game as autosave
bind "key" "command" - bind command to a key
bindlist - list all key bindings
callvote "proposed vote" - this command can be used to propose changes on a server, and allow all the players on the server to vote on it. This can be used to change maps, game modes, settings, and even kick players if necessary. To vote on a proposed change, press F1 to vote "yes" and F2 to vote "no".
clear - clear all text from the console
connect "ip" - connects to server at ip
ctrlbind "key" "command" - bind command to ctrl+key
ctrlbindlist - list all ctrl+key bindings
cvarlist - list all variables
difficultyHard - sets difficulty to hard
difficultyMedium - sets difficulty to medium
difficultyEasy - sets difficulty to easy
error - exits Q3 with error message
exec "file.cfg" - execute commands in file.cfg
fps "0 or 1" - toggle fps info display off (0) or on(1)
kill - suicide
launchgamespy - launches gamespy
loadgame - load saved game
loadlastgame - load last saved game
m_filter "0 or 1" - set mouse filter off (0) or on (1)
map "mymap" - change to map mymap
name "myname" - sets your player name to myname
pause - pause/unpause game
quit - exit Q3
savegame - save current game
say "message" - send message to all players in the game
say_team "message" - send message to all players in your team
scale "var" "amount" - multiply var by amount
sensitivity "<number>" - sets your mouse sensitivity (5-20)
unbind "key" - unbind key
unaltbind "key" - unbind alt+key
unctrlbind "key" - unbind ctrl+key
unbindall - unbind all keys