From c0fbf5e71ee3e0e3dccf3669325305771903aa70 Mon Sep 17 00:00:00 2001
From: MaxED <j.maxed@gmail.com>
Date: Sun, 23 Aug 2015 23:32:12 +0000
Subject: [PATCH] Fixed, MAPINFO parser: map/defaultmap/adddefaultmap
 sub-blocks were not skipped properly. Changed, General interface: all main
 menu toolbars are now visible when starting the editor for the first time.
 Changed, General interface: "Prefabs" and "Edit" menus are now hidden when no
 map is loaded. Changed, General interface: moved "Dynamic Grid Size" menu
 item to the "Edit" menu, also moved the button to the matching position on
 the toolbar. Changed, General interface: changed "Show Comments" menu item
 position in the "View" menu, also moved the button to the matching position
 on the toolbar. Game configurations: removed "gamedetect" block, because it
 was unused by the editor. Updated documentation ("Map Format Settings" page).

---
 Build/Configurations/Boom_Doom2Doom.cfg       |   9 -
 Build/Configurations/Boom_DoomDoom.cfg        |   9 -
 Build/Configurations/Doom_Doom2Doom.cfg       |   9 -
 Build/Configurations/Doom_DoomDoom.cfg        |   9 -
 Build/Configurations/GZDoom_DoomDoom.cfg      |   9 -
 Build/Configurations/GZDoom_DoomHexen.cfg     |   9 -
 Build/Configurations/GZDoom_DoomUDMF.cfg      |   9 -
 Build/Configurations/GZDoom_HereticDoom.cfg   |   9 -
 Build/Configurations/GZDoom_HereticHexen.cfg  |   9 -
 Build/Configurations/GZDoom_HereticUDMF.cfg   |   9 -
 Build/Configurations/GZDoom_HexenHexen.cfg    |   9 -
 Build/Configurations/GZDoom_HexenUDMF.cfg     |   9 -
 Build/Configurations/GZDoom_StrifeDoom.cfg    |   9 -
 Build/Configurations/GZDoom_StrifeHexen.cfg   |   9 -
 Build/Configurations/GZDoom_StrifeUDMF.cfg    |   9 -
 Build/Configurations/Includes/Doom_misc.cfg   |  74 --------
 .../Configurations/Includes/Heretic_misc.cfg  |  30 +---
 Build/Configurations/Includes/Hexen_misc.cfg  |  61 ++-----
 Build/Configurations/Includes/Strife_misc.cfg |  27 +--
 Build/Configurations/Includes/UDMF_misc.cfg   | 155 +----------------
 Build/Configurations/Includes/ZDoom_misc.cfg  |  62 -------
 .../Action Doom/GZDoom_Action2Hexen.cfg       |   9 -
 .../Action Doom/GZDoom_Action2UDMF.cfg        |   9 -
 .../Action Doom/Includes/Action2_misc.cfg     |  27 +--
 .../Action Doom/ZDoom_Action2Hexen.cfg        |   9 -
 .../Action Doom/ZDoom_Action2UDMF.cfg         |   9 -
 .../Action Doom/Zandronum_Action2Hexen.cfg    |   9 -
 .../Action Doom/Zandronum_Action2UDMF.cfg     |   9 -
 .../Chex Quest 3/GZDoom_Chex3Hexen.cfg        |   9 -
 .../Chex Quest 3/GZDoom_Chex3UDMF.cfg         |   9 -
 .../Chex Quest 3/ZDoom_Chex3Hexen.cfg         |   9 -
 .../Chex Quest 3/ZDoom_Chex3UDMF.cfg          |   9 -
 .../Chex Quest 3/Zandronum_Chex3Hexen.cfg     |   9 -
 .../Chex Quest 3/Zandronum_Chex3UDMF.cfg      |   9 -
 .../Chex Quest/GZDoom_ChexDoom.cfg            |   9 -
 .../Chex Quest/GZDoom_ChexHexen.cfg           |   9 -
 .../Chex Quest/GZDoom_ChexUDMF.cfg            |   9 -
 .../Chex Quest/Includes/Chex_misc.cfg         |  52 +-----
 .../Other Games/Chex Quest/ZDoom_ChexDoom.cfg |   9 -
 .../Chex Quest/ZDoom_ChexHexen.cfg            |   9 -
 .../Other Games/Chex Quest/ZDoom_ChexUDMF.cfg |   9 -
 .../Chex Quest/Zandronum_ChexDoom.cfg         |   9 -
 .../Chex Quest/Zandronum_ChexHexen.cfg        |   9 -
 .../Chex Quest/Zandronum_ChexUDMF.cfg         |   9 -
 .../Harmony/GZDoom_HarmonyDoom.cfg            |   9 -
 .../Harmony/GZDoom_HarmonyHexen.cfg           |   9 -
 .../Harmony/GZDoom_HarmonyUDMF.cfg            |   9 -
 .../Harmony/Includes/Harmony_misc.cfg         |  27 +--
 .../Other Games/Harmony/ZDoom_HarmonyDoom.cfg |   9 -
 .../Harmony/ZDoom_HarmonyHexen.cfg            |   9 -
 .../Other Games/Harmony/ZDoom_HarmonyUDMF.cfg |   9 -
 .../Harmony/Zandronum_HarmonyDoom.cfg         |   9 -
 .../Harmony/Zandronum_HarmonyHexen.cfg        |   9 -
 .../Harmony/Zandronum_HarmonyUDMF.cfg         |   9 -
 Build/Configurations/ZDoomFamily_template.txt |  52 +++---
 Build/Configurations/ZDoom_DoomDoom.cfg       |   9 -
 Build/Configurations/ZDoom_DoomHexen.cfg      |   9 -
 Build/Configurations/ZDoom_DoomUDMF.cfg       |   9 -
 Build/Configurations/ZDoom_HereticDoom.cfg    |   9 -
 Build/Configurations/ZDoom_HereticHexen.cfg   |   9 -
 Build/Configurations/ZDoom_HereticUDMF.cfg    |   9 -
 Build/Configurations/ZDoom_HexenHexen.cfg     |   9 -
 Build/Configurations/ZDoom_HexenUDMF.cfg      |   9 -
 Build/Configurations/ZDoom_StrifeDoom.cfg     |   9 -
 Build/Configurations/ZDoom_StrifeHexen.cfg    |   9 -
 Build/Configurations/ZDoom_StrifeUDMF.cfg     |   9 -
 Build/Configurations/Zandronum_DoomDoom.cfg   |   9 -
 Build/Configurations/Zandronum_DoomHexen.cfg  |   9 -
 Build/Configurations/Zandronum_DoomUDMF.cfg   |   9 -
 .../Configurations/Zandronum_HereticDoom.cfg  |   9 -
 .../Configurations/Zandronum_HereticHexen.cfg |   9 -
 .../Configurations/Zandronum_HereticUDMF.cfg  |   9 -
 Build/Configurations/Zandronum_HexenHexen.cfg |   9 -
 Build/Configurations/Zandronum_HexenUDMF.cfg  |   9 -
 Build/Configurations/Zandronum_StrifeDoom.cfg |   9 -
 .../Configurations/Zandronum_StrifeHexen.cfg  |   9 -
 Build/Configurations/Zandronum_StrifeUDMF.cfg |   9 -
 Help/gc_formatsettings.html                   |  38 +----
 Source/Core/Config/ProgramConfiguration.cs    |   6 +-
 Source/Core/GZBuilder/GZDoom/MapinfoParser.cs |  19 +++
 Source/Core/Windows/MainForm.Designer.cs      | 159 ++++++++++--------
 Source/Core/Windows/MainForm.cs               |  52 ++----
 82 files changed, 181 insertions(+), 1263 deletions(-)

diff --git a/Build/Configurations/Boom_Doom2Doom.cfg b/Build/Configurations/Boom_Doom2Doom.cfg
index 82e282a7d..dcb8f3c9c 100644
--- a/Build/Configurations/Boom_Doom2Doom.cfg
+++ b/Build/Configurations/Boom_Doom2Doom.cfg
@@ -39,15 +39,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_mapxx");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Boom_DoomDoom.cfg b/Build/Configurations/Boom_DoomDoom.cfg
index 0d5be2f76..90bd321bb 100644
--- a/Build/Configurations/Boom_DoomDoom.cfg
+++ b/Build/Configurations/Boom_DoomDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_exmx");
-}
-
 //Default map name
 defaultlumpname = "E1M1";
 
diff --git a/Build/Configurations/Doom_Doom2Doom.cfg b/Build/Configurations/Doom_Doom2Doom.cfg
index cbcfab3ad..88d8cc5e8 100644
--- a/Build/Configurations/Doom_Doom2Doom.cfg
+++ b/Build/Configurations/Doom_Doom2Doom.cfg
@@ -39,15 +39,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_mapxx");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Doom_DoomDoom.cfg b/Build/Configurations/Doom_DoomDoom.cfg
index 92d176339..cbd336115 100644
--- a/Build/Configurations/Doom_DoomDoom.cfg
+++ b/Build/Configurations/Doom_DoomDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_exmx");
-}
-
 //Default map name
 defaultlumpname = "E1M1";
 
diff --git a/Build/Configurations/GZDoom_DoomDoom.cfg b/Build/Configurations/GZDoom_DoomDoom.cfg
index 031afffd3..fe53d159f 100644
--- a/Build/Configurations/GZDoom_DoomDoom.cfg
+++ b/Build/Configurations/GZDoom_DoomDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_DoomHexen.cfg b/Build/Configurations/GZDoom_DoomHexen.cfg
index 35eeac80f..c37e11c14 100644
--- a/Build/Configurations/GZDoom_DoomHexen.cfg
+++ b/Build/Configurations/GZDoom_DoomHexen.cfg
@@ -39,15 +39,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_DoomUDMF.cfg b/Build/Configurations/GZDoom_DoomUDMF.cfg
index f4fc32634..1953e0f4a 100644
--- a/Build/Configurations/GZDoom_DoomUDMF.cfg
+++ b/Build/Configurations/GZDoom_DoomUDMF.cfg
@@ -39,15 +39,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_HereticDoom.cfg b/Build/Configurations/GZDoom_HereticDoom.cfg
index 5449ccc1f..55be9d6ca 100644
--- a/Build/Configurations/GZDoom_HereticDoom.cfg
+++ b/Build/Configurations/GZDoom_HereticDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_HereticHexen.cfg b/Build/Configurations/GZDoom_HereticHexen.cfg
index 70f7cccae..cbeb76a5a 100644
--- a/Build/Configurations/GZDoom_HereticHexen.cfg
+++ b/Build/Configurations/GZDoom_HereticHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_HereticUDMF.cfg b/Build/Configurations/GZDoom_HereticUDMF.cfg
index fd9b6f452..75fd34a5a 100644
--- a/Build/Configurations/GZDoom_HereticUDMF.cfg
+++ b/Build/Configurations/GZDoom_HereticUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_HexenHexen.cfg b/Build/Configurations/GZDoom_HexenHexen.cfg
index c9c76d981..df562f5b8 100644
--- a/Build/Configurations/GZDoom_HexenHexen.cfg
+++ b/Build/Configurations/GZDoom_HexenHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Hexen_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_HexenUDMF.cfg b/Build/Configurations/GZDoom_HexenUDMF.cfg
index 3a0056d24..1a58d5236 100644
--- a/Build/Configurations/GZDoom_HexenUDMF.cfg
+++ b/Build/Configurations/GZDoom_HexenUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_StrifeDoom.cfg b/Build/Configurations/GZDoom_StrifeDoom.cfg
index 9b6d311b3..9965ae7a2 100644
--- a/Build/Configurations/GZDoom_StrifeDoom.cfg
+++ b/Build/Configurations/GZDoom_StrifeDoom.cfg
@@ -37,15 +37,6 @@ thingsfilters
 	include("Includes\\Strife_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_StrifeHexen.cfg b/Build/Configurations/GZDoom_StrifeHexen.cfg
index 41d47b719..544748b07 100644
--- a/Build/Configurations/GZDoom_StrifeHexen.cfg
+++ b/Build/Configurations/GZDoom_StrifeHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Strife_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_StrifeUDMF.cfg b/Build/Configurations/GZDoom_StrifeUDMF.cfg
index 10732166c..073b6d6da 100644
--- a/Build/Configurations/GZDoom_StrifeUDMF.cfg
+++ b/Build/Configurations/GZDoom_StrifeUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Includes/Doom_misc.cfg b/Build/Configurations/Includes/Doom_misc.cfg
index 844a4a482..c614f792c 100644
--- a/Build/Configurations/Includes/Doom_misc.cfg
+++ b/Build/Configurations/Includes/Doom_misc.cfg
@@ -508,78 +508,4 @@ enums
 		0 = "Add";
 		1 = "Set";
 	}
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect_format
-{
-	TEXTMAP = 2;
-	THINGS = 3;
-	LINEDEFS = 3;
-	SIDEDEFS = 3;
-	VERTEXES = 3;
-	SEGS = 3;
-	SSECTORS = 3;
-	NODES = 3;
-	SECTORS = 3;
-	REJECT = 3;
-	BLOCKMAP = 3;
-	ENDMAP = 2;
-	BEHAVIOR = 2;
-}
-
-gamedetect_exmx
-{
-	EXTENDED = 2;
-	E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 1; E1M7 = 1; E1M8 = 1; E1M9 = 1;
-	E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 1; E2M7 = 1; E2M8 = 1; E2M9 = 1;
-	E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 1; E3M7 = 1; E3M8 = 1; E3M9 = 1;
-	E4M1 = 1; E4M2 = 1; E4M3 = 1; E4M4 = 1; E4M5 = 1; E4M6 = 1; E4M7 = 1; E4M8 = 1; E4M9 = 1;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 2; MAP02 = 2; MAP03 = 2; MAP04 = 2; MAP05 = 2; MAP06 = 2; MAP07 = 2; MAP08 = 2; MAP09 = 2; MAP10 = 2;
-	MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2;
-	MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2;
-	MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
-
-gamedetect_mapxx
-{
-	EXTENDED = 2;
-    E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2;
-	E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2;
-	E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2;
-	E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1;
-	MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1;
-	MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1;
-	MAP31 = 1; MAP32 = 1; MAP33 = 1; MAP34 = 1; MAP35 = 1; MAP36 = 1; MAP37 = 1; MAP38 = 1; MAP39 = 1; MAP40 = 1;
-	MAP41 = 1;
-}
-
-gamedetect_either
-{
-	EXTENDED = 2;
-	E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 1; E1M7 = 1; E1M8 = 1; E1M9 = 1;
-	E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 1; E2M7 = 1; E2M8 = 1; E2M9 = 1;
-	E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 1; E3M7 = 1; E3M8 = 1; E3M9 = 1;
-	E4M1 = 1; E4M2 = 1; E4M3 = 1; E4M4 = 1; E4M5 = 1; E4M6 = 1; E4M7 = 1; E4M8 = 1; E4M9 = 1;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1;
-	MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1;
-	MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1;
-	MAP31 = 1; MAP32 = 1; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
 }
\ No newline at end of file
diff --git a/Build/Configurations/Includes/Heretic_misc.cfg b/Build/Configurations/Includes/Heretic_misc.cfg
index f97574246..0a687afee 100644
--- a/Build/Configurations/Includes/Heretic_misc.cfg
+++ b/Build/Configurations/Includes/Heretic_misc.cfg
@@ -1,7 +1,4 @@
-
 // Basic Heretic stuff.
-
-
 skills
 {
 	1 = "Thou needeth a wet-nurse";
@@ -9,29 +6,4 @@ skills
 	3 = "Bringest them oneth";
 	4 = "Thou art a smite-meister";
 	5 = "Black plague possesses thee";
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect
-{
-	EXTENDED = 3;
-	E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 1; E1M7 = 1; E1M8 = 1; E1M9 = 1;
-	E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 1; E2M7 = 1; E2M8 = 1; E2M9 = 1;
-	E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 1; E3M7 = 1; E3M8 = 1; E3M9 = 1;
-	E4M1 = 1; E4M2 = 1; E4M3 = 1; E4M4 = 1; E4M5 = 1; E4M6 = 1; E4M7 = 1; E4M8 = 1; E4M9 = 1;
-	E5M1 = 1; E5M2 = 1; E5M3 = 1; E5M4 = 1; E5M5 = 1; E5M6 = 1; E5M7 = 1; E5M8 = 1; E5M9 = 1;
-	E6M1 = 1; E6M2 = 1; E6M3 = 1;
-	MAP01 = 2; MAP02 = 2; MAP03 = 2; MAP04 = 2; MAP05 = 2; MAP06 = 2; MAP07 = 2; MAP08 = 2; MAP09 = 2; MAP10 = 2;
-	MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2;
-	MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2;
-	MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
+}
\ No newline at end of file
diff --git a/Build/Configurations/Includes/Hexen_misc.cfg b/Build/Configurations/Includes/Hexen_misc.cfg
index a72cdf5cc..a64d7de70 100644
--- a/Build/Configurations/Includes/Hexen_misc.cfg
+++ b/Build/Configurations/Includes/Hexen_misc.cfg
@@ -46,26 +46,32 @@ defaultthingflags
 // How thing flags should be compared (for the stuck thing error check)
 thingflagscompare
 {
-	skills {
+	skills
+	{
 		1;
 		2;
 		4;
 	}
 
-	classes {
+	classes
+	{
 		32;
 		64;
 		128;
 	}
 
-	gamemodes {
-		256 {
+	gamemodes
+	{
+		256
+		{
 			requiredgroup = "skills";
 		}
-		512 {
+		512
+		{
 			requiredgroup = "skills";
 		}
-		1024 {
+		1024
+		{
 			ignoredgroup = "skills";
 		}
 	}
@@ -218,45 +224,4 @@ enums
 	{
 		0 = "None";
 	}
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-gamedetect_format
-{
-	TEXTMAP = 2;
-	THINGS = 3;
-	LINEDEFS = 3;
-	SIDEDEFS = 3;
-	VERTEXES = 3;
-	SEGS = 3;
-	SSECTORS = 3;
-	NODES = 3;
-	SECTORS = 3;
-	REJECT = 3;
-	BLOCKMAP = 3;
-	ENDMAP = 2;
-	BEHAVIOR = 3;
-}
-
-gamedetect
-{
-	EXTENDED = 2;
-	E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2;
-	E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2;
-	E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2;
-	E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1;
-	MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1;
-	MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1;
-	MAP31 = 1; MAP32 = 1; MAP33 = 1; MAP34 = 1; MAP35 = 1; MAP36 = 1; MAP37 = 1; MAP38 = 1; MAP39 = 1; MAP40 = 1;
-	MAP41 = 1;
-}
+}
\ No newline at end of file
diff --git a/Build/Configurations/Includes/Strife_misc.cfg b/Build/Configurations/Includes/Strife_misc.cfg
index 57e7f17f5..669ef78fc 100644
--- a/Build/Configurations/Includes/Strife_misc.cfg
+++ b/Build/Configurations/Includes/Strife_misc.cfg
@@ -144,29 +144,4 @@ thingsfilters
 		
 	}
 	
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect
-{
-	EXTENDED = 2;
-	E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2;
-	E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2;
-	E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2;
-	E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1;
-	MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1;
-	MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1;
-	MAP31 = 1; MAP32 = 1; MAP33 = 1; MAP34 = 1; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
+}
\ No newline at end of file
diff --git a/Build/Configurations/Includes/UDMF_misc.cfg b/Build/Configurations/Includes/UDMF_misc.cfg
index 781eaadc7..fe8d3ae8c 100644
--- a/Build/Configurations/Includes/UDMF_misc.cfg
+++ b/Build/Configurations/Includes/UDMF_misc.cfg
@@ -197,157 +197,4 @@ udmfmaplumpnames_end
 		nodebuild = false;
 		allowempty = true;
 	}
-}
-
-
-// Default thing filters
-// (these are not required, just useful for new users)
-/*thingsfilters
-{
-	
-	filter0
-	{
-		name = "Keys only";
-		category = "keys";
-		type = -1;
-	}
-	
-	
-	filter2
-	{
-		name = "Skill 1";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill1 = true;
-		}
-		
-	}
-	
-	
-	filter3
-	{
-		name = "Skill 2";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill2 = true;
-		}
-		
-	}
-	
-	
-	filter4
-	{
-		name = "Skill 3";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill3 = true;
-		}
-		
-	}
-	
-	
-	filter5
-	{
-		name = "Skill 4";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill4 = true;
-		}
-		
-	}
-	
-	
-	filter6
-	{
-		name = "Skill 5";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill5 = true;
-		}
-		
-	}
-	
-	
-	filter7
-	{
-		name = "Skill 6";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill6 = true;
-		}
-		
-	}
-	
-	
-	filter8
-	{
-		name = "Skill 7";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill7 = true;
-		}
-		
-	}
-	
-	
-	filter9
-	{
-		name = "Skill 8";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill8 = true;
-		}
-		
-	}
-	
-} */
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect_format
-{
-	THINGS = 2;
-	LINEDEFS = 2;
-	SIDEDEFS = 2;
-	VERTEXES = 2;
-	//SEGS = 2;
-	//SSECTORS = 2;
-	//NODES = 2;
-	SECTORS = 2;
-	//REJECT = 2;
-	TEXTMAP = 3;
-	ENDMAP = 3;
-	//BEHAVIOR = 2;
-}
-
+}
\ No newline at end of file
diff --git a/Build/Configurations/Includes/ZDoom_misc.cfg b/Build/Configurations/Includes/ZDoom_misc.cfg
index 9d329e547..f478bc126 100644
--- a/Build/Configurations/Includes/ZDoom_misc.cfg
+++ b/Build/Configurations/Includes/ZDoom_misc.cfg
@@ -1876,68 +1876,6 @@ thingsfilters_udmf
 	
 }
 
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-// ZDoom is less strict than vanilla and allows certain lumps to be missing.
-gamedetect_doom
-{
-	TEXTMAP = 2;
-	THINGS = 3;
-	LINEDEFS = 3;
-	SIDEDEFS = 3;
-	VERTEXES = 3;
-	//SEGS = 3;
-	SSECTORS = 3;
-	//NODES = 3;
-	//SECTORS = 3;
-	//REJECT = 3;
-	//BLOCKMAP = 3;
-	ENDMAP = 2;
-	BEHAVIOR = 2;
-}
-
-gamedetect_hexen
-{
-	TEXTMAP = 2;
-	THINGS = 3;
-	LINEDEFS = 3;
-	SIDEDEFS = 3;
-	VERTEXES = 3;
-	//SEGS = 3;
-	SSECTORS = 3;
-	//NODES = 3;
-	//SECTORS = 3;
-	//REJECT = 3;
-	//BLOCKMAP = 3;
-	ENDMAP = 2;
-	BEHAVIOR = 3;
-}
-
-gamedetect_udmf
-{
-	TEXTMAP = 3;
-	THINGS = 2;
-	LINEDEFS = 2;
-	SIDEDEFS = 2;
-	VERTEXES = 2;
-	//SEGS = 2;
-	//SSECTORS = 2;
-	//NODES = 2;
-	SECTORS = 2;
-	//REJECT = 2;
-	//BLOCKMAP = 2;
-	ENDMAP = 3;
-	//BEHAVIOR = 2;
-}
-
-
 // Special linedefs
 speciallinedefs_doomhexen
 {
diff --git a/Build/Configurations/Other Games/Action Doom/GZDoom_Action2Hexen.cfg b/Build/Configurations/Other Games/Action Doom/GZDoom_Action2Hexen.cfg
index ae43081ea..0ef5bb76a 100644
--- a/Build/Configurations/Other Games/Action Doom/GZDoom_Action2Hexen.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/GZDoom_Action2Hexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Action2_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Action Doom/GZDoom_Action2UDMF.cfg b/Build/Configurations/Other Games/Action Doom/GZDoom_Action2UDMF.cfg
index edfa2f369..d756a505c 100644
--- a/Build/Configurations/Other Games/Action Doom/GZDoom_Action2UDMF.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/GZDoom_Action2UDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Action2_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Action Doom/Includes/Action2_misc.cfg b/Build/Configurations/Other Games/Action Doom/Includes/Action2_misc.cfg
index 51314fc60..065bd3497 100644
--- a/Build/Configurations/Other Games/Action Doom/Includes/Action2_misc.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/Includes/Action2_misc.cfg	
@@ -10,29 +10,4 @@ skills
 	2 = "Petty Thug";
 	3 = "Hot Shit";
 	4 = "Badass Mother Fucker";
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect
-{
-	EXTENDED = 2;
-    E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2;
-	E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2;
-	E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2;
-	E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1;
-	MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2;
-	MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2;
-	MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
+}
\ No newline at end of file
diff --git a/Build/Configurations/Other Games/Action Doom/ZDoom_Action2Hexen.cfg b/Build/Configurations/Other Games/Action Doom/ZDoom_Action2Hexen.cfg
index f61340216..0a06d973f 100644
--- a/Build/Configurations/Other Games/Action Doom/ZDoom_Action2Hexen.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/ZDoom_Action2Hexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Action2_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Action Doom/ZDoom_Action2UDMF.cfg b/Build/Configurations/Other Games/Action Doom/ZDoom_Action2UDMF.cfg
index a8caa6027..09779b65d 100644
--- a/Build/Configurations/Other Games/Action Doom/ZDoom_Action2UDMF.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/ZDoom_Action2UDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Action2_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Action Doom/Zandronum_Action2Hexen.cfg b/Build/Configurations/Other Games/Action Doom/Zandronum_Action2Hexen.cfg
index 041a64a16..1e9d6a8cf 100644
--- a/Build/Configurations/Other Games/Action Doom/Zandronum_Action2Hexen.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/Zandronum_Action2Hexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Action2_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Action Doom/Zandronum_Action2UDMF.cfg b/Build/Configurations/Other Games/Action Doom/Zandronum_Action2UDMF.cfg
index a9554728b..bf1415cbf 100644
--- a/Build/Configurations/Other Games/Action Doom/Zandronum_Action2UDMF.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/Zandronum_Action2UDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Action2_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3Hexen.cfg b/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3Hexen.cfg
index f4a207820..40c869a99 100644
--- a/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3Hexen.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3Hexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3UDMF.cfg b/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3UDMF.cfg
index 49544614e..5ae1a53d0 100644
--- a/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3UDMF.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3UDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3Hexen.cfg b/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3Hexen.cfg
index b8d679685..c523e36a7 100644
--- a/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3Hexen.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3Hexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3UDMF.cfg b/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3UDMF.cfg
index 43e375450..4417a9718 100644
--- a/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3UDMF.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3UDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3Hexen.cfg b/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3Hexen.cfg
index de9d4e821..db9ea61d2 100644
--- a/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3Hexen.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3Hexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3UDMF.cfg b/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3UDMF.cfg
index ecbdca7ab..9222c2709 100644
--- a/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3UDMF.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3UDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexDoom.cfg b/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexDoom.cfg
index fc4f9a248..f16e9d119 100644
--- a/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexDoom.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexDoom.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexHexen.cfg b/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexHexen.cfg
index c6ca12534..dade6dc2a 100644
--- a/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexHexen.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexHexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexUDMF.cfg b/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexUDMF.cfg
index 2b944fec1..3abf2e847 100644
--- a/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexUDMF.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexUDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/Includes/Chex_misc.cfg b/Build/Configurations/Other Games/Chex Quest/Includes/Chex_misc.cfg
index b4776d6b3..0b286c083 100644
--- a/Build/Configurations/Other Games/Chex Quest/Includes/Chex_misc.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/Includes/Chex_misc.cfg	
@@ -11,54 +11,4 @@ skills
 	3 = "Gobs of goo";
 	4 = "Extreme ooze";
 	5 = "Super slimey!";
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect_chex1
-{
-	EXTENDED = 2;
-	E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 1; E1M7 = 1; E1M8 = 1; E1M9 = 1;
-	E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 1; E2M7 = 1; E2M8 = 1; E2M9 = 1;
-	E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 1; E3M7 = 1; E3M8 = 1; E3M9 = 1;
-	E4M1 = 1; E4M2 = 1; E4M3 = 1; E4M4 = 1; E4M5 = 1; E4M6 = 1; E4M7 = 1; E4M8 = 1; E4M9 = 1;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 2; MAP02 = 2; MAP03 = 2; MAP04 = 2; MAP05 = 2; MAP06 = 2; MAP07 = 2; MAP08 = 2; MAP09 = 2; MAP10 = 2;
-	MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2;
-	MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2;
-	MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect_chex3
-{
-	EXTENDED = 2;
-	E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2;
-	E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2;
-	E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2;
-	E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 2; MAP02 = 2; MAP03 = 2; MAP04 = 2; MAP05 = 2; MAP06 = 2; MAP07 = 2; MAP08 = 2; MAP09 = 2; MAP10 = 2;
-	MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2;
-	MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2;
-	MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
+}
\ No newline at end of file
diff --git a/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexDoom.cfg b/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexDoom.cfg
index 21ab1b695..218364ce4 100644
--- a/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexDoom.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexDoom.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexHexen.cfg b/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexHexen.cfg
index 6aba6c1a6..464c95313 100644
--- a/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexHexen.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexHexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexUDMF.cfg b/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexUDMF.cfg
index 34dc9c554..ad33e59fd 100644
--- a/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexUDMF.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexUDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexDoom.cfg b/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexDoom.cfg
index b6f8f61dd..401a90f2f 100644
--- a/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexDoom.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexDoom.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexHexen.cfg b/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexHexen.cfg
index 0af20442f..ddce4f9f5 100644
--- a/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexHexen.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexHexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexUDMF.cfg b/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexUDMF.cfg
index a67b5b47c..3866422a6 100644
--- a/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexUDMF.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexUDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyDoom.cfg b/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyDoom.cfg
index c316fef97..d16e7cd65 100644
--- a/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyDoom.cfg	
+++ b/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyDoom.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyHexen.cfg b/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyHexen.cfg
index 15654be18..7beb6619c 100644
--- a/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyHexen.cfg	
+++ b/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyHexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyUDMF.cfg b/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyUDMF.cfg
index 57628d4c6..ba28bb183 100644
--- a/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyUDMF.cfg	
+++ b/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyUDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/Includes/Harmony_misc.cfg b/Build/Configurations/Other Games/Harmony/Includes/Harmony_misc.cfg
index 3f717058a..c0a563f60 100644
--- a/Build/Configurations/Other Games/Harmony/Includes/Harmony_misc.cfg	
+++ b/Build/Configurations/Other Games/Harmony/Includes/Harmony_misc.cfg	
@@ -11,29 +11,4 @@ skills
 	3 = "Medium";
 	4 = "Hard";
 	5 = "Very hard";
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect
-{
-	EXTENDED = 2;
-    E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2;
-	E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2;
-	E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2;
-	E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1;
-	MAP11 = 1; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2;
-	MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2;
-	MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
+}
\ No newline at end of file
diff --git a/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyDoom.cfg b/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyDoom.cfg
index 74bcc9373..48498425d 100644
--- a/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyDoom.cfg	
+++ b/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyDoom.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyHexen.cfg b/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyHexen.cfg
index c8dcdf7f9..1ac587048 100644
--- a/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyHexen.cfg	
+++ b/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyHexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyUDMF.cfg b/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyUDMF.cfg
index f156d583b..aaa47e861 100644
--- a/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyUDMF.cfg	
+++ b/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyUDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyDoom.cfg b/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyDoom.cfg
index 99a0c495b..fee21171c 100644
--- a/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyDoom.cfg	
+++ b/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyDoom.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyHexen.cfg b/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyHexen.cfg
index 3abd60e9a..bc471e69b 100644
--- a/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyHexen.cfg	
+++ b/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyHexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyUDMF.cfg b/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyUDMF.cfg
index 2f424ac96..9e8420698 100644
--- a/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyUDMF.cfg	
+++ b/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyUDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoomFamily_template.txt b/Build/Configurations/ZDoomFamily_template.txt
index aaed596ad..5fdbd61c7 100644
--- a/Build/Configurations/ZDoomFamily_template.txt
+++ b/Build/Configurations/ZDoomFamily_template.txt
@@ -11,6 +11,9 @@ game = "ZDoom: Game (map format)";
 // This is the simplified game engine/sourceport name
 engine = "zdoom";
 
+// Should this configuration be initially available?
+enabledbydefault = true;
+
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
@@ -23,8 +26,17 @@ engine = "zdoom";
 // Settings common to all games and all map formats
 include("Includes\\ZDoom_common.cfg", "common");
 
-!!!!!!!!!! MAP FORMAT STUFF !!!!!!!!!!
-!Keep only the one that's appropriate!
+// Default thing filters
+// (these are not required, just useful for new users)
+thingsfilters
+{
+	// Keep only the one that's appropriate!
+	include("Includes\\Doom_misc.cfg", "thingsfilters"); // Thing filters for Doom/Hexen map formats
+	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf"); // Thing filters for UDMF map format
+}
+
+// ---------------- MAP FORMAT STUFF ----------------
+// Keep only the one that's appropriate!
 // Settings common to Doom map format
 include("Includes\\ZDoom_common.cfg", "mapformat_doom");
 
@@ -33,10 +45,12 @@ include("Includes\\ZDoom_common.cfg", "mapformat_hexen");
 
 // Settings common to text map format
 include("Includes\\ZDoom_common.cfg", "mapformat_udmf");
-!!!!!!!!!! MAP FORMAT STUFF !!!!!!!!!!
+// ---------------- MAP FORMAT STUFF ----------------
+
 
-!!!!!!!!!!!!! GAME STUFF !!!!!!!!!!!!!
-!Keep only the one that's appropriate!
+
+// ---------------- GAME STUFF ----------------
+//Keep only the one that's appropriate!
 // Settings common to Doom games
 include("Includes\\Game_Doom.cfg");
 
@@ -60,27 +74,9 @@ include("Includes\\Game_Harmony.cfg");
 
 // Settings common to Action Doom 2 games
 include("Includes\\Game_Action2.cfg");
-!!!!!!!!!!!!! GAME STUFF !!!!!!!!!!!!!
+// ---------------- GAME STUFF ----------------
+
 
-!!!!Keep only one of each category!!!!
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_exmx");
-	include("Includes\\Doom_misc.cfg", "gamedetect_mapxx");
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
 
 // THING TYPES
 // Each engine has its own additional thing types
@@ -96,14 +92,17 @@ thingtypes
 	include("Includes\\Chex_things.cfg");
 	include("Includes\\Chex3_things.cfg");
 	include("Includes\\Harmony_things.cfg");
+	
 	// Additional ZDoom actors for that game
 	include("Includes\\ZDoom_things.cfg", "doom");
 	include("Includes\\ZDoom_things.cfg", "heretic");
 	include("Includes\\ZDoom_things.cfg", "hexen");
 	include("Includes\\ZDoom_things.cfg", "strife");
 	include("Includes\\ZDoom_things.cfg", "default");
+	
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
+	
 	// Additional actors from the engine
 	include("Includes\\GZDoom_things.cfg", "gzdoom");
 	include("Includes\\Zandronum_things.cfg", "doom");
@@ -120,8 +119,10 @@ enums
 {
 	// Basic game enums
 	include("Includes\\Doom_misc.cfg", "enums");
+	
 	// Standard ZDoom enums
 	include("Includes\\ZDoom_misc.cfg", "enums");
+	
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_doom");
 	include("Includes\\ZDoom_misc.cfg", "enums_heretic");
@@ -130,6 +131,7 @@ enums
 	include("Includes\\ZDoom_misc.cfg", "enums_chex");
 	include("Includes\\ZDoom_misc.cfg", "enums_chex3");
 	include("Includes\\ZDoom_misc.cfg", "enums_harmony");
+	
 	// Additional enums from the engine
 	include("Includes\\Zandronum_misc.cfg", "enums_doom");
 	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
diff --git a/Build/Configurations/ZDoom_DoomDoom.cfg b/Build/Configurations/ZDoom_DoomDoom.cfg
index 3322131a9..4f037ac30 100644
--- a/Build/Configurations/ZDoom_DoomDoom.cfg
+++ b/Build/Configurations/ZDoom_DoomDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_DoomHexen.cfg b/Build/Configurations/ZDoom_DoomHexen.cfg
index 5a52850e7..e2dc20ccc 100644
--- a/Build/Configurations/ZDoom_DoomHexen.cfg
+++ b/Build/Configurations/ZDoom_DoomHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_DoomUDMF.cfg b/Build/Configurations/ZDoom_DoomUDMF.cfg
index 404b35f40..0118aa81d 100644
--- a/Build/Configurations/ZDoom_DoomUDMF.cfg
+++ b/Build/Configurations/ZDoom_DoomUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_HereticDoom.cfg b/Build/Configurations/ZDoom_HereticDoom.cfg
index b47de6c7d..84d12b065 100644
--- a/Build/Configurations/ZDoom_HereticDoom.cfg
+++ b/Build/Configurations/ZDoom_HereticDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_HereticHexen.cfg b/Build/Configurations/ZDoom_HereticHexen.cfg
index a3052bf38..ac931400e 100644
--- a/Build/Configurations/ZDoom_HereticHexen.cfg
+++ b/Build/Configurations/ZDoom_HereticHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_HereticUDMF.cfg b/Build/Configurations/ZDoom_HereticUDMF.cfg
index b9976c52e..53113db98 100644
--- a/Build/Configurations/ZDoom_HereticUDMF.cfg
+++ b/Build/Configurations/ZDoom_HereticUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_HexenHexen.cfg b/Build/Configurations/ZDoom_HexenHexen.cfg
index 2fbc05756..baaf351e3 100644
--- a/Build/Configurations/ZDoom_HexenHexen.cfg
+++ b/Build/Configurations/ZDoom_HexenHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Hexen_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_HexenUDMF.cfg b/Build/Configurations/ZDoom_HexenUDMF.cfg
index 8c23babf8..3430d0e1d 100644
--- a/Build/Configurations/ZDoom_HexenUDMF.cfg
+++ b/Build/Configurations/ZDoom_HexenUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_StrifeDoom.cfg b/Build/Configurations/ZDoom_StrifeDoom.cfg
index 6c66ebb48..324bdd9ca 100644
--- a/Build/Configurations/ZDoom_StrifeDoom.cfg
+++ b/Build/Configurations/ZDoom_StrifeDoom.cfg
@@ -37,15 +37,6 @@ thingsfilters
 	include("Includes\\Strife_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_StrifeHexen.cfg b/Build/Configurations/ZDoom_StrifeHexen.cfg
index ab3e3a8fa..0bccfbaef 100644
--- a/Build/Configurations/ZDoom_StrifeHexen.cfg
+++ b/Build/Configurations/ZDoom_StrifeHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Strife_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_StrifeUDMF.cfg b/Build/Configurations/ZDoom_StrifeUDMF.cfg
index 60243ec9a..5177172af 100644
--- a/Build/Configurations/ZDoom_StrifeUDMF.cfg
+++ b/Build/Configurations/ZDoom_StrifeUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_DoomDoom.cfg b/Build/Configurations/Zandronum_DoomDoom.cfg
index 1a3aac1e4..096d12f0b 100644
--- a/Build/Configurations/Zandronum_DoomDoom.cfg
+++ b/Build/Configurations/Zandronum_DoomDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_DoomHexen.cfg b/Build/Configurations/Zandronum_DoomHexen.cfg
index 28cb87564..ed35c4558 100644
--- a/Build/Configurations/Zandronum_DoomHexen.cfg
+++ b/Build/Configurations/Zandronum_DoomHexen.cfg
@@ -40,15 +40,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_DoomUDMF.cfg b/Build/Configurations/Zandronum_DoomUDMF.cfg
index 06707bfbb..146d281a9 100644
--- a/Build/Configurations/Zandronum_DoomUDMF.cfg
+++ b/Build/Configurations/Zandronum_DoomUDMF.cfg
@@ -45,15 +45,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_HereticDoom.cfg b/Build/Configurations/Zandronum_HereticDoom.cfg
index 49ddfebc9..0e423e860 100644
--- a/Build/Configurations/Zandronum_HereticDoom.cfg
+++ b/Build/Configurations/Zandronum_HereticDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_HereticHexen.cfg b/Build/Configurations/Zandronum_HereticHexen.cfg
index 028dd5311..0856afac7 100644
--- a/Build/Configurations/Zandronum_HereticHexen.cfg
+++ b/Build/Configurations/Zandronum_HereticHexen.cfg
@@ -40,15 +40,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_HereticUDMF.cfg b/Build/Configurations/Zandronum_HereticUDMF.cfg
index 4a28627ff..6f1182ece 100644
--- a/Build/Configurations/Zandronum_HereticUDMF.cfg
+++ b/Build/Configurations/Zandronum_HereticUDMF.cfg
@@ -45,15 +45,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_HexenHexen.cfg b/Build/Configurations/Zandronum_HexenHexen.cfg
index 0ccc4c4ca..502980401 100644
--- a/Build/Configurations/Zandronum_HexenHexen.cfg
+++ b/Build/Configurations/Zandronum_HexenHexen.cfg
@@ -40,15 +40,6 @@ thingsfilters
 	include("Includes\\Hexen_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_HexenUDMF.cfg b/Build/Configurations/Zandronum_HexenUDMF.cfg
index 8748dc4ca..9299e0e0e 100644
--- a/Build/Configurations/Zandronum_HexenUDMF.cfg
+++ b/Build/Configurations/Zandronum_HexenUDMF.cfg
@@ -45,15 +45,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_StrifeDoom.cfg b/Build/Configurations/Zandronum_StrifeDoom.cfg
index 31a0f2d43..33833e1a2 100644
--- a/Build/Configurations/Zandronum_StrifeDoom.cfg
+++ b/Build/Configurations/Zandronum_StrifeDoom.cfg
@@ -37,15 +37,6 @@ thingsfilters
 	include("Includes\\Strife_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_StrifeHexen.cfg b/Build/Configurations/Zandronum_StrifeHexen.cfg
index f133d2ee0..eec486d10 100644
--- a/Build/Configurations/Zandronum_StrifeHexen.cfg
+++ b/Build/Configurations/Zandronum_StrifeHexen.cfg
@@ -40,15 +40,6 @@ thingsfilters
 	include("Includes\\Strife_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_StrifeUDMF.cfg b/Build/Configurations/Zandronum_StrifeUDMF.cfg
index a82613717..e98825abd 100644
--- a/Build/Configurations/Zandronum_StrifeUDMF.cfg
+++ b/Build/Configurations/Zandronum_StrifeUDMF.cfg
@@ -45,15 +45,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Help/gc_formatsettings.html b/Help/gc_formatsettings.html
index f4668fde9..0847b5fed 100644
--- a/Help/gc_formatsettings.html
+++ b/Help/gc_formatsettings.html
@@ -25,47 +25,25 @@
 			<li>For Hexen map format, use "HexenMapSetIO". This is a map format that uses numeric flags.
 			<li>For UDMF map format, use "UniversalMapSetIO". This is a map format that uses named flags.
 		</ul>
-		<br />
-		<b class="fat">gamedetect</b> (structure)<br />
-		This is used to determine if the Game Configuration is suitable for the opened WAD file. None of the settings in this structure have any impact on the actual editing, limitations or storage of the map, but only assist the user when opening WAD files that have not been opened with Doom Builder before (when no .dbs file is available). The setting names in this structure are the lump names that must be checked for. The value of these settings (integers) indicates which rule applies to the lump name for a positive check. Valid values are:
-		<ul>
-			<li><b>1</b> - At least one of these lumps must exist.
-			<li><b>2</b> - None of these lumps must exist.
-			<li><b>3</b> - All of these lumps must exist.
-		</ul>
-		<strong>Example:</strong><br />
-<pre>
-gamedetect
-{
-	TEXTMAP = 2;
-	ENDMAP = 2;
-	EXTENDED = 2;
-	BEHAVIOR = 3;
-	E1M1 = 2;
-	E1M2 = 2;
-	E1M3 = 2;
-	MAP01 = 1;
-	MAP02 = 1;
-	MAP03 = 1;
-}
-</pre>
-		<br />
 		<b class="fat">maplumpnames</b> (structure)<br />
 		This structure describes the lumps that make up the complete map, including scripts and nodes. It must also indicate what Doom Builder is supposed to do with these lumps and/or where the lumps come from. These lumps are normally written by the map format interface class, but some could be generated by the nodebuilder compiler or stored by Doom Builder directly. In this structure, there should be a structure for every map lump. The name of the structure should be the lump name, in uppercase. For the map header (which name differs) you can use the name <b>~MAP</b>. The following settings should be in the lump structure (unless the default value applies):<br />
 		<ul>
-			<li><b class="fat">required</b> (boolean).<br />
+			<li><b class="fat">required</b> (boolean)<br />
 				<b>True</b> to indicate that this lump is a required lump for the map. Default is <b>false</b>.<br />
 				<br />
-			<li><b class="fat">blindcopy</b> (boolean).<br />
+			<li><b class="fat">forbidden</b> (boolean) - <span class="red">GZDB only</span>.<br />
+				<b>True</b> to indicate that this lump must not present in the map's namespace. Default is <b>false</b>.<br />
+				<br />
+			<li><b class="fat">blindcopy</b> (boolean)<br />
 				Set this to <b>true</b> when Doom Builder should copy this lump along with the map without using it. Default is <b>false</b>.<br />
 				<br />
-			<li><b class="fat">nodebuild</b> (boolean).<br />
+			<li><b class="fat">nodebuild</b> (boolean)<br />
 				When set to <b>true</b>, this indicates that the nodebuilder compiler generates or modifies this lump. Default is <b>false</b>.<br />
 				<br />
-			<li><b class="fat">allowempty</b> (boolean).<br />
+			<li><b class="fat">allowempty</b> (boolean)<br />
 				Set to <b>true</b> to allow the nodebuilder to leave this lump empty. Default is <b>false</b>.<br />
 				<br />
-			<li><b class="fat">script</b> (string).<br />
+			<li><b class="fat">script</b> (string)<br />
 				When this is set, it indicates that this lump can be edited with the script editor. The contents of this lump will be loaded in the script editor automatically. Set the value to the .cfg filename (without path) of a Script Configuration to use.<br />
                 <br />
                 <li><b class="fat">scriptbuild</b> (boolean) - <span class="red">GZDB only</span>.<br />
diff --git a/Source/Core/Config/ProgramConfiguration.cs b/Source/Core/Config/ProgramConfiguration.cs
index 39e924d26..b2f4b2482 100644
--- a/Source/Core/Config/ProgramConfiguration.cs
+++ b/Source/Core/Config/ProgramConfiguration.cs
@@ -281,11 +281,11 @@ namespace CodeImp.DoomBuilder.Config
 				dockerswidth = cfg.ReadSetting("dockerswidth", 300);
 				pasteoptions.ReadConfiguration(cfg, "pasteoptions");
 				toolbarscript = cfg.ReadSetting("toolbarscript", true);
-				toolbarundo = cfg.ReadSetting("toolbarundo", false);
-				toolbarcopy = cfg.ReadSetting("toolbarcopy", false);
+				toolbarundo = cfg.ReadSetting("toolbarundo", true);
+				toolbarcopy = cfg.ReadSetting("toolbarcopy", true);
 				toolbarprefabs = cfg.ReadSetting("toolbarprefabs", true);
 				toolbarfilter = cfg.ReadSetting("toolbarfilter", true);
-				toolbarviewmodes = cfg.ReadSetting("toolbarviewmodes", false);
+				toolbarviewmodes = cfg.ReadSetting("toolbarviewmodes", true);
 				toolbargeometry = cfg.ReadSetting("toolbargeometry", true);
 				toolbartesting = cfg.ReadSetting("toolbartesting", true);
 				toolbarfile = cfg.ReadSetting("toolbarfile", true);
diff --git a/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs b/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs
index af6cb6afa..ed9798454 100644
--- a/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs
+++ b/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs
@@ -105,6 +105,9 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
 						break;
 				}
 
+				// Track brace level
+				int bracelevel = 0;
+
 				//search for required keys
 				while (SkipWhitespace(true)) 
 				{
@@ -323,6 +326,22 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
 					{
 						return ParseBlock(token, mapName);
 					}
+//child block
+					else if(token == "{")
+					{
+						// Skip inner properties
+						bracelevel++;
+						if(bracelevel > 1)
+						{
+							do
+							{
+								SkipWhitespace(true);
+								token = ReadToken();
+								if(token == "{") bracelevel++;
+								else if(token == "}") bracelevel--;
+							} while(!string.IsNullOrEmpty(token) && bracelevel > 1);
+						}
+					}
 				}
 			} 
 			else if(token == "#include")
diff --git a/Source/Core/Windows/MainForm.Designer.cs b/Source/Core/Windows/MainForm.Designer.cs
index a45ae37f1..f61f95d24 100644
--- a/Source/Core/Windows/MainForm.Designer.cs
+++ b/Source/Core/Windows/MainForm.Designer.cs
@@ -96,9 +96,8 @@ namespace CodeImp.DoomBuilder.Windows
 			this.itemviewfloors = new System.Windows.Forms.ToolStripMenuItem();
 			this.itemviewceilings = new System.Windows.Forms.ToolStripMenuItem();
 			this.seperatorviewviews = new System.Windows.Forms.ToolStripSeparator();
-			this.menufullbrightness = new System.Windows.Forms.ToolStripMenuItem();
-			this.menutogglegrid = new System.Windows.Forms.ToolStripMenuItem();
-			this.menutoggledynamicgrid = new System.Windows.Forms.ToolStripMenuItem();
+			this.itemfullbrightness = new System.Windows.Forms.ToolStripMenuItem();
+			this.itemtogglegrid = new System.Windows.Forms.ToolStripMenuItem();
 			this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
 			this.menuzoom = new System.Windows.Forms.ToolStripMenuItem();
 			this.item2zoom800 = new System.Windows.Forms.ToolStripMenuItem();
@@ -109,10 +108,9 @@ namespace CodeImp.DoomBuilder.Windows
 			this.item2zoom25 = new System.Windows.Forms.ToolStripMenuItem();
 			this.item2zoom10 = new System.Windows.Forms.ToolStripMenuItem();
 			this.item2zoom5 = new System.Windows.Forms.ToolStripMenuItem();
-			this.menugotocoords = new System.Windows.Forms.ToolStripMenuItem();
+			this.itemgotocoords = new System.Windows.Forms.ToolStripMenuItem();
 			this.itemfittoscreen = new System.Windows.Forms.ToolStripMenuItem();
 			this.itemtoggleinfo = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemtogglecomments = new System.Windows.Forms.ToolStripMenuItem();
 			this.seperatorviewzoom = new System.Windows.Forms.ToolStripSeparator();
 			this.itemscripteditor = new System.Windows.Forms.ToolStripMenuItem();
 			this.menumode = new System.Windows.Forms.ToolStripMenuItem();
@@ -174,6 +172,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.separatorfilters = new System.Windows.Forms.ToolStripSeparator();
 			this.buttonfullbrightness = new System.Windows.Forms.ToolStripButton();
 			this.buttontogglegrid = new System.Windows.Forms.ToolStripButton();
+			this.buttontoggledynamicgrid = new System.Windows.Forms.ToolStripButton();
 			this.separatorfullbrightness = new System.Windows.Forms.ToolStripSeparator();
 			this.buttonviewnormal = new System.Windows.Forms.ToolStripButton();
 			this.buttonviewbrightness = new System.Windows.Forms.ToolStripButton();
@@ -253,7 +252,8 @@ namespace CodeImp.DoomBuilder.Windows
 			this.dockerscollapser = new System.Windows.Forms.Timer(this.components);
 			this.flowLayoutPanel = new System.Windows.Forms.FlowLayoutPanel();
 			this.modecontrolsloolbar = new System.Windows.Forms.ToolStrip();
-			this.buttontoggledynamicgrid = new System.Windows.Forms.ToolStripButton();
+			this.itemtogglecomments = new System.Windows.Forms.ToolStripMenuItem();
+			this.itemdynamicgridsize = new System.Windows.Forms.ToolStripMenuItem();
 			toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
 			toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
 			toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
@@ -513,6 +513,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.itempastespecial,
             this.seperatoreditcopypaste,
             this.itemsnaptogrid,
+            this.itemdynamicgridsize,
             this.itemautomerge,
             this.itemautoclearsidetextures,
             this.seperatoreditgeometry,
@@ -727,15 +728,14 @@ namespace CodeImp.DoomBuilder.Windows
             this.itemviewfloors,
             this.itemviewceilings,
             this.seperatorviewviews,
-            this.menufullbrightness,
-            this.menutogglegrid,
-            this.menutoggledynamicgrid,
+            this.itemfullbrightness,
+            this.itemtogglegrid,
+            this.itemtogglecomments,
             this.toolStripSeparator4,
             this.menuzoom,
-            this.menugotocoords,
+            this.itemgotocoords,
             this.itemfittoscreen,
             this.itemtoggleinfo,
-            this.itemtogglecomments,
             this.seperatorviewzoom,
             this.itemscripteditor});
 			this.menuview.Name = "menuview";
@@ -807,35 +807,29 @@ namespace CodeImp.DoomBuilder.Windows
 			this.seperatorviewviews.Name = "seperatorviewviews";
 			this.seperatorviewviews.Size = new System.Drawing.Size(212, 6);
 			// 
-			// menufullbrightness
-			// 
-			this.menufullbrightness.CheckOnClick = true;
-			this.menufullbrightness.Image = global::CodeImp.DoomBuilder.Properties.Resources.Brightness;
-			this.menufullbrightness.Name = "menufullbrightness";
-			this.menufullbrightness.Size = new System.Drawing.Size(215, 22);
-			this.menufullbrightness.Tag = "builder_togglebrightness";
-			this.menufullbrightness.Text = "Full Brightness";
-			this.menufullbrightness.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// menutogglegrid
-			// 
-			this.menutogglegrid.CheckOnClick = true;
-			this.menutogglegrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2;
-			this.menutogglegrid.Name = "menutogglegrid";
-			this.menutogglegrid.Size = new System.Drawing.Size(215, 22);
-			this.menutogglegrid.Tag = "builder_togglegrid";
-			this.menutogglegrid.Text = "&Render Grid";
-			this.menutogglegrid.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// menutoggledynamicgrid
-			// 
-			this.menutoggledynamicgrid.CheckOnClick = true;
-			this.menutoggledynamicgrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.GridDynamic;
-			this.menutoggledynamicgrid.Name = "menutoggledynamicgrid";
-			this.menutoggledynamicgrid.Size = new System.Drawing.Size(215, 22);
-			this.menutoggledynamicgrid.Tag = "builder_toggledynamicgrid";
-			this.menutoggledynamicgrid.Text = "&Dynamic Grid Size";
-			this.menutoggledynamicgrid.Click += new System.EventHandler(this.InvokeTaggedAction);
+			// itemfullbrightness
+			// 
+			this.itemfullbrightness.Checked = true;
+			this.itemfullbrightness.CheckOnClick = true;
+			this.itemfullbrightness.CheckState = System.Windows.Forms.CheckState.Checked;
+			this.itemfullbrightness.Image = global::CodeImp.DoomBuilder.Properties.Resources.Brightness;
+			this.itemfullbrightness.Name = "itemfullbrightness";
+			this.itemfullbrightness.Size = new System.Drawing.Size(215, 22);
+			this.itemfullbrightness.Tag = "builder_togglebrightness";
+			this.itemfullbrightness.Text = "Full Brightness";
+			this.itemfullbrightness.Click += new System.EventHandler(this.InvokeTaggedAction);
+			// 
+			// itemtogglegrid
+			// 
+			this.itemtogglegrid.Checked = true;
+			this.itemtogglegrid.CheckOnClick = true;
+			this.itemtogglegrid.CheckState = System.Windows.Forms.CheckState.Checked;
+			this.itemtogglegrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2;
+			this.itemtogglegrid.Name = "itemtogglegrid";
+			this.itemtogglegrid.Size = new System.Drawing.Size(215, 22);
+			this.itemtogglegrid.Tag = "builder_togglegrid";
+			this.itemtogglegrid.Text = "&Render Grid";
+			this.itemtogglegrid.Click += new System.EventHandler(this.InvokeTaggedAction);
 			// 
 			// toolStripSeparator4
 			// 
@@ -922,13 +916,13 @@ namespace CodeImp.DoomBuilder.Windows
 			this.item2zoom5.Text = "5%";
 			this.item2zoom5.Click += new System.EventHandler(this.itemzoomto_Click);
 			// 
-			// menugotocoords
+			// itemgotocoords
 			// 
-			this.menugotocoords.Name = "menugotocoords";
-			this.menugotocoords.Size = new System.Drawing.Size(215, 22);
-			this.menugotocoords.Tag = "builder_centeroncoordinates";
-			this.menugotocoords.Text = "Go To Coordinates...";
-			this.menugotocoords.Click += new System.EventHandler(this.InvokeTaggedAction);
+			this.itemgotocoords.Name = "itemgotocoords";
+			this.itemgotocoords.Size = new System.Drawing.Size(215, 22);
+			this.itemgotocoords.Tag = "builder_centeroncoordinates";
+			this.itemgotocoords.Text = "Go To Coordinates...";
+			this.itemgotocoords.Click += new System.EventHandler(this.InvokeTaggedAction);
 			// 
 			// itemfittoscreen
 			// 
@@ -946,15 +940,6 @@ namespace CodeImp.DoomBuilder.Windows
 			this.itemtoggleinfo.Text = "&Expanded Info Panel";
 			this.itemtoggleinfo.Click += new System.EventHandler(this.InvokeTaggedAction);
 			// 
-			// itemtogglecomments
-			// 
-			this.itemtogglecomments.CheckOnClick = true;
-			this.itemtogglecomments.Name = "itemtogglecomments";
-			this.itemtogglecomments.Size = new System.Drawing.Size(215, 22);
-			this.itemtogglecomments.Tag = "builder_togglecomments";
-			this.itemtogglecomments.Text = "Show Comments";
-			this.itemtogglecomments.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
 			// seperatorviewzoom
 			// 
 			this.seperatorviewzoom.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
@@ -1231,15 +1216,15 @@ namespace CodeImp.DoomBuilder.Windows
             this.separatorfilters,
             this.buttonfullbrightness,
             this.buttontogglegrid,
-            this.buttontoggledynamicgrid,
+            this.buttontogglecomments,
             this.separatorfullbrightness,
             this.buttonviewnormal,
             this.buttonviewbrightness,
             this.buttonviewfloors,
             this.buttonviewceilings,
             this.seperatorviews,
-            this.buttontogglecomments,
             this.buttonsnaptogrid,
+            this.buttontoggledynamicgrid,
             this.buttonautomerge,
             this.buttonautoclearsidetextures,
             this.seperatorgeometry,
@@ -1533,7 +1518,9 @@ namespace CodeImp.DoomBuilder.Windows
 			// 
 			// buttonfullbrightness
 			// 
+			this.buttonfullbrightness.Checked = true;
 			this.buttonfullbrightness.CheckOnClick = true;
+			this.buttonfullbrightness.CheckState = System.Windows.Forms.CheckState.Checked;
 			this.buttonfullbrightness.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
 			this.buttonfullbrightness.Image = global::CodeImp.DoomBuilder.Properties.Resources.Brightness;
 			this.buttonfullbrightness.ImageTransparentColor = System.Drawing.Color.Magenta;
@@ -1545,7 +1532,9 @@ namespace CodeImp.DoomBuilder.Windows
 			// 
 			// buttontogglegrid
 			// 
+			this.buttontogglegrid.Checked = true;
 			this.buttontogglegrid.CheckOnClick = true;
+			this.buttontogglegrid.CheckState = System.Windows.Forms.CheckState.Checked;
 			this.buttontogglegrid.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
 			this.buttontogglegrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2;
 			this.buttontogglegrid.ImageTransparentColor = System.Drawing.Color.Magenta;
@@ -1555,6 +1544,20 @@ namespace CodeImp.DoomBuilder.Windows
 			this.buttontogglegrid.Text = "Render Grid";
 			this.buttontogglegrid.Click += new System.EventHandler(this.InvokeTaggedAction);
 			// 
+			// buttontoggledynamicgrid
+			// 
+			this.buttontoggledynamicgrid.Checked = true;
+			this.buttontoggledynamicgrid.CheckOnClick = true;
+			this.buttontoggledynamicgrid.CheckState = System.Windows.Forms.CheckState.Checked;
+			this.buttontoggledynamicgrid.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+			this.buttontoggledynamicgrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.GridDynamic;
+			this.buttontoggledynamicgrid.ImageTransparentColor = System.Drawing.Color.Magenta;
+			this.buttontoggledynamicgrid.Name = "buttontoggledynamicgrid";
+			this.buttontoggledynamicgrid.Size = new System.Drawing.Size(23, 22);
+			this.buttontoggledynamicgrid.Tag = "builder_toggledynamicgrid";
+			this.buttontoggledynamicgrid.Text = "Dynamic Grid Size";
+			this.buttontoggledynamicgrid.Click += new System.EventHandler(this.InvokeTaggedAction);
+			// 
 			// separatorfullbrightness
 			// 
 			this.separatorfullbrightness.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
@@ -2383,17 +2386,29 @@ namespace CodeImp.DoomBuilder.Windows
 			this.modecontrolsloolbar.Text = "toolStrip1";
 			this.modecontrolsloolbar.Visible = false;
 			// 
-			// buttontoggledynamicgrid
+			// itemtogglecomments
 			// 
-			this.buttontoggledynamicgrid.CheckOnClick = true;
-			this.buttontoggledynamicgrid.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttontoggledynamicgrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.GridDynamic;
-			this.buttontoggledynamicgrid.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttontoggledynamicgrid.Name = "buttontoggledynamicgrid";
-			this.buttontoggledynamicgrid.Size = new System.Drawing.Size(23, 22);
-			this.buttontoggledynamicgrid.Tag = "builder_toggledynamicgrid";
-			this.buttontoggledynamicgrid.Text = "Dynamic Grid Size";
-			this.buttontoggledynamicgrid.Click += new System.EventHandler(this.InvokeTaggedAction);
+			this.itemtogglecomments.Checked = true;
+			this.itemtogglecomments.CheckOnClick = true;
+			this.itemtogglecomments.CheckState = System.Windows.Forms.CheckState.Checked;
+			this.itemtogglecomments.Image = global::CodeImp.DoomBuilder.Properties.Resources.Comment;
+			this.itemtogglecomments.Name = "itemtogglecomments";
+			this.itemtogglecomments.Size = new System.Drawing.Size(215, 22);
+			this.itemtogglecomments.Tag = "builder_togglecomments";
+			this.itemtogglecomments.Text = "Show Comments";
+			this.itemtogglecomments.Click += new System.EventHandler(this.InvokeTaggedAction);
+			// 
+			// itemdynamicgridsize
+			// 
+			this.itemdynamicgridsize.Checked = true;
+			this.itemdynamicgridsize.CheckOnClick = true;
+			this.itemdynamicgridsize.CheckState = System.Windows.Forms.CheckState.Checked;
+			this.itemdynamicgridsize.Image = global::CodeImp.DoomBuilder.Properties.Resources.GridDynamic;
+			this.itemdynamicgridsize.Name = "itemdynamicgridsize";
+			this.itemdynamicgridsize.Size = new System.Drawing.Size(219, 22);
+			this.itemdynamicgridsize.Tag = "builder_toggledynamicgrid";
+			this.itemdynamicgridsize.Text = "Dynamic Grid Size";
+			this.itemdynamicgridsize.Click += new System.EventHandler(this.InvokeTaggedAction);
 			// 
 			// MainForm
 			// 
@@ -2616,13 +2631,13 @@ namespace CodeImp.DoomBuilder.Windows
 		private System.Windows.Forms.Label modename;
 		private System.Windows.Forms.ToolStripMenuItem itemautoclearsidetextures;
 		private System.Windows.Forms.ToolStripButton buttonautoclearsidetextures;
-		private System.Windows.Forms.ToolStripMenuItem menugotocoords;
+		private System.Windows.Forms.ToolStripMenuItem itemgotocoords;
 		private System.Windows.Forms.ToolStripSeparator separatorTransformModes;
 		private System.Windows.Forms.ToolStripMenuItem itemdosnaptogrid;
 		private System.Windows.Forms.ToolStrip modestoolbar;
 		private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel;
 		private System.Windows.Forms.ToolStrip modecontrolsloolbar;
-		private System.Windows.Forms.ToolStripMenuItem menufullbrightness;
+		private System.Windows.Forms.ToolStripMenuItem itemfullbrightness;
 		private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
 		private System.Windows.Forms.ToolStripButton buttonfullbrightness;
 		private System.Windows.Forms.ToolStripSeparator separatorfullbrightness;
@@ -2646,15 +2661,15 @@ namespace CodeImp.DoomBuilder.Windows
 		private ToolStripMenuItem item2zoom800;
 		private ToolStripMenuItem itemzoom800;
 		private ToolStripButton buttontogglecomments;
-		private ToolStripMenuItem itemtogglecomments;
 		private ToolStripMenuItem itemlinedefcolors;
 		private ToolStripSeparator separatorlinecolors;
 		private ToolStripButton buttonlinededfcolors;
 		private ToolStripDropDownButton linedefcolorpresets;
 		private ToolStripDropDownButton thingfilters;
-		private ToolStripMenuItem menutogglegrid;
+		private ToolStripMenuItem itemtogglegrid;
 		private ToolStripButton buttontogglegrid;
-		private ToolStripMenuItem menutoggledynamicgrid;
 		private ToolStripButton buttontoggledynamicgrid;
+		private ToolStripMenuItem itemdynamicgridsize;
+		private ToolStripMenuItem itemtogglecomments;
 	}
 }
\ No newline at end of file
diff --git a/Source/Core/Windows/MainForm.cs b/Source/Core/Windows/MainForm.cs
index c5895ff8f..e8d73fdf0 100644
--- a/Source/Core/Windows/MainForm.cs
+++ b/Source/Core/Windows/MainForm.cs
@@ -1008,8 +1008,6 @@ namespace CodeImp.DoomBuilder.Windows
 		// Set grid to a specified size
 		private void itemgridsize_Click(object sender, EventArgs e)
 		{
-			int size;
-
 			if(General.Map == null) return;
 
 			// In classic mode?
@@ -1019,7 +1017,7 @@ namespace CodeImp.DoomBuilder.Windows
 				if(sender is ToolStripMenuItem)
 				{
 					// Get integral zoom level
-					size = int.Parse((sender as ToolStripMenuItem).Tag.ToString(), CultureInfo.InvariantCulture);
+					int size = int.Parse((sender as ToolStripMenuItem).Tag.ToString(), CultureInfo.InvariantCulture);
 
 					// Change grid size
 					General.Map.Grid.SetGridSize(size);
@@ -2070,17 +2068,17 @@ namespace CodeImp.DoomBuilder.Windows
 			buttonfullbrightness.Visible = General.Settings.ToolbarViewModes && maploaded; //mxd
 			buttontogglegrid.Visible = General.Settings.ToolbarViewModes && maploaded; //mxd
 			buttontogglegrid.Checked = General.Settings.RenderGrid; //mxd
-			buttontoggledynamicgrid.Visible = General.Settings.ToolbarViewModes && maploaded; //mxd
-			buttontoggledynamicgrid.Checked = General.Settings.DynamicGridSize; //mxd
+			buttontogglecomments.Visible = General.Settings.ToolbarViewModes && maploaded; //mxd
+			buttontogglecomments.Enabled = maploaded && General.Map.UDMF; //mxd
+			buttontogglecomments.Checked = General.Settings.RenderComments; //mxd
 			separatorfullbrightness.Visible = General.Settings.ToolbarViewModes && maploaded; //mxd
 			buttonviewbrightness.Visible = General.Settings.ToolbarViewModes && maploaded;
 			buttonviewceilings.Visible = General.Settings.ToolbarViewModes && maploaded;
 			buttonviewfloors.Visible = General.Settings.ToolbarViewModes && maploaded;
 			buttonviewnormal.Visible = General.Settings.ToolbarViewModes && maploaded;
-			buttontogglecomments.Visible = General.Settings.ToolbarViewModes && maploaded; //mxd
-			buttontogglecomments.Enabled = maploaded && General.Map.UDMF; //mxd
-			buttontogglecomments.Checked = General.Settings.RenderComments; //mxd
 			buttonsnaptogrid.Visible = General.Settings.ToolbarGeometry && maploaded;
+			buttontoggledynamicgrid.Visible = General.Settings.ToolbarGeometry && maploaded; //mxd
+			buttontoggledynamicgrid.Checked = General.Settings.DynamicGridSize; //mxd
 			buttonautomerge.Visible = General.Settings.ToolbarGeometry && maploaded;
 			buttonautoclearsidetextures.Visible = General.Settings.ToolbarGeometry && maploaded; //mxd
 			buttontest.Visible = General.Settings.ToolbarTesting && maploaded;
@@ -2747,6 +2745,8 @@ namespace CodeImp.DoomBuilder.Windows
 			itempaste.Enabled = (General.Map != null) && (General.Editing.Mode != null) && General.Editing.Mode.Attributes.AllowCopyPaste;
 			itempastespecial.Enabled = (General.Map != null) && (General.Editing.Mode != null) && General.Editing.Mode.Attributes.AllowCopyPaste;
 			itemautoclearsidetextures.Checked = General.Settings.AutoClearSidedefTextures; //mxd
+			itemdynamicgridsize.Enabled = (General.Map != null); //mxd
+			itemdynamicgridsize.Checked = General.Settings.DynamicGridSize; //mxd
 
 			// Determine undo description
 			if(itemundo.Enabled)
@@ -2858,7 +2858,7 @@ namespace CodeImp.DoomBuilder.Windows
 		{
 			Renderer.FullBrightness = !Renderer.FullBrightness;
 			buttonfullbrightness.Checked = Renderer.FullBrightness;
-			menufullbrightness.Checked = Renderer.FullBrightness;
+			itemfullbrightness.Checked = Renderer.FullBrightness;
 			General.Interface.DisplayStatus(StatusType.Action, "Full Brightness is now " + (Renderer.FullBrightness ? "ON" : "OFF"));
 
 			// Redraw display to show changes
@@ -2870,7 +2870,7 @@ namespace CodeImp.DoomBuilder.Windows
 		protected void ToggleGrid()
 		{
 			General.Settings.RenderGrid = !General.Settings.RenderGrid;
-			menutogglegrid.Checked = General.Settings.RenderGrid;
+			itemtogglegrid.Checked = General.Settings.RenderGrid;
 			buttontogglegrid.Checked = General.Settings.RenderGrid;
 			General.Interface.DisplayStatus(StatusType.Action, "Grid rendering is " + (General.Settings.RenderGrid ? "ENABLED" : "DISABLED"));
 
@@ -2884,7 +2884,7 @@ namespace CodeImp.DoomBuilder.Windows
 		protected void ToggleDynamicGrid()
 		{
 			General.Settings.DynamicGridSize = !General.Settings.DynamicGridSize;
-			menutoggledynamicgrid.Checked = General.Settings.DynamicGridSize;
+			itemdynamicgridsize.Checked = General.Settings.DynamicGridSize;
 			buttontoggledynamicgrid.Checked = General.Settings.DynamicGridSize;
 			General.Interface.DisplayStatus(StatusType.Action, "Dynamic grid size is " + (General.Settings.DynamicGridSize ? "ENABLED" : "DISABLED"));
 
@@ -2926,36 +2926,18 @@ namespace CodeImp.DoomBuilder.Windows
 		// This sets up the modes menu
 		private void UpdateViewMenu()
 		{
+			menuview.Visible = (General.Map != null); //mxd
+			
 			// Menu items
-			itemthingsfilter.Enabled = (General.Map != null);
-			itemlinedefcolors.Enabled = (General.Map != null); //mxd
-			itemscripteditor.Enabled = (General.Map != null);
-			itemfittoscreen.Enabled = (General.Map != null);
-			menuzoom.Enabled = (General.Map != null);
-			menugotocoords.Enabled = (General.Map != null); //mxd
-			menufullbrightness.Enabled = (General.Map != null); //mxd
-			menutogglegrid.Enabled = (General.Map != null); //mxd
-			menutogglegrid.Checked = General.Settings.RenderGrid; //mxd
-			menutoggledynamicgrid.Enabled = (General.Map != null); //mxd
-			menutoggledynamicgrid.Checked = General.Settings.DynamicGridSize; //mxd
-			itemtoggleinfo.Enabled = (General.Map != null); //mxd
+			itemtogglegrid.Checked = General.Settings.RenderGrid; //mxd
 			itemtoggleinfo.Checked = IsInfoPanelExpanded;
 			itemtogglecomments.Enabled = (General.Map != null && General.Map.UDMF); //mxd
 			itemtogglecomments.Checked = General.Settings.RenderComments; //mxd
 			
 			// View mode items
-			for(int i = 0; i < Renderer2D.NUM_VIEW_MODES; i++)
+			if(General.Map != null)
 			{
-				// NOTE: We only disable them when no map is loaded, because they may
-				// need to be disabled for non-classic modes
-				if(General.Map == null)
-				{
-					viewmodesbuttons[i].Enabled = false;
-					viewmodesbuttons[i].Checked = false;
-					viewmodesitems[i].Enabled = false;
-					viewmodesitems[i].Checked = false;
-				}
-				else
+				for(int i = 0; i < Renderer2D.NUM_VIEW_MODES; i++)
 				{
 					// Check the correct item
 					viewmodesbuttons[i].Checked = (i == (int)General.Map.CRenderer2D.ViewMode);
@@ -3133,6 +3115,8 @@ namespace CodeImp.DoomBuilder.Windows
 		// This sets up the prefabs menu
 		private void UpdatePrefabsMenu()
 		{
+			menuprefabs.Visible = (General.Map != null); //mxd
+			
 			// Enable/disable items
 			itemcreateprefab.Enabled = (General.Map != null) && (General.Editing.Mode != null) && General.Editing.Mode.Attributes.AllowCopyPaste;
 			iteminsertprefabfile.Enabled = (General.Map != null) && (General.Editing.Mode != null) && General.Editing.Mode.Attributes.AllowCopyPaste;
-- 
GitLab