Configuring Hammer for Half-Life
Half-Life maps are designed using Hammer Editors 3.3 through 3.5, and are powered by the GoldSource Engine, the predecessor to the current Hammer 4.X series, AKA the Source SDK. If you don't already have Half-Life 1's editor, click here to download. In order for the Hammer Editor to make maps for Half-Life, it needs access to certain files and programs, such as compile tools, game data, and so-on. This page will give you a quick run through on how to set everything up, and get on your way to map making.
- Have Steam, Half-Life, or SDK files installed on a drive that is not
- Have Half-Life/SDK files NOT under your Steam folder.
- Obtained your copy of Half-Life through any non-Steam distributor, or CD-ROM.
- 1 Game Configurations
- 2 Build Programs
- 3 Textures
- 4 Saving and Compiling
- 5 Running your Map without Hammer
Launch Hammer from Steam. (Steam will call it "Half-Life SDK".) Click on Tools, Options... to open the configuration window. Go to the tab labeled Game Configurations.
Hammer allows you to setup multiple configurations, so if you want to make maps for more than one GoldSource game, you can make maps for each on the same editor. This section allows you to add, remove, or edit different configurations.
Click Edit (the wide one at the top, not the smaller one below), Add, and name your configuration whatever you want. Click OK, Close.
Game Data Files
Click Add. Select the file at
common\Half-Life SDK\Hammer Editor\fgd\half-life\halflife.fgd. This file should exist there. If it doesn't, you can make it yourself by copying all the information on this page. You can select and use extra FGDs, but anything in them not coded to work in the Half-Life engine will not work. For example: the CS hostage entity.
C:\and include the full path to the folder or file.
The Texture Format option should now say WAD3 (Half-Life / TFC) and the Map Type option should now say HalfLife / TFC. These should be the only options listed for either.
Default PointEntity class
Default SolidEntity class
The FGD tells Hammer to automatically select
button_target from the entity list when you tie a brush to an entity. You can change the default to any valid brush entity you want.
Game Executable Directory
This is the folder containing hl.exe. Select the folder
Set this to the folder containing everything specific to your mod/game, such as
common\Half-Life\bshift. If you're not mapping for a mod, you can set it to the
valve folder, but it shouldn't make a difference.[confirm]
This is the folder holding game-specific files, such as models, animations, textures, etc. For Half-Life, this is at
This is where Hammer will save all files related to your map every time you compile. The engine looks in
common\Half-Life\[your game folder]\maps for maps, however, Hammer will generate quite a few files related to your map when saving or compiling, so you may find it preferable to have a separate folder to contain them all (usually named
bspsrc). Compiled map files can be stored in another folder, which we will get to configuring near the end.
Now go to the tab labeled Build Programs. These are the programs that process your level geometry, determine where to optimize for visibility, and add lighting to your map. Many mappers use Zoner's Half-Life Tools (ZHLT), a fan made modification of the original tools developed for Half-Life containing many fixes and improvements. If you use those tools, you will have to give filepaths for those instead of the ones talked about below.
A .exe file to open when the map finishes compiling. Unless you have some non-gaming purpose for Hammer, this should probably be
CSG takes your brush geometry and turns it into something readable by the engine. It also adds entities, like
info_player_start to your map. This is at
common\Half-Life SDK\Hammer Editor\tools\qcsg.exe.
BSP generates visleafs, based off the geometry made by CSG. This is at
common\Half-Life SDK\Hammer Editor\tools\qbsp2.exe.
VIS determines what is visible from within each visleaf, which is used to save RAM for computers. This is at
common\Half-Life SDK\Hammer Editor\tools\vis.exe.
RAD adds unchanging and toggleable lighting into your map, so it won't look so flat and boring. Dynamic lighting, like the HEV flashlight, is done directly in the game. This is at
common\Half-Life SDK\Hammer Editor\tools\qrad.exe.
Compiled Map Directory
This is where the game usually looks for maps. This should be
common\Half-Life\[your game folder]\maps.
Go to the tab labeled Textures. Textures are the images used to make your cubes and cylinders look like crates and barrels. GoldSource textures are stored inside of large image library files known as WAD3 files. You can insert any WAD files you wish, whether they come from other GoldSource games, the internet, or if you make them yourself. It's highly recommended however that you do not edit any of the default WAD files that come with your game, especially if your game is not a Steam purchased copy.
If using Valve's default compilation tools, it is recommended you only add the WADs you need for the map you are editing to prevent unnecessary asset loading in-game. Most newer, community-made compilation tools automatically exclude WADs that are not being used by the map.
common\Half-Life SDK\Texture Wad Files\ for WADs.
Saving and Compiling
When you've successfully configured your Hammer Editor to your liking, click OK, restart Hammer, and test to make sure you've configured Hammer correctly. If you've created more than one configuration, you can choose which to use on startup.
Quickly test your map by making a medium-sized box, right clicking it in a 2D view, and clicking Make Hollow, adding an
info_player_start entity, and a
light entity, then compiling with all settings on Normal. If all went well you should see something like this:
Running your Map without Hammer
It shouldn't happen, but if you're unable to run your map directly from Hammer, keep the game open while you edit your map. When compiling finishes, open the console by pressing
`, and type
restart, or if the map's not already open,
map mapname to load/reload the map with your changes added.