Ok I think I understand:
So that’s means CoolDownTime was already user in another header file and UHT already get it with a capital “D” so it will always put a capital “D” in the generated files.
I can understand the reason now, but is it something that can be fixed in the next version of the engine, or do we have to take this as “by design” and keep this in mind ?
This looks like an FName issue. FNames are case insensitive, but will only store the string for the first version they find, so if they see CoolDownTime first, CooldownTime will be a name match, but will come out as CoolDownTime.
Unfortunately this will likely be an issue for the foreseeable future due to how ingrained FName usage is to UClass. If it is fixed, it certainly won’t be in the next version, although the core team are aware of this issue.
We’ve made a change for 4.5 which will make FName case-preserving for the editor and UHT. This should address the FName case issues you’ve been seeing.
I’ve checked that you’re able to rename asset, actor, and blueprint components in a way that changes only their case. I’ve also tested that you’re able to have a variables in different UObject/UStruct types that vary only by case, and that the UHT will generate code that actually compiles.