This guide was written by Ass[em] and originally posted in the Battle.net forums:

Hi all!!

Finally, I have found a solution for us people having the problem of playing simultaneously Starcraft / Brood War on multiple computers (in a same game) using a single internet connection with no latency or choppy movements!

******THIS WORKS FOR PATCH 1.16.1 (as tested on July 16, 2009)

This solution is for ADVANCED to EXPERTS technically-savvy individuals only, and have been tested only with a Linksys WRT54G router with DD-WRT firmware installed. (Please do not attempt to install DD-WRT on your router if you do not have the knowledge to do so, as you may brick your router). Please DO NOT attempt to do anything below if you do not know what you are doing!!!

1) Remove any Port Forwarding rule on your router and make sure that all computers have their software firewall disabled;

2) You need to change the Network TCP/IP settings manually on each computer that you intend to play Starcraft / Brood War on as follows (this can be done by going to Network Connections, right-clicking on your Internet Connection and clicking on Properties, then scrolling down and double-clicking on Internet Protocol (TCP/IP)):

Each computer must have an IP Address with a different Subnet Mask.
Let’s assume that the router has an IP Address of 192.168.1.1

Example:
Computer A: IP: 192.168.1.129
Subnet Mask: 255.255.255.128
Gateway: 192.168.1.1
Preferred DNS Server: 192.168.1.1

Computer B: IP: 192.168.1.193
Subnet Mask: 255.255.255.192
Gateway: 192.168.1.1
Preferred DNS Server: 192.168.1.1

3) You need to change the Port that Starcraft is using on Computer B.
To do this, open your registry editor “regedit” and go to your Starcraft registry key (in HKEY_LOCAL_MACHINE\BLIZZARD ENTERTAINMENT\Starcraft) and add a DWORD value, name it [Game Data Port] (without the brackets) and give it a value of 6113 (DECIMAL value, make sure you check that radio button).

4) You need to add a new NAT rule in the firewall of your router. To do this in DD-WRT, go to the Administration tab, then Commands and enter the rules below then click on SAVE FIREWALL.

In this example, 70.100.200.112 is the public IP address for the two people behind the NAT router (WAN IP Address). 192.168.1.129 is the IP address of one client machine (Computer A), and 192.168.1.193 is the IP address of the other client machine (Computer B). On the router, type these commands as root:

iptables -t nat -I PREROUTING -p udp -d 70.100.200.112 --dport 64001 -j DNAT --to-destination 192.168.1.129:6112
iptables -t nat -I POSTROUTING -p udp -s 192.168.1.129 --sport 6112 -j SNAT --to-source 70.100.200.112:64001

iptables -t nat -I PREROUTING -p udp -d 70.100.200.112 --dport 64002 -j DNAT --to-destination 192.168.1.193:6113
iptables -t nat -I POSTROUTING -p udp -s 192.168.1.193 --sport 6113 -j SNAT --to-source 70.100.200.112:64002

5) That’s it! You’re all set! Only problem is that you guys won’t be able to create a game together, BUT IF YOU BOTH JOIN A GAME IT WILL WORK 100% with NO LAG OR CHOPPY! EVEN TRIED 4v4 with no problem whatsoever!!

6) You could add more computers this way, as long as they are not on the same subnet mask and port as the other ones you should be fine!

Examples of additional computers settings:

Computer C: IP Address: 192.168.1.225
Subnet Mask: 255.255.255.224
Gateway: 192.168.1.1
Preferred DNS Server: 192.168.1.1

Game Data Port: 6114 (add new DWORD in regedit)

Computer D: IP Address: 192.168.1.241
Subnet Mask: 255.255.255.240
Gateway: 192.168.1.1
Preferred DNS Server: 192.168.1.1

Game Data Port: 6115 (add new DWORD in regedit)

Then add the two additional IPTABLES rules above accordingly (change IPAddress and Ports) as follows:

iptables -t nat -I PREROUTING -p udp -d 70.100.200.112 --dport 64003 -j DNAT --to-destination 192.168.1.225:6114
iptables -t nat -I POSTROUTING -p udp -s 192.168.1.225 --sport 6114 -j SNAT --to-source 70.100.200.112:64003

iptables -t nat -I PREROUTING -p udp -d 70.100.200.112 --dport 64004 -j DNAT --to-destination 192.168.1.241:6115
iptables -t nat -I POSTROUTING -p udp -s 192.168.1.241 --sport 6115 -j SNAT --to-source 70.100.200.112:64004

GL HF~!!!

Cheers!

Jonathan aka Ass[eM]
Quebec, Canada

Some parts of this post were taken from an original solution from John Paul (funofmath.com) at the following link: http://www.funofmath.com/weblog/2007/04/starcraft-and-nat.html . However, since patch 1.16.1, John Paul’s solution stopped working. I have made some additional research as well as many hours of trial and error to find a suitable solution. You may look at the bottom of John Paul’s page for my comment and solution, which is essentially the same as this post.

  • Sean

    hello
    I have a question.
    How can I type the command like “iptables …” on the router?
    Where can I put that command on windows XP system?
    plz let me know~
    hopely~

  • criscocube

    when i try setting my subnet on my computers, the computer with the subnet other than 255.255.255.0 cannot see the internet or even the router

  • criscocube

    nvm fixed the subnet problem, but game still lags badly when we are both in it

  • criscocube

    alright, first off the regedit port thing DOES NOT WORK, its fake. Second, your routing tables are jacked up…. use the following instructions to REALLY MAKE IT WORK: http://www.gamethreat.net/forums/starcraft-gaming/25758-how-play-sc-friends-behind-same-router-no-vpn-needed.html

  • http://www.icyhell.net dOoBiX

    Sorry about the routing tables; the double dashes were changed into single dashes. They are fixed now!

  • http://ums-clan.co.cc loniker

    Thanx it really works but i assume that some don’t know how to do it.

  • http://None Unseen

    Hey Guys,

    The above solution was a little bit over my head and I could not ever get it work. I have been working on this for weeks now and I am happy to say I FINALLY found an easy solution that worked! it only takes a few minutes if you follow the directions. If it doesn’t work try again and make sure you cross all the t’s and dot all the i’s so to speak because it works perfectly for me behind a Linksys WRT54GS router. You can play SC with multiple people in the SAME GAME on Battle.net with NO lag what so ever!! You can’t create a game and have friends behind the same router join, but you can all find a game on Battle.net and join it no problem!! Finally huh?!? (Myself and 2 others, so three total we’re able to play with no problems) I posted this on Sept. 14th. 2009 so you have a point of reference on how to up to date this solution is. I hope this helps the rest of you out there!! Glad I figured it out!

    This is how to play StarCraft with multiple computers behind the same router!

    Step 1 of 2

    Start -> Run -> Regedit -> Ok
    …HKEY_CURRENT_USER\Software\Battle.net\Configuration
    …right-click -> New “DWORD Value”
    …Name the DWORD Value “Game Data Port”
    …Right click Value -> Modify
    …Check decimal (NOT Hex):
    …6112 for PC 1 (note: it is usually unnessecary to do this for PC 1)
    …6122 for PC 2
    …6132 for PC 3
    …Et Cetera
    …Close Regedit.

    Step 2 of 2

    Forward the correct ports to each PC from the router.

    Example:
    PC 1: Forward ports 6112 through 6119 in TCP & UDP.
    PC 2: Forward ports 6122 through 6129 in TCP & UDP.

  • http://www.icyhell.net dOoBiX

    @Unseen: Thanks for posting your solution! Your method was what I originally posted here on this page, but I heard that it didn’t work anymore with the new StarCraft patch, which was why I changed it to the long confusing method above… maybe I should change it back to the method that you are using…

  • Shalafi

    No matter how hard I tried, it didn’t work.

    I managed to get both computers behind the nat to work at once on different games (even create games and get people to join), but when both joined the same game, it was a mess.

    I’m sure the port in one of the computers is changed (I changed it with chaoslauncher, btw)

    I used this tables:
    (xx.xxx.xx.xxx is WAN ip)

    iptables -t nat -I PREROUTING -p udp -d xx.xxx.xx.xxx –dport 64001 -j DNAT –to-destination 192.168.0.4:6112
    iptables -t nat -I POSTROUTING -p udp -s 192.168.0.4 –sport 6112 -j SNAT –to-source xx.xxx.xx.xxx:64001

    iptables -t nat -I PREROUTING -p udp -d xx.xxx.xx.xxx –dport 64002 -j DNAT –to-destination 192.168.0.2:6113
    iptables -t nat -I POSTROUTING -p udp -s 192.168.0.2 –sport 6113 -j SNAT –to-source xx.xxx.xx.xxx:64002

    I also changed the Subnet mask (Why is it necessary to changed them?)

    I also tried the method Unseen talks about, except that I only forwarded UDP. Maybe that’s the problem?

  • Shalafi

    Fixed, and much better than your solution (or any other I’ve heard about):
    Just PREROUTED WAN IP-UDP 6112 to one comp and WAN IP-UDP 6113 to the other comp.
    I can join games created by one of the computers with the other, which is not very necessary but show how this configuration is much healthier.

    The tables are just this:

    iptables -t nat -A PREROUTING -d WANIP -p udp –dport 6113 -j DNAT –to 192.168.0.2:6113
    iptables -t nat -A PREROUTING -d WANIP -p udp –dport 6112 -j DNAT –to 192.168.0.4:6112

    This shouldn’t be necessary if you forwarded ports, but since the http UI just sets the ports on PREROUTING_IN, the udp packets the computers sent to their own WAN ip were lost.

    BTW, I have no idea why your solution didn’t work for me.

    I’m so happy I got it to work 。(⌒∇⌒。)

  • arsenal

    hi, im noob at this stuff :) where do you write those lines? are they only for the linksys wrt54s? cause i have a belkin router, and I would like to fix it too :'(, when I access the router theres no place to write commands like that. Shalafi do you also have a linksys wrt? does that only work for the firmware installed on the linksys wrt54? do i have any change of fixing it for the belkin :s?

  • seraph

    Hey unseen i have tried your method and it is not working, – I would like to try Shalafi’s method but I do not know where to type all of that stuff.. please help me and my roomate want to play some games =(

  • Ass[eM]

    Guys,

    This is Ass[eM] (who made this fix originally).

    I have made a mistake in the REGEDIT value (ive changed it everywhere in my registry and might have assumed the wrong one worked).

    The real place to add the DWORD value of 6113 (DECIMAL) named “Game Data Port” is in

    [HKEY_CURRENT_USER\SOFTWARE\Battle.net\Configuration]

    or

    [HKEY_LOCAL_MACHINE\SOFTWARE\Battle.net\Configuration]

    (depending on some operating systems… you can put it in both to make sure it works!)

    This works 100%. You can double-check it by downloading a program called Currports (cports.exe) and you will see that the UDP port changes when you change it in your registry and relog on battle.net.

    Jon aka Ass[eM]

  • http://www.gamethreat.net ACEofSPADE

    I found the solution to this dilemma. I have a wired D-Link Router with 4 Switch ports and 2 PC.
    By default, StarCraft will use port 6112 as its primary. You must modify StarCraft’s default port for the addictional PC to use a different port number.

    Date this is Post: November 20, 2009.

    Instructions:

    1. Run “regedit.exe” (without the quote) on the addictional PC.
    2. Go to: [HKEY_CURRENT_USER\SOFTWARE\Battle.net\Configuration]
    3. Right click and add new “DWORD” (without the quote)
    4. Right click “DWORD” and select “MODIFY”
    5. Check “Decimal” (Careful here, not Hexdecimal)
    6. Enter “6113″ in the field. If you have addictional PC, enter 6114, 6115, 6116, etc. (StarCraft required ports 6112 to 6119 to be open)
    7. Close regedit.exe
    8. Go to your Router’s Configuration site. Example: D-Link is 192.168.0.1, Linksys is 192.168.1.1, etc.
    9. Go to the “Advanced Tab” or the Tab where you can do Port Forwarding.
    10. Type something like “StarCraft PC2″ (without the quote) in the name field.
    11. Select both UDP and TCP, select “Always” and put 6113 in as the port number.
    12. Type in the IP Address of PC 2 ( if you don’t know, go to your command prompt and enter “ipconfig” it should tell you your local ip address for that PC.
    13. Save your Router’s configuration and exit.

    Thats it!!!…..Now go test it out. If you create, others will be able to join, but the game will lag. But if you and your friend join other games, it will not. Good Luck. If you have trouble or want to tips, email me: buck.fever000@yahoo.com

    Thank you for those who post before me. Credit goes to them first!

  • sweatpants

    Hey, I just wanted to say that the first method (with regard as well to Ass[eM]’s correction post on 11/12/09) worked well for me. It seems we (the two LAN players), can join/follow into public games with no characteristic utlra-lag. At some point I’ll test Shalafi’s alternative method to see if we can also host games, though i don’t quite understand the last instruction.
    And to everyone confused about where to type those commands in, you have to first get DD-WRT, which is a third-party firmware for your router. Think of firmware as an Operating System for your router. It replaces the original (linksys/d-link) firmware and gives you a lot more control over your router- hence the space to manually type in rules. As for changing your firmware to DD-WRT, though it was relatively easy for me (I have a WRT54G router), I can see the process being quite painful. DD-WRT site: http://www.dd-wrt.com/site/index

    Thanks again, everyone, for your work on this. This has always been the holy grail of Battle.net problems. Much appreciated :)

  • http://www.net-course.net/ Michael Godwin

    Thans for sharing :)

  • http://www.nomadparanoid.webs.com AkA_nomad

    wtf man fuck it up its tooo fucked up i cant handle this just delet the game and shit on it thats the solution

  • http://www.starcraft2hotkeys.info Oren

    I agree with installing DD-WRT firmware for your router. It’s a little bit of a pain to setup, but once it’s up you can really take charge of tour LAN and be able to do a lot more than just play starcraft 2 using the same connection such as boosting your wireless signal!

  • http://www.starcraft2hotkeys.info Oren

    I again recommend DD-WRT as the firmware for your router. It can greatly expand what you can do with your network including mapping out ports to different workstations. It also has a much better UPNP which will allow you to use the same lan WITHOUT changing any settings. See http://www.dd-wrt.com for more info.

  • http://www.myrouterip.com router address

    Great post, but it doesn’t always appear to work with my router ip, any advice?