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

What is Halo?

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

Halo Dedicated Server Setup Under FireDaemon Pro

Halo Dedicated Server is released in three different files. Install the Halo Dedicated Server files from here, along with any updates.

Next, edit the init.txt file that comes with the server files. init.txt determines server characteristics and your map cycle. The Bungie documentation provides more detail on setting up init.txt. Here is an example:

sv_name Halo_DS
sv_public 0
sv_maxplayers 16
sv_timelimit 40
sv_rcon_password "kaboom"
sv_tk_ban 4
sv_tk_penalty 5m 1h 8h 1d 0
sv_ban_penalty 1d 0
sv_password ""

sv_mapcycle_add bloodgulch ctf
sv_mapcycle_add timberland "team king"
sv_mapcycle_add damnation "team slayer"
sv_mapcycle_add dangercanyon ctf
sv_mapcycle_add carousel slayer
sv_mapcycle_add gephyrophobia slayer
sv_mapcycle_add infinity "classic rockets"

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

If you intend to run multiple Halo Dedicated Servers on the same machine, change your Short Name and Display Name (e.g. HDS01, HDS02 etc.). You can modify the Parameters to reference alternate init.txt files, change the server port and the CPU affinity. Remember to quote up paths if they contain spaces (e.g. -exec "C:\Program Files\Microsoft Games\Halo Server\init.txt").

[Thanks to PrplPplEater for this info] If you are using custom gametypes, you will need to add the -path command line parameter. Without it, games in your init.txt that use those gametypes will throw an error when the service starts and they will be dropped from the map cycle. Use the Interact with Desktop option so that you can actually see any errors generated. By default, custom gametypes go in your user profile path, thus you would change the parameter string to be:

-exec init.txt -port 2301 -cpu 0 -path "C:\Documents and Settings\Username\My Documents\My Games\Halo"

Now click on the Settings tab. If you DON'T want to see Halo Dedicated Server running, uncheck the Interact with Desktop check box & select "Hidden" from the "Show Window" dropdown. You may run Halo 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 must set the job type to "Global" so that child processes are terminated properly when the service is stopped or restarted. 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 OK to finish setup and run your Halo Dedicated Server!

For more information regarding configuring Halo Dedicated Server please consult the Bungie web site.