How to Make a Garry's Mod Map: A Complete Guide
Posted by Fen | 22 October 2025
Ever loaded into a GMod map and thought, “I could build something better”?
You probably can, and it’s easier than most people think.
In this guide, you’ll learn how to make a Garry’s Mod map from scratch using Hammer, the same level editor behind Half-Life 2, Counter-Strike: Source, and other Source Engine games.
By the end, you’ll have a working map that loads inside Garry’s Mod, and the know-how to build anything from a small test room to a full sandbox world you can host on a Kinetic Hosting Garry’s Mod server.
Sound good? Let’s start:
1. Things You Need Before You Start
Before you learn how to make a Garry’s Mod map, there are a few things you’ll need to get set up first.
Garry’s Mod uses a map editor called Hammer, which is part of the Source Engine. It’s what you’ll use to build rooms, place lights, and eventually turn your ideas into playable maps.
You’ll need:
A Windows PC - Hammer only works on Windows (no native support for Mac or Linux).
Garry’s Mod installed via Steam - this includes everything you need to start mapping.
A bit of free storage space - compiles can create a few large files.
(Ideal) A reliable server to host your map so you can effortlessly play with friends.
(Optional) Other Source games like Half-Life 2 or CS:S - they add extra textures and props you can use inside Hammer.
The main folders you’ll use:
...\steamapps\common\GarrysMod\bin\ - where Hammer and the compile tools live.
...\steamapps\common\GarrysMod\garrysmod\maps\ - where your finished map (.bsp) ends up.
Documents\GModMapping\yourmapname\ – a good place to keep your editable project files (.vmf), screenshots, and notes.
Pro tip: Keep backups of your .vmf file (that’s your editable source).
Once you compile to .bsp, you can’t edit it again - so don’t lose the original.
2. Opening Hammer the Right Way
Hammer doesn’t show up as a separate program in your Steam library - it’s tucked away inside Garry’s Mod’s game files.
So before you start building anything, you’ll need to know where to find it (and make sure you’re using the right version).
How to open Hammer for Garry’s Mod:
In Steam, right-click Garry’s Mod and select Manage → Browse local files.
A new window will open. Go into the bin folder.
Inside, you’ll see hammer.exe - that’s the map editor.
Create a shortcut on your desktop (don’t move it - Hammer needs to stay in that folder).
When you open it:
Hammer will show four panels:
Top, front, and side views (2D) for positioning objects
3D view for seeing your map in full
It might look intimidating at first, but don’t worry - once you understand the tools and shortcuts, it starts to feel more like digital Lego than coding.
3. The Essential Tools & Controls
When you first open Hammer, it looks like a wall of buttons, grids, and weird icons.
But in reality, there are only a handful of tools you’ll use 90% of the time.
Once you know what each one does - and the few shortcuts worth memorising - you’ll make progress on your custom map a lot faster.
The main tools you’ll actually use:
Tool | Shortcut | What it does |
Selection Tool | Shift + S | Select things. You’ll use this constantly. |
Block Tool | Shift + B | Create the basic shapes of your map - walls, floors, ceilings, ramps etc. |
Entity Tool | Shift + E | Place interactive objects like spawn points, lights, and props. |
Texture Tool | Shift + A | Lets you apply or align textures, and create displacements (for hills or terrain). |
Clipping Tool | Shift + X | Cuts brushes into clean sections - great for angled walls or doors. |
Vertex Tool | Shift + V | Manually moves the corners (vertices) of brushes. Use sparingly - it’s powerful but easy to break geometry. |
Basic controls/shortcuts that make life easier:
Z → Freely move the 3D camera.
Mouse Wheel → Zoom in and out of the 2D views.
[ / ] → Change grid size (smaller = finer control).
Ctrl + Z → Undo (there’s a limit - don’t rely on it).
Ctrl + C / Ctrl + V → Copy and paste selected brushes or entities.
Shift + Drag → Duplicate an object quickly.
F9 → Compile your map (this turns it into a playable .bsp file).
Once you’re comfortable flying around and placing blocks, you’re ready to build your first playable room - the foundation every map starts with.
4. Building Your First Room
Every map - no matter how big or complex - starts with one simple thing: a sealed room.
Step 1: Create a new map
Click File → New, and you’ll see a grey grid with four panels (three 2D, one 3D).
This is your blank canvas. Don’t worry if it looks confusing - you’ll only need to touch a few tools to get started.
Step 2: Make your first room
Select the Block Tool (Shift + B).
In one of the 2D views, click and drag to draw a rectangle - this will be the base of your room.
Hit Enter to create the block.
With the block selected, go to Tools → Make Hollow, and set the value to -32.
The negative number makes Hammer hollow outwards (so you can stand inside).
You’ve just built a hollow box - your first playable room.
Step 3: Add a spawn point
You need a place for the player to start, or the game won’t load your map.
Select the Entity Tool (Shift + E).
Click somewhere on the floor inside your room.
It’ll place a default entity - by default, that’s info_player_start (your spawn point).
Step 4: Add light
Without light, your map will load in complete darkness.
With the Entity Tool, click again inside the room.
Double-click the new entity, and from the list choose light.
(Optional) Add a light_environment if you’re planning to make outdoor areas later.
Keep these simple for now - you can tweak brightness and colour later.
Step 5: Apply textures
Everything you create starts with a plain grey material.
Let’s give it something more interesting.
Select any wall or floor, then press Shift + A to open the Texture Tool.
Click Browse…, type something like “concrete” or “metal”, and double-click a texture you like.
Apply it to your walls and floor.
For any faces the player won’t see, apply tools/toolsnodraw.
This saves performance and avoids lighting bugs later.
At this point, you’ve got a small, sealed room with a spawn point and light.
That’s everything Garry’s Mod needs to load your map - so next up, we’ll test it in-game.
5. Compiling and Testing Your Map in Garry’s Mod
You’ve got a room, a light, and a spawn point - now it’s time to actually see it in-game.
To do that, you need to compile your map. This process takes your editable Hammer file (.vmf) and turns it into a playable map file (.bsp) that Garry’s Mod can load.
Step 1: Save your project
Before compiling, click File → Save As and name your file something clean like: “gm_testroom.vmf”
Avoid spaces and capital letters.
Step 2: Compile your map
Press F9 on your keyboard (or go to File → Run Map).
A window will pop up with compile options.
For your first test, choose:
Run BSP, Run VIS, and Run RAD (all ticked)
Set to Normal (or Fast if you want a quicker test)
Click OK.
Hammer will start building your map - converting geometry, calculating visibility, and baking lighting.
When it’s done, Garry’s Mod should automatically launch and load into your map.
Step 3: Load and explore
Once you’re in GMod:
Open the Spawn Menu → Start New Game → Maps tab.
Look for your map (e.g. gm_testroom).
Load it and move around.
If you can walk, see light, and spawn correctly - congrats, you’ve built your first working GMod map.
Step 4: Fixing compile errors (leaks and missing files)
If your map doesn’t load or the lighting looks broken, don’t panic - it’s usually one of these:
<h4> Map leaks
A leak happens when the inside of your map isn’t fully sealed from the void.
To fix it:
In Hammer, go to Map → Load Pointfile.
You’ll see a red line showing the path from the void to the leak.
Follow it - you’ll usually find a tiny gap, misaligned brush, or misplaced entity.
Snap everything back to the grid, save, and recompile.
“Gameinfo.txt missing” error
You’ve probably opened the wrong version of Hammer.
Make sure you’re using the one inside GarrysMod/bin/, not from another Source game or SDK.
6. Adding Lighting, Props, and a Skybox
This is where you’ll start to understand how lighting, props, and skyboxes completely change the feel of a map.
Step 1: Add proper lighting
The small “light” entity you added earlier is fine for testing, but Hammer gives you full control over how bright, warm, and realistic your lighting feels.
Basic indoor lighting
Select the Entity Tool (Shift + E).
Click inside the room to create a new entity.
Double-click it and change it to light.
You’ll see a setting called Brightness - it uses four numbers (R G B Intensity).
Example: 255 240 220 200 gives a warm indoor tone.
The last number controls brightness - higher = brighter.
Outdoor/global lighting
If your map has a skybox or outdoor section, you’ll want a “light_environment” entity too.
This acts as the sunlight for your world.
Create a new entity and set it to light_environment.
Adjust Pitch (the light’s angle) and Brightness (the sun colour).
Keep it subtle - even small tweaks can completely change your map’s mood.
Step 2: Add props
Props give your space life. They can be decorative, functional, or even interactive - but they’re all handled through a few key entity types:
Prop Type | Entity Name | Description |
Static | prop_static | Doesn’t move. Used for furniture, walls, or anything structural. |
Dynamic | prop_dynamic | Can be animated or attached to moving objects. |
Physics | prop_physics | Can be pushed, dropped, or thrown around. |
To add one:
Select the Entity Tool → click where you want it.
Double-click the entity → set the Class to prop_static (or whatever you need).
In the World Model field, click Browse… and pick a model.
Tip: type things like “chair”, “barrel”, “crate”, etc.
Compile and test in GMod to see if it shows up properly.
If it doesn’t appear, that model might not support your chosen prop type. Try switching it to another.
Step 3: Create a simple skybox
A skybox is just a textured outer shell that tells the game where the “outside world” is.
It’s what gives you a visible horizon or sky instead of infinite black void.
Use the Block Tool (Shift + B) to make a large box completely surrounding your playable space.
Apply the texture tools/toolsskybox to all its faces.
Go to Map → Map Properties and find SkyBox Texture Name.
Enter something like sky_day01_01 (classic Half-Life 2 daytime sky).
Add a light_environment and match its direction to your sky’s lighting.
Next, we’ll talk about keeping it optimised for quick loading:
7. Tips To Optimise a Garry’s Mod Map
Once your map starts growing - more props, lights, and rooms - you’ll notice compiling takes longer, and sometimes GMod starts to lag.
That’s normal. Every new brush, light, or object adds to what Hammer has to process.
This section is all about keeping things running fast - both for you (during compiles) and for players (in-game).
Tip 1: Use “nodraw” everywhere it’s not visible
Every brush face you don’t see - the underside of floors, the backs of walls, the ceiling above a sealed room - doesn’t need a texture.
If you leave them all textured, Hammer will waste time lighting and rendering surfaces no one ever sees.
To fix it:
Select a brush or face.
Press Shift + A to open the Texture Tool.
Click Browse…, type toolsnodraw, and apply it to any hidden faces.
Tip 2: Turn complex shapes into “func_detail”
By default, every brush you create affects how Hammer calculates visibility - even a decorative staircase or curved wall.
That’s fine for big, solid walls, but when you have lots of small shapes, it slows everything down.
To optimise:
Select any detailed or non-essential geometry (stairs, trims, pillars, arches, etc.).
Press Ctrl + T → choose func_detail → click Apply.
Now those brushes are marked as “visual only.”
They still render in-game, but Hammer ignores them when calculating visibility between rooms - massively speeding up compiles.
Important: Don’t convert the main walls, floor, or ceiling that seal your map into func_detail. Only use it on decorative geometry.
Tip 3: Keep your skybox tight
A common beginner mistake is building a massive cube skybox that covers the whole map. That’s tempting (it “fixes” leaks fast), but it actually hurts performance and lighting.
Keep your skybox tight around the playable area - just enough to give the illusion of open space.
If you’re building large outdoor areas later, use visleafs and hint brushes to control what the player can see, not a skybox that covers the whole world.
Tip 4: Fewer lights, smarter placement
Lighting affects compile time heavily. Instead of filling rooms with dozens of light entities, use:
light_spot entities for directional lighting.
light_environment for overall ambience.
One or two normal light entities for fill lighting.
Keep colours realistic and intensity moderate. Subtle lighting looks better and compiles faster.
Tip 5: Test performance constantly
Don’t wait until your map is finished to check performance.
Compile and run it every time you add something major.
It’s much easier to catch issues early!
Bonus: Packing and Publishing to the Steam Workshop
Most people reading this just want to make a map they can play on with friends - and that’s totally fine.
You don’t have to upload it anywhere. Once you’ve compiled your .bsp, Garry’s Mod will recognise it locally, and anyone who joins your game can load it automatically.
But if you’ve built something you’re proud of (or just want your name in the Workshop), here’s how to publish it properly.
Step 1: Set up your release folder
Create a new folder on your desktop called something like:
gm_yourmap_release
Inside that folder, include:
Your compiled map (.bsp file) – found in
...\GarrysMod\garrysmod\maps\A preview image called icon.jpg – must be 512x512 pixels.
A small addon.json file that tells the Workshop what your upload is.
Example addon.json:
{
"title": "gm_yourmap",
"type": "map",
"tags": ["build", "fun"],
"ignore": ["*.psd","*.vcproj","*.svn*"]
}
Step 2: Create your .GMA file
Garry’s Mod uses .gma files (basically zipped addons).
To create one:
Go to ...\GarrysMod\bin\
Copy gmad.exe to your desktop.
Drag your release folder onto gmad.exe.
You’ll get a new file named something like:
“Gm_yourmap_release.gma”
That’s your packaged addon.
Step 3: Upload to the Workshop
You’ll also find gmpublish.exe in the same /bin folder. This is what uploads your .gma to Steam.
Open Command Prompt, then run:
“cd C:\Users\<YourName>\Desktop”
And then followed by:
“gmpublish.exe create -addon "gm_yourmap_release.gma" -icon "icon.jpg"”
Wait a minute or two, and it’ll appear under your Workshop items in Steam.
Step 4: Update it later (optional)
If you ever tweak your map:
Recompile (.bsp),
Replace it in your release folder,
Drag the folder onto gmad.exe again to rebuild the .gma,
Use the same command but replace “create” with “update”.
Ready to Take Your GMod Maps Further?
And that’s it - your complete guide on how to make a Garry’s Mod map from scratch.
If you’re building for friends, the best thing you can do is make sure your map runs smoothly and stays online - without lag or complicated setup.
That’s exactly what Kinetic Hosting Garry’s Mod servers are built for:
Instant setup - your server’s ready to play in seconds
Full Workshop and mod support - install any addon, map, or gamemode with ease
Automatic updates & free backups - your progress is always protected
No player limits - invite as many friends as your hardware can handle
Full file & console access - total control through the Kinetic Panel
24/7 human support - real help, whenever you need it
Ready to put your map to the test? Contact us today, and we’ll be in touch with more information.
Start Your Own Server
Looking for a game server? Get set up in a few moments. With our one-click installers and simple packages.
Learn more