Insurgency uses Valve's Hammer World Editor for Level Design. Although this page won't teach you how to use the tool from scratch, here you will find Insurgency specific level creation tutorials.
If you want to learn how to use Hammer from scratch, we highly recommend heading over the Source SDK Wiki where you can find everything you need to become proficient with Source Level Design.
- Right click on your Insurgency game in your Steam Library
- Click on properties
- Click on Local Files tab
- Click Browse Local Files.
- Open the bin folder
- Open Hammer.exe
Setting up your map for Insurgency
Once you have a basic level layout, it is recommended to start testing gameplay as soon as possible to iterate and improve your level.
- Spawnzones & Blockzones
- Capture Zones & Weapon Caches
- Basic Gamemodes Layout
- Destructible & Interactive props
For example vmfs, it is recommended to open the example maps in your "insurgency2/sdk_content/maps" folder.
Each map (.bsp) file has an associated *.txt file that is referred to as a map script.
The map script contains the following values :
- "compassOffset" - specify an angle to offset the compass. (0 - 359)
- "navfile" - name of the nav file to use
- "nightlighting" - whether the level takes place at night or not. (0 - 1)
- "theaterfile" - if specified, sets a specific theater for the map. (ex. "doi" for Day of Infamy)
- Game mode specific setup
For examples on map scripts, it is recommended to open the example map scripts found in your "insurgency2/sdk_content/maps" folder.
Insurgency uses Nextbot Navigation Meshes for the AI, which is the same system used in Left 4 Dead and Counter Strike Source. The concept is to draw 2D flat meshes on top of the world geometry to indicate the walkable space to the AI.
Although there are many automated systems to facilitate the process, it is always necessary to manually polish the nav mesh after generating.
Here are a few tutorials about Navigation Meshes:
Pro Tip : The game will automatically analyze the nav after generating it. Since you will have to re-analyze the nav after any changes you do, you can speed up the process by entering the following cvar "nav_max_distance 1" Once you are done editing your nav, simply reset this cvar to the default value, and analyze the nav.