Modular Menu System - Create your Menus in Minutes, not Hours

Welcome to the Modular Menu System

Introduction

The Modular Menu System (MMS) for UE4 allows you to build UMG-based menus by using Blueprint nodes only. You don’t need to layout your menus manually in the UMG editor. Instead, you add menu elements via simple BP nodes. This allows you to build your menus in minutes, instead of hours.

A video says more than 1000 words, so without further ado …

Currently the MMS supports the following standard menu elements:

  • Buttons
  • Checkboxes
  • Combo Boxes
  • Sliders
  • Text Lines
  • Text Input
  • Text Scroll Boxes
  • Generic Scroll Boxes
  • Images
  • Custom Widgets

For buttons, checkboxes and combo boxes sound effects (clicking, hovering, etc.) are supported as well.

Overview

The basic workflow with the MMS is as follows: You create an (empty) menu object, add all the elements to it that you like, and finally show the menu to the user (viewport). No need to to touch the UMG editor at all, everything is done via BP nodes. That includes the size and padding values of the menu itself, laying out the menu elements in one or more columns, including their padding, spacing and alignment values, and similar.

The MMS also ships with a built-in event system, so that clicks on buttons, changes of combo box selections and alike all fire custom events, which the developer can respond to in a custom event handler. Alternatively one can also get and set the state of all menu elements at any time.

Last but not least we also support themes and custom colors for our menu system. The MMS includes some ready-made themes (see screenshots). The user can use those themes, change their colors dynamically, or create new themes from scratch.

Note that as of now the MMS has been developed and tested on Windows, but we see no reason why it should not work at least on Mac and Linux too. It should run fine on mobile platforms as well.

Resources and Support

You can purchase the Modular Menu System at the UE4 Marketplace.
A short tutorial as well as a detailed handbook can be downloaded here.
if you have purchased the Modular Menu System please feel free to ask for support in this forum thread, or

For everything else: Feel free to leave your comments, ideas, feedback or just greetings here in this thread :slight_smile:

Screenshots

Changelog

Version 1.5 / 2017-02-24

  • New optional blurry menu background / viewport overlay
  • Updated the Modular Menu System for UE4.15 compatibility

Version 1.4.1 / 2016-09-02

  • Updated the Modular Menu System for UE4.13 compatibility

Version 1.4 / 2016-08-16

  • Every Add… BP node will now return a reference to the newly created menu element (e.g. a button)
  • Auto-save dialog/menu object into event handler at menu construction

Version 1.3 / 2016-04-05

  • New BP node SetTextLine to set the text of a text element after adding it to a menu
  • Allow to override theme line height per button via new parameter for AddButton[s] BP nodes
  • Added ID parameter for Messages Boxes, so that you can identify pressed dialog buttons by that ID
  • Added parameter to vertically align a custom widget when adding it to a menu
  • Fixed bug: Now you can add custom widgets correctly to a menu
  • Fixed bug: Items can be selected again in text scoll boxes (after update to UE 4.11)

Version 1.2 / 2016-03-17

  • Updated for UE 4.11

Version 1.1 / 2016-03-11

  • Added new node “SetThemeSounds” (for Buttons, Checkbox, Combo Boxes)
  • Added short delay at BeginPlay in sample project for correct viewport size calculation in standalone mode
  • Fixed Bug: Menu did not remember size after hiding and showing again

Version 1.0 / 2016-03-02

  • First Public Release
2 Likes

10/10

It seems pretty cool already. The only thing that I can think of is ease of use in the UMG editor.

Very nice!

And i think that the graphics are actually looking quite nice :slight_smile:

Cheers,

Really interesting one …

Will it work as a 3D object as well?

Good question! Using MMS for 3D objects, e.g. as health bars floating over characters, is not the main focus of the system. However, technically it’s based on normal UMG widgets, so in theory I see no reason why it would not work for 3D objects as well…

The reason it needs to work in 3D space is due to VR and menu’s needing to be actors in the environment (either a floating actor, or put on something).

I see, thanks for the feedback. Unfortunately I don’t know much about VR in UE4, so I cannot give you a reliable answer on your question right now. But as said, technically the Modular Menu Systems uses UMG widgets under the hood. Thus my assumption is that you can do the same things with those MMS widgets as if you would create them by hand.

However, as soon as we have released the first version focused on “normal” game menus, as described above, I would be more than happy to have a closer look at MMS widgets used in 3D space :slight_smile:

Hi,

any update on this?

Also, will there be just one sample theme included or are you planning to provide 2 or more?

Cheers,

There will be more than one sample theme, we will provide a few themes (more than 2) that you can use out of the box.

Also we plan to let the user set some colors of these themes via BP node parameters.
We are currently working on that feature.

The deadline for us to release the Modular Menu System is end of November at the latest.
I will post a screenshot of the first real theme in the next few days.

Cheers!

Just a short update.

During the last few days we have worked on the first theme/skin, which will be shipped with the Modular Menu System. It supports setting the colors to your own choice, here we have worked with a blue main color and some random text colors:

As you can see on this screenshot, we also added a feature to use columns with different widths. In this example we have a smaller first column than the second column.

Please remember that we are still open to feedback and feeature ideas, so don’t forget to share your ideas with us.
We are looking forward to reading your ideas!

Looking good.

Wonderful idea! I hope you include video options for graphic quality, fullscreen and resolution in your system.

Yes, indeed, we have thought about that. To include some default templates, like message dialogs, loading/saving, and as you suggested also graphics settings. We are considering this, I will let you know when we have more news on that.

Thanks in any case for your feedback, I appreciate it a lot!

Looks great. Definitely something I would use heavily.

Couple of questions: how modular could it be? Say for instance, I want to have a setup for an options screen, and then have that displayed whenever the user clicks an in-game menu button. Would I have to do some trickery with a custom instance class to set that up? Also, how easy would it be to define, say, a menu “class” and then display that with a single function call?

EDIT: Also, I know this is for BPs, but how easy would this be to use in C++? I ask because getting a UMG menu(or widget) to load or work in pure C++ is a pure pain.

Awesome, I am glad you like it already :slight_smile:

If I understand you correctly, then what you are asking for should not be a problem. You’d first create the menu, as shown in the original posting above. That would “automatically” create the menu class instance for you as return parameter. You can then use this menu instance to show or hide the menu as you whish, simply by calling the respective Show/HideMenu BP node. Does this answer your question?

The basic issue is that (as for now) we need to submit a BP-only asset for the marketplace. It seems we cannot mix BP and C++ in one project. It should however be possible to call the menu system BP nodes from within your C++ code, as usual, even though I have not tested that yet. I hope this guides you to the right direction: How can I call a Blueprint function inside C++ code? - Blueprint - Epic Developer Community Forums

Cheers!

We have added support for message boxes via one simple BP node …

Will you add support for “key binding options” page as well? Or would it be too-game specific?
I mean even as a template for basic fps controls should be there, and we should be able to adjust a few re-mapable keys from there.

Looking good btw!

SWEET! really excited to see it in the marketplace

At first launch we will include a few templates that are used often, like loading/saving dialogs, messages boxes, main menus, etc. Later, based on your user feedback, we will add more such templates. So for example if there is demand for such a key binding screen, we will happily integrate it into the menu system!

Thanks, more screenshots of the various themes will be posted here soon :slight_smile: