Description

Changing the default value of a struct that is included as an array in another struct can prevent any Blueprints that use a DataTable made from the second struct from compiling. It appears to be a permanent issue that requires both involved structs, the DataTable, and the Blueprint to be deleted and re-created.

Steps to Reproduce
  1. Create a new Blank Blueprint project.
  2. Create a two new Blueprint structs.
  3. In the first struct, add 2-3 variables of different types.
  4. In the second struct, add 1-2 variables and make sure one of the variables is an array of the first struct.
  5. Create a new DataTable that uses the second struct.
  6. Add 2-3 rows to the new DataTable and edit/set default values for them.
  7. Create a new Actor Blueprint.
  8. In the Actor Blueprint, add a new Data Table Row variable and make it an array.
  9. In the Event Graph, create the graph shown in the attached StructLoops image (you will need to split a couple pins to create the setup).
  10. Compile the Blueprint.
  11. Open the first struct and change some of the default values. Save the struct.
    • This marks the other struct, the DataTable, and the Blueprint as dirty.
  12. Save everything.
  13. Compile the Blueprint.

RESULT:
The compile fails with an error similar to "Error Invalid property 'CallFunc_GetDataTableRowFromName_OutRow' structure 'SecondStruct' error: Struct 'UserDefinedStruct /Game/SecondStruct.SecondStruct' Property 'TheStruct_6_94CBAF3C41107BBF392E338304F95177' Error ( Struct 'UserDefinedStruct /Engine/Transient.STRUCT_REINST_FirstStruct_3' is not compiled )". In addition, the variable names in the datatable have changed to now include apparent random hashes in the names.

EXPECTED:
The Blueprint compiles successfully.

Have Comments or More Details?

Head over to the existingAnswerHub thread and let us know what's up.

32
Login to Vote

Fixed
ComponentGameplay - Blueprint
Affects Versions4.14.14.164.17.2
Target Fix4.19
Fix Commit3784604
Main Commit3804136
Release Commit3813083
CreatedDec 23, 2016
ResolvedDec 1, 2017
UpdatedJun 11, 2019