About Weak Object Pointers in Blueprint

I just discovered TWeakObjectPtr in C++ can be exposed as BlueprintReadWrite. If i remembered it correctly, this wasn’t possible in earlier engine versions and you have to create getter functions to retrieve the raw pointer. Some of my concerns:

  1. Does this magically turn the the underlying weak pointer into a strong one? (Regardless, wrapping around a weak pointer with UPROPERTY feels… wrong)
  2. Will it reduce overhead in BP since it’s directly referencing the member variable instead of calling a blueprint getter function?

No it does not turn it into strong reference.

Yes a variable get is generally faster than calling a getter.

Note that if the variable is marked with a BlueprintGetter, the VariableGet node will transform into a CallFunction node to call the getter under the hood, so it’s the same in that case.

Though minimal, but everything “under the hood” could still run faster than directly calling that function in BP as it’s pure C++.
I may refactor part of my code for this feature.