Configuring Hammer for Half-Life
Half-Life maps are designed using Hammer Editors 3.3 through 3.5, and are powered by the GoldSrc, 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
C:\
- Have Half-Life/SDK files NOT under your Steam folder.
- Obtained your copy of Half-Life through any non-Steam distributor, or CD-ROM.
Contents
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.
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
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.[confirm]
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.
Hammer might not recognize the compiler executables and throw an error at compile time if the paths contain more than one whitespace. You can:
- Remove whitespaces in the paths. So you can move or rename the
common\Half-Life SDK\Hammer Editor\tools
folder. - Wrap the paths in double quotes like so:
"<steamapps>\common\Half-Life SDK\Hammer Editor\tools\<executable>.exe"
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.