Run Call of Duty: Modern Warfare 3 as a Windows Service with FireDaemon Pro
Call of Duty: Modern Warfare 3 is a first-person action game. The unranked dedicated server component can be run as a Windows Service using FireDaemon Pro. You can only run the unranked server when hosting it yourself. If you want a ranked server, you will need to rent one from a Game Server Provider. FireDaemon Pro will allow you to have the dedicated server start automatically at boot prior to login, start multiple instances of the dedicated server, and so forth. This HOWTO will show you how to set it up. You can also use FireDaemon Fusion to manage FireDaemon Pro and other Windows services via a web browser.
Step 1: Call of Duty: Modern Warfare 3 Dedicated Server Setup
The dedicated server files can only be downloaded through Steam. If you are installing the server on another computer, make a new Steam account; if you use an already existing account, you will be logged out on your computer when the server files are downloaded or updated.
Download and install Steam from here. Create a new Steam account here. Take note of the username and password you chose. If you plan on using an existing Steam account, skip to the next step.
At the top of the Steam window, click "Library". Below the library, you will see "All Games". Click that and select "Tools".
Look for "Call of Duty: Modern Warfare 3 - Dedicated Server". Right-click it and select "Install Game..." from the context menu. Click Next on the window that appears.
The server files are large - around 14GB. Steam will tell you the approximate download time. Once the download finishes, run the server (once) to extract all the files so the server can start properly. You can exit the server once it starts; the window will show the logo for "Call of Duty: Modern Warfare 3 Dedicated Server".
Call of Duty: Modern Warfare 3 uses a configuration file named server.cfg and other configuration files called "recipes". Both files can be found in C:\Program Files (x86)\Steam\steamapps\common\call of duty modern warfare 3\admin. Edit these files to suit your preferences.
Step 2: Download and Install FireDaemon Pro
- Download FireDaemon Pro installer
- Double-click the installer and follow the installation wizard to complete the installation.
- For more information about installing FireDaemon, see the FireDaemon Pro Users Guide.
Step 3: Set Up Call of Duty: Modern Warfare 3 Server as a FireDaemon Pro Service
Start the FireDaemon GUI from the desktop shortcut. Click on the "Create a new service definition" button in the toolbar (or type Ctrl+N) and enter the information into the fields as you see below. Adjust the paths to suit your installation. Note the required parameters.
The most important field on the tab is the Parameters. The Parameters define the initial setup of your server. The full parameter list should be as follows:
+start_map_rotate +set sv_maprotation map_rotation
- +start_map_rotate loads the server.
- +set sv_maprotation map_rotation loads your map rotation (replace map_rotation with the name of your map rotation).
Next, click on the FireDaemon Pro Settings tab. If you DON'T want to see your dedicated server running, uncheck the Interact with Desktop checkbox and select “Hidden” from the “Show Window” dropdown. You can optionally run your dedicated server as the user you installed it as. In the Logon Account field type your username (e.g. Administrator) and then enter the user's password twice in the Password and Confirm fields. You can change the Process Priority to allocate more CPU time to the dedicated server or specify which CPU or core the dedicated server will run on (in the case of multi-processor, hyperthreaded or multi-core CPUs).
Next, click on the Lifecycle tab and choose Shutdown By Forceful Termination.
Lastly, click on the OK button to finish setup and start Call of Duty: Modern Warfare 3! The game server will be running on Session 0.
Step 4: Verify that Call of Duty: Modern Warfare 3 is Running Correctly
The game server's status can easily be checked on the main FireDaemon Pro Services List - look for a Running Status value and a numeric Process ID (PID) value.
Step 5: Check that the Server is Listening on the Correct Network Ports
- Firstly, find the Process ID (PID) of the service from the FireDaemon Services List (see example above).
- Open a command prompt window with Administrator privileges and run the following command:
netstat -anob | find "<PID>"
where <PID> is the Process ID found in the FireDaemon Pro Services List PID column. This command lists the ports on which the game server is listening. Your system's firewall and/or router must be configured to forward traffic to these ports. You should see output similar to the screenshot below:
Example Configuration File
Below is an example mp-server.cfg file:
// Modern Warfare 3 Server Configuration
//////////////////////////////////////////////////////////
// Server command-line parameters (this section is for documentation only)
// Specify server configuration file (this file)
//+set sv_config "filename" (default "server.cfg")
// Specify server visibility (1 = LAN, 2 = Internet (default) )
//+set dedicated 1
// Open game port (Steam-visible server game port)
//+set net_queryPort 27014
// Secure game port
//+set net_port 27015
// Steam authentication port
//+set net_authPort 8766
// Steam master server (server browser) port
//+set net_masterServerPort 27016
//////////////////////////////////////////////////////////
// Server.cfg-configurable settings
// Server host name. This should always be set by the server admin.
seta sv_hostname "Modern Warfare 3"
// Dedicated server play list (DSPL) specifying server map rotation.
// Valid game options are controlled via DSR (dedicated server recipe) specified in the DSPL.
seta sv_maprotation "default"
// Maximum number of clients that may connect to this server (range 1-18)
seta sv_maxclients 16
// Server password. If set, users will be prompted on join attempt.
seta g_password ""
// Maximum number of private clients allowed on the server (range 0-18 (clamped to sv_maxclients) )
seta sv_privateClients 0
// Password for the private slots on this server. If set, users will be prompted on join attempt.
// Users providing this password will have access to all slots.
// Users providing an incorrect password will have access to the (sv_maxClients - sv_privateClients) public slots.
seta sv_privatePassword ""
// Remote console password. If set, users will have access to a remote console, allowing server administration from a connected client.
seta rcon_password ""
// Server voice chat configuration ( 0 = "No Chat", 1 = "Free Chat", 2 = "Team Chat" (default) )
seta sv_voice 2
// Toggle voting for [player kick/map restart/next map] (0 or 1 (default) )
seta g_allowVote 1
// Toggle allowing dead players to chat with living players (0 (default) or 1)
seta g_deadChat 0
// Time in seconds before the server will kick a user for inactivity (range 0 - 10000)
seta g_inactivity 120
// Time in seconds for a player temporary ban (on kick/tempban) (range 0 - 3600)
seta sv_kickBanTime 300
// Toggle flood protection (throttling of user commands - should be enabled for non-password-protected Internet servers) (0 or 1 (default))
seta sv_floodProtect 1