Description

Context

TOptional<T> is a wrapping struct around a type, that lets the property have an set and unset state, in addition to the property's value when set. It is editor exposed: designers can open blueprints and modify any editable TOptional.

[Image Removed]

Problem

When changing the set/unset state of a TOptional property in blueprint editor on a blueprint, any derived blueprints loaded in memory don't receive the new value via propagation even if the child blueprint had no override for the property.

If the state was already set on both, then inheriting value changes works as intended. Value inheritance only breaks when changing the set-unset state.

Steps to Reproduce
  • Define a C++ actor class with an editable TOptional property
UPROPERTY(EditAnywhere) 
TOptional<float> MyOptionalProp;
  • Create an actor BP 'BP_Parent'
  • Create a derived BP from that BP 'BP_Child'
  • Open both in editor
  • Set a value '42.0' for MyOptionalProp in BP_Parent
  • Go to BP_Child
  • Observe: BP_Child's default value for MyOptionalProp is still unset
  • Expected: BP_Child's default value for MyOptionalProp is the same as BP_Parent, it's value should be set and 42.0.
Callstack

Callstacks are non-fatal, for reference only. This is the function where likely work is needed.

The following functions are what handle setting/unsetting the optional value in editor. They find the inheriting archetype instances correctly, but do not change those archetypes their 'set' state. This might be due to making changes to the archetype while not using ImportText, which would handle the usual propagation.

     OptionalProperty->MarkSetAndGetInitializedValuePointerToReplace(Addr);
>    UnrealEditor-PropertyEditor.dll!FPropertyHandleOptional::SetOptionalValue(FProperty * NewProperty, const UClass * NewObjectClass) Line 5713    C++
     UnrealEditor-PropertyEditor.dll!FPropertyEditor::OnSetOptionalValue(FProperty * NewProperty, const UClass * NewObjectClass) Line 374    C++ 

 

     OptionalProperty->MarkUnset(Addr);
>    UnrealEditor-PropertyEditor.dll!FPropertyHandleOptional::ClearOptionalValue() Line 5867    C++
     UnrealEditor-PropertyEditor.dll!FPropertyEditor::OnClearOptionalValue() Line 389    C++ 

 

 

Have Comments or More Details?

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

0
Login to Vote

Backlogged
ComponentUE - Framework - Blueprint Editor
Affects Versions5.45.55.65.7
CreatedOct 27, 2025
UpdatedOct 28, 2025
View Jira Issue