Configuring Hammer for Half-Life

Half-Life maps are designed using Hammer Editors 3.3 through 3.5, and are powered by the , the predecessor to the current series, AKA the Source SDK. If you don't already have Half-Life 1's editor, [steam://run/254430 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.
==Game Configurations==
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.
===Configuration===
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.
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===
The FGD tells Hammer to automatically select aiscripted_sequence from the entity list when using the Entity Tool. You can change the default to any valid point entity you want.
===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 common\Half-Life.
===Mod Directory===
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.
===Game Directory===
This is the folder holding game-specific files, such as models, animations, textures, etc. For Half-Life, this is at common\Half-Life\valve.
===RMF Directory===
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.
==Build Programs==
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.
===Game Executable===
A .exe file to open when the map finishes compiling. Unless you have some non-gaming purpose for Hammer, this should probably be common\Half-Life\hl.exe.
===CSG executable===
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 executable===
BSP generates visleafs, based off the geometry made by CSG. This is at common\Half-Life SDK\Hammer Editor\tools\qbsp2.exe.
===VIS executable===
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 executable===
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\[game]\maps.
==Textures==
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.
Look in 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. 
Category:Level Design
Category:Tutorials
Category:Half-Life
Category:Hammer