Hazard Team Compile Tool - Hammer Map Compiler Replacement

Will you eventually support Black Mesa too?

HTCT already does support Black Mesa - It’s what we use when doing release quality compiles for the hazard course addon - in that sense, it was actually designed for working with BM.
Last I checked it didn’t have the new rad commands for Steam BM, but I expect an update will be coming for that in time.

Isn’t Black Mesa 2015’s branch unique though?

Yes. I believe you can add custom entries by editing the config.cfg file, though.
Try going down to the “sdkfolders” entry and adding in a new entry for Black Mesa.

"BM 2015" "Black Mesa" I haven’t tested it, but from my understanding of the program it should then recognize Black Mesa’s engine branch. For that matter, you should be able to add the new RAD functions pretty easily while you’re in there.

I added Black Mesa 2015 support two releases ago, back in version 0.4.0. Look at the change log.

If you’re using an older version of HTCT though (or a grandfathered config file), you can add support manually using the method that Jeff mentioned. HTCT can theoretically support virtually any modern Source game by adding entries to its config.cfg file.

If you want the new Black Mesa RAD options, you can also modify config.cfg to get HTCT to recognize those (I designed HTCT’s configuration system with exactly this kind of future-proofing in mind). If you need this feature, let me know and I’ll tell you exactly how to do it.

How useful would this be to someone like myself, who uses Hammer casually with only a very basic knowledge of level design, but still uses it enough to be irritated by compile times?
[/dumbquestion]

It won’t really help compile times so much as stop your computer from slowing to a crawl while compiling, and enable you to still do things in Hammer if you want. Unlike while compiling in Hammer, you can also monitor the compile progress as well, and easily modify switches/options/presets. And batch compiles.

Nearly everyone on the BMS team uses external compilers, we think they’re a must for Hammer. I use CompilePal but this one seems really good too. I’d recommend giving it a try.

You mean to tell me I could compile maps without my computer turning into a potato?
Hot diggity.

It’ll still turn into a bit of a potato for the more CPU-intensive compiles (I can’t control the fact that VRAD.exe is a CPU hog), but it will at least be more manageable, and Hammer won’t be completely frozen.

Agh, my antivirus is blocking it from running. I’ll have to wait until the false positive report goes through, because I have no interest in disabling the program.
Which will hopefully be sooner than later.

Yeah. I’d digitally sign the thing to stop antiviruses from freaking out (and to definitively stop Google Chrome from marking it as “dangerous”), but that costs a bunch of money that I don’t have. So… :confused:

Don’t sweat it, I know everything there is to know about not being able to afford something.
90% of my Steam games are gifts from friends, including Black Mesa.

Hey guys, I’m currently working on some maps for black mesa, and i use htct as my compiler, but for some odd reasons, htct no longer finds the game config for black mesa…(The sdk version is there, but the game configuration is blank…) I tried to redownload it, but it did nothing. (My steam folder in on the G drive for info) Any Ideas?

Well, for some odd reasons, I deleted the gameconfig.txt in the “black mesa/bin” folder, launched hammer with my map, and hammer somehow recreated a working gameconfig.txt And it’s now working

Sounds like your gameconfig.txt got corrupted somehow. Glad to hear it’s resolved.

Finally a new update. Here are the changes:

  • Added an “Ignore VMF” feature. Right click any VMF in the compile queue and select “Don’t Compile” to tell HTCT to ignore that VMF when compiling.
  • Fixed a potential bug where config.cfg would be created in the wrong directory if htct.exe is invoked from outside the directory where it is located in.
  • FIxed a bug where the “Remember Queue” feature would not properly update itself if you remove VMFs from the end of the Compile Queue.
    Here’s the download link for the latest version:

https://htdlhost.herokuapp.com/files/download/htct-0.5.0-BETA.zip/

Hey I have a problem, as seen in this compile log, look here: https://facepunch.com/showthread.php?t=1520743.

I used htct but it seems to the same problem that affects vbct but not Hammer itself.

This doesn’t really have anything to do with HTCT, and clearly isn’t really a problem with HTCT (nor VBCT). It’s almost definitely a problem with your config. Chances are your filepath isn’t properly mounted in Hammer or the SDK’s config.

Relevant gameconfig.txt:

"Half-Life 2: Episode Two" { "GameDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\ep2" "Hammer" { "GameData0" "C:\Program Files (x86)\Steam\SteamApps\common\Half-Life 2\bin\base.fgd" "GameData1" "C:\Program Files (x86)\Steam\SteamApps\common\Half-Life 2\bin\halflife2.fgd" "GameData2" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\bin\base.fgd" "GameData3" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\bin\halflife2.fgd" "GameData4" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\bin\halflife2.fgd" "TextureFormat" "5" "MapFormat" "4" "DefaultTextureScale" "0.250000" "DefaultLightmapScale" "16" "GameExe" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\hl2.exe" "DefaultSolidEntity" "func_detail" "DefaultPointEntity" "info_player_start" "BSP" "C:\Program Files (x86)\Steam\SteamApps\common\SourceFilmmaker\game\bin\vbsp.exe" "Vis" "C:\Program Files (x86)\Steam\SteamApps\common\SourceFilmmaker\game\bin\vvis.exe" "Light" "C:\Program Files (x86)\Steam\SteamApps\common\SourceFilmmaker\game\bin\vrad.exe" "GameExeDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer" "MapDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\ep2\maps" "BSPDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\ep2\maps" "CordonTexture" "tools\toolsskybox" "MaterialExcludeCount" "0" } }

Relevant gameinfo.txt:

[code]“GameInfo”
{
game “HALF-LIFE 2”
title “HALF-LIFE’”
title2 “== episode two ==”

type		singleplayer_only
supportsvr	1

FileSystem
{
	SteamAppId				420		// This will mount all the GCFs we need (240=CS:S, 220=HL2).
	//
	// The code that loads this file automatically does a few things here:
	//
	// 1. For each "Game" search path, it adds a "GameBin" path, in <dir>\bin
	// 2. For each "Game" search path, it adds another "Game" path in front of it with _<langage> at the end.
	//    For example: c:\hl2\cstrike on a french machine would get a c:\hl2\cstrike_french path added to it.
	// 3. For the first "Game" search path, it adds a search path called "MOD".
	// 4. For the first "Game" search path, it adds a search path called "DEFAULT_WRITE_PATH".
	//

	//
	// Search paths are relative to the base directory, which is where hl2.exe is found.
	//
	// |gameinfo_path| points at the directory where gameinfo.txt is.
	// We always want to mount that directory relative to gameinfo.txt, so
	// people can mount stuff in c:\mymod, and the main game resources are in
	// someplace like c:\program files\valve\steam\steamapps\half-life 2.
	//
	SearchPaths
	{
		// First, mount all user customizations.  This will search for VPKs and subfolders
		// and mount them in alphabetical order.  The easiest way to distribute a mod is to
		// pack up the custom content into a VPK.  To "install" a mod, just drop it in this
		// folder.
		//
		// Note that this folder is scanned only when the game is booted.
		game+mod			ep2/custom/*
		game+mod			episodic/custom/*
		game+mod			hl2/custom/*

		// We search VPK files before ordinary folders, because most files will be found in
		// VPK and we can avoid making thousands of file system calls to attempt to open files
		// in folders where they don't exist.  (Searching a VPK is much faster than making an operating
		// system call.)
		game_lv				hl2/hl2_lv.vpk
		game+mod			ep2/ep2_sound_vo_english.vpk
		game+mod			ep2/ep2_pak.vpk
		game				|all_source_engine_paths|episodic/ep1_sound_vo_english.vpk
		game				|all_source_engine_paths|episodic/ep1_pak.vpk
		game				|all_source_engine_paths|hl2/hl2_sound_vo_english.vpk
		game				|all_source_engine_paths|hl2/hl2_pak.vpk
		game				|all_source_engine_paths|hl2/hl2_textures.vpk
		game				|all_source_engine_paths|hl2/hl2_sound_misc.vpk
		game				|all_source_engine_paths|hl2/hl2_misc.vpk
		platform			|all_source_engine_paths|platform/platform_misc.vpk

		// Now search loose files.  We'll set the directory containing the gameinfo.txt file
		// as the first "mod" search path (after any user customizations).  This is also the one
		// that's used when writing to the "mod" path.
		mod+mod_write+default_write_path		|gameinfo_path|.

		// Add the HL2 directory as a game search path.  This is also where where writes
		// to the "game" path go.
		game+game_write		ep2

		// Where the game's binaries are
		gamebin				episodic/bin

		// Last, mount in shared HL2 loose files
		game				|all_source_engine_paths|episodic
		game				|all_source_engine_paths|hl2
		platform			|all_source_engine_paths|platform
	}
}

}[/code]What isn’t properly mounted?

EDIT: same data, from the one time my compile worked:

"Half-Life 2: Episode Two" { "GameDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\ep2" "Hammer" { "GameData0" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\bin\halflife2.fgd" "TextureFormat" "5" "MapFormat" "4" "DefaultTextureScale" "0.250000" "DefaultLightmapScale" "16" "GameExe" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\hl2.exe" "DefaultSolidEntity" "func_detail" "DefaultPointEntity" "info_player_start" "BSP" "C:\Program Files (x86)\Steam\SteamApps\common\SourceFilmmaker\game\bin\vbsp.exe" "Vis" "C:\Program Files (x86)\Steam\SteamApps\common\SourceFilmmaker\game\bin\vvis.exe" "Light" "C:\Program Files (x86)\Steam\SteamApps\common\SourceFilmmaker\game\bin\vrad.exe" "GameExeDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer" "MapDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\sourcesdk_content\ep2\mapsrc" "BSPDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\ep2\maps" "CordonTexture" "tools\toolsskybox" "MaterialExcludeCount" "0" } }and now the gameinfo:

[code]“GameInfo”
{
game “HALF-LIFE 2”
title “HALF-LIFE’”
title2 “== episode two ==”

type		singleplayer_only
supportsvr	1

FileSystem
{
	SteamAppId				420		// This will mount all the GCFs we need (240=CS:S, 220=HL2).
	
	//
	// The code that loads this file automatically does a few things here:
	//
	// 1. For each "Game" search path, it adds a "GameBin" path, in <dir>\bin
	// 2. For each "Game" search path, it adds another "Game" path in front of it with _<langage> at the end.
	//    For example: c:\hl2\cstrike on a french machine would get a c:\hl2\cstrike_french path added to it.
	// 3. For the first "Game" search path, it adds a search path called "MOD".
	// 4. For the first "Game" search path, it adds a search path called "DEFAULT_WRITE_PATH".
	//

	//
	// Search paths are relative to the base directory, which is where hl2.exe is found.
	//
	// |gameinfo_path| points at the directory where gameinfo.txt is.
	// We always want to mount that directory relative to gameinfo.txt, so
	// people can mount stuff in c:\mymod, and the main game resources are in
	// someplace like c:\program files\valve\steam\steamapps\half-life 2.
	//
	SearchPaths
	{
		// First, mount all user customizations.  This will search for VPKs and subfolders
		// and mount them in alphabetical order.  The easiest way to distribute a mod is to
		// pack up the custom content into a VPK.  To "install" a mod, just drop it in this
		// folder.
		//
		// Note that this folder is scanned only when the game is booted.
		game+mod			ep2/custom/*
		game+mod			episodic/custom/*
		game+mod			hl2/custom/*

		// We search VPK files before ordinary folders, because most files will be found in
		// VPK and we can avoid making thousands of file system calls to attempt to open files
		// in folders where they don't exist.  (Searching a VPK is much faster than making an operating
		// system call.)
		game_lv				hl2/hl2_lv.vpk
		game+mod			ep2/ep2_sound_vo_english.vpk
		game+mod			ep2/ep2_pak.vpk
		game				|all_source_engine_paths|episodic/ep1_sound_vo_english.vpk
		game				|all_source_engine_paths|episodic/ep1_pak.vpk
		game				|all_source_engine_paths|hl2/hl2_sound_vo_english.vpk
		game				|all_source_engine_paths|hl2/hl2_pak.vpk
		game				|all_source_engine_paths|hl2/hl2_textures.vpk
		game				|all_source_engine_paths|hl2/hl2_sound_misc.vpk
		game				|all_source_engine_paths|hl2/hl2_misc.vpk
		platform			|all_source_engine_paths|platform/platform_misc.vpk

		// Now search loose files.  We'll set the directory containing the gameinfo.txt file
		// as the first "mod" search path (after any user customizations).  This is also the one
		// that's used when writing to the "mod" path.
		mod+mod_write+default_write_path		|gameinfo_path|.

		// Add the HL2 directory as a game search path.  This is also where where writes
		// to the "game" path go.
		game+game_write		ep2

		// Where the game's binaries are
		gamebin				episodic/bin

		// Last, mount in shared HL2 loose files
		game				|all_source_engine_paths|episodic
		game				|all_source_engine_paths|hl2
		platform			|all_source_engine_paths|platform
	}
}

}[/code]

… That’s really strange.

Just a hunch. Have you tried pointing the VBSP, VVIS, and VRAD executables to the ones located in …\steamapps\common\Source SDK Base 2013 Singleplayer\bin\ ?

Founded in 2004, Leakfree.org became one of the first online communities dedicated to Valve’s Source engine development. It is more famously known for the formation of Black Mesa: Source under the 'Leakfree Modification Team' handle in September 2004.