# \[SUPPORT\] Advanced Turn Based Tile Toolkit

**URL:** <https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930>\
**Category:** UE Marketplace\
**Tags:** unreal-engine, fab\
**Created:** [February 26, 2015, 8:30am UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930 "2015-02-26T08:30:16Z")\
**Posts on this page:** 20\
**Page:** 41

<div class="post-metadata">

**Author:** ![Monokkel](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/monokkel/32/1194496_2.png) [@Monokkel](https://forums.unrealengine.com/u/Monokkel)\
**Post date:** [March 26, 2016, 9:28am UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/840 "2016-03-26T09:28:36Z")

</div>

Ok, great that you’ve got the basics working. If you want to spawn the grid while designing what you want to use is the blueprint’s construction script. To use instanced static meshes you will need to add an instanced static mesh component to your blueprint, assign a mesh to it and then using “add instance” to spawn instances of this mesh. I have made a YouTube tutorial video that goes through every blueprint in my toolkit in detail. In theory you could recreate my entire toolkit by following this tutorial. Here is a link to the part in question: [http://www.youtube.com/watch?v=cK1EFnmSyE4&t=4m27s](http://www.youtube.com/watch?v=cK1EFnmSyE4&t=4m27s)

Edit: Saw your second edit. That maze tutorial looks good, though it is of course a bit overkill for what you need. I would also recommend using hierarchical instanced meshes instead of static meshes for even better performance when not viewing all tiles at once. They are used the same way as instanced static meshes. Also, consider disabling “cast shadows” on your grid meshes as well as not having collision on each individual tile, which will further improve performance significantly.

---

<div class="post-metadata">

**Author:** ![Mikachu\_92](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Mikachu\_92](https://forums.unrealengine.com/u/Mikachu_92)\
**Post date:** [March 30, 2016, 11:32am UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/841 "2016-03-30T11:32:25Z")

</div>

Eagerly awaiting 4.11 and the 1.6 update!

---

<div class="post-metadata">

**Author:** ![Monokkel](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/monokkel/32/1194496_2.png) [@Monokkel](https://forums.unrealengine.com/u/Monokkel)\
**Post date:** [March 30, 2016, 3:23pm UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/842 "2016-03-30T15:23:01Z")

</div>

So do I 🙂 It represents nearly ten months of development since the last proper feature update (1.4 back in april last year) so a lot of stuff has been added and changed. I’ll start making fresh videos as soon as it hits the marketplace.

---

<div class="post-metadata">

**Author:** ![Mikachu\_92](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Mikachu\_92](https://forums.unrealengine.com/u/Mikachu_92)\
**Post date:** [March 31, 2016, 4:30pm UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/843 "2016-03-31T16:30:11Z")

</div>

4.11 is out!

Hype for update

---

<div class="post-metadata">

**Author:** ![Lobohotpants](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/lobohotpants/32/483800_2.png) [@Lobohotpants](https://forums.unrealengine.com/u/Lobohotpants)\
**Post date:** [March 31, 2016, 8:30pm UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/844 "2016-03-31T20:30:14Z")

</div>

This needs to happen asap. I’ve been holding off any more development for the update since it’s so huge.

---

<div class="post-metadata">

**Author:** ![Monokkel](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/monokkel/32/1194496_2.png) [@Monokkel](https://forums.unrealengine.com/u/Monokkel)\
**Post date:** [March 31, 2016, 10:00pm UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/845 "2016-03-31T22:00:55Z")

</div>

It should hopefully be live fairly soon. Epic have had my update for a while so it should be in their update queue. As mentioned earlier I can also send the update directly to anyone if they send me their order info (after I verify it with Epic).

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_dcd00c70](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_dcd00c70](https://forums.unrealengine.com/u/anonymous_user_dcd00c70)\
**Post date:** [April 1, 2016, 6:25am UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/846 "2016-04-01T06:25:24Z")

</div>

Is it possible to use an action point system with your toolkit? For example:

Maximum: 10 AP  
Movement: 1 AP per tile  
Interaction with the environment (open door, push button, …): 2 AP  
Item use (potion, medkit, …): 3 AP  
Attack (cast spell, fire weapon, …): 4 AP

---

<div class="post-metadata">

**Author:** ![Monokkel](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/monokkel/32/1194496_2.png) [@Monokkel](https://forums.unrealengine.com/u/Monokkel)\
**Post date:** [April 1, 2016, 10:04am UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/847 "2016-04-01T10:04:27Z")

</div>

An action point system should not be too hard to implement. Simply subtract the cost from an Action Points variable on a unit each time an action is performed and only call End Unit Turn if Action Points reaches zero or the player chooses to end the turn early. Insert branches at relevant points in the ATBTT\_PlayerController event graph to make sure the player cannot initiate actions he does not have enough action points to do.

---

<div class="post-metadata">

**Author:** ![Monokkel](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/monokkel/32/1194496_2.png) [@Monokkel](https://forums.unrealengine.com/u/Monokkel)\
**Post date:** [April 1, 2016, 4:44pm UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/848 "2016-04-01T16:44:16Z")

</div>

The update is live! The update that was previously on the marketplace was 1.4 so this update contains all the stuff from both updates. Here is a reminder of waht has been added (all updates are listed in the second post of this thread):

**v1.6**

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**

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: [Dungeon Crawl 32x32 tiles | OpenGameArt.org](http://opengameart.org/content/dungeon-crawl-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](https://soundcloud.com/marengs)
13. Many additional minor changes to blueprints.

I will soon begin working on new videos detailing all the new stuff you can do with this update 🙂

---

<div class="post-metadata">

**Author:** ![MicahM](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@MicahM](https://forums.unrealengine.com/u/MicahM)\
**Post date:** [April 1, 2016, 10:55pm UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/849 "2016-04-01T22:55:06Z")

</div>

Glad to hear it! It’s downloading in the background as I type, I’ve been a big fan of the toolkit for a while now and it’s just getting better. Thanks again!

---

<div class="post-metadata">

**Author:** ![Monokkel](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/monokkel/32/1194496_2.png) [@Monokkel](https://forums.unrealengine.com/u/Monokkel)\
**Post date:** [April 1, 2016, 11:38pm UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/850 "2016-04-01T23:38:29Z")

</div>

I hope it lives up to your expectations, Micah! I have put a ton of work into this update and a lot of stuff has been changed. Everything should hopefully be cleaner, faster and more flexible than ever before. Because of the sheer amount of changes there are bound to be some bugs that my testing has not picked up, however, so I encourage anyone using the toolkit to report anything that doesn’t seem to work as it should or is not well enough commented. I hope the transition will be painless for old users and hope you will agree with me that all the changes are worthwhile.

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_2c1a6164](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_2c1a6164](https://forums.unrealengine.com/u/anonymous_user_2c1a6164)\
**Post date:** [April 2, 2016, 5:25am UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/851 "2016-04-02T05:25:21Z")

</div>

Thanks for the update. I will look into it when I get the time. Initially I will just do a digital port of the board game I talked about, but we’ll see what happens after that.

---

<div class="post-metadata">

**Author:** ![Mikachu\_92](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Mikachu\_92](https://forums.unrealengine.com/u/Mikachu_92)\
**Post date:** [April 2, 2016, 10:28am UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/852 "2016-04-02T10:28:28Z")

</div>

Update seems great so far though the new zooming broke my custom zoom changes 😃

Ah well, worth it for all the other stuff and I can work to change my code

---

<div class="post-metadata">

**Author:** ![Monokkel](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/monokkel/32/1194496_2.png) [@Monokkel](https://forums.unrealengine.com/u/Monokkel)\
**Post date:** [April 2, 2016, 5:43pm UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/853 "2016-04-02T17:43:40Z")

</div>

@\<a href=“[https://forums.unrealengine.com/member.php?u=77286](https://forums.unrealengine.com/member.php)” target=“\_blank”\>AxelRantila\</a\>: Looking forward to seeing the digital version board game!

@\<a href=“[https://forums.unrealengine.com/member.php?u=78627](https://forums.unrealengine.com/member.php)” target=“\_blank”\>tamaster92\</a\>: That is to be expected, I’m afraid. Lots of changes, but they should all be for the better 🙂

First new tutorial video is up! Enjoy it while I start working on the next.

[![](https://d3kjluh73b9h9o.cloudfront.net/original/4X/e/7/9/e79950331d03e3d7290e15f5f5512c4c39ca26eb.jpeg "UE4 - ATBTT - Tutorial 8 - Multi-level grids and the 1.6 update") ](https://www.youtube.com/watch?v=e-YGUfKbloM)

Edit: And here is another!

[![](https://d3kjluh73b9h9o.cloudfront.net/original/4X/f/9/e/f9ec92aaf6051f9a182dfcbb19f5bebecf8448c1.jpeg "UE4 - ATBTT - Tutorial 9 - Changes to AI in update 1.6") ](https://www.youtube.com/watch?v=ZJ_AaJQV2bU)

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_dd205574](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_dd205574](https://forums.unrealengine.com/u/anonymous_user_dd205574)\
**Post date:** [April 3, 2016, 1:25am UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/854 "2016-04-03T01:25:57Z")

</div>

Thank you! 🙂

---

<div class="post-metadata">

**Author:** ![MicahM](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@MicahM](https://forums.unrealengine.com/u/MicahM)\
**Post date:** [April 4, 2016, 8:00am UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/855 "2016-04-04T08:00:59Z")

</div>

Hi, I’ve been trying to work on a system that would allow some amount of randomness when attacking an enemy. Like xcom’s random roll for damage/hit success, I’d like a weighted random number generator that will determine whether or not an attack is successful, and if possible how much damage was done to the enemy. I’ve gone astray somewhere along the line, and it would be greatly appreciated if someone could show me the way. I’m including a screen shot of my mess of a blueprint to show where I’ve made the changes and hopefully figure out what I’m doing wrong. Thanks!

 ![Blueprint_RandomInt.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/3X/3/9/39dc6ac03e824355ad3b2eee19282033b6e436e0.jpeg)

---

<div class="post-metadata">

**Author:** ![Monokkel](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/monokkel/32/1194496_2.png) [@Monokkel](https://forums.unrealengine.com/u/Monokkel)\
**Post date:** [April 4, 2016, 8:56am UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/856 "2016-04-04T08:56:36Z")

</div>

The condition in your branch is set to always be false so your attack will always miss (or to be more specific it will end without printing “missed” 50% of the time in the CompareInt or reach the always false branch the other 50%). If what you want is a 50/50 chance of hitting you could remove the branch, connect the “\>” on your CompareInt to Set Current Health and the “==” to the Print String. From how I understand your blueprint this should work.

**Edit:** After I got home I threw together another way of doing this. The nodes below are inserted into the Attack Unit part of Unit\_Parent’s event graph since I feel it makes more sense to calculate miss chance as part of the attack instead of when receiving damage. Here I have added two new public floats to Unit\_Parent called Accuracy and Dodge. To hit chance is calculated by subtracting the dodge of the target from the accuracy of the attacker. An attacker with an accuracy of 0.9 attacking a target with a dodge of 0.3 would have 0.9 - 0.3 = 60% change to hit. Hope you find this solution satisfactory. If not I think it is a good starting point for many other ways of calculating hit chance.

 ![vLkB9BM.png](https://d3kjluh73b9h9o.cloudfront.net/original/3X/5/1/51127b91dcaec1002afec343620a2cdf98503f5b.png)

---

<div class="post-metadata">

**Author:** ![MicahM](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@MicahM](https://forums.unrealengine.com/u/MicahM)\
**Post date:** [April 4, 2016, 11:51pm UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/857 "2016-04-04T23:51:16Z")

</div>

Wow, way more than I ever expected. Heartfelt thanks, the toolkit and the support have been amazing!

---

<div class="post-metadata">

**Author:** ![Monokkel](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/monokkel/32/1194496_2.png) [@Monokkel](https://forums.unrealengine.com/u/Monokkel)\
**Post date:** [April 5, 2016, 3:58pm UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/858 "2016-04-05T15:58:42Z")

</div>

Happy to help! Just let me know in this thread if you need help with anything else.

---

<div class="post-metadata">

**Author:** ![Malpotremo](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Malpotremo](https://forums.unrealengine.com/u/Malpotremo)\
**Post date:** [April 6, 2016, 11:24pm UTC](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930/859 "2016-04-06T23:24:13Z")

</div>

hello ,  
i have bought your great product a few days ago, i am wondering, how difficult it will be, to implement a game setting , where you are able to control your player characters for example like in a jagged alliance style.To be me more specific, you control your player character(s) over the tile map without movement restrictions until a battle begin.

[Previous page](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930.md?page=40)

[Next page](https://forums.unrealengine.com/t/support-advanced-turn-based-tile-toolkit/21930.md?page=42)
