diff --git a/Build/Scripting/BCS.cfg b/Build/Scripting/BCS.cfg
index ca51e2ca748db7929c24e7470debebaf654f9e3b..d7f141350213ac78085512dca94fde3feb8e4665 100644
--- a/Build/Scripting/BCS.cfg
+++ b/Build/Scripting/BCS.cfg
@@ -8,7 +8,7 @@ parameters = "-I \"%PT\" -I \"%PS\" %FI %FO";
 resultlump = "BEHAVIOR";
 
 // Editor settings
-description = "BCS script";
+description = "BCS";
 codepage = 0;
 extensions = "bcs";
 casesensitive = false;
diff --git a/Build/Scripting/Dehacked.cfg b/Build/Scripting/Dehacked.cfg
index 561d14db05ba1a3d9357f4851cc7a7d8a3c84515..80b110c11045ec218547d66f7f164e722834636a 100644
--- a/Build/Scripting/Dehacked.cfg
+++ b/Build/Scripting/Dehacked.cfg
@@ -3,7 +3,7 @@
 \*******************************************************************/
 
 // Editor settings
-description = "Dehacked script";
+description = "Doom DEHACKED";
 codepage = 0;
 extensions = "deh,bex";
 casesensitive = false;
diff --git a/Build/Scripting/Doomsday_DED.cfg b/Build/Scripting/Doomsday_DED.cfg
index 741175575b460c14fc2f38aaa5cd53b4a69ad674..7485facc5e4d0c289fd3185b74883bcb6bbcdf85 100644
--- a/Build/Scripting/Doomsday_DED.cfg
+++ b/Build/Scripting/Doomsday_DED.cfg
@@ -3,7 +3,7 @@
 \*******************************************************************/
 
 // Editor settings
-description = "Doomsday DED script";
+description = "Doomsday DED";
 codepage = 0;
 extensions = "ded";
 casesensitive = false;
diff --git a/Build/Scripting/GZDoom_GLDEFS.cfg b/Build/Scripting/GZDoom_GLDEFS.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..e10670d56dfbcada7c5c575625db4cbd0500183b
--- /dev/null
+++ b/Build/Scripting/GZDoom_GLDEFS.cfg
@@ -0,0 +1,65 @@
+/*******************************************************************\
+	GZDoom Builder Script highlighting definitions for GLDEFS
+\*******************************************************************/
+
+// Editor settings
+description = "GZDoom GLDEFS";
+codepage = 0;
+extensions = "txt";
+casesensitive = false;
+codeblockopen = "{";
+codeblockclose = "}";
+insertcase = 1;	// 0=Normal, 1=Lowercase, 2=Uppercase
+lexer = 35;	// CPP-style, case-insensitive
+keywordhelp = "http://zdoom.org/wiki/GLDEFS";
+
+keywords
+{
+	#include = "#include";
+	
+	pointlight = "pointlight NAME";
+	pulselight = "pulselight NAME";
+	flickerlight = "flickerlight NAME";
+	flickerlight2 = "flickerlight2 NAME";
+	sectorlight = "sectorlight NAME";
+	
+	color = "color <RED> <GREEN> <BLUE>";
+	size = "size <SIZE>";
+	secondarysize = "secondarysize <SECSIZE>";
+	offset = "offset <X> <Y> <Z>";
+	scale = "scale <SCALE>";
+	interval = "interval <INTERVAL>";
+	chance = "chance <CHANCE>";
+	subtractive = "subtractive <SUB>";
+	dontlightself = "dontlightself <DLS>";
+	
+	object = "object [CLASSNAME]";
+	frame = "frame [SPRITENAME]";
+	light = "light [LIGHTNAME]";
+	
+	skybox = "skybox NAME [fliptop]";
+	
+	brightmap = "brightmap <flat|sprite|texture> <IMAGE>";
+	map = "map <BRIGHTMAP>";
+	
+	Glow = "Glow";
+	Flats = "Flats";
+	Walls = "Walls";
+	Texture = "Texture \"flat name\", color[, glow height] [, fullbright]";
+	
+	HardwareShader = "HardwareShader [Type] <LumpName>";
+	Shader = "Shader \"<File>\"";
+	Speed = "Speed <Value>";
+}
+
+properties
+{
+	fliptop;
+	flat;
+	sprite;
+	texture;
+	iwad;
+	thiswad;
+	disablefullbright;
+	fullbright;
+}
\ No newline at end of file
diff --git a/Build/Scripting/Hexen_ACS.cfg b/Build/Scripting/Hexen_ACS.cfg
index e46257dbdd95efbbcd556d47214d63ad54f849f8..e62167e298ca7acc1239ee09796c2b225a7c6a8e 100644
--- a/Build/Scripting/Hexen_ACS.cfg
+++ b/Build/Scripting/Hexen_ACS.cfg
@@ -8,7 +8,7 @@ parameters = "-H -I \"%PT\" -I \"%PS\" %FI %FO";
 resultlump = "BEHAVIOR";
 
 // Editor settings
-description = "Hexen ACS script";
+description = "Hexen ACS";
 codepage = 0;
 extensions = "acs";
 casesensitive = false;
diff --git a/Build/Scripting/Legacy_FS.cfg b/Build/Scripting/Legacy_FS.cfg
index 793a0bf29f46d7f62722b66033c138a6c7eefc5b..2ef07c16e72d0ba4b69f03747467cb9b96b349ca 100644
--- a/Build/Scripting/Legacy_FS.cfg
+++ b/Build/Scripting/Legacy_FS.cfg
@@ -3,7 +3,7 @@
 \*******************************************************************/
 
 // Editor settings
-description = "Legacy Fragglescript";
+description = "Legacy FraggleScript";
 codepage = 0;
 extensions = "fs";
 casesensitive = true;
diff --git a/Build/Scripting/ZDoom_ACS.cfg b/Build/Scripting/ZDoom_ACS.cfg
index 0f7458140345f784197ebbd6f68b925697d2d22f..4a54267ee92681c94e9c4914d8cbdf388929874b 100644
--- a/Build/Scripting/ZDoom_ACS.cfg
+++ b/Build/Scripting/ZDoom_ACS.cfg
@@ -8,7 +8,7 @@ parameters = "-I \"%PT\" -I \"%PS\" %FI %FO";
 resultlump = "BEHAVIOR";
 
 // Editor settings
-description = "ZDoom ACS script";
+description = "ZDoom ACS";
 codepage = 0;
 extensions = "acs";
 casesensitive = false;
diff --git a/Build/Scripting/ZDoom_CVARINFO.cfg b/Build/Scripting/ZDoom_CVARINFO.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..bb67f5d1ee3fdafae949fd869b10348d59c234d2
--- /dev/null
+++ b/Build/Scripting/ZDoom_CVARINFO.cfg
@@ -0,0 +1,31 @@
+/*******************************************************************\
+	GZDoom Builder Script highlighting definitions for CVARINFO
+\*******************************************************************/
+
+// Editor settings
+description = "ZDoom CVARINFO";
+codepage = 0;
+extensions = "txt";
+casesensitive = false;
+terminator = ";";
+insertcase = 1;	// 0=Normal, 1=Lowercase, 2=Uppercase
+lexer = 35;	// CPP-style, case-insensitive
+keywordhelp = "http://zdoom.org/wiki/CVARINFO";
+
+properties
+{
+   server;
+	 user;
+	 int;
+	 float;
+	 color;
+	 bool;
+	 string;
+}
+
+constants
+{
+	noarchive;
+	true;
+	false;
+}
\ No newline at end of file
diff --git a/Build/Scripting/ZDoom_LOCKDEFS.cfg b/Build/Scripting/ZDoom_LOCKDEFS.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..69388ed870af193028146416c088d52917f78ef7
--- /dev/null
+++ b/Build/Scripting/ZDoom_LOCKDEFS.cfg
@@ -0,0 +1,33 @@
+/*******************************************************************\
+	GZDoom Builder Script highlighting definitions for LOCKDEFS
+\*******************************************************************/
+
+// Editor settings
+description = "ZDoom LOCKDEFS";
+codepage = 0;
+extensions = "txt";
+casesensitive = false;
+codeblockopen = "{";
+codeblockclose = "}";
+insertcase = 1;	// 0=Normal, 1=Lowercase, 2=Uppercase
+lexer = 35;	// CPP-style, case-insensitive
+keywordhelp = "http://zdoom.org/wiki/LOCKDEFS";
+
+keywords
+{
+	Lock = "Lock locknumber [game]";
+	Any = "Any { keyname1 keyname2 ... }";
+	Message = "Message \"door message\"";
+	RemoteMessage = "RemoteMessage \"door message\"";
+	MapColor = "MapColor r g b";
+	LockedSound = "LockedSound soundname";
+}
+
+constants
+{
+	ClearLocks;
+	Doom;
+	Heretic;
+	Hexen;
+	Strife;
+}
\ No newline at end of file
diff --git a/Build/Scripting/ZDoom_MAPINFO.cfg b/Build/Scripting/ZDoom_MAPINFO.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..0766ca422e61ee3b3cc04c2ef21a981ed967456d
--- /dev/null
+++ b/Build/Scripting/ZDoom_MAPINFO.cfg
@@ -0,0 +1,346 @@
+/*******************************************************************\
+	GZDoom Builder Script highlighting definitions for MAPINFO
+\*******************************************************************/
+
+// Editor settings
+description = "ZDoom MAPINFO";
+codepage = 0;
+extensions = "txt";
+casesensitive = false;
+codeblockopen = "{";
+codeblockclose = "}";
+insertcase = 1;	// 0=Normal, 1=Lowercase, 2=Uppercase
+lexer = 35;	// CPP-style, case-insensitive
+keywordhelp = "http://zdoom.org/wiki/MAPINFO";
+
+properties
+{
+	// Generic
+	lookup;
+
+	// Cluster
+	Cluster;
+	ClusterDef;
+	EnterText;
+	ExitText;
+	ExitTextIsLump;
+	Music;
+	Flat;
+	Pic;
+	Hub;
+
+	// Episode
+	ClearEpisodes;
+	Episode;
+	Name;
+	PicName;
+	Key;
+	Remove;
+	NoSkillMenu;
+	Optional;
+	Extended;
+
+	// Map
+	Map;
+	DefaultMap;
+	AddDefaultMap;
+	GameDefaults;
+	ActivateOwnDeathSpecials;
+	AirControl;
+	AirSupply;
+	AllowCrouch;
+	AllowFreelook;
+	AllowJump;
+	AllowMonsterTelefrags;
+	AllowRespawn;
+	AutoSequences;
+	BaronSpecial;
+	BorderTexture;
+	CDId;
+	CDTrack;
+	CheckSwitchRange;
+	ClipMidTextures;
+	CyberdemonSpecial;
+	DeathSequence;
+	DefaultEnvironment;
+	DefaultEnvironment;
+	DoubleSky;
+	DSparilSpecial;
+	EnterPic;
+	EvenLighting;
+	ExitPic;
+	F1;
+	Fade;
+	FadeTable;
+	FallingDamage;
+	FilterStarts;
+	ForceNoSkyStretch;
+	ForgetState;
+	Gravity;
+	Grinding_Polyobj;
+	HorizWallShade;
+	InfiniteFlightPowerup;
+	InterMusic;
+	IronlichSpecial;
+	KeepFullInventory;
+	LaxMonsterActivation;
+	LevelNum;
+	Lightning;
+	Map07Special;
+	MapBackground;
+	MinotaurSpecial;
+	MissilesActivateImpactLines;
+	MissileShootersActivateImpactLines;
+	MonsterFallingDamage;
+	Music;
+	Next;
+	No_Grinding_Polyobj;
+	NoAllies;
+	NoAutosaveHint;
+	NoAutoSequences;
+	NoCheckSwitchRange;
+	NoCrouch;
+	NoFallingDamage;
+	NoFreelook;
+	NoInfighting;
+	NoIntermission;
+	NoInventoryBar;
+	NoJump;
+	NormalInfighting;
+	NoSoundClipping;
+	OldFallingDamage;
+	ForceFallingDamage;
+	OutsideFog;
+	Par;
+	PrecacheSounds;
+	RandomPlayerStarts;
+	Redirect;
+	RememberState;
+	ResetHealth;
+	ResetInventory;
+	Secret;
+	SecretNext;
+	Sky1;
+	Sky2;
+	Skybox;
+	SkyStretch;
+	Slideshow;
+	SmoothLighting;
+	SpawnWithWeaponRaised;
+	SpecialAction;
+	SpecialAction_ExitLevel;
+	SpecialAction_OpenDoor;
+	SpecialAction_LowerFloor;
+	SpecialAction_KillMonsters;
+	SpiderMastermindSpecial;
+	StrictMonsterActivation;
+	StrifeFallingDamage;
+	SuckTime;
+	TeamDamage;
+	TeamPlayOff;
+	TeamPlayOn;
+	TitlePatch;
+	TotalInfighting;
+	Translator;
+	UnFreezeSinglePlayerConversations;
+	UsePlayerStartZ;
+	VertWallShade;
+	ForceFakeContrast;
+	PrecacheTextures;
+	PrecacheClasses;
+
+	// GZDoom
+	FogDensity;
+	OutsideFogDensity;
+	SkyFog;
+	LightMode;
+	NoColoredSpriteLighting;
+	SkyRotate;
+	PixelRatio;
+
+	// Skill definitions
+	Skill;
+	ClearSkills;
+	AmmoFactor;
+	DropAmmoFactor;
+	DoubleAmmoFactor;
+	DamageFactor;
+	RespawnTime;
+	RespawnLimit;
+	Aggressiveness;
+	SpawnFilter;
+	ACSReturn;
+	Key;
+	MustConfirm;
+	Name;
+	PlayerClassName;
+	PicName;
+	TextColor;
+	EasyBossBrain;
+	FastMonsters;
+	SlowMonsters;
+	DisableCheats;
+	AutoUseHealth;
+	ReplaceActor;
+	MonsterHealth;
+	FriendlyHealth;
+	NoPain;
+	DefaultSkill;
+	ArmorFactor;
+	EasyKey;
+	HealthFactor;
+
+	// GameInfo definitions
+	GameInfo;
+	AddCreditPage;
+	AddInfoPage;
+	AddPlayerClasses;
+	AddQuitMessages;
+	AdvisoryTime;
+	Border;
+	BackpackType;
+	BorderFlat;
+	ChatSound;
+	CreditPage;
+	DefaultBloodColor;
+	DefaultBloodParticleColor;
+	DefKickback;
+	DrawReadThis;
+	FinaleFlat;
+	FinaleMusic;
+	FinalePage;
+	InfoPage;
+	IntermissionCounter;
+	IntermissionMusic;
+	MapInfo;
+	NoLoopFinaleMusic;
+	PageTime;
+	QuitSound;
+	SkyFlatName;
+	StatusBar;
+	TeleFogHeight;
+	TitleMusic;
+	TitlePage;
+	TitleTime;
+	Translator;
+	WeaponSlot;
+	ArmorIcons;
+	DimColor;
+	DimAmount;
+	DefInventoryMaxAmount;
+	DefaultRespawnTime;
+	DefaultDropStyle;
+	Endoom;
+	PickupColor;
+	QuitMessages;
+	MenuFontColor_Title;
+	MenuFontColor_Label;
+	MenuFontColor_Value;
+	MenuFontColor_Action;
+	MenuFontColor_Header;
+	MenuFontColor_Highlight;
+	MenuFontColor_Selection;
+	MenuBackButton;
+	PlayerClasses;
+	PauseSign;
+	GibFactor;
+	CursorPic;
+	SwapMenu;
+	TextScreenX;
+	TextScreenY;
+	DefaultEndSequence;
+	MapArrow;
+	NoRandomPlayerclass;
+	StatScreen_EnteringPatch;
+	StatScreen_FinishedPatch;
+	StatScreen_MapNameFont;
+	NightmareFast;
+	DontCrunchCorpses;
+	CheatKey;
+	ForceKillScripts;
+
+	// Intermission definitions
+	Intermission;
+	Link;
+	Cast;
+	Fader;
+	GotoTitle;
+	Image;
+	Scroller;
+	TextScreen;
+	Wiper;
+	Background;
+	CDMusic;
+	Draw;
+	DrawConditional;
+	Music;
+	Sound;
+	Time;
+	CastClass;
+	CastName;
+	AttackSound;
+	FadeType;
+	Background2;
+	InitialDelay;
+	ScrollDirection;
+	ScrollTime;
+	Position;
+	Text;
+	TextColor;
+	TextDelay;
+	TextLump;
+	TextSpeed;
+	WipeType;
+
+	// Automap
+	Automap;
+	Automap_Overlay;
+	AlmostBackgroundColor;
+	Base;
+	CeilingDiffWallColor;
+	ExtraFloorWallColor;
+	FloorDiffWallColor;
+	GridColor;
+	InterTeleportColor;
+	IntraTeleportColor;
+	LockedColor;
+	NotSeenColor;
+	SecretSectorColor;
+	SecretWallColor;
+	ShowLocks;
+	SpecialWallColor;
+	ThingColor;
+	ThingColor_CountItem;
+	ThingColor_Friend;
+	ThingColor_Item;
+	ThingColor_Monster;
+	ThingColor_NocountMonster;
+	TwoSidedWallColor;
+	WallColor;
+	XHairColor;
+	YourColor;
+
+	// Thing editor numbers
+	DoomEdNums;
+
+	// Spawn numbers (SpawnIDs)
+	SpawnNums;
+
+	// Conversation IDs
+	ConversationIDs;
+}
+
+constants
+{
+	gameinfo;
+	skill;
+	map;
+	episode;
+	cluster;
+	automap;
+	automap_overlay;
+	doomednums;
+	spawnnums;
+	conversationids;
+	EndGame;
+}
\ No newline at end of file
diff --git a/Build/Scripting/ZDoom_MENUDEF.cfg b/Build/Scripting/ZDoom_MENUDEF.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..6f4bd01fae921c0b2ce2df957779cddff539bb92
--- /dev/null
+++ b/Build/Scripting/ZDoom_MENUDEF.cfg
@@ -0,0 +1,88 @@
+/*******************************************************************\
+	GZDoom Builder Script highlighting definitions for MENUDEF
+\*******************************************************************/
+
+// Editor settings
+description = "ZDoom MENUDEF";
+codepage = 0;
+extensions = "txt";
+casesensitive = false;
+codeblockopen = "{";
+codeblockclose = "}";
+insertcase = 1;	// 0=Normal, 1=Lowercase, 2=Uppercase
+lexer = 35;	// CPP-style, case-insensitive
+keywordhelp = "http://zdoom.org/wiki/MENUDEF";
+
+properties
+{
+	ListMenu;
+	OptionMenu;
+	OptionValue;
+	OptionString;
+	DefaultListMenu;
+	DefaultOptionMenu;
+	OptionMenuSettings;
+	Font;
+	Linespacing;
+	LabelOffset;
+	PlayerDisplay;
+	Position;
+	Selector;
+	StaticText;
+	StaticTextSwitchable;
+	ScrollTop;
+	SafeCommand;
+	ColorPicker;
+	Class;
+	ScreenResolution;
+	StaticPatch;
+	Control;
+	Option;
+	Slider;
+	PatchItem;
+	TextItem;
+	Submenu;
+	Command;
+	NetgameMessage;
+	StaticPatchCentered;
+	StaticTextCentered;
+	MouseWindow;
+	CenterMenu;
+	Title;
+	PlayerNameBox;
+	ValueText;
+	MapControl;
+	else;
+	TextField;
+	NumberField;
+}
+
+constants
+{
+	listmenu;
+	optionmenu;
+	optionvalue;
+	optionstring;
+	
+	ifgame;
+	ifoption;
+	
+	doom;
+	heretic;
+	hexen;
+	strife;
+	chex;
+	readthis;
+	swapmenu;
+	windows;
+	unix;
+	mac;
+
+	LoadMenu;
+	SaveMenu;
+	PlayerMenu;
+	JoystickConfigMenu;
+	GameplayMenu;
+	CompatibilityMenu;
+	VideoModeMenu;
+}
\ No newline at end of file
diff --git a/Build/Scripting/ZDoom_REVERBS.cfg b/Build/Scripting/ZDoom_REVERBS.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..99bba74d8514989a1707e0cb9d99eccf2b97f5ba
--- /dev/null
+++ b/Build/Scripting/ZDoom_REVERBS.cfg
@@ -0,0 +1,52 @@
+/*******************************************************************\
+	GZDoom Builder Script highlighting definitions for REVERBS
+\*******************************************************************/
+
+// Editor settings
+description = "ZDoom REVERBS";
+codepage = 0;
+extensions = "txt";
+casesensitive = false;
+insertcase = 1;	// 0=Normal, 1=Lowercase, 2=Uppercase
+lexer = 35;	// CPP-style, case-insensitive
+keywordhelp = "http://zdoom.org/wiki/REVERBS";
+
+keywords
+{
+	AirAbsorptionHF = "AirAbsorptionHF float";
+	bDecayHFLimit = "bDecayHFLimit bool";
+	bDecayTimeScale = "bDecayTimeScale bool";
+	bEchoTimeScale = "bEchoTimeScale bool";
+	bModulationTimeScale = "bModulationTimeScale bool";
+	bReflectionsDelayScale = "bReflectionsDelayScale bool";
+	bReflectionsScale = "bReflectionsScale bool";
+	bReverbDelayScale = "bReverbDelayScale bool";
+	DecayHFRatio = "DecayHFRatio float";
+	DecayLFRatio = "DecayLFRatio float";
+	DecayTime = "DecayTime float";
+	Density = "Density float";
+	Diffusion = "Diffusion float";
+	EchoDepth = "EchoDepth float";
+	EchoTime = "EchoTime float";
+	Environment = "Environment int";
+	EnvironmentDiffusion = "EnvironmentDiffusion float";
+	EnvironmentSize = "EnvironmentSize float";
+	HFReference = "HFReference float";
+	LFReference = "LFReference float";
+	ModulationDepth = "ModulationDepth float";
+	ModulationTime = "ModulationTime float";
+	Reflections = "Reflections int";
+	ReflectionsDelay = "ReflectionsDelay float";
+	ReflectionsPanX = "ReflectionsPanX float";
+	ReflectionsPanY = "ReflectionsPanY float";
+	ReflectionsPanZ = "ReflectionsPanZ float";
+	Reverb = "Reverb int";
+	ReverbDelay = "ReverbDelay float";
+	ReverbPanX = "ReverbPanX float";
+	ReverbPanY = "ReverbPanY float";
+	ReverbPanZ = "ReverbPanZ float";
+	Room = "Room int";
+	RoomHF = "RoomHF int";
+	RoomLF = "RoomLF int";
+	RoomRolloffFactor = "RoomRolloffFactor float";
+}
\ No newline at end of file
diff --git a/Build/Scripting/ZDoom_SBARINFO.cfg b/Build/Scripting/ZDoom_SBARINFO.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..b356040edb9e5ded95ffc410dd2fd674977ff47e
--- /dev/null
+++ b/Build/Scripting/ZDoom_SBARINFO.cfg
@@ -0,0 +1,232 @@
+/*******************************************************************\
+	GZDoom Builder Script highlighting definitions for SBARINFO
+\*******************************************************************/
+
+// Editor settings
+description = "ZDoom SBARINFO";
+codepage = 0;
+extensions = "txt";
+casesensitive = false;
+codeblockopen = "{";
+codeblockclose = "}";
+insertcase = 1;	// 0=Normal, 1=Lowercase, 2=Uppercase
+lexer = 35;	// CPP-style, case-insensitive
+keywordhelp = "http://zdoom.org/wiki/SBARINFO";
+
+keywords
+{
+	interpolate = "interpolate speed";
+	drawshadow = "drawshadow [xOffset], [yOffset]";
+	alignment = "alignment";
+	ammo = "ammo [class]";
+	hexenarmor = "hexenarmor [type], [slot]";
+	prefix = "prefix value, pad";
+}
+
+properties
+{
+	Base;
+	completeborder;
+	CreatePopup;
+	Height;
+	InterpolateHealth;
+	InterpolateArmor;
+	LowerHealthCap;
+	MonospaceFonts;
+	Resolution;
+	StatusBar;
+	alpha;
+	aspectratio;
+	drawbar;
+	DrawGem;
+	DrawKeyBar;
+	DrawInventoryBar;
+	DrawImage;
+	DrawMugShot;
+	DrawNumber;
+	DrawSelectedInventory;
+	DrawShader;
+	DrawString;
+	DrawSwitchableImage;
+	else;
+	GameMode;
+	HasWeaponPiece;
+	IfHealth;
+	InInventory;
+	not;
+	InventoryBarNotVisible;
+	IsSelected;
+	PlayerClass;
+	PlayerType;
+	UsesAmmo;
+	UsesSecondaryAmmo;
+	WeaponAmmo;
+	mugshot;
+	IfInvulnerable;
+	IfWaterLevel;
+	IfCVarInt;
+}
+
+constants
+{
+	statusbar;
+	mugshot;
+	
+	nullimage;
+	true;
+	false;
+	none;
+	SlideInBottom;
+	pushup;
+	fade;
+	fullscreen;
+	normal;
+	automap;
+	inventory;
+	inventoryfullscreen;
+	popuplog;
+	popupkeys;
+	popupstatus;
+	forcescaled;
+	fullscreenoffsets;
+	reverse;
+	wiggle;
+	translatable;
+	armor;
+	vertical;
+	horizontal;
+	reverserows;
+	alwaysshow;
+	noartibox;
+	noarrows;
+	alwaysshowcounter;
+	translucent;
+	Doom;
+	Heretic;
+	Hexen;
+	HexenStrict;
+	Strife;
+	playericon;
+	armoricon;
+	weaponicon;
+	ammoicon1;
+	ammoicon2;
+	sigil;
+	xdeathface;
+	animatedgodmode;
+	disablegrin;
+	disableouch;
+	disablepain;
+	disablerampage;
+	health;
+	armorclass;
+	ammo1;
+	ammo2;
+	frags;
+	kills;
+	monsters;
+	items;
+	totalitems;
+	secrets;
+	score;
+	totalsecrets;
+	airtime;
+	ammocapacity;
+	ammo1capacity;
+	ammo2capacity;
+	poweruptime;
+	globalvar;
+	globalarray;
+	accuracy;
+	keys;
+	savepercent;
+	stamina;
+	fillzeros;
+	whennotzero;
+	alternateonempty;
+	artiflash;
+	alwaysshowcounter;
+	center;
+	centerbottom;
+	invulnerable;
+	keyslot;
+	armortype;
+	levelname;
+	levellump;
+	skillname;
+	playerclass;
+	playername;
+	ammo1tag;
+	ammo2tag;
+	weapontag;
+	inventorytag;
+	time;
+	logtext;
+	linebreaks;
+	normal;
+	pain;
+	ouch;
+	rampage;
+	god;
+	godanimated;
+	grin;
+	death;
+	xdeath;
+	custom;
+	health2;
+	healthspecial;
+	directional;
+	left;
+	right;
+	dontcap;
+	itemflash;
+	alticonfirst;
+	alternateonfail;
+	forcescale;
+	skipalticon;
+	skipicon;
+	skipready;
+	skipspawn;
+	auto;
+	cooperative;
+	singleplayer;
+	teamgame;
+	deathmatch;
+	weaponslot;
+	equal;
+
+	//Some default fonts
+	BIGFONT;
+	INDEXFONT;
+	SMALLFONT;
+	HUDFONT_DOOM;
+	INDEXFONT_DOOM;
+	HUDFONT_RAVEN;
+	INDEXFONT_RAVEN;
+
+	// Default font colors
+	Yellow;
+	Red;
+	Green;
+	Blue;
+	White;
+	Black;
+	untranslated;
+	Brick;
+	Tan;
+	Gray;
+	Grey;
+	Brown;
+	Gold;
+	Orange;
+	LightBlue;
+	Cream;
+	Olive;
+	DarkGreen;
+	DarkRed;
+	DarkBrown;
+	Purple;
+	DarkGray;
+	DarkGrey;
+	Cyan;
+}
\ No newline at end of file
diff --git a/Build/Scripting/ZDoom_SNDINFO.cfg b/Build/Scripting/ZDoom_SNDINFO.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..e3d938f0e2e342aba5bfb2d12f16ec93a23fb0ae
--- /dev/null
+++ b/Build/Scripting/ZDoom_SNDINFO.cfg
@@ -0,0 +1,61 @@
+/*******************************************************************\
+	GZDoom Builder Script highlighting definitions for SNDINFO
+\*******************************************************************/
+
+// Editor settings
+description = "ZDoom SNDINFO";
+codepage = 0;
+extensions = "txt";
+casesensitive = false;
+codeblockopen = "{";
+codeblockclose = "}";
+insertcase = 1;	// 0=Normal, 1=Lowercase, 2=Uppercase
+lexer = 35;	// CPP-style, case-insensitive
+keywordhelp = "http://zdoom.org/wiki/SNDINFO";
+
+properties
+{
+	$random;
+	$alias;
+	$limit;
+	$pitchshift;
+	$pitchshiftrange;
+	$playerreserve;
+	$playersound;
+	$playersounddup;
+	$playeralias;
+	$playercompat;
+	$ambient;
+	$ifdoom;
+	$ifheretic;
+	$ifhexen;
+	$ifstrife;
+	$map;
+	$musicvolume;
+	$registered;
+	$archivepath;
+	point;
+	surround;
+	world;
+	continuous;
+	periodic;
+	random;
+	$volume;
+	$rolloff;
+	$mididevice;
+	$attenuation;
+	$edfoverride;
+	$musicalias;
+	$singular;
+	$endif;
+}
+
+constants
+{
+	custom;
+	linear;
+	log;
+	male;
+	female;
+	other;
+}
\ No newline at end of file
diff --git a/Build/Scripting/ZDoom_SNDSEQ.cfg b/Build/Scripting/ZDoom_SNDSEQ.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..78753c3a6d797afc4058d3ccfa8515a79a6f8cf6
--- /dev/null
+++ b/Build/Scripting/ZDoom_SNDSEQ.cfg
@@ -0,0 +1,47 @@
+/*******************************************************************\
+	GZDoom Builder Script highlighting definitions for SNDSEQ
+\*******************************************************************/
+
+// Editor settings
+description = "ZDoom SNDSEQ";
+codepage = 0;
+extensions = "txt";
+casesensitive = false;
+insertcase = 1;	// 0=Normal, 1=Lowercase, 2=Uppercase
+lexer = 35;	// CPP-style, case-insensitive
+keywordhelp = "http://zdoom.org/wiki/SNDSEQ";
+
+keywords
+{
+	play = "play <soundname>";
+	playuntildone = "playuntildone <soundname>";
+	playtime = "playtime <soundname> <delay>";
+	playrepeat = "playrepeat <soundname>";
+	playloop = "playloop <soundname> <delay>";
+	delay = "delay <time>";
+	delayonce = "delayonce <time>";
+	delayrand = "delayrand <min> <max>";
+	volume = "volume <volume>";
+	//volumerel = "volumerel";
+	volumerand = "volumerand <min> <max>";
+	attenuation = "attenuation <mode>";
+	door = "door <index>";
+	platform = "platform <index>";
+	environment = "environment <index>";
+	stopsound = "stopsound <soundname>";
+	slot = "slot <slot>";
+}
+
+properties
+{
+	restart;
+	randomsequence;
+	nostopcutoff;
+	end;
+	
+	normal;
+	idle;
+	static;
+	none;
+	surround;
+}
\ No newline at end of file
diff --git a/Build/Scripting/ZDoom_TERRAIN.cfg b/Build/Scripting/ZDoom_TERRAIN.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..24fff7e0916e80bcd49b2099768a57a46996f633
--- /dev/null
+++ b/Build/Scripting/ZDoom_TERRAIN.cfg
@@ -0,0 +1,55 @@
+/*******************************************************************\
+	GZDoom Builder Script highlighting definitions for TERRAIN
+\*******************************************************************/
+
+// Editor settings
+description = "ZDoom TERRAIN";
+codepage = 0;
+extensions = "txt";
+casesensitive = false;
+codeblockopen = "{";
+codeblockclose = "}";
+insertcase = 1;	// 0=Normal, 1=Lowercase, 2=Uppercase
+lexer = 35;	// CPP-style, case-insensitive
+keywordhelp = "http://zdoom.org/wiki/TERRAIN";
+
+properties
+{
+	// Splash
+	smallclass;
+	smallclip;
+	smallsound;
+	baseclass;
+	chunkclass;
+	chunkxvelshift;
+	chunkyvelshift;
+	chunkzvelshift;
+	chunkbasezvel;
+	sound;
+
+	// Terrain
+	footclip;
+	liquid;
+	friction;
+	damagetype;
+	damageamount;
+	damagetimemask;
+	allowprotection;
+
+	// Floor
+	defaultterrain;
+	noalert;
+	optional;
+}
+
+constants
+{
+	splash;
+	terrain;
+	floor;
+	ifdoom;
+	ifheretic;
+	ifhexen;
+	ifstrife;
+	endif;
+}
\ No newline at end of file
diff --git a/Build/Scripting/ZDoom_TEXTURES.cfg b/Build/Scripting/ZDoom_TEXTURES.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..e51f73452cbce58bb92e720d3e912143713d979c
--- /dev/null
+++ b/Build/Scripting/ZDoom_TEXTURES.cfg
@@ -0,0 +1,60 @@
+/*******************************************************************\
+	GZDoom Builder Script highlighting definitions for TEXTURES
+\*******************************************************************/
+
+// Editor settings
+description = "ZDoom TEXTURES";
+codepage = 0;
+extensions = "txt";
+casesensitive = false;
+codeblockopen = "{";
+codeblockclose = "}";
+insertcase = 1;	// 0=Normal, 1=Lowercase, 2=Uppercase
+lexer = 35;	// CPP-style, case-insensitive
+keywordhelp = "http://zdoom.org/wiki/TEXTURES";
+
+properties
+{
+	XScale;
+	YScale;
+	offset;
+	Rotate;
+	Translation;
+	Blend;
+	Alpha;
+	Style;
+}
+
+constants
+{
+	texture;
+	sprite;
+	graphic;
+	patch;
+	walltexture;
+	flat;
+	optional;
+	
+	worldpanning;
+	NoDecals;
+	NullTexture;
+	FlipX;
+	FlipY;
+	UseOffsets;
+	
+	Inverse;
+	Gold;
+	Red;
+	Green;
+	Ice;
+	Desaturate;
+	Copy;
+	Translucent;
+	Add;
+	Subtract;
+	ReverseSubtract;
+	Modulate;
+	CopyAlpha;
+	Overlay;
+	CopyNewAlpha;
+}
\ No newline at end of file
diff --git a/Build/Scripting/ZDoom_USDF.cfg b/Build/Scripting/ZDoom_USDF.cfg
index 2d1d0b5b86628b6860c1e8476fd59e652642321d..1588cef05f8eca52e6d8ce9dd5d095f9cdda9b38 100644
--- a/Build/Scripting/ZDoom_USDF.cfg
+++ b/Build/Scripting/ZDoom_USDF.cfg
@@ -1,9 +1,9 @@
 /*******************************************************************\
-	Doom Builder Script highlighting definitions for ACS
+	Doom Builder Script highlighting definitions for USDF
 \*******************************************************************/
 
 // Editor settings
-description = "ZDoom USDF script";
+description = "ZDoom USDF";
 codepage = 0;
 extensions = "txt";
 casesensitive = false;
diff --git a/Build/Scripting/ZDoom_VOXELDEF.cfg b/Build/Scripting/ZDoom_VOXELDEF.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..d42ff5cafd4a9a16a40d9df0c70f1a9c2cf1bd8a
--- /dev/null
+++ b/Build/Scripting/ZDoom_VOXELDEF.cfg
@@ -0,0 +1,28 @@
+/*******************************************************************\
+	GZDoom Builder Script highlighting definitions for VOXELDEF
+\*******************************************************************/
+
+// Editor settings
+description = "ZDoom VOXELDEF";
+codepage = 0;
+extensions = "txt";
+casesensitive = false;
+codeblockopen = "{";
+codeblockclose = "}";
+insertcase = 1;	// 0=Normal, 1=Lowercase, 2=Uppercase
+lexer = 35;	// CPP-style, case-insensitive
+keywordhelp = "http://zdoom.org/wiki/VOXELDEF";
+
+properties
+{
+	AngleOffset;
+	Scale;
+	Spin;
+	DroppedSpin;
+	PlacedSpin;
+}
+
+constants
+{
+	OverridePalette;
+}
\ No newline at end of file
diff --git a/Build/Scripting/Zandronum_ACS.cfg b/Build/Scripting/Zandronum_ACS.cfg
index 903f63400c602f93144643ffd231e70c68da27e6..874c83a1a3de81f3c6c049e8c2232b69d5c0878c 100644
--- a/Build/Scripting/Zandronum_ACS.cfg
+++ b/Build/Scripting/Zandronum_ACS.cfg
@@ -8,7 +8,7 @@ parameters = "-I \"%PT\" -I \"%PS\" %FI %FO";
 resultlump = "BEHAVIOR";
 
 // Editor settings
-description = "Zandronum ACS script";
+description = "Zandronum ACS";
 codepage = 0;
 extensions = "acs";
 casesensitive = false;
diff --git a/Source/Core/Builder.csproj b/Source/Core/Builder.csproj
index d8cd54f2a7e7d8af25a4a5bb4a17316f13ca88ea..d581c897ee43b62dd4c41f50ea8a676c6a2cbbdb 100644
--- a/Source/Core/Builder.csproj
+++ b/Source/Core/Builder.csproj
@@ -122,19 +122,19 @@
     <Compile Include="Controls\ArgumentBox.Designer.cs">
       <DependentUpon>ArgumentBox.cs</DependentUpon>
     </Compile>
-    <Compile Include="Controls\ScriptDocumentTab.cs">
+    <Compile Include="Controls\Scripting\ScriptDocumentTab.cs">
       <SubType>Component</SubType>
     </Compile>
-    <Compile Include="Controls\ScriptEditorPanel.cs">
+    <Compile Include="Controls\Scripting\ScriptEditorPanel.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="Controls\ScriptEditorPanel.Designer.cs">
+    <Compile Include="Controls\Scripting\ScriptEditorPanel.Designer.cs">
       <DependentUpon>ScriptEditorPanel.cs</DependentUpon>
     </Compile>
-    <Compile Include="Controls\ScriptFileDocumentTab.cs">
+    <Compile Include="Controls\Scripting\ScriptFileDocumentTab.cs">
       <SubType>Component</SubType>
     </Compile>
-    <Compile Include="Controls\ScriptLumpDocumentTab.cs">
+    <Compile Include="Controls\Scripting\ScriptLumpDocumentTab.cs">
       <SubType>Component</SubType>
     </Compile>
     <Compile Include="Data\DirectoryReader.cs" />
@@ -692,10 +692,10 @@
   </ItemGroup>
   <ItemGroup>
     <None Include="app.manifest" />
-    <EmbeddedResource Include="Controls\ScriptEditorControl.resx">
+    <EmbeddedResource Include="Controls\Scripting\ScriptEditorControl.resx">
       <DependentUpon>ScriptEditorControl.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="Controls\ScriptEditorPreviewControl.resx">
+    <EmbeddedResource Include="Controls\Scripting\ScriptEditorPreviewControl.resx">
       <DependentUpon>ScriptEditorPreviewControl.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="Resources\SkySphere.md3" />
@@ -770,16 +770,16 @@
     <Compile Include="Controls\PasteOptionsControl.Designer.cs">
       <DependentUpon>PasteOptionsControl.cs</DependentUpon>
     </Compile>
-    <Compile Include="Controls\ScriptEditorControl.cs">
+    <Compile Include="Controls\Scripting\ScriptEditorControl.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="Controls\ScriptEditorControl.designer.cs">
+    <Compile Include="Controls\Scripting\ScriptEditorControl.designer.cs">
       <DependentUpon>ScriptEditorControl.cs</DependentUpon>
     </Compile>
-    <Compile Include="Controls\ScriptEditorPreviewControl.cs">
+    <Compile Include="Controls\Scripting\ScriptEditorPreviewControl.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="Controls\ScriptEditorPreviewControl.Designer.cs">
+    <Compile Include="Controls\Scripting\ScriptEditorPreviewControl.Designer.cs">
       <DependentUpon>ScriptEditorPreviewControl.cs</DependentUpon>
     </Compile>
     <Compile Include="Controls\SectorSlopeControl.cs">
@@ -1271,7 +1271,7 @@
     <None Include="Resources\SaveScript.png" />
     <None Include="Resources\OpenScript.png" />
     <None Include="Resources\NewScript.png" />
-    <EmbeddedResource Include="Controls\ScriptEditorPanel.resx">
+    <EmbeddedResource Include="Controls\Scripting\ScriptEditorPanel.resx">
       <SubType>Designer</SubType>
       <DependentUpon>ScriptEditorPanel.cs</DependentUpon>
     </EmbeddedResource>
diff --git a/Source/Core/Controls/ScriptDocumentTab.cs b/Source/Core/Controls/Scripting/ScriptDocumentTab.cs
similarity index 100%
rename from Source/Core/Controls/ScriptDocumentTab.cs
rename to Source/Core/Controls/Scripting/ScriptDocumentTab.cs
diff --git a/Source/Core/Controls/ScriptEditorControl.Designer.cs b/Source/Core/Controls/Scripting/ScriptEditorControl.Designer.cs
similarity index 100%
rename from Source/Core/Controls/ScriptEditorControl.Designer.cs
rename to Source/Core/Controls/Scripting/ScriptEditorControl.Designer.cs
diff --git a/Source/Core/Controls/ScriptEditorControl.cs b/Source/Core/Controls/Scripting/ScriptEditorControl.cs
similarity index 100%
rename from Source/Core/Controls/ScriptEditorControl.cs
rename to Source/Core/Controls/Scripting/ScriptEditorControl.cs
diff --git a/Source/Core/Controls/ScriptEditorControl.resx b/Source/Core/Controls/Scripting/ScriptEditorControl.resx
similarity index 100%
rename from Source/Core/Controls/ScriptEditorControl.resx
rename to Source/Core/Controls/Scripting/ScriptEditorControl.resx
diff --git a/Source/Core/Controls/ScriptEditorPanel.Designer.cs b/Source/Core/Controls/Scripting/ScriptEditorPanel.Designer.cs
similarity index 100%
rename from Source/Core/Controls/ScriptEditorPanel.Designer.cs
rename to Source/Core/Controls/Scripting/ScriptEditorPanel.Designer.cs
diff --git a/Source/Core/Controls/ScriptEditorPanel.cs b/Source/Core/Controls/Scripting/ScriptEditorPanel.cs
similarity index 100%
rename from Source/Core/Controls/ScriptEditorPanel.cs
rename to Source/Core/Controls/Scripting/ScriptEditorPanel.cs
diff --git a/Source/Core/Controls/ScriptEditorPanel.resx b/Source/Core/Controls/Scripting/ScriptEditorPanel.resx
similarity index 100%
rename from Source/Core/Controls/ScriptEditorPanel.resx
rename to Source/Core/Controls/Scripting/ScriptEditorPanel.resx
diff --git a/Source/Core/Controls/ScriptEditorPreviewControl.Designer.cs b/Source/Core/Controls/Scripting/ScriptEditorPreviewControl.Designer.cs
similarity index 100%
rename from Source/Core/Controls/ScriptEditorPreviewControl.Designer.cs
rename to Source/Core/Controls/Scripting/ScriptEditorPreviewControl.Designer.cs
diff --git a/Source/Core/Controls/ScriptEditorPreviewControl.cs b/Source/Core/Controls/Scripting/ScriptEditorPreviewControl.cs
similarity index 100%
rename from Source/Core/Controls/ScriptEditorPreviewControl.cs
rename to Source/Core/Controls/Scripting/ScriptEditorPreviewControl.cs
diff --git a/Source/Core/Controls/ScriptEditorPreviewControl.resx b/Source/Core/Controls/Scripting/ScriptEditorPreviewControl.resx
similarity index 100%
rename from Source/Core/Controls/ScriptEditorPreviewControl.resx
rename to Source/Core/Controls/Scripting/ScriptEditorPreviewControl.resx
diff --git a/Source/Core/Controls/ScriptFileDocumentTab.cs b/Source/Core/Controls/Scripting/ScriptFileDocumentTab.cs
similarity index 100%
rename from Source/Core/Controls/ScriptFileDocumentTab.cs
rename to Source/Core/Controls/Scripting/ScriptFileDocumentTab.cs
diff --git a/Source/Core/Controls/ScriptLumpDocumentTab.cs b/Source/Core/Controls/Scripting/ScriptLumpDocumentTab.cs
similarity index 100%
rename from Source/Core/Controls/ScriptLumpDocumentTab.cs
rename to Source/Core/Controls/Scripting/ScriptLumpDocumentTab.cs