There’s a 15 second delay between when a player appears in game and can actually start moving. You have the option during that time to create a cinematic entry by using insertion vehicles. It’s not required, but adds immersion to your level. When using insertion vehicles, players will be ejected from the vehicle when the round begins regardless of the vehicle’s progress along this route.
Start the insertion vehicle route approximately 10,000 units away from where you wish players to enter the game. The 10,000 units is an estimate and can be influenced by the route and number of nav points used. Nav points are waypoints for the vehicle to follow.
Vehicles will pause slightly when contacting a nav point. Adding nav points is a good way to lengthen the time it takes before the vehicle reaches the end point of the route.
For nav points, use a simple “Empty Actor”. Place the empty actor on the play area surface and give it a unique name. I used insertion_nav for this guide. Ensure the surface you’ve placed the actor has a valid nav mesh that will support vehicles. You can view the vehicle nav mesh by clicking on the “Enable Drawing” setting on the RecastNavMesh-Vehicle settings and hitting the P key in the editor.
BP_VehicleSpawner_InsurgentTransport, matching the attacking team, at the start of your insertion route facing the direction of travel. Make sure the vehicle is placed above the surface of the play area. If the box surrounding the vehicle is red (it should be green), then it’s colliding with the play surface and will not spawn.
Set the Vehicle Spawner Type of “Player Insertion Vehicle” and the Team ID to 255. Make sure the “Spawn with Reinforcements” field is not checked. Select the nav points you wish to vehicle to follow under the “Insertion Navigation Points” settings. For more than one point, click on the + button to add more array elements.
BP_VehicleSpawner_InsurgentSupplyTruck, matching the attacking team, approximately three car lengths in front of the transport vehicle facing the direction of travel. You may need to adjust their spacing since nav points and the route complexity can influence their spacing. Make sure the vehicle is placed above the surface of the play area. If the box surrounding the vehicle is red (it should be green), then it’s colliding with the play surface and will not spawn.
Set the Vehicle Spawner Type of “Escort Insertion Vehicle” and the Team ID to 255. Make sure the “Spawn with Reinforcements” field is not checked.
Select the nav points you wish to vehicle to follow under the “Insertion Navigation Points” settings. For more than one point, click on the + button to add more array elements.
Player spawns are the typical spawnzone/ INSPlayeSstart setup, but AI is handled by code using navspawning. The AI will spawn initially in the AICoverActor positions surrounding the active objective, but reinforcing AI will spawn at the next objective’s “Objective Capturable” actor and run to the active objective. As such, give careful consideration to the objective spacing. Putting objectives too far apart could lead to very light engagements.
The counterattacks are managed by placing three SpawnZoneCounterAttack actors. During counterattacks, AI will spawn randomly on these volumes and attack the active objective.
Player spawns are a combination of a spawn zone and INSPlayerStart actors. Place a “Spawn Zone” volume in the area you wish to use. Select the appropriate “Team ID” to 0 (Security) or 1 (Insurgents). Make sure “Start Enabled” is clicked off. Give the spawn zone a unique name. We use something like “SZCheckpoint_A”. The SZ to identify the type of volume, Checkpoint to identify the mode, and A, B, C, etc. to identify the sequence. It can help find volumes easily, if they’re placed in the incorrect level for some reason. You will enter that name into the level’s scenario, so it’s your choice.
Place at least 8 “INSPlayerStart” actors within the spawn zone volume. Ensure the actors are above the play surface and not colliding with any meshs. We set the actor’s rotation to face the active objective to help orient the player on their desired course. Click “enabled” setting off, click the “Team Specific” setting to checked, enter the “Team ID” to 0 (Security) or 1 (Insurgents), and select the “Associated Spawn Zone” to the spawn zone you just created surrounding the actors.
Place a “Spawn Zone Counter Attack” actor in the desired location. Ensure that it’s slightly above the playing surface. Give it a unique name, set the “Team ID” to 0 (Security) or 1 (Insurgents), ensure the “Start Enabled” setting is clicked off. You should place three of these for every “Objective Capturable” in the scenario. Cache objectives don’t have counter attacks and don’t require them. There are no INSPlayerStart actors required for AI counter attack spawns. The AI will spawn on the volume’s location.
You have the option of including a vehicle in your counter attack. If so, place the appropriate BP_VehicleSpawner_InsurgentInfantry or BP_VehicleSpawner_SecurityInfantry vehicle in the desired location near a counter attack spawn, facing the direction of travel. Ensure the vehicle is clear of obstructions, has a valid nav mesh, and is slightly elevated above the play surface. If the box surrounding the vehicle is red, it’s colliding with the surface and won’t spawn.
After placing the counter attack vehicle, select the “Linked Spawn Zone” from the drop down (should be the counter attack spawn near that spot). Under the “Spawner Config”, unclick the “Spawn Automatically”.
Objectives are a combination of an Objective Capturable and Capture Zone volumes.
Place a “Capture Zone” volume within the area you wish to use as an objective and give it a unique name.
Next, place an “Objective Capturable” actor within that capture zone and give it a unique name. Placement of the actors is critical since it be used as a spawn point for AI reinforcements. Make sure it’s slightly elevated above the floor and that the area under it is clear of obstacles and has a valid nav mesh. Otherwise, AI won’t be able to spawn and navigate appropriately.
Afterwards, assign the capture zones set up in the previous steps to that Objective Capturable. You can use multiple capture zones by adding multiple set elements.
For cache objectives, place either an Obj_WeaponCache_Sec or Obj_WeaponCache_Ins at the desired location and give them a unique name.
There are several valuable configuration options within the “Objective Capturable” actor.
If the objective area is exposed and there’s no viable overhead cover, you might consider unclicking the “Allow Lethal Fire Support” settings. If unselected, it will limit the AI fire support options to smoke.
The AI Ambush settings gives you some flexibility in determining how AI will use AICoverActors ambush positions. When AI casualties reach 60%, it puts them into maximum defensive behavior (only occupy ambush positions). By setting this to “1”, AI will immediately occupy ambush positions.
AI will use AICoverActors ambush positions within 2,000 units of the active “Objective Capturable”. The “Ambush Radius Override” allows you to alter that radius manually.
The “Ambush Height Threshold” allows you to set a maximum height for the ambush radius. This is useful, when you have several objectives within a multiple story building. Otherwise, AI might use an ambush position on the floor above or below your current objective.
The “Bot Initial Spawn Method” allows you to alter how the AI spawn. You can make them spawn in AICoverActor positions closest to the player spawn, closest to the objective, or furthest from the objective.
Place “INSPatrolArea” actors close to each objective. After spawning into the map, bots will walk between patrol areas within a radius of active objective.
Place a supply crate at every objective location, except the final objective. Keep it out of the way since the nav mesh doesn’t account for supply crates and it could cause issues with AI running into it.
Under the supply crate settings, select the linked spawn zone and linked objective. These typically open after you’ve captured the objective where it's located. As such, the linked objective is the next objective (not the one you just captured) since it’s active. For example, if you place a supply crate at Objective B, the linked spawn zone and objective should be Spawn Zone C and Objective C.
If you’re using insertion vehicles, the supply truck will act as the supply crate and you don’t place one for Objective A. If you’re decided not include insertion vehicles, place a supply crate near Spawn A.
Cover actors are an integral part of a Checkpoint layout. They provide a means to spawn AI and enhance game play significantly. Every map should include hundreds of these positions (stock game maps can have over 700 cover actors).
Place cover actors in a radius of 14,000 units around an objective, oriented towards the most likely avenues of attack. Be careful that the actor doesn’t collide with any meshes or the play area surface. If it collides with something in the environment, it will turn red and won’t work. Another tricky aspect of placing AICoverActors is that they’re blueprint actors. If you attempt to use the alt + click method of copying cover actors, while the cover settings are selected, it will break the newly created AICoverActor. You must ensure the parent is selected before attempting to copy and paste. In the image below, if you attempted to copy and paste the AICoverActor, it wouldn’t work. You would have to select the “AICoverActor389(self)” first, then copy and paste.
After placing the AICoverActor, select the “Cover” setting under details. You can set the stance to “Stand”, “Crouch”, or “Prone”.
The “Protection Angle” sets the AI trigger to abandon a position, if a player is detected outside that range. It’s oriented on the AICoverActor’s rotation angle. If it’s set to 180, an AI will abandon a position, if they detect a player more than 90 degrees to their right or left.
You can set a priority for a position to be occupied by a specific class.
Clicking on the “Ambush Node” will make an AICoverActor an ambush position. These should be set within 2,000 units of an objective and are intended to be the final defensive position for AI to secure an objective. Put as many Ambush Nodes near an objective as possible to improve randomness of engagements when clearing the area.
You can set a “Rank” to each AICoverActor from 0 to 300. We usually keep this at 300 to improve the randomness of the play.
Restricted areas are controlled by an empty spawn zone volume assigned to the AI’s team assignment. They’re primarily used to keep players from running into areas where AI are spawning and slow down the pace of the game play.
Place a Spawn Zone actor somewhere on the map. It doesn’t require an INSPlayerStart since it’s not actually spawning AI. It’s only used as a trigger in scenario to activate the restricted area. Ensure the “Start Enabled” is not selected and set the “Team ID” to the AI’s team (0 for Security, 1 for Insurgents).
Place a “Restricted Area” volume where you wish to restrict movement while an objective is active. Ensure the “Enabled” is not selected, set the “Team ID” to the AI’s team assignment, ensure “Show on Minimap” is clicked on, then select the spawn zone you just placed in the “Linked Spawn Zone” dropdown.
The scenario will provide the layout configuration data for a game mode. Make sure your map is open and the Checkpoint sublevel that you’re configuring is visible when creating a scenario.
The settings are as follows:
- “Attacking Team” = The human player’s team, 0 for Security and 1 for Insurgents
- “Scenario Name” = The text used for load screens. Use the “String Table” dropdowns to select “ST_Scenarios” and either “Security” or “Insurgents”
- “Map” = The name of your map
- “Level” = Select your level from the dropdown. This is usually your map’s name.
- “Game Mode” = Select “INSCheckpointGameMode” from the dropdown.
- “Allowed Derived Game Modes” = Ensure this is clicked on.
- “Scenario Image” = Select your map image from the drop down.
- “Default Theater” = Select “THTR_SecurityInsurgents” from the drop down.
- “Sublevels” = This is where you select the sublevels used for this scenario. It will be your checkpoint sublevel and, if created, your hardcore sublevel. You can add multiple sublevels by clicking on the + button and adding array elements. The image above shows a typical setup for checkpoint with a hardcore sublevel.
- “Name” = Type in your sublevel name
- “Load on Server” = Clicked on
- “Load on Client” = Clicked off
- “Use with Specific Game Mode” = Clicked off. For hardcore game sublevels, click this option on. Hardcore game modes use the checkpoint sublevel in addition to the hardcore sublevel (both).
- “Specified Game Modes” = Used for hardcore game mode only. When you enable “Use with Specific Game Mode” is permits access to the option. Click on the + button next to it to add an array element. Afterwards, select the “INSCheckpointHardcoreGameMode”
“Objectives” = Enter your objective and spawn zone information in this area. Make sure your map is open and the checkpoint sublevel that you’re configuring is visible. You’ll have to add array elements using the + button for each objective and spawn. Simply select each objective and spawn zone from the drop downs. In the image above, the spawn zones correspond to the player spawn, the restricted area spawn zone, and the counter attack spawns. Objective B above is a cache and doesn’t have counter attack spawns.
Game Mode Default Scenarios
After the scenario is created, you must add that scenario to your map’s list of “Default Scenario”.
Click on the + button next to the “Default Scenarios” to create a new game mode. For “Game Mode” select “INSCheckpointGameMode”. Then select the scenario you’ve just created.
Hardcore Game Mode
Hardcore game mode combines an existing Checkpoint sublevel and unique Hardcore components from a separate sublevel. The only actors in a Hardcore Checkpoint sublevel should be ammo pick ups and a single supply crate.
At each checkpoint objective place at least 10 BP_Pickup_Ammo_Base actors. Configure each BP_Pickup_Ammo_Base actors so they appear after the objective is capture. That means, you select the next objective in the “Linked Objective” dropdown. That will cause the ammo pickups to appear after you capture the objective at your current location. It’s the same as supply crates.
Place a single Supply Crate at the final checkpoint objective. This supply crate must be not be linked to a Spawn Zone or Objective. Those fields should read “None”.
If you haven’t already added the Hardcore sublevel to the corresponding checkpoint scenario, do it now.