Configuring PvPGN for WarCraft III This documentation supports version 1.7.0 of the PvPGN software and higher.

All WarCraft III play happens peer-to-peer so the game clients need to directly connect to each other. External clients connect to your server reporting their external IP and your local clients get told by the server to connect to these external IP addresses. You local clients connect to your server via the local IP address and this local IP address is reported to the external clients to connect to. Too bad they presume this local IP address is in their local network, not the servers local network. This means that the external clients could never find the server again. This challenge is addressed as follows: 1. On all your local PCs that want to play WAR3 (including the server PC if you want to play WAR3 on that one) start up WAR3 and enter the Options menu and the suboption gameplay. Now change the port to be used to a so far unused port (one unique port for each PC in your LAN) 2. Configure port forewarding on your server PC so each port you just had chosen on your LAN PCs WAR3 installation gets forewarded to the respective PC (obvisiously not needed for the WAR3 client on the server PC) 3. Modify address_translation.conf so your LAN IPs appear as external IPs for all clients not within you LAN 4. Finally modify bnetd.conf and configure w3route parameter.

Detailed scenario Let's presume you have two WAR3 clients on your LAN, one at 192.168.0.10 (later on called LAN-IP-A) and the other at 192.168.0.11 (later on called LAN-IPB) Now on the WAR3 client at LAN-IP-A you chose gameport 16801, for the WAR3 client at LAN-IP-B you choose gameport 16802. Next thing for you to do is change some setting within the properties of your internet connection sharing. Choose the settings button and add two new "services". Call the first one "WAR3 at LAN-IP-A", set the IP address to LAN-IP-A and as external and internal port choose 16801. (According to my sample for LANIP-A also add a rule for LAN-IP-B and port 16802). So far, with all those settings made you should be able to play fine on battle.net with your LAN clients, even if battle.net falls back into peer-to-peer mode (which can rarely happen) Now add a few lines to your address_translation.conf. You should basically need two blocks of translational rules. One for the w3route and one for your LAN clients. [Editors Note begins : While creating this documentation I became slightly confused between the contents of the address_translation.conf file and the remainder of the documentation. I think that the documentation is good but that the comments at the beginning of the w3route section could be slightly miss leading or confusing. Going by the documentation the first 2 lines in this w3route section shoudl be uncommented and configured.]

address_translation.conf ############################################################################## ########################## # w3route server ip (removed from w3trans.conf) (Port 6200) # # # # Set input address the same as the w3routeaddr setting in the bnetd.conf # # Set output address to the address to be sent to war3 clients # # Set exclude to the range of clients you want to recieve the input address # # instead of the output address # # Set include to the range of clients you want to recieve the output address # # # # input (ip:port) output (ip:port) exclude (ip/netmask) include (ip/netmask) # #--------------------- ---------------------- ---------------------------------------------------#0.0.0.0:6200 192.168.1.100:6200 NONE 192.168.1.0/24 #0.0.0.0:6200 internetip:6200 NONE ANY [Editors Note begins : ends ] The first ruleset is ment to let your LAN clients connect to w3route via LAN but the external clients to connect via external IP: 0.0.0.0:6200 0.0.0.0:6200 192.168.0.1:6200 NONE internetip:6200 NONE 192.168.0.0/24 ANY

(substitute internetip with your internet IP) The other ruleset we'll add is neeed to make external clients connect to your local clients via your external IP address and the forewarding rules we added earlier LAN-IP-A:16801 internetip:16801 LAN-IP-B:16802 internetip:16802 192.168.1.0/24 192.168.1.0/24 ANY ANY

(substitute LAN-IP-A, LAN-IP-B and internet IP with the correct IPs) So in case you wonder what those rules mean, I'll try to give a quick explaination: LAN-IP-A:16801 internetip:16801 192.168.1.0/24 ANY translates to something like: If ANYone asks for LAN-IP-A:16801 translate it to internetip:16801 unless the requestor is located within 192.xxx.xxx.xxx (which will then receive untranslated IP)

Changes to the bnetd.conf file are as follows: # W3 Play Game router address. Just put your server address in here # or use 0.0.0.0:6200 for server to bind to all interfaces, # but make sure you set up w3trans if you do. #w3routeaddr = "internetip:6200" w3routeaddr = "0.0.0.0:6200" Where an internetip address of 0.0.0.0 means that w3routeaddr is not

configured. Replace 0.0.0.0. with your external ip address and restart the PvPGN server software. Tips User Comment There are lots of uses of 0.0.0.0 in the configuration but my server never worked right until I used an actual IP instead of 0.0.0.0. And at times I could get some clients to connect Developer Comment For some time now (most likely since version 1.7.0) address 0.0.0.0 for w3route is converted by the server before being sent to the client - the local end point of that client bnet connection. This means that in the usual case it works. Where it does not work is for example when the sevver is inside the LAN and the client is external. In that case it will send the LAN IP address because that is what it sees as the local endpoint of the bnet connection of that client.

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.