You might want to parent your struct to FTableRowBase
struct FMyPickupSettings : public FTableRowBase
{
GENERATED_USTRUCT_BODY()
public:
<some var declaractions>
}
Then in the Editor you’ll be able to create DataTable based on your struct. Each variable is going to be a column and each row is your static struct. Also it’s a good way to store and categorize data as each row name is unique and you can use it as a key exactly like you would use in a Map type.
Accessing data table in bluerpints is straightforward, so i’m not going to stop on that too much, just use GetDataTableRow node.
In c++ you’ll have to Load it from a reference path in your Content folder:
UDataTable* data_table = LoadObject<UDataTable>(outer, datatable_name);
here datatable_name is something like TEXT(“DataTable’/Game/MyCharDataTable.MyCharDataTable’”).
Here /Game/ is a Content folder and MyCharDataTable is an asset of type DataTable located in Content folder.
Then, to access data you’ll have to know rowname. For that there’s a FDataTableRowHandle structure, which is commonly used to pass and access any data table data.