0% found this document useful (1 vote)
367 views76 pages

1.6.1 Manual Quality Game Settings

The document provides instructions for implementing a quality game settings menu in an Unreal 4 project using the Quality Game Settings asset. It describes migrating the game settings file, setting up the game instance to access settings, cleaning up the character blueprint, creating a player controller blueprint to manage input and settings, adding a camera modifier to control post-processing, and more steps to fully integrate the settings menu into a first-person project template.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (1 vote)
367 views76 pages

1.6.1 Manual Quality Game Settings

The document provides instructions for implementing a quality game settings menu in an Unreal 4 project using the Quality Game Settings asset. It describes migrating the game settings file, setting up the game instance to access settings, cleaning up the character blueprint, creating a player controller blueprint to manage input and settings, adding a camera modifier to control post-processing, and more steps to fully integrate the settings menu into a first-person project template.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 76

Quality Game Settings 

An Unreal 4 Settings Menu

Manual v1.6.1
(Unreal 4.14 - 4.17)
Thank you for buying this asset
1 Features: 
Quality Game Settings is a settings menu ready to be included in your Unreal 4 games.
It includes:
● Keybindings with remapping
○ Detects conflicts
○ Generates UMG from data table
○ Allows key combinations
○ Remapping buttons to axis directions and axis to buttons
○ Read keybinding to make strings like “Press [key] to jump”
● Audio control on sound classes
● Control Video Quality and Screen Mode:
○ Resolution - Fullscreen / Windowed
○ Motion blur
○ Field of View
○ Anti aliasing
○ Shadow Quality
○ Brightness / Gamma / Bloom
○ V-Sync
○ ++
● Mouse sensitivity with invert axis options
● Custom game tab for your own options
○ Includes example components
● Development tab to add settings to help during development
○ Dev tab is hidden when game is packaged for shipping
● Grab top bar and move menu
● Settings saved on disk and re-applied on game start
○ If no save file exists, a new one is made using default values in GameSettings
and DefaultGameUserSettings.ini
○ Supports level change
● An example level demonstrating use of settings menu
● A barebones main menu containing a settings menu, (provided as an example)
● Plenty of other smaller features, ​try it out the demo​.

What does Quality Game Settings not include (yet):


● Menu Gamepad Navigation (Mouse only)
● Virtual reality support
● Mobile support
● Local Multiplayer support (Online only)

For feedback and help: please use QualityGameSettings thread on unreal forums.
https://forums.unrealengine.com/showthread.php?67933-Quality-Game-Settings-Menu-a-goo
d-looking-UI-ready-for-use
For other questions, please use unrealquality@gmail.com

1
2 Index: 
1 Features:

2 Index:

3 How to implement Quality Game Settings


3.1 Migrate Game Settings
3.2 Set the Game Instance
3.3 Clean up Character Blueprint
3.4 Create a Player Controller
3.5 Add Camera Manager
3.6 Set GameMode with PlayerController
3.7 Add Action Manager
3.8 Add menu to viewport
3.9 Add new Keybinding “Fire Gun”
3.10 Add volume control
3.11 Add DefaultGameUserSettings.ini
3.12 Add Network Support

4 Add sound classes to audio assets


4.1 Add sound class to multiple audio assets

5 How to add a new custom setting


5.1 Add Variable to GameSettings
5.2 Add UMG elements
5.3 Update and Apply BP_FirstPersonBP pawn values
5.4 Workaround Event Dispatcher

6 Custom Game Instance

7 Customize Menu
7.1 Hide Games Tab or other settings
7.2 Reorder Game Tab
7.3 Change Color
7.4 Change Textures
7.5 Change Default Values
7.6 Change Default Keybindings
7.7 Change Look of Buttons and Components
7.8 Implement settings in a main menu
7.9 Reorder Keybinding List
7.10 Add new console command settings

8 Problem solving
8.1 Settings not applied on game start
8.2 Screen Capture 2D actor bug

2
8.3 Why is it hexadecimal numbers on AudioUpdateStruct node?
8.4 UMG/Widget components volume control
8.5 Virtual Reality support?
8.6 Dual monitors
8.7 Packaged game crashes/Settings are not applied correctly
8.8 Delete ExampleRoom folder crashes unreal
8.9 Where is the save file stored?
8.10 Issues on Mac/OSX
8.11 Brightness(Gain)/Gamma/Bloom/Field Of view does not work
8.12 Editor Crashes when pressing play
8.13 Particles stops working when changing quality level (Detail Mode)
8.14 How to play sound when game is paused
8.15 Black Screen when changing view distance.
8.16 Unable to remap keys in game.
8.17 Dev tab does not hide itself when game is packaged.
8.18 Unable to click or interact with settings/HUD is overlapping settings
8.19 Play in Editor (PIE) flickers/slowly expands
8.20 Multiple Assets requires re-save on play/Editor slow to start game
8.21 Can’t rebind keys if game is paused
8.22 Can’t save blueprint
8.23 Custom list of video resolution
8.23 Foliage density is not working.
8.24 Nativizing Blueprints not compiling.
8.25 Forward shading rendering
8.26 Fullscreen in editor behaves oddly
8.27 Menu shifts/shears/moves when clicking tabs
8.28 Third person movement not working as expected

9 Other Features
9.1 GameUserSettings ini file
9.2 Development options
9.3 Find and Display Keybinding
9.4 Optimization
9.5 Fine Tune Quality Levels
9.5 Access input in other blueprints.

10 Version Changelog

11 Credits

3
3 How to implement Quality Game Settings 
This guide assumes that you have played with blueprints in Unreal 4.
If you are new to blueprints, ​please watch some tutorials on youtube​.

A video tutorial to install quality settings menu can be found here:


https://youtu.be/60FZLuw8Ta8

3.1 Migrate Game Settings 


We are going to export the game settings file into another project.

Create a new project from the first person template.


Take notice of where this new project is stored on your hard drive.

Download Quality Game Settings (Has to be same Unreal version as your project).
Open the project and in the content browser, right click QualityMenu to Migrate the folder.
A new window will show up, displaying all assets ready for transfer.
Click OK and find the location of your new project.

4
Select the ​content folder​ inside your first person project and press OK.
Now you can close QualityGameSettings project and go back to the first person project.

Inside the first person project content browser, you now have a folder containing all Quality
Game Settings files.

QualityMenu folder includes the ExampleRoom folder. If you don’t need it, you can delete it.
(Unreal Editor sometimes crashes due to large number of assets being deleted, you can
close the project and safely delete ExampleRoom folder from your normal file browser
instead)

5
3.2 Set the Game Instance 
Unreal 4 has a special game instance class that starts when game is running.
It will be used to create a Game Settings object before other blueprints.
(If you want to use your own game instance instead, see part 6 of this manual)

Go to edit and open up project settings.

Select “Maps & Modes” and find Game Instance dropbox.


Change Game Instance Class into BP_GameInstanceWithSettings

Close project settings and go back to main window of first person project.

6
3.3 Clean up Character Blueprint 
As of quality menu release 1.6, the control logic has been moved from character blueprint to
a Player Controller (PC) blueprint. This allows support for online multiplayer. You are free to
copy and use the included “BP_PlayerControllerWithSettings” as a base, but the following
tutorial remakes the Player Controller from scratch to help you understand how it works.

For simplicity of this manual, we will ignore networking until part 3.12, where we will add
some nodes if your project will be used over network.

First we will remove all the old logic from “FirstPersonCharacter”.


Open up blueprint that comes with the First Person project inside folder “FirstPersonBP/
Blueprints/FirstPersonCharacter” or select character in the scene and click the blue button
“Edit Blueprint” -> “Open Blueprint Editor”.

Delete almost every node except the bottom spawn projectile part, we will reuse that later.

7
3.4 Create a Player Controller 
Go back to content browser and create a new blueprint.

Make it a Player Controller, this will be the brain of our character and manage input.
Name it “BP_FirstPersonPC” where PC stands for Player Controller.

Open up “BP_FirstPersonPC”.
From event begin play, drag out a new node and search for “Get Game Settings”

8
Right click and empty spot and search for “Get Game Instance” node. Connect it to the ““Get
Game Settings", this will fetch settings from game instance we set up in part 3.2 in manual.

Right Click the game settings output and “Promote to Variable”

Name this variable Game Settings. Connect it together as illustrated.

This is an easy way to fetch the game settings object from almost any blueprint.

3.5 Add Camera Manager 


Then we will add a camera modifier to manager brightness/gamma/bloom and field of view.
Since we are making this blueprint inside a player controller, you can get a “Player Camera
Manager” and then drag a new node from it to find “Add New Camera Modifier”.

9
Set modifier class to be “BP_SettingsCameraModifier”. Be aware that this ​will disable ​any
other post process effects in scene that changes brightness/gamma/bloom intensity/FOV. If
you want to interact with these effects, you should configure BP_SettingsCameraModifier.
(See manual part 8.11 for more)

3.6 Set GameMode with PlayerController 


Since we made a new Player Controller BP_FirstPersonPC, we want it to be in charge of
controlling our character. The first person template project uses its own gamemode, and
needs to be updated to use our Player Controller. Open up “FirstPersonGameMode”.

Set the Player Controller class to be BP_FirstPersonPC, when you start up the game now,
the player will be using this Player Controller, and possess the default pawn class

   

10
3.7 Add Action Manager 
With Quality Game Settings 1.5 release, a keybinding system was added. It requires a few
steps to get it up and running.

Open project settings again, and find input.


Add a new Axis Mapping, called “Update Keybinding”. Let the key be None..
(We don’t need other mappings, so they can be deleted)

Go back to your Player Controller blueprint (Not FirstPersonCharacter) and click “Add
Component”. Search for action manager and add it to the components list.

Drag the action manager component into the event graph.

Search for nodes “InputAxis Update Keybinding” and “Tick Action Manager”. Connect them
together. This will update action manager at the same time as unreals own keybinding
system. (This makes input more responsive than any other Event tick groups).

11
Create an “Any Key” node. Make sure it executes when paused, and does not consume
input.
(If you forget to set it to execute when paused, system cannot remap keys if game is
paused.)

Connect “Any Key Press” from action manager to the “Any Key” node.
(This setup registers new keybindings if player is remapping keys).

Now right click BP_ActionManager in component lists and begin to add relevant events. We
don’t have “Fire Gun” action event yet. It will be created when we modify action manager.

12
Begin with adding camera control. Since we are making a blueprint in a “Player Controller”,
we need to get the pawn our controller has possessed. We want the character, but since a
character blueprint is subclass of pawn, we use “Get Controlled Pawn”. Connect “LookUp”
and “LookRight” events to “Add Controller Pitch Input” and “Add Controller Yaw Input”

To properly use “Add Movement Input”, we also get actor forward and right vector to move in
the direction our character is facing.

13
A pawn don’t have the function “Jump”, but since we will be using a character, we can cast
our pawn into a character to access the jump function.

This is it for basic movement, we will add a way to fire gun later.

3.8 Add menu to viewport 


Search for “Create Widget” and set the node class to “WB_ClassicSettingsMain”.

Connect it to the “Event BeginPlay” sequence, after adding camera modifier. Promote the
widget return value into “Settings Menu” so we have a reference.
(Here you can set game to pause when setting menu is open)

14
Add the settings menu to viewport. If you have a custom HUD, make sure the ZOrder
between them is correct, the widget with the highest ZOrder will be on top of a lower one.

By default, the menu is not visible until we open it.


Add the event “MenuPressed” from ActionManager.

On “MenuPressed”, we want the menu open if it’s closed, and close it if it’s open. Use a
branch node and check with our settings menu reference “Is Menu Open” to toggle menu.

You can now Play Game and see if Action Manager works, and menu opens with E key.

3.9 Add new Keybinding “Fire Gun” 


Open up DT_InputActionList in folder QualityMenu/Blueprints.

15
In the data table, press the + button to add a new row.

Give the action a name for firing a gun, like PewPew.

Give PewPew a category name to be displayed in menu.


Press the + symbol to add a new Mapping.

Name mapping Fire Gun.


Scale is important if you want one mapping in action to be negative.
(I.e. Forward has scale 1, but Backwards have scale -1 to reverse direction)

16
Expand Combinations elements and set primary input to “Left Mouse Button”, and secondary
input to “Right Trigger on Gamepad”.

(UseNegativeAxis is relevant if we want to use the negative values of an axis for input. For
example: “Mouse Y” value can be positive or negative when mouse moves up or down.)

You can move the PewPew action up the rows. This affects the order it is displayed in menu.

The new keybinding will now show up in menu with the Category displayed above.

Now it’s time to add the fire gun event dispatcher to Action Manager.
Open up BP_ActionManager blueprint by double clicking it.
(Advice: Modifying BP_ActionManager has a risk of confusing editor unless compiled
before save. Press compile and save action manager before playing to avoid errors)

17
Inside the action manager, you see all the other actions set up. Get the new PewPew action
and promote it to a variable.

Add a new event dispatcher called firepressed.

Use the “Action State” macro to check on our PewPew action and call FirePressed event
when PewPew “Was Pressed”.

Compile and save BP_ActionManager. (Unreal can sometimes be a bit confused after
changing event dispatchers in action manager, so compile and save)

Open up our player controller BP_FirstPersonCharacter and add the new FirePressed event
from action manager.

18
This time we cast the controlled pawn into our “FirstPersonCharacter”, since it is the
character that will fire the gun. But our character does not have an event to fire the gun yet,
so we have to make one.

Open up “FirstPersonCharacter” blueprint. We removed most of the nodes in part 3.3 of the
manual, but we kept the gun fire part to be reused. Delete the old InputAction Fire and
InputTouch.

Create a new Custom Event and name it “Fire Gun”

Connect it to Montage Play to reuse the blueprint sequence. Compile and save blueprint.

19
Now we can go back to BP_FirstPersonPC and call our new “Fire Gun” event.
Compile and save Player Controller to avoid issues after modifying action manager.

3.10 Add volume control 


Shooting the gun plays a fire sound. Find the audio file inside content browser.

Open it up and set its sound Class to SC_Effect. That is it, menu can now control the audio
file. See part 4 of manual for more information on sound classes.

3.11 Add DefaultGameUserSettings.ini 


Default settings configurations are now set in both GameSettings blueprint and
DefaultGameUserSettings.ini. For more details to set your own default settings values, see
manual part 7.5 and 9.1.

Navigate to your project's config folder and create a new file DefaultGameUserSettings.ini

20
Copy paste these settings into the new .ini file

[ScalabilityGroups]
sg.ResolutionQuality=100.000000
sg.AntiAliasingQuality=2
sg.ShadowQuality=2
sg.PostProcessQuality=2
sg.TextureQuality=2
sg.EffectsQuality=2
sg.FoliageQuality=2

[/Script/Engine.GameUserSettings]
bUseVSync=False
WindowPosX=-1
WindowPosY=-1
bUseDesktopResolutionForFullscreen=False
FullscreenMode=1 ; Fullscreen=0, Windowed Fullscreen=1, Windowed = 2
LastConfirmedFullscreenMode=1
PreferredFullscreenMode=1
Version=5
AudioQualityLevel=0
FrameRateLimit=0.000000
DesiredScreenWidth=1920
DesiredScreenHeight=1080
LastRecommendedScreenWidth=0.000000
LastRecommendedScreenHeight=0.000000
; ResolutionSizeX=1920 ; Disabled so engine uses default resolution
; ResolutionSizeY=1080 ; Disabled so engine uses default resolution

You will notice these settings does not affect your game when you play in editor, but it will
work when you package it as development build or shipping build.

Gratulation, settings menu has been added to the FirstPerson blueprint project.

21
3.12 Add Network Support 
If your game does not use network, you can skip this part.

You can use BP_PlayerControllerWithSettings as a reference when adding online support,


but be aware that there are far more pitfalls you can stumble over with a network game.

I recommend reading this excellent tutorial by eXi to see how Unreal manages network.
http://cedric-neukirchen.net/2017/02/14/multiplayer-network-compendium/

The following simply gloss over why nodes are added to make it work over network without
throwing errors. If you are serious in making a network game (​It is difficult!​), I presume you
have worked enough with blueprint to follow along the next steps.

When playing over network, a client only knows about it’s own playercontroller and has no
information about other clients playercontrollers. Only the server has a list of all player
controllers.

In BP_FirstPersonPC, a Branch is added right after “Event BeginPlay” that evaluates if it’s a
Local Player Controller. Player Controller in Event BeginPlay runs once on client and multiple
times on server on every Player Controller connected. We only want to add menu widget on
a client so Server does not attempt to make the widgets. Server does not need to spawn
widgets, and a dedicated server can’t spawn widgets anyway.

Now we need to check if our Player Controller is controlling a pawn. When a client joins a
server, it takes a moment for the server give client a pawn to possess. During that time, the
action manager will attempts to update movement on a character, but since no
character/pawn is given yet, an error message is throw. A macro is made to validate if we
have a pawn.

22
Add this macro after every event dispatcher that sends input to the pawn/character. Do this
with MoveForward, MoveRight, LookUp, LookRight, JumpPressed, FirePressed. You don’t
have to add it after “Menu Pressed” since the widget is made as a part of player controller.

To fire a gun, we have to tell the server that the client fired the gun. Make an event “Server
Fire Gun” that replicates to “Run On Server”, it takes an input Location and Rotation that will
spawn a bullet at that position. This is ​really bad​ since a player can now ​cheat​ and spawn
bullets anywhere in map. It is only used as an example to keep this manual simple.

Create another event “Gun Was Fired” that multicasts that a player has fired a gun. The
server calls this to notify clients and make them play animation and sound.

23
This is the full overview, where client tells server that it fired a gun from a location/rotation,
the server spawns a bullet projectile, and then tells all connected clients that player has fired
a gun so they see the animation and hear the sound.

The bullet projectile itself does spawn on server, but it is not replicated to other actors. Open
up “FirstPerson​Projectile​” for the bullet blueprint and find “Class Defaults”.

24
Tick off the box that makes sure actor “Replicates”

You can now launch game in multiplayer without error messages. Again, be aware that this
was only to “Make it work” and it does not take into consideration cheat protection, client
replication, latency reduction and so on. I kindly ask you to not send me questions related to
networking or network errors. Only do so if you are very sure the problem is in the settings
menu, and not your blueprints.

I wish I could say good luck with your network game, but what you will need is a good bunch
of hard work, lots of reading, trial and error, and understanding. Godspeed.

25
4 Add sound classes to audio assets 
A new node was added in 4.12, allowing volume control of sound classes.
Quality Game Settings 1.6 now uses this method of controlling volume instead.
The old system is still included under “QualityMenu/Bluprints/Util/OldAudioSystem”, but it will
be removed in a future release.

6 sound classes are included with the project.


SC_Music Prominent game music

SC_Voice Spoken words, radio with clear audio.

SC_Effect Shots, enemy pain, bonfire, audio character can move away from

SC_Ambient Wind blowing, birds singing, audio character ​can’t​ move away from

SC_UserInterface Button clicks, menu open/transitions

SC_Master Master Volume affects the other sound channels, an audio should
not be controlled by master, but by one of the other sound classes.

Inside the folder “QualityMenu/SoundClasses”, the sound classes and their corresponding
sound mix are included. It is suggested that you use them as a base for your sound system.

26
If you double click a sound wave in content browser, you can select what sound class will
apply to it. You can also set the sound class on a Sound Cue, or override an audio
component.

By default the sound class says “Master”, this is a soundclass included with engine and is
different from SC_Master included with settings project. As a precaution, the settings does
does update volume of both “Master” and “SC_Master” volume, but you should assign your
audio files to a one of the sub categories explained above. If you feel an audio group does
not fit any of the other subclasses, you should make a new one for it.

4.1 Add sound class to multiple audio assets 


If you have a folder with a large number of audio assets, you can use Property Matrix to
apply sound class. Select your audio assets, then go to Asset Actions ->Bulk Edit via
Property matrix

Press CTRL-A to select all items in property matrix.

27
Then select the sound class you want to apply in content browser, find “Sound Class” edit
field in property matrix and press arrow button to use the selected asset from content
browser.

28
5 How to add a new custom setting 
A Game Tab is included with the menu. It comes with example components you can build
upon to add your own settings.

In this example, we will add our own custom option to see if player can fall off ledges.

5.1 Add Variable to GameSettings 


First we need to store our variable inside GameSettings save class.
Open up BP_GameSettings in folder QualityMenu/Blueprints

In BP_GameSettings, create a new variable “CanWalkOffLedges”.

29
In the function list, find the example “My Custom Checkbox” and duplicate the three functions
inside it.

Rename them:
Modify Can Walk Off Ledges
Set Can Walk Off Ledges
Get Can Walk Off Ledges

Open “Modify Can Walk Off Ledges” function. Right Click “Get Class Default” and select
Refresh Nodes” to display the new variable.

30
Replace all references to “My Custom Checkbox” with “Can Walk Off Ledges” variable.

(OOPS: I have been notified of a bug with event dispatchers in unreal 4.14,
Dispatchers can now cause crashes when used with Save Game, See ​Part 5.4​ of
manual for more)
Create a new Event Dispatcher in GameSettings

Call the dispatcher when walk off ledges setting is applied.

31
Open function “Set Can Walk Off Ledges”. Replace the variable, the modify function, and
getter result with the relevant “Can Walk Off Ledges” instead of “My Custom Checkbox”.

Open function “Get Can Walk Off Ledges” and replace variable here too.

Find function “Modify All MyCustom Settings”

32
Add “Modify Can Walk Off Ledges” to sequence inside function “Modify All MyCustom
Settings” and connect “Modify” input.

Gamesettings now has a variable that will be saved on disk, applied through event
dispatcher, and revert to a previously stored value if player press cancel on menu.

5.2 Add UMG elements 


Let’s add the visual parts of “Can Walk Off Ledges”
Open up “WB_ClassicSettingsGame” to see the UMG designer.

Begin by selecting the checkbox icon.

You see the checkbox is selected in hierarchy, but we want to copy the entire settings row.

33
Find the horizontal box containing the row, and right click to copy it.

Go to the vertical box at the top of the hierarchy, and paste the row there.

The new row shows up at the bottom of the list,

Select horizontalbox and use the arrows to move row to top.

Select the text “My CheckBox” and change text to “Can Walk Off Ledges”.

34
Select the checkbox and give it a better name: “CheckBoxWalkOffLedge”.

Change the Tool Tip Text of the checkbox too.

Click on graph to show blueprint nodes.

Duplicate Refresh Checkbox Function

Rename the duplicate “Refresh Can Walk Off Ledges”

35
In the new function, replace “My Check Box” with “Check Box Walk Off Ledge”

In the event graph, add “Refresh Can Walk Off Ledges” at the end of “Refresh My Custom
Settings”. Also connect “Get Can Walk Off Ledges” from Game Settings

36
Add event “On Check State Changed” from CheckBoxWalkOffLedge

From the event, set the checked value in “Set Can Walk Off Ledges” from GameSettings.
Call “Refresh Can Walk Off Ledges” with the final value.

As a final touch here, add the new checkbox to the array in event graph. It keeps the tooltip
design consistent among UMG components.

Compile and save BP_GameSettings and WB_ClassicSettingsGame.

Open up BP_FirstPersonPC (Or your own Player Controller) for the last steps.

37
5.3 Update and Apply BP_FirstPersonBP pawn values 
At the end of Event Begin Play sequence. We are going to assign an event to the dispatcher
we made in BP_GameSettings.

(OOPS: I have been notified of a bug with event dispatchers in unreal 4.14,
Dispatchers can now cause crashes when used with Save Game, See ​Part 5.4​ of
manual for more)
From the new event that we now bind to, we get our controlled pawn and cast it to character.
From the character, we get the “Character Movement” component, that has the option to stop
a player from walking off ledges. Retrieve value “Can Walk Off Ledges” from game settings
and update the value. The value is also updated as a part of “BeginPlay” so it updates it state
at least once instead of waiting for player to interact with setting option.

38
Move the player character to an area with a ledge. When you play the game now, you will
stop at the edge, unless you jump over. Open menu, select Game Tab, tick of your new box,
press OK, and you can slide right over the ledge.

Great! You have now added a custom variable that will be saved in settings file, it can be
modified from menu and it will notify character when changed.

If you are running a network game, you have to update “Can Walk Off Ledges” on the server
instance of character for it to work. Create a new event that executes on server and send
users preferred setting.

39
5.4 Workaround Event Dispatcher 
Unreal Engine 4.14 has a bug with event dispatchers inside a save game blueprint.
https://issues.unrealengine.com/issue/UE-40448

As a workaround, we will have to create another blueprint variable inside


WB_ClassicSettingsGameSave to dispatch events for us.

Create a new Blueprint, and make it an Object Blueprint. (Expand “All Classes” to find it)

Name the new blueprint BP_EventDispatcherWorkaround. Create a new event dispatcher


inside it called “Workaround Update Can Walk Off Ledges.

That is all we need to have inside workaround blueprint.

40
Go back to BP_GameSettings and make BP_EventDispatcherWorkaround a new variable.

Then construct (create the blueprint) on method Util -> Manage -> Init Save Game Settings.

You can now call and bind to event dispatcher inside BP_EventDispatcher

41
To bind events, grab variable “Event Dispatcher Workaround” from GameSettings

Multiple Events can be added to BP_EventDispatcherWorkaround if needed.

Please vote on the issue so we hopefully don’t have to do this workaround in the future.
https://issues.unrealengine.com/issue/UE-40448

(PS: Don’t forget to actually “Apply” when clicking on your settings button to call event)

42
6 Custom Game Instance 
If you are already using your own game instance, you need to add modifications to it to
support settings menu. Open up you blueprint instance class and click on class settings.

In the details tab, add the BPI_GameSettingsInterface

Create a variable “Game Settings Wrapper” of class Game Settings Wrapper and return it in
interface function “Get Settings Instance”

Add an execute console command in the interface function “Run Console Command”.

In Update Audio Channel, add node “Apply Audio Channel”.

Then, in the event graph, make node “Event Init” and call “Init Game Settings” in it, save the
output in the “Game Settings Wrapper object we made.

You can now continue using your own game instance.


(The game settings wrapper blueprint contains game settings and is used to circumvent an
editor bug that caused assets to resave in editor)

43
7 Customize Menu 
Game tab includes example buttons and slider you can use to customize your game.
You can read more about Unreal 4 User Interface system ​on their documentation pages​.

7.1 Hide Games Tab or other settings 


In case you have no need for your own game tab, you can hide it.
Open up “ClassicSettingsMenuMain” blueprint inside the hud folder.

This shows the UMG designer window.

Select the Game tab and then click “GameTabSizeBox” in the Hierarchy.

With “GameTabSizeBox”, look at the details tab on the right side.


Find the visibility dropbox and set it to be “Collapsed”.

When you run the game, the Game tab will no longer be displayed.

44
7.2 Reorder Game Tab 
If you have created many options in the custom game tab, you might want to have it at top
and be displayed by default.
Open up “WB_SettingsMenuMain” blueprint and select “GameTabSizeBox” that the game
tab is contained inside. Use the up and down arrows that shows up on the component. Move
it to the top.

Move the spacers too so it looks good.

Open the event graph and find default tab to display, change target of “Set Checked State”
into “Tab Game Settings”, and “Set Active Widget Index” to 4

Game tab is now shown at top and enabled by default when menu is opened for the first
time.

   

45
7.3 Change Color 
You can change the color on most components.
Find the object you want to adjust and change the tint.

The tint value might be in different places depending on component. Button tints are are
under styles and have a different tint for all states. (Normal, pressed, hovered and disabled.)

7.4 Change Textures 


When you migrated project, only the .uassets files was migrated. The source image files for
UI are still left in the in QualityGameSettings example project. Find that project and navigate
to Content\QualityMenu\Textures folder. Select all images and copy them to the same
location in your own project.

Unreal the connects the .uassets files with the original textures by itself. You are now free to
edit the textures. Unreal will detect changes on your source files and update them.

46
7.5 Change Default Values 
You can find most settings on class default inside the GameSettings blueprint. Select Class
Default Button and configure out the list in details panel.

As a shortcut, you can delete the .sav file generated by GameSettings in Dev Tab to see
changes in default values.

Some values are configured DefaultGameUserSettings.ini (See manual 3.11 on how to add
it)
Those values are there to allow some user configurations when GameUserSettings.ini are
created. This is a work in progress, and more default settings will be moved to .ini files later.

For now, you can see manual part 9.1 for supported configurations.
0 = Low, 1 = Medium, 2 = High, 3 = Epic

You can’t see changes in DefaultGameUserSettings.ini when you run game in editor, but it
will work on packaged games.

7.6 Change Default Keybindings 


Open up DT_InputActionList in “QualityMenu/Blueprint” folder

Select action row containing the mapping and replace default inputs in combination.
Be aware that if you saved your game, it will have stored an input in saved file that will be
loaded when you play your game. So press play and open up “Dev” tab in settings menu to
delete settings save file.

47
7.7 Change Look of Buttons and Components 
Select a component and modify its appearance in the details tab.

With some widgets, the visual design is hidden behind in a image component, instead of a
part of the button/text edit component. See the hierarchy and modify the image inside the
overlay component.

To modify multiple widgets at the same time, you can sometimes select multiple components
at once in the hierarchy by ctrl clicking. Most common options are now shared in the details
tab, and you can modify all selected at once.

48
7.8 Implement settings in a main menu 
A barebones example main menu is provided in folder “QualityMenu\HUD_UMG_Classic\
BarebonesMainMenu”. It contains 3 blueprints:

Main menu with settings options:


● Uses sub components of settings menu you can show and hide.
Example player controller:
● Player controller that creates menu and contains the action manager for remapping.
Example main menu Game Mode:
● Game mode to use example player controller. Set game mode to this in your Main
Menu level “World Settings”
And a empty map set to use game mode.

So the GameMode creates the player controller, and the player controller creates the menu
widget.

To set up this main menu, create a new empty black level, Open level world settings in
“Window” -> “World Settings”, set its game mode to “ExampleMainMenuGameMode”, and
press play.

Take care to manage “Set Input Mode xxxx” properly when you leave main menu. If not, you
may be unable to move character since player is still in input mode UI only.

Networking in barebones menu is only connect to ip and does not attempt to be any lobby
system, make sure port 7777 is open to use it.

49
7.9 Reorder Keybinding List 

Keybinding list that shows up in menu is first ordered by rows in data table, then by
keymappings inside a data table row. You can reorder rows by using the arrows on the top
right of data table, but you manually have to copy/paste elements inside KeyMappings to
reorder them.

7.10 Add new console command settings 


Unreal includes a long list of console commands to modify parts of engine. You can use
“dumpconsolecommands” in output log to list most of actions accessible.

You can find output log in menu Window -> Developer Tools -> Output Log

Right click and select clear log to empty current list

50
Then run “dumpconsolecommands” to get current list of options available.

Then search for possible commands

You have to look it up on the internet to find more information on individual commands, but
documentation can sometimes be a bit sparse. Testing out out in your game in combination
with fps/profiler might give you more information.

The following is less of a tutorial, but shows off how I would learn about commands and how
they would impact the game.

Typing out the command alone gives you its current value.

So in the example r.volumetricFog, you can turn it on/off with


“r.volumetricFog 1” and “r.volumetricFog 0”

Other settings have an integer number, like r.VolumetricFog.GridSizeZ


It does not say what range it is in, so this needs to be tested out manually.

51
r.VolumetricFog.DepthDistributionScale can have a float number as input. The decimal
number is usually a good sign that you can have a decimal input on the console command.

To see what settings is best for your game, you have to run your game, apply different
commands, and see what looks good for your game, and where you can save frames without
losing too much fidelity on lower end systems. Use ​profiler​ and ​“stat fps”​ command to help
you.

BP_GameSetting includes a few macros to help you set up a console command with game
settings. Modify Integer/Float/Bool Settings sets and updates console commands.

Section 5 of manual describes how you add new settings to menu. The steps should be very
similar when you modify console commands. In the modify function for your new setting, add
the macro and connect the relevant console command with the current variable, default value
and the revert value (In case player press cancel in menu).

52
Sometimes you have to be careful in what order settings are applied in.
The existing settings like shadow quality/post processing quality/effect quality/anti aliasing
quality is running its own console commands that can override your new commands.
The order of execution depends where you added your “Modify XXX” node in
BP_GameSettings -> Modify All Video Settings.

You can see the default configurations for standard scalability settings in your engine
installation path folder.
(Default path: C:\Program Files\Epic Games\UE_4.XX\Engine\Config\BaseScalability.ini)

Here we can see that the shadow scalability settings indeed does affect volumetric settings.
It is off in low/med, but enabled in high/epic
[ShadowQuality@2]
r.VolumetricFog=1
r.VolumetricFog.GridPixelSize=16
r.VolumetricFog.GridSizeZ=64

These are some gotchas that can show up. It’s a new feature in 4.16, so the online scalability
documentation had not been updated with this information yet.

We can still customize these default settings by creating a new DefaultScalability.ini file in
our projects config folder. See “Customizing Scalability Settings” section of unreal
documentation.

53
https://docs.unrealengine.com/latest/INT/Engine/Performance/Scalability/ScalabilityReferenc
e/

Sometimes a combination of both can be useful, for example, adding a new setting to turn
on/off volumetric, but keep details such as r.VolumetricFog.GridPixelSize,
r.VolumetricFog.GridSizeZ and r.VolumetricFog.DepthDistributionScale as a part of
DefaultScalability.ini file, so it can be controlled by shadow settings.

54
8 Problem solving 
8.1 Settings not applied on game start 
Game settings are applied when Settings Menu Main is created.

If your game starts up without creating a settings menu, you can apply video settings in one
of your opening blueprints.

Apply game settings can not be not be run from Game Instance class. Console commands
are not executed properly during “Event Init” sequence.

Some settings might be disabled by graphics driver, please check your Nvida or AMD
settings and see if some features are disabled there.

8.2 Screen Capture 2D actor bug 


If you have enabled borderless fullscreen, a “Screen Capture 2D” camera only capture a
small part of its intended image. It works fine in windowed and fullscreen mode, so it’s a real
gotcha bug as of Unreal 4.7.
The solution was to select camera and change “Capture source” into Final Color.

55
8.3 Why is it hexadecimal numbers on AudioUpdateStruct node? 
I dont know… it keeps on coming back. You can right click and refresh nodes to make it look
pretty again, but it will return. (4.8 had this issue, it is fixed in 4.9)

Ignore it, it works.

8.4 UMG/Widget components volume control 


Since unreal 4.12, you can now set volume directly on sound classes. See part 4 of manual
for more info.

8.5 Virtual Reality support? 


I do not own a VR headset so I cannot test how it UMG widgets works with it.

   

56
8.6 Dual monitors 
For your game to be displayed across multiple monitors, you need to enable nvidia surround
and have the game in fullscreen. (Borderless fullscreen does not work) I have not tested the
menu on AMD graphics card, I assume AMD eyefinity would work.

Menu can be grabbed and moved in case it’s in the middle of a bezel.

If you want to select what fullscreen you want your game in, drag the game window into your
preferred monitor in window mode and then set it to fullscreen. It should now be on the
correct display.

8.7 Packaged game crashes/Settings are not applied correctly 


I have experienced that if you package the game into the same location as a previous
packaged game, the old save file might cause crash at program start.

This could happen when a save file is used on a different build. Delete the savefile in
\Saved\SaveGames and rerun/repackage the game.

If it’s a shipping build, delete the save file inside your appdata.
C:\Users\UserName\AppData\Local\MyGame\Saved\SaveGames\SettingsSaveFile.sav

8.8 Delete ExampleRoom folder crashes unreal 


You don’t need ExampleRoom folder to use Quality Menu. Unreal might crash when deleting
lots of assets from editor. If you experience crashes during removal of ExampleRoom folder,
you can close editor and use the OS file browser to delete folder ExampleRoom.

8.9 Where is the save file stored?  


In a development build, the save file is in the same folder as your packaged game
//MyProject\Saved\SaveGames is the default location of Unreal 4 .sav files.
In a shipping build on windows it will be in your appdata.
C:\Users\UserName\AppData\Local\MyProject\Saved\SaveGames\GameSettingsSave.sav
On mac it’s stored in
~/Library/Application Support/MyProject/SaveGames\GameSettingsSave.sav

The name of the settings save file is made when calling “Init Game Settings” in game
instance

57
58
8.10 Issues on Mac/OSX 
I have not been able to test the menu myself on a mac. I have received feedback that it
works fine, except for fullscreen mode. (I do not know if this has been fixed in the latest
unreal build)

There is issues with a black bar appearing, and offset mouse coordinates on click.
Borderless fullscreen and windowed mode works fine.

Current workaround is to disable the fullscreen option, and only keep borderless fullscreen
and windowed mode. Open up ClassicSettingsMenuVideoConfig and find the sizebox that
contains RadioBox Fullscreen. Set its visibility to collapsed to hide it. Rename Fullscreen
Borderless into Fullscreen if you so prefer.

   

59
8.11 Brightness(Gain)/Gamma/Bloom/Field Of view does not work 
You need to add a camera manager, see part 3.5 of this manual.

When you have added a camera manager, a PostProcessVolume in world can no longer
modify Color Grading Gamma/Gain, or bloom intensity. The Camera Manager overrides it.

To customize these values, you add and combine it in BP_SettingsCameraModifier.

If you want to then change these values on the fly. (Ex a flashbang), you set the values
directly on the camera modifier created for player controller.

   

60
8.12 Editor Crashes when pressing play 
In 4.10, the editor can crash on play after compiling the GameSettings blueprint. This is bug
related to GameInstanceWithSettings not notified by the changed blueprint. If you need to
modify GameSettings, run game as a standalone inside editor.

After you are done modifying GameSettings, save and restart project so you can play the
game in your preferred mode.

Other instances of crashes can often be fixed if modified blueprints are compiled and saved
before pressing play. (Especially character blueprint and action manager)

8.13 Particles stops working when changing quality level (Detail Mode) 
There is a bug in the engine where detail mode does not resume play if effect quality is set
down and up again. This only happens when the particle detail mode is modified from default
value. This is fixed in 4.12
See bug report:
https://answers.unrealengine.com/questions/404170/particle-system-lod-does-not-resume-e
mitting-when.html

8.14 How to play sound when game is paused 


You might want to play music or ambient sound when game is paused.
Select your audio emittor and enable “Is UISound”.

8.15 Black Screen when changing view distance. 


It was reported that a black screen happens on some computers when view distance is
different then “1”. I do not have a computer where this is triggered, so I cannot find a solution

61
to this issue. To alleviate this problem, view distance is forced to be 1 by default. Any help for
this will be appreciated.
 

8.16 Unable to remap keys in game. 


Double check that the any key node in your character executes when paused, if your game is
paused.

If you only get “Any Key” as an input. You forgot to connect the “Any Key Press” node
properly.

8.17 Dev tab does not hide itself when game is packaged.  
Please see that the build configuration is set to Shipping and not Development

   

62
8.18 Unable to click or interact with settings/HUD is overlapping settings   
You might have your own custom HUD components conflicting with menu. Make sure you
have set the ZOrder priority correct when adding widgets to viewport. Higher ZOrder takes
priority over lower.

8.19 Play in Editor (PIE) flickers/slowly expands 


In 4.12 a new issue appeared where the game window in editor sometimes starts to flicker if
resolution is changed. This does not affect a packaged project, only the editor.

Until I have found a solution, a workaround can be done by opening up Editor Preference
and Play menu.

Find play in new window and take note of resolution (Or set your own)

The start the game, set settings resolution to same values in windowed mode. Press OK to
save values. You should now be able to playtest in PIE without flickering.

If you need to temporary see how your game behaves in different resolutions and screen
modes, you can start a Standalone Game instead.

63
8.20 Multiple Assets requires re-save on play/Editor slow to start game 
This problem was fixed in release 1.5.3, but it could show up again if you modify the settings
system. Macro libraries in Unreal can sometimes cause compiler problems with different
outcomes. If you suspect the settings system to be the culprit, you could replace any
references to “GameSettingsInterface” with a direct reference to your game instance.

See this post for more details on how to remove “GameSettingsInterface”


https://forums.unrealengine.com/showthread.php?67933-Quality-Game-Settings-Menu-a-goo
d-looking-UI-ready-for-use&p=560066&viewfull=1#post560066

8.21 Can’t rebind keys if game is paused 


Please make sure “Execute when Paused” is enabled in any key press. Select your event
node and its options appears in detail tab

8.22 Can’t save blueprint 


After modifying BP_ActionManager, an error message sometimes show up on save.

I do not know if the error is in my design, or an engine bug, but for now press x twice to close
error message, and open up your conflicting blueprint. Now press compile first, and then you
are allowed to save and run the game just fine. If you can’t compile first, make a small
change in blueprints to make it “dirty”. (I.e. Disconnect and reconnect a node)

64
8.23 Custom list of video resolution 
Resolutions are generated from what system supports. To make your own list, open up
WB_ClassingSettingsVideo, and disconnect node “Get Supported Resolutions”. Then select
variable “Video Resolutions” and modify the array of default values.

8.23 Foliage density is not working. 


Please make sure foliage has "Enable Density Scaling" activated. Foliage Density is only for
foliage without collision.
See Foliage Scalability in ​https://docs.unrealengine.com/latest/INT/Engine/Foliage/index.html
for more details. (4.18.0 has a bug where it crashes game/editor, 4.18.1 fixes this)

8.24 Nativizing Blueprints not compiling. 


Nativizer works of 4.15, earlier versions of unreal does not not nativize project due to
unknown reasons. You need Visual Studio installed to nativize assets.
Update: Nativizer no longer works with 4.17, 4.18. I am unable to fix this without remaking
menuu

65
8.25 Forward shading rendering 
Settings menu 1.6 has currently not been tested with new forward rendering in release 4.14,
you are free to see what works and what needs to be fixed. I appreciate help if you find
something I need to fix with forward rendering. A later update will be properly tested with
forward rendering.

8.26 Fullscreen in editor behaves oddly 


When testing out settings menu in editor and running game in fullscreen, some artifacts may
appear. This happens since game can’t truly go into fullscreen when running from editor
process.

Fullscreen will work when either when project is packaged, or play the game as standalone.

Other alternatives are running the game in windowed fullscreen, or press f10 for built in
editor fullscreen if game is running in editor viewport.

8.27 Menu shifts/shears/moves when clicking tabs 


On clicking tabs, the menu plays a small shear animation as feedback that state has
changed.
It can be disabled in WB_ClassicSettingsMain on the events that switches tab.

66
8.28 Third person movement not working as expected 
When the camera is behind the player, a slight change in node setup is required. In the
default third person blueprint project, you can reuse “Get Control Rotation” and its
forward/right vector as the world direction for “Add Movement Input”

67
9 Other Features 
9.1 GameUserSettings ini file 
Some support has been added for reading GameUserSetting.ini file
Supported:
sg.ResolutionQuality
sg.AntiAliasingQuality
sg.ShadowQuality
sg.PostProcessQuality
sg.TextureQuality
sg.EffectsQuality
sg.FoliageQuality
sg.FoliageQuality
bUseVSync
ResolutionSizeX
ResolutionSizeY
FullscreenMode (4.13 only)

Not supported:
sg.ViewDistanceQuality
LastUserConfirmedResolutionSizeX
LastUserConfirmedResolutionSizeY
WindowPosX
WindowPosY
bUseDesktopResolutionForFullscreen
Version
AudioQualityLevel
FrameRateLimit
LastConfirmedFullscreenMode,
FrameRateLimit
DesiredScreenWidth
DesiredScreenHeight

68
9.2 Development options 
Included with menu is a tab for development options, it runs some console command that
can help you during development. View Modes are only accessible when testing the game in
editor and does not work in a packaged Development build.

Dev tab is hidden when exported for shipping so it is not displayed in your final game.

69
9.3 Find and Display Keybinding 
To get display name from a keybinding, use “Get Keycombination” and then “Get Key
Combination Display Name” to generate string with keybinding.

Separator is used when more then one key is required to activate. Like "L-Ctrl + A"
“No Key Display" is the output if no key has been set to binding.
Display type is the formatting of display name
● Short Ascii replaces some unnecessary long names like "Gamepad Left Thumbstick
Right" into "L-Stick Right"
● Short unicode shrinks it even more by replacing Up/Down/Left/Right/Top/Bottom into
▲▼◀▲, but this is not supported by default textRenderActor (text in 3d space)
● Raw Ascii does not change anything and return full keybinding "Gamepad Left
Thumbstick Right"

It is also possible to be notified when keybinding changes so text fields can be updated.
Assign “Combination updated” to an event.

70
9.4 Optimization 
Quality Game Settings attempts to have very little overhead, but as a blueprint only project,
there is no way around using some resources to run a keybinding system.

When using “Action State” inside BP_ActionManager, it checks every frame of binded keys
for that action and analyse if they are pressed/released, and combine mappings for final
value.

For every Action State used, a little more performance is required. A couple of them is fine,
but if you start adding multiple keybinding for walking/driving/plane, it is recommended you
disable non relevant “Action State’s” in different modes, so they don’t add unnecessary
overhead.

You can nativize blueprints in UE 4.15, this gives a significant boost to the keybinding
system.

9.5 Fine Tune Quality Levels 


Unreal engine comes with a default setup for different quality levels. The settings menu uses
default values, but It is possible to override what quality levels “Low/Med/High/Epic” affects.

Creating a “DefaultScalability.ini” configuration file lets you fine tune the quality levels.
See epics own documentation for more details:
https://docs.unrealengine.com/latest/INT/Engine/Performance/Scalability/ScalabilityReferenc
e/#customizingscalabilitysettings

Custom options in configuration may require a packaged game to see results.

9.6 Access input in other blueprints. 


Retrieve action manager inside your controller, and assign you event to dispatchers.

71
72
10 Version Changelog 

Quality Game Settings 1.0 (Unreal ​4.7 and 4.8​)


● Initial release on marketplace

Quality Game Settings 1.1 (Unreal ​4.9 and 4.10​)


● Added support for 4.9 and 4.10
○ (Dropped support for 4.7 and 4.8 due to new blueprint nodes)
● Added Bloom Setting
● Added Gamma Setting
● Added Gain (Brightness) Setting
● Added GlobalPostProcess actor to control bloom/gamma/gain.
○ This needs to be included in all maps (See step 3.8 in manual)
● Added V-Sync Setting
● Fixed tooltips being too small
● Fixed small font bug
● Fixed bug where a short freeze happen when applying settings first time
● Used new node to read supported screen resolutions
● Renamed default theme to HUD_UMG_Classic to prepare for future themes
● Minor changes in blueprints

Quality Game Settings 1.5 (Unreal ​4.11 and 4.12​)


● Added keybinding system
○ Supports key combinations
○ Auto generate keybinding menu from data table
○ Display key conflicts
● Added Action Manager Component
○ Event system to dispatch inputs to player controller or character.
● Added pause on game open option.
● Added Save on Apply option. (Does not revert if cancel is pressed)
● Rewritten Gamesettings
○ Variables in Gamesettings use getters/setters now
○ Improved UMG menu blueprints
○ Added combobox to resolution settings.
● Added development tab (Is hidden when packaged for shipping)
○ Menu where developers can add tools related to game development.
○ Includes time dillation. Speed up or slow down game time. (Can break your
game)
○ Pause game on menu open
○ Delete Settings file.

Quality Game Settings 1.5.1 (Unreal ​4.11 and 4.12​)


● Temporary patch to disable View distance, some computers have a black screen,
breaking the game. A later update will re-enable view distance.

73
Quality Game Settings 1.5.2 (Unreal ​4.11 and 4.12​)
● Re-enabled View Distance Scale. Problem is not solved fully, but the few computers
affected by black screen will not experience it on startup, only when changing View
Distance.
● Added barebones Example Main Menu and Character Controller (See manual 7.8)
● Renamed Mouse tab to Camera. It is more correct since camera sensitivity can be
controlled by other input then mouse now.
● Set (some) variables to be read by ini file. (see step 9.1 in manual)
● Feedback said remapping progress bar was a bit slow. Increased its speed about
30%
● No longer needs to add “Make Key Input” on “Any Key Press” node
● The Global Post Process mesh cube and text is now destroyed when game start.
● UNOFFICIAL “LE Extended Standard Library” support. Added example to add sound
class volume control from a marketplace plugin. See step 4.2 in manual. (This is only
provided as a suggested improvement, and I can not help if you have problems
related to it)
https://www.unrealengine.com/marketplace/low-entry-extended-standard-library
● BUGFIX: If save on apply is disabled, keybinding no longer not revert on apply.
● BUGFIX: Keep mouse sensitivity consistent when fps changes.
● BUGFIX: Fix an error message wrongly report missing audio emittors.
● BUGFIX: Quality sliders position was offset when grabbed
● BUGFIX: Window mode did not have title/top bar ​Edit: Not fixed, got tricked by save
file

Quality Game Settings 1.5.3 (Unreal ​4.11 and 4.12​)


● BUGFIX: Editor no longer require multiple assets to resave when play is pressed.
Editor is responsive again.
● BUGFIX: Window mode did not have titlebar
● BUGFIX: Fixed an error messages trying to access an array out of bounds, when it
did not need to access it.
● Fullscreen windowed resolution is now set to monitor max resolution

Quality Game Settings 1.6 (Unreal ​4.12, 4.13, 4.14​)


BETA:​ Online multiplayer
● Settings menu now works in a network environment.
● Barebones menu now has a very simple host/join ip Buttons. It is not a
lobby system.
Simplified read input key
● “Get Key Combination” and “Get Keycombination Display Name” nodes
added, so you can make strings like "Press [Key] to jump"
New audio system
● Sound classes are now used instead of manually updating audio
components.
● Added a new sound channel for User Interface
User Interface
● Menu now plays sounds when interacted with.
Added more options to dev tab

74
● Dev tab has been expanded, and includes more options to analyze your
menu.
Renamed all Assets following a ​style guide​.
● Assets has been moved around and renamed. If you want to update to this
version, it is recommended that you remove old menu before re-installing it.
Added ​Foliage Density Option
● Please make sure foliage has "Enable Density Scaling" activated. Density is
only for foliage without collision.
Disabled Lightmass in demo room (No baked lightning)
● Removes half the size of qualitymenu project, you are free to bake lights on
your own maps.
Fixes
● Fixed mouse cursor symbol properly updating when grabbing menu bar.
● Fixed gray color when attempting to style some edit boxes

Quality Game Settings 1.6.1 (Unreal ​4.14, 4.15​)


Fixes
● Fixed UI Audio Slider not reverting when clicking cancel in menu.
● Fixed keybinding output text with Raw Ascii working with multiple keys
● Fixed combobox dropdown visuals to look hovered when mouse over text
● (4.15 only) Fixed bug stopping blueprint nativizing. Small test with nativizer
makes keybinding system go from 0.75ms to 0.15ms! ​(Nativzer no longer
works with 4.17, 4.18. Currently unable to fix it without a large rewrite)

11 Credits  
UI art menu sounds are modified from the ui pack inside Kenney Game Asset Pack
http://kenney.itch.io/kenney-donation
They are Creative Commons Zero, CC0 and can be used for everything.
I recommend buying that pack for us without an artistic touch.

Also thanks to Epic games for their Unreal Engine with example assets.

75

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy