you can’t directly set an “array inside a struct inside an array” when using blueprint. you can do it in c++ or you can make a temp array of structs that you use to create the outer array.
but if your goal is to make a grid of items, why not put them all in the same array? you could use modulus on the iterator to format a single array of objects into a 2D grid:
MenuPositionX + (SpriteSize + MarginSize) * (i % MenuWidth) ,
MenuPositionY + (SpriteSize + MarginSize) * FFloor( i / MenuWidth )
that way you can separate content from presentation, allowing you to swap out the formatting style without duplicating the content. you can display the same list of objects as a circle menu, album flip book, scrolling list, skill tree, grid list, horizontal list, tabs, venn diagram, flow chart, etc… just by swapping out this logic.
