The goal of this quick start guide is to learn what you’ll need to make a functional map for Insurgency Sandstorm and how to publish it online for others to download.
It is in no way the intention to teach anyone how to use the UE4 Editor, for that you can refer to the official Unreal Engine 4 Documentation (Docs.unrealengine.com) or check out numerous tutorials available on the internet. You can download the Insurgency: Sandstorm level editor at sandstorm.game/editor
Furthermore, it’s important to notice that the minimum and recommended system requirements for Insurgency Sandstorm don’t apply to the editor, especially when working on maps the same size as official maps.
We recommend a high end system with at least 16 GB of RAM and a powerful CPU.
If you’re looking to publish and share your creations, start with setting up your Mod or Map first before you start building. This will ensure that all the files you’ll create are already in the folder that is used to package and upload everything and saves you the hassle of moving them around later.
Lastly, the example maps can be found in: “ExampleContent Content/Maps/ExampleMap/”.
Create a Mod
Go into the editor and notice these three buttons in the toolbar. Click on “Create Mod”.
A new window pops up where you can enter a name for your mod and a few details. The only important thing here is to create a new folder that will contain the map files for your Mod or Map. Enter “Yourmapname” in the box to the right of the folder location.
You can choose to fill out the other fields, but they’re not required.
Hit “Create Mod” and a message saying “‘Yourmapname’ was created successfully” appears. From here you can work on your mod outside the game's content.
These are the building blocks of every Sandstorm level, ranging from floors and walls to stairs, arches and everything in between. Using the Content Browser, you can find them in Environment > Props > Modular.
The persistent level acts like a parent level to any sublevels you might create. It can not be deleted. The ‘Levels’ window shows an overview of the persistent and any sublevels that are present in the map. You can open it by clicking Levels in the Window tab. In this window you can create, load, delete and edit sublevels.
Sublevels are useful for a variety of applications, but here we’ll cover their use in regards to loading different game modes on the same map. Let’s say you want to add the Firefight game mode to your map. The first step is to create a new empty sublevel and rename it to “Yourmapname_Firefight”. If you’re planning to add multiple Firefight scenario’s you can add a suffix like “_West” or “_East”.
From here, you'll be presented a template to create your level with. For sublevels, you will want to select the "Empty Level" option.
This sublevel will contain every actor that is needed to make the Firefight game mode work, such as spawn zones, objectives, restricted areas, etc. Since there can be multiple game modes on one map, this sublevel doesn’t need to be loaded by default. You’ll have to make sure the streaming method of the sublevel is set to Blueprint instead of Always Loaded. Since this is the default setting, you don’t have to change it, but it’s good to be aware of.
Now we can move on to adding a game mode to the map. Make sure the correct sublevel is active. In this guide we will explain how to add the Firefight game mode. If you’re looking to add other game modes, you can check out the example maps which can be found in “Maps/Examples”.
Let’s start with adding spawn areas. Go to whatever location you choose and add 16 Player Start actors.
Make sure to select the top Player Start Actor, as the bottom one is the default Unreal Editor one. Group them together and add a Spawn Zone volume next that completely covers the Player Start actors.
The spawn zones need a name that the Player Start actors can be linked to. Name the one for Security “SZ_Firefight_Team1” and set its Team Id to “0” (Security).
Do the same for the Insurgents and name it “SZ_Firefight_Team2” and set Team Id to “1” (Insurgents).
Now go back to the Player Start actors and disable them, give them the correct Team Id and link them to their corresponding Spawn Zone volume. For example for the Security team, your settings will want to match the image below:
To prevent players from getting too close to opponents’ Spawn Zones, we need to add Restricted Area volumes. Add one for each side that covers the spawn area and name it “RA_Firefight_Team1” and “RA_Firefight_Team2” respectively. Configure their Team Id and Linked Spawn Zone like the example below.
Firefight requires three objectives, each of them consists of a Capture Zone (CZ) volume and an Objective Capturable (OC). The former indicates the area that players can capture from while the latter represents the location of the objective icon in the HUD. Name the Capture Zone volume “CZ_Firefight_A” and the Objective Capturable “OC_Firefight_A”. In the Objective Capturable’s details, set up the corresponding Capture Zone volume(s).
Now do the same for objective B and C.
Next up is creating and configuring the Scenario. In the Content Browser, browse to “Your Plugin Name/Scenarios/Versus”, right-click in an empty space and select “Insurgency > Scenario”.
Select “ScenarioMultiplayer” and click on “Select”. This will create the file, which should be renamed to “Scenario_Yourmapname_Firefight”.
Now double-click to open it. A Scenario file basically tells the game what to do when a specific scenario is activated. This is where you select the required game mode, sublevel, Spawn Zones, Objective Capturables, etc.
After configuring it should look as below (will vary, depending on the game mode).
The only thing left before you can jump in-game is adding your newly created game mode to the default scenarios of the map. Go to “World Settings” and add a new element to “Default Scenarios”.
As Game Mode select “INSFirefightGameMode” and then browse to your scenario file for the Scenario parameter.
Play in Editor
You’ll need to use Play In Editor (PIE) to check out your map ingame. First select the game mode you want to start the map with, which will be Firefight in this case.
Then make sure ‘Spawn player at …” is set to “Default Player Start”. For this to be selectable the sublevel corresponding to the selected game mode needs to be set to visible.
Enable bots, if preferred, and click “New Editor Window (PIE)”.
This will open the game in a new window. You can access the in-game menu for setting binds etc by pressing N (default key). Pressing ESC will close the PIE window.
To add a working minimap in-game you’ll need to add another Playable Area volume to your Persistent level and rename it “OverviewArea”. This volume will be used as a reference to take the overview picture. So you’ll want to include everything, except inaccessible backdrop areas. To avoid squeezing or stretching of the overview in-game you need to make sure the volume is square in the Z plane.
A Firefight layout will likely not require the full map present on the overview and a Push layout probably will show a significant area. What is shown on the overview can be changed for every game mode individually.
All of these will be based of the main overview volume, so we’re gonna focus on that first, because of this, uncheck “Scenario Area” and change “Playable Area Type” to “Overview Area”.
Now switch the viewport to “Orthographic Top” and the View Mode to “Lit”.
The viewport should now look like below.
Hide everything that you don’t want to be visible in the overview, like spawn actors, capture zones, reflection spheres, etc.
Now zoom in to a level that you think shows of the map’s components (like buildings and vehicles) in great enough detail for an overview. Then open Viewport Options and select “High Resolution Screenshot…“.
This will open a control panel with a few settings. You’ll only have to worry about the one at the top: “Screenshot Size Multiplier”. With a factor of 1 it’ll take a screenshot of what is currently visible in the viewport. But you’ll need to capture the whole map, so increase the number until everything is included. This may require a bit of trial and error.
Remember where the screenshot was saved and open the image in an image editor like Photoshop or GIMP. Crop the image to a square, scale it down to 2048x2048 and save it as a PNG file.
Now it’s time to import this image into the UE4 editor. Browse to “Your Plugin Content/UI/Textures” and hit the “Import” button. Browse to wherever you saved the PNG file, import it and rename it to “T_MapOverview_Yourmapname”. Open the file and adjust the following settings: “Compress Without Alpha”, “Mip Gen Settings”, “Texture Group”, “X-axis Tiling Method” and “Y-axis Tiling Method”.
Browse to “Your Plugin Content/UI/Materials” and create a Material Instance there, rename it to “MI_MapOverview_Yourmapname” and open it.
Check the TacticalMapTexture box and browse to the texture file you just created: “T_MapOverview_Yourmapname”.
The Parent parameter should be set to “MI_UI_MapOverview”.
The final step is to go to “World Settings” and select this Material Instance as the “Tactical Map Material” parameter.
The main overview is now correctly set up.
For every game mode you have created you can improve the overview by adding an additional Playable Area volume to every game mode’s sublevel. This way you can tell the game which part of the overview should be shown.
Check the “Scenario Area” checkbox for the volume and make sure it is a square in the Z plane.
Insurgency: Sandstorm uses mod.io for sharing mods cross platform, so the first thing you need to do is make an account there. It is recommended you use your Steam account to login as this account will be linked to your in-game one.
When it’s time to publish and upload your map files. Click on “Share Mod” and a new window will pop up. This is the Mod Manager. It shows your previously uploaded Mods. You can double-click on an entry to view and update it. We’ll focus on adding a new mod now, so click on “New Mod” and another window will pop up.
The only required fields are “Name”, “Summary” and “Preview Image”. The rest is optional, but “Visibility” is obviously a pretty important one. When you’re done, click “Add Mod”. Alternatively, you can create your mod profile from Insurgencysandstorm.mod.io
There may be a delay between the uploading process completing in the editor and actually updating on the mod.io website. You should get a confirmation email once it does.
To help light your map, you can make use of the BluePrint Lights that come with the editor. They can be found in “Content/Environment/BluePrints/Lights”. Once placed in the editor, you can alter their Light Type or Light Wattage if needed.
Of course, you can build your own from scratch, but this should help to get you started.
AI Cover Actors
If your map features a co-op mode you can enhance the in-game AI in your map by adding AICoverActors. They help bots with positioning themselves in good spots, holding sightlines, etc.
Place them around corners and doorways, behind low cover like sandbags and generally near and around points of interest like chokepoints and objectives. Don’t refrain from adding a lot of them, as that will make them less predictable.
This guide only merely touches on the subject of AICoverActors to point out their existence. A more in-depth guide on how to use their full potential might follow later.
First of all, you’ll want to disable autobuilding the navmesh. This will prevent the navmesh from being updated automatically each time you make the slightest of changes in the editor.
Go into Editor Preferences and select “Miscellaneous” below “Level Editor”. Here you can uncheck “Update Navigation Automatically”.
Now you’ll need a Nav Mesh Bounds Volume to define the areas where a navmesh should be built. Depending on the shape of your map, you might need more than one volume to efficiently cover the playable area.
To generate a navmesh, click on “Build” and select “Build Paths”.
Nav Modifier Volume
Whatever is covered by this volume will not get included into the navmesh.
This can be useful for spots that are difficult to navigate for bots or for areas where they’re not supposed to go anyway.
Not exactly related to the navmesh itself, but rather accessibility overall. These volumes will block players from passing through them.
- Prone Height: 50 uu
- Crouch Height: 100 uu
- Standing Height: 180 uu
- Max Jump Height: 80 uu
- Crouch Jump Height: 100 uu
- Max Vaulting Height: 135 uu
1 uu (Unreal Units) = 1 cm