Quality Game Settings Menu, a good looking UI ready for use

Hey, thanks for buying my menu.

Sounds like some nodes in your character is not connected properly.
Make sure you connect the “Key” output from “Any Key” event to the “Any Key Press” in action manager.
yTqmf5o.png

If this does not solve your problem, please send me pictures of your node setup.

The default resolutions you see in the variable “Video resolutions” are fallback values, in case “Get Supported Fullscreen Resolutions” fails.
qU7rShL.png

If 1920*1080 does not show up, then Unreal engine does not think your computer supports that resolution.
It is still possible to type in your own preferred resolution in the two left boxes
dLkRheI.png

View distance scale edit box is disabled on purpose. It only works on values (0 < x <= 1), so I did not see any use in changing its value outside the slider range.

If you want it enabled, you have to set its visibility to “Visible” and set up a “OnTextChanged” event with nodes.
dLkRheI.png

The Low, Mid, High, Epic settings are Unreal’s official values for the scalability settings.

I do agree, there is not much difference between some values, and I have wondered if I should set up my own steps to quality settings where you can see the difference.

The functionality is there, and was a part of the large rewrite I did of GameSettings.
I wanted to avoid clutter in menu, so I did not add a revert settings option.


(Make sure you apply settings after it is reverted to default.)

I plan to do so!

This is the visual feedback when swapping menu tabs. To disable it, open ClassicSettingsMain and disable Play Animation in Event Graph and in “Switch Tab” function.
ytVcT0T.png

That is correct. Resolution changes does not work properly with PIE. As you said, It works fine when game is packaged or run as standalone game in editor. I don’t think it’s feasible to solve this in blueprint, and it will not affect the final game.

As an alternative, you can use immersive mode in Editor for fullscreen.
https://docs.unrealengine.com/latest/INT/Engine/UI/LevelEditor/Viewports/Basics/

It should be possible. I don’t have any documentation for it, and I plan to improve this later.
Since keybinding was included, the menu now requires an action manager and player controller to register keys. The action manager also needs the any key press to remap keys, and that means we need an actor that can receive inputs with “Any Key”.
yTqmf5o.png

Other then that, you can add it to viewport with a ZOrder higher then your own menu and call “Open Menu”, “Close Menu” on it.

My menu does unfortunately not support gamepad navigation. (It is specified in documentation). UMG in Unreal does support some navigation with a gamepad, but it is difficult to extend and change visuals on. What you see is the default settings. I might disable it all together since it is not really functional.

Thank you for your quick answer with pictures and explanations.

Indeed, they were not connected. Now they are connected, I can put the key I want but I have another problem : I change the WASD to ZSQD, then I click on “Apply” but it reset to WASD (If I click instead “OK”, the ZSQD works).
About the delay, is there a way to decrease it ?

Haha, dang you found a bug. You are right. It does reset on apply. Have to fix that one.
For now you can fix it by checking off “Save on Apply” when you create the widget.
Uty5C7q.png

To change the speed of remapping animation, Open up “Quality Menu” -> “HUD_UMG_Classic” -> “UtilWidgets” -> “ClassicSettingsMappingItem”
Move the keypoints in animations PrimaryAwaitsInput and SecondaryAwaitsInputs to adjust speed.

Yes, it works after checking it. Thanks for the link to the animation.

I try to link your menu by clicking the “option” button of my “PauseMenu”. It doesn’t work really well (because of the delay for example). I’d like to hide my PauseMenu before displaying the options and inversely :

After clicking the option button, your option menu works except the Keybinding as you said and the FOV (the FOV doesn’t change in real time but when I go back to the level).
If you have an idea of how to link this two widgets this would help.

That might happen since you cast to “FirstPersonCharacter” in one node sequence, and using its values in a different node sequence.
The event construct sequence needs its own node “Cast To FirstPersonCharacter”. Its not good design to grab settings menu from the OnClicked Sequence, since they are not related. Remove the delay node.

Try to reorder your nodes.

Some features with live feedback don’t work if the game is paused.

Edit:
I will look into this in the future and make it easier to add settings menu to your own menu.

Thanks, it works now. I reordered, deleted some nodes and replaced the Event Construct with an Event Tick.

I tried to make the Keybinding work with my PauseMenu but it doesn’t (I added to the PauseMenu an Action Manager component and the Set Keybinding Action Manager nodes but the “? Is valid” node returns “Is Not valid”).

I will now export a project to test it.

It should be fine to “bind event to menu closed” only once in event construct. If you have to solve your problem by binding event every frame, the issue is in another location. But if it works for you, I am going to let it slide.

I don’t think I have a node “Set Keybinding Action Manager”. It will help me understand the problem if you post images of your blueprint nodes.

Very few things works only in a exported project, so If it does not work in editor, packaging it will generally not solve a problem.

Thanks, it’s a better way and it works.

I was talking about the nodes inside ClassingSettingsMain > about the Collapsed Graph named “Set Keybinding Action Manager”.

I just want to test inside an exported project with my menus and your menu, I know the Keybinding problems will remains with the PauseMenu.

You are right, I forgot the name of the collapsed node.

But I think you can ignore that one. I have tested it out now, and made a simple setup for you, that you can use until I have improved usability with another menu.

Here is what we are going to do. Create both menus (Your pause menu and my settings menu) in your FirstPersonCharacter.
Follow the procedure as shown in manual or video tutorial. https://www.youtube.com/watch?v=jtA3OyT81Ns

Important! Make sure the first person character creates the settings menu widget first, before creating your pause menu widget.

Inside the pause menu UMG event graph
Here I made a mock up pause menu that only has a option button. All the option button does is hide the entire pause menu, and call “Open Menu” on settings menu.
When someone press OK, or Cancel in my settings menu, it will call the event we have binded on menu close.
It then shows visibility of your pause menu, and makes sure mouse cursor is enabled and usable, since my settings menu hides cursor and goes back to game mode when it closes.

Until I have given it some more thoughts, and improved it, I hope this will help you make my settings menu a part of your pause menu.

You could ad images to the buttons and so on. That would show how to do that and how to design a button. Nice pack!

Thank you, it’s easy to modify visuals buttons in UMG designer. Go to appearance, open style and tweak the options there.

The source images I use is included in project files. (But they are not transferred to new project when migrated, copy them manually to the same folder in destination project, and engine will link them with .uasset files)
Copy or modify them to your needs.

I know, I meant it would be good for people new to Unreal Engine if it was already included. I remember when we started with UE4 (and bought this pack with the money when they went free and rewarded $30), we were a bit puzzled how to actually design the buttons.

Good idea, I can add a small section to manual.

Thanks for this. I’ve changed my BP with your BP. When calling PauseMenu then Option Menu : the problem with Keybinding still remains.
I also have to click once to access the PauseMenu with mouse, then a second time by clicking “Option” > it works. I also added some nodes like “show mouse cursor” to make it work.

Yes, you need to add show mouse cursor when opening your pause menu. To fix the “click twice” problem, you have to set your playercontroller focus on menu item when you open your pause menu.

Keybinding works fine at my end using the method I showed you earlier. I am using an action manager in the FirstPersonCharacter that is connected to the settings menu, the custom pause menu does not have any action manager or uses keybinding at all.

Can you describe the keybinding problem in more details? Or did you mean the bug where pressing apply reset keybinding? (I have fixed that, it’s in the next update)

I’ve deleted my nodes and changed the MenuPressed sequence. When I play the project, the PauseMenu is directly displayed without mouse.

About the Keybinding, it’s the problem with PauseMenu. I thought your BP would solve it because we were talking about the collapsed graph “Set Keybinding Action Manager”.

The images I have showed you are only provided as an example. If the pause menu is displayed when you press play, you can Collapse on pause menu event begin with “Set Visibility” node. The methods of setting up your pause menu is up to your own design.

With the example I showed you earlier, you don’t need to touch “Set Keybinding Action Manager”. The action manager is added as a component to your FirstPersonCharacter and is used as a input when creating settings menu widget. This will make sure the Action Manager is valid. If you have modified “Set Keybinding Action Manager”, please set it up back the way it was.
c8hpAMw.png

To further help you, I need you to describe your problem in detail. What do you want to do, what happens when it does not work, and pictures of blueprints on what you have attempted to do.

Sorry, In the MenuPressed sequence I missed the link between “as player controller” and “target”. Then I replaced “Set Input Mode…” with “Set Input Mode UI”. This works better : it fixes the “click twice” problem and the Keybinding called from PauseMenu works !
I’ve now just problems when go out the PauseMenu > Press E > go out : adding some nodes should fix it.

I finally came back to the first node “Set Input Mode…”

This is fixed now.

This seems very close to work now. I will try some other tests.

Excellent, thank you for all your feedback. I might provide a dummy pause menu in the future as an example to include settings in a custom menu.