Description

If a data table asset is based on a custom struct, making changes to and hot reloading the struct will not update the data table in the editor. Restarting the editor will prevent the data table from opening. Error message shown in attached screenshot.

Regression:
No - Issue cannot be properly tested in 4.14.3 (CL 3249277) due to data table asset not saving at step 9 (Graph Linked to Private Object)

Steps to Reproduce
  1. Open UE4 Editor (Any project)
  2. Add code to project based on actor (MyActor)
  3. Add the following struct above UCLASS() declaration of MyActor.h
    USTRUCT(BlueprintType)
    struct FMyStruct : public FTableRowBase
    {
    	GENERATED_BODY()
    public:
    
    	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
    		int32 SomeNumber;
    	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
    		bool SomeCheckbox;
    	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
    		float AnotherNumber;
    	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
    		float MoreNumbers;
    };
    
  4. Add include statement for Runtime/Engine/Classes/Engine/DataTable.h above MyActor.generated.h include
  5. Compile
  6. In editor, create new data table based on MyStruct (MyDataTable)
  7. Add/remove property to/from MyStruct
  8. Compile with the editor open (hot reload)
  9. Save and restart project
  10. Double click to open MyDataTable

Result:
Error message appears when trying to open MyDataTable. Pressing "Yes" at error message will open the asset without any of the struct information.

Expected:
Data Table asset updates after hot reload and can be opened after restarting the editor.

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

62
Login to Vote

Won't Fix
ComponentUE - Gameplay
Affects Versions4.15.14.16
CreatedMar 28, 2017
ResolvedAug 18, 2021
UpdatedSep 14, 2021