[SUPPORT] Advanced Turn Based Tile Toolkit

I hope the solution works well for you. Just happy to help :slight_smile:

Hmm, works for me. This is something I fixed in the last update, though, so if you are using an earlier version you will need to get and connect the Pathfinding Type variable from the current pawn and input it into the pathfinding functions in the event graph of ATBTT_AI_Controller.

I haven’t done any extensive testing, but the following seems to work. In this case I have created a new blueprint actor with a capsule collider set to overlap the pawn channel and have enabled overlap for the pawn channel in the skeletal meshes of the units. Collision should work just as well, come to think of it. I do not get any errors when using this:


I just tested it in a fresh project, the toolkit in my library is kept up to date right or do I need to update it manually?

You have to delete the content, then download it again. I had to do that to get the latest version.

It should update automatically, but I’ve had it happen a couple of times before that I would need to delete and re-download, as Mewbits suggested. This bug has been fixed, so I’m not sure what else could cause you to still see it.

I removed my local files, and redownloaded it. The issue is still here.

It appears they are pathfinding correctly, but they stop prematurely. As seen here with them stopping after two tiles, when there’s a clearly open path.

Okay, I’ve figured out the issue here. The problem is the Reachable Index Closest To Target function, which assumes units cannot pass through friendly units. This function does not fire if the target unit is in move range, so the bug only appears in cases where a unit which is set to pass through friendly units is not able to reach its desired target and there is a friendly unit between it and its target. I’ve found a solution that works, but I’ll try to think up something more elegant to include in the update. For now you can do this:

In ATBTT_AI_Controller in the middle of the Select unit and find path comment box:

The new function from the screenshot above:

Hey @Monokkel,
Just been looking at your cover system and I’m just a bit confused as to setting up the cover array, You mentioned that it’s a struct with multiple nested arrays. Are they multiple individual structs? or is it a struct with multiple arrays as variables.
I think ill be fine with the nodes I just want to make sure that I have the Array done correctly.

Yeah, I guess I could have ben clearer in the description. The Cover Array consists of an array of structs. Each of these struct contain another array of structs. These structs contain an integer (representing an adjacent tile index) and a float (representing the cover value). Like so:

CoverArray NestedCoverArrayStruct CoverStruct Index, Cover ] ] ]

I’ve read only now this post.
I will try basically to explain how to do this (sorry I cannot give blueprint references or blueprintue right now): Implementing GameSparks needs five steps:

  1. Connect to GameSparks cloud with your API KEY and SECRET (which are available after create an account on GS website) using the GS UE4 OOTB API
  2. Authenticate with a valid user on your Game (you need to register a game on GameSparks dashboard console, and then register a user by use a dedicated json request or a no-sql database insert into user collection). Also for this step you can use the OOTB API from GS
  3. Create some log events on GS Dashboard Console (with Javascript Language and dedicated server API) and give them unique names.
  4. Put a event listener (resolved by name) layer on a project blueprint (I put all event listeners under ATBTT_GameMode, but you can create the event listeners everywhere in your project).
  5. Push an event everytime you want to engage the server during gameplay in the blueprint.

I will try to make an example for points 3-4-5:

  1. You create a MOVEMENT_PROPAGATE log event on the GS Console:

with this javascript code:

  1. You create an event listener using the GameSparks API plugin on Unreal Engine 4 and check if the incoming event has “MOVE_PROPAGATE” name.
    If this is true, you move the current pawn (which should be same on the two computers) to the index given from the incoming message using the ATBTT framework functions

  2. Everytime you move a pawn, you have to send the MOVE_PROPAGATE message to the server, pointing the corrent target index of the grid and the opponent GameSparks ID.

This is how it works, sorry if I cannot share you a working blueprint.

Thanks. I’ll test this out shortly.

Hi everyone,

First off, I want to say thank you Monokkel for putting this toolkit on the marketplace. I’m new to UE4 and I downloaded this toolkit a few days ago and I’ve been messing around with a lot of the features and I think it’ll be a perfect start for what I’m trying to do.

But one thing I can’t seem to figure out is how would I go about starting with an empty grid and spawning units during play? Basically, I’m trying to make something like Disgaea (for reference,, where both players each start with a spawner and can pull units from it as the game goes on.

Thanks for the rundown on GameSparks, WisdomHELLy. Looks like a great tool. Very useful for anyone thinking of implementing multiplayer.

A small update. I’ve been working a lot on the toolkit lately, particularly AI and have come pretty far. All abilities I’ve added can now be used by the AI. It took a ton of work, since I’ve chosen very different types of abilities, requiring completely different AI behavior trees for each one. With six different skills that means six different behavior trees where each is roughly the size of the ATBTT_AI_Controller. There is some overlap in the nodes for each, so I’ll want to do some refactoring down the road, but I’ll skip that for this update so that I can deliver it quicker. This update is going to be somewhat experimental when it comes to the new Tactical Combat game example. I’ve kept the blueprints separate from the main toolkit, but I might consider integrating some of the additions into the main toolkit later. I’ll be interested in getting feedback from you guys when I drop the update.

At the moment I’m tweaking the AI and have two AI teams fight it off. At the moment the AI is way to defensive and they usually end up having a mexican standoff where each team stands still and everyone enters overwatch. As soon as someone from the other team moves they all mow him down. After a while only the ones with the wits to stand still are alive and the game never ends :stuck_out_tongue: I’ll try to increase their aggression next.

like ur work

hi…just saw ur posts and ur expertise in turned based …i have a few questions of my own that i cant find answers too…i an new in the forums so cant message in private…

Something that I found particularly annoying about the AI that I changed was that the delay during their activiation still runs, even if they don’t have anything to do (can’t find a pawn, don’t want to move etc), so if you have a bunch of pawns with no reason to move the game still cycles through all of them and stares at them for a good long time. You might wanna go change that if you haven’t already.

I prefer this post to PMs anyway if the question is about the toolkit or TBS games in general. The PM system on these forums aren’t the best and if the question is about TBS games it might be of interest to other people viewing this thread. If the question is something you are absolutely sure is not of general interest or that you wish to keep private you can email me at, though I am generally quicker to respond in this thread as I always get reminded of all the work emails I should prioritize when visiting my inbox :stuck_out_tongue:

Yeah, this is on the log of things to be fixed. I’ll need to change a few things to get this working correctly, so I won’t be fixing this for the coming update, as I want it to be done as soon as possible, but I’ll prioritize it for the next one.

I’m pretty sure I changed it in like 3 nodes by just making it set the delay has passed boolean whenever it takes a route that results in no action. Granted idk what your ai looks like now, but so far that worked for me.

Ok, that is the same thing I did a while ago, but it ended up crashing the game and I had difficulty locating the source of the crash, so I put it on hold. If you are not getting any such errors I might give it a new try. My many changes to the toolkit since might have resolved the mysterious bug. The new AI is very different, but it is separated from the old AI using child blueprints, so the main AI blueprint is still pretty similar.

I haven’t done any real testing beyond running it through a handful of times after making the changes, since the blueprint data loss issues make building a level exceptionally painful right now, but of the limited testing I did do I had no issues.

That said, I’ve done some pretty significant changes to the AI blueprints myself that may have affected something, but I can’t really see any of those affecting whether or not the delay being present was stable or not, but you never know.

No, it seems to cause no problems now. It has been a long time since I looked at this last, and much has been changed inbetween, so it makes sense. It sucks with the data loss issues. You’re talking about variables of child actors being reset, right? Epic should really focus on this issue. It has been a problem with the engine for ages.