Unable to Assign UItemDataAsset Instances to TSoftObjectPtr<UItemDataAsset> Array in Editor

Hi everyone,

I’m working on an inventory system and I have a USTRUCT that contains a TSoftObjectPtr to represent items in my inventory. The struct looks like this:

USTRUCT(BlueprintType)
struct FInventoryItem
{
    GENERATED_BODY()

    UPROPERTY(EditAnywhere, BlueprintReadWrite)
    TSoftObjectPtr<UItemDataAsset> Item = nullptr;

    UPROPERTY(EditAnywhere, BlueprintReadWrite)
    int32 Quantity = 1;
};

In my inventory component, I have an array of these structs exposed to the editor:

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Inventory")
TArray<FInventoryItem> Items;

The problem:
When I try to assign a UItemDataAsset instance to the Item field of the array elements in the editor, I’m unable to do so because the property is of type TSoftObjectPtr, and the editor doesn’t allow selecting the assets directly.

I need to pass references to my UItemDataAsset instances through the editor and assign them to this array, but it seems like the soft pointer type is preventing that.

Questions:

Is TSoftObjectPtr<UItemDataAsset> the correct type to expose so I can assign data assets via the editor?

If yes, what am I missing to enable asset selection in the editor for this property?

If not, what type should I use instead to allow assigning UItemDataAsset references in the editor?

Any guidance on how to expose these data assets properly for editor assignment would be greatly appreciated!

Thanks in advance!