diff --git a/xtrn/3rdp-install/carlton-doormania.js b/xtrn/3rdp-install/carlton-doormania.js
index b43dba8a4e4b30d21e19ef4a8b8b0fe1c7149796..4178bc97a93f5e641fdcdf6865d4f84138163459 100644
--- a/xtrn/3rdp-install/carlton-doormania.js
+++ b/xtrn/3rdp-install/carlton-doormania.js
@@ -17,6 +17,8 @@ var lines = file.readAll();
 file.close();
 
 lines[4] = gamedir;
+lines[5] = "MANIA.ASC";
+lines[6] = "MANIA.ANS";
 
 writeln("Beginning node config generation...");
 for(i = 0; i < system.nodes; i++) {
diff --git a/xtrn/3rdp-install/foodfite-wilson.js b/xtrn/3rdp-install/foodfite-wilson.js
index 1b74e28d2b5feb1dd13e1d1c1fcd7dce2f8421f0..38444ea2ccc463b06a6eea99a57cbd8c56816a96 100644
--- a/xtrn/3rdp-install/foodfite-wilson.js
+++ b/xtrn/3rdp-install/foodfite-wilson.js
@@ -14,6 +14,8 @@ file.close();
 lines[0] = "LINE";
 lines[1] = system.name;
 lines[2] = system.operator;
+lines[5] = "bull99.ans";
+lines[6] = "bull99.asc";
 lines[9] = "NONE";
 lines[10] = "";
 lines[11] = "";
diff --git a/xtrn/3rdp-install/sunrise-aceydeucey.js b/xtrn/3rdp-install/sunrise-aceydeucey.js
index 0214c91436a0b7688a0f0a8e956249e467ade8b0..7ff3d94f1eece521d652f55e3bbbe147ddc77c32 100644
--- a/xtrn/3rdp-install/sunrise-aceydeucey.js
+++ b/xtrn/3rdp-install/sunrise-aceydeucey.js
@@ -28,10 +28,10 @@ var op = system.operator.split(" ", 2);
 lines[2] = op[0];
 lines[3] = op[1];
 
-lines[7] = gamedir + "aceyd.ans";
-lines[8] = gamedir + "aceyd.asc";
-lines[9] = gamedir + "aceydhof.ans";
-lines[10] = gamedir + "aceydhof.asc";
+lines[7] = gamedir + "aceyd.asc";
+lines[8] = gamedir + "aceyd.ans";
+lines[9] = gamedir + "aceydhof.asc";
+lines[10] = gamedir + "aceydhof.ans";
 lines[11] = "1";
 
 for(i = 0; i < system.nodes; i++) {
diff --git a/xtrn/3rdp-install/sunrise-baseballdice.js b/xtrn/3rdp-install/sunrise-baseballdice.js
index 3074ea2e313659df0d5bd23ff7ce9b9c907303bb..48c258347f93e8d8de58458d0691957eac098ff9 100644
--- a/xtrn/3rdp-install/sunrise-baseballdice.js
+++ b/xtrn/3rdp-install/sunrise-baseballdice.js
@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2);
 lines[2] = op[0];
 lines[3] = op[1];
 
-lines[7] = gamedir + "bbd.ans";
-lines[8] = gamedir + "bbd.asc";
-lines[9] = gamedir + "bbdhof.ans";
-lines[10] = gamedir + "bbdhof.asc";
+lines[7] = gamedir + "bbd.asc";
+lines[8] = gamedir + "bbd.ans";
+lines[9] = gamedir + "bbdhof.asc";
+lines[10] = gamedir + "bbdhof.ans";
 lines[11] = "1";
 
 for(i = 0; i < system.nodes; i++) {
diff --git a/xtrn/3rdp-install/sunrise-betsyross.js b/xtrn/3rdp-install/sunrise-betsyross.js
index 8906ed4a53531748d9fe18da0d94714bd93b617a..bc3e29d9c85f1158ffc0ed26ffd56b1cbbbdce7b 100644
--- a/xtrn/3rdp-install/sunrise-betsyross.js
+++ b/xtrn/3rdp-install/sunrise-betsyross.js
@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2);
 lines[2] = op[0];
 lines[3] = op[1];
 
-lines[6] = gamedir + "betsy.ans";
 lines[7] = gamedir + "betsy.asc";
-lines[8] = gamedir + "betsyhof.ans";
+lines[8] = gamedir + "betsy.ans";
 lines[9] = gamedir + "betsyhof.asc";
+lines[10] = gamedir + "betsyhof.ans";
 
 for(i = 0; i < system.nodes; i++) {
 	var nodenum = i + 1;
diff --git a/xtrn/3rdp-install/sunrise-blackjack.js b/xtrn/3rdp-install/sunrise-blackjack.js
index 8143740f1a52f287319bfcb5af5c4064b9ef1f28..279e79a61b7c1f11a2674b183dd128a17f01cc22 100644
--- a/xtrn/3rdp-install/sunrise-blackjack.js
+++ b/xtrn/3rdp-install/sunrise-blackjack.js
@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2);
 lines[2] = op[0];
 lines[3] = op[1];
 
-lines[7] = gamedir + "srbj.ans";
-lines[8] = gamedir + "srbj.asc";
-lines[9] = gamedir + "srbjhof.ans";
-lines[10] = gamedir + "srbjhof.asc";
+lines[7] = gamedir + "srbj.asc";
+lines[8] = gamedir + "srbj.ans";
+lines[9] = gamedir + "srbjhof.asc";
+lines[10] = gamedir + "srbjhof.ans";
 lines[11] = "1";
 
 for(i = 0; i < system.nodes; i++) {
diff --git a/xtrn/3rdp-install/sunrise-boxdice.js b/xtrn/3rdp-install/sunrise-boxdice.js
index 4b17e3f1f33ede57f8ae127224e523d5dea4bcc5..64798716de5a0a2190ce2fd9e3a25bfe6d7dbf19 100644
--- a/xtrn/3rdp-install/sunrise-boxdice.js
+++ b/xtrn/3rdp-install/sunrise-boxdice.js
@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2);
 lines[2] = op[0];
 lines[3] = op[1];
 
-lines[7] = gamedir + "srboxd.ans";
-lines[8] = gamedir + "srboxd.asc";
-lines[9] = gamedir + "srboxd.ans";
-lines[10] = gamedir + "srboxd.asc";
+lines[7] = gamedir + "srboxd.asc";
+lines[8] = gamedir + "srboxd.ans";
+lines[9] = gamedir + "srboxdhf.asc";
+lines[10] = gamedir + "srboxdhf.ans";
 
 for(i = 0; i < system.nodes; i++) {
 	var nodenum = i + 1;
diff --git a/xtrn/3rdp-install/sunrise-boxpoker.js b/xtrn/3rdp-install/sunrise-boxpoker.js
index 262f09bcc4f42e56583d1735e77d3c90d76c8502..b4e58671089156155aec7afd0be4e3b52f77d2d6 100644
--- a/xtrn/3rdp-install/sunrise-boxpoker.js
+++ b/xtrn/3rdp-install/sunrise-boxpoker.js
@@ -27,10 +27,10 @@ var op = system.operator.split(" ", 2);
 lines[2] = op[0];
 lines[3] = op[1];
 
-lines[8] = gamedir + "srboxpkr.ans";
-lines[9] = gamedir + "srboxpkr.asc";
-lines[10] = gamedir + "srboxpkr.ans";
-lines[11] = gamedir + "srboxpkr.asc";
+lines[8] = gamedir + "srboxpkr.asc";
+lines[9] = gamedir + "srboxpkr.ans";
+lines[10] = gamedir + "srboxpkh.asc";
+lines[11] = gamedir + "srboxpkh.ans";
 
 for (i in system.node_list) {
 	var nodenum = parseInt(i, 10) + 1;
diff --git a/xtrn/3rdp-install/sunrise-concentration.js b/xtrn/3rdp-install/sunrise-concentration.js
index e70023bbf816a689e18b03f52e8696ec15f1785a..2b76940f2a14e4fcfda0e54e4e552572ee0fa6d0 100644
--- a/xtrn/3rdp-install/sunrise-concentration.js
+++ b/xtrn/3rdp-install/sunrise-concentration.js
@@ -28,10 +28,10 @@ var op = system.operator.split(" ", 2);
 lines[2] = op[0];
 lines[3] = op[1];
 
-lines[7] = gamedir + "srcon.ans";
-lines[8] = gamedir + "srcon.asc";
-lines[9] = gamedir + "srconhof.ans";
-lines[10] = gamedir + "srconhof.asc";
+lines[7] = gamedir + "srcon.asc";
+lines[8] = gamedir + "srcon.ans";
+lines[9] = gamedir + "srconhof.asc";
+lines[10] = gamedir + "srconhof.ans";
 
 for (i in system.node_list) {
 	var nodenum = parseInt(i, 10) + 1;
diff --git a/xtrn/3rdp-install/sunrise-cribbage.js b/xtrn/3rdp-install/sunrise-cribbage.js
index 8d7a2dc4b83a135ac10c332c3ceacadbd31821fa..72a1c090b68c3ddba99ff0bc961e2e0a48d6be7c 100644
--- a/xtrn/3rdp-install/sunrise-cribbage.js
+++ b/xtrn/3rdp-install/sunrise-cribbage.js
@@ -31,10 +31,10 @@ var op = system.operator.split(" ", 2);
 lines[2] = op[0];
 lines[3] = op[1];
 
-lines[7] = gamedir + "scrib.ans";
-lines[8] = gamedir + "scrib.asc";
-lines[9] = gamedir + "scribhof.ans";
-lines[10] = gamedir + "scribhof.asc";
+lines[7] = gamedir + "scrib.asc";
+lines[8] = gamedir + "scrib.ans";
+lines[9] = gamedir + "scribhof.asc";
+lines[10] = gamedir + "scribhof.ans";
 lines[11] = "1";
 lines[38] = "G";
 
diff --git a/xtrn/3rdp-install/warlordsofthebalance.ini b/xtrn/3rdp-install/warlordsofthebalance.ini
new file mode 100644
index 0000000000000000000000000000000000000000..37022fc23e4511f42464cd0e28d9bb43349c885a
--- /dev/null
+++ b/xtrn/3rdp-install/warlordsofthebalance.ini
@@ -0,0 +1,39 @@
+Name: Warlords of the Balance
+Desc: Multi-player fantasy wargame
+By:   Evan Taylor, BRC Electronics
+Cats: Games
+Subs: Fantasy,War
+exe: INSTALL.EXE
+
+[md5:bbc09f57ee623d0ffe94b7c3bea189f0]
+ver = 0.97e
+url = ftp://archives.thebbs.org/door_games/doors_u-z/wotb97e.zip
+
+[prog:WOTB]
+name = Warlords of the Balance
+cmd = warlord.bat %f
+ars = DOS
+execution_ars = NOT GUEST
+settings = XTRN_ANSI | XTRN_SH
+type = XTRN_GAP
+
+[exec:../3rdp-install/warlordsofthebalance.js]
+prompt = false
+required = true
+
+[event:WOTBMAINT]
+cmd = event.exe
+name = Warlords of the Balance Maintenance
+; all days
+days = 127
+time = 0:00
+
+[pre-eval:file_exists(startup_dir + 'WARGAME.EXE')]
+prompt = false
+required = true
+fail = Extract the zip files (*.PI~)
+
+[pre-eval:file_exists(startup_dir + 'LORDS.DAT')]
+prompt = false
+required = true
+fail = Run wargen.exe
diff --git a/xtrn/3rdp-install/warlordsofthebalance.js b/xtrn/3rdp-install/warlordsofthebalance.js
new file mode 100644
index 0000000000000000000000000000000000000000..8d2e8d3957c246c8d0af5f85c9502df4a641d2a5
--- /dev/null
+++ b/xtrn/3rdp-install/warlordsofthebalance.js
@@ -0,0 +1,29 @@
+"use strict";
+
+writeln("Generating batch file...");
+
+var i;
+
+var gamedir = fullpath(js.startup_dir);
+
+var conffilesrc = "warlord.bat";
+var cfg_filename = gamedir + conffilesrc;
+
+var lines = [];
+lines[0] = "@echo off";
+lines[1] = "warlord %1";
+lines[2] = "wargame %1";
+
+writeln("Creating " + cfg_filename);
+
+var file = new File(cfg_filename);
+if (!file.open("w")) {
+	writeln("Error " + file.error + " opening " + file.name + " for writing");
+	exit(1)
+}
+file.writeAll(lines);
+file.close();
+
+writeln("Batch file generation complete");
+
+exit(0);
\ No newline at end of file