Blueprints so far are great, except when you run into weird bugs that can not be easily circumvented. One time I had an issue with blueprint interface comparison simply giving the wrong result: so both == and != did not work properly (https://forums.unrealengine.com/showthread.php?53712-Blueprint-interface-comparison-bug&highlight=blueprint+interface). I’m not sure what causes it and I’m not sure how to report it because its inconsistent.
Pure functions are awesome, but refactoring impure functions to pure functions (and the other way around) should become easier. For those who haven’t used pure functions yet, you can flag any function as a pure function. Then it doesn’t need an incoming execution wire, but its simply executed when its return value is required. So pure functions are for getter functions. The problem is that when you are already using a function in several places and then you change it to pure, your graph simply becomes disconnected at those places where you used the function before and you have to find and manually fix that. Kind of related, but I would like a feature for automatically detecting “dangling” nodes: nodes that require an execution wire but do not have one. That would easily solve this problem.
A similar thing happens when you change the name of a function’s input variable. Suppose you have a function MyFunc(int a) in blueprint, so it takes an integer input. You use MyFunc somewhere and connected an integer value to it. Then, if you change the parameter’s name, all prior connections are lost and it reverts to the default value you specified in the function. Not sure if this is changed in 4.6.
I really want the ability to reorder functions. Not just placing them in categories but also for the order in which they appear within a category. I mean, you can reorder them currently by dragging them in and out of categories, so that the last one dragged in appears at the bottom, but come on. Also, I want automatic local variables for incoming function parameters, and the option for multiple return nodes. If I have a long function that performs a lot of checks and aborts when any fails, I just want a quick equivalent of “return false” in multiple places.
To summarize: So far almost anything is possible, some things just very tedious.