How-To: Make a Left 4 Dead Map Using Google Sketchup
Left 4 Dead 2 is great fun, but there are only so many maps that actually come with the game. And until Valve releases any additional map packs, community-created maps are your best bet for fresh content. But why not learn how to make your own custom maps? With Valve's Hammer World Editor and Google's free SketchUp program, it's actually much easier than you think.
Valve's Hammer is the game map editor that comes with the Left 4 Dead Software Development Kit (SDK). Google SketchUp is a free 3D design application that has myriad uses. Using both tools, you can design and make custom shapes and objects that would be impossible to generate with Hammer alone.
We're going to show you, step-by-step, how to use these tools to make a single Survival map for Left 4 Dead. We'll cover the basics of Hammer, the art of designing a building from a reference photo, and crafting simple objects to use in-game. The techniques we introduce apply to both Left 4 Dead and Left 4 Dead 2. They'll also help you make maps for other Source engine games, like Counter-Strike, Half-Life 2, Portal, and Team Fortress 2.
Grab and seat and dive in. Making a Left 4 Dead map is a perfect D-I-Y project for the Holiday weekend!
Part 1: Making a Left 4 Dead Map in 30 minutes
Install the L4D SDK, SketchUp, and Valve plugins
Before you can make game maps you need to first get the right tools. To install Hammer, simply goto the tools tab inside Steam, and install "Left 4 Dead Authoring Tools" or "Left 4 Dead 2 Authoring tools" depending on which game you want to work with. When you launch the Left 4 Dead authoring tools you are given access to a variety of programs, the most important being Hammer.
For Google SketchUp, just download and install the package from its homepage. SketchUp comes with many built-in guides and links to tutorial videos on using the interface. We highly suggest watching the videos to get a quick primer on basic SketchUp functions.
Finally, in order to export brush work and models from SketchUp into Hammer, you will need to install the SketchUp Plugins from Valve. First, you should open a Windows folder and navigate to the SketchUp plugins directory. This is located at: "C:\Program Files\Google\Google SketchUp 7\Plugins".
Then launch the Left 4 Dead Authoring tools, then double click on "SketchUp Plugins". This will open a windows folder that contains a folder called "Plugins" Open this folder, then open the "SketchUp" folder. You should now have a window showing you a list of .RBS and other files. Select all these files and copy them to the "SketchUp 7\Plugins" folder you opened earlier. The plugins should now show up automatically the next time you run SketchUp.
Introduction to Hammer
Before you can start using SketchUp to advance your map-making skills, you must first learn to use the Hammer editor. We're not going to be able to show you all of Hammer's features, but we'll give you enough to make a simple Survival map.
First you need to know the rules for making a map in Hammer, and how to duplicate those rules inside of SketchUp. Hammer uses a game map technique known as BSP, or Binary Space Partitioning. The easiest way to think of how BSP work is to imagine your own house as a 3D game map.
Inside your house, you have rooms separated by walls, doors and other partitions. When making your game map, all you really are doing is making individual rooms that the game can determine are connected together. The game engine uses this BSP map in order to calculate the what the player can see, where the AI can travel, and the fastest way to render the game world.
There are many online guides on how to form a optimized and efficient BSP-based map. We suggest you seek these out once you are ready to make larger maps. For now we will be building a single basic outdoor world, which requires just one room.
A Word about Brushes
In order to make the walls, ceilings and floors that make up your map, you use the "Brush" tool built into Hammer. A brush is a solid convex object. The simplest type of brush is a cube with six sides. An example of a more complex brush object is a cylinder. However, there is one rule to keep in mind when making brushes in both Hammer and SketchUp: all brushes must be convex in shape.
Convex means that if you were to draw a line though the shape it would never intersect with more then two points on the object. If you want to make a concave shape, such as an arch, you would need to make the arch out of smaller convex blocks. This works in almost in the same way as if you were building the arch up brick by brick. For now, we will be simply working with basic blocks and making the outdoor portion of our game map.
Your Very First Map
To make your first basic map you will need to make your first room.
Launch Hammer from the Left 4 Dead Authoring Tools. From the control bar, go to "File" then "New". You should now have a black window with four smaller windows inside, three of which show a grid. Moving clockwise from the top right, these windows by default are: 3D view, Top 2D View, Side 2D View, and Front 2D View.
Inside the 2D views there should be two aqua-colored lines that intersect. These lines point to the origin or coordinates: 0,0,0 of the map. This origin is important for aligning objects between SketchUp and Hammer, and also for more advanced features you may use later. You should strive to make your map centered around this origin.
Building the Outside World
I
n order to make our basic "cabin in the woods" map we first need to make an outdoor world. Since we will have a larger world on all sides of our cabin, we can start by making a basic hallow cube shape. Before we make our first cube we first need to select a default texture.
Open the "Texture Application" by pressing SHIFT+A. Then press "Browse". In the "Filter" area type: "nodraw" and select the yellow texture that shows up. Close the texture application. The NoDraw material is a very special texture in Hammer. Any surface you put it on will virtually disappear inside the map, becoming invisible.
You can use this texture to cover surfaces that you know the player will never see such as the tops of large buildings. This saves compile time when saving your map to the game. The engine doesn't have to compute any lighting on NoDraw surfaces. For now though we will be using it as our default material so that any surfaces we choose not to apply textures will remain NoDraw.
Hammer has an easy way to make a hollow cube without making each of the six walls individually, by first making a large solid cube. Start by enabling the brush tool by pressing SHIFT+B. Next, inside the top 2D view, click and drag out a square.
Make this square 2048x2048 in size, and try to keep the center of the square located around the map origin. Inside either the front or side 2D views, drag the top and bottom of the cube so that it ends up being 2048 tall, but with the bottom of the cube sitting on the map origin. Then press ENTER to build the new object.

You now should have a solid outlined square inside your 2D views. And in your 3D view you should see a yellow 3D Cube. You may need to zoom out to the large cube in the 3D view.
Now switch to the default selection mode by pressing SHIFT+S. Select your cube inside the 3D window. Inside one of the 2D windows right click on the cube and select "Make Hollow" or press CTRL+H. A window will pop up asking how thick you want the walls on this hollow object. We will change the number to negative thirty two (-32). Press enter and this will give you a cube that is 2048x2048x2048 units big on the inside with walls that are 32 units thick.
We will use this cube as the basis for the outside world of our map. You should note that the cube in the 2D views now has some extra thickness. This hollow cube is also a grouped object. If you want you can un-group it bu pressing CTRL+U. Pressing CTRL+G will group objects back together. Grouping is a great way to keep similar objects together to move them around. Now if you zoom into your cube in the 3D window you should end up inside a large cube with the NoDraw textures on all the walls.

This cube is now a sealed and "leak"-free map. A leak is caused by a gap somewhere in your map that is open to the black void surrounding your map, or between two otherwise sealed rooms. The easiest way to think about preventing leaks is to make your map as if you were building a pressurized space station. Any opening into the black void outside your space station would leak air into space.
The best way to prevent leaks is to be diligent in building your maps. All outside walls in your map should be sealed edge to edge with no gaps between walls. If your making a sealed room inside a building, the outside walls of the sealed rooms should also be treated in the same way with only AreaPortals acting as doors and windows. AreaPortals will be covered in later.
Apply the First Materials
We now have our large 3D Cube, but it has no textures. A good practice when making your map is to use development textures. You can find these easily by opening the Texture Application and typing: "dev" in the filter. We are going to apply: "dev/graygrid" to the floor of our cube. Press SHIFT+A to open the texture application. Select the floor of the cube. Then press Browse and find "graygrid" and double click on it. Then press "Apply". The bottom of your map should now be a large gray plane.
Make a Skybox
Now wouldn't it be great if our game map could look like it was surrounded by a large sky, rather then feeling like an enclosed cube? Source Enging games use what is called a Skybox to simulate a large expansive world. But you don't have to actually build a massive sky or dome to get this effect. All you have to do is simply tell the game which surfaces you want to see into the far away sky. You do this by using another special texture called Skybox.
Open the texture application, and then select all the surfaces you want to be sky. In the case of our map we will select the top and sides or our cube by pressing CTRL and clicking on each face. Then press browse and search for "Tools Skybox." Double Click on either of the two textures that show up and press apply. You should now have a cube with a gray floor and blue walls. You can change which Skybox image the game renders by selecting "Map" > "Map Properties" from the toolbar, and changing the "Skybox Texture Name". For now we will just leave it at the default: "sky_l4d_urban01_hdr".

Adding Required Entities
Before we can test our our basic cube in the game we need to first place a few required entities. An entity is any object in the game world that is not a brush. There are two types of entities: Brush Entities, and Point Entities. A brush entity is created when you convert a solid brush object in the game world into something else. An example of a brush entity is breakable sheet of glass. A point entity is an object that is centered around a single point, such as light, a game function, or a 3D model.
Let There Be Sunlight

The first point entity we will place is related to the Skybox and is called "light_environment". This entity will tell the game how to light our outdoor environment. This light will actually come from any Skybox texture and is designed to simulate sunlight.
To place this object first select the Entity Tool by pressing SHIFT+E. Before clicking in the game world you need to change the type of entity we want to place. You do this by changing the "Objects" field in the lower right window. You can search dynamically by just typing a portion of the entity name into this box. Once you have "light_environment" selected you can click inside the 3D game world to place your point entity. We recommend keeping this and other required special entities in one area of your map that you can easily find later. We prefer to place them near the origin of my map, often floating a few dozen units above the ground. The light_enviroment entity has many settings to change to tweak the sunlight in your game, but for now we will just leave it on the default settings.
Set Player Start Position
We now need to tell the game where to place the player when they load the map. This is done using another point entity named "info_player_start". Place this entity in the same manner as the one above. Ensure that the player start position is always a few units above the ground or the player may actually fall though the floor of the map upon game start.
Compile Your First Map!
Believe it or not you now have all the elements needed to export the map to the game and run around your first map. But before you can compile the map you need to save it somewhere. Press CTRL+S to save the map. We recommend saving it into a new folder inside your "Left4Dead\sdk_content\mapsrc" folder. In this case we will name the map: "My_First_map\l4d_sv_cabin.VMF". Most map makers name their maps with "L4D_" at the start to ensure that people know the map belongs to Left 4 Dead, and not, say, Counter-Strike. They then add the map type such as "vs" for Versus, "sv" for Survival.
In the Left 4 Dead 2 SDK you can detect the game type upon map load, and may not need to use separate map files for each type of game.
To compile your map select "File" > "Run Map" from the tool bar, or press "F9". A window will open up giving you various options. Select the following settings: "Run BSP - Normal", "Run Vis - Fast", "Run RAD - Fast". Under "additional parameters" you can add console commands to do things such as running cheats upon map launch, or running the game in a window. For now just leave the settings on default. Press Ok.
A new window pops up letting you know the status of the compiler. It should only take seconds for our very basic map to compile, but be aware that compile times can last up to an hour for large complex maps, or sloppily made maps. The compiler window is your source for errors in your maps such as leaks, bad geometry or missing objects. Each time you compile a log file is written to in the same folder as your map VMF file.

Left 4 Dead should automatically launch and start loading your new map. Once in the game you will get an error stating: "NAV ERRORS, Map unplayable" You can ignore this for now. What it means is that the artificial intelligence does not yet know how to travel in your map. We will fix this later. For now you can run around your large flat plane and look at the sky. It is not much, but it does validate that your compile worked. Close Left 4 Dead and go back into Hammer.

![]()
bziki
July 04, 2011 at 2:28am
Great post - I like it very much. I find this tutorial very helpful. bziki from
![]()
davidd
May 24, 2011 at 10:00am
Great how-to. Loved the part where it shows how to turn a photo of a shack into an in-game object. Had no idea that stuff was feasible.David from stretch marks
![]()
inter4522
December 15, 2010 at 7:24pm
You have done a great job with process. The idea behind this is so good. Anything dealing with google is so good.
![]()
quadren
May 02, 2010 at 5:53pm
the guide was going great untill i got to the part were you export things from sketchUp to hammer.
I can export simple things like blocks or triangles, but if i join them together it does not show up in hammer.
any one have this problem or a solution?
p.s. i already got the pugin fix up files
![]()
Eranthis
August 10, 2010 at 2:48pm
I share the same problem too.
I keep getting the dreaded 1 solid(s) were not loaded due to errors in the file. Would you like to Re-Save your map with the invalid solids removed?/File , line 1:Permission denied.
Why hasn't this tutorial fixed this problem? How has anyone been able to open files? We need an answer!
![]()
festeringwound
April 14, 2010 at 4:19pm
im doing a L4D2 map and iv fallowed all your instructions (great guide so far btw) but when I activate the raido it says "wait for the other survivors to be ready" and when I do the zombie spawning section when I do the nav_generate or whatever it crashes and I cant launch it again id love it if someone were to help me :D oh and btw I dont have a clock on the top of my screen s:
![]()
iggle
February 19, 2010 at 8:03pm
Does anyone know how to use textures that are not imported, any in depth tutorials for texturing and making sketchup textures work for hammer and models to avoid the purple and black "checker board" appearance. I am really looking forwards to making a good L4D map.
![]()
Pecano
February 06, 2010 at 10:44am
ryanemm you have it on a wire frame view. You need to click view then select 3D Textured Polygons.
![]()
ryanemm93
February 05, 2010 at 5:09pm
i followed the instructions step by step precisely
but when i click enter after creating the box and selected the texture, the box is not yellow and solid
it is just outlines....
anyone know anything aboout that ?????
![]()
J_man86
January 16, 2010 at 11:06am
I'm trying to import the materials from l4d but when in sketchup under the plugin tab there is only 2 options in the drop down menu and they are both "export", so i don't know how to import the materials. please help.
![]()
ZapWizard
December 29, 2009 at 12:41pm
You package the custom props along with your final VMF, which is a sort of ZIP style packaged file with all the files related to your map or campaign.
![]()
SMTB1963
December 29, 2009 at 6:48am
After initially reading this article soon after it was published, I went searching for more L4D "how-to" stuff on the net...this is by far the best written & explained tutorial for those new to L4D modding I've found so far. Also, the links to the tools & utilities were great time savers.
Thanks MAXIMUMPC and Joshua Driggs!
ps - anyone reading this should check out ZAPWizard's other projects - he's definately into some cool stuff.
![]()
mdpaustin
December 24, 2009 at 8:24pm
Pikalex,
Go to:
Tools->Options->3dViews
Increase the Model Render Distance and see if that solves the problem.
![]()
jackmueth
December 23, 2009 at 8:57pm
when using a custom prop, do i have to install the prop on every computer i use it on, or does the map save the model info within it?
![]()
pikalex88
December 22, 2009 at 6:52pm
This looks like a very interesting and detailed tutorial, but I'm having a problem on page 2. When I place the static prop tree models in the 3D window they appear as giant yellow cubes and I cannot actually see the tree model unless I move the camera inside the box, where it cannot see other models. In the picture from the tutorial multiple trees can be seen, how is this possible? Does anyone else have this problem or know what I'm missing? I also cannot see grass after I paint alpha within the 3D window, though when I run the game it is there. That isn't as big a problem, but could maybe be related?
A screenshot of my map running in Hammer if that helps is Here
![]()
ZapWizard
December 29, 2009 at 12:44pm
Did you make the outer most cube of your world hollow?
As for the grass: Along the menu bar there is a setting to view everything as high quality, grass and leaves are hidden in all but the highest quality setting.
![]()
klewd
December 15, 2009 at 7:33pm
This is one of the best tutorials I've read, but unfortunately there is one point where I think it could be better explained. How do you make everything align suddenly at page 8? It's not aligned at page 7, and there's no prior explanation, that I can see at least.
![]()
ZapWizard
December 20, 2009 at 7:38am
It is explained in the first paragraph on page 8. What you need do is to cut the face at the edge of the balcony and then pull it out until the center of the roof line meets close to the center of the top of the block.
![]()
mdpaustin
December 20, 2009 at 6:26pm
Zap, first thanks for the great tutorial. I too was having difficulty getting the roof center line adjusted. Once I clicked on "Project textures from photo" again, everything worked out.
M
![]()
emperor3d
December 10, 2009 at 9:29pm
You gotta give major props to MPC for this rather thorough tutorial. Very fine job indeed. Good job boys and girls.
![]()
hammerfell
December 10, 2009 at 8:06am
btw how different would this be from l4d2? can we do this using roughly the same process in l4d2?
![]()
ZapWizard
December 11, 2009 at 7:30am
I actually am in the beta for the L4D2 SDK, the steps to make a map and import assets is just the same as for L4D1.
![]()
willsmith
December 10, 2009 at 12:19pm
The maps you create will work in L4D2 when the SDK comes out.
![]()
lunchbox73
December 10, 2009 at 7:04am
Too bad nobody actually plays Left 4 Dead anymore. Even weeks before the sequel there were hardly any games out there. Almost impossible to get a full versus game going.
![]()
ZapWizard
December 11, 2009 at 7:45am
This guide will also work for the L4D2 SDK, or really any Source based game.
![]()
DBsantos77
December 10, 2009 at 8:43am
No kidding, and this was when STEAM had a $7 special on the first one.
:/
-Santos
Teh Rig:
AMD Phenom 720 (Unlocked to Quad, Stable @ 3.6 Ghz 1.47v)
Gigabyte Micro ATX 785gx Motherboard
G.Skill 4GB 1333 DDR3 8-8-8-21 @ 1.6v
HIS ATI Radeon HD4670 (CCC OC'd)
550w Corsai
![]()
hammerfell
December 10, 2009 at 6:21am
Definitely one of the coolest how too articles ever! I'm totally making my house Into an L4D level... and then after that... My friend's house... and after that... anything I can get blue prints and pictures of O_O
![]()
vistageek
December 09, 2009 at 9:27pm
This has to be the most epic and well done how to i have ever seen. Great job. Tanks so much! (pun intended)
![]()
DBsantos77
December 09, 2009 at 7:45pm
This is sick, is there anyway to achieve this by making models in 3DS or Maya?
-Santos
Teh Rig:
AMD Phenom 720 (Unlocked to Quad, Stable @ 3.6 Ghz 1.45v)
Gigabyte Micro ATX 785gx Motherboard
G.Skill 4GB 1333 DDR3 8-8-8-21 @ 1.6v
HIS ATI Radeon HD4670 (CCC OC'd)
550w Corsai
![]()
nekollx
December 10, 2009 at 3:24pm
or Daz/Cararra/Poser?
------------------------------
Coming soon to Lulu.com --Tokusatsu Heroes--
Five teenagers, one alien ghost, a robot, and the fate of the world.















