Tower Defense Starter Kit

Hello can you tell me how to extend the limits set for camera movement pleas. I would also like to know the new way to add my turret since your update

You can extent the limits by selecting the **BP_PlayerMovementBounds **actor from the level and increasing the X/Y values for its Trace Blocker Extent parameter. This is the maximum extent at which any sort of player interaction can happen. The actual camera bounds is basically this value divided by BlockerBoundsToMovementBoundsRatio. For the default value of 3, that means if you have Trace Blocker Extent of 10000, the extent for camera movement will be around 3333.

As for adding new Towers, it follows the same process as before the update. You can follow this tutorial for that:

If the new Tower is going to function similar to one of the existing Towers, I’d suggest duplicating that Tower instead of creating a new child in step 1. If the functionality is different, then the process would depend on what exactly the Tower does. As a general principle, you’ll have to implement the following functions in the new Tower:

The first two blue functions (see BP_MachineGunTower) are almost always going to be required. That’s where you say what happens when the Tower acquires/loses a target.

The first two green functions (LockOnConfirmed & LockOnCancelled) will be required if you are using the LockOnSystem to keep tracking a single target, like with the Laser Tower. By default, the former is used to Activate the firing logic while the latter is used to Deactivate it.

The remaining two green functions at the bottom are only required if your Tower has a turret that rotates to face the target (like with the Machine Gun Tower).

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

New Features:

  • Tesla Tower: The Tesla Tower fires powerful bolts of lightning that can arc from its primary target to all nearby enemies, thus making it effective at thinning out crowds of enemy units.

Loving the Tesla tower type add. But I can not get enemies to spawn after adding per video steps with only one change. Added audio to be played instead of print string.

I am using UE 4.26 and 2.18.2 version of kit / Just now getting to focus more on enemies unfortunately I am being tripped up after following the video for adding new enemy (the only different step is I added a small 2D sound .wav to spawn attach with it) attempted to run a test, after count down none of the enemies will spawn. With console message: WARNING: [Class: BP_WeightedWaveSpawnController] Message: AISpawnWeightDistributionArray generated with zero elements

Using debug tool I still could not see how to correct this.
The only items I noticed were inside the BP_WeightedWaveSpawnController > Prepare AISpawn Weight Dist Array for New Wave /this is where everything seems to stop.

So I replaced the DT_EnemyAIStats with a Non altered copy by shutting down UE and the launcher removing the CampaignProgress.sav file and put a copy of the DT_EnemyAIStats from another project TDS kit with nothing edited ran test again after checking new data table file and making sure it was not the old one and same error occurred.

I have sent a few videos of what I see.

Hi Phil, it’s good to see you again. I went through the video you shared via email and noticed that the execution flow is breaking when encountering a Branch condition for “CanBeSpawned” parameter in the PrepareAISpawnWeightDistArrayForNewWave. So this is most likely where the issue lies. Could you try setting the **CanBeSpawned **parameter for all elements in the **AISpawnWeightingDataArray **to True, and see if that makes any difference?

Edit: Also below is an example of what you can try as values for the array. You can ignore the “DataTableRowName” parameter and leave it as “None”, since it will be automatically retrieved from the Data Table for each enemy type.

Following this part definitely resolved that issue. I will update if I determine what causes the data to become erased, since this occurs with each new enemy added.

So if using—> Tower Defense Starter Kit Tutorial (v2.12): How to Create New Enemy Types : Use to resolve broken enemy spawn–> " Could you try setting the **CanBeSpawned **parameter for all elements in the **AISpawnWeightingDataArray **to True, and see if that makes any difference?

Edit: Also below is an example of what you can try as values for the array. You can ignore the “DataTableRowName” parameter and leave it as “None”, since it will be automatically retrieved from the Data Table for each enemy type."

Thanks Again!

Hi Phil, glad to hear that you got it working. I’m guessing this was the glitched-out post you mentioned in your email. It probably became fixed when Epic upgraded the forums.

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

New Features:

I. Added a new Global Ability: Regen Field. All Towers within the field regenerate their HP over time.

II. Added unique deployment options for Global Abilities. “The DT_GlobalAbilities”
data table now has a new parameter “TargetVerificationTag” that enables each Global Ability to be individually configured for activation only on certain types of target actors.

To enable an ability to be deployed on certain actors, just add the same tag to their list of Actor Tags as shown below:

An example use case for having unique tags would be to enable the Airstrikes ability to be deployed only on enemy paths, while activation of Regen Field can be limited to only tower grid cells.

Additional Notes:

I. Search for Version2_19 in the blueprint editor to identify the new changes in this update.

Edit: Posted a tutorial going over the process of using the new Target Verification Tags to set up Global Ability Deployment: Tower Defense Starter Kit Tutorial: How to set up Global Ability Deployment

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

New Features:

I. Added a Hero unit: In addition to the existing reinforcements ability, the toolkit now supports Hero units that offer a more permanent defensive solution compared to the temporary reinforcements.

II. Added a Hero Manager: The Hero Manager is tasked with spawning the Hero and passing on player commands to the Hero. The feature set will be expanded in the upcoming updates to include support for selecting a Hero of your choice from the Loadout menu.

III. Added Hero Movement Commands: The player can override the default Hero AI behavior by issuing movement commands for the unit. This can be used to deploy the Hero unit where it is most required as a defensive option. Here is a short preview of it in action: (2)

Other Changes:

I. The Tower Function activation logic has been streamlined thanks to the new Add Component by Class BP function introduced recently to UE4. Instead of having to manually add components for each Tower Function separately, the system now directly retrieves the associated component class from the DataTable and spawns in a component of said class.

For comparison, here is a screenshot of the old workflow from v2.19:

And shown below is the new workflow from v2.20:

II. Moved all HUD update requests to the Player HUD class.

Any request to update the HUD will now be passed to this blueprint, which will then pass the required information over to the active widget.

Bug Fixes:

I. Fixed a bug that had caused some units to survive in spite of their HP being depleted. This happened in rare instances when a powerful single shot tower like the Sniper damages a weak unit like the Rusher just as it is being spawned, before the AI unit has finished its Begin Play execution. Now a new check ensures that the Towers only damage units after they have finished their initialization protocols.

Known Issues:

I. When a Hero unit gets destroyed when you’re controlling it, the movement targeting system doesn’t turn off automatically. This will be fixed in the upcoming update.

Additional Notes: Modifications to existing blueprints are marked with the boolean variable ‘Version2.20’ to easily identify all the changes introduced with this update.

Upcoming Features: HP Regeneration and Respawning system for the Hero unit. A UI button to select the Hero as an additional option besides clicking on the unit directly.

1 Like

How to modify the movement speed of AI in the game?

Inside the data table DT_EnemyAIStats, you can find a MaxMovementSpeed parameter. You can edit this parameter to set custom movement speeds for all your enemy AI.

Sorry, I didn’t express what I meant. During the game, if I want to press the key to change the AI movement speed, which variable should I modify?

If you’re using Unreal’s navmesh for AI pathfinding, then you can change speed through the Character Movement component’s Set Max Walk Speed.

If you’re using the custom Spline-based paths for AI, then it can be set through the MaxSpeed variable in EnemyAI_Parent class.

Increasing the value of maxspeed has an effect, but decreasing it has no effect.
I hope I can press the key to make the AI go slower

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.