this is very confusing and cost me some time to figure out why my actor had some fields that weren’t editable.
In fact I believe that is also the cause of a crash i reported here
This is actually not a bug. It is a result of legacy code brought in from UE3. Numerical data types available for use in Kismet in UE3 were limited to simplify its use. When the Blueprint system was created for Unreal Engine 4, the same principle was used and the same data types were made available to use in Blueprints. The only numerical data types that were intended to be used with Blueprints are uint8, int32, and float. All of the other numerical data types are fully available to use in C++ code, but they cannot be accessed through Blueprints.
There has been some discussion going on internally with regards to supporting the larger numerical data types (ie. int64 and double). It seems as though a lot of our developers favor the switch to the larger data types, but they still want to keep Blueprints simple by limiting the data types available (eg. you would be able to use int64, but not int32). Unfortunately, making this change would be a fairly large task, so it is unlikely to happen soon.
I understand that there must be reasons for this decision.
Is there a way that a magic compile time check can be added that if the UPROPERTY that is being exposed is of type uint32 int64 or uint64 then it spits out a warning in the log ? (A bit like the one saying that “OVERRIDE” was deprecated and some other warnings that i saw floating around when building the engine). I know now how to fix this issue but others might have the same problem.
Your suggestion of a warning message when compiling is a very good one. I went ahead and entered a feature request for that to be looked into (TTP# 346760).
One point of clarification regarding my previous answer: The developers are not actually interested in switching the default data types available in Blueprints, as I stated. They are actually considering exposing int64 and double to Blueprints, which is still a very sizable job.
I just wanted to provide a quick update here. I just noticed that 4.8 Preview 1 now has an error message in Visual Studio if a class contains a UPROPERTY that is not supported by Blueprints.
I entered a new ticket to evaluate the possibility of adding a warning/error message during compile if an unsupported type is included in a UFUNCTION signature (UE-24723). I had not considered including UFUNCTIONs in the original feature request. That was an oversight on my part.