Castanet Communications banner image
 
 

 
Call of Duty Server Setup Guide
Author: Craig "hachiroku" Mercer
Date Created:2003-10-29
Operating System(s):Windows Logo imageWindows 9X/2000/XP MacOS Logo imageMacOS OS X Linux Logo imageLinux
  Call of Duty image

If you are having trouble with setting up a Call of Duty Server and it has to do with firewalls and console issues then this guide may help!

cg_drawFPS 1

Guide Quick Navigation

 

Getting Started!

Create a shortcut on the desktop to the CoDMP.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\Call of Duty\CoDMP.exe

Add the following after CoDMP.exe and make sure these is a space between them:
+set dedicated 1 +exec server.cfg

+set dedicated 1
// make it a dedicated server (0=OFF 1=LAN 2=INTERNET)

+exec server.cfg
// Name of the server script you wish to execute. NOTE: Be sure it is in your X:\Call of Duty\main\ directory or it will not work

You now should have a shortcut named Call of Duty on your desktop with properties that look like this:

Target: X:\Games\Call of Duty\CoDMP.exe +set dedicated 1 +exec server.cfg

Now create a server.cfg file (create a text file with notepad/editpad whatever, and change the file extent ion to .cfg) script and put it into the Call of Duty\Main\ directory.

Next open a new file in said text editor copy and paste the following then save it:

// Call of Duty SERVER Config File
// SERVER Settings
set sv_hostname "LANage_TeamDeathMatch_Server"
set scr_motd "Welcome to the LANage CoD Server"
sets .Admin "TobyCat"
sets .Email ""
sets .IRC ""
sets .Website "www.lanage.ca"
sets .Location "Victoria, B.C."
set sv_maxclients "16"
set sv_pure "1"
set sv_punkbuster "1"
set sv_gamespy "0"
set sv_maxping "250"
set sv_maxrate "20000"

// SERVER Passwords
set rconPassword "*******"
set g_privatepassword "********"
set sv_privatePassword "********"
set sv_privateclients "3"

// CLIENT Options
set sv_invulnerabletime "3"
set g_teamkillwarn "3"
set g_teamkillkick "5"
set g_teamswitchdelay "10"
set g_allowvote "1"
set scr_friendlyfire "1"
set scr_forcerespawn "0"
set scr_drawfriend "0"

// GAME Type Settings
// DM
set scr_dm_scorelimit "50"
set scr_dm_timelimit "20"
set scr_drawfriend "0"
set scr_forcerespawn "1"

// TDM
set scr_tdm_scorelimit "100"
scr_tdm_timelimit "20"

// SD
set scr_sd_graceperiod "15"
set scr_sd_roundlength "2"
set scr_sd_roundlimit "0"
set scr_sd_scorelimit "5"
set scr_sd_timelimit "30"

// BEL
set scr_bel_alivepointtime "10"
set scr_bel_scorelimit "50"
set scr_bel_timelimit "30"

// RE
set scr_re_graceperiod "15"
set scr_re_roundlength "4"
set scr_re_roundlimit "0"
set scr_re_scorelimit "7"
set scr_re_timelimit "0"
set scr_re_showcarrier "0"

// Weapons
set scr_allow_bar "1"
set scr_allow_bren "1"
set scr_allow_enfield "1"
set scr_allow_fg42 "1"
set scr_allow_kar98k "1"
set scr_allow_kar98ksniper "1"
set scr_allow_m1carbine "1"
set scr_allow_m1garand "1"
set scr_allow_mp40 "1"
set scr_allow_mp44 "1"
set scr_allow_nagant "1"
set scr_allow_nagantsniper "1"
set scr_allow_panzerfaust "1"
set scr_allow_ppsh "1"
set scr_allow_springfield "1"
set scr_allow_sten "1"
set scr_allow_thompson "1"

// United Offensive Game Types

// BAS
set scr_bas_scorelimit "3"
set scr_bas_timelimit "120"
set scr_bas_roundlimit "5"
set scr_bas_roundlength "30"
set scr_bas_respawn_wave_time "10"
set scr_bas_startrounddelay "15"
set scr_bas_endrounddelay "10"
set scr_bas_clearscoreeachround "1"

// DOM
set scr_dom_scorelimit "3"
set scr_dom_timelimit "120"
set scr_dom_roundlimit "5"
set scr_dom_roundlength "30"
set scr_dom_respawn_wave_time "10"
set scr_dom_startrounddelay "15"
set scr_dom_endrounddelay "10"
set scr_dom_clearscoreeachround "1"

// CTF
set scr_ctf_scorelimit "3"
set scr_ctf_timelimit "120"
set scr_ctf_roundlimit "5"
set scr_ctf_roundlength "30"
set scr_ctf_startrounddelay "15"
set scr_ctf_endrounddelay "10"
set scr_ctf_clearscoreeachround "1"

// United Offensive Weapons
set scr_allow_pistols "1"
set scr_allow_satchel "1"
set scr_allow_smoke "1"
set scr_allow_grenades "1"
set scr_allow_flamethrower "1"
set scr_allow_artillery "1"
set scr_allow_bazooka "1"
set scr_allow_mg34 "1"
set scr_allow_dp28 "1"
set scr_allow_mg30cal "1"
set scr_allow_gewehr43 "1"
set scr_allow_svt40 "1"
set scr_allow_fg42 "1"

// United Offensive Vehicles
set scr_allow_flak88 "1"
set scr_allow_su152 "1"
set scr_allow_elefant "1"
set scr_allow_panzeriv "1"
set scr_allow_t34 "1"
set scr_allow_sherman "1"
set scr_allow_horch "1"
set scr_allow_gaz67b "1"

// MAP Rotation & Game Type (but you could put this into a separate file and
// call it at the end as tdmmaps.cfg or something)
set sv_maprotation "gametype tdm map mp_brecourt gametype tdm map mp_carentan gametype tdm map mp_chateau gametype tdm map mp_dawnville gametype tdm map mp_depot"

//Map to Start
set sv_mapRotationCurrentmap "mp_dawnville"

// Maps for Reference
// mp_bocage (all game types)
// mp_brecourt (all game types)
// mp_carentan (all game types)
// mp_chateau (all except SD)
// mp_dawnville (all game types)
// mp_depot (all game types)
// mp_harbor (all game types)
// mp_hurtgen (all game types)
// mp_neuville (all game types)
// mp_pavlov (all game types)
// mp_powcamp (all game types)
// mp_railyard (all game types)
// mp_rocket (all game types)
// mp_ship (all except SD)
// mp_stalingrad (all game types)
// mp_tigertown (all game types)

// United Offensive Maps for Reference
mp_arnhem (all except BAS)
mp_berlin (all except BAS)
mp_cassino (all except BAS)
mp_foy (all game types)
mp_italy (all game types)
mp_kharkov (No RE,SD or BAS)
mp_kursk (No RE or SD)
mp_ponyri (No RE or SD)
mp_rhinevalley (No RE or SD)
mp_sicily (all except BAS)
mp_uo_stanjel (all except BAS)

 

Save this file as server.cfg (or whatever name as long as it matches your shortcut) and save it to your Call of Duty\Main\ directory. To start the server - just double click the "CoDMP" shortcut on your desktop...and...ENJOY!


Server CFG File Descriptions

SERVER OPTIONS
set sv_hostname "LANage_TeamDeathMatch_Server"
// name of your server as listed in the in game browser

set scr_motd "Welcome to the LANage CoD Server"
// this will be displayed on the server menu when clients join

sets .Admin "TobyCat"
// sets who the server Admin is

sets .Email ""
// sets what the server Admin email is

sets .IRC ""
// sets an IRC address

sets .Website "www.lanage.ca"
// adds your URL

sets .Location "Victoria, B.C."
//adds your server location

set sv_maxclients "16"
// sets the maximum amount of players (not sure about the limit)

set sv_pure "1"
// pure servers, will not allow anyone to play on your server with custom pk3 files
// loaded into their main dir

set sv_punkbuster "1"
// punkbuster is designed to stop cheaters 1=ON

set sv_gamespy "0"
// if you want your server in GameSpy

set sv_maxping "250"
// clients connecting must have a pin lower than 250

set sv_maxrate "20000"
// sets the max bandwidth each player can use

CLIENT OPTIONS

set sv_invulnerabletime "3"
// time in seconds that a player cannot be killed when spawned

set g_teamkillwarn "3"
// number of team kills before a warning is issued

set g_teamkillkick "5"
// number of team kills before client is kicked

set g_teamswitchdelay "10"
// time in seconds player must wait before switching teams

set g_allowvote "1"
// allow voting = 1, disable voting = 0

set scr_friendlyfire "1"
// 0=OFF 1=ON 2=reflect damage

set scr_forcerespawn "0"
// force respawning - DM & TDM

set scr_drawfriend "0"
// draws a team icon over teammates

GAME Types

Behind Enemy Lines (BEL)
This is a pseudo team based gametype, there are two teams, allies and axis, the hunters and the hunted. The hunted are a small group of players whose aim it is to survive being the hunted for as long as possible while killing as many as their predators. The hunters aim is to kill an allied player so they become the hunted.

seta scr_bel_alivepointtime "10" (seconds to get a point for staying alive as allied)
set scr_bel_scorelimit "50"
set scr_bel_timelimit "20" (in minutes)

Search and Destroy (SD)
The server is split into two teams, the attackers and defenders. The aim of the attacking team is to destroy one of the objectives (A or B) of the map by planting a bomb. The game can be won by either successfully planting, defending and destruction of the objective or by eliminating the opponent from the map.

set scr_sd_graceperiod "15" (in seconds)
set scr_sd_roundlength "10" (in minutes)
set scr_sd_roundlimit "2" (number of round wins per map)
set scr_sd_scorelimit "0"
set scr_sd_timelimit "15" (in minutes)

Retrieval (RE)
Retrieval is an objective based gametype similar to Search & Destroy in which the attackers goal is to steal one or more (depending on the map) of the objectives, typically radios or code books from the defending team. As you can guess, the goal of the defending team is to defend these objectives to the death.

set scr_re_graceperiod "15" (in seconds)
set scr_re_roundlength "10" (in minutes)
set scr_re_roundlimit "2" (number of round wins per map)
set scr_re_scorelimit "0"
set scr_re_showcarrier "0"
set scr_re_timelimit "15" (in minutes)

Headquarters (HQ)
Another team based gametype in which the server is split into two teams whose job is to capture, hold and defend the objective (normally a radio) from the other team. Every capture, and hold of an objective for a set time (default 45 seconds) results in points for the defending team.

set scr_hq_scorelimit "300"
set scr_hq_timelimit "25" (in minutes)

Death Match (DM)
Does Death Match really need a description?

set scr_dm_scorelimit "250"
set scr_dm_timelimit "20" (in minutes)

Team Death Match (TDM)
Death Match except in Teams.

set scr_tdm_scorelimit "300"
set scr_tdm_timelimit "25" (in minutes)

United Offensive Game Types

Base Assault (BAS)
Each team must defend its 3 bases from enemies while at the same time trying to attack and destroy the enemy’s bases, first team to successfully destroy all of the enemy bases wins.

scr_bas_scorelimit
scr_bas_timelimit (in minutes)
scr_bas_roundlimit (numbers of rounds to play per map)
scr_bas_roundlength (in minutes)
scr_bas_respawn_wave_time
scr_bas_startrounddelay
scr_bas_endrounddelay
scr_bas_clearscoreeachround

Capture the Flag (CTF)
Needs a description about as much as Death Match.

scr_ctf_scorelimit
scr_ctf_timelimit
scr_ctf_roundlimit
scr_ctf_roundlength
scr_ctf_startrounddelay
scr_ctf_endrounddelay
scr_ctf_clearscoreeachround
scr_ctf_showoncompass

Domination (DOM)
Domination revolves around the control of 5 control points across the map. Each team must fight back and forth between these points and the team to control all will be declared champion.

scr_dom_scorelimit
scr_dom_timelimit
scr_dom_roundlimit
scr_dom_roundlength
scr_dom_respawn_wave_time
scr_dom_startrounddelay
scr_dom_endrounddelay
scr_dom_clearscoreeachround

 

Serving Call of Duty Behind a Firewall
(Putting your server behind a firewall is a BEST PRACTICE).

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

 

UDP 28960 Call of Duty 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 in Game 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 status - status (gives client numbers)
/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.
/rcon kick "playername" - kicks individual client by playername.
/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 "LANage Welcomes Fresh Meat to the Server! " or /rcon set sv_maprotation gametype tdm map mp_brecourt). 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 restart - call a vote to restart the current map
/callvote map mp_carentan - will call a vote to change to the Carentan map
/callvote kick jerkwad - calls a vote to kick the player jerkwad

Server Console 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".
cmdlist - list all console commands
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
maplist - list maps
map_restart - will reload current map. You may have to use this command before various server settings can take effect.
map_rotate - rotate maps
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

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
/error - exits CoD 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 Call of Duty
/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