[SUPPORT] Advanced Turn Based Tile Toolkit

@ Yes, I am now able to create a match on Steam using your toolkit.
As I said in a previous post, it doesn’t work always, sometimes the joining player cannot Join the Session.
Anyway, I am pretty sure it is a network issue, and if I will successfully deploy the game on a dedicated server on Linux VPS, as we planned, I think that we won’t find this issue anymore.

Thanks for the support :slight_smile:

For all the other users: I am also able to open two games in the same PC and test them by adding -nosteam to the packaged game shortcut.
Just package the game (or open two UE4 editors and play each in standlone mode with the option -nosteam in the Standalone Game options) and open it two times and you can test the multiplayer mechanics alone.

Ok, good to know. Hope your issues are specific to you. I have not experienced it myself yet, but if any others here do, please let me know.

Hello! When I create a new project with the Toolkit, and build in 64x, when I try to run the game a box, that I send as an attachment, appears in the screen and the game closes, when trying to build the 32x client, but it show Packing Fail, this is what is shown in the log:

UATHelper: Packaging (Windows (32-bit)): Reflection code generated for BeastSouls_Project in 12.0042738 seconds
UATHelper: Packaging (Windows (32-bit)): Performing 38 actions (4 in parallel)
UATHelper: Packaging (Windows (32-bit)): [4/38] Resource PCLaunch.rc
UATHelper: Packaging (Windows (32-bit)): [2/38] Resource PCLaunch.rc
UATHelper: Packaging (Windows (32-bit)): PCH.UELinkerFixups.cpp
UATHelper: Packaging (Windows (32-bit)): PCH.NativizedAssets.cpp
UATHelper: Packaging (Windows (32-bit)): UELinkerFixups.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.16_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.15_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.1_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.8_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): w:\beastsofsouls\beastsouls_project\intermediate\plugins
ativizedassets\windows\game\source
ativizedassets\public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): w:\beastsofsouls\beastsouls_project\intermediate\plugins
ativizedassets\windows\game\source
ativizedassets\public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager_2D__pf3569027374.h(85): error C2719: ‘bpp__EdgeTransform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager_2D__pf3569027374.h(85): error C2719: ‘bpp__EdgeTransform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.12_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager_2D__pf3569027374.h(85): error C2719: ‘bpp__EdgeTransform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.17_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.6_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.2_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): w:\beastsofsouls\beastsouls_project\intermediate\plugins
ativizedassets\windows\game\source
ativizedassets\public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager_2D__pf3569027374.h(85): error C2719: ‘bpp__EdgeTransform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Private\BP_GridManager_2D__pf3569027374.cpp(1512): error C2719: ‘bpp__EdgeTransform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager_2D__pf3569027374.h(85): error C2719: ‘bpp__EdgeTransform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.9_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.7_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.5_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.10_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be alignedW:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\Nativize
dAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)):
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.14_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.13_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.3_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.4_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.11_of_17.cpp
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager_2D__pf3569027374.h(85): error C2719: ‘bpp__EdgeTransform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.13_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.14_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.7_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.6_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.9_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): w:\beastsofsouls\beastsouls_project\intermediate\plugins
ativizedassets\windows\game\source
ativizedassets\public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public/BP_GridManager_2D__pf3569027374.h(85): error C2719: ‘bpp__EdgeTransform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.12_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.5_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.8_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.1_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public/BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Public\BP_GridManager__pf1140824166.h(381): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.3_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.10_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.2_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.4_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): Module.NativizedAssets.gen.11_of_14.cpp
UATHelper: Packaging (Windows (32-bit)): W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Private\BP_GridManager__pf1140824166.cpp(4538): error C2719: ‘bpp__Transform__pf’: formal parameter with requested alignment of 16 won’t be aligned
UATHelper: Packaging (Windows (32-bit)): ERROR: UBT ERROR: Failed to produce item: W:\BeastsOfSouls\BeastSouls_Project\Intermediate\Plugins\NativizedAssets\Windows\Game\Binaries\Win32\UE4-NativizedAssets.lib
UATHelper: Packaging (Windows (32-bit)): Total build time: 171.32 seconds (Local executor: 0.00 seconds)
UATHelper: Packaging (Windows (32-bit)): Took 171.5120073s to run UnrealBuildTool.exe, ExitCode=5
UATHelper: Packaging (Windows (32-bit)): ERROR: Command failed (Result:5): W:\UnrealVersions\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe BeastSouls_Project Win32 Development -Project=W:\BeastsOfSouls\BeastSouls_Project\BeastSouls_Project.uproject W:\BeastsOfSouls\BeastSouls_Project\BeastSouls_Project.uproject -NoUBTMakefiles -remoteini=“W:\BeastsOfS
ouls\BeastSouls_Project” -skipdeploy -noxge -NoHotReload -ignorejunk. See logfile for details: ‘UnrealBuildTool-2018.06.03-17.18.05.txt’
UATHelper: Packaging (Windows (32-bit)): (see C:\Users\vitor\AppData\Roaming\Unreal Engine\AutomationTool\Logs\W+UnrealVersions+UE_4.19\UAT_Log.txt for full exception trace)
UATHelper: Packaging (Windows (32-bit)): AutomationTool exiting with ExitCode=5 (5)
UATHelper: Packaging (Windows (32-bit)): BUILD FAILED
PackagingResults: Error: Unknown Error

I have tried to build other projects and it packed without problem. Im using version 4.19.2. and Windows 10. I dont know what this nativization thing is exactly but It seems to be whats is causing the problem… Its weird that in the image it saying file:D:\Build… but my game is installed in the W:\ directory… maybe Its something related to that? anyone else experiencing similar problem? Any ideias of what could I do to fix it?

@c0hlera : Hey, c0hlera. I have not been able to replicate this issue. Do you get the same error with a fresh, unmodified project? The toolkit should be able to build when nativized, but you should still not use inclusive nativization with the toolkit, as there are currently some issues with UE4 nativization concerning arrays of structures. Go to project settings -> packaging and set nativization to disabled. This should fix your problems. I am in conversation with Epic about these engine issues, so they will hopefully be fixed in a future patch.

thanks, that worked! Yes, I was testing with the fresh and unmobidified project. I even reinstalled the Launcher in the same directory where the game project is, reinstalled the Engine and redownload the Toolkit package but nothing worked, my guess is that it might be something in the registry, because the D:\ directory it mentions it is where the I had the engine installed. Or maybe… after reseached a bit on what is nativization and there something to do with C++ right. Yesterday I was trying to get Multiplayer Steam to work, following some old tutorials and they said to edit the Build.cs and Target.cs file, so I had to create a empty C++ class, so those files would be created, then I modified it before erasing them. Can’t be sure because that’s the first time I actually try to build a game t with the Toolkit since I moved the directories.
Anyway… everything is working fine now, even managed to get Steam Online to work after following your previous comment, and I gotta say that is really awesome! By the way, do you know if it is possible to get the network to work with mobile? We hope to launch our game for Android devices, so if I can get this to work on google play, I could add some multiplayer to the game. Thanks for everything, I have been learning very cool stuff playing with the Toolkit

To all: The UE4 engine issue with struct arrays that causes issues with the nativization of ATBTT is now on the bug tracker. If you want to hasten Epic resolving this issue, consider voting for it here.

Ok, great. Just to check, you have VS2017 installed, right?

I have not tested out networked multiplayer for mobile yet, so I’m not sure of the exact steps you would have to do for each specific online platform. However, the toolkit is fully replicated, so as long as you are able to get any UE4 game working over it, ATBTT should work as well.

Yeah, Im using VS2017, after you said that I checked VS to see if installed everything right, I had installed only the VSC++ 2017 that unreal told me to install after a failed build attemp. But this time I saw a pack there for Gaming with Unreal and installed it, just for curiosity I tryed to build(64x) the project with nativization enabled and got a totally different error, when its disabled it still working fine, I will paste the logs of the fail here If you are interested, and thanks for the tips, I will try to get the mobile network to work on the weekend.

): ********** BUILD COMMAND STARTED **********
UATHelper: Packaging (Windows (64-bit)): Running: W:\UnrealEngine\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe AdvancedTurnBasedTileTool Win64 Development -Project=W:\BeastsOfSouls\AdvancedTurnBasedTileTool\AdvancedTurnBasedTileTool.uproject W:\BeastsOfSouls\AdvancedTurnBasedTileTool\AdvancedTurnBasedTileTool.uproject -NoUBTMakefiles -remoteini=“W:\B
eastsOfSouls\AdvancedTurnBasedTileTool” -skipdeploy -noxge -generatemanifest -NoHotReload
UATHelper: Packaging (Windows (64-bit)): Took 8.8818684s to run UnrealBuildTool.exe, ExitCode=0
UATHelper: Packaging (Windows (64-bit)): Running: W:\UnrealEngine\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe AdvancedTurnBasedTileTool Win64 Development -Project=W:\BeastsOfSouls\AdvancedTurnBasedTileTool\AdvancedTurnBasedTileTool.uproject W:\BeastsOfSouls\AdvancedTurnBasedTileTool\AdvancedTurnBasedTileTool.uproject -NoUBTMakefiles -remoteini=“W:\B
eastsOfSouls\AdvancedTurnBasedTileTool” -skipdeploy -noxge -NoHotReload -ignorejunk
UATHelper: Packaging (Windows (64-bit)): Parsing headers for AdvancedTurnBasedTileTool
UATHelper: Packaging (Windows (64-bit)): Running UnrealHeaderTool “W:\BeastsOfSouls\AdvancedTurnBasedTileTool\AdvancedTurnBasedTileTool.uproject” “W:\BeastsOfSouls\AdvancedTurnBasedTileTool\Intermediate\Build\Win64\AdvancedTurnBasedTileTool\Development\AdvancedTurnBasedTileTool.uhtmanifest” -LogCmds=“loginit warning, logexit warning, logdatabase error” -
Unattended -WarningsAsErrors -installed
UATHelper: Packaging (Windows (64-bit)): Reflection code generated for AdvancedTurnBasedTileTool in 12.0535833 seconds
UATHelper: Packaging (Windows (64-bit)): Performing 35 actions (4 in parallel)
UATHelper: Packaging (Windows (64-bit)): UELinkerFixups.cpp
UATHelper: Packaging (Windows (64-bit)): PCH.NativizedAssets.cpp
UATHelper: Packaging (Windows (64-bit)): W:\BeastsOfSouls\AdvancedTurnBasedTileTool\Intermediate\Build\Win64\UE4\Development\UELinkerFixups.cpp: fatal error C1853: ‘W:\BeastsOfSouls\AdvancedTurnBasedTileTool\Intermediate\Build\Win64\AdvancedTurnBasedTileTool\Development\UELinkerFixups\PCH.UELinkerFixups.h.pch’ precompiled header file is from a previous ver
sion of the compiler, or the precompiled header is C++ and you are using it from C (or vice versa)
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.8_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.15_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.1_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.16_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.12_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.17_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.2_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.6_of_17.cpp
LogEditorViewport: Clicking on Actor (LMB): BP_GridManager_C (BP_GridManager)
LogEditorViewport: Clicking on Actor (LMB): BP_Unit_Anim_Auto_C (BP_Unit_Anim_Auto4)
LogSlate: FSceneViewport::OnFocusLost() reason 0
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.9_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.7_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.5_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.10_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.14_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.13_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.3_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.4_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.11_of_17.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.13_of_14.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.14_of_14.cpp
LogSlate: Took 0.011750 seconds to synchronously load lazily loaded font ‘…/…/…/Engine/Content/Slate/Fonts/Roboto-Italic.ttf’ (157K)
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.7_of_14.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.6_of_14.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.9_of_14.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.12_of_14.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.5_of_14.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.8_of_14.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.1_of_14.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.3_of_14.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.10_of_14.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.2_of_14.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.4_of_14.cpp
UATHelper: Packaging (Windows (64-bit)): Module.NativizedAssets.gen.11_of_14.cpp
UATHelper: Packaging (Windows (64-bit)): [34/35] Link UE4-NativizedAssets.lib
UATHelper: Packaging (Windows (64-bit)): ERROR: UBT ERROR: Failed to produce item: W:\BeastsOfSouls\AdvancedTurnBasedTileTool\Binaries\Win64\AdvancedTurnBasedTileTool.pdb
UATHelper: Packaging (Windows (64-bit)): Total build time: 344.45 seconds (Local executor: 0.00 seconds)
UATHelper: Packaging (Windows (64-bit)): Took 344.6759446s to run UnrealBuildTool.exe, ExitCode=5
UATHelper: Packaging (Windows (64-bit)): ERROR: Command failed (Result:5): W:\UnrealEngine\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe AdvancedTurnBasedTileTool Win64 Development -Project=W:\BeastsOfSouls\AdvancedTurnBasedTileTool\AdvancedTurnBasedTileTool.uproject W:\BeastsOfSouls\AdvancedTurnBasedTileTool\AdvancedTurnBasedTileTool.uproject -NoUBTMa
kefiles -remoteini=“W:\BeastsOfSouls\AdvancedTurnBasedTileTool” -skipdeploy -noxge -NoHotReload -ignorejunk. See logfile for details: ‘UnrealBuildTool-2018.06.05-15.01.50.txt’
UATHelper: Packaging (Windows (64-bit)): (see C:\Users\vitor\AppData\Roaming\Unreal Engine\AutomationTool\Logs\W+UnrealEngine+UE_4.19\UAT_Log.txt for full exception trace)
UATHelper: Packaging (Windows (64-bit)): AutomationTool exiting with ExitCode=5 (5)
UATHelper: Packaging (Windows (64-bit)): BUILD FAILED
PackagingResults: Error: Unknown Error
LogSlate: Took 0.035538 seconds to synchronously load lazily loaded font ‘…/…/…/Engine/Content/Slate/Fonts/DroidSansMono.ttf’ (77K)

This looks good! Im planning to make a sort of shapeshifting maze game, something similar to Labyrinth -board game (Labyrinth 2016 TV Ad - YouTube). Is it possible to use this tile grid system in a game, where the level changes form ie. tiles move and switch places?

Note to people browsing this thread who have not bought the toolkit yet: The toolkit is currently 30% off at the marketplace as part of Epic’s summer sale!

Ok, cannot immediately understand what might be going wrong from the log. It should not be caused by the toolkit in itself, though, since it compiles fine for me and other people. Let me know if you figure out what the issue is so I can be certain it is not ATBTT specific.

Thanks! My answer to your question is a yes, though it will take a bit of work. The grid in the toolkit is represented by a few different arrays (and maps). The main ones you would be interested in is the one that holds the location of each tile (GridLocations), one for the tile position of each unit (GridUnits) and the one that holds which tiles can be exited to from all tiles and the movement cost for doing so (GridEdges). Moving tiles around is mostly a matter of manipulating these three arrays.

For something like what happens in the commercial you linked I can see a few different ways to do this. You could have all movement edges stored within “physical” tile actors that you move around, and after moving them you loop over all of them to generate a fresh GridEdges array each time. This is probably the simplest and most intuitive way to do this, though not that performant if you have large maps. Another way would be to shift the content of array indexes in the GridEdges map to adjacent indexes. I could see this working with a slighly modified pathfinding algorithm that takes into account the edges of the tile you’re entering and not just the one you’re exiting. Relatively simple to do and I would walk you through it if you wanted to try that.

I would need to know more details about your game mechanics to be certain of the best way to do things, but I’m confident you could achieve something like in Labyrinth without too much of a hassle.

This is probably a lot simpler than I’m thinking it is so I’ll just ask here. How would I go about using the toolkit to create an “overworld” in the style of Mario? I just want to have a map be the overworld and allow the player to select tiles for loading into the next level. (possibly moving a character to the tile to trigger a UI asking if they want to start the mission) I would like to do it in a way that keeps future levels locked until previous ones are completed, kinda like how mobile games do it but without the “star rating” system. Any ideas on how to get this going?

I assume the issue is not with loading maps, right? That can be used with UE4’s regular nodes for loading maps. Do you want an overworld map that also uses the grid manager to create a grid-based overworld where you can click tiles to load maps?

There are several ways to do this, and what is best depends a lot on your game. You could use a new feature I added in the last patch which is the GridObjects map. GridObjects is a map type variable in BP_GridManager which is used for storing any object on the grid which is not a unit and which you do not want to create an entire new map for. This is a map of nested object arrays, meaning you can store any number of objects on each tile of the grid. One such object could hold a reference to the map you want to load.

To add an object to the grid use the AddObjectToGrid function. If the object you add implements the BPI_Interact interface you can use the InteractWithObjects function (also in BP_GridManager) to interact with it.

So first create blueprints based on the BP_GridActor class. Add a variable specifying a certain map. Implement the BPI_Interact interface and create an interact event using the interface. When it is called, have it display your load map UI (this could be from a widget component held in the actor itself).

Place your map reference actors around on the map. On EventBeginPlay for your map reference actors get a reference to BP_GridManager and call AddObjectToGrid, adding itself to the grid index held in the GridIndex variable (which your new actor should have, since it is based off GridActor).

Now if you call the InteractWithObjects function specifying the grid index of a tile containing your map actor (remember that you can convert a location to a grid index with the ConvertIndexToLocation function if needed) you will display your UI widget.

To call the InteractWithObjects event when a unit ends its movement on a tile we would want to use the event dispatcher which is called when units ends movement. There are two of these, one for simulation and one for animation. We want to use the one for animation, as we want the UI to be displayed when the unit appears to end its movement to the player, not when it is simulated as such on the grid (which happens immediately after the player clicks to move). So bind an event in the grid manager to the OnUnitEndMovementAnimate event dispatcher. Have it call the InteractWithObjects function using the grid index output of the dispatcher as its input and you should be golden.

There are quicker and dirtier ways to do this stuff, like just using collision boxes and such, but I thought I should explain this here as it is a generic solution that works with all sorts of stuff (I use it for equipping weapons and armor in the 2D example map, for instance). Hope my explanation is not too confusing. This is one of the things I really want to make a tutorial on once I find the time.

Hi! Where is, blueprint with an attack, didn’t find it in BP_Unit_Anim. In tutorial 6 on mint 5.39 I didn’t find parent: attack victim, and on a tutorial 7 (7.03) didn’t found attack victim blueprint.

Hi Sruvv, I made a lot of changes to the toolkit in my last update. Because of this the tutorials are somewhat outdated. I am planning to make several new tutorials, but it is taking some time because of other work obligations. If you want to work with a toolkit that is close to what is used for the tutorials, choose version 4.18 in the dropdown when creating a new project with ATBTT in the launcher. Then convert this project to the newer version of UE4 you are using.

If you want to use the new version, be prepared that quite a few things have changed. Feel free to ask in this thread or on YouTube when you run into such problems, though, and I’ll explain how it works in the current version.

Attacking is now handled through the specific ability that is used for executing the attack. The default ability used is BP_Ability_MoveAttack. Check out the ExecuteAbility event in this blueprint, which is equivalend to AttackVictim in earlier versions.

Hey !

I’ve set up my project with monsters being spawned depending on number of players and the deployment phase that you helped me set up some time ago. However, this leads to there being no unit placed in the map at initialization. This is how I want it to be, but it seems the Grid Manager does not activate correctly due to this. I’m getting some errors saying GridManagerRef returned null unless I place a unit in the map from the editor.
I just now found your note on ActivateGridManager in BP_ATBTT_State saying “Activate the grid manager after making the initiative order array, as this is used in the setup of BP_GridManager”. My question is, how and where is this used? I could of course make a work around by placing a non-activated invisible unit somewhere but I’d rather not since it feels hacky and could mess with win conditions of the map, initiative order arrays and tons of other stuff I don’t know about yet :slight_smile:
I will start looking for it on my own but it’s always so helpful when you get the thought behind why it’s being used there aswell so you know how it should/could be used in the future.

Thanks again man, loving the toolkit more and more the more I use it :smiley:

Hi !

Can you explain me the functionality of the macro Owns Unit?
If I understood well, this macro will work ONLY if the battle is 1vs1, with the listen server against another client.

If I have two, three, four clients, or teams like 2vs2 match, can you confirm that this macro will not work? Actually I think that to achieve this I have to populate a custom integer in the player controller that reveals to himself who is him relative to the server (ex. the server in the Assign Units will also assign 1 or 2 or 3 etc. to the Owning PC so that in the future he can recognize correctly what are his units).

Is this the correct way to do it in your opinion?

Thanks in advance!

Can you remind me of the changes to the toolkit I helped you set up? It is hard to know what might be going wrong without being able to replicate it. As far as I recall I had set it up so that having units placed beforehand was no longer necessary, but I might not have tested it thoroughly enough. When you click the errors that appear, to what functions are you directed? By the way, if you want to set it up in a hacky way you can just remove the inivisible unit from the initiative array and grid units map after startup and you should be good. It should be possible to get this working without such a hack, though.

That macro should actually work with any number of players in an online game. The macro is a bit hacky and conterintuitive, so I understand that it seems do do something very differently when taken at face value. This is a way to get around the way player controllers are stored differently in clients and servers. The server has access to all player controllers, so server side it is unproblematic to get references to player controllers and compare them to the PCs that own units. However, clients only have access to their own player controller, so trying to get access to a different client’s player controller retuns nothing, while trying to get the server’s player controller returns a signature that is identical to the client’s player controller. To prevent clients from thinking the owned unit is owned by them, when it is in fact owned by the server I implemented a bOwnedByServer boolean which takes care of this if the OwnsUnit macro is activated outside the server. It is not the most elegant solution, but it does the job. I hope to think of a good way to solve this without the boolean in the future.

Hello again, I managed to get myself stuck while setting up a new animation blueprint for a character with a non-UE4 standard skeleton. I got most of the animations to work with me, and the blendspace seems to be working fine, but when I play and move a character it animatea for idling, but not for moving, and triggers this error about “abpref”. I’ve chased down the error and can’t figure out what is causing the problem. It’s properly set as a variable as far as I can tell, and everything else is working fine. I copy pasted the event graph from the original unit that you have it the main folder. How would i go about fixing this?

So the error indicates that the abp_ref variable is empty (access none). The reason for this is because in your first image you are casting the animation instance of your unit to ABP_Unit, and if you’re following my old tutorial on this I’m guessing you’re using a new ABP that is not a child of ABP_Unit. If this is the case, then the cast will fail and abp_ref remain empty. To fix this, change the cast so that it casts to your custom animation blueprint instead and change the class of abp_ref to your custom class. After that replace the AnimateMovement and AnimateUnit events so that it uses the new abp reference. Another thing that is different now from my old tutorial is that if you make a fresh animation blueprint which you want to work like ABP_Unit you have to remember to add the BPI_AnimateUnit interface to it. That should be all you need to do.

Hey , I have some problem with a toolkit. I made the main menu and when I start lvl with a grid and units, units are not moving and I have that errors in a message log.

Also i tryed it it with new project, and there is 2 same errors