[4.6.1] Returning reference to structure gives error

Hi TTaM,

You are correct that you will receive an error message when trying to have a reference as a return value (as in the original post, for example). This is unfortunately a current limitation of Blueprints.

However, you are still able to pass parameters to a BlueprintCallable function as references, and those should function normally. There is one thing to keep in mind, however. If you write your function declaration like you normally would in C++, the parameter will appear on the node as an output pin instead of as an input pin. For example, the following code will give you a Return Float output pin:

UFUNCTION(BlueprintCallable, Category = TestCat)
void TestFunc(float& ReturnFloat);

However, if you add UPARAM(ref) before the parameter, it will instead appear as an input pin:

UFUNCTION(BlueprintCallable, Category = TestCat)
void TestFunc(UPARAM(ref) float& ReturnFloat);

You can also make the parameters that are references const if you wish.