Half-Life 2 and CS:Source Mapping Guide
Friday, December 10, 2004 - 12:38 PMLast update: Friday, January 14, 2005 - 9:41 AM
Since the release of the Source SDK, there has been a flurry of activity in the development community. Quite a few people have created tutorials and solved problems in the usual forums, but finding useful information can be tough. The goal of this guide is to provide a categorized listing of help topics for mappers. We're not addressing coding resources yet, but may in the future.
We created this list initially for our own mapping uses, but it quickly grew to the point of becoming useful for the public. Sharing is good.
If you would like to suggest an addition or correction, please send a note to hl2guide@gamewag.com.
Update: you can now find a list of newly added resources, by date, at the bottom of this page.
Update: fixed the snarkpit links (from snarkpit.com to snarkpit.net)
| Architecture and Environment | Modeling |
| Basics | NPCs |
| Configuring Hammer | Optimization |
| CS:Source Specific | Physics |
| Displacement Surfaces | References |
| Lighting | Skyboxes |
| Materials | Sound |
| Misc. | Troubleshooting |
= Sample map/download included |
| Basic introduction to Level Design - Part 1 | LeakFree.org | |
| Basic introduction to Level Design - Part 2 | LeakFree.org | |
| Basic room mapping - Video tutorial | Filefront | |
| First CSS Room | HL2World | ![]() |
| Your first room (HL2/CSS) | LeakFree.org | |
| Source Mapping for Half-Life 1 Mappers | Valve ERC | |
| Source SDK FAQ | Valve ERC | |
| Starting to Map | HL2World | |
| Two rooms connected through a hallway | LeakFree.org | |
| Valve Hammer: The User Interface | HL2 Mod Central |
| Custom Source Tools (BSP, RAD, VIS) | ZHLT.tk | ![]() |
| Expert Compile Setup | The SnarkPit | |
| Hammer/SDK out of resources crask | VERC Forums | |
| Manually Configuring Hammer | Valve ERC | |
| Hammer Documentation | Valve ERC | |
| Using player models in Hammer | HL2World Forums | ![]() |
| Using batch files | Interlopers.net |
| Making levels for Counter-Strike: Source | Valve ERC | |
| Bomb Targets | HL2World | |
| Buy Zones | HL2World | |
| CS Entity Guide | HL2World | |
| Spawn Points (CSS) | HL2World | |
| Spawning Random Hostages | HL2World | |
| CS:Source Surface Properties | HL2World | |
| CS:Source Spawn with weapons | SDC |
| Detail props on displacements (SDK release problems) | VERC Forums | |
| Displacement Surfaces (Terrain) | Valve ERC | |
| Displacement Surfaces 1: The Basics | The SnarkPit | |
| Displacement Surfaces 2: Alpha Masking | The SnarkPit | |
| Subdivide Tool | The SnarkPit | |
| Displacement Map Texture Blending | SDC |
| Adding sun light | HL2World | |
| Creating "Disco" Type Light Effects | HL2 Mod Central | |
| Dynamic Lights | HL2World | |
| Dynamic Lights | The SnarkPit | |
| lights.rad | The SnarkPit | |
| Lighting Basics | The SnarkPit | |
| Moving Beams Part 1 (Rotating directional lights) | HL2World | ![]() |
| Spotlight Beam | HL2World | |
| Trigger Lights | HL2World |
| Custom Texturing + VTexGUI tool | Halflife2.net Forums | ![]() |
| Custom Textures in HL2 and CS:S | The SnarkPit | |
| Material Proxies | Valve ERC | |
| Material Proxies | HL2World | |
| Cell Shading | HL2World | ![]() |
| Creating Materials | Valve ERC | |
| Creating Decals | Valve ERC | |
| Overlays | The SnarkPit | |
| Water Shader | Valve ERC | |
| Shader Fallbacks | Valve ERC | |
| Cubemaps | Valve ERC | |
| Animated Textures | HL2World | |
| Photoshop Normal Map Generator (HL2/CSS) | VERC Forums | ![]() |
| Photoshop Normal Map Generator (nVidia) | nVidia | ![]() |
| Refract Shaders | HL2World | |
| Realistic Textures Pack | Planetquake | ![]() |
| Shader Parameters | HL2World | |
| Specular Bumpmapping | SnarkPit | |
| Texture Introduction | HL2World | |
| Texture File Formats | The SnarkPit | |
| ZBrush Normals | HL2World | |
| CS:Source Surface Properties | HL2World | |
| Alpha Channel Textures | HL2World | |
| Converting Your Old .WADs to .VTFs | SDC |
| Cameras | The SnarkPit | ![]() |
| Cameras | HL2World | ![]() |
| Controllable Brush Vehicle | HL2World | |
| Faceposer choreograph scenes in your map | HL2World | ![]() |
| Getting a map from AutoCAD into Hammer | VERC Forums | |
| Gunship Paths | Interlopers.net | |
| Input/Output Tabs | The SnarkPit | |
| The Input/Output System | Wavelength | ![]() |
| Level Changes in HL2 | The SnarkPit | |
| Mounted Turrets | Halflife2.net Forums | ![]() |
| Power plugs - Snapping objects in place | The SnarkPit | |
| The Shrinking Effect | TWHL | ![]() |
| Smoothing Groups | HL2World | |
| Spawn Stuff (In-game spawning) | HL2World | ![]() |
| Trigger Look | HL2World | |
| User-Controlled Items | HL2World | |
| Weapons | HL2World | |
| Making a Menu Background Map | Valve ERC | ![]() |
| Creating Background Menu Map | HL2World | |
| Repeatedly Spawning an Entity | Interlopers.net | |
| Scripted Sequences | Interlopers.net | ![]() |
| Scripted Sequences | The SnarkPit | |
| Super-Physgun - How To Activate The Super-Physgun In Your Maps | SDC | |
| Moving Torch (Flashlight) | Interlopers.net |
| Inserting Models | HL2World | |
| Importing Custom Models | HL2World | ![]() |
| Model Compiling | HL2World | |
| Compiling Models Basics | Valve ERC | |
| Compiling a static prop model | Off Limits Forums | |
| Complex Collision Models | HL2World | |
| Creating Breakable Models | HL2World | |
| Creating Physics Models (3D Studio Max) | HL2World | |
| Converting 1.6 Models (Milkshape) | HL2World | |
| Creating Ragdoll Models (Milkshape) | HL2World | |
| Creating facial animations with VTA files (3D Studio Max) | HL2World | |
| Maya and Source | VERC Forums | |
| Max to HL2 Animated | HL2World | |
| Normals Flipped (Model Inside out) - Max | HL2World | |
| Photoshop Normal Map Generator (HL2/CSS) | VERC Forums | ![]() |
| Photoshop Normal Map Generator (nVidia) | nVidia | ![]() |
| Skinning and Animating for source with MAYA | HL2World | |
| SMD Exporter for 3D Studio Max | VERC Forums | ![]() |
| Using the ValveBiped in EXP for HL2 | HL2 Mod Central | |
| V37 Modeling | HL2World | |
| Vehicle Modeling (Milkshape) | HL2World | |
| XSI Beginner Tutorial | HL2World | |
| XSI Advanced Tutorial | HL2World | |
| XSI Compiling Tutorial | HL2World | |
| XSI Texturing Tutorial | HL2World |
| AI Assaults | HL2World | |
| AI Relationships (getting NPCs to fight each other) | HL2World | |
| Antlion Rush | Interlopers.net | |
| Photoshop Normal Map Generator (nVidia) | Interlopers.net | ![]() |
| Nav Files | HL2World | |
| npc_metrocop and ai_goal_police | Interlopers.net | |
| How To Make Hostages Follow You In Your New Map | SDC | |
| Spawn Moving NPCs | HL2World | |
| Striders Part 1 | HL2World | |
| Striders Part 2 | HL2World |
| Optimizing and Checking Your Map | Valve ERC | |
| Improving Performance and Controlling Visibility | Valve ERC | ![]() |
| Using Cordon Bounds to speed up compiling | VERC Forums | |
| func_areaportals | SnarkPit | |
| Area Portals | HL2World | |
| Nodraw - What It Does and How To Use It | SDC | ![]() |
| Optimization | HL2World | |
| Optimization - Geometry | HL2World | |
| Optimization - Non-Geometry | HL2World |
| Physics Entities Overview | Valve ERC | ![]() |
| Source Physics | The SnarkPit | ![]() |
| Catapults (Trebuchet) | HL2World | ![]() |
| Buggy Trebuchet - aka throwing yourself | VERC Forums | ![]() |
| Gear System | VERC Forums | ![]() |
| Physics Entities Intro 1a | HL2World | ![]() |
| Introduction to Physics - Part 1 | Leakfree.org | |
| Physics Door | HL2World | |
| Physics Hinged Swinging Door | SDC | |
| Ropes with Ragdolls | HL2World | |
| How To Create A Suspended And Physics-Affected Ragdoll | SDC | ![]() |
| Thruster Canister - Video tutorial | Filefront | |
| Creating A Physics-Affected Brush | SDC | ![]() |
| Creating Static And Physics-Affected World Models In-Game | SDC | ![]() |
| All Entities Guide | HL2World | |
| Core Source Entity Guide | HL2World | |
| HL2 Entity Guide | HL2World | |
| Half-Life 2 CVARs | The SnarkPit | |
| Console Commands | HL2World | |
| Shader Parameters | HL2World | |
| CS:Source Surface Properties | HL2World |
| Creating 2D Skyboxes | HL2World | |
| Creating 3D Skyboxes | HL2World | |
| Creating 3D Skyboxes | Valve ERC | ![]() |
| Making a sky in your map | SDC | |
| 3D Skybox | The SnarkPit | |
| Sky List | HL2World |
| MP3s and Custom Sounds | HL2World | ![]() |
| Applying Filters, Beat Sync And Effects In FLStudio | Half-Life Files | ![]() |
| Soundscapes | Valve ERC | |
| Using Custom Sounds in HL2 | The SnarkPit |
| "Cache Needs Repair" Error | Valve ERC | |
| Compiling Errors | The SnarkPit | |
| Finding and Repairing Leaks | The SnarkPit | |
| Hammer/SDK out of resources crask | VERC Forums | |
| Leaks Explained | Valve ERC | |
| RAD "-extra" problems | VERC Forums | |
| Source SDK FAQ | Valve ERC |
Update Log - Additions by Date
December 10, 2004 - Initial List
December 16, 2004
| Custom Source Tools (BSP, RAD, VIS) | ZHLT.tk | ![]() |
December 17, 2004
| Fan - Creating a Rotating Fan | HL2World | |
| Moving Torch (Flashlight) | Interlopers.net | |
| Introduction to Physics - Part 1 | Leakfree.org | |
| Compiling a static prop model | Off Limits Forums | |
| Using the ValveBiped in EXP for HL2 | HL2 Mod Central | |
| Valve Hammer: The User Interface | HL2 Mod Central |
December 21, 2004
| Basic Door - Sliding Door | HL2World | |
| Making Cylindrical Interiors | VanillaCapsule.com | |
| Lighting Basics | The SnarkPit | |
| Scripted Sequences | The SnarkPit | |
| SMD Exporter for 3D Studio Max | VERC Forums | ![]() |
December 22, 2004
| AI Assaults | HL2World | |
| Basic Door - Breakable Glass | HL2World | |
| Glass - Custom Breakable | HL2World | |
| MP3s and Custom Sounds | HL2World | ![]() |
| Optimization | HL2World | |
| Optimization - Geometry | HL2World | |
| Optimization - Non-Geometry | HL2World | |
| Liquids - Water and Acid | SnarkPit | |
| Finding and Repairing Leaks | The SnarkPit |
December 28, 2004
| Faceposer choreograph scenes in your map | HL2World | ![]() |
| Cell Shading | HL2World | ![]() |
| Creating Background Menu Map | HL2World | |
| Complex Collision Models | HL2World | |
| Creating Breakable Models | HL2World | |
| Max to HL2 Animated | HL2World | |
| XSI Beginner Tutorial | HL2World | |
| XSI Advanced Tutorial | HL2World | |
| XSI Compiling Tutorial | HL2World | |
| XSI Texturing Tutorial | HL2World | |
| func_areaportals | The SnarkPit | |
| Half-Life 2 CVARs | The SnarkPit | |
| Texture File Formats | The SnarkPit | |
| Custom Textures in HL2 and CS:S | The SnarkPit | |
| Repeatedly Spawning an Entity | Interlopers.net | |
| Rounded Pipes | Interlopers.net | ![]() |
| Antlion Rush | Interlopers.net |
January 05, 2005
| Using Cordon Bounds to speed up compiling | VERC Forums | |
| Hammer/SDK out of resources crask | VERC Forums | |
| Using batch files | Interlopers.net | |
| npc_metrocop and ai_goal_police | Interlopers.net | |
| Power plugs - Snapping objects in place | The SnarkPit | |
| Creating "Disco" Type Light Effects | HL2 Mod Central | |
| Controllable Brush Vehicle | HL2World | |
| Striders Part 1 | HL2World | |
| Striders Part 2 | HL2World |
January 14, 2005
| V37 Modeling | HL2World | |
| Skinning and Animating for source with MAYA | HL2World | |
| Normals Flipped (Model Inside out) - Max | HL2World | |
| Level Changes in HL2 | The SnarkPit | |
| Elevators (using Props) | The SnarkPit | ![]() |
| Dynamic Lights | The SnarkPit | |
| Applying Filters, Beat Sync And Effects In FLStudio | Half-Life Files | ![]() |
| Breakable Grates/Vents | VERC Forums | |
| The Shrinking Effect | TWHL | ![]() |
| The Input/Output System | Wavelength | ![]() |
Posted by jb | permalink



= Sample map/download included