When binding a User Widget function to the Text attribute of a TextBlock widget, the binding will silently fail if the function’s output parameter is named anything other than ‘ReturnValue’. Ideally the binding mechanism would just check that the function has a single output of the correct type. Alternatively, if it’s necessary that the output name be fixed, then the binding drop down should at least filter out functions that don’t qualify.
I was able to reproduce this issue on our end. I have written up a report ( UE-20207) and I have submitted it to the developers for further consideration. I will provide updates with any pertinent information as it becomes available. Thank you for your information and time.
Make it a great day
For anyone else having this problem and your binds are failing, just rename your return variable in the output node back to the default “ReturnValue” and it will bind successfully again. (NOTE I’m writing this answer, because in the latest version 4.20.3, it’s still a problem)
My opinion of the report status (UE-20207):
I don’t understand why this was set to “Won’t Fix”. This is clearly a bug with the engine, and regardless of the lack of attention or votes on the report, it should be fixed on principle alone. If you’re not going to fix the issue of the bind failing (but no indication from the engine that it won’t work) when the output variable changes from the default of “ReturnValue”, to anything else, then in my opinion you should just prevent the renaming of the variable in the output node.
I can confirm this works. I spent a couple hours trying to get my simple as pie function to bind to a widget. I set it as Pure and Call In Editor, but the function would not be called. After changing the return variable name to “ReturnValue” it started working. Thank You!