How to run Insurgency as a Windows Service with FireDaemon Pro.

What is Insurgency?

Insurgency is a first person action game. The dedicated server component can be run as a Windows Service using FireDaemon Pro, which allows you to start the dedicated server automatically at boot prior to login, start multiple instances of the dedicated server and more. This HOWTO will show you how to set it up. You can also use FireDaemon Fusion to manage FireDaemon and other Windows services via a web browser.

Insurgency Dedicated Server Setup Under FireDaemon Pro

First download and extract SteamCMD. The download is small (< 2 MB).

Go to the directory where you installed SteamCMD and create a shortcut to "SteamCMD.exe". Next edit the properties of the shortcut and in the target box, at the end of it (with a space before the following), put:

+login anonymous +force_install_dir "C:\Insurgency" +app_update 237410 validate +quit

The target box should now look something like:

C:\SteamCMD\steamcmd.exe +login anonymous +force_install_dir "C:\Insurgency" +app_update 237410 validate +quit

Now click the shortcut you created and let it run to download the Insurgency server files. It might take a few hours to update everything. You should also run the shortcut every week or so to grab the latest server updates. Make sure to stop your server first.

Insurgency uses one configuration file to store its settings. You can find it in “\insurgency\cfg\server.cfg” in the directory where you installed the server. A sample server.cfg file is included at the end of this HOWTO.

Download and install FireDaemon Pro into the directory of your choice, typically C:\Program Files\FireDaemon.

Next 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.

Executable: The path to your srcds.exe file. The default path is C:\Insurgency\srcds.exe.

Working Directory: The directory containing your srcds.exe file. The default path is C:\Insurgency.

The most important field on the tab is the Parameters. The Parameters define the initial setup of your server. Here’s the full parameter list you should have:
-console -game "insurgency" -secure +map ins_almaden -autoupdate +log on +maxplayers 32 -port 27015 +ip +exec server.cfg

  • "-console” enables text base server display. The server can only be automatically restarted in text based mode.
  • “-game” loads the mod.
  • “-secure” enables VAC (Valve Anti Cheat) protection of your server. You can remove this command if you do not want to use VAC.
  • “+map” loads a specified map on server startup. You can change “ins_almaden” to whatever map you want. This command should never be removed.
  • “-autoupdate” Enables auto update of the server. Valve has not implemented this in Windows so you will have to manually update Insurgency yourself. It’s simply here for the sake of legacy support if Valve ever decides to add it.
  • “+log on” Displays the output of information on the screen. You can turn optionally it off (+log off), but keeping it on makes it easier to debug any errors you might encounter.
  • “maxplayers 32” This controls the maximum of amount of players you want your server to run. You can only control the max players on server startup. This command should never be removed.
  • “-port 27015” This is the default server port. You can change it to anywhere from 27015 to 27020. Changing it is generally used when you host multiple servers (as each server has to use its own port when using the same IP). This command should never be removed.
  • “+ip” should be the IP of your computer (not, go here to get your IP). This command should never be removed.
  • “+exec server.cfg” This simply executes your server.cfg file on server startup. If you run multiple servers from the same installation, you can specify other config files (eg. server2.cfg)

Now click on the Settings tab. If you DON'T want to see your dedicated server running, uncheck the Interact with Desktop check box & select "Hidden" from the "Show Window" dropdown. You can optionally run Insurgency 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).

Now click on the Lifecycle tab. Uncheck Graceful Shutdown as Insurgency doesn't respond to it.

Now click OK to finish setup and start Insurgency!

Sample Configuration File

Below is an example server.cfg file:

// Insurgency BETA 2 Server Config Version 1.2 WINDOWS! *

hostname "INSURGENCY Windows Server Tutorial" //Hostname for server.

// Server Region

sv_lan "0" // Server is a lan server ( no heartbeat, no authentication, no non-class C addresses
sv_region "3" // The region of the world to report this server in.
sv_alltalk "0" // If 0, players from team one cannot talk to players in team two over voice
sv_password "" // Server password for entry into multiplayer games

// Rcon

rcon_password "YOURRCONPW"  // Remote Console Password.

sv_rcon_banpenalty "30" // Number of minutes to ban users who fail rcon authentication
sv_rcon_log "1" // Enable/disable rcon logging.
sv_rcon_maxfailures "5"    // Max number of times a user can fail rcon authentication before being banned
sv_rcon_minfailures "5"    // Number of times a user can fail rcon authentication in sv_rcon_minfailuretime before being banned
sv_rcon_minfailuretime "30" // Number of seconds to track failed rcon authentications

// Logging

log "on" // Creates a logfile (Enable= on Disable= off)
sv_logbans "1" // Log server bans in the server logs (Enable=1 Disable= 0)
sv_logecho "1" // Log echo information in the console (Enable= 1 Disbale= 0)
sv_logfile "1" // Log server information in the logfile (Enable= 1 Disable= 0)
sv_log_onefile "0" // Log server information to only one file (Enable=1 Disable= 0)

// Netsettings

sv_unlag "1"                // Enables player lag compensation
sv_maxrate "35000"          // Max bandwidth rate allowed on server, 0 == unlimited
sv_minrate "7500"          // Min bandwidth rate allowed on server, 0 == unlimited
sv_maxunlag "1"            // Maximum lag compensation in seconds
sv_unlag_fixstuck "1"      // Disallow backtracking a player for lag compensation if it will cause them to become stuck
net_maxfilesize "32"        // Maximum allowed file size for uploading in MB
net_queued_packet_thread "0"// Use a high priority thread to send queued packets out instead of sending them each frame.
fps_max "600"              // Frame rate limiter

sv_pausable "0"            // Is the server pausable.
sv_cheats "0" // Allow cheats on server
sv_voiceenable "1" // Enables Ingame Voices
sv_allowdownload "1"        // Allow clients to download files (Enable= 1 Disable= 0)
sv_allowupload "1"          // Allow clients to upload files like spraylogo's (Enable= 1 Disable= 0)
sv_contact "[URL][/URL]" // Contact email for server sysop
sv_downloadurl "[URL]http://www.webspace.tld/fastdownload/insurgency-mod[/URL]" // Location from which clients can download missing files

sv_timeout "30" // After this many seconds without a message from a client, the client is dropped
sv_gravity "800" // World gravity settings (Default= 800)
sv_maxvelocity "3500" // Maximum velocity an object can have ingame (Default= 3500)
sv_maxspeed "350" // Maximum speed a player can move (Default= 350) ///////////////manual!

// Game Spesfic Settings

ins_cachesabotage "1" // When Enabled, Allows a Team to Sabotage their own Caches
ins_deadcam_modes "0" // Restricts Spectator Modes
ins_deadcam_targets "1" // Restricts Spectator Targets
ins_deadchat "0" // Determines whether Dead Players can Chat to Alive Players
ins_deadinfofull "1" // Determines whether or not to use Full Death Information
ins_dmgfactor "1" // Factor Reduction of Damage in FF
ins_endgametime "4" // Change how Long the Winning Players get to Wander Around
ins_firetype "0" // Defines if you can Fire either Always, Never or During Warmup
ins_forceautoassign "1" // Forces a Player to Auto-Assign when Joining
ins_forcesquadopen "0" // Forces all Squads to be Open
ins_locksquads "0" // Lock Squads During a Running Game
ins_maskotherteam "0" // When Enabled the Other Teams Score will not be Updated until the End of the Round
ins_objdisable "0" // Ignore Objective States
ins_randomlayout "1" // Determines wether or not to use Random Layouts
ins_roundtimer "900" // Length of Time (in Seconds) of each Round
ins_scorefrozen "0" // Determines whether or not the Score is Frozen
ins_strictnaming "1" // When Enabled, the Player can only Change his name Once per Round
ins_suppresskillhint "0" // Supress the Kill Hint from being Sent
ins_teamsize "0" // Maximum Team Size
ins_teamswap "0" // When Restarting and Enabled, Teams will Swap
ins_timertype "1" // Defines which Timer to Use
ins_tkdetect "0" // Auto Kick TKs
ins_tkremove "0" // How Many TKs before Kicking
ins_warmuptime "0" // Warm-Up Time before a Game (in Seconds)
ins_warmuptype "0" // Defines Warm-Up Type
ins_gamecount "3" // game notifications (min 0, max 30)
ins_clanleaderpass "0" // Defines the Password for Clan Leaders
ins_clanmode "0" // Defines whether Clan Mode is Active
ins_decalfrequency "8" // Decalfrequency

mp_chattime "8" // Length of Time (in Seconds) for Players to Commune When the Game is Over (min. 2.000000 max. 10.000000)
mp_friendlyfire "1" // Defines Friendly-Fire Status (min. 0.000000 max. 1.000000)
mp_timelimit "30" // Time on one map
mp_limitteams "2" // Maximum Difference between Team Sizes
mp_winlimit "10" // Defines how Many Rounds Played by One Team before Map Rotates
mp_tkpunish "0" // Toggles Team-Killing Punishment
mp_autoteambalance "0" // Toggles Team-Balanceing
mp_fadetoblack "0" // Toggles fade 2 black while dead
mp_freezetime "8" // How Long to Freeze the Player Before the Game Starts

// Execute Ban File
exec banned_user.cfg

// Force Mapcycle File
mapcyclefile "mapcycle.txt"

// Enable bots on this server.
bot_enabled 1