[This tutorial is based on the v3.0 edition of Tower Defense Starter Kit. If you're coming from an earlier version, the workflow for v2.12 through v2.3 is covered in this video tutorial: https://www.youtube.com/watch?v=4jjl011xoiE
If you're unsure about what version of the toolkit you're using, you can find this information under Edit >> Project Settings >> Description >> Project Version.]
1. Open EBattleUnits and add a new entry for the new unit.
2. Create a new child blueprint based on BP_BattleUnit_Base. Open it and set the skeletal mesh, animation blueprint, and any transform adjustments you need on the mesh component. Finally, set the AI Controller Class to BP_AIController_WaveBattleUnit, as shown in the screenshot below.
3. With the new blueprint and enum entry ready, open DT_EnemyBattleUnits, add a new row for the unit, and fill in the parameters across the following sections:
Basic Info:
- Class: The battle unit blueprint class to spawn
- BattleUnitType: The enum entry created in step 1
HP Stats:
- HPStats: A map of Gameplay Tag and Float value pairs defining the unit's health stats, for example Stat.Health.Max to define the max health of the enemy unit. For more on how the hitpoints system works, refer to this post: https://unrealpossibilities.blogspot.com/2026/04/tower-defense-starter-kit-v30-dev-log-5.html
Combat:
- CombatRole: Set to Melee or Ranged depending on the unit's attack type
- MeleeAttackStats: A map of Gameplay Tag and Float value pairs defining melee attack stats such as Stat.Damage.Base, Stat.Cooldown, and Stat.Range
- RangedAttackStats: Same structure as melee, with additional projectile stats if needed. Leave empty for melee only units
Movement Stats:
- MovementStats: A map of Gameplay Tag and Float value pairs defining the unit's movement stats, for example Stat.MoveSpeed.Max to define the maximum movement speed of the unit.
The full list of available stat tags is covered in this post: https://unrealpossibilities.blogspot.com/2026/04/tower-defense-starter-kit-v30-dev-log-1.html
Display:
- Name: The display name of the unit
- Description: A brief description of the unit shown in the UI
- UIIcon: The thumbnail image used in the UI
- StatsDisplayInfo: An array of Struct_StatDisplayEntry entries that defines which stats are shown in the UI, how they are labeled, and the order in which they appear
Details on the stats display system and how to configure StatsDisplayInfo can be found here: https://unrealpossibilities.blogspot.com/2026/04/tower-defense-starter-kit-v30-dev-log-6.html
Enemy Specific:
- ThreatRating: Used by the Weighted Wave Spawning model to determine the relative threat weight of this unit
- PlayerScoreModifier: Defines how much the player's score is reduced when this unit successfully reaches the exit
Progression:
- bCanLevelUp: Enable if the unit can gain XP and level up
The agent architecture and initialization flow for battle units is covered in detail here:https://unrealpossibilities.blogspot.com/2026/04/tower-defense-starter-kit-v30-dev-log-3.html
With the data table row set up, the new unit is ready to be added to wave configurations in the wave spawn controller. As shown in the screenshot below, here's an example of how a unit is configured in the Batched Wave Spawning model.
The toolkit includes two different wave spawning systems and setup details for each can be found here:
- Batched Wave Spawning System: www.youtube.com/watch?v=-YwbcOaZZH8
- Weighted Wave Spawning System: https://unrealpossibilities.blogspot.com/2018/03/fps-tower-defense-toolkit-basics_2.html
That covers everything needed to get a new battle unit up and running in v3.0. The attack modules, navigation, hitpoints, and XP system are all initialized automatically based on the combat role and stats defined in the data table and we have our new custom enemy AI unit as shown below:







Comments
Post a Comment