Hammer Editor for Garry's Mod: Setup and Your First Map
Set up the Hammer Editor for GMod: where Hammer lives, how to check the game configuration, build a first room, compile it and load it in game.
The Hammer Editor ships with Garry's Mod: you will find hammer.exe in the bin folder of your GMod installation, and there is nothing extra to buy. After launching it you check the game configuration, build a sealed room with a spawn point and a light, compile with F9 and load the map in game. This article walks you through the whole path once.
Where Hammer lives and which version to use
In Steam, open the local files of Garry's Mod (right-click the game, then "Manage" and "Browse local files"). The editor is here:
steamapps/common/GarrysMod/bin/hammer.exe
Create a shortcut, because Hammer does not show up as its own entry in the Steam library.
You will come across three variants:
- Hammer from the GMod folder: the right choice for GMod maps. Entity definitions and compile tools match the game.
- Source SDK and Source SDK Base 2013: listed in Steam under "Tools" and bundled with Hammer for other Source games. You do not need them for GMod.
- Hammer++: an extended version developed by the community. The GMod build is copied into the game's
bin/win64folder, while the bundled Hammer stays inbin, and it is started through its own executable. Hammer++ works with the same VMF files and calls GMod's own compile tools, but adds things like a lighting preview in the 3D view. It is not made by Valve.
What you learn in one variant applies to the other. You can start with the bundled Hammer and switch later.
Check the game configuration
Hammer needs to know which game you are building for. The GMod version usually comes configured already, but a quick look is worth it. Open Tools > Options:
- On the Game Configurations tab, Garry's Mod should be the selected configuration. Under "Game Data files" you should see
garrysmod.fgdfrom thebinfolder. It describes every entity Hammer offers. - The "Game Directory" points to the
garrysmodfolder that containsgameinfo.txt. - On the Build Programs tab,
vbsp.exe,vvis.exeandvrad.exefrom thebinfolder are entered. The target directory for compiled maps isgarrysmod/maps.
If the FGD file is missing, the entity list is empty. If the target directory is wrong, the game will not find your map later.
The most important tools
| Tool | Shortcut | What it is for |
|---|---|---|
| Selection Tool | Shift+S | Select, move and scale objects |
| Block Tool | Shift+B | Draw brushes, the basic geometry |
| Entity Tool | Shift+E | Place point entities such as spawns or lights |
| Texture Application | Shift+A | Apply textures to individual faces |
| Clipping Tool | Shift+X | Cut brushes cleanly |
| Vertex Tool | Shift+V | Move vertices |
In the 3D view, Z toggles mouse look and W, A, S and D move the camera. [ and ] change the grid size. For scale: a standing player is 72 units tall. For architecture, mappers commonly reckon 16 units to one foot, about 30 centimetres; treat that as a rule of thumb.
Your first map in six steps
- Create and save a new map.
File > New, then save it as a VMF. Use a lowercase name without spaces, for examplegm_testroom. - Build a room. Draw a floor with the Block Tool, confirm with Enter, then add four walls and a ceiling as separate brushes. An interior of 512 by 512 units and 128 units high is enough to start. The brushes have to meet without gaps.
- Place a spawn point. Pick
info_player_startin the Entity Tool and click the floor in the 3D view. The entity must not be stuck in the floor. - Place a light. Put a
lightentity in the middle of the room below the ceiling. Without any light entity the map appears evenly bright and without shadows in game. - Compile. Press F9. In the "Run Map" dialog leave BSP, VIS and RAD on "Normal" and confirm. What happens during this step is covered in VBSP, VVIS and VRAD explained.
- Load it in game. Hammer starts the game after compiling unless "Don't run the game after compiling" is ticked. Otherwise start GMod yourself and type
map gm_testroominto the console.
The result is a file called gm_testroom.bsp in garrysmod/maps. The VMF remains your editable source file. What exactly is inside a BSP is explained in What is a BSP file?.
Typical beginner mistakes
- Leak: The room is not sealed or an entity sits outside of it. The compile then reports
leaked. The fix is described in Fix a map leak error. - Giant box around the map: A large hollow box around everything does seal the map, but it ruins the visibility calculation and makes compiles longer. Find the actual gap instead.
- Carve tool: It slices brushes into many messy pieces. Use the Clipping Tool.
- Working off the grid: Tiny gaps between brushes cause leaks and lighting errors. Stay on the grid.
- Everything as a world brush: Turn small details such as pillars or window frames into
func_detailwithCtrl+T. Why this matters is shown in Optimize GMod map performance. - No check before compiling:
Alt+Popens "Check for Problems" and catches many errors before you lose time compiling.
If the compile log contains a message you cannot place, you can paste the log into the Map Scanner. It detects root causes, follow-up errors and matching fixes in VBSP, VVIS and VRAD logs.
FAQ
Is the Hammer Editor free?
Hammer costs nothing extra. It is part of Garry's Mod and other Source games, so all you need is the game itself in your Steam library.
Do I need Counter-Strike: Source for mapping?
No. Since the July 2025 update GMod has shipped most textures, models and sounds from Counter-Strike: Source itself, so players no longer need the game for them. Its maps, music and voice-over are not included.
Should I start with Hammer or Hammer++?
Both work. The bundled Hammer is ready to use right away, Hammer++ is more comfortable in daily work. The basic controls and the VMF format are the same, and both use GMod's compile tools, so switching later costs you little.
Where does my compiled map end up?
The BSP is copied into the directory entered under Build Programs, normally garrysmod/maps. The VMF stays where you saved it. The compile log is written next to it as a text file.