Editable 3D Array in the Details Pannel

Hello All,

I am trying to make a Programmable Chess Piece using Blueprints. I want the Variables for its movement to be fully programmable in the Editor via the details panel.

A Normal Array does part of it. I am Using a Vector 3 Array. Each Vector 3 is a move that consist of three floats X= x Direction, Y= Y Direction, and Z= Distance.

In the editor I can keep adding entries to the array to account for a new direction the Piece can move. However, I want to account for the possibility of performing a combination of moves. For example, If I wanted to create a L shape or Zig Zag move, I would need a 3D array, and bunch of my V3s in a single string.

Any idea on how to do this? Especially making sure It can be edited in the Details panel, as not all pieces will have combination moves.

Thanks!

I’ve been using this technique for a long time and it works well. It allows you to edit the struct data in the details panel, too. You can load it from a *.csv file as well if you need to create the data externally.

The only quirk here is the run-time edit as modifying a several layer deep struct (7 in my case) is somewhat challenging.

The only way of making an array with more than one dimension in Blueprint, is for you to create a structure, add an array to it, and then make an array of that struct. If you want three dimension, you’ll have to create 2 structures, and add an array of one of them inside the other, etc.

Okay. But is it possible to choose the length of the Array Variables in the details panel? Adding them and removing them where needed? Thanks.

Okay cool. Could you refer me to some documentation for Structures? I have never made one before so It would be amazing if you could refer me a starting point (: Thanks!

You can right click on the ContentBrowser and go to Blueprints → Structure, then you can check this link to further understand how they work: How do Blueprint Structures actually work? - Blueprint Visual Scripting - Unreal Engine Forums

Amazing. Thank you everyone!

You might have used them already without realising it:

edit: I don’t think that the official docs ever mentione how to create them, so here it goes: