Top Down Stealth Toolkit

The Top Down Stealth Toolkit is a pure blueprint framework that enables quick & easy creation of stealth games from a top-down perspective.

Marketplace Product Page:…tealth-toolkit

**Features: **

• Top-Down Camera perspective.
• A custom-built AI Perception system tailored specifically for developing Stealth games enable the AI agents to perceive stimuli through four different types of perception models: Visual, Aural, Intuitive, & Motion perception.
• A Stimulus generation system that will enable the users to easily customize & add new types of perceivable events for the AI agents.
• Patrol Guards that can respond to a wide variety of stimuli including the player character, incapacitated teammates, alarms, footstep & gunshot noises, & more.
• Automated security devices like Cameras, Motion Sensors, Laser Security Systems, & Turrets function provide auxiliary support systems to assist the Patrol Guards & provide additional layers of challenge to the player.
• Use Whistle, Gadgets, Suit Abilities, & Weapons to distract or disable AI Bots.
• A Global Alert Level system that controls the activation of automated security devices like lasers & turrets, as well as the deployment of reinforcement patrol guards.
• A Mission Stats Display system that tracks & updates high score information for every level.

Technical Details:

• Modular components are employed throughout the toolkit to handle special functionalities & aid in the creation of new variations to existing entities with minimal coupling.
• The Global Alert Level system controls the Global Alert Meter by employing event dispatchers to continuously listen in new stimuli being perceived by AI agents across the level.
• The AI Surveillance Controller directs the activation of all AI agents within the level. This system can be leveraged to create different starting conditions for each level, choosing to activate all security measures by default or have them activated in a modular fashion based on the overall threat perceived by the AI.
• The AI Sensory Manager continuously evaluates all stimuli against various agents & assigns new objectives to the AI agents based on the results.
• The Patrol Guard AI uses Behavior Trees to respond to the various objectives assigned by the AI Sensory Manager.

Current Product Version: 3.3

Optimized for: Unreal Engine v4.25 [Features added in newer versions of Unreal Engine may not be available in the older versions. Check out ‘Updates change log’ in the following post to see the features that are available in different versions.]

Intended Platform: Windows

Gameplay demo of the v3.1 edition of Top Down Stealth Toolkit (Windows):…itv3.1.7z?dl=0

Preview Videos:

  1. Top Down Stealth Toolkit v2.0 Features Preview: Stimulus Classes

  1. Top Down Stealth Toolkit v1.0 Preview:

If you have any doubts or queries regarding the toolkit, you can always reach out to me personally through my email id at: [EMAIL=“”]

Additional Information:

Update Logs:

Tutorials/Basic Concept Overviews:

  1. Top Down Stealth Toolkit Tutorial: How to create a new level: https://unrealpossibilities.blogspot…orial-how.html

  2. Top Down Stealth Toolkit Basics - Patrol Movement Systems: https://unrealpossibilities.blogspot…cs-patrol.html

  3. Top Down Stealth Toolkit Basics - Stimulus Types: https://unrealpossibilities.blogspot…it-basics.html

  4. Top Down Stealth Toolkit Basics - AI Perception: https://unrealpossibilities.blogspot…basics-ai.html

  5. Top Down Stealth Toolkit Tutorial - How to create a new custom Interest Stimulus: https://unrealpossibilities.blogspot…orial-how.html

  6. Top Down Stealth Toolkit Tutorial - How to control the AI Perception model for AI agents: https://unrealpossibilities.blogspot…al-how_22.html

  7. Top Down Stealth Toolkit Basics - Vision Arc Configuration:…83#post1587283

  8. Top Down Stealth Toolkit Tutorial - How to create customized Laser Security Systems:…l=1#post642794

  9. Top Down Stealth Toolkit Tutorial - How to modify the size of the noise pulse emitters: https://unrealpossibilities.blogspot…orial-how.html

  10. Top Down Stealth Toolkit Tutorial - How to change to Third Person Perspective: Top Down Stealth Toolkit Tutorials - Google Docs

  11. Top Down Stealth Toolkit Basics - Global Alert Level System: https://unrealpossibilities.blogspot…cs-global.html


  1. I noticed that the turrets are disabled when I start a new game. But then they sometimes get activated over the course of a game. Why is it behaving this way, and how can it be enabled right at the start of a mission?
    A: The turret AI in Top Down Stealth Toolkit is set to a deactivated state by default. This is an intended feature designed to showcase the use of automated security devices as a form of backup system for the AI. The default behavior is to activate them once the Global Alert Level escalates to Stage I, which is why they seem to get turned on sometimes during the mission. For more details on how to control this behavior, check out: https://unrealpossibilities.blogspot…kit-faq-1.html

  2. I want to change the size of the vision arcs. Where can I find the variables that control it? Is there a way to do it from the editor window?
    A: You can customize the radius & angle of vision arcs for all types of AI through their perception components. For detailed information on how to go about doing it, check out the FAQ reply section at: https://unrealpossibilities.blogspot…kit-faq-2.html

  3. Does the vision cones update their shape based on the obstacles in their path?
    A: Yes the vision cones continuously gets updated based on any obstacles it encounters in its path.

  4. How can I turn off the Gadget Selection Menu that pops up at the start of a level?
    A: The BP_GameMode blueprint has a boolean variable named ‘SelectGadgetsAtLevelStart’. It determines if the Gadget Selection Menu will be displayed or not. So to turn off the menu, just set this variable to false.

Reserved for future use

Top Down Stealth Toolkit Basics #1: Patrol Bot Movement System

The Patrol bots in Top Down Stealth Toolkit are equipped with three different types of patrol movement system: Stationary, FixedWaypoints, & RandomWaypoints. This setting can be changed from the ‘PatrolMovementType’ enum variable listed under the ‘User Defined’ category for Patrol Bots as shown:


  1. Stationary Movement Type: The Stationary movement type setting is used for patrol bots that are assigned to guard a particular location without actual patrol movement. They will however move out to investigate any suspicious activity in their vicinity. Upon failing to find the player under any circumstances, these bots will always return to their original guard location.

  2. FixedWaypoints Movement Type: The Fixed Waypoints system is used to create well defined paths for patrol bots. This is accomplished using a combination of custom Waypoint actors as well as an array to store references to these waypoints in a fixed order. In order to create a patrol path using this system, drag in the BP_WayPointNode actors into the level to create a set of path points. Now under the ‘User Defined’ category of the patrol bot actor, add new elements to the ‘FixedWaypointsArray’, and then select the Waypoint actors [screenshot below] from the dropdown in the order in which the bots are required to traverse them. Bots that have been interrupted from this behavior by the player will always return to this designated path once they lose track of the player.


  1. RandomWaypoints Movement Type: Patrol bots assigned with this movement type will keep moving between randomly selected destinations at run time. Adjust the value of the ‘RandomWaypointRadius’ variable within the BP_PatrolEnemyAI_Parent blueprint to change the radius of search for the new waypoints.

Check out 0:54 of the Top Down Stealth Toolkit preview video to see all three patrol movement systems in action:

Hi, daft question, but how do I resize the vision cones?

Hi Daltone, if you select any of the bots in the level, you’ll be able to find two attributes ‘VisionRange’ & ‘HalfVisionAngle’ under the ‘User Defined’ category [see attached image]. You can adjust these values to change the size of the vision cone.

Alternatively, you can change it within the AI blueprints class itself to have it affect all AI units of that particular type.

Thanks, I think I must have gone temporarily blind. Nice toolkit though!

Thanks Daltone. I’ll be posting more information regularly on how to work with different parts of the toolkit.

Top Down Stealth Toolkit Basics #2 (v4.11): Vision Arcs Outdated]

The Vision Arcs in Top Down Stealth Toolkit are created using Custom Mesh Components & updated at runtime based on the obstacles in the near vicinity of it’s parent actor. They primarily serve the purpose of conveying information about the AI Line of Sight to the player, while the functional parts of AI threat detection are handled elsewhere. Due to this modular approach, the properties of the vision arcs can be modified without worrying about making changes to the AI threat detection logic.

The implementation of Vision Arcs in the toolkit is comprised of 4 different parts:

  1. The Vision Arc Custom Mesh Component enable the vision arcs to dynamically change their shapes based on the obstacles in the near vicinity of it’s parent actor.

  2. The Vision Arc Vertex Manager is a custom scene component responsible for the calculation of the vision arc vertices at runtime. Once it calculates a new set of vertices, it sends them to the parent actor through the ‘BPI_VisionArc’ interface so that the Vision Arc Custom Mesh Component can be updated using this information.

  3. The blueprint interface BPI_VisionArc provide the parent class with the functions necessary to create the vision arc & initialize it’s default parameters, handle runtime vertex updates, & dynamically update it’s rendering status based on the requirements.

  4. The Vision Arc Bounds is a box collision component that continuously searches for any obstacles in the vision arc range & thus determines whether the Vision Arc Vertex Manager needs to process further updates. This ensures that the expensive vertex update calculations are processed only when required & thus helps increase the performance.

Top Down Stealth Toolkit Basics #3: Gadgets

The Top Down Stealth Toolkit comes with a set of gadgets that enable the player to get around the AI bots. In order to facilitate selection of gadgets from the loadout menu at level start, all information about the gadgets are stored in the Gadget Data Array variable in the BP_TDSTGameInstance class. The Gadget Data Array holds information such as the gadget description, cooldown delay, number of uses, etc as shown below:


It can also specify whether the gadget has been unlocked or not. This information is taken into account when the Loadout menu displays the list of available gadgets to the player & can be used to control the availability of different gadgets based on player progression.

Gadgets: As specified in the Gadget Data Array, the Gadgets can be used only a limited number of times. The number of gadget activations remaining is displayed through the UI element for the same. Gadgets also have a cooldown interval during which they cannot be used.

  1. EMP: The EMP is an instant activation device that deactivates all cameras & turrets in range for a short duration.

  2. Proximity Shockmine: The Proximity Shockmine is a deployable actor that delivers powerful electric shocks to stun a single target. It works based on the principle of overlaps & deactivates the first patrol bot to pass through it for a limited period of time.

  3. Stun Gun: The Stun Gun is a non-lethal firearm that can temporarily knock out patrol bots from a distance. Unlike the other gadgets, the stun gun requires manual targeting using the mouse cursor. Splines are used to provide visual aim assists from the player towards the target.

Apart from the Gadgets, the player character can also use a Whistle to distract enemy patrol bots. It basically creates a noise which can be picked up by the bots with Hearing Perception. The Whistle has unlimited usage & doesn’t have any cooldown requirements.

FPS Tower Defense Toolkit Basics: Enemy AI

The FPS Tower Defense Toolkit has 3 different types of enemy AI bots: Core Bomber, Melee & Ranged. They’re derived from the parent class ‘BP_EnemyAI_Parent’, which houses the core logic for all types of enemy bots. These include moving toward the power core, turning to face a target, handling damage receive events as well as update calls to wave handler when the bot is destroyed.

  1. Core Bomber: The Core Bomber bot is a slow moving unit with a large pool of hit points. It does not possess any threat detection logic. Apart from moving toward the Core, it’s only other functionality is to self destruct to do massive damage to the Core, which is handled through the custom event ‘Event Attack Active Target’.

  2. Melee: The Melee bot has an intermediate level of speed & hit points when compared to the Core Bomber & the Ranged bot. It’s ‘Vision Check’ function continuously searches for the player character & determines if it’s within range using a combination of distance, angular & line trace checks. Once within the range of the player, it will move on to attack the player. If the player leaves it’s vision range, it reverts to it’s original state & moves on to attack the Core

  3. Ranged: The Ranged bot is a fast moving offensive unit with ranged attacks. It has low hit points compared to the other bots. Like the Melee bot, it uses a ‘Vision Check’ function to search & attack the player if it’s within range. In addition to that, the Ranged bot can also mark the player as a target, if the player keeps attacking it from directions that are not within it’s direct vision range. This feature is handled by the function ‘Detect Target When Attacked’.

The Enemy AI Bots use the default nav mesh based pathfinding to dynamically alter their paths at runtime based on the placement of tower based around the level. They do not use any sort of crowd movement or inter bot collisions, but instead use randomized approach vectors from the Enemy Spawn Point towards the Power Core. This makes sure that the bots do not always end following the exact same paths even if the general path direction remains the same & hence prevents crowding at the exact same point near the Power Core.

I’ve been working on the first update over the past few weeks. The main focus of this update since the beginning was to find ways to make the vision arc rendering less expensive. While the actual line trace based calculations doesn’t offer much leeway in terms of cost reduction, I’ve found other ways to greatly optimize the vision arcs. These include checks to identify if the vision arcs are within visible screen space as well as less expensive obstacle checks to set the operation cost levels of enemy AI dynamically. Based on the operation cost level, the bots may turn off the line trace calculations for vision arc, player search logic, or both, thus essentially turning on/off expensive features based on the requirements.

Apart from this, I had been kind of troubled with the class hierarchy for the enemy AI. The Top Down Stealth Toolkit v1.0 comes with the following level of hierarchies:

  1. At the highest level, we have the Enemy AI Parent class derived from the character class.
  2. At the second level, we have two classes: Patrol AI Parent & Stationary AI Parent class, both derived from the Enemy AI Parent class.
  3. At the final level, we have two classes derived from Patrol & Stationary AI Parent classes each.

The problem with this approach was that the Stationary AI class inherit unnecessary components like character movement component & skeletal mesh component from the Enemy AI parent class. I could have made them into separate entities but since I wanted both types to be able to use vision arcs, I decided to derive them from the same class & implement the vision arc logic in the Enemy AI Parent class. So I started searching for more cleaner & alternative approaches & came upon the concept of composition, thanks to zoombapup mentioning it in an old forum post. After doing some research on component based workflow, I decided to use the Vision Arcs as custom components that can be added to any class. This modular approach along with the use of interfaces have helped to remove the unnecessary Enemy AI Parent class & instead have Patrol AI Parent & Stationary AI Parent as two separate entities, each containing only what is required of them. The vision arcs are now added as components to both the classes.

The other major changes that have been made so far include a new Turret bot AI, the use of Setter functions instead of setting exposed variables of a class from another class directly, more optimized AI threat detection logic, etc. I’m also planning to implement an optional gadget selection screen at level start, as well as looking into the prospects of implementing the gadgets as components.

I hope to finish work on this update by sometime next week & in time for the official Unreal Engine v4.11 release. There hasn’t been any updates about what’s happening with the updates for this toolkit, so I just wanted to give a heads up about that.

Work on the Loadout menu is almost complete. It uses a customized grid panel to display the gadgets based on the data stored in the new Gadget data array. Here’s a preview screenshot:


There’s some code clean up left along with some work on integrating some parts of the menu system with the existing toolkit logic. It should hopefully be up & running in a couple of days & I’ll upload a preview video then.

Work on the new Loadout menu is almost complete. It uses a customized grid panel to dynamically display the gadgets based on the information stored in the new Gadget Data Array. Here’s a preview screenshot:


At this point, there’s some code clean up left apart from some work on integrating the menu system with existing toolkit features. It should hopefully be good to go in a couple of days, & I’ll upload a preview video then.

Preview Video for the new Gadget Selection Menu: [Part of the upcoming v1.1 update]

The Gadget Panel is created dynamically based on a new array that holds information about all Gadgets including gadget type, unlocked status, description, etc. This data driven approach ensures that the panel adjusts its size, position, number of child widgets, etc at runtime & thus prevents the need to make HUD changes everytime new gadgets are added into the project.

By changing the parameter for number of columns, the grid layout automatically adjusts itself. [See attached images]

WIP screenshots for the new Turret Bot & Laser Tracker component:



Here’s a short preview of couple of new features that is coming in the v1.1 update.

The Automated Laser Component can be added to any of the bots that require a target lock-on system. Just activate the tracking system when necessary & it will use the associated interface functions to lock-on to the active target.

The new Turret bot acts as the offensive counter part of the camera bot. While it offers a very limited static range of vision, it’s quick lock on timer enables it to take down targets with ease.

Hi, I will not have access to my computer until this coming Monday & hence will not be available in the forums. However I will have access to my mail. So if anyone has any queries regarding the toolkit, you can reach me at:

This is great, one idea to enhance the AI would be to add a state so that once the player is detected, the enemy will look around and occasionally follow the same path/area of the player for a while, even if the player has escaped from view. I think this would make the AI more intelligent and less predictable, otherwise as with most games the AI basically has the memory of a gold fish :P. Another idea is once you’ve been spotted, the AI could then alert nearby AI. These are just some idea that I think would enhance the stealth aspects, but I’m pleased with the template and you will see how I get on using it in the UE4 G+ community. :smiley:


so the AI starts following me. If I run away they will stop chasing me and return to their place?