[SUPPORT] Advanced Turn Based Tile Toolkit

Welcome to the support thread for the Advanced Turn Based Tile Toolkit! This toolkit, which is available for purchase on the Unreal Engine marketplace, contains everything you need to start making your own turn based strategy game. The toolkit has been a labor of love for almost two years and contains a wide array of features, more of which are continuously being added. I have uploaded more than five hours of tutorial videos on YouTube which detail all aspects of the toolkit, which I also recommend for anyone considering a purchase. Turn based strategy is a game genre that I’m passionate about, and I can’t wait to see what the community will make in the future!

Feel free to ask any questions you might have in this thread. I can also be contacted by e-mail (knuteiliv@gmail.com), though for most requests I prefer if people post in this thread, as it allows other users to also benefit from my support indirectly.

Feature list:

  • A grid based path finding algorithm that includes options for variable movement cost
  • Support for both square and hexagonal grids, as well as multi-level grids. Levels can be displayed using visible tiles or function invisibly underneath organic, seamless terrain
  • Both touch and keyboards camera controls are included for rotation, panning and zooming as well as smooth pawn movement using splines
  • Levels can be built directly in the UE4 viewport, either through drag and drop or by having the toolkit automatically generate a walkability grid on top of any terrain
  • The grid works for tiles of all sizes and can be placed wherever you want in your level
  • Includes artificial intelligence that allows enemies to choose where to go based on their preferred attack range
  • Pawns can be customized by changing their speed, damage, range, AI presets and more
  • A visibility system using traces lets you determine what tiles a pawn can see and which pawns it can attack from its current position
  • Basic VR support
  • Game example with activated abilities, a cover system and advanced AI.
  • All grid math is calculated independently of any meshes, making you free to display levels however you want
  • Networked multiplayer support (description of how to setup the toolkit for use with Steam)

Join the ATBTT Discord!

[Link to Trello showing WIP and planned features](

Creative commons assets:
This toolkit contains many assets that were not made by me, but which are licences under liberal creative commons licenses. I am extremely grateful that these amazing content creators have made their assets freely available. Without having access to these assets it would have been a much bigger challenge to create good looking game examples. You do not need to buy the toolkit to use these assets as they are freely available elsewhere. The included assets are as follows:

200+ Completely Free Mobile Sci-Fi RPG Assets by Invulse - license: CC0

Dungeon Crawl 32x32 tiles - license: CC0

Icons from Game-icons.net, Included icons by Delapouit (crosshair) & Skoll (footsteps) & Lorc (all else). - licence: CC BY 3.0

**For changelog see the next post.

Tutorial Playlist:
ATBTT Basics #1 - Setup - YouTube**


Click for Trello with more detailed changelog, known issues and planned features](


New update is out for UE5.3 which fixes several bugs. Changelog:

v3.5.3 (live 16.09.23)

  • Decoupled all blueprints in example maps from core functionality.
  • Replaced all hard references to hybrid classes from the Hybrid Turn Manager with interfaces and other indirect references.
  • Removed dispatcher hub dummy variables (no longer needed in UE5.3)
  • FIXED: The way the attacking and target unit was passed through the PostUnitAttacked event was inconsistent in different blueprints, causing Retaliate not to work in the base stats map.
  • FIXED: ClickType input in BP_AbilityBase_Idle was not correctly connected, causing it to read all mouse input as Primary.
  • FIXED: GetMovePathData in BP_Ability_Sprint incorrectly got the Move value directly from the OwningUnit instead of getting the PossibleMove of the ability.
  • FIXED: Enabled camera lag on GridCamera spring arm component fixes a touch control jitter issue.
  • FIXED: CollisionPlaneHex component blocks placement of grid objects on index 0.
  • FIXED: The camera jumps if pressing somewhere else on the screen while holding down touch.
  • FIXED: “Find Close Valid Overlapping Grid Index” in Grid Manager returned as false if Multilevel was not true.

v3.5.2 (live 12.05.23)

  • FIXED: Stat names and tooltips in stats system unit HUD now update properly.
  • FIXED: Modifying a stat through an event that is bound to a stat being modified could cause original stat payload to be overridden.
  • FIXED: If the optimal place to shoot a bomb is the same tile that a AI Unit started its turn on it would move out of the way and then bomb itself
  • FIXED: “Add new ability” in the ability system component now works for AI Units.
  • FIXED: Abilities can now never be used if you don’t have enough Action points.
  • Abilities in ability box now greyed out if they don’t meet requirements (AP cost, generally).
  • New “Attempt Activate” event that only activates the ability if it meets its requirements (generally AP cost). Is now called in all places Activate was called before.

v3.5.1 (live 10.02.23)

  • FIXED: Memory leak in BP_TextSplashComponent. Fixed by setting the InitialLifeSpan variable to 3.0
  • FIXED: Bombs will sometimes not explode when they reach their target (especially on low framerate), halting the game
  • FIXED: AI does not put enough priority on a tile’s safety value (from cover etc.). This can also cause an issue in the Demo map, where the game cannot proceed because the AI does not stand on the bridge raise button behind cover.
  • FIXED: Since 3.5 retaliate resets every turn instead of every round, allowing units to retaliate again for each new activated unit
  • FIXED: Some of the Puppets in the Jungle Raid map were duplicated
  • Tweaked BP_Ability_Laser AI to be a bit more aggressive
  • Action cam now always activated for overwatch shots

v3.5 (live 01.02.23)

  • Added option for displaying tiles in move and attack range as an outline. The outline can be animated and works on multi level grids, but not on hexagonal grids.
  • Added Grid Manager option for procedurally removing any diagonal edges where any of the adjacent straight edges are blocked.
  • Added back a Virtual Reality map.
  • Swapped all input to UE5 Enhanced Input.
  • Improved performance of GetIndexesInRange and FindTilesInRange and grid location generation.
  • Added option for passing a gameplay tag container through events
  • FIXED: Stats turn manager ends the turn for the active unit multiple times
  • FIXED: Changing max stats at runtime did not update UI appropriately
  • FIXED: BP_Unit_Stats were not properly added to initiative if spawned at runtime

v3.4.1 (live 25.11.22)

  • FIXED: After climbing a ladder, puppets will sometimes keep sliding slowly forward after stopping
  • FIXED: In networked games, pressing tab would switch between units even if it isn’t your turn
  • FIXED: GetIndexesInRange did not properly get all levels for multilevel hexagonal grids
  • FIXED: Local damage calculation not used in SRPG stat unit’s damage calculation (defense and attack don’t matter)
  • Fixed lighting issues in Demo map
  • Replaced deprecated skeletal mesh getters in puppets
  • Removed deprecated configs in .ini
  • Disabled unnecessary replication of puppet component and ability system component
  • Abilities with can target self set to false no longer show a target marker under the owning unit

v3.4 (live 12.06.22)

  • Reimplemented 2D map, now using Stats and Interact systems.
  • Added debug component for displaying BP_Unit locations relative to their Puppet
  • FIXED: FIXED: AI controls one player faction when playing as dedicated server
  • FIXED: Data tables contain invalid floats after UE5 conversion
  • FIXED: Very large maps with dedicated servers don’t seem to replicate actions properly
  • FIXED: Grid not showing in SRPG map.
  • Added Gameplay Tag input for external actions
  • Changed lighting in all relevant maps to UE5 defaults
  • Reimplemented hiding decal markers on walls (fixed for Lumen)
  • Added general GameplayTag component
  • General purpose component for regular dispatcher events (converted from ExternalActionComponent)

v3.3.1 (live 03.03.22)

  • FIXED: In converted UE5 projects several types of decal tile markers did not show up.
  • FIXED: Naïve tile finding function in AbilityBase was imprecise for multilevel grid.
  • FIXED: Clients will sometimes run BeginPlay on the PlayerController before the Pawn is valid.
  • FIXED: The GridIndex output was not connected in the Interact Exit Tile event in BP_GridManager, causing events bound to tile exit not to fire.
    FIXED: The thickness of lines in the grid line display were affected by grid size.
  • SRPG map now starts with hourglass cursor set

v3.3 (live 07.01.22)

  • New “Stats System”. Makes it easy to add and modify stats, status effects and traits. Data driven and component based. Are automatically replicated to Puppet.
  • Added custom “Event System”. Adapted from the Roguelike Deckbuilder Toolkit. Makes it easy to send and receive gameplay event for any blueprint.
  • Widget UI for displaying unit stats and attributes
  • Updated SRPG map (previously called HoMM map) with Stats system and Event system, to serve as an example map for these new features
  • Setting Unit properties through data
  • FIXED: Double abilities are spawned for loaded maps
  • FIXED: Double puppets are spawned in MP spawn map
  • FIXED: Actions weren’t always properly destroyed in networked games
  • FIXED: Crouching units would keep animate sliding forward after climbing a ladder
  • FIXED: Abilities with CanTargetSelf set to true and a range of 0 don’t work
  • FIXED: Active unit marker appeared briefly at times when it should not during puppet animation

v3.2 (for version 4.27. Live 03.09.21):

  • FIXED: Imprecise math for converting from world location to grid index for hex grids
  • HoMM-style map with several new features:
  • Dynamic, context dependent mouse cursor
  • Showing enemy movement range on right click
  • Initiative bar
  • Flying movement
  • Move path suggestions when hovering over an enemy target
  • Counter attacks
  • Unit stacks

v3.01 (live 23.02.21)**

  • New pathfinding type preferring snaking paths to long turns on hex grids
  • Added animation input pin to PuppetComponent event dispatchers, allowing bound events to know what animation has triggered.
  • Custom Game Over text re-added.
  • Fixed Place Actor at Anchor (was broken).
  • Various fixes to units spawned at runtime.
  • Fixed PassThroughFriendly pathfinding type. No longer removed units passed over from GridUnits.
  • Fixed issue where some puppets would sporadically not spawn for clients in networked games.

v3.0 (live 12.12.20)

  • Refactored action system. Actions are now separate actors. This makes it a lot easier to keep track of actions and enables the manipulation of actions in many new ways.
  • Split units into BP_Unit, for data and game logic and various Puppet actors. Makes the game logic/action distinction less muddied and makes it simpler to for instance use Character actors for units.
  • Moved all UI code from abilities into separate BP_GridUI actors.
  • Moved pathfinding functions into modular BP_Pathfinding objects.
  • Widget-based screen space health bars
  • Hex grid can be generated in a hexagonal shape
  • Mouse look for Grid Camera
  • Simplified splitting movement and interrupting actions
  • General cleanup and refactoring of most blueprints included in the toolkit

v2.61 (live 08.06.20)

  • Fixed infinite loop error if all AI abilities were simultaneously given a value of 0.
  • Reduced game start delay for standalone games.

v.2.6 (live 13.05.20)

  • Option to restrain Grid Camera panning to the bounds of the grid.
  • Added the UpdateTilesInRange function, which simplifies adding new tiles and updating edges during runtime
  • Added several getters to FAction, making it simpler and cleaner to access action variables
  • Improved updating of the hover mesh and path spline on networked clients
  • Several network-related bug fixed
  • Many other small fixes and changes (see full log on Trello)

v2.5 (15.10.19)

  • Various bug fixes (see Trello for details)

v2.4 (15.10.19)

  • Experimental hybrid real time third person/top-down turn based map

v2.3 (24.09.19)

  • Refactored Turn Manager
  • Added variant Turn Managers similar to XCOM, D&D and Fire Emblem, respectively
  • Simplified and optimized unit ownership for networked multiplayer
  • Added display of range and movement when selecting enemy units
  • Added WASD for movement and TAB for unit switching.

v2.2 (01.07.19)

  • Added a new macro for actions that interrupt the ongoing action queue.
  • Fixed Game Over error for maps with a single faction.
  • Experimental: Spike trap and overwatch ability

v2.1 (06.02.19)](https://forums.unrealengine.com/unreal-engine/marketplace/31005-support-advanced-turn-based-tile-toolkit?p=1609593#post1609593)

  • Added function for drawing lines in Grid Manager
  • Added climb animation in experimental map
  • Several bug fixes (see Trello)

v2.0 (15.11.18)

  • Refactored how tiles are indexed to allow for adding tiles beyond the edge of the grid manager at runtime.
  • Refactored multi-level heightmaps so that they are predictably indexed based on their relative height.
  • Added subgrids, which are blueprints that can be placed outside the grid and treated as being part of the grid.
  • Moved hexagonal grid math to separate child blueprint.
  • Hex grid math now uses a cube coordinate system, simplifying math and making it more efficient. Thanks to Amit Patel for his useful guides on hex math.
  • Switched the skeletal mesh of BP_Unit_Anim and its children to the default UE4 mannequin instead of the mobile mannequin.
  • Experimental: Added outline post processing material for displaying move range as an outline. Thanks to Tom Looman for his tutorial.
  • Experimental: Added new blueprints (ladders and teleforters) for automatically adding custom tile edges.
  • Experimental: Added new experimental unit, which has movement animations that change based on the underlying array (utilizing a new SpecialEdges TMap in BP_GridManager)

v1.91 (10.09.18)

  • Minor refactoring of the Turn Manager to make it more flexible for different turn implementations.
  • Added idle ability that is active when no other abilities are active.
  • Added client-side validity check system in BP_ActionManager
  • Several minor bug fixes (see Trello for details).


  • Moved big units out of experimental
  • Refactored ability system
  • Initiative order can now include non-unit actors
  • Added AI prediction to player skills for suggesting actions to players
  • Several minor changes and bug fixes. (see Trello for details)

v1.83 (19.07.18)

  • Workaround in BP_ActionManager to get around UE4.20 bug of arrays not being passed to clients.
  • Multi-level grids now work for rotated grids. (thanks to JinPengfei for reporting)
  • Tile actors no longer remove incorrect edges between levels on multi-level grids. (thanks to JinPengfei for reporting)
  • Health bars no longer hidden in HydrasLair map.

v1.82 (15.05.18)

  • Re-added refactored version of the 2D example map “Hydra’s Lair”
  • Added object system for interacting with custom objects on tiles (see weapons in Hydra’s Lair for an example)
  • Various minor changes and bug fixes (see Trello for details).

v1.8 (28.03.18)

  • Networked multiplayer support.
  • “Action System” for handling sequences of animated actions.
  • Transform-independed grid manager (allows for scaling and rotation)
  • Changes most grid-sized arrays into maps, reducing memory usage.
  • Multiple performance improvements, including less reliance on ticks and casts.
  • Initiative bar.
  • Ability system made default. Replaces much of the functionality in player controller and ai controller.
  • “Simple” edge array option for tiles with a single cost value.
  • Join server and host menus.
  • Renaming of most functions and variables to better comply with Epic’s scripting standard (shoutout to @ for his invaluable style guide.
  • Updated folder structure.
  • General reorganization of functionality to better comply with UE4 standards (use of game mode, game state etc.)

v1.7 (21.02.17)

  • New example map of an XCOM-style turn based tactics game, including the following:

  • Skill system (with premade skills laser beam, explosive shot, heal and mind control. Particle effects borrowed from Infinity Blade assets.

  • Advanced AI to work along with the skill system to assess and select the best skill and location depending on the situation.

  • UI for selecting skills.

  • AI units in example map begin the game inactive and enter the combat if hearing or spotting a unit or being damaged (handy for stealth games).

  • Cover system

  • Dodge, accuracy, random damage ++

  • An awesome selection of creative commons sci-fi assets. Skeletal meshes have been rigged by u/Bankworthy (thanks!)

  • Edge scrolling and scroll limits.

  • New WallTrace trace channel to improve automatic map generation.

  • Basic VR example map for room-scale VR board games with motion controls.

  • VR example unit that gets materials and attributes set automatically based on faction and range.

  • Win condition added back. Now works with blueprint nativization due to new function library set to not be nativized.

  • Disable rotation in BP_GridManager now works as intended.

  • Fixerd bug that causes units to consider all units to be friendly (felt like Ford in Westworld fixing this one :,( )

  • Added new functions for searching for and selecting units in range. Greatly improves efficiency of calculations in AI Controller.

  • Various bug fixes and performance improvements for functions.

v1.61 (25.09.16)

  • UE4.13 support.
  • Now supports blueprint nativization causing massive performance improvements when packaging.
  • Custom Pathfinding types were not working in AI controller. This has been fixed.
  • Spawn Unit and Move Unit on Grid functions now take into account the location of the grid manager if it is not at 0,0,0.
  • The blueprint name for the sea-monster head in the 2D game example was too long and caused issues when packaging. Name has been shortened.
  • Pathfinding per tick caused issues for child actors based on BP_GridManager. AI controller has been altered to not use the per tick function by default. Using it should still not cause any issues if using the BP_GridManager parent blueprint.
  • Walls in the heightmap example were not turning translucent on mouse over as intended. This has been fixed.
  • Free roam mode now takes into account custom pathfinding.
  • Red “tiles in range” markers no longer appear under the current unit.
  • Changed the function for determining if the game is over once only one faction remains. This still causes problems after nativization (see known issues above) and is thus disabled by default at the moment, though can be activated by setting nativization to false in BP_GridManager.
  • All tiles now cast shadows as if static by default, improving performance.

v1.6 (01.04.16)

  1. Support for multi-level grids. Multi-level grids are generated automatically from underlying meshes.
  2. Added walls and platforms that turn semi-transparent when zoomed in or hovered over. Especially useful for multi-level grids. A simple example map is included demonstrating their use.
  3. Support for multiple factions. An arbitrary number of factions can be added. Units can be setup individually to be allies or enemies of the various factions.
  4. Any unit can be designated as AI or player controlled, regardless of faction. Allows for hot seat multiplayer among other things.
  5. Added option for using custom pathfinding specified for each unit. Included examples such as units that can pass through friendly units, units that ignore difficult terrain and units that cannot move diagonally.
  6. The path spline now uses a linear instead of a curved spline, which usually looks a lot better. Movement is still guided my a curved spline, as this makes for the most fluid movement.
  7. The default grid mesh can now be set as a hierarchical instanced static mesh, further increasing performance on large maps compared to regular instances static meshes.
  8. Various smaller changes including blueprint organization and commenting improvements.

v1.5 (released along with 1.6)

  1. Changed the edge array to be a nested array of structs, with each struct representing a single edge. This change required major changes to all parts of the toolkit that utilize edges, but makes pathfinding even quicker and opens for grids with customized connections between tiles.
  2. Added touch controls and an option for rotation 90 degrees at a time (currently default, but can be unchecked in BP_GridCamera)
  3. AI has been improved significantly. AI now selects from all possible tiles to attack its target from, choosing depending on a personality enum. The AI will now move as close as possible to units it cannot reach if the path is blocked by a friendly unit.
  4. Player units can be set to display all possible tiles that can be attacked from all tiles in move range, similar to Fire Emblem and many other TBS games.
  5. Tiles in Sight Range and Move Range can be displayed as a frame.
  6. Improved commenting and organization across the board. Variables and functions are now grouped in categories.
  7. Included a variety of utility functions in BP_GridManager such as spawning units and tiles during gameplay among other things.
  8. Split up the Event Graph of Unit_Parent into several sub-graphs for easier modification. Unit_Parent’s event tick now only fires when it is needed for movement, improving performance.
  9. Added several “slow loops” which spread loops over multiple ticks. These can be used to improve performance when necessary. These are used by default when displaying all possible visible tiles for player units, since this is a demanding operation, and when an AI unit is activated.
  10. Added an example game called Hydra’s Lair that demonstrates how the toolkit can be tweaked to create a 2D dungeon crawler. This includes many experimental features such as fog of war, weapons and armor.
  11. The example game contains sprites from Dungeon Crawl Stone Soup, which are licenced under Creative Commons Zero and can be found here: http://opengameart.org/content/dunge…wl-32x32-tiles
  12. The example game includes music made by Lunde that can be freely used by anyone owning the toolkit. More of his music can be found at Stream marengs music | Listen to songs, albums, playlists for free on SoundCloud
  13. Many additional minor changes to blueprints.

v1.44 (19.11.15)

  1. Rebuilt the landscape in the heightmap example map as the old one was causing the Get Hit Tile Location and Index to sometimes return the wrong value.
  2. Changed the height of the meshes in the Tile_Cost tiles from 0.5 to 0.3 as it was clipping through the tiles in sight range/move range.

v1.43 (21.09.15)

  • Changed all Set Visibility nodes of markers to Set Marker Visibility Functions to prevent an error in the log.
  • Removed Clear all Instances from the Clear range array, reachable pawns array and path meshes collapsed graph in the Find Tiles in Range function in BP_GridManager to prevent an error in the log.
  • Changed all Get World Location/Rotation And Distance Along Spline nodes to the newer Get Location at Distance Along Spline (with coordinate space set to “world”) nodes.
  • Removed unnecessary cast in HUD_Faction_Turn and changed the name of Tile Spawner 2 to Grid Manager Ref to make it consistent with other blueprints.
  • Replaced the landscape in the landscape example level as it was having some collision issues.

v1.42 (10.07.15)

  • Changed the skeletal meshes of the default pawns to the new 4.8 mobile mannequin. Changed the animation of the ranged units to shotgun animations, which have a more visible attack animation.
  • Removed the casts for “self” in Unit_Parent that were added as a crutch for 4.8 issues in the last update. Epic have corrected this bug, so the workaround is no longer necessary.
  • Added a branch in the Add Viewport Terrain To Arrays function in BP_GridManager to prevent an error message from showing when getting heightmaps from tracing.

v1.41 (23.06.15)

  • Updated the toolkit as per the “updating to 4.8” guidelines found here. Note: some of these changes are workarounds for bugs Epic introduced in 4.8, and will be changed back when these engine bugs are fixed.
  • Fixed the Create Walls on Edges function in ATBTT_GridManager. This function was not creating walls on edges correctly before.
  • Modified Add Viewport Terrain to Arrays to allow for getting height information from placed tile actors.
  • Changed the AI controller to appropriately account for difficult terrain when choosing a target to move towards.

v1.4 (17.04.15)

  • Walkability can now be generated automatically without placing a single tile. This means that you can use whatever static meshes you want or even the terrain tool and a grid will be generated based on what you have placed, as long as they have collision set to block PathTrace. Generates height information and can optionally be set to generate edge costs automatically based on height differences between tiles.

  • Tiles in range and the various other markers can now optionally be set to decals instead of static meshes, meaning they will conform to any underlying terrain. Static meshes will also change rotation depending on the rotation of underlying meshes, though this only looks good in truly tile based games.

  • Done a massive reorganization of the toolkit blueprints, making the toolkit more modular and making user modication much simpler. The blueprint is now organized as follows:

  • Grid_Manager creates the visible grid and holds all grid arrays. Holds all functions pertaining to the grid, including pathfinding and visibility. The grid manager does not call any functions on its own during runtime, but exists to be queried by other blueprints.

  • ATBTT_GameMode sets up the toolkit by spawning the grid camera and HUD and handles the turn based structure, including selecting the current pawn and starting and ending turns.

  • ATBTT_PlayerController handles all mouse input, which mostly means deciding what happens when a tile is clicked or hovered over. Posesses the Grid_Camera.

  • Grid_Camera works like before and is responsible for panning, rotating and zooming as well as following the current pawn if this is enabled. Does no longer have to be placed in the viewport.

  • ATBTT_AIController controls the current active pawn if it is controlled by the AI and decides what action the AI takes during its turn.

  • Unit_Parent handles the physical movement of units across the grid as well as attacking, taking damage and being killed/destroyed. Does not handle animation.

  • Unit_[varies] handles the animation of the various units in conjunction with Anim_BP_Parent.

  • Tile_Parent functions as before.

  • Added new options for calculating movement and visibility. These include:

    • Calculating visibility and movement simultaneously. This is now the default. If the unit has movement points left it only checks visibility to enemies in range, not every single tile.

    • Displaying tiles that units can move to in subsequent turns making it easy to add features like running in XCOM or setting up movement over several turns like in Civ.

    • Visibility in diamond shape patterns (on square grids).

    • Minimum range of visibility, for units that can only attack beyond a certain range.

    • Corner crossing, diagonal movement and splitting up turns can be set individually for each pawn. Speed and acceleration along the spline can also be set up individually.

  • Added option for displaying the grid as a plane with a repeating texture instead of meshes (currently only supports square grids)

  • Option for sorting pawns in initiative based on an initiative value (not fully implemented by default, but easy to set up)

  • New macros for handling spreading loops over multiple ticks (unused at the moment, but included for users who want to try them out)

  • Lots of small improvements and improved commenting in general.


Changed a small error that caused the last index on the grid to always be considered empty.


  • Added an option for changing between player pawns when clicking on them. Only works for pawns that have not acted yet this turn.
  • Added some more variables that are useful for adding gameplay features. These include an “has acted this turn” variable for pawns and a turn counter in the grid manager.
  • Fixed a bug where tiles in move range would always be transparent blue, regardless of the mesh used.
  • Simplified the pathfinding by removing checking for edges and instead populating the edge nodes with unwalkable nodes at grid generation. This is easier to read, speeds up the pathfinding slightly and fixes a bug that created suboptimal paths to tiles on edges for hex grids.
  • Fixed a bug that caused auto generation of walkability based on height to fail if the grid manager was not placed at 0 on the Z-axis.
  • Various minor fixes.

Copied from the previous thread:

You’ve done everything like I showed in the tutorial? If only zooming works it might be because the Grid Manager has not detected the Grid Camera. Try turning any public variable in the placed Grid Spawner on and off to get it to detect the camera you’ve placed. It might also help to make a custom Player Controller that has show mouse cursor set to true. I considered including this in the toolkit, but that would mean having to override the game mode, which many users might not want to do when adding the toolkit to an existing project. With the mouse cursor shown you can make sure that you are indeed hovering over the tiles when the hex cursor is shown/not shown. I hope this helps and that it’s not a Mac problem.

I’d like to download it myself and check if the adding is handled properly, but it seems I have to buy my own project? I’ll get 70% back, but still.

Edit: Ok, I’ve bought my own project, and it seems like Epic forgot to include my cusom input setting for the camera controller in the project pack. I’ve contacted Epic to get them to fix this, but in the meantime download these config files and put it in the config folder of your project and everything should work:


Ask for a refund!!! (I just came here cause I also noticed somewhere input-wise was missing)

Hehe, Yeah I’ll ask them on a refund. Had to buy it to find out if everything was working, though. Please let me know whether or not you get everything working after you’ve added the input .ini

Yes is seems to be working as intended now!

Thanks for making this!
I purchased but it didn’t appear in my vault. It’s supposed to be there right?
Edit: I got it to work: I had to press the buy button again in the marketplace. Once i click it, it changes the button from the dollar amount of the cost to a download button. Then I can download it to the vault as expected.

Great to hear! I hope Epic will update it soon.

Good to hear you got it working :slight_smile:

Love what I have seen so far. I didn’t get a chance to dig into it as much as I wanted to before work, but is there a guide or video about setting up custom pawns? It was easy to replace the default mesh but not clear on how to set up the new animation blueprint.

Hey ,
Awesome plugin!
I have a really good first impression.
Also i am liking your tutorial series, cant wait for the next.

but I also ran into a small problem.
The line of sight for ranged units somehow doesnt work properly.
This is from your Map_Grid_Example Map
The ranged unit can shoot through wall.
Is this a bug, did i do something wrong ? anyone else has got this problem ?

We’ll get this fixed ASAP today.

@Gaara: Good to hear you like it! The problem you and J. J. Franzen were having are related. My custom config files also contain custom trace channels that I use for checking visibility. That’s a different config file from the one I linked to above. I’ll attach a link with all config files below.

@ : Thanks . Hope you’ll get it updated before you reveal the release on the unreal engine page. Be sure to add both the DefaultEngine and DefaultInput .ini’s. all config files I have a couple of other minor bug fixes, by the way. Am I supposed to get a new channel I can communicate with you through for updates? Also, I had to buy my project to check out what was causing the bug. Can I get a refund :stuck_out_tongue:

All config files: resid=3843137F8CDD08DE!10218&authkey=!AGoZtWbFPMjXsr0&ithint=file%2czip

Alrighty, so I downloaded it this morning as I want to make a game prototype that uses a hexagonal grid system - but I don’t think I’ll be using this. My initial impression is that whilst it’s good at doing exactly what is demonstrated in the videos, it’s not been broken down very well so may well be frustrating to try and adapt it to do anything else.

The issue really is that almost the whole thing is encapsulated into a single monolithic blueprint with no levels of abstraction, which makes it somewhat inflexible. If I were to improve it and make the system more useable, I would change some things.

I would have separate blueprints for hexagonal and square grids, likely using something like a shared parent to provide a simple interface. The grids would handle nothing except grid math (radii, lines, the usual stuff) and potentially example pathfinding - it exists to be queried by other actors. The current ‘Grid Manager’ has as examples, functions relating to pawn animation, and another relating to pawn initiative values - both of what are inappropriate for a grid manager, since they are not part of the grid; the grid shouldn’t be dictating anything to do with pawn animation, and the concept of a pawn initiative value is very game specific. Both of those examples should exist outside of the grid blueprint, likely inside pawn and game mode blueprints. The grid class should consist purely of math - meshes for tiles needs to be optional (not sure if it is, I get the impression I have to spawn tiles).

With a separate grid blueprint, you want to have an example game blueprint that uses the grid. Since you abstracted it, you could have a setting that allows you to switch between hex / square coordinates in here if you are clever with the demo game design. You want an example player controller, and the pawns want to be separated from the grid blueprint; they should query it, not be modified by it.

Consider some example problems I’d be facing trying to use this system for my prototype:
I actually want to make a real time game - I expect that I might need to make some changes because this is a ‘turn-based-toolkit’ after all. I only really wanted to grid, but it has been built in such a way that I’m going to have a hard time cutting out that which doesn’t suit my needs. Also consider a multi-player game - this system has no game mode and no concept of player controllers, nor is it currently replicated (and a grid should not really be replicating much, but since the game mechanics aren’t abstracted from said grid, it is awkward to start making a networked game).

Long post, but that’s my first impression.


Hi ambershee. Thanks for the feedback which is indeed constructive and to the point. As you are of course aware the toolkit was not designed with real time play in mind, and that is not the direction I will be heading with the toolkit in the future. However, you tie this to the point that increased modularity and more levels of abstraction would make the toolkit more flexible and easy to adapt to things I have not specifically designed it for. This criticism is apt, and I agree to some of your assertions, though I disagree with you on a few points.

There are benefits to containing most of the turn based logic within a single blueprint. I find that this increases readability for the user, and makes it easier to follow the logic behind it. This is certainly the case for me personally, and I believe it is also true especially for beginners, though I am aware that there are differing opinions on this. I also believe the blueprint is more flexible than it might first appear. Even though everything is contained within a single blueprint, for the most part different parts are kept separate and independent and can be deleted or disconnected without causing trouble for the rest of the blueprint. The toolkit can be effectively used to create a variety of gameplay features by calling the appropriate functions and macros, and I will be making tutorial videos in the future that demonstrates how to modify the blueprint to fit your needs. The modularity is there, though not in the sense of being contained in separate blueprints.

I agree that it could make sense to move unit movement from the grid blueprint to the pawn blueprints, even though the current soultion is the way I personally prefer to have it organized. If there is a general agreement among users for this being the preferred way of doing it I will change the toolkit to accomodate this. For initiative I don’t agree that it is very genre specific, however. For turn based games you almost always need a way to determine which unit will be acting next. Even in games where you can choose the order of initiative, a new unit is generally chosen automatically when a unit ends its turn. Turn order is after all a central part of turn based strategy. I considered creating an initiative system in which each unit had an initiative attribute that determined the order in which they acted. I refrained from doing this precisely for the reason you mention of it being to gameplay specific. That is why I made the initiative sorting as simple as possible, sorting player and enemy pawns in two groups depending on the order placed. This can easily be modified by the user to create more complex initiative systems. You are of course correct in that initiative order does not have anything to do with the grid per say, and for a blueprint that only handles grid logic it wouldn’t make sense to have it contained there. The reason I’ve kept it there is out of the above mentioned personal preference of organization.

As for replicability for multiplayer this is something I want to add in the future. It is not something I know much about at the moment, and I’ll take your suggestions to heart. It is something I will be working on in the near future, and I will soon find out to what degree I will have to modify the toolkit to accommodate multiplayer. I will take your advice into consideration when I continue working on the system.

Lastly I’m sad to hear that you won’t be using my toolkit for your game, but I hope that it will still be great as learning material for you as you start creating your own solution. If there are any specific things you want to achieve that you don’t see how you can achieve with my toolkit, feel free to contact me, and I’ll try to find a solution that works within the framework I have created. Hearing of what gameplay features seem difficult or impossible to create with my current toolkit is very useful for me as I continue developing the toolkit.

Thanks again for the input.

Edit: I forgot to address one of your concerns. It is possible to create terrain without placing meshes by instead placing invisible tile actors. You can place tons of invisible actors without causing any performance drop. I also plan to add examples of procefural ways of creating terrain in the future as an alternative.

This has been updated and has been pushed to live. Everyone that purchased the pack now has the option to update to the latest and greatest. :slight_smile:

Thanks ! Much appreciated :slight_smile: Camera controls and range tracing should work fine now.

Hi Gugenheimer. Did not see your post until now. Sorry. Adding new pawns will be one of the next videos I’ll make. The simplest solution if you use the default UE4 skeleton is to create a child of the Pawn_Anim_BP_Parent AnimBP. Import any animations you need and create a new blend space for movement if needed. In the anim graph replace the animations under Anim Graph Overrides to choose your own attack, idle/walk/run and death animations. Choose the new animation blueprint as the animation blueprint for your new pawns. Does this solve your problem, or are there other reasons you want to change the AnimBP besides changing animations?

I think the issue is I am not using the default UE4 skeleton but a custom one. I tried retargeting the Pawn_Anim_BP_Parent BP to my skeleton, even tried to test it with the odd animations but it didn’t carry over.

Updated version works as expected. Got through both tutorials without any issues. Looking forward to more, especially the “adding your own meshes” and how to use terrain with your system. Now I have to dig into how to create touch interfaces so I can get this running on an iPad. Cheers,


I tried the same, I managed to get my custom char to play ingame the idle animation from the toolkit, but I couldn’t get the movement and attack animations to play as intended (even though everything seems to be set properly in the retargeted animation assets).
Strange thing is that after the retargeting if I recompile any of the default pawns they stop animating.
I didn’t spend much time on this anyway, I’ll keep you updated if I make it work.

@: Don’t know if it’s a bug or we’re not supposed to do that, but if you rotate the grid it only updates graphically to the new position but the path/grid logic will stick to the starting position.