FPS Tower Defense Toolkit

The FPS Tower Defense Toolkit is a pure blueprint framework that enables the quick & easy creation of Tower Defense games from a first-person shooter perspective.

Marketplace Product Page:…efense-toolkit


• Basic FPS Movement & Combat.
• Multiple types of AI Wave Spawning systems, with support for both Endless waves & repeating wave cycles with dynamically escalating difficulties.
• Seven types of Towers: Tower Base, Shockwave Tower, Machine Gun Tower, Laser Tower, Sniper Tower, Boost Tower & Trap.
• Nine Types of Weapons: Assault Rifle, Laser Rifle, Railgun, Plasma Rifle, Seeker Rifle, & Arc Rifle.
• Three types of Enemy AI: Core Bomber, Melee Bot & Ranged Bot.
• A Mission Stats Display system that tracks the damage & kill stats information for both players & towers.
• Includes a loadout menu at the level start with player driven tower selection.
• Grid Generators with drag & drop support to create grid cells for tower placement.

Technical Details:

• The Wave Manager allows complete customization of waves through parameters including Enemy Type, Number Of Units, Spawn Point, Spawn Delay, etc.
• Modular components are employed throughout the toolkit to handle special functionalities & aid in the creation of new variations to existing entities with minimal coupling.
• AI Spawn Points support both precached & runtime generation of randomized spawning locations.
• All information pertaining to the towers are displayed dynamically using a data-driven approach, thus eliminating the need for manual HUD modifications when adding/removing towers.
• The Grid Generators support grid snapping & 360-degree rotational freedom & thus facilitate placement of towers & traps on inclined surfaces & walls.

Intended Platform: Windows

Optimized for: Unreal Engine 4.25 [Features added in newer versions of Unreal Engine may not be available in the older versions. Check out ‘Updates’ section below to see the features that are available in different versions.]

Current Version: 3.13

**Preview Screenshots:


Preview Video (v1.4):

If you have any queries or feature requests regarding the toolkit, you can always reach out to me personally through the Support Email.

Additional Resources:

Update Logs:

Upcoming Features:

  • To be listed soon

Concept Overviews:

  1. Tower Manager:…l=1#post459468

  2. Enemy AI:…l=1#post459967

  3. Enemy Spawn Point:…l=1#post497283

  4. Weighted Wave Spawn Controller: https://unrealpossibilities.blogspot…-basics_2.html


  1. How to create a new level: https://unrealpossibilities.blogspot…orial-how.html

  2. How to create new Enemy Types: FPS Tower Defense Toolkit Tutorial (v3.8): How to Create New Enemy Types - YouTube

  3. How to Set Up Waves using Batched Wave Spawn Controller: FPS Tower Defense Toolkit Tutorial (v3.11+): How to Set Up Waves using Batched Wave Spawn Controller - YouTube

  4. How to customize the Floating Damage Texts system:…14#post1780514

Legacy Content:

  1. Holographic Tower Constructor (v2.1 to v3.12):…l=1#post697503


  1. Is there a way to change the Grid Size? If so, what is the procedure for doing it?
    A: Yes, the Grid Size can be changed from one central location, so that it affects all the grid generators in the level. For more details on how to accomplish it, check out:…l=1#post439776

  2. I noticed that the towers in the toolkit require a tower base to place them in the level. Does the toolkit support placement of towers directly on the grid floors? If not, what would be the easiest way to implement it in my project?
    A: The toolkit does not support the placement of Towers on the grid generators by default. However, you can follow this tutorial to achieve the desired result: https://unrealpossibilities.blogspot…sed-on-v1.html.

Hi Stormrage256,
killer asset pack :smiley:

I just wanted to let you know that I’ve given your product a shout out here: Tower Defence template required in editor at New Project tab templates - Feedback for Unreal Engine team - Unreal Engine Forums

Just in case you would like to answer jump in on the conversation.

P.S. I’ll also update my post on that thread to include your thread here

Thanks a lot for the shout out @benjamin.smith :smiley:

I’ll be checking this one out for sure! It seems like a lot of work has been put into this toolkit. It looks very well organized, and there is a lot of stuff here that should be very useful even to developers who intend to make games in other genres than tower defense.

Thanks Monokkel. I would really like to hear your feedback and suggestions for any future updates for the toolkit. I’ve tried to keep things as modular as possible, but to be honest, studying your toolkit has really helped in making some better choices in that regard as I’ve been working on this alone with no outside feedback. Still there are a few features that I would like to add in the future versions, that couldn’t make it into the launch product… And yes, as you mentioned, apart from the tower spawning parts of the toolkit, most of the other stuff like wave handling, Enemy/Turret AI, UI elements can find use in a wide variety of genres.

Thanks for this! It should be fun experimenting with it. Replacing towers with custom assets seems easy enough. I’m curious as how to add additional attack animations for the enemies.

Hi Gugenheimer, I’m glad to hear that you’re finding it easy to use. More towers will be added in the the next update. I’m not good at creating animations and hence couldn’t provide anything besides the basic mannequin animations with the toolkit. However I will be linking tutorials in this thread in the coming days for adding custom characters and animations to the toolkit.

I’ve created a basic tutorial going through the process of adding custom attack animation for the Enemy Melee Bot. It’s mainly intended to show where to call the animations from, so that users can get started with animations.

Later on, if you would like to try out more realistic animations and collision based damage systems, I have linked two tutorials for the same created by Epic:

FPS Tower Defense Toolkit Update 1 (v1.1) Preview: Support for multiple Enemy Spawn Points coming in the next update. [See attachments]

EDIT: The Laser Tower Logic has been changed to have them deal continuous damage over time as well as fast switching between enemies when the active target goes beyond range or gets destroyed.

Hey Stormrage256

I can convert it to third person game mode?

  • luny

Hey Iuny, it’s not available by default in the toolkit, but you could convert it easily by yourself. For example, here is something that I just quickly made by simply swapping the first person mesh with the third person mesh [moved to attachment], along with some camera angle changes:

If there’s enough demand for third person view, I’ll probably add it in one of the future updates.

Hey Stormrage256,

First of all, thanks for creating this toolkit! I bought it last night and see a lot of potential in this toolkit. I’m glad to see that you’re adding multiple spawns in the next update, and you have new creep types coming (flying creeps please!)

Adding to your discussion on adding a third person character, to me it looks like it wouldn’t be too difficult to convert this to a traditional top-down tower defense game. Most of the work would be in creating a new character blueprint. Different game modes such as first person, third person, top down, etc. Would add a ridiculous amount of value to this toolkit. Just a suggestion!

Keep up the good work! I’m interested to see what I can do with this toolkit. :slight_smile:

Thanks for your feedback, tanka2d. If I don’t stumble into any major bug, the next update which contains the multiple spawn points will be submitted this Monday to Epic. It will also include an improved version of the Laser Tower as well as a new Sniper Tower, better code standardization and some minor bug fixes. I will post a more detailed post on the update here once it’s gone through some more testing.

As for the flying creeps, I’m really excited about adding them as well. It won’t make it in the first update, because I have to do some more research. But it will definitely make it into one of the future updates.

And yes, you’re absolutely right about the third person and top down versions. I’m going to add the third person version after the second update, but just wanted to get an idea on how to structure them without making the toolkit feel bloated. Also normal top down tower defense games are a lot less complicated can this, so lot of the code base will be unnecessary. Let me know if you have any ideas/suggestions for that.

Thanks for the tutorial on adding attack animations. I was able to replace the default melee bot with a different mesh and skeleton. Now I’m curious if I would be bale to duplicate the default melee bot, and assign the duplicate a different mesh.

I looked at the enemy types “red, yellow, orange” but not sure how those types tie into enemy BPs.

Well, thanks for pointing out that confusion. While most of these make sense to me since I’ve been developing it, it might not make sense to others. So I’ve edited the enum ‘EEnemyType’ to something everyone can understand. The update should be submitted sometime tomorrow. For now, Red refers to the AI Bot that fires laser at you. It’s the most aggressive of all of them, being faster, having a longer threat detection radius and the ability to find out if it’s being attacked by the player. Yellow bot does not attack the player, but explodes near core to deal high damage. The orange bot focuses on doing melee damage, but can detect the player only when close.

In order to duplicate the default melee bot, you would have to duplicate the blueprint ‘BP_EnemyAI_Melee’. Then open it, go to it’s viewport tab and replace it’s skeletal mesh and animation blueprint, if necessary.

Update 1 (v1.1) now available on the Marketplace. Here are the major list of changes:

  • The toolkit now supports multiple enemy spawn points as well as optimal enemy AI path display for the same.

  • New Sniper Tower added. HUD elements updated to include the new tower.

  • Laser Tower functionality changed to deal continuous damage to enemy bots.

  • AI Director class changed to Game Director class and now handles respawn logic and navigational path display logic apart from it’s default functionality.

  • Custom KillZ Volume added to support player respawn logic.

  • Code optimization; Minor bug fixes; Blueprint names renamed to avoid confusion and improve readability.

The new update is available on the marketplace now. I’ve renamed the enemy type and tower types names as well as some of the blueprint names to avoid confusion in the future. Thanks for your feedback man.

Hi, Stormrage256

I can to use your toolkit in a hilly terrain with entrances to caves, cliffs and canyons?
I realized it uses a approach like a grid in the ground like a chessboard. There are a more free way for spawning the towers in a very hilly terrain?

And what is the difference between the “Tower Defense FPS Toolkit” and UDK’s “Dungeon Defense”?


Hey IunyBunny, as you already noticed the toolkit now works using a grid system that’s created using the Grid Floors that you place in the level. So the default functionality is limited to flat surfaces, though I’m trying to extend it to inclined surfaces as well in the upcoming updates. The Grid floors are currently used because they allow for easy prototyping for potential customers. You can changes the size of the grid cells, the length and width of grid floors, etc making them easy to setup different types of level design scenarios with it.

That being said, placing towers on hilly terrains is not possible with the default settings in the current version of the toolkit, but it’s definitely on my list of things to do in future updates. However if you’d like to try it out on your own, it’s entirely possible with some small customizations to the toolkit. Instead of using the grid floors to generate the grid system, you could get the landscape actor bounds locations along with it’s center locations to create a custom grid system of your own. Then you do the line trace to the landscape instead of the grid floor, use it to get the status of targeted grid cell using your custom grid system and place the tower based on the height of the trace hit. All the remaining code can remain the same. Just need to swap the usage of grid floors with landscapes. Of course you’d have to make the tower bases taller in order to ensure that part of it lies below the landscape even if the terrain is highly uneven. That’s how I would do it.

Just checked out Dungeon Defense and I don’t think there’s any difference except for that fact it has a top down perspective, while this toolkit is focused on first person perspective.