Print 

Author Topic: How to: Set up a Halo server  (Read 39767 times)

Offline MrMxyzptlk

  • Posts Too Much
  • *****
  • Posts: 9208
  • Never backward,           always forward!
    • My 5th Dimensional Homepage
How to: Set up a Halo server
« on: November 23, 2007, 09:27:23 PM »
There are two ways to "host" a Halo server:

"Normal" way: Host the game via your normal Halo Combat Evolved game, or

"Dedicated Server" way: Where you host the game from another machine OTHER THAN the one on which you play Halo.

Regardless of which one you choose there are some things that you need to do in order to "serve" out the game for others to play, and those steps are basically the same for whichever method you're choosing from the two.

Note: The color-coding above will be used to further identify which portions of this guide apply to which type of "hosting" scenario: Orange for sections specific to the "Normal" hosting from your Halo client game system, Green for portions specific to Dedicated Servers, and Blue for portions that apply to BOTH.




Hosting A Game Via The Halo Combat Evolved PC Game Client

is the easiest way to play multiplayer with other players "live." In fact, it's pretty much the same to setup and run as it would be if you were hosting a game right on your own private LAN, with the exception of the part about allowing access into your game to/from the Internet. (That's the part that always messes ppl up!)

To start up a hosted game the "normal" way, do the following:

0) Start up Halo and (if you wish to play YOUR MC under a specific Profile, select that first, then) select "Multiplayer" from the main menu.

1) Under "Create Game" select "Internet."

2) Select what Halo map you wish to play on and then select the "OK" button.

3) Select which Halo game type you wish to play on and then select the "OK" button. (For now, leave the selector at the top of this page set to the default, "Standard.")

4) You will now see the "Server Setup" screen. Enter a name for your server in "Server Name." This is the name that will show up in the GameSpy Halo Lobby.

5) If you wish to password-protect your server (to prevent random users from entering your game, other than those to whom you give out the password), then enter one in the Password field.

6) Select your "Connection Type" in accordance with the similar (but differently-used!) Network Setting within your Halo Profile settings. I.e. This setting should be set to the SAME VALUE as the one that you tested and set to be used in your Profile's Network settings. See here on how to determine that setting (for both places.)

Your Connection Type will determine the maximum # of players that your game can host (due to the limitations of your Internet connection.) DO NOT TRY TO "CHEAT" THIS NUMBER as it will only cause you in-game grief! When in doubt, set it ONE BELOW your measured number!

7) Next your Server IP (and port) is displayed for your information. Write this down as you'll need it later on to configure access for others to join your game....

8) Selecting the "Start Game" button will start your configured game at this point, but unless things are set up correctly with any other network devices (e.g. routers, firewalls) no one will be able to see or access your game yet.


Now you'll need the IP & port number information that you wrote down earlier. It was of the form <IP address>:<port number>, where the IP address is something like 192.168.0.X, and the port number will likely be the default of 2302.

You now need to allow access to your server. Skip down to the section
Configuring Your Network To Allow Internet <-> Server Communication





Hosting A Game Via The Halo Combat Evolved Dedicated Server

Setting up your own Halo "DS" (Dedicated Server) is easier than most people think it will be! There are three major parts to doing it, and the first and last part are slightly tricky - and where people usually mess up!

Part ONE: Set up a networked DEDICATED MACHINE

If you're thinking about running a DS on the same system on which you PLAY Halo, DON'T!  You're missing the whole point if you do! It's supposed to run on a DEDICATED SERVER, get it?!?!

So grab that old machine that meets the System Requirements, nuke & pave it with one of the supported Windows versions (FYI: you CAN run Halo DS on a Windows 98SE system!), get it up and running on your LAN... and you're done with the first - and trickiest! - part!

NOTE: I first ran Halo DS on an old P3 333MHz system running Windows 98SE and it ran fairly well(!), so even an old junker system may work for you! However, I later replaced it with a brand new low-end, bare-bones ($150) 2.2GHz P4 running Windows 2000 (yuck!) w/ 640MB RAM and it runs GREAT! I can host TWO Halo DS games or one Halo DS and any other DS game I have (BF2, CSS, Hidden Source, ...) AND a personal ventrilo server without a problem!  FYI: The system is on my LAN, and sits out in my garage!
The Key: If you're going to try to host this on a "commercial home" ISP connection you're going to be dissapointed, as you will be COMPLETELY (upload) bandwidth limited (6-10 player max), and you'll become a target of your ISP's wrath: Every major ISP (in the USA) has a "no servers" clause in the contract that you have with them, so... tread lightly! (Or get a "business" style package for a lot more $$$....  :-X )

Part TWO: Install Halo Dedicated Server SW

So now you have a DEDICATED system up, running and on your network.  Now you need the Halo DS software.

Go READ the Installation section (C) of the Halo DS ReadMe file. AFTER you HAVE READ the entire section, using the link here or within the ReadMe, download and install:

The v1.09 game SW and then the Halo DS maps
.

[Do NOT (bother to) install any patches!]

Whew!  You've finally got your Halo DS SW installed!


Part THREE: Configure Your Halo Dedicated Server

At this point I STRONGLY suggest that you take the time to read through the ENTIRE (okay, skip section "F" unless you know what you're doing...) ReadMe file, paying particularly close attention to section E: init.txt configuration file, cuz that's what we're going to do NOW.

This is the part that usually makes people's heads explode. Because you HAVE to set up a properly-configured file (usually) named "init.txt" and have it in THE CORRECT LOCATION in order to get your server up and running - the way you WANT it to be.

Read through all this, and if you go read the section on Console Commands some of this mumbo-jumbo will make more sense - because that's what you're doing: making a file of console commands for the server to process at startup!

In any event, you finally come to this section of text (to which I've made some changes):

sv_name Halo_DS "My First Halo DS!"
sv_public 1 0
sv_maxplayers 12 6
sv_password halo
sv_rcon_password "654321" <--- Added line
sv_mapcycle_timeout 15
sv_mapcycle_add timberland CTF
sv_mapcycle_add dangercanyon assault
sv_mapcycle_add gephyrophobia slayer
sv_mapcycle_add bloodgulch "crazy king"
sv_mapcycle_begin


Let's take these one at a time...:

sv_name Halo_DS "My First Halo DS!"
This is the name of your server, that - if the server were "public" would be seen by others, such as in the Halo Gamespy Lobby. Note that you MUST enclose your name in double-quates if it contains any whitespace, and I suggest that you ALWAYS use quotes just to be on the safe side.

sv_public 1 0
This command determines whether your server will be advertised to "the public" (if set to 1) or "private" (if 0).  For now let's keep it private, k?

sv_maxplayers 12 6
If you're REAL lucky you might be able to support 12 players, but let's try 6 for starters....

sv_password halo
Password for the game that allows others to join. Remove a password by using a pair of double quotes in a row: "" .

sv_rcon_password "654321"
Here's what you've been waiting for!  The Pot of Gold that makes YOU the server Admin!  The Admin password - often referred to as "RCON" that allows you to control the server via the Remote CONsole!

sv_mapcycle_timeout 15
This sets the time to show the Carnage Report between maps.

sv_mapcycle_add timberland CTF
sv_mapcycle_add dangercanyon assault
sv_mapcycle_add gephyrophobia slayer
sv_mapcycle_add bloodgulch "crazy king"

Each sv_mapcycle_add command adds the following game to the "cycle" that the server will play, in the order given, top-to-bottom. This game will play: Assualt in Danger Canyon, followed by (Individual) Slayer on Gephy', and then King-of-the-Hill (Crazy style) on Bloodgulch. [Booor-ring!]

sv_mapcycle_begin
Heh. Without this command nothing will happen, because the server will never get told to "Start the cycle, dummy!" Hence you ALWAYS end your sv_mapcycle_add list with this command(!), and it is ALWAYS THE LAST COMMAND IN YOUR init.txt file!

By default the command file for your DS should be named "init.txt" and should be placed in the main Halo DS directory (where the "haloded.exe" file lives.)

So make a SIMPLE file there now, maybe even cutting and pasting from the example in the ReadMe file. (The fewer the modifications you make, the less likely to introduce an error that prevents things from working, you see....)

NOTE: If you want to have multiple mapcycles for different server configurations read about using the "-exec <init.txt-file-name>" command-line directive in a shortcut to "haloded.exe" to start each one....

Once your "init.txt" file is all set, double-click the "haloded.exe" file which should start up your Halo DS server!

At this point you should see a Windows Command Prompt window pop up on the screen of your Halo DS system and it should run through all the commands in the init.txt file, and then start the server cycle! (The last line will be a Console Command prompt: "halo< ", which will update regularly with status info about the server and another prompt.

NOTE: You can type Console Commands DIRECTLY INTO THIS WINDOW AT ANY TIME.  It has the same affect as an RCON command (accept that it's done without the "rcon [pwd]" part), but requires that you have access to THAT window on THAT DS machine's screen & keyboard.  (Which is usually pretty secure, if it's right next to you!) "So what? Why not use rcon commands all the time?" you ask? What if your server is full, eh??  ;D Guess what? If it is, and you have access to the Command Prompt Halo DS Console you can take action right then and there, WITHOUT EVEN BEING IN THE GAME.
FYI: I can remotely connect to my DS across my LAN and get to the console from any machine on my LAN, which is WAY COOL for admining "from afar!"

Now go to your Halo game (client) machine, fire up Halo, and JOIN a MULTIPLAYER LAN or DIRECT IP game. (Your DS should show up on the LAN lobby screen as-is, or for the Direct IP case use the internal (LAN) IP of your DS machine, of course.)

Make sure that you can join the game via your LAN, and that the in-game RCON commands work for you. If they do, then you're up and running, and all set to open your game up for others to join by following the steps in the next section!
[/color]




Configuring Your Network To Allow Internet <-> Server Communication

Sometimes, given the right equipment (and/or LACK of proper protection from external access into your computer/LAN!  :o ) everything will work fine and you and others on the Internet can join your game.  However, this is normally NOT the case, as you must now "open ports" to allow your Halo server access to/from your computer to the Internet.

First a note about "opening ports." Opening a SPECIFIC port (or a few) for SPECIFIC use with a program that resides on your computer that is DESIGNED to be a SPECIFIC-USE SERVER, such as a "Halo game server" is, in general, safe to do. (This is because these "servers" are usually "safe" from Internet meddling because they are very specific by their very nature, not allowing any external actions that can cause your system harm.) It's also the case that, when your Halo server isn't running, there is no activity on that port, and no server to answer an incoming request on that port, so it is essentially the same as not even being "open." Hence this activity is generally safe, in fact these days it's safer than surfing many sites on the WWW!

In order to make the necessary changes to "open" the necessary ports you're going to need Administrative Access to both the computer on which the server is running, and any/all network devices between that computer and the Internet. (E.g. Your router.) If you do not have the password or Administrative Rights to make these changes, find the person that does (for your local network) and ask them to make these changes.

The first step is to assure that you have the server running on a machine with a STATIC IP ADDRESS. [NOTE: This will NOT be the case in almost ALL situations where the computer is attached to a router device! By default such computers get their IP addresses assigned to them DYNAMICALLY by the router device....] Most modern router devices have the ability to "Reserve" specified addresses to be Dynamic, tho. The problem here is... different routers do this differently, and instructions for this part are NOT covered in the following port configuration steps. Those steps ASSUME that you have a static IP address....)

So go find your router's User Manual, or look it up at the manufacturer's website, and look through the Table of Contents or Index to find out how to set it up so your machine gets assigned a STATIC IP address....

The next step is to find out what port(s) your server is using for Halo. The port information was determined in one of the above server setup methods. [Technical Note: The ports that Halo uses by default are: 80(TCP), 2302(UDP), and 2303(UDP). The following instructions should take you through all the steps necessary to assure these ports are properly opened.]

There are generally TWO PARTS to port configuration:

First, you must assure that the ports to be used are NOT being blocked by any FIREWALL software on the computer hosting the server.  If you have add-on firewall software you'll have to find out how to "allow ports" in that program. (In most cases it asks you the first time you run a program, with a prompt to the effect "... wants to communicate using port 2302. Do you want to allow this program to do this?" Simply saying "Yes, Always" is all you'll need to do.

This should hold true for Windows Firewall as well.  (If I find that it does NOT hold true over time I'll add a step-by-step here as to how to do that....)

Okay, the EASY part is done.  The router device is a bit harder, mostly because 1) you need rights/permission to make the changes, and 2) the step-by-step varies WIDELY depending on which router device you are using.

So long as you can get access/permission to make the changes, or get someone to follow these instructions to do so for you, then I can get you the information SPECIFIC TO YOUR DEVICE to lead your through it step-by-step!

Once access is granted/available go to your router device and find out what Make/Model/version it is from a sticker on it (usually on the bottom, and the latest version information (if necessary, might need to be gotten from inside the device's menus itself, rather than from the bottom label.)

When you've got the make/model info:

1) Go to this site's main page and scroll to the bottom of the page to get your "external IP address" listed there and write THAT down, too.

2) Go to their Halo-specific page and find your model under the alphabetically-listed makes, and click on it. Lo and behold someone has gone to all the trouble to make a wonderful step-by-step walkthrough, complete with screenshots!

KEWL!

3) Under the "Do not skip this step!" part enter your STATIC IP address FOR THE COMPUTER RUNNING THE HALO SERVER (that you wrote down/made Static much earlier - The one that's usually 192.168.0.X - and fill in the correct value in the box.)

4) Walk through the excellent instructions through their completion....
And you're DONE! (You can logout of the router or close the browser window used to make the changes....)

You MAY need to restart your server at this point, so it can send a notice to the GameSpy Lobby (or w/e!) to advertise its existence, but... you should now be up and hosting your own Halo server!

OPTIONAL: Only if you need/want to get your server's Direct IP address:
This is a tricky part! (If you do everything above people will be able to join your server through the Halo GameSpy Lobby, but you will NOT have an Internet IP address to give them if they want to "direct-connect via IP address....") If you want to give people the Internet IP address to join your server, you have to go find out what it is! ('Cuz it's NOT the LAN IP address that's assigned to your computer!)

There are two ways to find your Internet IP address:

1) Have a friend - you cannot do this yourself, you'll get your LAN-assigned IP address! - connect to your server and then use <F1> to bring up the in-game status screen which displays the IP address in its lower-right corner, or

2) Connect to your router device once again and find your "WAN IP Address" (or "Internet Address" or something of that sort) which is assigned to your router device by your ISP.  Hopefully this information is displayed on the main page when you log in to your router device.  If NOT, then once again use the User Manual/Index to find out how to view the assigned IP address.

NOTE: I STRONGLY advise that you do NOT give out your IP address "publically," tho!  Giving it to a few friends is probably okay, so long as you're fairly confident they won't "attack" your network or some such....

[END OPTIONAL PART]




CONGRATULATIONS!

Your Halo server should now be up, running, and accessible for other players!




*edit* 20081116: Updated with Halo 1.08 DS location and info.
*edit* 20090110: Added info about 1) needing to have a STATIC IP address for port-forwarding to your server, and 2) optional section about determining your server's Internet (WAN) IP address.

« Last Edit: January 10, 2011, 09:04:55 AM by MrMxyzptlk »
Mr. Mxy's current Word Corner word is catachresis    

Offline Bonessi

  • Newbie Poster
  • *
  • Posts: 86
  • That's me in real life...
Re: How to: Set up a Halo server
« Reply #1 on: June 09, 2008, 07:06:24 AM »
I have tried doing a Dedicated Server from the same computer on which I would play and I can't get it to work. I know this tutorial was for "Dedicated Server" meaning from a different computer than the one on which you play but I know there is a way to do it...
Get Racing!

Offline MrMxyzptlk

  • Posts Too Much
  • *****
  • Posts: 9208
  • Never backward,           always forward!
    • My 5th Dimensional Homepage
Re: How to: Set up a Halo server
« Reply #2 on: June 09, 2008, 10:03:24 PM »
I have tried doing a Dedicated Server from the same computer on which I would play and I can't get it to work. I know this tutorial was for "Dedicated Server" meaning from a different computer than the one on which you play but I know there is a way to do it...

There is, but doing so is... um . . . ridiculous!

It uses MORE machine to run a DS AND the game client on your machine together than just using the "Normal way!"

And, um, it's a lot more complicated, port-wise, too!

'Nuff said?

Mr. Mxy's current Word Corner word is catachresis    

Offline R41z3r

  • Newbie Poster
  • *
  • Posts: 25
Re: How to: Set up a Halo server
« Reply #3 on: July 06, 2008, 04:46:28 PM »
if you can play halo online, all you need to do is change the port you game runs (can be any number) in the halo settings, so it doesn't conflict with the dedicated server. there's no need to port forward as gamespy uses a technique called nat to nat to allow incoming connections.
« Last Edit: July 06, 2008, 04:49:33 PM by R41z3r »

Offline Slow Bullet

  • Junior Poster
  • **
  • Posts: 271
Re: How to: Set up a Halo server
« Reply #4 on: October 22, 2008, 05:05:13 PM »
ok i get to the modems web page but idk what to do?! Can some one help me?

Offline Slow Bullet

  • Junior Poster
  • **
  • Posts: 271
Re: How to: Set up a Halo server
« Reply #5 on: October 23, 2008, 05:58:22 PM »
never mind solved it

Offline Haunted

  • Posts Too Much
  • *****
  • Posts: 1378
    • ummm..
Re: How to: Set up a Halo server
« Reply #6 on: January 05, 2009, 01:36:11 PM »
i followed all the instructions but it still doesnt work  :mad: i can make the games but people cant connect to them  :'(

thanks MrMxy for making this, i'll try again tomorrow and make sure i've done everything

;D by me ;D


;D Thanks Hlao! ;D


;D Thanks Spood! ;D

Offline Tåndêm

  • Senior Poster
  • ****
  • Posts: 680
Re: How to: Set up a Halo server
« Reply #7 on: January 05, 2009, 09:37:25 PM »
Heh. You know what haloded needs? A "say" command.

That way, if you're adminning from console and you need to tell someone to stop swearing (using BFM rules), you'd type "say HEY! Stop swearing!" and the game would print in the chat area "Console: HEY! Stop swearing!"

(experience from quake 3 servers.)
Congratulations!
If you see this signature on a recent post, you've spotted an elusive Tåndêm!
You are not eligible for an award because I have no money, however you are free to have bragging rights.

Offline MrMxyzptlk

  • Posts Too Much
  • *****
  • Posts: 9208
  • Never backward,           always forward!
    • My 5th Dimensional Homepage
Re: How to: Set up a Halo server
« Reply #8 on: January 05, 2009, 10:22:10 PM »
i followed all the instructions but it still doesnt work  :mad: i can make the games but people cant connect to them  :'(

thanks MrMxy for making this, i'll try again tomorrow and make sure i've done everything

Perhaps if you gave some info about your setup?:

- Are you behind/do you have a router device?
- Are you running a "Normal" or DS server?
- If a DS, is it outside of your client machine's network, or on another machine on your same network?
- Are you running a DS on THE SAME MACHINE ON WHICH YOU'RE RUNNING YOUR HALO CLIENT?!? (If so, then please REREAD this entire thread!  ::) )



...And Tandem, I know just what you mean!

I found a solution for that tho!:

I'd type sv_ban <that player's #> and I never even had to explain myself to them!

 ;D

« Last Edit: January 05, 2009, 10:26:22 PM by MrMxyzptlk »
Mr. Mxy's current Word Corner word is catachresis    

Offline Haunted

  • Posts Too Much
  • *****
  • Posts: 1378
    • ummm..
Re: How to: Set up a Halo server
« Reply #9 on: January 06, 2009, 08:47:07 AM »
i was making a normal server, where you just make the game over the internet.

;D by me ;D


;D Thanks Hlao! ;D


;D Thanks Spood! ;D

Offline MrMxyzptlk

  • Posts Too Much
  • *****
  • Posts: 9208
  • Never backward,           always forward!
    • My 5th Dimensional Homepage
Re: How to: Set up a Halo server
« Reply #10 on: January 06, 2009, 12:54:41 PM »
i was making a normal server, where you just make the game over the internet.

I'm continuing this discussion over in your existing thread on this particular problem....

« Last Edit: January 06, 2009, 01:04:18 PM by MrMxyzptlk »
Mr. Mxy's current Word Corner word is catachresis    

Offline BFM_ColWlkr

  • BFM Admin
  • *
  • Posts: 1167
Re: How to: Set up a Halo server
« Reply #11 on: May 31, 2009, 07:37:41 PM »
One quick thing ... to execute a different 'init' file from the console of the dedicated server, what would the command be?




Offline MrMxyzptlk

  • Posts Too Much
  • *****
  • Posts: 9208
  • Never backward,           always forward!
    • My 5th Dimensional Homepage
Re: How to: Set up a Halo server
« Reply #12 on: June 01, 2009, 12:40:17 AM »
One quick thing ... to execute a different 'init' file from the console of the dedicated server, what would the command be?

Um, I don't see how one could possibly change the init file during play.... (Think about it.  Then think about changing your clothes into other clothes while you're putting them on....  ::)  :winkgrin: )


But you CAN use the -exec command line argument to start a given init file upon startup.

E.g. "E:\Halo Server\haloded.exe" -exec "E:\Halo Server\games\SnipeyServer.txt"

Mr. Mxy's current Word Corner word is catachresis    

Offline BFM_ColWlkr

  • BFM Admin
  • *
  • Posts: 1167
Re: How to: Set up a Halo server
« Reply #13 on: June 03, 2009, 12:58:21 PM »
Alright one new thing ...

With the current server, I need people to be able to access the server (to update banlist, hashes, switch rotations, etc.) from a remote location.  The best way to do this would probably be setting up a remote desktop, but perhaps there is a better way.

Either way, could you help me out with either option? :D




Offline MrMxyzptlk

  • Posts Too Much
  • *****
  • Posts: 9208
  • Never backward,           always forward!
    • My 5th Dimensional Homepage
Re: How to: Set up a Halo server
« Reply #14 on: June 03, 2009, 02:31:29 PM »
Alright one new thing ...

With the current server, I need people to be able to access the server (to update banlist, hashes, switch rotations, etc.) from a remote location.  The best way to do this would probably be setting up a remote desktop, but perhaps there is a better way.

Either way, could you help me out with either option? :D

Um, at this point you are outside the realm of "normal" Halo server stuff, dedicated or otherwise.

Now you're talking about MACHINE access across the Internet, which is a HUGE can of worms.

Short version: Don't do it.

In order to do it in a manner that's secure enough to be safe, you'd need me there for a couple of weeks to set up corporate-level software and VPN access with certificate generation, etc., etc.

Sorry....

Mr. Mxy's current Word Corner word is catachresis    

Print