In cases where a data change callback can be registered based on context data, the caching can be determined during Initialize() by checking of the referenced data is persistent: bool FWorldConditionFoo::Initialize(const UWorldConditionSchema& Schema) { ... bCanCacheResult = Schema.GetContextDataTypeByRef(BarRef) == EWorldConditionContextDataType::Persistent) ... }