Tower Defense Starter Kit

Alright, in that case, try making the following modifications in the BP_EnemyAI_Parent blueprint:

I haven’t tested it with runtime speed changes, but it should work. Let me know how it goes at your end.

Thanks for normal use!!!

Silly question, but how do I update the kit version? Also, can I update it on a project I already created from the kit?

Hi @Mephilin , what is your current project version and which version would you like to update it to?

Wish I knew how to check this :sweat_smile:

I’m assuming that you’re referring to the Unreal Engine version and not the version of Tower Defense Kit. I’ve posted the solution for that below.

But if it’s the latter, projects created in older versions (can be checked through Edit >> Project Settings >> Description >> Project Version) cannot be updated to newer versions automatically. But you can always download the latest version from the Marketplace. The current latest version (v2.21) can be obtained by downloading the 4.27 edition of the toolkit.

In the Editor, you can click on Help >> About Unreal Editor. This will open up a new pop-up tab that shows the engine version used in the project.

Weekend here we go getting ready remake mosf of what I have from 4.26 to 5.0 and with your latest update​:crossed_fingers::crossed_fingers::sweat_smile:

1 Like

Well, just in time for the new update as well. I just submitted an update that adds a Hero button for controlling the hero unit and a respawning mechanic to revive dead hero units. It should go live on the Marketplace tomorrow or by next Monday. Will post more details with the complete change log tomorrow.

The v2.21 update has gone live on the Marketplace.

Change Log:

I. Added a Hero Control button to the player HUD. The Hero unit can now be controlled both by directly clicking on the actor as well as through this new button as shown here: (1)

II. Added a respawning mechanic for Hero units. If a Hero gets destroyed during gameplay, it will automatically respawn after a specified duration, with the countdown indicated through a progress bar on the aforementioned Hero button. (3)

You can set the respawn duration through the “Hero Respawn Time” parameter found in BP_HeroManager.

Bug Fixes:

I. Fixed a bug that had caused the stats info panel for Hero units to remain visible even after the player has finished issuing a movement order. Now the stats details are only visible while a Hero unit is being actively controlled by the player.

Upcoming Features: HP Regeneration for Hero units.

1 Like

That’s awesome, because I was looking into having a hero go out and “sort of activate” the tower, but I went back to UE 4.27 for now my machine is not compiling shaders fast enough for how I work.

Well, the Hero unit was added in 4.27. So you should be able to use it if you download a fresh project from the marketplace.

If you want to add the new changes exclusive to UE 5.0 version like the UI button for controlling heroes, just search for the keyword Version2_21 in BP_HeroManager and BP_PlayerController. Most of the logic for controlling heroes is present within these two blueprints.

The v2.22 update has gone live on the Marketplace.

Change Log:

I. Added Health Regeneration for the Hero Unit. The new BPC_Regeneration component can be added to any actor (including Towers) to add HP regeneration capabilities, provided that said actor also has a “BPC_Hitpoints” component.

II. Added a new Hitpoints component to easily add an HP system to any actor that implements the BPI_Hitpoints interface. Can be added to Towers, Enemy wave units, as well as Friendly defender units.

III. Created a new custom widget component for displaying Health bars. Instead of relying on a standard widget component that requires writing additional logic for each blueprint class, this custom component will work out of the box as long as the owning actor also has a “BPC_Hitpoints” component.

IV. Replaced the existing custom Damage interface (that supported passing in crit dmg data) system with Unreal’s native damage system. Critical Hit Damage calculation can now be calculated before passing the damage by calling the global function CalculateDamage from any actor

Additional Notes:

Upcoming Features:

  • XP system for Hero units to level up through combat
  • Hero selection through the pre-mission Loadout Menu
1 Like

The v2.23 update has gone live on the Marketplace.

Change Log:

I. Added a dedicated Weapon System component to be used as a base template for creating firing solutions when designing new Towers.

You can now create a new child class derived from BPC_WeaponSystem and override the “Fire” event with logic for your new weapon fire system. Shown below is an example of how its implemented in the Machine Gun Tower weapon component:

II. The Tower stats variables have been moved to their dedicated components with the HP stats now part of the BPC_Hitpoints component and the damage/range stats moved to the new BPC_WeaponSystem component.

The Tower stats are still defined in the DT_TowerData data table, but the components are responsible for retrieving those stats during their initialization.

III. Added Stat Modifiers for Weapon & HP stats to support buffs/debuffs at runtime. The stat modifiers are currently being used by the Boost Tower to boost the damage output stat of nearby towers as well as by the XP system to permanently increase the health and damage output of Towers as they gain experience and level up.

In order to accommodate the use of stat modifiers, both HP and Weapon stats are now divided into Base Stats (which always retain the original value unless it receives a permanent stat boost) and Current Stats (the value after applying stat modifiers to base stats and used for most calculations).

IV. Replaced the slow and temporary Repair tower ability (the AoE Global Ability Regen Field already fills that purpose now) with an instantaneous Repair function that is available for all Towers. The cost of the Repair function will depend on the amount of damage incurred by the Tower and the button itself will be enabled only when the Tower is damaged.

V. Added Button Position Angle variables to configure the position of the various buttons displayed when interacting with a Tower. The Recycle and Repair button positions are defined by a single angular value each, whereas the Upgrade and Ability button positions, due to the possibility of there being multiple options, are specified using an angular range.

Upcoming Features:

  • Option to customize Target Prioritization setting for Towers
  • XP system for Hero units to level up through combat
  • Hero selection through the pre-mission Loadout Menu

I’ve submitted a mini update that adds support for limiting Tower Upgrades on a map-by-map basis so that you can control the Towers available to the players during early missions.

The changes are quite minor, so I’m sharing the steps here for everyone who wants to add this feature to their existing projects.

I. Add a new array of type ETowerModels in your BP_TowerManager blueprint. Set this variable to Instance Editable and then add a list of all upgraded Tower Models to this array as shown below:

II. Now within the same blueprint, add a new function “IsTowerUpgradeAvailable” and copy the following nodes into it:

III. Now head over to the Widget_TowerUpgradeButton blueprint, open up the UpdateButtonState function, and make the changes highlighted below:

IV. Now we can go back to the level editor, click on the Tower Manager actor, and then specify the list of available Tower Upgrades for the level through the AvailableTowerUpgrades array we added in step I:

And that’s all there is to it. If an upgraded Tower model is not specified in the aforementioned array, the player won’t be able to upgrade to that Tower for the specified level. The upgrade button will just be disabled and the upgrade cost text set to hidden.

The same approach can be used to also cancel one upgrade path if the Tower has multiple potential upgrade options as shown in the example below:

The Unreal Engine 5.1 edition of Tower Defense Starter Kit has been submitted to the Marketplace team. Due to the huge influx of updates from all sellers, it might take a few days to appear in the Marketplace.

Fortunately, I have not encountered any new bugs in my tests after converting to UE 5.1. So those of you who are using the 5.0 edition can directly convert your projects to 5.1 without having to make any changes.

Apart from that, I’m also working on a new update that will add support for setting Target Prioritization models for individual Towers as well as an option for selecting the Hero through the pre-mission Loadout menu.

I’ve also received a feature request for adding an early wave start bonus like in Kingdom Rush. It will most likely be included in the update as well, but since the update is likely a couple of weeks away, I’m sharing a simple solution here for implementing it yourself in your projects:

I. Create a new float variable in BP_WaveSpawnController named “EarlyStartBonusPerSec” and give it a default value based on the amount of bonus resources you want to provide to the player for each second left in the wave start countdown.

II. Now add the following nodes in the InitializeNewWave event:

And that’s about it. The “Enter” button has been assigned by default as the input for manually starting a wave before the countdown ends (you can find it in BP_PlayerPawn). So just press Enter next time instead of waiting for the countdown to end and you’ll see additional Tower Points added in the UI based on the time left.