Configuring PVPGN For WarCraft III
Configuring PVPGN For WarCraft III
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.
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-IP-
B)
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 LAN-
IP-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)
The first ruleset is ment to let your LAN clients connect to w3route via LAN
but the external clients to connect via external 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
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)
# 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"
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.
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.