UMG Basic widgets styling

Hello everyone!

In our game UI is very important part of gameplay, with multiple widgets, menus, buttons and so on. We decided to use UMG and worked with it for about two years. And we had some issue, which really slowed down our development process. It is widgets styling.
Now in engine each basic widget (Button, Border, etc) has its own style settings, not dependent from some unified template, but all this settings are just copypaste from other. And when designers desides to change some color, we have to manualy walk through dozens of this widgets. Unlike slate, engine doesn’t provide any good way to speed up this monkey work. And I think we are not ones, who has such problem.

We tried some possible solutions, which doesn’t require engine code changes. First of it is creating special user widget with just one basic widget in it with specified settings. This solution is very bad, because, at first, we need to decorate all events, properties from original widget, and secondary, it doesn’t looks good in UMG Editor.
Second way is creating material and material instances for brushes. But this solves only problem with color, and only it. Other properties, like sounds, behaviour and so on you still must set manually. More over, you must do this for every new placed widget. And this dramatically breaks perfomance.

In every new engine release I list down new features to see, what was changed and added to UMG. But we are still here.

Okay, I found VERY easy and quick solution for this situation. We could just derive blueprint class from native widget class (UButton, UScrollBox etc.) and set properties in our new blueprint. But we can’t do this now. Because all umg widgets UClasses aren’t “Blueprintable”. I’ve tried to make them ones, just added this keyword to UClass specifier. And whoala, this works! Just derive and set what you whant, and it will be in pallete, and you can place it and use. You can change settings on particular instance and it will not be overriden, if you’ll make changes in your blueprint. Just one keyword.
If you have github engine sources - it is not problem. If you haven’t - no worry, you can just add your C++ class with this keyword and derive it from widget. Simple work, but some dirty.

So, question is: may be Epics will do this in future release of engine? Of course, I would wanted more improvements of umg, like more controls from slate, finalized existing widgets (I had a problem to do quickly chat message widget with text selection) and so on, but my solution of styling problem requires just 10 minutes and has no any visible disadvantages.

P.S. Sorry for my language if I made some errors.

UWidget should’ve been Blueprintable. I did some work to make that work correctly - keyword not getting added must’ve just been an oversight.

In 4.14 preview 2 launcher version I can’t derive blueprint from UButton without adding keyword (I’ve created a full copy of UButton class in my project with just added “Blueprintable” and it works well).
On screenshot I’m trying to derive blueprint from original UButton.