Unix Diablo I Starcraft Warcraft II Server

UNIX configuration for Diablo I, StarCraft, and WarCraft II: BNE Servers
What you need to configure


 * bnetd.conf
 * address_translation.conf
 * versioncheck.conf
 * autoupdate.conf (optional)
 * Router / Firewall
 * Game Data Port (optional)

Edit bnetd.conf
Open the /etc/bnetd.conf file in your preferred editor

(I’ll use vi or vim, a text based editor):

[root@mybox]# cd /etc/ [root@mybox]# vi bnetd.conf

After opening the file in the editor, search for the client verification and upgrades section and look for the following line:

allowed_clients = all

Now you must setup your own options for the clients you will allow to connect to your server:

allowed_clients = drtl,star,sexp,w2bn

Edit address_translation.conf
Open the /etc/address_translation.conf file in your preferred editor

(I’ll use vi or vim, a text based editor):

[root@mybox]# cd /etc/ [root@mybox]# vi address_translation.conf

After opening the file in the editor, search for the Game Translations for clients/games (client data ports) section.

Look for the following line:


 * 1) 192.168.1.10:6112  1.2.3.4:6118      192.168.1.0/24,10.0.0.0/8  ANY

Now you must uncomment the line by deleting the # and enter your LAN IP Address of Gaming Computer, Internet IP Address, and your LAN Subnet.

(Lets say your Internet IP is 74.22.125.199 and your LAN IP for the Gaming Computer is 192.168.1.2):

192.168.1.2:16112  74.22.125.199:16112      192.168.1.0/24  ANY

If you have more than one Gaming Computer on the LAN, you will need to create a new entry for each computer with a unique port.

Edit versioncheck.conf
Open the /etc/versioncheck.conf file in your preferred editor.

(I’ll use vi or vim, a text based editor):

[root@mybox]# cd /etc/ [root@mybox]# vi versioncheck.conf

After opening the file in the editor, search for the -=- Latest Versions -=- No Update Required -=- section.

Look for the following entries:

"A=2521522835 B=3428392135 C=218673704 4 A=A^S B=B-C C=C+A A=A-B" \ "ver-ix86-1.mpq" \ IX86 \ SEXP \ "StarCraft.exe 01/09/09 22:57:43 1220608" \ 0x000000d3 \ 1.16.1.1 \ 0x0a85372d \ SEXP_1161 "A=2521522835 B=3428392135 C=218673704 4 A=A^S B=B-C C=C+A A=A-B" \ "ver-ix86-1.mpq" \ IX86 \ STAR \ "StarCraft.exe 01/09/09 22:57:43 1220608" \ 0x000000d3 \ 1.16.1.1 \ 0x0a85372d \ STAR_1161 "A=2521522835 B=3428392135 C=218673704 4 A=A^S B=B-C C=C+A A=A-B" \ "ver-ix86-1.mpq" \ IX86 \ STAR \ "StarCraft.exe 01/08/09 05:23:44 1220608" \ 0x000000d3 \ 1.16.1.0 \ 0x02623d85 \ STAR_1161
 * 1) Starcraft - Broodwar (Expansion) 1.16.1 - (Broodwar mode)
 * 1) Starcraft - Broodwar (Expansion) 1.16.1 - (Starcraft mode)
 * 1) Starcraft (Standalone) 1.16.1

Next search for the -=- Older Versions -=- Update Required -=- section.

Look for the following entries:

"A=3845581634 B=880823580 C=1363937103 4 A=A-S B=B-C C=C-A A=A-B" \ "ver-ix86-1.mpq" \ IX86 \ DRTL \ "Diablo.exe 05/18/01 23:10:57 757760" \ 0x0000002a \ 1.0.9.2 \ 0x23135c73 \ DRTL_109B "A=3845581634 B=880823580 C=1363937103 4 A=A-S B=B-C C=C-A A=A-B" \ "ver-ix86-1.mpq" \ IX86 \ DRTL \ "Diablo.exe 05/12/01 00:53:17 757760" \ 0x0000002a \ 1.0.9.1 \ 0x0dcb0513 \ DRTL_109 "A=3845581634 B=880823580 C=1363937103 4 A=A-S B=B-C C=C-A A=A-B" \ "ver-ix86-1.mpq" \ IX86 \ W2BN \ "Warcraft II BNE.exe 05/21/01 21:52:22 712704" \ 0x0000004f \ 2.0.2.1 \ 0xff0d4c4a \ W2BN_202B
 * 1) ==================== Diablo (original) entries =======================
 * 1) Diablo 109b
 * 1) Diablo 109
 * 1) =========================== WARCRAFT2 BNE ===========================
 * 1) Warcraft II BNE 2.02b

If those entries exist, then you have the current version checks for these games. You can customize this to allow only certain versions of these games to connect to your server.

Do this by removing the version check entries for the version you don't want to connect to your server.

Download the latest versioncheck.conf if you don't have those entires.

[root@mybox]# cd /etc/ [root@mybox]# wget http://cvs.berlios.de/cgi-bin/viewcvs.cgi/*checkout*/pvpgn/pvpgn/conf/versioncheck.conf

Edit autoupdate.conf (optional)
Open the /etc/autoupdate.conf file in your preferred editor.

( I’ll use vi or vim, a text based editor ):

[root@mybox]# cd /etc/ [root@mybox]# vi autoupdate.conf

After opening the file in the editor, search for the StarCraft Expansion (Brood War) section.

Look for the following entries:


 * 1) ================ StarCraft Expansion (Brood War) ==========================
 * 2) IX86   SEXP    SEXP_104        SEXP_IX86_1xx_1161.mpq
 * 3) IX86   STAR    SEXP_104_STAR   SEXP_IX86_1xx_1161.mpq
 * 4) IX86   SEXP    SEXP_105        SEXP_IX86_1xx_1161.mpq
 * 5) IX86   STAR    SEXP_105_STAR   SEXP_IX86_1xx_1161.mpq
 * 6) IX86   SEXP    SEXP_106        SEXP_IX86_1xx_1161.mpq
 * 7) IX86   STAR    SEXP_106_STAR   SEXP_IX86_1xx_1161.mpq
 * 8) IX86   SEXP    SEXP_107        SEXP_IX86_1xx_1161.mpq
 * 9) IX86   STAR    SEXP_107_STAR   SEXP_IX86_1xx_1161.mpq
 * 10) IX86   SEXP    SEXP_108        SEXP_IX86_1xx_1161.mpq
 * 11) IX86   STAR    SEXP_108_STAR   SEXP_IX86_1xx_1161.mpq
 * 12) IX86   SEXP    SEXP_108B       SEXP_IX86_1xx_1161.mpq
 * 13) IX86   STAR    SEXP_108B_STAR  SEXP_IX86_1xx_1161.mpq
 * 14) IX86   SEXP    SEXP_109        SEXP_IX86_1xx_1161.mpq
 * 15) IX86   STAR    SEXP_109_STAR   SEXP_IX86_1xx_1161.mpq
 * 16) IX86   SEXP    SEXP_110        SEXP_IX86_1xx_1161.mpq
 * 17) IX86   STAR    SEXP_110_STAR   SEXP_IX86_1xx_1161.mpq
 * 18) IX86   SEXP    SEXP_111        SEXP_IX86_1xx_1161.mpq
 * 19) IX86   STAR    SEXP_111_STAR   SEXP_IX86_1xx_1161.mpq
 * 20) IX86   SEXP    SEXP_111B       SEXP_IX86_1xx_1161.mpq
 * 21) IX86   STAR    SEXP_111B_STAR  SEXP_IX86_1xx_1161.mpq
 * 22) IX86   SEXP    SEXP_112        SEXP_IX86_1xx_1161.mpq
 * 23) IX86   STAR    SEXP_112_STAR   SEXP_IX86_1xx_1161.mpq
 * 24) IX86   SEXP    SEXP_112B       SEXP_IX86_1xx_1161.mpq
 * 25) IX86   STAR    SEXP_112B_STAR  SEXP_IX86_1xx_1161.mpq
 * 26) IX86   SEXP    SEXP_113        SEXP_IX86_1xx_1161.mpq
 * 27) IX86   SEXP    SEXP_113_STAR   SEXP_IX86_1xx_1161.mpq
 * 28) IX86   SEXP    SEXP_113B       SEXP_IX86_1xx_1161.mpq
 * 29) IX86   STAR    SEXP_113B_STAR  SEXP_IX86_1xx_1161.mpq
 * 30) IX86   SEXP    SEXP_113C       SEXP_IX86_1xx_1161.mpq
 * 31) IX86   STAR    SEXP_113C_STAR  SEXP_IX86_1xx_1161.mpq
 * 32) IX86   SEXP    SEXP_113D       SEXP_IX86_1xx_1161.mpq
 * 33) IX86   STAR    SEXP_113D_STAR  SEXP_IX86_1xx_1161.mpq
 * 34) IX86   SEXP    SEXP_113E       SEXP_IX86_1xx_1161.mpq
 * 35) IX86   STAR    SEXP_113E       SEXP_IX86_1xx_1161.mpq
 * 36) IX86   SEXP    SEXP_114        SEXP_IX86_1xx_1161.mpq
 * 37) IX86   STAR    SEXP_114        SEXP_IX86_1xx_1161.mpq
 * 38) IX86   SEXP    SEXP_115        SEXP_IX86_1xx_1161.mpq
 * 39) IX86   STAR    SEXP_115        SEXP_IX86_1xx_1161.mpq
 * 40) IX86   SEXP    SEXP_1151       SEXP_IX86_1xx_1161.mpq
 * 41) IX86   STAR    SEXP_1151       SEXP_IX86_1xx_1161.mpq
 * 42) IX86   SEXP    SEXP_1152       SEXP_IX86_1xx_1161.mpq
 * 43) IX86   STAR    SEXP_1152       SEXP_IX86_1xx_1161.mpq
 * 44) IX86   SEXP    SEXP_1153       SEXP_IX86_1xx_1161.mpq
 * 45) IX86   STAR    SEXP_1153       SEXP_IX86_1xx_1161.mpq
 * 1) Incremental update from version 1.16
 * 2) IX86   SEXP    SEXP_116        SEXP_IX86_116_1161.mpq
 * 3) IX86   STAR    SEXP_116        SEXP_IX86_116_1161.mpq
 * 1) The next one is a Brood War wildcard entry.
 * 2) IX86   SEXP    SEXP_1xx        SEXP_IX86_1xx_1161.mpq
 * 3) IX86   STAR    SEXP_1xx        SEXP_IX86_1xx_1161.mpq

Now you must uncomment the line by deleting the # from every line:

================ StarCraft Expansion (Brood War) ========================== IX86   SEXP    SEXP_104        SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_104_STAR   SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_105        SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_105_STAR   SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_106        SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_106_STAR   SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_107        SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_107_STAR   SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_108        SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_108_STAR   SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_108B       SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_108B_STAR  SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_109        SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_109_STAR   SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_110        SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_110_STAR   SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_111        SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_111_STAR   SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_111B       SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_111B_STAR  SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_112        SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_112_STAR   SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_112B       SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_112B_STAR  SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_113        SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_113_STAR   SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_113B       SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_113B_STAR  SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_113C       SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_113C_STAR  SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_113D       SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_113D_STAR  SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_113E       SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_113E       SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_114        SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_114        SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_115        SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_115        SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_1151       SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_1151       SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_1152       SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_1152       SEXP_IX86_1xx_1161.mpq IX86   SEXP    SEXP_1153       SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_1153       SEXP_IX86_1xx_1161.mpq Incremental update from version 1.16 IX86   SEXP    SEXP_116        SEXP_IX86_116_1161.mpq IX86   STAR    SEXP_116        SEXP_IX86_116_1161.mpq The next one is a Brood War wildcard entry. IX86   SEXP    SEXP_1xx        SEXP_IX86_1xx_1161.mpq IX86   STAR    SEXP_1xx        SEXP_IX86_1xx_1161.mpq

Next do the same with the StarCraft (original), Diablo (original), and Warcraft II BNE sections.

After the autoupdate.conf has been configured, you will need to download the update files.

The bnftp utility is what we'll use to download the update files:

[root@mybox]# cd /var/files/ [root@mybox]# bnftp --client=DRTL --arch=IX86 --file=DRTL_IX86_100_109.mpq uswest.battle.net 6112 [root@mybox]# bnftp --client=DRTL --arch=IX86 --file=DRTL_IX86_108_109.mpq uswest.battle.net 6112 [root@mybox]# bnftp --client=SEXP --arch=IX86 --file=SEXP_IX86_1xx_1161.mpq uswest.battle.net 6112 [root@mybox]# bnftp --client=SEXP --arch=IX86 --file=SEXP_IX86_116_1161.mpq uswest.battle.net 6112 [root@mybox]# bnftp --client=STAR --arch=IX86 --file=STAR_IX86_1xx_1161.mpq uswest.battle.net 6112 [root@mybox]# bnftp --client=STAR --arch=IX86 --file=STAR_IX86_116_1161.mpq uswest.battle.net 6112 [root@mybox]# bnftp --client=W2BN --arch=IX86 --file=W2BN_IX86_200_202.mpq uswest.battle.net 6112 [root@mybox]# bnftp --client=W2BN --arch=IX86 --file=W2BN_IX86_201_202.mpq uswest.battle.net 6112

Configure Router / Firewall
You will need to forward port 6112 to your pvpgn server, and forward port 16112 to your Gaming Computer.

Also ensure these ports are allowed through any firewall(s) on the applicable computer(s).

Configure Game Data Port (optional)
To play these games on the same LAN as the pvpgn server, you will need to change the port that these games use, since PvPGN is already the default port (6112). Change the Game Port to the unique port you specified in the address_translation.conf.


 * click Start --> Run --> regedit
 * Ok

After opening the Registry Editor, browse to HKEY_CURRENT_USER\Software\Battle.net.


 * click on Configuration
 * right-click on the right half of the window and create a new DWORD value
 * name the new DWORD value Game Data Port
 * right-click on Game Data Port value and select Modify
 * enter 16112 and select Decimal