Enum values not update until editor restart


I think I’ve found bug in 4.9.2. Changes mede to UENUM are not getting reflected in editor until restart:


  1. Create blank C++ project out of “blank” template.

  2. Fire VS and go to [projectName]GameMode.h file.

  3. Add this code before class definition:

    UENUM(BlueprintType) //“BlueprintType” is essential to include
    enum class EUnitStatistic : uint8
    HEALTH UMETA(DisplayName = “Health”),
    ACTION_POINTS UMETA(DisplayName = “ActionPoints”),

  4. Recompile and Hot Reload

  5. Go to editor, create empty blueprint class, inherit it from actor

  6. Open this blueprint, add local variable of type EUnitStatistic. Note that it has two values “Health” and “ActionPoint”. Up til now everything is ok.

  7. Update enum by adding new statistic:

    aaaa UMETA(DisplayName = “aaaa”),

  8. Compile, hot reload

  9. Go to editor and exammine variable created in point 6. Try to change its value to aaaa. The variable is not present. Error.

  10. Restart editor. Now value is present.

P.S. My newlines after each point somehow (again) are disappearing.



I’ve entered a bug report for this issue (UE-22059) for further investigation.


This bug still exists - or I hit another one. Re-compiling everything, closing the editor - as mentioned in the bug - does not work. I have a situation where I had a test enum defined which was then removed from the code. After several re-compilations and an editor restart later, it used that old enum definition even though it is no longer within the compiled code. Very strange. Enums are not functioning at the moment. (Version 4.18.3)

Maybe another bug, maybe the same. What I found is that the *.generated.h does not include a correct declaration/definition of the corresponding declaration/definition in the users header file.

In my example below a simple enum type is declared/defined within Test1.h. This enum is used within a struct so it can be edited from within the editor. At the very end of the Test1.generated.h is the generated enum stuff, but instead of the 4 defined types within the enum, only 3 are there.

If I add the missing entry manually and re-compile, it shows up in the editor. But when trying to select an item in the list, the editors log shows:

LogClass: Warning: In asset 'None', there is an enum property of type 'HOTRELOADED_EMyEnumItem_0' with an invalid value of 'OE_Entry1'


enum class EMyEnumItem : uint8
	OE_Entry1 UMETA(DisplayName = "Entry1"),
	OE_Entry2 UMETA(DisplayName = "Entry2"),
	OE_Entry3 UMETA(DisplayName = "Entry3"),
	OE_Entry4 UMETA(DisplayName = "Entry4")

struct FTestStruct

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Test")
	EMyEnumItem selectedEnum;


#define CURRENT_FILE_ID <somestuff>_<EnumsDefinition>_h

#define FOREACH_ENUM_EMyEnumItem(op) \
	op(EMyEnumItem::OE_Entry1) \
	op(EMyEnumItem::OE_Entry2) \
	!! <<<--- MISSING --- >>> !!

End of July, 2018. Still a problem in UE4.20

still a problem in 4.25