No decent tutorials on creating advanced menus with UMG

I know it’s in early stages but everything is so different in every engine version, I can’t follow any tutorial based on this. And also given the insufficient number of tutorials out there, it seems impossible for us to learn to create a decent menu. I’m not talking about new game, load game, exit etc. I’m talking about advanced options menu, any additional menus to add, navigation between menus, save&load, select player/ship/car etc. I’m trying to follow tutorials for 2 days here and I couldn’t done nothing except simple new game and an exit game button.

Because when I start to watch a tutorial BAM. The guy creates a node but guess what. I can’t create it because it’s no longer there.

Epic should, no MUST make a proper tutorial about this. Menu is one of the main aspect of a game. How can we make a game without a decent menu? Navigating through this widget thing is so hard to learn. And yes I tried answer hub and youtube etc. No advanced tutorials out there. And the ones that are now contain lots of features that changed to this engine version. Since I have no knowledge (or plans to know) of C++. How can I create a decent menu in my game?

Have you checked the UMG tutorials Epic released recently?

Just 1 day ago? I’ll go check it out immediately if that answers even some of my problems. Thanks for alerting.

Well I’ve checked the new tutorials. Although they give good insight about implementing new gameplay features, it’s not about creating menu UI and navigating through different pages of menus with interactive features. It’s like creating the cream without making the cake. I’m still navigating through answerhub but this shouldn’t be that hard. Just an up to date tutorial about a game menu with different pages and advanced features like player selection, save&load game etc. would be great.

It’s very interesting that sometimes, very very basic functions need very hard thinking to make it. For example resetting a level when you die. Because there is only “open level” command in the menu, when you die how can you continue your game on your latest level? Like shipped games, how you just click “continue” when you open the game and get you to your latest map setting? How to create new character, select your character, load it etc. within UMG?

See? Before implementing bananas and apples we need basic menu stuff. It’s tutorial junk out there and actually %95 of them are outdated and the rest of them are so basic that anyone I think can figure out how to “open level” and “quit”. We need UMG tutorials, please.

Open level is the most basic function of the “continue” feature you speak of. So when you die for instance, just re-open that level from the start. It’s much more advanced to get all the necessary information from a save file (current health, inventory, player location, etc).

These features you enlisted are gameplay features and they have nothing to do with UMG, UI is only a visual representation and user interaction interface.
I think you are asking for a game state handling and gameplay features tutorials.

I just want a functional, standard game menu like every other game has with save&load functions, different menu pages about character selections, continue from saved game etc. is that so hard?:slight_smile: I examined memory game and ninja’s menu blueprints and it looked like a plane cockpit. UMG looks more artist friendly but I couldn’t done anything beside making fancy buttons with simple functions. Of course, I can make simple commands like opening a level, quit, a very simple options menu etc. but not more.

edit* actually I discovered making a very simple options menu but character selection, save&load functions are still mystery. If I ever find anything I’ll write. (which is a very low chance:P)

try these:

also google search even has a video, most of this hasn’t changed much in months, so should be straight up usable:

the rest is just working thru it all, good luck :wink:

Thanks. I’ll look into them and see if I can make it work.

Still no decent tutorials on how to create advanced menus :(.

All of them are just creating a basic menu. But what happens if someone wants to make screen transitions, popups, flows of screens, etc?

It would be nice if the community could share any useful tutorials for advanced UMG.

Also the only game provided by Unreal that has some UMG functionality is again very basic(Match 3).

If you want to create this type of UI functionality, you need to get into Slate.
Slate is the underlying framework for UI widgets. All UMG widgets just wrap an SWidget into an UObject.

However, documentation on Slate is somewhat…hmm shall we say… “challenging” :wink:

Yeah, i am also making UI right now, and i chose to use Slate and C++, instead of creating new widgets using blueprints and UMG.

Because you have tons of UE4 Editor UI Slate widget classes in C++, so you may look into it and learn how to make your own, or reuse existing. UMG is just a little part of existing Slate widgets.

I used unreal engine wiki for first steps with Slate.


What material are you using and is it up to date?

See my expierience with Slate so far:

I somehow find it hard to get material that isnt from anno tobacco…,_Hello
A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums (all 3 parts)

I dont know why u think its outdated, because it worked for me. As i sayed its just first steps, then i am just looking how implemented SButton, SOverlay and other widgets to understand more.

Another good helping method for me: i create some UMG widget in editor, and watch how implemented blueprint UMG nodes in C++ code, for example i create node “Add to viewport” and click “Goto Code Definition”.

Also if you place UMG widget you may open its .h file, and see which exactly SWidget class it is using behind.

And ofc u may use Window->Developer Tools->Widget Reflector->Pick live widget.

It uses that HUD class and everywhere else it sais the “HUD class way” is the old, deprecated way.
And there must be something that the build tool doesnt like. I trued the Hello Slate stuff before and all I get are unspecific build tool errors (cannot produce item).

I tried that with STextblock. trying out how that stuff is done. Just got lost in an endless chain of function calls… :confused:

Of course a more plausible explanation would be that Im simply too stupid for slate :slight_smile:

I admit that if you want learn Slate you have to look existing C++ code, not so much tutorials about Slate. But, i also admit that implementation of pure Slate widgets is much easier than UMG wrappers for it ). So my opinion - Slate is quite easy and straightforward, and you can create your own widgets with any features you want, but it requires some practice with UE4 C++.

And dont use Visual Studio default tools (F12 go to definition, find all references etc…), use only Visual Assist tools (alt+G, shift+alt+G, shift+alt+F).

As for me, most likely i will end up with creating new base widgets in Slate, wrapping it to UMG widgets, and then use UMG editor for configuring layouts of widgets. This will bring some overhead and harder to implement, but i dont think creating layouts in C++ code is good idea.

Sadly, it’s now 3 years later and there is still very little info on creating menus. I just ran across this post but I’ve been searching for a month. I started a new thread a week ago posing the same problem. I need to create not game “start”, “stop” and “health” menus, but VR menus like our personal VR Epic Library menus. I need menus I can scroll, move, zoom and interact with.

The UE Documentation covers tiny snippets of specific techniques. There is nothing comprehensive. I realize the tutorials on the web are done out of the kindness of other users and we can’t dictate what kinds of tutorials they do but I’m surprised that there really aren’t any that cover advanced ‘Menu’ creation.

Sure, I can learn to increment a hit counter, update a health bar, but I can’t find anything about creating a menu where I can do beautiful scrolling, pushing, pulling, moving and curving of a floating menu in VR, like we have with our Home Library interface.

Its true one of the least documented areas, also there are a lot of question marks still unresolved with UMG. Other issues as well.

Last time I tried to give it a try again, I created a button with animations, but then I couldn’t figure out how to reuse these animations again for other buttons?

I am still looking for ANY tutorial out there describing this, which should be first go to area. I did a hack workaorund by copying the entire UMG with button and importing it inside the main UMG BP.

This can’t be right.

Edit: we ditched UMG long ago and just went with custom setups menu created form scratch with BP’s and placed in front of the cam. We also get to benefit from Post process get bloom on text this way.

UMG may be bad in terms of Display with all its container boxes, caveats, and gotchas, but it is incredibly simple and amazingly extensible.
You just need to think of everything you do with it as OOP.

You don’t create a button and animate it. You create a widget object that contains a button and expose variables for it, then animate it.
afterwards, you use the widget you created in your other widgets and you instantiate it to be the button or item you want (custom text, or images).

I have literally seen you answer way tougher questions, so it’s probably just a matter of not thinking about UMG in terms of OOP that made you ditch it, or think that’s not the way to go.

I’m planning a release of a marketplace UI “catch all” system that implements joypad interaction.
once I do I’ll also have some general tutorials on extending the functionality / and or include different key presses.

Not sure when I’ll be able to refine it enough for release exactly. I’m struggling a bit against the blender plugin windmill at the moment. I would say that I’m a generous month out before tutorials on how to get filmed. Maybe less. Depends on the active project’s workload.

Basically you add widgets inside the master component. Any widget or UMG you created should be available to select from the list of items under the “custom” (or something similar) tab.
If you expose the correct variables - and the widget itself uses them within the creation event/function - then you can change those variables on the fly like you would with any button.