Download

Largish 2d array for data fails with infinite loop warning but smaller array is ok

Hi, I am trying to make a large 2d array in Blueprints, but making a struct that has an array of floats, and another struct that has an array of the first struct. This is essentially a 2d array. I am trying to put 1000 floats in the first structs array of floats, and then 1000 of these structs in the second giving a 1000x1000 grid.

The problem I am facing is the editor spits the dummy and says I have an infinite loop, but if I drop the size to 300x300 it is ok, at 500x500 it gives the infinite loop warning again.

I am using UE 4.5.1 (the ark dev kit version). Sorry the image is a bit blurry, I snapped it at home and I am at work now so can’t alter it.

Am I going about this the wrong way. Is there a better way to store a 2d array of data? Ideally I would like to use a bitmap image, and read and set the individual pixels but I am only able to use BP’s in the ark kit.

e75b671c69b4b7f9449fcdb20aa07fe1fdccb893.png

4.5.1?

There’s 4.14.2 out there! Soon to be 4.14.3!

You should be able to change the maximum blueprint loop count in the project settings.

Hello,

As Bohrium said you can go to edit - project settings : engine - general settings and set the value of “maximum loop iteration count” to a higher value.

Yeah, but for modding ark we have to use their custom version of ue4 which is based on 4.5.1 which is why I mentioned it, I can’t use solutions for the current versions.

Will that work moving forward with the mod for Ark? Also, am I not sure it is hitting the limit, it says it has detected 1,000,000 iterations but 500x500 is only 250,000 iterations. Any way I will give it a go.

Ok, that setting is not available in the ark dev kit version. Can you suggest any other ways of manipulating an array of data when BP’s are the only option.

Sorry it didn’t help. Not sure for a solution but i would try to do it partially then, you know doing a loop for only half of the array and then a second one for last part. Not sure it would work in all situations.

That’s a good plan, split the creation of the row data into a new function. Cheers