Is there a way to filter a 'Data Table Row Handle' drop down list?

Hi, I’m adding crafting to my inventory system by having a crafting recipe pickup which unlocks a crafting recipe by adding the name to an array in the player, but in the pickup blueprint I want to set the name variable by choosing an item from the list of all craftable items using the item database, since one of the variables in the struct is ‘Craftable?’.

Is there a way to filter the drop down list when I click on the drop down for the Data Table Row Handle to only show items in the list that have the Craftable set to true in the DT, so I don’t have to search through all 100s of items in the data table and there’s no chance of selecting a non-craftable?

Maybe even like using a For Each Loop on the Get Data Table Row Names, finding the row, and getting the variable to check if it’s true, then if it is, add the name to an enum on the construction script, so I can select the item from the enum list of all craftables instead? Is that possible? Or is there a better way?

You can store “Craftable” items in array first time when you load inventory (or when you start the game). So when you want to use it next time, just load/get items from the “Craftable” array instead of checking all items.

Is there a way to filter the drop down list though? I don’t mean to do it in-game, I mean for working in-editor, I’ve created an actor called ‘MasterCraftingPickup’ which I want to be able to select the item from a drop down list of all of the craftable items taken from the Item Database, so when I’m placing them in the world I don’t have to search through the entire list of items and maybe accidentally click a non-craftable one, which wouldn’t work.

Late to the party but there is a way to only show DTs of specific row types, it’s this:


// The raw type being FSomethingTableRow
UPROPERTY(BlueprintReadOnly, EditAnywhere, meta = (RowType = "SomethingTableRow"))
FDataTableRowHandle SomethingDataRowHandle;

1 Like