Developer Notes

Unfortunately this is a product of how UObject delta serialization works... the same problem happens with native classes and level instances. It is a problem ingrained in the UObject system. It only keeps values that are different from the parent.

Description

If the default value of a child Enum variable is the same as its parent's value, any changes to the parent's default will also change the child's default.

Steps to Reproduce
  1. Open UE4 Editor (any project)
  2. Add two blueprints (BP1 & BP2)
    • BP1 is based on Actor
    • BP2 is based on BP1
  3. Inside BP1 create a new variable of type EBlend Mode
  4. Compile
  5. In BP2, set Enum default to Masked
  6. Compile BP2
  7. In BP1, set Enum default from Opaque to Translucent
    • BP2 Enum value is still set to Masked
  8. In BP1, Set Enum default from Translucent to Masked then to Additive

Result:
BP2 default value changes to match BP1 value if both start with the same value

Expected:
BP2 retains its own default setting independent of BP1 changes.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-35681 in the post.

0
Login to Vote

Won't Fix
ComponentUE - Gameplay - Blueprint
Affects Versions4.13
CreatedSep 7, 2016
ResolvedSep 7, 2016
UpdatedApr 27, 2018