Hazard Team Compile Tool - Hammer Map Compiler Replacement

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    Logging in with you Steam ID has now been restored ♥

    • dky.tehkingd.u wrote:

      New bugfix update! I'm publishing a new build in response to some issues that were brought to my attention in the past few days.

      Here's the changelog:
      • Changed the new Valve KeyValues parser to allow parsing of files that are not intended to include escape sequences like '\n' or '\t'.

      (This should fix a bug where certain totally normal character sequences in GameConfig.txt could be accidentally interpreted as special escaped characters, effectively breaking HTCT's ability to parse the file.)[*]Fixed a bug in the new Valve KeyValues parser where it would incorrectly accept a VDF file as valid if it has more opening braces than closing braces.
      [*]Fixed a bug where HTCT would fail to run maps in-game for SDK Base mods that require the -game parameter to be set when running hl2.exe.
      [*]Changed the conflict resolution system for config files to be more strict.

      (As a result, grandfathered config.cfg files will now be more properly updated between HTCT versions.)Big shout-out to hscsguy, who brought some of these issues to my attention a few days ago and was super-helpful in helping me pinpoint and fix them!

      Here's the link to the latest build:

      htdlhost.herokuapp.com/files/download/htct-0.4.1-BETA.zip/
      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.

      The Javid wrote:

      I can't wait til we ditch that pattern too. It only blends in with gravel and shitty couches.
    • JeffMOD wrote:

      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.

      Source Code

      1. "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.

      The Javid wrote:

      I can't wait til we ditch that pattern too. It only blends in with gravel and shitty couches.
    • 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.


      | Core Developer, PSR Digital | Black Mesa Hazard Course | 403 Aurelius |
      |Author, Hazard Team Compile Tool - Hammer Map Compiler Replacement |

      The post was edited 1 time, last by dky.tehkingd.u ().

    • 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.
      Chon Kemp - Level Designer and Community Manager
      Creator of the Black Mesa "Uncut" Mods - Surface Tension Uncut and
      On a Rail Uncut
      My dev blog on the development of dm_gasworks
    • 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.


      | Core Developer, PSR Digital | Black Mesa Hazard Course | 403 Aurelius |
      |Author, Hazard Team Compile Tool - Hammer Map Compiler Replacement |
    • 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?
      What a shame
    • 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:

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


      | Core Developer, PSR Digital | Black Mesa Hazard Course | 403 Aurelius |
      |Author, Hazard Team Compile Tool - Hammer Map Compiler Replacement |
    • Relevant gameconfig.txt:

      Source Code

      1. "Half-Life 2: Episode Two"
      2. {
      3. "GameDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\ep2"
      4. "Hammer"
      5. {
      6. "GameData0" "C:\Program Files (x86)\Steam\SteamApps\common\Half-Life 2\bin\base.fgd"
      7. "GameData1" "C:\Program Files (x86)\Steam\SteamApps\common\Half-Life 2\bin\halflife2.fgd"
      8. "GameData2" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\bin\base.fgd"
      9. "GameData3" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\bin\halflife2.fgd"
      10. "GameData4" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\bin\halflife2.fgd"
      11. "TextureFormat" "5"
      12. "MapFormat" "4"
      13. "DefaultTextureScale" "0.250000"
      14. "DefaultLightmapScale" "16"
      15. "GameExe" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\hl2.exe"
      16. "DefaultSolidEntity" "func_detail"
      17. "DefaultPointEntity" "info_player_start"
      18. "BSP" "C:\Program Files (x86)\Steam\SteamApps\common\SourceFilmmaker\game\bin\vbsp.exe"
      19. "Vis" "C:\Program Files (x86)\Steam\SteamApps\common\SourceFilmmaker\game\bin\vvis.exe"
      20. "Light" "C:\Program Files (x86)\Steam\SteamApps\common\SourceFilmmaker\game\bin\vrad.exe"
      21. "GameExeDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer"
      22. "MapDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\ep2\maps"
      23. "BSPDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\ep2\maps"
      24. "CordonTexture" "tools\toolsskybox"
      25. "MaterialExcludeCount" "0"
      26. }
      27. }
      Display All





      Relevant gameinfo.txt:


      Source Code

      1. "GameInfo"
      2. {
      3. game "HALF-LIFE 2"
      4. title "HALF-LIFE'"
      5. title2 "== episode two =="
      6. type singleplayer_only
      7. supportsvr 1
      8. FileSystem
      9. {
      10. SteamAppId 420 // This will mount all the GCFs we need (240=CS:S, 220=HL2).
      11. //
      12. // The code that loads this file automatically does a few things here:
      13. //
      14. // 1. For each "Game" search path, it adds a "GameBin" path, in <dir>\bin
      15. // 2. For each "Game" search path, it adds another "Game" path in front of it with _<langage> at the end.
      16. // For example: c:\hl2\cstrike on a french machine would get a c:\hl2\cstrike_french path added to it.
      17. // 3. For the first "Game" search path, it adds a search path called "MOD".
      18. // 4. For the first "Game" search path, it adds a search path called "DEFAULT_WRITE_PATH".
      19. //
      20. //
      21. // Search paths are relative to the base directory, which is where hl2.exe is found.
      22. //
      23. // |gameinfo_path| points at the directory where gameinfo.txt is.
      24. // We always want to mount that directory relative to gameinfo.txt, so
      25. // people can mount stuff in c:\mymod, and the main game resources are in
      26. // someplace like c:\program files\valve\steam\steamapps\half-life 2.
      27. //
      28. SearchPaths
      29. {
      30. // First, mount all user customizations. This will search for VPKs and subfolders
      31. // and mount them in alphabetical order. The easiest way to distribute a mod is to
      32. // pack up the custom content into a VPK. To "install" a mod, just drop it in this
      33. // folder.
      34. //
      35. // Note that this folder is scanned only when the game is booted.
      36. game+mod ep2/custom/*
      37. game+mod episodic/custom/*
      38. game+mod hl2/custom/*
      39. // We search VPK files before ordinary folders, because most files will be found in
      40. // VPK and we can avoid making thousands of file system calls to attempt to open files
      41. // in folders where they don't exist. (Searching a VPK is much faster than making an operating
      42. // system call.)
      43. game_lv hl2/hl2_lv.vpk
      44. game+mod ep2/ep2_sound_vo_english.vpk
      45. game+mod ep2/ep2_pak.vpk
      46. game |all_source_engine_paths|episodic/ep1_sound_vo_english.vpk
      47. game |all_source_engine_paths|episodic/ep1_pak.vpk
      48. game |all_source_engine_paths|hl2/hl2_sound_vo_english.vpk
      49. game |all_source_engine_paths|hl2/hl2_pak.vpk
      50. game |all_source_engine_paths|hl2/hl2_textures.vpk
      51. game |all_source_engine_paths|hl2/hl2_sound_misc.vpk
      52. game |all_source_engine_paths|hl2/hl2_misc.vpk
      53. platform |all_source_engine_paths|platform/platform_misc.vpk
      54. // Now search loose files. We'll set the directory containing the gameinfo.txt file
      55. // as the first "mod" search path (after any user customizations). This is also the one
      56. // that's used when writing to the "mod" path.
      57. mod+mod_write+default_write_path |gameinfo_path|.
      58. // Add the HL2 directory as a game search path. This is also where where writes
      59. // to the "game" path go.
      60. game+game_write ep2
      61. // Where the game's binaries are
      62. gamebin episodic/bin
      63. // Last, mount in shared HL2 loose files
      64. game |all_source_engine_paths|episodic
      65. game |all_source_engine_paths|hl2
      66. platform |all_source_engine_paths|platform
      67. }
      68. }
      69. }
      Display All
      What isn't properly mounted?

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

      Source Code

      1. "Half-Life 2: Episode Two"
      2. {
      3. "GameDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\ep2"
      4. "Hammer"
      5. {
      6. "GameData0" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\bin\halflife2.fgd"
      7. "TextureFormat" "5"
      8. "MapFormat" "4"
      9. "DefaultTextureScale" "0.250000"
      10. "DefaultLightmapScale" "16"
      11. "GameExe" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\hl2.exe"
      12. "DefaultSolidEntity" "func_detail"
      13. "DefaultPointEntity" "info_player_start"
      14. "BSP" "C:\Program Files (x86)\Steam\SteamApps\common\SourceFilmmaker\game\bin\vbsp.exe"
      15. "Vis" "C:\Program Files (x86)\Steam\SteamApps\common\SourceFilmmaker\game\bin\vvis.exe"
      16. "Light" "C:\Program Files (x86)\Steam\SteamApps\common\SourceFilmmaker\game\bin\vrad.exe"
      17. "GameExeDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer"
      18. "MapDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\sourcesdk_content\ep2\mapsrc"
      19. "BSPDir" "C:\Program Files (x86)\Steam\SteamApps\common\Source SDK Base 2013 Singleplayer\ep2\maps"
      20. "CordonTexture" "tools\toolsskybox"
      21. "MaterialExcludeCount" "0"
      22. }
      23. }
      Display All
      and now the gameinfo:

      Source Code

      1. "GameInfo"
      2. {
      3. game "HALF-LIFE 2"
      4. title "HALF-LIFE'"
      5. title2 "== episode two =="
      6. type singleplayer_only
      7. supportsvr 1
      8. FileSystem
      9. {
      10. SteamAppId 420 // This will mount all the GCFs we need (240=CS:S, 220=HL2).
      11. //
      12. // The code that loads this file automatically does a few things here:
      13. //
      14. // 1. For each "Game" search path, it adds a "GameBin" path, in <dir>\bin
      15. // 2. For each "Game" search path, it adds another "Game" path in front of it with _<langage> at the end.
      16. // For example: c:\hl2\cstrike on a french machine would get a c:\hl2\cstrike_french path added to it.
      17. // 3. For the first "Game" search path, it adds a search path called "MOD".
      18. // 4. For the first "Game" search path, it adds a search path called "DEFAULT_WRITE_PATH".
      19. //
      20. //
      21. // Search paths are relative to the base directory, which is where hl2.exe is found.
      22. //
      23. // |gameinfo_path| points at the directory where gameinfo.txt is.
      24. // We always want to mount that directory relative to gameinfo.txt, so
      25. // people can mount stuff in c:\mymod, and the main game resources are in
      26. // someplace like c:\program files\valve\steam\steamapps\half-life 2.
      27. //
      28. SearchPaths
      29. {
      30. // First, mount all user customizations. This will search for VPKs and subfolders
      31. // and mount them in alphabetical order. The easiest way to distribute a mod is to
      32. // pack up the custom content into a VPK. To "install" a mod, just drop it in this
      33. // folder.
      34. //
      35. // Note that this folder is scanned only when the game is booted.
      36. game+mod ep2/custom/*
      37. game+mod episodic/custom/*
      38. game+mod hl2/custom/*
      39. // We search VPK files before ordinary folders, because most files will be found in
      40. // VPK and we can avoid making thousands of file system calls to attempt to open files
      41. // in folders where they don't exist. (Searching a VPK is much faster than making an operating
      42. // system call.)
      43. game_lv hl2/hl2_lv.vpk
      44. game+mod ep2/ep2_sound_vo_english.vpk
      45. game+mod ep2/ep2_pak.vpk
      46. game |all_source_engine_paths|episodic/ep1_sound_vo_english.vpk
      47. game |all_source_engine_paths|episodic/ep1_pak.vpk
      48. game |all_source_engine_paths|hl2/hl2_sound_vo_english.vpk
      49. game |all_source_engine_paths|hl2/hl2_pak.vpk
      50. game |all_source_engine_paths|hl2/hl2_textures.vpk
      51. game |all_source_engine_paths|hl2/hl2_sound_misc.vpk
      52. game |all_source_engine_paths|hl2/hl2_misc.vpk
      53. platform |all_source_engine_paths|platform/platform_misc.vpk
      54. // Now search loose files. We'll set the directory containing the gameinfo.txt file
      55. // as the first "mod" search path (after any user customizations). This is also the one
      56. // that's used when writing to the "mod" path.
      57. mod+mod_write+default_write_path |gameinfo_path|.
      58. // Add the HL2 directory as a game search path. This is also where where writes
      59. // to the "game" path go.
      60. game+game_write ep2
      61. // Where the game's binaries are
      62. gamebin episodic/bin
      63. // Last, mount in shared HL2 loose files
      64. game |all_source_engine_paths|episodic
      65. game |all_source_engine_paths|hl2
      66. platform |all_source_engine_paths|platform
      67. }
      68. }
      69. }
      Display All

      The post was edited 1 time, last by Fitne Por ().