Adding VisibleAnywhere to UPROPERTY breaks compilation

I have built some USTRUCTs which I have used to build datatables, all working great. Each element is wrappered in a UPROPERTY like this:

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Table|stuff")
    FName mapName;

This all works OK, and I can import my CSV into the Datatable and the raw data appears at the top of the screen, except I cannot view the data in the row editor section. I did a quick google and found that I need to add the VisibleAnywhere option to the UPROPERTYs So I did:

UPROPERTY(EditAnywhere, BlueprintReadWrite, VisibleAnywhere, Category = "Table|stuff")
    FName mapName;

However now it will not compile, and I get the error OtherCompilationError(5) and -WaitMutex - FromMsBuild" exited with code 5. Please verify that you have sufficient rights to run this command.

I have tried closing down the editor and Visual Studio (2017), rebuilding VS project files, re-opening and compiling with the same result. If I remove the VisibleAnywhere then everything compiles fine. I have added this just to a single UPROPERTY and also all of them within a structure, it makes no difference.

Any ideas much appreciated.

Thanks

If you go to your output tab you will see

....h(19) : LogCompile: Error: Found more than one edit/visibility specifier (VisibleAnywhere), only one is allowed

which tells you, you can either use VisibleAnywhere or EditAnywhere both at the same time will not work

Excellent thank you, I hadn’t spotted that in the Output. It compiles now, but still cannot see the rows in the Row Editor :confused: More digging for me I guess.
Thanks

can you post the whole struct maybe there is something wrong in the USTRUCT() or in the rest of the definitions,

Also, how are you using the struct?

The struct is being used to create a data table. Whole struct is:

USTRUCT(BlueprintType)
struct GAME_API FC_Maps : public FTableRowBase 
{
    GENERATED_USTRUCT_BODY()

    UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Table|Maps")
    FName mapName;
    UPROPERTY(VisibleAnywhere, BlueprintReadWrite,  Category = "Table|Maps")
    TArray<FName> subNames;
    UPROPERTY(VisibleAnywhere, BlueprintReadWrite,  Category = "Table|Maps")
    FString public;
    UPROPERTY(VisibleAnywhere, BlueprintReadWrite,  Category = "Table|Maps")
    UTexture2D* image;
    UPROPERTY(VisibleAnywhere, BlueprintReadWrite,  Category = "Table|Maps")
    bool selectable;
};

I have done more testing and the problem is the Category I used!!

Single entry is fine, but with a pipe separator, the RowEditor is not happy at all!

interesting, good to know

Tested it a few times with a fresh struct with a single entry. Have reported it as a bug to Epic :slight_smile: