Tower Defense Starter Kit

The v3.0 edition of Tower Defense Starter Kit has gone live on FAB.

Change Log:

I. Introduced a unified gameplay tag driven stats system across towers, battle units, and global abilities, replacing the previous hard-coded blueprint variable approach.

II. Added StatContainer as the base class for all stat driven components including tower cores, hitpoints, and attack modules.

III. Introduced BPC_TowerCore, a new component based system that defines the behavior of each tower, built around five distinct functional types: SingleTargetLock, MultiTargetLock, AoEPulse, ProximityTrigger, and NonTargeting, with all tower cores in the update derived from one of these types.

IV. Added AgentProfile system as the central initialization and component management layer for towers and battle units, handling dynamic component addition, data table driven setup, and coordinating the initialization flow across all components at runtime.


V. BPC_Hitpoints and BPC_XPSystem now both derive from StatContainer, bringing them in line with the rest of the stat driven systems in the toolkit and enabling them to own and process stats through the same gameplay tag driven pipeline.

VI. Global ability stats moved from blueprint variables to DT_GlobalAbilities.

VII. Added a new stats display system that allows tower and battle unit stats to be shown in the UI, fully configurable from the data table. Each entry defines which stat to show, how to label it, and the order it appears in. Supports displaying stats for both active agents in game and tower previews in the build menu.

VIII. Replaced the existing custom blueprint based AI perception system with an EQS based approach for how towers and battle units perceive and identify targets

IX. Resolved all circular dependencies in the project

X. Added Unreal Engine 5.7 support

Additional Notes:
Documentation/Tutorials are being updated for the latest version and more info will be shared here soon

I’m updating the documentation and tutorials for the new v3.0 edition of the toolkit. Will be using this post to share the updated documentation.

I. New updated tutorial on how to create new custom Towers: Tower Defense Starter Kit Tutorial: How to Create New Towers (v3.0)

II. New updated tutorial on how to create new custom Enemy units: Tower Defense Starter Kit (v3.0) Tutorial: How to create custom Enemy Battle Units

Just wanted to point out to customers having trouble downloading any content from FAB, there is a new bug (Assets not Updating in Fab Library )that prevents people from downloading or updating project files through the vault list.

If you’re facing the same issues, until Epic releases a fix for it, one workaround I’ve found is to go to the My Fab Library link, then search for the product there and select Create Project from there:

You can see the product downloading as shown below:

1 Like

Honestly one of the best templates on the market right now. Incredible amount of stuff here.

Question; If I wanted to add hotkeys for the placement of the towers, do you think this would be difficult?

For example if I click on a spot to place a new tower, then hit 1 through 4 to place my towers?

I poked around the Widget_TowerInteraction in the /UI/TowerConstructor folder, is this the right place to start?

Any direction is appreciated, thank you.

Glad to hear that you’re enjoying the toolkit. :slight_smile:

As for the hotkey support, yes it can be easily added in. Widget_TowerInteraction and all the other widgets in that folder handle the UI interactions logic for building towers, upgrading them and so on, but you won’t have to change anything in those classes for enabling hotkeys.

Instead I’d suggest using the BP_PlayerController blueprint since all the Tower UI buttons interact with it anyway. To start with, we’re gonna have to store a reference to the Grid Generator that the player was interacting with. You can do it by making the changes marked below in the TrySelectClickedActor function:

Now that we know when the player is interacting with an empty grid cell, we can just straight away add the input logic for it in the event graph.

First we’ll check if the selected actor is a Grid Generator. If yes, then we can access the tower loadout from Tower Manager to get the tower at required index and call the same interface function that the Tower Build buttons were calling (TowerBuildButtonClicked):

You should now be able to build Towers both by selecting the Tower button from UI or by pressing the hotkey input whenever an empty grid cell is selected. Let me know if you any doubts regarding the implementation.

1 Like

(post deleted by author)