With all the core systems of this update in place, the final piece is how all of that information gets communicated to the player through the UI.
The stats display system in v3.0 is built on the same gameplay tag driven foundation covered in the first post in this series: https://unrealpossibilities.blogspot.com/2026/04/tower-defense-starter-kit-v30-dev-log-1.html. Each tower and battle unit has a StatsDisplayInfo array in its data table row, which defines what stats to show, how to label them, and the order they appear in.
The system uses a set of HUDStat category tags to identify where each stat lives in the flow, as shown in the screenshot below:
HUDStat.TowerCore routes to the tower core stats, HUDStat.Hitpoints to the health stats, HUDStat.BUMeleeAttack & HUDStat.BURangedAttack to the respective attack stats for battle unit, HUDStat.XP to the XP system, and HUDStat.Movement to the movement stats. The function library BPFL_StatDisplayUtility handles the actual retrieval and formatting of these stats, and it does so through two separate paths depending on the context.
When a tower or unit is selected in game, the Agent Profile's GetStatsContainerForCategory function is called for each HUDStat category in the StatsDisplayInfo array, returning the right component to read from. The function library pulls the active stat values from each component, formats them into readable text, and returns them ready for the UI to render. The display stays current by binding to each component's OnStatChanged event.
When browsing the build menu, no live agent exists yet so stats are read from the data table row directly for each category instead. This same data driven foundation also means that if an encyclopedia page for towers and battle units is added in a future update, the groundwork for pulling and formatting those stats is already in place.
The broader UI display flow is driven by a set of event dispatchers on the player controller. Selecting an agent fires OnActorInfoDisplayRequested, hovering over a tower in the build menu fires OnTowerInfoDisplayRequested, and interaction tooltips for things like repair, recycle, target priority modes, and tower abilities all route through a single unified dispatcher, OnBasicTargetInfoRequested. This keeps the UI layer decoupled from the systems driving it, with widgets simply listening to the relevant events and updating accordingly. Widget_TargetInfoPanel is one such widget, listening to all of these events and handling the display of the relevant name, description, and stats for whatever the player is interacting with at any given point, as shown in the screenshot below.
And that wraps up the new Stats Display system in v3.0 of Tower Defense Starter Kit.




Comments
Post a Comment