// for 5.4
template <typename T>
EPropertyBagResult SetStateTreeReferenceParameter(FStateTreeReference& StateTreeReference, const FName ValueName, const T& Value)
{
auto& InstancedPropertyBag = StateTreeReference.GetMutableParameters();
const auto PropertyBagResult = InstancedPropertyBag.SetValueStruct(ValueName, Value);
ensure(PropertyBagResult == EPropertyBagResult::Success);
// set overriden flag
if (auto* Desc = InstancedPropertyBag.FindPropertyDescByName(ValueName))
{
StateTreeReference.SetPropertyOverridden(Desc->ID, true);
}
return PropertyBagResult;
}
This is working but emitting warnings, and I didn’t test it in production.