How to assign StateTree parameters at runtime

// 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.