Why two versions of enum types for blackboards?

I was just wondering what the difference between the two different enum blackboard types were. There is UBlackboardKeyType_NativeEnum and UBlackboardKeyType_Enum. But it seems the only difference is NativeEnum has a PostEditChangeProperty function.

Is it just to validate the supplied string with an existing UEnum?

It’s also a little weird that the UBlackboardKeyType_Enum has a UEnum* but it is never set.

I suppose it’s also a little confusing because the word “native” typically applies to native C++ code as opposed to special unreal markup.

It was added, because class viewer widget was having problems with displaying a list of all enums created in native code & assets. However, it wasn’t a good decision and caused more confusion (and weird code paths) than it helped. NativeEnum keys are made deprecated in 4.8 release and all existing ones will be converted to Enum type automatically.


We think this post contains useful information which we would like to share with our public UE4 community. With your approval, we would like to make a copy of this post on the public AnswerHub which includes the discussion but strips out your username and company name. Please let us know if you are okay with this.


Yes of course, no problem.