In this guide we will explain how to add the Survival game mode to your map.
Let's first give a brief overview of what this game mode is about:
The player has to secure objective locations stashed with weapon crates in a random order until the extraction becomes active. Staying on the move is crucial on this mode to survive.
This guide requires basic knowledge of scenario creation that can be obtained by going through the Checkpoint Tutorial
OBJECTIVE LAYOUT AND BASIC SETUP
- 10 -15 objectives set up in clusters - example below
- You cannot have less than 7 objectives, the mode will not function
- Level designers must select an extraction objective for a final defensive point and an objective or two that will proceed it
- The proceeding point must be 200-400m away from the final objective
- The group of points MUST be greater than 100m away from each other cumulatively. For example if you have objectives A, B, C, D, E, F and G, they cannot all be within a 100m diameter of each other.
- If you are working on a Survival game mode in an empty level you must add geometry that blocks sightlines. This mode is not testable in an empty arena, bots will not spawn within the camera view frustum.
- Designers can add a Survival Route Config actor. This actor allows designers to set the min/max run distance between the objectives and to determine the % chance of each objective being selected. After clicking “Log Route Info” the information will show up in the Output Log. The distances are in cm so 10,000 units is a distance of 100 meters.
- Overriding the distances in the Survival Route Config will override the default distances in the scenario file.
- Survival objectives use a special Survival Objective actor for their objective capturable.
- This specialized objective actor has several parameters that can be altered for the game mode.
- It is not necessary to set a first objective, but a designer must set at least one objective as the penultimate, and one objective as the extraction. You can set more than one objective as the penultimate.
- Order Type: This drop down contains the settings to make an objective a standard objective, a candidate for the first objective, the penultimate objective, and the extraction objective.
- Additional Next Objectives: Loading an objective in this array will allow designers to set a one off objective run that might be outside the level parameters. For example, the min run distance to the next objective is set to 100 meters and the max run distance is set to 200 meters, but the designer would like to be able to path to an objective 250 meters away. This setting allows for that specific objective to be added to the possible objective pool.
- Excluded Next Objectives: This setting will exclude the specified objective as a candidate to be reached from the current objective.
- Players are set to a team ID of 0.
- Create a neutral spawn zone for the initial spawn that is close to the middle objective on the layout.
- Following player spawns should be on the captured objective point.
- Each objective needs a set of (4-5) survival supply crates called BP_RandomWeaponCrate_Survival
- These can be found under Game/Actors/GameModes/Survival
- On the crates in the details panel, select the “Link Use Limits” checkbox and then expand the array using the “+” to be one less than the total supply crates on that objective. For example, if you have 4 supply crates the list will be a length of 3.
- Add all the crates on that objective to the list except for the crate itself. For example crate number 1 would have a reference to crates 2, 3, and 4.
- The supply crates are controlled by the Spawn Zone actor, make sure to select “Can be Controlled by Spawn Zone” on the crates themselves.
- This option should be on by default .
- On the Spawn Zone actor under “Player Start” in the details panel, click the option “Controlled Actors” and make the array the number of crates on that objective.
- Add all the crates on that objective to the array.
- The survival crates can be stacked on furniture or on top of each other.
- If stacking them on top of each other the bottom crate must be the static mesh version with the lock called SM_WeaponCrate_01a.
- DO NOT STACK THE CRATES HIGHER THAN 2
- Anything higher than couches will be too high, this means use tables, counters, or water tanks at your own risk.
- The lid swings open slightly bigger than the base of the crate, leave space to ensure the crate lid won't clip through the surrounding geometry.
BASIC HELICOPTER SETUP
- On the extraction objective make sure to include a spawn zone, crates and a Helicopter Nav Target.
- The helicopter transform will try to centre on the nav target so make sure to match the desired position with where the helicopters transform is. You can do this by grabbing the BP_SupportHelicopter and placing it in the desired position and matching the locations. Make sure to delete this actor once you have found the appropriate position.
- Set the helicopter hover height property to an appropriate distance from the ground.
- The helicopter will not hover in this position, it will instead move to that height and then continue around the objective.
- 3600 is the default height which will clear the walls on Precinct.
- Most 2 story buildings can be cleared at around 1500-1700.
HELICOPTER EXTRACTION ANIMATION SETUP
- Under the Content Browser go to Cinematics/Sequences/ExtractionSequence to find the bank of sequences.
- Pick one and duplicate it, rename it to fit your level.
- Navigate to your sublevel and drop your new sequence into the level near the extraction objective.
- Under the details panel do the following:
- Enable "Pause at End" and "Replicate Playback".
- Uncheck “Override Aspect Ratio Axis Constraint” and set “Aspect Ratio Axis Constraint” to “Maintain Y-Axis FOV” just to be safe.
SETTING UP THE ACTORS IN THE LEVEL:
- Add 3 empty actors and rename them to:
- Add the particle system called "NS_HelicopterDust" and in the details panel make sure "SpawnRate" is set to 0 by default.
- Add a camera and rename it to "ExtractionCamera", in the details panel make sure "Constrain Aspect Ratio" is disabled and make sure in the track that "Current Focal Length" is set to 12.0.
- This camera does not have to be added to the level sequence, it will update automatically.
- Under the sequence actor click “Open Level Sequence”
- You should now see a panel like the one below with certain elements in red.
- The missing red elements should match the names of the actors you have added to the level.
- Right click on the red text and navigate to “Assign Actors”.
- Select the actor with the same name and add it, this should remove the red warning text and replace it with white.
- Once all the actors are re-added to the timeline right click on the "ChopperTranslationRoot" track, navigate to Tags and add the tag "Helicopter".
- You might have seen it previously when the text was red but it will be overwritten by adding in the new actor.
- For reference you can also drop the asset "BP_BlackHawk_Survival" and add that as an actor to the sequencer animation, click on "+Track" and navigate to "Attach" on its track in the animation and attach it to the actor. "ChopperTranslationRoot". This will help visualize where the Helicopter will travel.
If your editor screen seems to have blacked out after opening the level sequence it is due to the camera fade. Just click on a different area of the sequence timeline or close the sequencer to see your map again. When testing your extraction animation sequence be sure to close the sequence tab or else you might experience jitter, lag and incorrect triggers for your extraction sequence.
UPDATING THE ACTORS ATTACHMENTS IN THE ANIMATION
- Expand the tracks until you see a yellow/brown bar in the animation that looks like this:
- To update the following you must right click on them, navigate to "Attach" and select the ones listed below for each track and disable and re-enable "Active" to update its location correctly.
- For "ExtractionCamera" attach it to "ChopperExtractionCameraTranslation"
- For "ChopperExtractionCameraTranslation" attach it to "ChopperExtractionRoot"
- For "ChopperTranslationRoot" attach it to "ChopperExtractionRoot"
- For "NS_HelicopterDust" attach it to "ChopperExtractionRoot"
- You should now be able to move the actor "ChopperExtractionRoot" to where you need it to be in the level and you should also be able to change the location of the particle "NS_HelicopterDust" if it needs to be adjusted to be on the ground under the chopper.
UPDATING THE BLUEPRINTS
- In the Sequencer animation we're using blueprint events to trigger the door animations, as well as forcing the players character models inside the chopper. These can be done by right clicking on the green bars in the tracks, there should be two, one for "Passenger Events" and one for "Door Events".
- For the passenger events track we want to make sure a key is set at frame 0100, then right click on the key, navigate to Properties and search for "FillExtractionHelicopter".
- For door events we want to make sure two keys are set at frame 0050 and 0134. Once they're set on the first key we need to navigate to properties again and search for "SetHelicopterDoor" and make sure "Open" in the window is checked. For the second key do the same but make sure "Open" is unchecked.
TROUBLESHOOTING THE BLUEPRINTS
If you cannot reference the events, double check the Sequencer Director blueprint to make sure all the events are there. To open up the blueprint you can add a key in one of the green events track, navigate to properties and click on the magnifying glass next to the unbound event:
- Once it's open make sure the event graph looks like the one below:
- If it does, we're good to go, if not you can open up the original sequence directors blueprint and just copy those nodes from the event graph.
PATROL PATHS, TACTICAL GRID AND COVER ACTORS
- Make sure to set up several INSPatrolAreas all around the map and objectives
- Objectives will need AICoverActors, be sure to place them in relevant positions and set them to the appropriate priority and type
- Survival requires the use of the Tactical Grid
- You can find this actor by searching for it in the “Place Actors” panel on the left of your screen
- The Tactical Grid must be placed touching the nav mesh on the persistent level
- Once placed go to the details panel on the actor and click the option to “Generate Data”
- This process can take anywhere from 5 minutes to 20 minutes depending on the size of the map, don’t exit the process if the editor is unresponsive during that time.
You should now be ready to play Survival on your map!