Creating Stealth Missions

I created a stealth mission for my custom campaign The Rise of General Posada and I thought I could share with you guys how I made it. I already posted this on the Steam forums, but I would also like to hear from this forum as well.

Before we get to the scenario editor, I should first explain how my stealth mission works. The mission involves two spy heroes that are tasked to sabotage specific buildings in a city while avoiding city guards. An allied player serves as the city, while an enemy player serves as the guard. To sabotage a building, the player needs to bring a spy unit near a building and select the building. If a guard spots a spy, the spies need to kill the guard within 10 seconds or else the alarm sounds. When the alarm sounds, everyone in the city becomes an enemy and the spies are unable sabotage additional buildings. The stealth section of my custom campaign is completely optional; if my two spies die or leave the city, the scenario will simply move on to the next part (to prevent failing the mission if your spies die, place a horse unit in an inaccessible part of the map). Much of this mission was inspired by the The Hand of the Daughter scenario in the HD version of the Sforza campaign.

Now on to the triggers. First, create a trigger named AlarmCountdown and set the trigger starting state to off. Create a Display Instruction effect that will inform the you that a guard has spotted your spy, and then create a Display Timer effect showing how much time you have remaining before the alarm is triggered (for my scenario, it was 10 seconds). Here’s how your AlarmCountdown trigger should look like (C = condition, E = effect):

  • Name: AlarmCountdown
  • Starting State: Off
  • C: Timer
  • E: Display Instruction
  • E: Display Timer

If you aren’t familiar with Display Timer, your message should be formatted as such:

<COLOR>Alarm countdown: %d

Now let’s move on to the guards. For each guard, you will be creating four triggers. First up, the patrol trigger:

  • Name: Guard1Patrol
  • Starting State: On
  • E: Patrol

Next, a trigger that activates when a guard spots your spy:

  • Name: Guard1Target
  • Starting State: On
  • C: Object Has Target
  • E: Activate Trigger - Guard1Countdown
  • E: Activate Trigger - AlarmCountdown

Next, a trigger that will trigger an alarm when the countdown ends. I found that there is around a 1 second delay between when Timer is activated and when the Display Timer message pops up. In other words, the alarm will active before the Display Timer reaches 0. In turn, for my scenario, I actually set the Timer to 11 seconds instead of 10 seconds.

  • Name: Guard1Countdown
  • Starting State: Off
  • C: Timer
  • E: Activate Trigger - Guard1Countdown

And finally, a trigger that will deactivate the countdown when you kill a guard

  • Name: Guard1Kill
  • Starting State: On
  • C: Destroy Object
  • E: Deactivate Trigger - Guard1Countdown
  • E: Clear Timer
  • E: Clear Instructions

When you enable, disable and then re-enable a timer, the timer does not reset. Instead, it will continue from where it left off. For example, if you disabled a 10 second timer with 6 seconds remaining and you re-enable the timer, the timer will continue counting down from 6 seconds instead of 10 seconds. This is why you have to create separate Timer triggers for each guard.

By design, my stealth mission only allows each guard’s patrol path to be partially visible; you can only see guards when they are near a player flag. If you want a guard’s path to be fully visible, you will probably have to create additional triggers that will remove and create map revealers depending on where a guard is located.

Now let’s move on to sabotaging buildings. In addition to destroying the target building, you will also want an explosion effect. To do that, use a Create Object effect to create a Hawk and a Kill Object effect to destroy the Hawk (killing Hawks will always create an explosion sprite). Overall, your destroy building trigger should like as such:

  • Name: Destroy Building X
  • Starting State: On
  • C: Objects in Area
  • C: Object Selected
  • E: Damage Object (I would use a value like 9999)
  • E: Create Object (Hawk)
  • E: Kill Object (Hawk)
  • E: Modify Resource
  • E: Display Instruction - Indicates the effect of destroying the building

It’s also helpful when a spy is near a target building to display a message indicating that you can select the building to sabotage it.

  • Name: Near Building X
  • Starting State: On
  • C: Objects in Area
  • E: Display Instruction - Informs players that they can sabotage said building

And finally, let’s take a look at the Alarm trigger. When the alarm sounds, you will need to disable all GuardTarget, Near Building and Destroy Building triggers. You will also need to change the city’s diplomatic state to enemy because, well, that’s the point of an alarm.

  • Name: Alarm
  • Starting State: On
  • Display Instructions
  • Change Diplomacy
  • Deactivate Trigger - Need to deactivate all GuardTarget, Near Building and Destroy Building triggers.

You can see a video the stealth mission I created below:

Would like to hear if anyone else has another way of creating stealth missions.

2 Likes

This is pure genius. Trust me I will be looking into ways of recreating the original Splinter Cell now lol

Seems simple so far, but it works - abeit you have to create a lot of triggers for each guard. I can probably make a trigger that fire its effect from each kill, or make special ai for the guards to make them fire up a special events back to the scenario editor if an unit is spotted from any of their units sight - perhaps you can PM me on discord for more info: duyhung2h#0206