Modular Menu System Support Thread

That sounds very strange, in particular since object types of SimpleMenu etc. has not changed at all in this latest update. What if you create a fresh project, or even better: load the sample project’s Test map – what is the return value of the CreateSimpleMenu BP node there?

I got things working again, I can only assume a fresh project would work. Thing is, I can’t kill my project and start fresh on the count of a menu system not working, lol.

What I ended up doing was replacing all the simple menus, buttons, sliders, etc. Basically had to re-build a lot of stuff, because the items from the previous version were all invalid. I have no idea why- all I did was update MMS from the launcher. Fired up my project and had that issue. When I dropped in a new “Create Simple Menu” as a test, that worked fine. It’s just the menus and buttons I had from before that weren’t working.

Alas, I have it working now. Was only an hour or two of work, so not that big of a deal. The value being output from CreateSimpleMenu now is “MMS Simple Menu Reference”. When things exploded, it was “Object”. Same for buttons and other elements. I’m going to go the safe route and say I broke it somehow :stuck_out_tongue:

Thanks for the feedback, I am glad to hear it’s working for you again.
Still quite a weird issue though :slight_smile:

Question: after you casted the objects, did the system then work, even after the update –
or was the system borken as well, even after casting to the correct types?

I have questions:

How do I set the initial default text in an editable text box?
How do I make the buttons taller? I need them to be more square shaped.
How do I bind any of the control values to functions? I need my UI to respond dynamically to events.

Thanks

Hi , thank you very much for purchasing the Modular Menu System!

You can do so via the “Set User Text” BP node.
Just call that with the ID of the editable text box and the desired text.

That is set via the line height of the theme. So you can call the “Set Line Height” BP node of your theme object. All menu elements that you add after calling that node will use that new line height. But I can see the need for setting the height of buttons individually, so I have added the option to do so to the “Add Button[s]” BP nodes. That will be included in the next update.

I am not sure what exactly you mean by “control values” in that context. In general you can use the event handler for responding to events, as described in the MMS manual.

I hope that helps. Please let me know if you need anything else!

Thanks for the feedback. Got a couple issues for you:

  1. In the BP named MS_ModularMenuSystem see the function AddCustomWidget. The widget pin is not connected to the add element node so this function is not working. Easy fix.

  2. In a brand new project add the MMS system and run in new editor window or standalone. Click the top New Game button. Notice that the white box outline only shows the left and right sides of the box. Not sure how to fix this. Seems to depend on the resolution setting. Sometimes it shows the entire box.

  3. How to make the menu automatically resize itself when you resize the window? By resize I mean click the corner of the app window and drag to a new size. The menu keeps its old size until it is hidden and then reshown again.

This is a very nice bit of work that you’ve done here. It is definitely helping me make a prettier front end.

Thanks

Sorry to keep sending you issues. I’m doing a lot of menu work these days. File load/save, campaign management, add, remove, update, delete functions, etc. One thing I’ve run into is that the Text components (the read only text, not the user input textboxes) do not have a way to set an ID on them. I need to be able to setvalues in read only text boxes based on button clicks that occur after the menu is created/loaded.

And another:

The ShowMessageDialog node should take an ID and should maybe concatenate the ID to the button ID’s.
This would allow you to differentiate DialogYes and DialogNo when you have multiple modal dialogs on the same menu page.

Thanks a lot for pointing that out!

Yeah we’re aware of that. It works when you make it fullscreen, right? Unfortunately it seems this is a UMG thing, which I cannot change from BP. But we are looking into this and get back to you if we find any solution.

Hmmm… It should resize with the window automatically. Will have a look into that as well!

Thanks for your kind words :slight_smile:

Ohh yes that is indeed a good idea! I will add IDs to text boxes and a BP node to change their text values.

Ahh I see what you mean. Yes that is absolutely possible. I am thinking of a nice solution for this and will add it to the system.

In general thank you very much for your feedback and ideas. This is helping us a lot to improve the overall quality of the Modular Menu System. We will have a look into all these issues and ideas you have reported and implement (and fix) that within the next few days. So stay tuned for an updated version at the coming weekend or so :slight_smile:

Cheers!

Hi , today we have sent the updated version of MMS to Epic, so the new version will be published soon (usually takes a few days).
Here is the changelog:

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)

As you can see, we have fixed and improved quite a lot of what you have reported. Now you receive the ID of a message box when a button is being clicked, you can set the text of a text line after adding it to the menu, you can change the height of buttons, and more.

What is missing though is a fix for the white border around the menu (message boxes and tooltips). Unfortunately this seems to be a bug in UMG since 4.11, as it did not happen before. I have posted a bug report, hopefully Epic has some more infos on that. Will let you know when I get any news here.

As for the resizing, it should work fine. Maybe it hasn’t worked for you because you didn’t release the mouse button? The UMG window is only redrawn when you release the mouse button after resizing the window…

In any case, thanks again for your feedback.
I hope you like the new update - as soon as it is online :slight_smile:

I have a few stupid questions if you don’t mind. First do the menus work example start will actually start the game, load will load the games, graphics settings will change the graphics or is it a shell only and you need your own BP’s to start, save, load etc?
Second is this VR ready or can a quick fix be used for VR so it can be projected as a 3d widget and you can change menu options with a game pad.

It’s more or less a shell, as you call it. So you need to write the logic behind the menus compatible with your game. Every game needs different things to load/save, so I cannot provide a generic solution to this unfortunately. Graphics settings should be easy to implement though, as described in the handbook. Also with UE4.11 there are more graphics settings available as BP nodes.

Lacking VR hardware we have not been able to test MMS in VR mode yet. It is solely based on vanilla UMG though, so in theory if it works with UMG directly, than it’s very likely that it would work with the MMS too :slight_smile:

Hope that helps!

Hello haimat,

Thanks for the update. I will definitely be looking at some of those changes when I get the chance. I’m out of town atm. As for my window resize issue, I think you can replicate it as follows. Create a 3 column menu and add buttons to the left and right columns only. Then at runtime just resize the window smaller. You should see it clip the buttons on left and right. Then if you hide the menu and redraw it, they draw correctly.

Thanks

I love this system but I’m really new to both Blueprint and C++ so I’m struggling to integrate this with the C++ Persistent Graphics settings from your site. I’ve managed to setup the blueprint functions library and can call them from within a blueprint (although I cant call the get or set video quality settings function for some reason).

Do you have any plans to create a guide or tutorial on how to use both system together? Even just seeing how to setup the fullscreen checkbox with the C++ bp function library would probably help me workout the rest.

Thanks.

Okay, I am not the sharpest crayon in the box but I still can’t figure this who button calling function. All I need’s to know how to implement setting a resolution such as 1920x1200 with the command of r.setRes 1920x1200. I can’t figure out how to get it to connect to the array in the MyEventHandler for the menu. I have tried a bunch of things and nothing seems to work. Please help!

Hi Jazz, sorry for my late reply, seems I have missed your post somehow.

Anyways, as for your question: Usually it should be quite straight forward to implement the persistent graphics settings, also in combination with the MMS. First I would make sure that the BP library for the graphics settings work, without intetgration into MMS. What is your issue exactly with the video quality settings? When that works, you can simply call those BP library functions from your event handler in MMS. Do you understand how that event handling in MMS works?

Hi ClassyGentleman, thanks for your feedback to the Modular Menu System. So in order to handle user selection of screen resolution, as you describe above, you can do the following: First, populate the combo box with all resolutions you want to support in your game. You just need to provide a String array when creating the combo box or screen settings menu via MMS.

Then you have two choices: Either you read what the user has selected in the combo box when she clicks on some kind of “OK” or “Save” button. In your event handling code you can simply get the option selected in the combo box by calling the “Get Combobox Selection” BP node, as described in section 2.5.1.2 of the MMS manual.

Your second option is to implement the “ComboSelectionChanged” function in your custom event handler class. That way you can react to the user when she selects a screen resolution the combo box, without the need to confirm that with an extra button.

I hope that answers your questioin.
Please get back here if you need any further assistance.

No problem, the issue I’m currently having is that the function called “Get Video Quality Settings” and “Set Video Quality Settings” doesn’t appear in the right click list within a blueprint. I am able to call other functions created by the new bp function library but not those specific ones.

Could it be some sort of incompatibility with 4.11.2, as the tutorial was made using 4.8? Unless its something simple that I’m overlooking.

Very interesting.
I will have a look at that and get back to you soon!

Thank you for looking into it!