diff --git a/xtrn/dicewarz/ai.js b/xtrn/dicewarz/ai.js
index 38afec98c183cd483e43d74411cd8af4c6b440c5..62b02cd362c92ba3d9d6d567dbd216ac76e51d09 100644
--- a/xtrn/dicewarz/ai.js
+++ b/xtrn/dicewarz/ai.js
@@ -122,8 +122,7 @@ function	WildAndCrazyAICheck(gameNumber, playerNumber, base, target)
 	var rand=random(100);
 	if(g.grid[base].dice>g.grid[target].dice)
 		return(true);
-	if(g.grid[base].dice==g.grid[target].dice)
-	{
+	if(g.grid[base].dice==g.grid[target].dice) {
 		if(computerPlayer.territories.length>g.grid.length/6 || computerPlayer.reserve>=20)
 			return(true);
 		else {
@@ -131,8 +130,7 @@ function	WildAndCrazyAICheck(gameNumber, playerNumber, base, target)
 				return(true);
 		}
 	}
-	if(rand>50 && g.grid[base].dice==(g.grid[target].dice-1))
-	{
+	if(rand>50 && g.grid[base].dice==(g.grid[target].dice-1)) {
 		if(computerPlayer.territories.length>g.grid.length/6)
 			return(true);
 	}
diff --git a/xtrn/dicewarz/dice.ini b/xtrn/dicewarz/dice.ini
index 77b19025d8efbffdadc77135ab9f36a9fa7de0bd..97233627e1239b33fa72f2b9cd37473eec3fee27 100644
--- a/xtrn/dicewarz/dice.ini
+++ b/xtrn/dicewarz/dice.ini
@@ -1,9 +1,9 @@
 enablelogging=		false
-pointstowin=		100
+pointstowin=		200
 minscore=		-2
 maxgames=		100
-maxperplayer=		40
-minplayers=		3
+maxperplayer=		30
+minplayers=		4
 maxplayers=		7
 maxdice=		8
 killpointssolo=		1
@@ -12,7 +12,7 @@ winpointssolo=		2
 winpointsmulti=		4
 deathpointssolo=	-3
 deathpointsmulti=	-2
-forfeitpoints=		-1
+forfeitpoints=		-2
 skipdays=		3
 abortdays=		10
 keepgamedata=		2
diff --git a/xtrn/dicewarz/dice.js b/xtrn/dicewarz/dice.js
index 2da55e6a617e940379d952614513919800c882c5..73ef0b713ff7e9ff5e0dbce5ef021a8aae1f2d49 100644
--- a/xtrn/dicewarz/dice.js
+++ b/xtrn/dicewarz/dice.js
@@ -7,60 +7,62 @@
 	*******************************************
 */
 
-	load("sbbsdefs.js");
-	load("graphic.js");
-	var game_dir;
-	try { barfitty.barf(barf); } catch(e) { game_dir = e.fileName; }
-	game_dir = game_dir.replace(/[^\/\\]*$/,'');
-	
-	load(game_dir + "diceroll.js");
-	load(game_dir + "lock.js");
-	load(game_dir + "maps.js");
-	load(game_dir + "territory.js");
-	load(game_dir + "menu.js");
-	load(game_dir + "player.js");
-	load(game_dir + "display.js");
-	load(game_dir + "ai.js");
-	var activeGame="";
-	
+load("sbbsdefs.js");
+load("graphic.js");
+var root = js.exec_dir;
+
+load(root + "diceroll.js");
+load(root + "lock.js");
+load(root + "maps.js");
+load(root + "territory.js");
+load(root + "menu.js");
+load(root + "player.js");
+load(root + "display.js");
+load(root + "ai.js");
+
+var activeGame="";
+
 //######################### INITIALIZE PROGRAM VARIABLES #########################
-	const 	root=			"game";
-	const	scorefile=		"rankings.dat";
-	const	settingsfile=	"dice.ini"
-	const	halloffame=		"hof.dat";
-	const	instructions=	"dice.doc";
-	const 	bColors=		[BG_BLUE,	BG_CYAN,	BG_RED,		BG_GREEN,	BG_BROWN,	BG_MAGENTA,	BG_LIGHTGRAY]; 		//MAP BACKGROUND COLORS
-	const 	bfColors=		[BLUE,		CYAN,		RED,		GREEN,		BROWN,		MAGENTA,	LIGHTGRAY]; 		//MAP BACKGROUND COLORS (FOREGROUND CHARS)
-	const	fColors=		["\1h\1w",	"\1h\1c",	"\1h\1r",	"\1h\1g",	"\1h\1y", 	"\1h\1m",	"\1k"];				//MAP FOREGROUND COLORS
-	const	border_color=	"\1n\1k\1h";
+const	scorefile=		"rankings.dat";
+const	settingsfile=	"dice.ini"
+const	halloffame=		"hof.dat";
+const	instructions=	"dice.doc";
+//MAP BACKGROUND COLORS
+const 	bColors=		[BG_BLUE,	BG_CYAN,	BG_RED,		BG_GREEN,	BG_BROWN,	BG_MAGENTA,	BG_LIGHTGRAY]; 		
+//MAP BACKGROUND COLORS (FOREGROUND CHARS)
+const 	bfColors=		[BLUE,		CYAN,		RED,		GREEN,		BROWN,		MAGENTA,	LIGHTGRAY]; 		
+//MAP FOREGROUND COLORS
+const	fColors=		["\1h\1w",	"\1h\1c",	"\1h\1r",	"\1h\1g",	"\1h\1y", 	"\1h\1m",	"\1k"];				
+const	border_color=	"\1n\1k\1h";
 
 
 //######################### DO NOT CHANGE THIS SECTION ##########################	
 
-	var userFileName=game_dir + user.alias + ".usr";
-	var userFile=new File(userFileName);
-	userFile.open('a');
-	userFile.close();
+var userFileName=root + user.alias + ".usr";
+var userFile=new File(userFileName);
+userFile.open('a');
+userFile.close();
 
-	const	daySeconds=		86400;
-	const 	startRow=		4;
-	const	startColumn=	3;
-	const	menuRow=		1;
-	const	menuColumn=		50;
-	const 	columns=		9;
-	const 	rows=			9;
-	const 	blackbg=		console.ansi(ANSI_NORMAL);
-	
-	//TODO: FIX SCORING SYSTEM... BECAUSE RIGHT NOW IT SUCKS
-	var		scores=			[];
-	var		messages=		[];								//MESSAGES QUEUED FOR DISPLAY UPON RELOADING MAIN MENU
-	var		games=			new GameStatusInfo();
-	var		settings=		new GameSettings();
-	var		dice=			loadDice();
-	var 	oldpass=		console.ctrlkey_passthru;
-	
-	console.ctrlkey_passthru="+ACGKLOPQRTUVWXYZ_";
-	bbs.sys_status|=SS_MOFF;
+const	daySeconds=		86400;
+const 	startRow=		4;
+const	startColumn=	3;
+const	menuRow=		1;
+const	menuColumn=		50;
+const 	columns=		9;
+const 	rows=			9;
+const 	blackbg=		console.ansi(ANSI_NORMAL);
+
+//TODO: FIX SCORING SYSTEM... BECAUSE RIGHT NOW IT SUCKS
+var		scores=			[];
+var		messages=		[];								//MESSAGES QUEUED FOR DISPLAY UPON RELOADING MAIN MENU
+var		games=			new GameStatusInfo();
+var		settings=		new GameSettings();
+var		dice=			loadDice();
+var 	oldpass=		console.ctrlkey_passthru;
+
+js.on_exit("file_remove(userFileName);");
+console.ctrlkey_passthru="+ACGKLOPQRTUVWXYZ_";
+bbs.sys_status|=SS_MOFF;
 
 //########################## MAIN FUNCTIONS ###################################
 function 	scanProximity(location) 	
@@ -126,8 +128,9 @@ function	CountSparseArray(data)
 function	viewInstructions()
 {
 	console.clear();
-	console.printfile(game_dir + instructions);
-	if(!(user.settings & USER_PAUSE)) console.pause();
+	console.printfile(root + instructions);
+	if(!(user.settings & USER_PAUSE)) 
+		console.pause();
 	console.aborted=false;
 }
 function	viewRankings()
@@ -254,18 +257,25 @@ function 	deliverMessage(nextTurnPlayer,gameNumber)
 }
 function 	deliverKillMessage(killer,eliminated,gameNumber)
 {
+	if(eliminated < 0)
+		return;
 	var message="\1r\1h" + killer + " has eliminated you in \1yDice\1r-\1yWarz\1r game #\1y" + gameNumber + "\1r!\r\n\r\n";
-	if(!storeMessage(eliminated,message)) system.put_telegram(eliminated, message);
+	if(!storeMessage(eliminated,message)) 
+		system.put_telegram(eliminated, message);
 }
-function 	deliverSkipMessage(unum,gameNumber)
+function 	deliverForfeitMessage(unum,gameNumber)
 {
-	var message="\1r\1hYour turn has been skipped in \1yDice-Warz\1r game #" + gameNumber + "\r\n\r\n";
-	if(!storeMessage(unum,message)) system.put_telegram(unum, message);
+	if(unum < 0)
+		return;
+	var message="\1r\1hYou have forfeited \1yDice-Warz\1r game #" + gameNumber + " due to inactivity\r\n\r\n";
+	if(!storeMessage(unum,message)) 
+		system.put_telegram(unum, message);
 }
 function	storeMessage(unum,msg)
 {
-	var ufname=game_dir + system.username(unum) + ".usr";
-	if(!file_exists(ufname)) return false;
+	var ufname=root + system.username(unum) + ".usr";
+	if(!file_exists(ufname)) 
+		return false;
 	else {
 		var user_online=false;
 		for(n=0;n<system.node_list.length && !user_online;n++) {
@@ -283,12 +293,11 @@ function	storeMessage(unum,msg)
 	}
 }
 
-
 //########################GAME MENU FUNCTIONS################################
 function	splashStart()
 {
 	console.clear();
-	var splash_filename=game_dir + "dicewarz.bin";
+	var splash_filename=root + "dicewarz.bin";
 	var splash_size=file_size(splash_filename);
 	splash_size/=2;		
 	splash_size/=80;	
@@ -306,8 +315,9 @@ function 	splashExit()
 	bbs.sys_status&=~SS_MOFF;
 	file_remove(userFileName);
 	console.clear();
-	var splash_filename=game_dir + "exit.bin";
-	if(!file_exists(splash_filename)) exit();
+	var splash_filename=root + "exit.bin";
+	if(!file_exists(splash_filename)) 
+		exit();
 	var splash_size=file_size(splash_filename);
 	splash_size/=2;		
 	splash_size/=80;	
@@ -331,8 +341,7 @@ function 	gameMenu()
 	gMenu.add(gmenu_items);
 	games.init();
 
-	while(1)
-	{
+	while(1) {
 		//LOOPING MAIN MENU, UPDATES GAME STATUS INFO UPON REFRESH
 		//TODO: make recently completed games disappear from "your turn" list upon refresh
 		
@@ -365,8 +374,7 @@ function 	gameMenu()
 		wipeCursor("right");
 		
 		var cmd=console.getkey(K_NOSPIN|K_NOECHO|K_NOCRLF|K_UPPER);
-		switch(cmd)
-		{
+		switch(cmd)	{
 		case "R":
 			viewRankings();
 			break;
@@ -396,30 +404,26 @@ function	chooseGame()
 	{
 		console.gotoxy(x,y);
 		console.cleartoeol();
-		if(!games.gameData.length)
-		{
+		if(!games.gameData.length) {
 			putMessage("\1r\1hThere are currently no games.",x,y);
 			break;
 		}
 		console.putmsg("\1n\1gEnter game number or [\1hQ\1n\1g]uit\1h: ");
 		game_num=console.getkeys("Q",settings.maxGames);
-		if(game_num=="Q") return false;
-		if(games.gameData[game_num]) 
-		{
+		if(game_num=="Q") 
+			return false;
+		if(games.gameData[game_num]) {
 			var game_data=games.gameData[game_num];
 			var num=game_num;
-			if(game_num<10) num="0" + num;
-			gamefile=root + num;
+			if(game_num<10) 
+				num="0" + num;
+			gamefile="game" + num;
 
-			if(Locked(gamefile))
+			if(Locked(gamefile)) 
 				putMessage("\1r\1hThat game is in use by another node.",x,y);
-			else
-			{
-				if(game_data.singlePlayer) 
-				{
-					if(games.gameData[game_num].users[user.number]>=0);
-					else 
-					{
+			else {
+				if(game_data.singlePlayer) {
+					if(!(games.gameData[game_num].users[user.number]>=0)) {
 						putMessage("\1r\1hGame #" + game_num + " is private.",x,y);
 						continue;
 					}
@@ -427,36 +431,38 @@ function	chooseGame()
 				return game_num;
 			}
 		}
-		else putMessage("\1r\1hNo Such Game!",x,y);
+		else 
+			putMessage("\1r\1hNo Such Game!",x,y);
 	}
 	return false;
 }
 function 	processSelection(gameNumber)
 {	
 	var num=gameNumber;
-	if(gameNumber<10) num="0" + num;
-	var gamefile=root + num;
+	if(gameNumber<10) 
+		num="0" + num;
+	var gamefile="game" + num;
 
 	Lock(gamefile);
 	var g=games.gameData[gameNumber];
 	var fileName=g.fileName;
 	var lastModified=file_date(fileName);
-	if(lastModified>g.lastModified) games.gameData[gameNumber]=games.loadGame(fileName,gameNumber,lastModified);
+	if(lastModified>g.lastModified) 
+		games.gameData[gameNumber]=games.loadGame(fileName,gameNumber,lastModified);
 	
 	if(g.status>=0)
-	{
 		playGame(gameNumber);
-	}
-	else 
-	{
+	else {
 		viewGameInfo(gameNumber);
-		if(g.users[user.number]>=0)
-		{
+		if(g.users[user.number]>=0)	{
 			var gamePlayer=g.users[user.number];
-			if(g.fixedPlayers) askRemove(gameNumber,gamePlayer);
-			else changeVote(gameNumber,user.number);
+			if(g.fixedPlayers) 
+				askRemove(gameNumber,gamePlayer);
+			else 
+				changeVote(gameNumber,user.number);
 		}
-		else joinGame(gameNumber);
+		else 
+			joinGame(gameNumber);
 	}
 	Unlock(gamefile);
 	games.filterData();
@@ -469,19 +475,16 @@ function	changeVote(gameNumber,userNumber)
 	var g=games.gameData[gameNumber];
 	var gamePlayer=g.users[userNumber];
 	
-	if(console.noyes("\1n\1gChange your vote?"))
-	{
+	if(console.noyes("\1n\1gChange your vote?")) {
 		console.gotoxy(30,20);
 		console.cleartoeol();
 		askRemove(gameNumber,gamePlayer);
 	}
-	else 
-	{
+	else {
 		var vote=g.players[gamePlayer].vote;
 		if(vote==1) g.players[gamePlayer].vote=0;
 		else g.players[gamePlayer].vote=1;
-		if(g.tallyVotes())
-		{
+		if(g.tallyVotes()) {
 			g.maxPlayers=g.countPlayers();
 			startGame(gameNumber);
 		}
@@ -491,15 +494,12 @@ function	changeVote(gameNumber,userNumber)
 function	askRemove(gameNumber,playerNumber)
 {
 	g=games.gameData[gameNumber];
-	if(console.noyes("\1n\1gRemove yourself from this game?"));
-	else
-	{
+	if(!(console.noyes("\1n\1gRemove yourself from this game?"))) {
 		g.removePlayer(playerNumber);
 		if(g.countHumanPlayers()==0) 
-		{
 			file_remove(g.fileName);
-		}
-		else games.storeGame(gameNumber);
+		else 
+			games.storeGame(gameNumber);
 	}
 }
 function	viewGameInfo(gameNumber)
@@ -516,14 +516,11 @@ function	viewGameInfo(gameNumber)
 	
 	console.putmsg("\1n\1g Player names hidden: \1h" + g.hiddenNames + "\r\n");
 	console.putmsg("\1n\1g Players In This Game:\r\n");
-	for(playerNumber=0;playerNumber<g.players.length;playerNumber++)
-	{
+	for(playerNumber=0;playerNumber<g.players.length;playerNumber++) {
 		var player=g.players[playerNumber];
 		var name=getUserName(player,playerNumber);
 		if(g.hiddenNames && name!=user.alias)
-		{
 			name="Player " + (playerNumber+1);
-		}
 		console.putmsg("\1g\1h  " + name);
 		if(player.vote>=0) {
 			if(g.maxPlayers>g.minPlayers)
@@ -553,7 +550,7 @@ function	startGame(gameNumber)
 	queueMessage("\1r\1hGame " + gameNumber + " initialized!");
 	games.gameData[gameNumber].notify();
 	/* Set up computer players */
-	var aifile=new File(game_dir + "ai.ini");
+	var aifile=new File(root + "ai.ini");
 	aifile.open("r");
 	var possibleplayers=aifile.iniGetSections();
 	for(i=0; i<g.players.length; i++) {
@@ -580,23 +577,17 @@ function	startGame(gameNumber)
 function	joinGame(gameNumber)
 {
 	var numplayergames=games.yourGames.length-games.eliminated.length;
-	if(numplayergames>=settings.maxPerPlayer)
-	{
+	if(numplayergames>=settings.maxPerPlayer) {
 		console.pause();
 		return;
 	}
 	var vote=-1;
 	g=games.gameData[gameNumber];
-	if(console.noyes("\1n\1gjoin this game?"));
-	else
-	{
+	if(!(console.noyes("\1n\1gjoin this game?"))) {
 		if(g.maxPlayers>g.minPlayers && g.players.length+1<g.maxPlayers) vote=getVote();
 		g.addPlayer(user.number,vote);
-		if(g.players.length>=g.minPlayers)
-		{
-			if(g.players.length==g.maxPlayers ||
-				g.tallyVotes())
-			{
+		if(g.players.length>=g.minPlayers) {
+			if(g.players.length==g.maxPlayers || g.tallyVotes()) {
 				g.maxPlayers=g.players.length;
 				startGame(gameNumber);
 			}
@@ -607,8 +598,7 @@ function	joinGame(gameNumber)
 function 	createNewGame()
 {
 	var numplayergames=games.yourGames.length-games.eliminated.length;
-	if(numplayergames>=settings.maxPerPlayer) 
-	{
+	if(numplayergames>=settings.maxPerPlayer) {
 		queueMessage("\1r\1hYou can only be active in " + settings.maxPerPlayer + " games at a time");
 		return false;
 	}
@@ -625,18 +615,17 @@ function 	createNewGame()
 	var y=19;
 	console.gotoxy(x,y);
 	console.cleartoeol();
-	if(console.yesno("\1n\1gBegin a new game?"))
-	{
+	if(console.yesno("\1n\1gBegin a new game?")) {
 		clearArea(3,1,14);
 		clearArea(19,30,5);
 		var gameNumber=getNextGameNumber();
 		var gnum=gameNumber;
-		if(gameNumber<10) gnum="0" + gnum;
-		var gamefile=root + gnum;
+		if(gameNumber<10) 
+			gnum="0" + gnum;
+		var gamefile="game" + gnum;
 		Lock(gamefile);
 	}
-	else 
-	{
+	else {
 		console.gotoxy(x,y);
 		console.cleartoeol();
 		return false;
@@ -645,109 +634,112 @@ function 	createNewGame()
 	console.gotoxy(x,y);
 	console.cleartoeol();
 	y++;
-	if(!console.noyes("\1n\1gSingle player game?"))
-	{
+	if(!console.noyes("\1n\1gSingle player game?")) {
 		singlePlayer=true;
-		while(1)
-		{
+		while(1) {
 			console.gotoxy(x,y);
 			console.cleartoeol();
-			console.putmsg("\1n\1gEnter number of opponents [\1h" + (settings.minPlayers-1) + "\1n\1g-\1h" + (settings.maxPlayers-1) + "\1n\1g] or [\1hQ\1n\1g]uit: ");
+			console.putmsg(
+				"\1n\1gEnter number of opponents [\1h" + 
+				(settings.minPlayers-1) + "\1n\1g-\1h" + 
+				(settings.maxPlayers-1) + "\1n\1g] or [\1hQ\1n\1g]uit: "
+			);
 			var num=console.getkeys("Q",settings.maxPlayers-1);
-			if(num>=settings.minPlayers-1 && num<settings.maxPlayers) 
-			{
+			if(num>=settings.minPlayers-1 && num<settings.maxPlayers) {
 				minNumPlayers=num+1;
 				maxNumPlayers=num+1;
 				numComputerPlayers=num;
 				y++;
 				break;
 			}
-			else if(num=="Q") return false; 
-			else putMessage("\1r\1h Please enter a number within the given range.",x,y);
+			else if(num=="Q") 
+				return false; 
+			else 
+				putMessage("\1r\1h Please enter a number within the given range.",x,y);
 		}
 	}
-	else	
-	{
+	else {
 		console.gotoxy(x,y);
 		y++;
-		if(!console.noyes("\1n\1gKeep player names hidden?")) hiddenNames=true;
-		while(1)
-		{
+		if(!console.noyes("\1n\1gKeep player names hidden?")) 
+			hiddenNames=true;
+		while(1) {
 			console.gotoxy(x,y);
 			console.cleartoeol();
 			console.putmsg("\1n\1gEnter minimum number of players [\1h" + settings.minPlayers + "\1n\1g-\1h" + settings.maxPlayers + "\1n\1g] or [\1hQ\1n\1g]uit: ");
 			var num=console.getkeys("Q",settings.maxPlayers);
-			if(num>=settings.minPlayers && num<=settings.maxPlayers) 
-			{
+			if(num>=settings.minPlayers && num<=settings.maxPlayers) {
 				minNumPlayers=num;
 				y++;
 				break;
 			}
-			else if(num=="Q") return false; 
-			else putMessage("\1r\1h Please enter a number within the given range.",x,y);
+			else if(num=="Q") 
+				return false; 
+			else 
+				putMessage("\1r\1h Please enter a number within the given range.",x,y);
 		}
 		if(minNumPlayers<settings.maxPlayers) {
-			while(1)
-			{
+			while(1) {
 				console.gotoxy(x,y);
 				console.cleartoeol();
 				console.putmsg("\1n\1gEnter maximum number of players [\1h" + minNumPlayers + "\1n\1g-\1h" + settings.maxPlayers + "\1n\1g] or [\1hQ\1n\1g]uit: ");
 				var num=console.getkeys("Q",settings.maxPlayers);
-				if(num>=minNumPlayers && num<=settings.maxPlayers) 
-				{
+				if(num>=minNumPlayers && num<=settings.maxPlayers) {
 					maxNumPlayers=num;
 					y++;
 					break;
 				}
-				else if(num=="Q") return false;
-				else putMessage("\1r\1h Please enter a number within the given range.",x,y);
+				else if(num=="Q") 
+					return false;
+				else 
+					putMessage("\1r\1h Please enter a number within the given range.",x,y);
 			}
 		}
-		else fixedPlayers=true;
-		while(1)
-		{
+		else 
+			fixedPlayers=true;
+		while(1) {
 			console.gotoxy(x,y);
 			console.cleartoeol();
-			if(console.noyes("\1n\1gInclude computer players?")) break;
+			if(console.noyes("\1n\1gInclude computer players?")) 
+				break;
 			console.gotoxy(x,y);
 			console.cleartoeol();
 			console.putmsg("\1n\1gHow many? [\1h1\1n\1g-\1h" + (maxNumPlayers-1) + "\1n\1g] or [\1hQ\1n\1g]uit: ");
 			cnum=console.getkeys("Q",maxNumPlayers-1);
-			if(cnum<=(maxNumPlayers-1) && cnum>0) 
-			{
+			if(cnum<=(maxNumPlayers-1) && cnum>0) {
 				numComputerPlayers=cnum;
 				break;
 			}
-			else if(cnum=="Q") return false;
-			else putMessage("\1r\1h Please enter a number within the given range.",x,y);
+			else if(cnum=="Q") 
+				return false;
+			else 
+				putMessage("\1r\1h Please enter a number within the given range.",x,y);
 		}
 	}
 	games.gameData[gameNumber]=new NewGame(minNumPlayers,maxNumPlayers,gameNumber);
 	games.gameData[gameNumber].fileName=getFileName(gameNumber);
 	for(cp=0;cp<numComputerPlayers;cp++)
-	{
 		games.gameData[gameNumber].addPlayer(-1, 1); //NO USER NUMBER, NO VOTE
-	}
-	if(!singlePlayer)
-	{
-		if(hiddenNames) games.gameData[gameNumber].hiddenNames=true;
-		if(fixedPlayers) games.gameData[gameNumber].fixedPlayers=true;
-		else
-		{
+	if(!singlePlayer) {
+		if(hiddenNames) 
+			games.gameData[gameNumber].hiddenNames=true;
+		if(fixedPlayers) 
+			games.gameData[gameNumber].fixedPlayers=true;
+		else {
 			console.crlf();
 			vote=getVote();
 		}
 	}
 	games.gameData[gameNumber].addPlayer(user.number, vote);
-	if(singlePlayer) 
-	{
+	if(singlePlayer) {
 		games.gameData[gameNumber].singlePlayer=true;
 		startGame(gameNumber);
 		games.singleGames.push(gameNumber);
 		games.yourGames.push(gameNumber);
 		games.yourTurn.push(gameNumber);
 	}
-	else games.notFull.push(gameNumber);
+	else 
+		games.notFull.push(gameNumber);
 
 	games.storeGame(gameNumber);
 	queueMessage("\1r\1hGame " + gameNumber + " Created!");
@@ -757,9 +749,10 @@ function 	createNewGame()
 function	getFileName(gameNumber)
 {
 	var num=gameNumber;
-	if(gameNumber<10) num="0" + gameNumber;
-	var gamefile=root + num;
-	return (game_dir + gamefile + ".dat");
+	if(gameNumber<10) 
+		num="0" + gameNumber;
+	var gamefile="game" + num;
+	return (root + gamefile + ".dat");
 }
 function 	getVote()
 {
@@ -767,9 +760,7 @@ function 	getVote()
 	console.putmsg("\1n\1gDo you wish to start the game immediately or wait for more players?");
 	console.crlf();
 	if(console.yesno("\1g\1hYes to start, No to wait"))
-	{
 		vote = 1;
-	}
 	return vote;
 }
 function 	getUserName(playerData,playerNumber)
@@ -780,6 +771,7 @@ function 	getUserName(playerData,playerNumber)
 		return(playerData.AI.name);
 	return("Computer " + (playerNumber+1));
 }
+
 //###########################GAMEPLAY FUNCTIONS#############################
 function	selectTile(gameNumber,playerNumber,attackPosition,startPosition)
 {
@@ -955,23 +947,23 @@ function	forfeit(gameNumber,playerNumber)
 	var g=games.gameData[gameNumber];
 	var p=g.players[playerNumber];
 	
-	scores[p.user].losses+=1;
-	scores[p.user].score+=settings.forfeitPoints;
+	if(p.user > 0) {
+		Log("forfeiting " + system.username(g.players[playerNumber].user) + " in game " + gm.gameNumber);
+		scores[p.user].losses+=1;
+		scores[p.user].score+=settings.forfeitPoints;
+	}
+	else {
+		Log("forfeiting " + g.players[playerNumber].AI.name + " in game " + gameNumber);
+	}
 	if(g.singlePlayer) 
-	{
 		file_remove(g.fileName);
-	}
-	else 
-	{
+	else {
 		var activePlayers=g.countActivePlayers();
-		if(activePlayers.length==2) 
-		{
+		if(activePlayers.length==2) {
 			g.status=0;
-			for(player in activePlayers)
-			{
+			for(player in activePlayers) {
 				var ply=activePlayers[player];
-				if(g.players[ply].user!=p.user)
-				{
+				if(g.players[ply].user!=p.user)	{
 					g.winner=g.players[ply].user;
 					if(g.winner>=0) {
 						scores[g.winner].score+=settings.winPointsMulti;
@@ -981,8 +973,7 @@ function	forfeit(gameNumber,playerNumber)
 				}
 			}
 		}
-		else 
-		{
+		else {
 			delete g.users[p.user];
 			g.players[playerNumber].AI.name=system.username(p.user)+" AI";
 			g.players[playerNumber].user=-1;
@@ -991,6 +982,7 @@ function	forfeit(gameNumber,playerNumber)
 	}
 	g.displayPlayers();
 	games.storeRankings();
+	return true;
 }
 //MAIN GAMEPLAY FUNCTION
 function	playGame(gameNumber)
@@ -1012,36 +1004,28 @@ function	playGame(gameNumber)
 	pMenu.disable(["A","E","T","F"]);
 	clearArea(16,menuColumn,9);
 
-	while(1)
-	{
-		if(g.users[user.number]>=0) 
-		{
+	while(1) {
+		if(g.users[user.number]>=0) {
 			userInGame=true;
 			currentPlayer=g.users[user.number];
 		}
-		else 
-		{
+		else {
 			currentPlayer=-1;
 			userInGame=false;
 		}
 		var turn=g.turnOrder[g.nextTurn];
-		while(g.players[turn].user<0 && userInGame && g.status==1) 
-		{
+		while(g.players[turn].user<0 && userInGame && g.status==1) {
 			var name=g.players[turn].AI.name;
-			if(g.hiddenNames)
-			{
+			if(g.hiddenNames) {
 				name="Player " + (parseInt(turn,10)+1);
 			}
-			////////////////////////////////////
-				clearLine(1,48);
-				console.gotoxy(2,1);
-				console.putmsg("\1r\1hPlease wait. " + name + " taking turn.");
-				mswait(750);
-			/////////////////////////////////////
+			clearLine(1,48);
+			console.gotoxy(2,1);
+			console.putmsg("\1r\1hPlease wait. " + name + " taking turn.");
+			mswait(750);
 			g.players[turn].AI.turns=0;
 			g.players[turn].AI.moves=0;
-			while(g.canAttack(turn))
-			{
+			while(g.canAttack(turn)) {
 				if(!takeTurnAI(gameNumber,turn))
 					break;
 			}
@@ -1050,34 +1034,27 @@ function	playGame(gameNumber)
 			g.displayPlayers();
 			turn=g.turnOrder[g.nextTurn];
 		}
-		if(!g.takingTurn)
-		{
+		if(!g.takingTurn) {
 			clearArea(16,50,8);
 			console.gotoxy(51,16);
 			console.putmsg("\1r\1hGame \1n\1r#\1h" + gameNumber);
-			if(g.status==0)
-			{
+			if(g.status==0)	{
 				pMenu.disable(["A","E","T","F"]);
 				pMenu.enable(["Q"]);
 				showWinner(g);
 			}
 			else if(turn==currentPlayer) 
-			{
 				pMenu.enable("T");
-			}
-			else  
-			{
+			else  {
 				var name=getUserName(g.players[turn],turn);
-				if(g.hiddenNames)
-				{
+				if(g.hiddenNames) {
 					name="Player " + (parseInt(turn,10)+1);
 				}
 				console.gotoxy(51,18);
 				console.putmsg("\1r\1hIt is " + name + "'s turn");
 				var daysOld=g.findDaysOld();
 				var hoursOld=parseInt(daysOld*24,10);
-				if(daysOld>0)
-				{
+				if(daysOld>0) {
 					console.gotoxy(51,19);
 					console.putmsg("\1r\1hLast turn taken " + hoursOld + " hours ago");
 				}
@@ -1086,18 +1063,14 @@ function	playGame(gameNumber)
 		pMenu.displayHorizontal();
 		var cmd=console.getkey(K_NOECHO|K_NOCRLF|K_UPPER);
 		wipeCursor("right");
-		if(pMenu.items[cmd] && pMenu.items[cmd].enabled)
-		{
-			switch(cmd)
-			{
+		if(pMenu.items[cmd] && pMenu.items[cmd].enabled) {
+			switch(cmd)	{
 			case "T":
 				pMenu.enable(["F"]);
 				pMenu.disable(["Q","T"]);
 				g.takingTurn=true;
 				if(g.canAttack(currentPlayer))
-				{
 					pMenu.enable("A");
-				}
 				pMenu.enable("E");
 				continue;
 			case "F":
@@ -1112,9 +1085,11 @@ function	playGame(gameNumber)
 				g.displayPlayers();
 				break; 
 			case "A":
-				if(!attack(gameNumber,currentPlayer)) continue;
+				if(!attack(gameNumber,currentPlayer)) 
+					continue;
  				g.displayPlayers();
-				if(!g.canAttack(currentPlayer)) pMenu.disable(["A"]);
+				if(!g.canAttack(currentPlayer)) 
+					pMenu.disable(["A"]);
 				break;
 			case "E":
 				pMenu.disable(["A","E","F"]);
@@ -1141,14 +1116,21 @@ function 	takeTurnAI(gameNumber,playerNumber)
 	g=games.gameData[gameNumber];
 	computerPlayer=g.players[playerNumber];
 	targets=[];
+	
+	/* if we are down to two players */
+	if(g.countActivePlayers().length == 2) {
+		/* if this ai occupies less than a quarter of the map, forfeit the game */
+		if((computerPlayer.countTerritory() / g.mapSize) < (0.25)) {
+			Log("computer player forfeiting game " + gameNumber);
+			forfeit(gameNumber,playerNumber);
+		}
+	}
 
 	/* For each owned territory */
-	for(territory in computerPlayer.territories)
-	{
+	for(territory in computerPlayer.territories) {
 		base=computerPlayer.territories[territory];
 		/* If we have enough to attack */
-		if(g.grid[base].dice>1)
-		{
+		if(g.grid[base].dice>1)	{
 			/* Find places we can attack */
 			attackOptions=g.canAttack(playerNumber,base,computerPlayer,g);
 			if(attackOptions!==false) {
@@ -1156,8 +1138,7 @@ function 	takeTurnAI(gameNumber,playerNumber)
 
 				/* Randomize the order to check in */
 				attackOptions.sort(RandomSort);
-				for(option in attackOptions)
-				{
+				for(option in attackOptions) {
 					target=attackOptions[option];
 					/* Check if this is an acceptable attack */
 					if(AICheckFunctions[computerPlayer.AI.check](gameNumber, playerNumber, base, target))
@@ -1177,8 +1158,7 @@ function 	takeTurnAI(gameNumber,playerNumber)
 	if(attackQuantity < 1)
 		return false;
 	targets.sort(AISortFunctions[computerPlayer.AI.sort]);
-	for(attackNum=0;attackNum<attackQuantity;attackNum++)
-	{
+	for(attackNum=0;attackNum<attackQuantity;attackNum++) {
 		attackFrom=g.grid[targets[attackNum].base];
 		attackTo=g.grid[targets[attackNum].target];
 		if(attackFrom.dice>1 && attackTo.player!=playerNumber) {
@@ -1189,6 +1169,7 @@ function 	takeTurnAI(gameNumber,playerNumber)
 	computerPlayer.AI.turns++;
 	return true;
 }
+
 //#######################MAIN GAME CLASS###################################
 function	GameSettings()
 {
@@ -1214,8 +1195,9 @@ function	GameSettings()
 	
 	this.load=function()
 	{
-		var sfile=new File(game_dir + settingsfile);
-		if(!file_exists(sfile.name)) return;
+		var sfile=new File(root + settingsfile);
+		if(!file_exists(sfile.name)) 
+			return;
 		
 		sfile.open('r',true);
 		this.logEnabled=		sfile.iniGetValue(null,"enablelogging");
@@ -1257,14 +1239,12 @@ function	GameStatusInfo()
 	this.storeRankings=function()
 	{
 		Log("storing rankings");
-		var sfilename=game_dir+scorefile;
+		var sfilename=root+scorefile;
 		var sfile=new File(sfilename);
-		if(!Locked(scorefile,true))
-		{
+		if(!Locked(scorefile,true)) {
 			Lock(scorefile);
 			sfile.open((file_exists(sfilename)?'r+':'w+'), true);
-			for(s in scores)
-			{
+			for(s in scores) {
 				var score=scores[s];
 				var points=score.score>=settings.minScore?score.score:settings.minScore;
 				sfile.iniSetValue(s,"score",points);
@@ -1279,22 +1259,19 @@ function	GameStatusInfo()
 	this.loadRankings=function()
 	{
 		Log("loading rankings");
-		var sfilename=game_dir+scorefile;
-		if(file_exists(sfilename))
-		{
+		var sfilename=root+scorefile;
+		if(file_exists(sfilename)) {
 			var lfile=new File(sfilename);
 			lfile.open('r',true);
 			var plyrs=lfile.iniGetSections();
-			for(p=0;p<plyrs.length;p++)
-			{
+			for(p=0;p<plyrs.length;p++) {
 				var player=plyrs[p];
 				var score=parseInt(lfile.iniGetValue(player,"score"),10);
 				var kills=parseInt(lfile.iniGetValue(player,"kills"),10);
 				var wins=parseInt(lfile.iniGetValue(player,"wins"),10);
 				var losses=parseInt(lfile.iniGetValue(player,"losses"),10);
 				scores[player]={'score':score,'kills':kills,'wins':wins,'losses':losses};
-				if(score>=settings.pointsToWin) 
-				{	
+				if(score>=settings.pointsToWin) {	
 					lfile.close();
 					file_remove(lfile.name);
 					this.winRound(player);
@@ -1307,7 +1284,7 @@ function	GameStatusInfo()
 	}
 	this.winRound=function(player)
 	{	
-		hfilename=game_dir+halloffame;
+		hfilename=root+halloffame;
 		var hfile=new File(hfilename);
 		hfile.open('a');
 		hfile.writeln(" \1w\1h" + system.datestr() + "\1n: \1y" + system.username(player));
@@ -1315,12 +1292,11 @@ function	GameStatusInfo()
 	}
 	this.hallOfFame=function()
 	{	
-		if(file_exists(game_dir+halloffame))
-		{
+		if(file_exists(root+halloffame)) {
 			console.clear();
 			console.putmsg("\1y\1hBBS DICE WARZ HALL OF FAME (Previous Round Winners)");
 			console.crlf();
-			console.printtail(game_dir + halloffame,10);
+			console.printtail(root + halloffame,10);
 			console.gotoxy(1,24);
 			console.pause();
 			console.aborted=false;
@@ -1336,8 +1312,7 @@ function	GameStatusInfo()
 
 		var hn=gfile.readln()==0?false:true;
 		var status=parseInt(gfile.readln(),10);
-		if(status<0) 
-		{
+		if(status<0) {
 			var minp=parseInt(gfile.readln(),10);
 			var maxp=parseInt(gfile.readln(),10);
 			lgame=new NewGame(minp,maxp,gameNumber);
@@ -1346,19 +1321,16 @@ function	GameStatusInfo()
 			lgame.fileName=gamefile;
 			if(minp==maxp) lgame.fixedPlayers=true;
 			
-			for(nnn=0;!gfile.eof && nnn<maxp;nnn++)
-			{
+			for(nnn=0;!gfile.eof && nnn<maxp;nnn++)	{
 				userNumber=gfile.readln();
-				if(userNumber===null || userNumber===undefined || userNumber==="") break;
-				else
-				{
+				if(userNumber===null || userNumber===undefined || userNumber==="") 
+					break;
+				else {
 					userNumber=parseInt(userNumber,10);
 					vote=gfile.readln();
 					lgame.addPlayer(userNumber,parseInt(vote,10));
 					if(userNumber>0 && !scores[userNumber]) 
-					{
 						scores[userNumber]={'score':0,'kills':0,'wins':0,'losses':0};
-					}
 				}
 			}
 			gfile.close();
@@ -1380,15 +1352,13 @@ function	GameStatusInfo()
 		lgame.playerTerr=pt;
 		lgame.hiddenNames=hn;
 		
-		for(to=0;to<np;to++)
-		{
+		for(to=0;to<np;to++) {
 			ttoo=parseInt(gfile.readln());
 			lgame.turnOrder[to]=ttoo;
 		}
-		var aifile=new File(game_dir + "ai.ini");
+		var aifile=new File(root + "ai.ini");
 		aifile.open("r");
-		for(pl=0;pl<np;pl++)
-		{
+		for(pl=0;pl<np;pl++) {
 			var uname=gfile.readln();
 			var u=-1;
 			if(uname.search(/^[0-9]+$/) != -1)
@@ -1401,14 +1371,11 @@ function	GameStatusInfo()
 			lgame.players[pl].setColors(pl);
 			lgame.players[pl].reserve=res;
 
-			if(u>0) 
-			{
+			if(u>0) {
 				lgame.users[u]=pl;
 				humans++;
 				if(!scores[u])
-				{
 					scores[u]={'score':0,'kills':0,'wins':0,'losses':0};
-				}
 			}
 			else {
 				/* Set up computer players */
@@ -1426,11 +1393,8 @@ function	GameStatusInfo()
 		}
 		aifile.close();
 		if(humans<2) 
-		{
 			lgame.singlePlayer=true;
-		}
-		for(sec=0;sec<ms;sec++)
-		{
+		for(sec=0;sec<ms;sec++) {
 			spot_player=parseInt(gfile.readln(),10);
 			spot_index=parseInt(gfile.readln(),10);
 			spot_dice=parseInt(gfile.readln(),10);
@@ -1455,12 +1419,10 @@ function	GameStatusInfo()
 		
 		gfile.writeln(g.hiddenNames?1:0);
 		gfile.writeln(g.status);
-		if(g.status<0)
-		{
+		if(g.status<0) {
 			gfile.writeln(g.minPlayers);
 			gfile.writeln(g.maxPlayers);
-			for(nnn=0;nnn<g.players.length;nnn++)
-			{
+			for(nnn=0;nnn<g.players.length;nnn++) {
 				gfile.writeln(g.players[nnn].user);
 				gfile.writeln(g.players[nnn].vote);
 			}
@@ -1474,11 +1436,8 @@ function	GameStatusInfo()
 		gfile.writeln(g.columns);
 		gfile.writeln(g.playerTerr);
 		for(to=0;to<g.maxPlayers;to++)
-		{
 			gfile.writeln(g.turnOrder[to]);
-		}
-		for(ply in g.players)
-		{
+		for(ply in g.players) {
 			p=g.players[ply];
 			if(p.user==-1)
 				gfile.writeln(p.AI.name);
@@ -1486,8 +1445,7 @@ function	GameStatusInfo()
 				gfile.writeln(p.user);
 			gfile.writeln(p.reserve);
 		}	
-		for(sector in g.used)
-		{
+		for(sector in g.used) {
 			location=sector;
 			gfile.writeln(g.grid[location].player);
 			gfile.writeln(g.grid[location].location);
@@ -1498,36 +1456,30 @@ function	GameStatusInfo()
 	this.updateGames=function()
 	{
 		var u=false;
-		for(gd in this.gameData)
-		{
+		for(gd in this.gameData) {
 			var fileName=this.gameData[gd].fileName;
 			var lastModified=file_date(fileName);
 
-			if(file_exists(fileName))
-			{
-				if(lastModified>this.gameData[gd].lastModified) 
-				{
+			if(file_exists(fileName)) {
+				if(lastModified>this.gameData[gd].lastModified) {
 					this.gameData[gd]=this.loadGame(fileName,gd,lastModified);
 					u=true;
 				}
 			}
-			else
-			{
+			else {
 				delete this.gameData[gd];
 				u=true;
 			}
 		}
-		if(u) this.filterData();
+		if(u) 
+			this.filterData();
 	}
 	this.sortArray=function(data)
 	{
 		var numItems=data.length;
-		for(n=0;n<numItems;n++)
-		{
-			for(m = 0; m < (numItems-1); m++) 
-			{
-				if(parseInt(data[m],10) > parseInt(data[m+1],10)) 
-				{
+		for(n=0;n<numItems;n++) {
+			for(m = 0; m < (numItems-1); m++) {
+				if(parseInt(data[m],10) > parseInt(data[m+1],10)) {
 					holder = data[m+1];
 					data[m+1] = data[m];
 					data[m] = holder;
@@ -1548,8 +1500,7 @@ function	GameStatusInfo()
 		this.yourTurn=[];
 		this.eliminated=[];
 		
-		for(ggg in this.gameData)
-		{
+		for(ggg in this.gameData) {
 			var gm=this.gameData[ggg];
 			if(!file_exists(gm.fileName)) {
 				Log("game file missing, removing data: " + gm.filename);
@@ -1557,48 +1508,48 @@ function	GameStatusInfo()
 			}
 			else {
 				var	playerNumber=gm.users[user.number];
-				if(gm.users[user.number]>=0)
-				{
-					if(gm.status<0) this.notFull.push(ggg);
-					if(gm.singlePlayer) this.singleGames.push(ggg);
+				if(gm.users[user.number]>=0) {
+					if(gm.status<0) 
+						this.notFull.push(ggg);
+					if(gm.singlePlayer) 
+						this.singleGames.push(ggg);
 					this.yourGames.push(ggg);
-					if(gm.status==0) 
-					{
+					if(gm.status==0) {
 						this.completed.push(ggg);
-						if(gm.winner==user.number) this.youWin.push(ggg);
+						if(gm.winner==user.number) 
+							this.youWin.push(ggg);
 					}
-					else if(gm.status>0)
-					{
+					else if(gm.status>0) {
 						this.inProgress.push(ggg);
-						if(gm.turnOrder[gm.nextTurn]==playerNumber || gm.singlePlayer) {
+						if(gm.turnOrder[gm.nextTurn]==playerNumber || gm.singlePlayer) 
 							this.yourTurn.push(ggg);
-						} else {
+						else {
 							var nextTurn=gm.nextTurn;
 							while(gm.players[gm.turnOrder[nextTurn]].user<0) {
 								nextTurn++;
-								if(nextTurn==gm.maxPlayers) nextTurn=0;
+								if(nextTurn==gm.maxPlayers) 
+									nextTurn=0;
 							}
-							if(gm.turnOrder[nextTurn]==playerNumber) {
+							if(gm.turnOrder[nextTurn]==playerNumber) 
 								this.yourTurn.push(ggg);
-							}
 						}
 					}
-					if(gm.players[playerNumber].eliminated===true) this.eliminated.push(ggg);
+					if(gm.players[playerNumber].eliminated===true) 
+						this.eliminated.push(ggg);
 				}
-				else 
-				{
-					if(gm.status<0) this.notFull.push(ggg);
-					else if(!gm.singlePlayer)
-					{
-						if(gm.status==0) 
-						{
+				else {
+					if(gm.status<0) 
+						this.notFull.push(ggg);
+					else if(!gm.singlePlayer) {
+						if(gm.status==0) {
 							this.completed.push(ggg);
-							if(gm.winner>=0) 
-							{
-								if(gm.winner==user.number) this.youWin.push(ggg);
+							if(gm.winner>=0) {
+								if(gm.winner==user.number) 
+									this.youWin.push(ggg);
 							}
 						}
-						else this.inProgress.push(ggg);
+						else 
+							this.inProgress.push(ggg);
 					}
 				}
 			}
@@ -1606,11 +1557,9 @@ function	GameStatusInfo()
 	}
 	this.loadGames=function()
 	{	
-		var open_list=directory(game_dir + root + "*.dat"); 	
-		if(open_list.length)
-		{
-			for(lg in open_list)
-			{
+		var open_list=directory(root + "game*.dat"); 	
+		if(open_list.length) {
+			for(lg in open_list) {
 				var temp_fname=file_getname(open_list[lg]);
 				var lastModified=file_date(open_list[lg]);
 				var daysOld=(time()-lastModified)/daySeconds;
@@ -1619,55 +1568,44 @@ function	GameStatusInfo()
 				this.gameData[gameNumber]=lgame;
 			}
 		}
-		this.skipPlayers();
 		this.filterData();
+		this.updatePlayers();
 		this.deleteOld();
 	}
 	this.deleteOld=function()
 	{	
 		Log("deleting old game data");
-		for(oldgame in this.gameData)
-		{
+		for(oldgame in this.gameData) {
 			daysOld=(time()-this.gameData[oldgame].lastModified)/daySeconds;
-			if(this.gameData[oldgame].singlePlayer===true && daysOld>=settings.keepGameData)
-			{
+			if(this.gameData[oldgame].singlePlayer===true && daysOld>=settings.keepGameData) {
 				file_remove(this.gameData[oldgame].fileName);
 				delete this.gameData[oldgame];
 			}
 		}
-		for(completed in this.completed)
-		{
+		for(completed in this.completed) {
 			gm=this.completed[completed];
 			daysOld=(time()-this.gameData[gm].lastModified)/daySeconds;
-			if(this.gameData[gm].singlePlayer===true || daysOld>=settings.keepGameData)
-			{
+			if(this.gameData[gm].singlePlayer===true || daysOld>=settings.keepGameData)	{
 				file_remove(this.gameData[gm].fileName);
 				delete this.gameData[gm];
 			}
 		}
 	}
-	this.skipPlayers=function()
+	this.updatePlayers=function()
 	{
-		Log("skipping players");
-		for(inp in this.inProgress)
-		{
-			gm=this.gameData[this.inProgress[inp]];
-			if(gm) 
-			{
+		Log("updating players");
+		for(inp in this.inProgress) {
+			var gm=this.gameData[this.inProgress[inp]];
+			if(gm) {
 				daysOld=(time()-gm.lastModified)/daySeconds;
-				if(settings.abortDays>=0 && daysOld>=settings.abortDays)
-				{
+				if(settings.abortDays>0 && daysOld>=settings.abortDays) {
 					Log("removing expired game: " + gm.fileName);
 					file_remove(gm.fileName);
 				}
-				if(settings.skipDays>=0 && daysOld>=settings.skipDays && !gm.singlePlayer) 
-				{
+				else if(settings.skipDays>0 && daysOld>=settings.skipDays && !gm.singlePlayer) {
 					nextTurnPlayer=gm.turnOrder[gm.nextTurn];
-					Log("skipping " + system.username(gm.players[nextTurnPlayer].user) + " in game " + gm.gameNumber);
-					deliverSkipMessage(gm.players[nextTurnPlayer].user,gm.gameNumber);
-					gm.reinforce(nextTurnPlayer);
-					this.storeGame(this.inProgress[inp]);
-					file_utime(gm.fileName,time(),gm.lsatModified);
+					deliverForfeitMessage(gm.players[nextTurnPlayer].user,gm.gameNumber);
+					forfeit(gm.gameNumber,nextTurnPlayer);
 				}
 			}
 		}
@@ -1681,11 +1619,10 @@ function	GameStatusInfo()
 }
 function	Log(txt)
 {
-	if(settings.logEnabled) {
+	if(settings.logEnabled) 
 		log(LOG_DEBUG,txt);
-	}
 }
 
-	splashStart();
-	gameMenu();
-	splashExit();
+splashStart();
+gameMenu();
+splashExit();
diff --git a/xtrn/dicewarz/display.js b/xtrn/dicewarz/display.js
index f946962deca57d6a3282bb076913d0060cc84e87..15ee680ca9f1e50064d0da31625231a5a1e6f60b 100644
--- a/xtrn/dicewarz/display.js
+++ b/xtrn/dicewarz/display.js
@@ -93,7 +93,7 @@ function 	displayMessages()
 {
 	var x=30;
 	var y=20;
-	var fileName=game_dir + user.alias + ".usr";
+	var fileName=root + user.alias + ".usr";
 	if(file_size(fileName)>0) {
 		var file=new File(fileName);
 		file.open('r',false);
diff --git a/xtrn/dicewarz/lock.js b/xtrn/dicewarz/lock.js
index eac4bc4982ab7f853dfeff17036728eabaae6a64..0ce10e2bdce41a2f50531d4eaf5866dd65365d2f 100644
--- a/xtrn/dicewarz/lock.js
+++ b/xtrn/dicewarz/lock.js
@@ -1,6 +1,6 @@
 function	Locked(fileName,timeOut)
 {
-	var fname=(game_dir+fileName+".lck");
+	var fname=(root+fileName+".lck");
 	if(file_exists(fname))
 	{
 		if(!timeOut) return true;
@@ -19,7 +19,7 @@ function	Locked(fileName,timeOut)
 }
 function	Lock(fileName)
 {
-	var fname=(game_dir+fileName+".lck");
+	var fname=(root+fileName+".lck");
 	var lockfile=new File(fname);
 		lockfile.open('we', false); 
 	if(!lockfile.is_open) 
@@ -34,12 +34,12 @@ function	Lock(fileName)
 function	Unlock(fileName)
 {
 	if(fileName==-1 || !fileName) return;
-	var fname=(game_dir+fileName+".lck");
+	var fname=(root+fileName+".lck");
 	file_remove(fname);
 }
 function	UnlockAll()
 {
-	var lockList=directory(game_dir + "*.lck"); 		
+	var lockList=directory(root + "*.lck"); 		
 	if(lockList.length)
 	{
 		for(lf in lockList)
diff --git a/xtrn/dicewarz/maps.js b/xtrn/dicewarz/maps.js
index 4bb8396c48e9166fbec934c78c7d9fa04f486b87..602f5403709db111cadc787b1ee28e7ed0285667 100644
--- a/xtrn/dicewarz/maps.js
+++ b/xtrn/dicewarz/maps.js
@@ -14,50 +14,48 @@ function	NewGame(minp,maxp,n)
 	
 	this.addPlayer=function(userNumber,vote)
 	{
-		if(userNumber) this.users[userNumber]=this.players.length;
+		if(userNumber) 
+			this.users[userNumber]=this.players.length;
 		this.players.push(new Player(userNumber,vote));
 	}
 	this.tallyVotes=function()
 	{
 		var trueVotes=0;
-		for(v in this.players)
-		{
-			if(this.players[v].user>0 && this.players[v].vote==1) 
-			{
+		for(v in this.players) {
+			if(this.players[v].user>0 && this.players[v].vote==1) {
 				trueVotes++;
 			}
 		}
-		if(trueVotes==this.countHumanPlayers()) 
-		{
+		if(trueVotes==this.countHumanPlayers()) {
 			if(this.countPlayers()>=this.minPlayers) 
-			{	
 				return true;
-			}
 		}
-		else return false;
+		else 
+			return false;
 	}
 	this.countHumanPlayers=function()
 	{
 		var count=0;
-		for(pppp in this.players)
-		{
-			if(this.players[pppp].user>0) count++;
+		for(pppp in this.players) {
+			if(this.players[pppp].user>0) 
+				count++;
 		}
 		return count;
 	}
 	this.countPlayers=function()
 	{
 		var count=0;
-		for(pppp in this.players)
-		{
+		for(pppp in this.players) {
 			count++;
 		}
 		return count;
 	}
 	this.getVote=function(playerNumber)
 	{
-		if(this.players[playerNumber].vote==0) return("wait");
-		else return("start");
+		if(this.players[playerNumber].vote==0) 
+			return("wait");
+		else 
+			return("start");
 	}
 	this.removePlayer=function(playerNumber)
 	{
@@ -104,29 +102,21 @@ function 	Map(c,r,p,gn)
 		nextTurn=this.nextTurn;
 		nextTurnPlayer=this.players[this.turnOrder[nextTurn]].user;
 		
-		if(this.status!=0 && !this.singlePlayer)
-		{
+		if(this.status!=0 && !this.singlePlayer) {
 			if(this.countActiveHumans<2) 
-			{
 				return;
-			}
 			if(nextTurnPlayer>0 && nextTurnPlayer!=user.number) 
-			{
 				deliverMessage(nextTurnPlayer,this.gameNumber);
-			}
-			else
-			{
-				while(1)
-				{
-					if(nextTurn==this.maxPlayers-1) nextTurn=0;
-					else nextTurn++;
+			else {
+				while(1) {
+					if(nextTurn==this.maxPlayers-1) 
+						nextTurn=0;
+					else 
+						nextTurn++;
 					nextTurnPlayer=this.players[this.turnOrder[nextTurn]].user;
 					if(nextTurnPlayer==this.players[this.turnOrder[this.nextTurn]].user) 
-					{
 						break;
-					}
-					else if(nextTurnPlayer>0) 
-					{
+					else if(nextTurnPlayer>0) {
 						deliverMessage(nextTurnPlayer,this.gameNumber);
 						break;
 					}
@@ -143,13 +133,10 @@ function 	Map(c,r,p,gn)
 	{
 		var numEliminated=this.eliminated.length;
 		var humans=this.countActiveHumans();
-		if(numEliminated==(this.maxPlayers-1) || humans==0)
-		{
+		if(numEliminated==(this.maxPlayers-1) || humans==0)	{
 			this.winner=this.lastEliminator;
 			if(this.lastEliminator>0)
-			{	
 				this.assignPoints();
-			}
 			this.status=0;
 			return true;
 		}
@@ -158,18 +145,18 @@ function 	Map(c,r,p,gn)
 	this.countActivePlayers=	function()
 	{
 		var activePlayers=[];
-		for(player in this.players)
-		{
-			if(!this.players[player].eliminated) activePlayers.push(player);
+		for(player in this.players) {
+			if(!this.players[player].eliminated) 
+				activePlayers.push(player);
 		}
 		return activePlayers;
 	}
 	this.countActiveHumans=		function()
 	{
 		count=0;
-		for(ply in this.players)
-		{
-			if(this.players[ply].user>0 && !this.players[ply].eliminated) count++;
+		for(ply in this.players) {
+			if(this.players[ply].user>0 && !this.players[ply].eliminated) 
+				count++;
 		}
 		return count;
 	}
@@ -178,13 +165,9 @@ function 	Map(c,r,p,gn)
 		games.loadRankings();
 		scores[this.winner].wins+=1;
 		if(this.singlePlayer) 
-		{
 			scores[this.winner].score+=settings.winPointsSolo;
-		}
 		else 
-		{
 			scores[this.winner].score+=settings.winPointsMulti;
-		}
 		games.storeRankings();
 	}
 	this.eliminatePlayer=		function(playerNum1,playerNum2)
@@ -197,60 +180,64 @@ function 	Map(c,r,p,gn)
 		this.lastEliminator=killer.user;
 		var updaterankings=false;
 		
-		if(killer.user>0)
-		{
+		if(killer.user>0) {
 			games.loadRankings();
-			if(this.singlePlayer) scores[killer.user].score+=settings.killPointsSolo;
-			else scores[killer.user].score+=settings.killPointsMulti;
+			if(this.singlePlayer) 
+				scores[killer.user].score+=settings.killPointsSolo;
+			else 
+				scores[killer.user].score+=settings.killPointsMulti;
 			scores[killer.user].kills+=1;
 			updaterankings=true;
 		}
-		if(dead.user>0) 
-		{
+		if(dead.user>0) {
 			if(!updaterankings)	{
 				games.loadRankings();
 				updaterankings=true;
 			}
 			scores[dead.user].losses+=1;
-			if(this.singlePlayer)
-			{
+			if(this.singlePlayer) {
 				this.status=0;
 				scores[dead.user].score+=settings.deathPointsSolo;
 			}
-			else
-			{
+			else {
 				var kname= (killer.user<1?this.players[playerNum2].AI.name:system.username(killer.user));
 				deliverKillMessage(kname,dead.user,this.gameNumber);
 				scores[dead.user].score+=settings.deathPointsMulti;
-				if(scores[dead.user].score<settings.minScore) scores[dead.user].score=settings.minScore;
+				if(scores[dead.user].score<settings.minScore) 
+					scores[dead.user].score=settings.minScore;
 			}
 		}
-		if(updaterankings) games.storeRankings();
-		if(this.checkElimination()) games.storeGame(this.gameNumber); 
+		if(updaterankings) 
+			games.storeRankings();
+		if(this.checkElimination()) 
+			games.storeGame(this.gameNumber); 
 	}
 	this.setEliminated=			function()
 	{										//RUNS AT STARTUP, STORING GAME ELIMINATION DATA UPON LOADING EACH GAME
 		this.eliminated=[];
-		for(elp in this.players)
-		{
-			if(this.players[elp].territories.length<=0) 
-			{
+		for(elp in this.players) {
+			if(this.players[elp].territories.length<=0) {
 				this.eliminated.push(elp);
 				this.players[elp].eliminated=true;
 			}
-			else this.lastEliminator=this.players[elp].user;
+			else 
+				this.lastEliminator=this.players[elp].user;
 		}
-		if(this.status==0) this.winner=this.lastEliminator;
+		if(this.status==0) 
+			this.winner=this.lastEliminator;
 	}
 	this.getNextTurn=			function()
 	{
-		if(this.nextTurn==this.maxPlayers-1) this.nextTurn=0;
-		else this.nextTurn++;
+		if(this.nextTurn==this.maxPlayers-1) 
+			this.nextTurn=0;
+		else 
+			this.nextTurn++;
 		nextPlayer=this.turnOrder[this.nextTurn];
-		while(this.players[nextPlayer].eliminated) 
-		{
-			if(this.nextTurn==this.maxPlayers-1) this.nextTurn=0;
-			else this.nextTurn++;
+		while(this.players[nextPlayer].eliminated) {
+			if(this.nextTurn==this.maxPlayers-1) 
+				this.nextTurn=0;
+			else 
+				this.nextTurn++;
 			nextPlayer=this.turnOrder[this.nextTurn];
 		}
 	}
@@ -262,16 +249,12 @@ function 	Map(c,r,p,gn)
 	this.displayGrid=			function()
 	{										//DISPLAYS THE LOCATION DATA FOR EACH COMPANY
 		for(uu in this.used)
-		{
 			this.grid[uu].displayBorder(border_color);
-		}
 	}
 	this.setGrid=				function()
 	{
 		for(uu in this.used)
-		{
 			this.grid[uu].setBorder(this.grid);
-		}
 	}
 	this.redraw=				function()
 	{
@@ -282,10 +265,8 @@ function 	Map(c,r,p,gn)
 	}
 	this.displayGame=			function()
 	{										//DISPLAY EACH PLAYER'S TERRITORIES
-		for(ply in this.players)
-		{
-			for(ter in this.players[ply].territories)
-			{
+		for(ply in this.players) {
+			for(ter in this.players[ply].territories) {
 				territory=this.players[ply].territories[ter];
 				this.grid[territory].show();
 			}
@@ -304,7 +285,8 @@ function 	Map(c,r,p,gn)
 	{
 		numDice=this.findConnected(playerNumber);
 		placed=this.placeDice(playerNumber,numDice);
-		if(this.winner<0) this.checkElimination();
+		if(this.winner<0) 
+			this.checkElimination();
 		this.getNextTurn();
 		if(this.players[playerNumber].user>0)
 			this.notify();
@@ -312,40 +294,38 @@ function 	Map(c,r,p,gn)
 	}
 	this.canAttack=				function(playerNumber,mapLocation)
 	{										//RETURNS TRUE IF PLAYER : playerNumber CAN ATTACK FROM GRID INDEX : mapLocation
-		if(mapLocation>=0)		//IF A LOCATION IS PROVIDED, RETURN AN ARRAY OF NEIGHBORING TERRITORIES THAT CAN BE ATTACKED
-		{
-			if(this.grid[mapLocation].player!=playerNumber) return false;
+		if(mapLocation>=0) {
+			if(this.grid[mapLocation].player!=playerNumber) 
+				return false;
 			options=[];
-			if(this.grid[mapLocation].dice>1)
-			{
+			if(this.grid[mapLocation].dice>1) {
 				dirs=this.loadDirectional(mapLocation);
-				for(dir in dirs)
-				{
+				for(dir in dirs) {
 					current=dirs[dir];
-					if(this.grid[current]) 
-					{
-						if(this.grid[current].player!=playerNumber) options.push(current);
+					if(this.grid[current]) {
+						if(this.grid[current].player!=playerNumber) 
+							options.push(current);
 					}
 				}
 			}
-			if(options.length) return options;
-			else return false;
+			if(options.length) 
+				return options;
+			else 
+				return false;
 		}
 		else				//OTHERWISE, SIMPLY DETERMINE WHETHER THE PLAYER CAN ATTACK AT ALL, AND RETURN TRUE OR FALSE
 		{
-			if(this.players[playerNumber].territories.length==this.players[playerNumber].totalDice) return false;
-			for(terr in this.players[playerNumber].territories)
-			{
+			if(this.players[playerNumber].territories.length==this.players[playerNumber].totalDice) 
+				return false;
+			for(terr in this.players[playerNumber].territories) {
 				currentTerritory=this.players[playerNumber].territories[terr];
-				if(this.grid[currentTerritory].dice>1)
-				{
+				if(this.grid[currentTerritory].dice>1) {
 					dirs=this.loadDirectional(currentTerritory);
-					for(dir in dirs)
-					{
+					for(dir in dirs) {
 						current=dirs[dir];
-						if(this.grid[current]) 
-						{
-							if(this.grid[current].player!=playerNumber) return true;
+						if(this.grid[current]) {
+							if(this.grid[current].player!=playerNumber) 
+								return true;
 						}
 					}
 				}
@@ -373,28 +353,21 @@ function 	Map(c,r,p,gn)
 		var counted=[];
 		var tocheck=[];
 		y=10;
-		for(tttt in terr)
-		{
+		for(tttt in terr) {
 			count=1;
 			tocheck.push(terr[tttt]);
-			while(tocheck.length)
-			{	
+			while(tocheck.length) {	
 				loc=tocheck.shift();
 				current=this.grid[loc];
 				
-				if(!checked[current.location])
-				{
+				if(!checked[current.location]) {
 					dirs=scanProximity(current.location);
-					for(ddd in dirs)
-					{
+					for(ddd in dirs) {
 						dir=dirs[ddd];
-						if(this.grid[dir] && !checked[dir]) 
-						{
-							if(this.grid[dir].player==playerNumber) 
-							{ 
+						if(this.grid[dir] && !checked[dir]) {
+							if(this.grid[dir].player==playerNumber) { 
 								tocheck.push(dir); 
-								if(!counted[dir]) 
-								{ 
+								if(!counted[dir]) { 
 									count++; 
 									counted[dir]=true;
 								}
@@ -404,7 +377,8 @@ function 	Map(c,r,p,gn)
 					checked[current.location]=true;
 				}
 			}
-			if(count>largest_cluster) largest_cluster=count;
+			if(count>largest_cluster) 
+				largest_cluster=count;
 		}
 		return largest_cluster;
 	}
@@ -414,20 +388,17 @@ function 	Map(c,r,p,gn)
 		var xxx=menuColumn;
 		var yyy=menuRow;
 		
-		for(var ply=0;ply<this.maxPlayers;ply++)
-		{
+		for(var ply=0;ply<this.maxPlayers;ply++) {
 			var playerNumber=this.turnOrder[ply];
 			this.countDice(playerNumber);
 			var player=this.players[playerNumber];
 			var name=getUserName(player,playerNumber);
 			
-			if(player.eliminated) 
-			{
+			if(player.eliminated) {
 				player.bColor=blackbg; 
 				player.fColor="\1n\1k\1h"; 
 			}
-			else if(this.status!=0 && this.hiddenNames && name!=user.alias)
-			{
+			else if(this.status!=0 && this.hiddenNames && name!=user.alias)	{
 				name="Player " + (playerNumber+1);
 			}
 			
@@ -442,17 +413,17 @@ function 	Map(c,r,p,gn)
 	}
 	this.ShufflePlayers=		function()
 	{										//Generate TURN ORDER (this.turnOrder[])
-		for(pp=0;pp<this.maxPlayers;pp++)
-		{
+		for(pp=0;pp<this.maxPlayers;pp++) {
 			var rand=random(this.maxPlayers);
-			if(this.turnOrder[rand]>=0) pp--;
-			else this.turnOrder[rand]=pp;
+			if(this.turnOrder[rand]>=0) 
+				pp--;
+			else 
+				this.turnOrder[rand]=pp;
 		}
 	}
 	this.generatePlayers=		function()
 	{
-		for(pl=0;pl<this.maxPlayers;pl++)
-		{
+		for(pl=0;pl<this.maxPlayers;pl++) {
 			userNumber=this.players[pl].user;
 			this.users[userNumber]=pl;
 			this.players[pl].setColors(pl);
@@ -470,33 +441,28 @@ function 	Map(c,r,p,gn)
 		this.used[locationa]=true;
 		unused.splice(randa,1); 
 		
-		for(ms=1;ms<this.mapSize;ms++)
-		{
+		for(ms=1;ms<this.mapSize;ms++) {
 			randb=random(unused.length);
 			locationb=unused[randb];
 			prox=scanProximity(locationb);
-			if(this.landNearby(prox, this.used))
-			{
+			if(this.landNearby(prox, this.used)) {
 	 			this.grid[locationb]=new Territory(locationb);
 				this.used[locationb]=true;
 				unused.splice(randb,1); 
 			}
-			else ms--;
+			else 
+				ms--;
 		}
 		var territories=[];
 		for(mt in this.used)
-		{
 			territories.push(mt);
-		}
-		for(ply in this.players)
-		{
-			for(tt=0;tt < this.playerTerr; tt++)
-			{
+		for(ply in this.players) {
+			for(tt=0;tt < this.playerTerr; tt++) {
 				rand=random(territories.length);
 				location=territories[rand];
-				if(this.grid[location].player>=0) tt--;
-				else 
-				{
+				if(this.grid[location].player>=0) 
+					tt--;
+				else {
 					this.grid[location].assign(ply,this.players[ply]);
 					this.players[ply].territories.push(location);
 				}
@@ -507,13 +473,10 @@ function 	Map(c,r,p,gn)
 	}	
 	this.landNearby=			function(proximity)
 	{										//CHECK IMMEDIATE AREA FOR LAND
-		for(px in proximity)
-		{
+		for(px in proximity) {
 			location=proximity[px];
 			if(this.used[location]) 
-			{
 				return true;
-			}
 		}
 		return false;
 	}
@@ -524,57 +487,47 @@ function 	Map(c,r,p,gn)
 		toPlace=numDice;
 		fulldice=false;
 		placed=[];
-		for(sd=0;sd<numDice;sd++)
-		{
+		for(sd=0;sd<numDice;sd++) {
 			rand=random(this.players[playerNumber].territories.length);
 			terr=this.players[playerNumber].territories[rand];
 
-			if(this.players[playerNumber].totalDice==(this.players[playerNumber].territories.length*this.maxDice)) 	//IF ALL OF THIS PLAYER'S TERRITORIES HAVE THE MAXIMUM
-			{ 									  						//AMOUNT OF DICE  PUSH DICE INTO PLAYER'S RESERVE
+			if(this.players[playerNumber].totalDice==(this.players[playerNumber].territories.length*this.maxDice)) {
 				fulldice=true;
 				reserveCap=(30-this.players[playerNumber].reserve);
-				if(reserveCap>0)
-				{
-					if(reserveCap>=toPlace) this.players[playerNumber].reserve+=toPlace;
-					else this.players[playerNumber].reserve+=reserveCap;
+				if(reserveCap>0) {
+					if(reserveCap>=toPlace) 
+						this.players[playerNumber].reserve+=toPlace;
+					else 
+						this.players[playerNumber].reserve+=reserveCap;
 				}
 				return placed;
 			}
-			else if(this.grid[terr].dice<this.maxDice) 
-			{
+			else if(this.grid[terr].dice<this.maxDice) {
 				this.grid[terr].dice++;
 				placed.push(terr);
 				this.players[playerNumber].totalDice++;
 				toPlace--;
 			}
-			else
-			{
-				if(this.players[playerNumber].territories.length==1) return placed;
+			else {
+				if(this.players[playerNumber].territories.length==1) 
+					return placed;
 				sd--;
 			}
 		}
-		if(this.players[playerNumber].reserve>0)
-		{
-			if(this.players[playerNumber].totalDice==(this.players[playerNumber].territories.length*this.maxDice)) 	//IF ALL OF THIS PLAYER'S TERRITORIES HAVE THE MAXIMUM
-			{ 									  						//AMOUNT OF DICE  PUSH DICE INTO PLAYER'S RESERVE
+		if(this.players[playerNumber].reserve>0) {
+			if(this.players[playerNumber].totalDice==(this.players[playerNumber].territories.length*this.maxDice)) 	
 				fulldice=true;
-			}
-			else
-			{
-				while(this.players[playerNumber].reserve>0)
-				{
+			else {
+				while(this.players[playerNumber].reserve>0)	{
 					rand=random(this.players[playerNumber].territories.length);
 					terr=this.players[playerNumber].territories[rand];
-					if(this.grid[terr].dice<this.maxDice)
-					{
+					if(this.grid[terr].dice<this.maxDice) {
 						this.grid[terr].dice++;
 						placed.push(terr);
 						this.players[playerNumber].totalDice++;
 						this.players[playerNumber].reserve--;
-						if(this.players[playerNumber].totalDice==(this.players[playerNumber].territories.length*this.maxDice)) 	//IF ALL OF THIS PLAYER'S TERRITORIES HAVE THE MAXIMUM
-						{
+						if(this.players[playerNumber].totalDice==(this.players[playerNumber].territories.length*this.maxDice))
 							return placed;
-						}
 					}
 				}
 			}
@@ -584,8 +537,7 @@ function 	Map(c,r,p,gn)
 	this.countDice=				function(playerNumber)
 	{										//COUNT DICE TOTALS FOR EACH PLAYER
 		this.players[playerNumber].totalDice=0;
-		for(td in this.players[playerNumber].territories)
-		{
+		for(td in this.players[playerNumber].territories) {
 			terr=this.players[playerNumber].territories[td];
 			this.players[playerNumber].totalDice+=this.grid[terr].dice;
 		}
@@ -593,9 +545,7 @@ function 	Map(c,r,p,gn)
 	this.countDiceAll=			function()
 	{
 		for(ppp in this.players)
-		{
 			this.countDice(ppp);
-		}
 	}
 	this.init=					function()
 	{										//initIALIZE GAME
diff --git a/xtrn/dicewarz/player.js b/xtrn/dicewarz/player.js
index 33ba415d2e46128dfa25d6df59c0466cde6d3186..5384de5a07e3a441e348c9a0225621326830110d 100644
--- a/xtrn/dicewarz/player.js
+++ b/xtrn/dicewarz/player.js
@@ -20,21 +20,16 @@ function	Player(userNumber, vote)
 	}
 	this.removeTerritory=function(territory)
 	{
-		for(rem in this.territories)
-		{
-			if(this.territories[rem]==territory)
-			{
+		for(rem in this.territories) {
+			if(this.territories[rem]==territory) 
 				this.territories.splice(rem,1);
-			}
 		}
 	}
 	this.countTerritory=function()
 	{
 		var count=0;
-		for(tt in this.territories)
-		{
+		for(tt in this.territories)	
 			count++;
-		}
 		return count;
 	}
 }
diff --git a/xtrn/dicewarz/territory.js b/xtrn/dicewarz/territory.js
index 54b4c2948598af3a704341a2c8190ac067d0b303..c577549c5855d0d54a043fbe817e537f27e3f378 100644
--- a/xtrn/dicewarz/territory.js
+++ b/xtrn/dicewarz/territory.js
@@ -51,9 +51,6 @@ function 	Territory(location)
 	}
 	this.show=				function()
 	{										//DISPLAY THIS TERRITORY ON THE MAP
-//		ALTERNATE MAP POSITION DISPLAY
-//		display=(this.bfColor + ""+ blackbg + this.bColor + this.fColor + " " + this.dice + " " + blackbg + this.bfColor + "");
-
 		display=(this.bfColor + "\xFE"+ blackbg + this.bColor + this.fColor + " " + this.dice + " " + blackbg + this.bfColor + "\xFE");
 		console.gotoxy(this.x-1, this.y);
 		console.putmsg(display);