How to Make a Map With Valve Hammer Editor

Get to know what brushes do., Understand entities., Become familiar with textures., Consider what game you're building for., Go to File -> New (or Control + N) to create a new map., Select the "tools/toolsnodraw" texture from the texture browser...

21 Steps 9 min read Advanced

Step-by-Step Guide

  1. Step 1: Get to know what brushes do.

    Brushes are essentially the backbone to the map; it's impossible to have a map without brushes.

    Brushes are used to create many essential parts of a map including, but not limited to: world geometry, the skybox, area triggers, and displacements.

    Brushes are created with the 'Block Tool' located on the panel at the far left of the screen (or alternatively press Shift + B).

    The block tool can create arches, blocks, cylinders, spheres, spikes, toruses, and wedges, but right now we'll just focus on making a simple block.

    With the 'Block Tool' enabled (and making sure that at the lower right corner of the screen, the 'Categories' tab is set to 'Primitives' and the 'Objects' tab is set to 'Block') move the mouse cursor to any point on any 2D view grid and drag the left-mouse button to the size of the brush you want.

    Make sure that it looks right in all three grids (Top, Side, and Front).

    Press 'Enter' on the keyboard or right-click the mouse in the 2D grid and select "Create Object" to create the brush.
  2. Step 2: Understand entities.

    Entities are essentially any objects in Hammer Editor that are not world brushes.

    Most entities perform some sort of action, like lighting a room, teleporting a player to another part of the map, or laying down a route path for an NPC (Non-Player Character).Entities can be split into two categories: brush entities and point entities.

    Brush entities are, rather obviously, entities made from brushes.

    Examples of brush entities include, but are not limited to: trigger brushes, areaportals, hint brushes, and physics brushes.

    To make a brush entity, you first need to create a brush (refer to the "Brushes" section above).

    Once the brush is created, select it with the 'Selection Tool' located at the top of the left panel (or press Shift + S, or simply press the Escape key (Esc) to automatically enable the 'Selection Tool').

    With the brush selected, "tie" the brush to an entity by moving the mouse cursor to the 'Tools' menu at the top of the screen and selecting 'Tie to Entity' from the drop-down menu (or, more popularly, by simply hitting Ctrl + T).

    After you have tied the brush to an entity, the 'Object Properties' menu will pop up on screen.

    By default, it will become a func_detail entity (beginners probably won't need to know what this is yet).

    If you want it to become something other than a func_detail brush, simply select one of the many brush entity types from the drop down menu.

    Hit apply and you now have a brush entity in your map.

    Point entities are a little different from brush entities in a few ways.

    First off, they exist on a single point on the grid by using the "Entity Tool" on the left side of the screen (Shift + E for the keyboard shortcut).

    Second, they are always accompanied with some sort of visual prop model, even though some entities (such as lights and logic relays) will be invisible in the game.

    Point entities are used for many things from lighting and ambient sounds, to inserting spawn points, props, and navigation nodes.

    To insert a point entity, click the 'Entity Tool' at the panel on the left of the screen (or press Shift + E), then look at the lower right corner of the screen.

    Under the 'Categories' tab it will say 'Entities' and under the 'Objects' tab will be the name of the currently selected entity.

    By default, it'll be a spawn point for whatever game you are mapping (ex. "info_player_deathmatch" for Half-Life 2:
    Deathmatch, "info_player_terrorist" for Counter-Strike:
    Source, etc.).

    You can filter through the different point entities by simply typing it in the 'Objects' tab.

    So if you wanted to insert a light, simply type in "light" in the 'Objects' tab and it'll filter all entities with "light" in it.

    Once you have the desired entity selected, pick a point on a grid where you'd like to place the entity and click the left mouse button (you may also left click in the 3d camera
    - keep in mind that if you click on the 3D camera, the entity will be created automatically, while if you click on the 2D grid, you'll have to press enter before it is created).

    Once it is created and you're satisfied with the placement, press the Escape (Esc) key on the keyboard and you have a point entity in your map. , Textures define what your brushes look like, as well as assigning material properties to brushes.

    While most textures are applied on brushes for aesthetic appeal in game, they can be used for optimization and organizational purposes.

    For example, a trigger_multiple brush entity could receive any texture, but it'd be wise for organizational reasons to texture it with either the tools/toolstrigger or tools/toolsinvisible texture.

    Another example is tools/toolsnodraw.

    This is definitely one of the most important textures to use, because any brush face textured with tools/toolsnodraw will not be rendered in the game; therefore, it is wise to create brushes with no draw first, then apply the desired texture to only the brush faces the player can see from the player's point-of-view in the game.

    Trigger, invisible, and nodraw textures will appear in the 'Auto' visgroup for easy hiding or viewing.

    To apply a texture to a brush face, you need to click on the 'Texture Application' tool on the panel to the left of the screen (or simply press Shift + A).

    Once that is activated, the 'Face Edit Sheet' window will appear, and will be on the 'Material' Tab by default.

    Around the middle of the window, you'll see what texture is currently selected.

    You can browse for different textures by clicking the 'Browse' button, but there are literally thousands of textures to choose from.

    Thankfully, there is a filter for you to use, so if you have an idea of what texture you want, like a wall texture for instance, just type "wall" in the texture filter and all textures with "wall" will be visible in the texture browser.

    To see all textures again, simply clear the filter box.

    Once you have found a suitable texture, double-click it and the texture browser will close, taking you back to the Face Edit Sheet.

    If you already have a brush made, move the mouse cursor over to the 3D window, navigate over to the brush if necessary by pressing "Z" and then using WSAD to move to the brush, and right-click on the brush face(s) that you want to texture.

    Once you're satisfied, close the Face Edit Sheet.

    To apply a texture to the entire brush at once, as opposed to just one face at a time, first select the texture you wish to use.

    Next, select the brush you wish to edit.

    Finally, with the brush still selected, move your mouse cursor over to the "Apply Current Texture" tool (no keyboard shortcuts, unfortunately).

    Select the tool and the entire brush will now be covered in the selected texture. , Please note that the following map will be made under the Counter-Strike:
    Source configurations, so there may be discrepancies if you're mapping for another game.

    If there are any major game-specific steps that are required, this article will address those issues., This will give you the space necessary to create the map. , It will save you a lot of headaches in the long run. , Then drag the left mouse button along the 2D top-view grid to create a box (a "brush") to create the floor.

    You can make it any dimension you choose, but for this example, it'll be 512(Length), 512(Width), and 32(Height).

    Press the "Enter" key on the keyboard (or right-click the mouse and select "Create Object") to create the brush. , For this example, the walls are going to be 512(Length), 32(Width), and 256(Height). , While holding down the "Shift" key (holding "Shift" and dragging clones brushes), drag the newly cloned wall brush to the opposite end of the room. , Left-click on the cloned brushes once to enter "Rotate" mode (represented by a circle on the corners of the selected brushes) and rotate them 90 degrees and line them flush with the floor and other walls. , There shouldn't be any gaps in the room. , Filter with key words such as "wall"

    "floor"

    "ceiling"

    etc.

    Remember to texture only the faces that the player will be able to see.

    Textures that have nothing to do with your theme will look ugly in the final product. , Regardless of what game you're mapping for, there should always be a player spawn point, so that will be the first entity in this map.

    Place an info_player_terrorist entity (or whatever respective spawn entity the game utilizes) anywhere in the map with the entity tool.

    In the case of Counter-Strike:
    Source, make sure the spawn entities are not touching the floor or they will be stuck and won't be able to enter the map (i.e. "Team is Full" bug). , For example, if a weapon needs to be reached, make the player look at that weapon.

    Or, if the player needs to go somewhere, make sure it is facing where it needs to go., This will add light to the map.

    The entity emits a light that will radiate in all directions, and its brightness and color can be changed.

    For example, if you had a BTS map, you could use dim lighting for an eerie vibe.

    Or, if you had a clean test chamber map, you could put lights in Observation Rooms and/or light strips. , Having a map with nothing to mess with is just plain boring.

    Add tons of interactions, for example:
    A cube that can go wherever the player puts it An easter egg control room that has a few buttons that do stuff.

    That is important. , Select the tools/toolsinvisible texture, then create a brush big enough to encompass the spawn points of the entire team.

    Tie the brush (Control+T), then select func_buyzone from the "Class" list under "Class Info".

    Hit "Apply"

    then under "Team Number"

    select which team will be able to use the buyzone (i.e. "Terrorist" buyzone for the Terrorist spawn location). ,
  3. Step 3: Become familiar with textures.

  4. Step 4: Consider what game you're building for.

  5. Step 5: Go to File -> New (or Control + N) to create a new map.

  6. Step 6: Select the "tools/toolsnodraw" texture from the texture browser.

  7. Step 7: Select the "Block Tool."

  8. Step 8: With the "Block Tool" still active

  9. Step 9: drag the left mouse button along the perimeter of the floor to make the walls.

  10. Step 10: Equip the "Select Tool" and select the wall brush.

  11. Step 11: Select both wall brushes by holding the "Control" key and left-clicking the original wall (assuming the cloned wall is still selected) and Shift+Drag again to create a total of four walls.

  12. Step 12: Select the floor and Shift+Drag the floor up 256 units to create the ceiling.

  13. Step 13: Take the time now to browse the textures to find something appealing for the room.

  14. Step 14: Start with a spawn point.

  15. Step 15: Make sure your spawn point is looking where it needs to go/look

  16. Step 16: so the player will automatically know what to do.

  17. Step 17: Create a basic light entity (simply called "light") at the center of the map.

  18. Step 18: Make lots of interactions.

  19. Step 19: Buy zones for a CS:S map.

  20. Step 20: Save your map by selecting File->Save (or hitting Control+S) and give it a name

  21. Step 21: then compile it by hitting F9.

Detailed Guide

Brushes are essentially the backbone to the map; it's impossible to have a map without brushes.

Brushes are used to create many essential parts of a map including, but not limited to: world geometry, the skybox, area triggers, and displacements.

Brushes are created with the 'Block Tool' located on the panel at the far left of the screen (or alternatively press Shift + B).

The block tool can create arches, blocks, cylinders, spheres, spikes, toruses, and wedges, but right now we'll just focus on making a simple block.

With the 'Block Tool' enabled (and making sure that at the lower right corner of the screen, the 'Categories' tab is set to 'Primitives' and the 'Objects' tab is set to 'Block') move the mouse cursor to any point on any 2D view grid and drag the left-mouse button to the size of the brush you want.

Make sure that it looks right in all three grids (Top, Side, and Front).

Press 'Enter' on the keyboard or right-click the mouse in the 2D grid and select "Create Object" to create the brush.

Entities are essentially any objects in Hammer Editor that are not world brushes.

Most entities perform some sort of action, like lighting a room, teleporting a player to another part of the map, or laying down a route path for an NPC (Non-Player Character).Entities can be split into two categories: brush entities and point entities.

Brush entities are, rather obviously, entities made from brushes.

Examples of brush entities include, but are not limited to: trigger brushes, areaportals, hint brushes, and physics brushes.

To make a brush entity, you first need to create a brush (refer to the "Brushes" section above).

Once the brush is created, select it with the 'Selection Tool' located at the top of the left panel (or press Shift + S, or simply press the Escape key (Esc) to automatically enable the 'Selection Tool').

With the brush selected, "tie" the brush to an entity by moving the mouse cursor to the 'Tools' menu at the top of the screen and selecting 'Tie to Entity' from the drop-down menu (or, more popularly, by simply hitting Ctrl + T).

After you have tied the brush to an entity, the 'Object Properties' menu will pop up on screen.

By default, it will become a func_detail entity (beginners probably won't need to know what this is yet).

If you want it to become something other than a func_detail brush, simply select one of the many brush entity types from the drop down menu.

Hit apply and you now have a brush entity in your map.

Point entities are a little different from brush entities in a few ways.

First off, they exist on a single point on the grid by using the "Entity Tool" on the left side of the screen (Shift + E for the keyboard shortcut).

Second, they are always accompanied with some sort of visual prop model, even though some entities (such as lights and logic relays) will be invisible in the game.

Point entities are used for many things from lighting and ambient sounds, to inserting spawn points, props, and navigation nodes.

To insert a point entity, click the 'Entity Tool' at the panel on the left of the screen (or press Shift + E), then look at the lower right corner of the screen.

Under the 'Categories' tab it will say 'Entities' and under the 'Objects' tab will be the name of the currently selected entity.

By default, it'll be a spawn point for whatever game you are mapping (ex. "info_player_deathmatch" for Half-Life 2:
Deathmatch, "info_player_terrorist" for Counter-Strike:
Source, etc.).

You can filter through the different point entities by simply typing it in the 'Objects' tab.

So if you wanted to insert a light, simply type in "light" in the 'Objects' tab and it'll filter all entities with "light" in it.

Once you have the desired entity selected, pick a point on a grid where you'd like to place the entity and click the left mouse button (you may also left click in the 3d camera
- keep in mind that if you click on the 3D camera, the entity will be created automatically, while if you click on the 2D grid, you'll have to press enter before it is created).

Once it is created and you're satisfied with the placement, press the Escape (Esc) key on the keyboard and you have a point entity in your map. , Textures define what your brushes look like, as well as assigning material properties to brushes.

While most textures are applied on brushes for aesthetic appeal in game, they can be used for optimization and organizational purposes.

For example, a trigger_multiple brush entity could receive any texture, but it'd be wise for organizational reasons to texture it with either the tools/toolstrigger or tools/toolsinvisible texture.

Another example is tools/toolsnodraw.

This is definitely one of the most important textures to use, because any brush face textured with tools/toolsnodraw will not be rendered in the game; therefore, it is wise to create brushes with no draw first, then apply the desired texture to only the brush faces the player can see from the player's point-of-view in the game.

Trigger, invisible, and nodraw textures will appear in the 'Auto' visgroup for easy hiding or viewing.

To apply a texture to a brush face, you need to click on the 'Texture Application' tool on the panel to the left of the screen (or simply press Shift + A).

Once that is activated, the 'Face Edit Sheet' window will appear, and will be on the 'Material' Tab by default.

Around the middle of the window, you'll see what texture is currently selected.

You can browse for different textures by clicking the 'Browse' button, but there are literally thousands of textures to choose from.

Thankfully, there is a filter for you to use, so if you have an idea of what texture you want, like a wall texture for instance, just type "wall" in the texture filter and all textures with "wall" will be visible in the texture browser.

To see all textures again, simply clear the filter box.

Once you have found a suitable texture, double-click it and the texture browser will close, taking you back to the Face Edit Sheet.

If you already have a brush made, move the mouse cursor over to the 3D window, navigate over to the brush if necessary by pressing "Z" and then using WSAD to move to the brush, and right-click on the brush face(s) that you want to texture.

Once you're satisfied, close the Face Edit Sheet.

To apply a texture to the entire brush at once, as opposed to just one face at a time, first select the texture you wish to use.

Next, select the brush you wish to edit.

Finally, with the brush still selected, move your mouse cursor over to the "Apply Current Texture" tool (no keyboard shortcuts, unfortunately).

Select the tool and the entire brush will now be covered in the selected texture. , Please note that the following map will be made under the Counter-Strike:
Source configurations, so there may be discrepancies if you're mapping for another game.

If there are any major game-specific steps that are required, this article will address those issues., This will give you the space necessary to create the map. , It will save you a lot of headaches in the long run. , Then drag the left mouse button along the 2D top-view grid to create a box (a "brush") to create the floor.

You can make it any dimension you choose, but for this example, it'll be 512(Length), 512(Width), and 32(Height).

Press the "Enter" key on the keyboard (or right-click the mouse and select "Create Object") to create the brush. , For this example, the walls are going to be 512(Length), 32(Width), and 256(Height). , While holding down the "Shift" key (holding "Shift" and dragging clones brushes), drag the newly cloned wall brush to the opposite end of the room. , Left-click on the cloned brushes once to enter "Rotate" mode (represented by a circle on the corners of the selected brushes) and rotate them 90 degrees and line them flush with the floor and other walls. , There shouldn't be any gaps in the room. , Filter with key words such as "wall"

"floor"

"ceiling"

etc.

Remember to texture only the faces that the player will be able to see.

Textures that have nothing to do with your theme will look ugly in the final product. , Regardless of what game you're mapping for, there should always be a player spawn point, so that will be the first entity in this map.

Place an info_player_terrorist entity (or whatever respective spawn entity the game utilizes) anywhere in the map with the entity tool.

In the case of Counter-Strike:
Source, make sure the spawn entities are not touching the floor or they will be stuck and won't be able to enter the map (i.e. "Team is Full" bug). , For example, if a weapon needs to be reached, make the player look at that weapon.

Or, if the player needs to go somewhere, make sure it is facing where it needs to go., This will add light to the map.

The entity emits a light that will radiate in all directions, and its brightness and color can be changed.

For example, if you had a BTS map, you could use dim lighting for an eerie vibe.

Or, if you had a clean test chamber map, you could put lights in Observation Rooms and/or light strips. , Having a map with nothing to mess with is just plain boring.

Add tons of interactions, for example:
A cube that can go wherever the player puts it An easter egg control room that has a few buttons that do stuff.

That is important. , Select the tools/toolsinvisible texture, then create a brush big enough to encompass the spawn points of the entire team.

Tie the brush (Control+T), then select func_buyzone from the "Class" list under "Class Info".

Hit "Apply"

then under "Team Number"

select which team will be able to use the buyzone (i.e. "Terrorist" buyzone for the Terrorist spawn location). ,

About the Author

H

Heather Patel

Committed to making practical skills accessible and understandable for everyone.

45 articles
View all articles

Rate This Guide

--
Loading...
5
0
4
0
3
0
2
0
1
0

How helpful was this guide? Click to rate: