Crash with too many entries in Map variable using struct as value when nativizing

Title is a mouth full, but basically what’s happening is I have a blueprint which handles animated tiles in my TileMap. The key is a string and the value is an int I’ve made myself with some needed parameters.

I loop every x seconds with this map to switch the tile index so the tiles animate. I’ve nativized the blueprints so it does this more efficiently. The problem here is: If I have 10 or more map entries in this variable, it crashes!
It doesn’t give a traditional bug report window so I can’t report the crash though there. Confirmed to have worked fine with just blueprints and it works fine if I have 9 entries with nativization enabled. I’ve included the crash report to investigate.

[link text][2]

Here’s also a bit of the source code where the crash occurs, It crashes at bpv__AnimatedTiles__pf.Add(FString(TEXT(“AniWaterSeaCoast”)), __Local__10);

bpv__AnimatedTiles__pf = {};
	bpv__AnimatedTiles__pf.Reserve(11);
	auto __Local__1 = FST_AniTileData__pf3484142996{};
	__Local__1.bpv__UserDataName_23_351418B24732B01B2EC48999091B1207__pf = FString(TEXT("AniFlowers"));
	__Local__1.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf = TArray<int32> ();
	__Local__1.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Reserve(4);
	__Local__1.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(320);
	__Local__1.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(321);
	__Local__1.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(322);
	__Local__1.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(323);
	__Local__1.bpv__AnimationInterval_19_45AE23C4434D40985CBD8FAB89FA1382__pf = 0.300000f;
	bpv__AnimatedTiles__pf.Add(FString(TEXT("AniFlowers")), __Local__1);
	auto __Local__2 = FST_AniTileData__pf3484142996{};
	__Local__2.bpv__UserDataName_23_351418B24732B01B2EC48999091B1207__pf = FString(TEXT("AniWaterDeep"));
	__Local__2.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf = TArray<int32> ();
	__Local__2.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Reserve(4);
	__Local__2.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(800);
	__Local__2.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(801);
	__Local__2.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(802);
	__Local__2.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(803);
	__Local__2.bpv__AnimationInterval_19_45AE23C4434D40985CBD8FAB89FA1382__pf = 0.300000f;
	bpv__AnimatedTiles__pf.Add(FString(TEXT("AniWaterDeep")), __Local__2);
	auto __Local__3 = FST_AniTileData__pf3484142996{};
	__Local__3.bpv__UserDataName_23_351418B24732B01B2EC48999091B1207__pf = FString(TEXT("AniWaterPuddle"));
	__Local__3.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf = TArray<int32> ();
	__Local__3.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Reserve(2);
	__Local__3.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(832);
	__Local__3.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(833);
	__Local__3.bpv__AnimationInterval_19_45AE23C4434D40985CBD8FAB89FA1382__pf = 0.300000f;
	bpv__AnimatedTiles__pf.Add(FString(TEXT("AniWaterPuddle")), __Local__3);
	auto __Local__4 = FST_AniTileData__pf3484142996{};
	__Local__4.bpv__UserDataName_23_351418B24732B01B2EC48999091B1207__pf = FString(TEXT("AniWaterPuddleLily"));
	__Local__4.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf = TArray<int32> ();
	__Local__4.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Reserve(2);
	__Local__4.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(834);
	__Local__4.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(835);
	__Local__4.bpv__AnimationInterval_19_45AE23C4434D40985CBD8FAB89FA1382__pf = 0.300000f;
	bpv__AnimatedTiles__pf.Add(FString(TEXT("AniWaterPuddleLily")), __Local__4);
	auto __Local__5 = FST_AniTileData__pf3484142996{};
	__Local__5.bpv__UserDataName_23_351418B24732B01B2EC48999091B1207__pf = FString(TEXT("AniWaterFlowing"));
	__Local__5.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf = TArray<int32> ();
	__Local__5.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Reserve(4);
	__Local__5.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(864);
	__Local__5.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(865);
	__Local__5.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(866);
	__Local__5.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(867);
	__Local__5.bpv__AnimationInterval_19_45AE23C4434D40985CBD8FAB89FA1382__pf = 0.300000f;
	bpv__AnimatedTiles__pf.Add(FString(TEXT("AniWaterFlowing")), __Local__5);
	auto __Local__6 = FST_AniTileData__pf3484142996{};
	__Local__6.bpv__UserDataName_23_351418B24732B01B2EC48999091B1207__pf = FString(TEXT("AniWaterfall"));
	__Local__6.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf = TArray<int32> ();
	__Local__6.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Reserve(4);
	__Local__6.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(672);
	__Local__6.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(673);
	__Local__6.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(674);
	__Local__6.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(675);
	__Local__6.bpv__AnimationInterval_19_45AE23C4434D40985CBD8FAB89FA1382__pf = 0.300000f;
	bpv__AnimatedTiles__pf.Add(FString(TEXT("AniWaterfall")), __Local__6);
	auto __Local__7 = FST_AniTileData__pf3484142996{};
	__Local__7.bpv__UserDataName_23_351418B24732B01B2EC48999091B1207__pf = FString(TEXT("AniWaterfallDown"));
	__Local__7.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf = TArray<int32> ();
	__Local__7.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Reserve(4);
	__Local__7.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(704);
	__Local__7.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(705);
	__Local__7.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(706);
	__Local__7.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(707);
	__Local__7.bpv__AnimationInterval_19_45AE23C4434D40985CBD8FAB89FA1382__pf = 0.300000f;
	bpv__AnimatedTiles__pf.Add(FString(TEXT("AniWaterfallDown")), __Local__7);
	auto __Local__8 = FST_AniTileData__pf3484142996{};
	__Local__8.bpv__UserDataName_23_351418B24732B01B2EC48999091B1207__pf = FString(TEXT("AniWaterfallTop"));
	__Local__8.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf = TArray<int32> ();
	__Local__8.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Reserve(4);
	__Local__8.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(837);
	__Local__8.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(869);
	__Local__8.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(901);
	__Local__8.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(933);
	__Local__8.bpv__AnimationInterval_19_45AE23C4434D40985CBD8FAB89FA1382__pf = 0.300000f;
	bpv__AnimatedTiles__pf.Add(FString(TEXT("AniWaterfallTop")), __Local__8);
	auto __Local__9 = FST_AniTileData__pf3484142996{};
	__Local__9.bpv__UserDataName_23_351418B24732B01B2EC48999091B1207__pf = FString(TEXT("AniPortal"));
	__Local__9.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf = TArray<int32> ();
	__Local__9.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Reserve(4);
	__Local__9.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(640);
	__Local__9.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(641);
	__Local__9.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(642);
	__Local__9.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(643);
	__Local__9.bpv__AnimationInterval_19_45AE23C4434D40985CBD8FAB89FA1382__pf = 0.300000f;
	bpv__AnimatedTiles__pf.Add(FString(TEXT("AniPortal")), __Local__9);
	auto __Local__10 = FST_AniTileData__pf3484142996{};
	__Local__10.bpv__UserDataName_23_351418B24732B01B2EC48999091B1207__pf = FString(TEXT("AniWaterSeaCoast"));
	__Local__10.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf = TArray<int32> ();
	__Local__10.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Reserve(4);
	__Local__10.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(736);
	__Local__10.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(737);
	__Local__10.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(738);
	__Local__10.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(739);
	__Local__10.bpv__AnimationInterval_19_45AE23C4434D40985CBD8FAB89FA1382__pf = 0.300000f;
	bpv__AnimatedTiles__pf.Add(FString(TEXT("AniWaterSeaCoast")), __Local__10);
	auto __Local__11 = FST_AniTileData__pf3484142996{};
	__Local__11.bpv__UserDataName_23_351418B24732B01B2EC48999091B1207__pf = FString(TEXT("AniWaterSea"));
	__Local__11.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf = TArray<int32> ();
	__Local__11.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Reserve(4);
	__Local__11.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(768);
	__Local__11.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(769);
	__Local__11.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(770);
	__Local__11.bpv__AnimatedTileIndicies_15_B334B2F1487C6E7EFD27E3822DFDDE64__pf.Add(771);
	__Local__11.bpv__AnimationInterval_19_45AE23C4434D40985CBD8FAB89FA1382__pf = 0.300000f;
	bpv__AnimatedTiles__pf.Add(FString(TEXT("AniWaterSea")), __Local__11);

Hello ,

I ran a few tests and I was unable to reproduce this issue on our end. I have a few questions for you that will help narrow down what issue it is that you are experiencing.

Quick questions:

  1. Can you reproduce this issue in a clean project?
  2. If so, could you provide a more detailed list of steps to reproduce this issue on our end (including any small steps to have have been missed in the original report)
  3. When exactly are you getting the crash (example: when packaging, when you set the 10th element, when changing the project setting ect.)?
  4. If you cannot reproduce this issue in a clean project, could you provide a stripped down version of the project that does reproduce this issue so that we can take a closer look?

Hello Rudy,

  1. I’ve managed to reproduce the issue in a clean project and there’s some relevations while I was setting it up. The crash happens on the 10th entry according to the nativized code, but the crash only occurs when you have 11 or more entries in your Map variable.

  2. Steps to reproduce:

  • Create a struct with a number of variables of both arrays and single variables. Add a few struct variables in the mix. Here’s my setup:

-Create a blueprint class and add a Map variable with they key being a String and the Value being the Struct made in the previous step.

-Place down the actor in a level and make sure that level is the startup level.

-Set Nativization to Inclusive and package the game.

  1. I am getting the crash when I open the packaged game, it crashes on startup.

Here’s the project: [NativizeMapCrash.zip][2]

I hope to have informed you enough with this.

Hello ,

Thank you for the additional information. However, after further testing it appears that this issue in no longer occurring on the latest internal build of the engine. This solution will be available in a later release of the engine

Make it a great day

Great, thanks!