How to Create a Left 4 Dead Map
This guide covers basic map and level design for the action shooter video game Left 4 Dead. As fun as this game is, the developers could only pack so many maps into it. Instead of waiting for Valve to release additional map packs, self-created and community-created maps are reliable options. Valve's Hammer World Editor is the game map editor that comes with the Left 4 Dead Software Development Kit, so that is what you will use here.
Things You'll Need
- Left 4 Dead game
- Valve's Hammer World Editor
- Left 4 Dead Software Development Kit
Instructions
-
Starting Points
-
1
Create the Floor Brush. Go to the left tool bar, and select "Block Tool." Left-click and drag it to the Top 2D view in the southeast direction on the screen. A dotted outline of a rectangle will appear as you drag. Create a 512 x 512 square, and then press "Enter" on the keyboard. Go back to "Selection" mode, click "Selection Tool" on the tool bar and hit "Esc" on the keyboard. Decrease the thickness of the brush from 64 units to 16 units on the grid.
-
2
Create the Walls and Ceiling. Select the Floor Brush, move the cursor to Side viewport, hold down "Shift" on the keyboard and press Up_arrow, this will duplicate the brush. The size and dimensions can now be altered however you wish; if you want a decent-sized wall to start with, make it 128 units high and 16 units thick. Duplicate this for other walls, ceilings and floors.
-
-
3
Create the entities. Select "Entity Tool" on the tool bar, open the "Objects" drop down menu and select "info_survivor_position." Go to Camera viewport, and left-click on the floor to put the entity there. The same can be done for other noncharacter objects, such as tables, props and lights. Objects can be altered simply by clicking on the Properties of each object or person, which will then list whichever options are available for altering it.
Creating the Spawn Room
-
4
Select any room on the already generated map, and add "info_player_start," "info_director," "info_landmark" and "env_fog_controller" entities to it. Set fog_controller's "Fog Enable" option to "yes."
-
5
Make a supplies area by creating a small brush that will serve as a table. Add the following entities on top of it: two weapons ("weapon_smg_spawn" and "weapon_pumpshotgun_spawn"), ammo resupply ("weapon_ammo_spawn") (set the world model to "models/props/terror/ammo_stack.mdl"), and health kits (add 4 entities of "weapon_first_aid_kit_spawn").
-
6
Create an exit by adding "prop_door_rotating_checkpoint." Save it as "checkpoint_exit" in its Properties, set Spawn Position to Closed (with spawnpos keyvalue being 0), the "body" property to 1, the world model should be saved as "models/pops_doors/checkpoint_door_01.mdl," with the "Starts Open" flag unchecked. The door with the exit sign in the middle should be facing the interior of the room.
Creating Rescue Closets
-
7
Create two small rooms, known as rescue closets, for the dead to respawn. These require only four entities: one "prop_door_rotating" and three "info_survivor_rescue."
-
8
Place the three "info_survivor_rescue" entities in each of the two rooms.
-
9
Make sure that you have a space of 56 in width and 104 in height for the door first, then add "prop_door_rotating" and set the world model to "models/props_doors/doormain01.mdl."
Creating the Safe House and Changing Levels
-
10
Create another "prop_door_rotating_checkpoint" entity, and add it to the area 3 entrance for entry to the safe houses.
-
11
Go into the door's properties and rename it "checkpoint_entrance"; set its Spawn Position to "Open Forward" (with its spawnpos keyvalue being 1), its body property to 0, and its world model to "models/props_doors/checkpoint_door_02.mdl," and check the "Starts Open" flag. The side of the door with the house picture must face the outside.
-
12
Create an "info_landmark" and a "trigger_changelevel." Add the "info_landmark" to the middle of the room, close to the ceiling; open its properties, and rename it "landmark_b." Make a large brush to conceal the floor space in the safe house, and connect it to the "trigger_changelevel" entity; the brush must touch the floor space.
-
13
Go into the properties for "trigger_changelevel," rename it "landmark_b" as well and then enter "lst_l4dmap_b" for the next map property.
Create the Navigation Mesh
-
14
Create a navigation mesh (aka mapname.nav) for the map. Once the map is loaded and running, center your crosshairs on the floor space, open the console during the game and type the following:
a) sv_cheats 1
b) nav_edit 1
c) nav_mark_walkable
d) nav_generate -
15
Manually assign attributes to the newly generated nav squares by using the MARK command or mark A (with A being the attribute you are using to mark the nav area). For example, go into nav editing mode and use nav_gui by opening the console and typing "nav_gui"; now left-click all multiple meshes, using mark CHECKPOINT to set the attribute for every area you selected. Any mistakes can be corrected by typing "nav_clear_attribute A."
-
16
Save your map changes with nav_save, and reanalyze with nav_analyze.
Final Points
-
17
Use the following console commands to spawn the infected: "director_stop" and "director_start." This only needs to be done once in the map.
-
18
To create the Next Chapter, go back into Hammer, use the map that's already compiled, go to File > Save As and type "lst_l4dmap_b" to save the map with a new name. Go to Exit Menu > Select All, hit CTRL + M, and the translation tool will open; type "180" in the Z space, and press "OK."
-
19
To create the Next Chapter, Pt. 2, rename the "info_landmark" entities so that "landmark_b" will be the starting room and "landmark_a" the ending safe house. Link the changelevel from this new map to the "landmark_a" in the first map, open the properties of "trigger_changelevel," and rename "landmark_b" as "landmark_a" and "lst_l4dmap_b" as "lst_l4dmap_a." Compile the map and repeat the nav creation steps used for the first map.
-
1