Skip to content

Global Config & Styling System

This asset features a Global Config & Styling system to easily configure all the functionnal and visual settings of any system.

I will be refering to these systems many times across the documentation so please check out the following details to understand how they work and how to use them.

Global Config System

The Global Config Data Asset allow you to quickly change all the various settings required for the pack to work.
The default Config Data Asset used by the system (DA_EGUI_DemoGlobalConfig) can be found in the folder EasyGameUI/Core/GlobalConfig

I strongly recommend you to create a new config data asset or duplicate the demo config to set up your own config, check out the following dropdowns for more details

How to create a new Config Data Asset
  1. To create a new Config Data Asset, right Click anywhere inside the Content Browser window and search “Data Asset”

  2. In the window that appeared, search for GlobalConfig and select PDA_EGUI_GlobalConfigSystem

  3. Give this new asset a name and you now simply have to select this data asset to be used by the system (instructions just below)

How to select the data asset used by the system
  1. To change which data asset is used by the system, go into EasyGameUI/Core/GlobalConfig and open the blueprint BP_EGUI_GlobalConfigSelector

  2. In this blueprint, simply change the value of the Global Config Data Asset variable to be your newly created data asset

  3. Your new data asset is now fully ready to be used!

How to retrieve Global Config variables in any blueprint

You can retrieve any variable from the Global Config using the Get Global Config Data Asset function. This will return the config data asset object used by the system and give you access to any variables.

Warning

This object is intended for Read-Only access, do not attempt to modify the variables during gameplay as it will likely lead to unexpected results.


In the Config Data Asset, you can see many options to control the various aspects of the pack, they are split in several sections that I will detail just below.
Note that all settings might not be relevant as of right now since they may require additional setup, that will be described in following sections of the documentation.

Global Category

Global

  • Styling Data Asset

    The global styling data asset that will be applied to all widgets


  • Screenshots Capture Method

    Define which method should be used to capture screenshots (Photo Mode and save game thumbnails)

    In UE5.5 only, the Render Target method is required for shipping builds as the High Resolution Screenshot Capture has a bug in the engine preventing it from working properly. This does not affect any other version of UE5


  • Disable Initialization Messages?

    If True, all nominal initialization messages from the asset will be disabled (errors and warnings will still be displayed)

Inputs Category

Inputs

  • Gameplay Input Mapping Contexts

    All the Input Mapping Contexts that can be active during gameplay and removed by the UI system when needed.
    Optionally you can define a priority for the IMC and if Add Mapping Context on Game Load? is True, the system will take care of adding this specific IMC on load.

    In this array you should reference all IMCs that are expected to be used at some point during gameplay, even if they should not be added by default (with the boolean set to False).


  • Apply Default Input Config On Begin Play?

    If True, the defined Default Input Config will be applied on begin play.


  • Default Input Config

    Input config to apply by default when no widget in the system is able to provide a new input config.

    Optionally, this can also be enforced at begin play if Apply Default Input Config On Begin Play? is True


  • Hide Mouse Cursor When Using Keyboard?

    If True, the mouse cursor will be hidden when using the keyboard to navigate the UI system. By default, only using a Gamepad can hide the mouse cursor.

System Menus Category

System Menus

  • Play Intro Credits On Game Launch?

    If True, the system will load the Credits Context Intro Credits on game launch if it is defined in this config under Game Credits Contexts.
    This can allow to display intro credits such as company logos, warnings, etc.


  • Intro Screen Widget

    Widget shown right when the Main Menu level loads, if requested, it will be responsible for playing the intro credits and then display a "press any key" prompt. If this widget reference is empty, the system will skip to display the Main Menu directly.


  • Widget shown as Main Menu after the Intro Screen was closed (if defined)

    Note on switching system widget classes

    When switching widgets from the system, they should ideally be a child of the WBP_EasyMasterWidget unless you are certain of the modification you are doing. More details in the UI Navigation System section


  • Pause Menu Widget

    Widget shown when calling the "Open Pause Menu" function from the HUD


  • Reference of your main menu level, used for the "back to main menu" button and to quit the benchmark system/game credits. More details on how to setup the main menu are are given inside its dedicated section


  • New Game Level

    Reference of the level that will be loaded when clicking on the “new game” button from the main menu


  • Pause Game In Pause Menu?

    If True, the game will be paused when entering the Pause Menu
    If False, the game will be running at realtime while the Pause Menu is open


  • Display Game Version in Menus?

    Should the “Current Game Version” be displayed in menus such as the pause menu and main menu?

    This can be set to true even if save file versioning is disabled


  • Current Game Version

    Current version of the game, can be used to display on UIs or for savefile versioning

Options Menu Category

Options Menu

  • Options Menu Widget

    Widget shown when calling the "Open Options Menu" function from the HUD (used by default as the options menu in the Pause/Main Menu)


  • Settings List

    List of all settings managers that should be initialized at begin play and can be later used by the options menu or globally by any other system


  • Keybinding Mapping Contexts

    This variables defines the list of all the Input Mapping Contexts that will contain any rebindable inputs and you would like to be used in the Key Rebinding system. More details on how to setup these input mapping contexts are given in the section dedicated to the Options Menu.
    The text associated with each will be used as category name if grouping by Mapping Context


  • Keybinding Mappings Grouping Type

    Define how the keybindings will be groupped inside the options menu.

    • Group by Mapping Context Will group all the keybinds under a category defined in the previous variable
    • Group by Input Category Will group all the keybinds by the key’s Display Category defined inside the input mapping context, regardless of its original mapping context Note that the key conflict management will only handle keys within the same mapping context, if grouping them by Input Category, this system will still work but could cause some confusions for the user

  • Keybinding Mappings Conflict Method

    Defines how the keybindings conflicts should be handled by the system

    • Conflicts by Input Mapping Context Only keys within the same input mapping context will conflict (regardless of display categories)
    • Conflicts by Category Only keys within the same display categories will conflict (regardless of Input Mapping Context) - Note that based on your input setup, this could create unwanted behaviors withing IMCs, consider using "Conflicts All" if suitable
    • Conflicts All All keys will be considered for conflicts (regardless of category or IMC), meaning no conflict will be allowed at all across all available keymappings

  • Graphic Preset To Apply On First Game Launch

    If you wish to force a graphic preset on first game launch, set this value to anything higher than -1

    -1 = None/Engine Default ; 0 = Low ; 1 = Medium ; 2 = High ; 3 = Ultra

    Usually, the engine will default to Ultra preset, changing this might be useful to ensure a good experience on all hardwares right from startup


  • Game Audio Classes

    Audio classes used by the game to group different sounds. The classes defined in here will be controled by the options menu for their volume based on their respective “key” (Master, UI, Music, etc).

    If you don’t have these respective audio classes you can use the classes provided by the pack listed in the demo config data asset.

    More details on the setup of audio classes are given in the section dedicated to the Options Menu.


  • Toggles

    • Tabs With Hidden Background

      Tabs of the options menu that should have a transparent background.

      This can be useful to allow the player to see the world rendered in the background of the menu while making changes such as graphic settings changes.


    • Display Framerate Counter Toggle?

      If True, a setting will be displayed in the options menu to display or hide a framerate counter.

      For this setting to work, your HUD (from Easy Hud Builder) must implement the "Framerate Counter Module" (implemented by default), more details later in the documentation


    • Use High Compatibility Settings Saving?

      If True, settings will be saved on disk in a standard Unreal save file instead of a JSON File, at the cost of no longer being human readable.

      This can be required on some platforms that do not support properly storing JSON files like consoles.


    • Enable VSync Input Lag Mitigation?

      When enabled, the game will try to minimize the input lag that vsync might cause by caping the framerate below the vsync threshold. Results may vary based on monitor configuration.

      This input lag mitigation will only be active when the player enables VSync.

Save Game Category

Save Game

  • Save Operations Allowed?

    If False, all save operations will be blocked, saves will only be triggerable manually from code or save triggers

    The pause menu will also no longer display the save game button

  • Load Operations Allowed?

    If False, all load operations will be blocked, loads will only be triggerable manually from code

    The pause menu and main menus will also no longer display the load game buttons

Tip

You can update those two variables at any time during gameplay by calling the function Set Save Game Operations Allowed from the Game Instance


  • Save Manager Widget

    Widget shown as save manager to create new saves or load existing ones

  • Operations Manager Init Delay

    This delay define how long should the save manager wait before starting the initial loading operation when loading the level (if available)

    It is recommended to have a small to moderate delay in order to ensure the world and all the actors are properly loaded before doing any operation. You can increase this delay if you want to ensure that all your systems are up and ready when the loading starts


  • Save Player Tranform?

    If True, the player transform (location, rotation, scale) will be automatically saved and restored on load for each persistent level.

    When this is enabled, you shouldn't set the Save Transform variable to True on any Save Game Component that is in your Player Character or Player Controller.


  • Capture Thumbnail For Saves?

    If true the saving system will capture a thumbnail for each save file.

    Note that capturing a thumbnail might cause a small stutter at the begining of the save process due to how Unreal process these screenshots


  • Enable Save Files Versioning?

    If true, save files will be associated to the current game version (which needs to have a valid value) Attempting to load them with a different game version not listed in the "Compatible Game Versions" will display an alert message to the player


  • Compatible Game Versions

    If the save files versioning is enabled, you can define in here any game versions that are different but compatible with the Current Game Version and for which saves files will be loaded without any alert message


  • Loading Screen

    • Loading Screen Hide Delay

      How long should the loading screen wait before hiding once a save has been fully loaded


    • Loading Screen Backgrounds

      Images to randomly display in the background of the loading screen


    • Loading Screen Tips

      Tips to randomly display on the loading screen. Leave empty to have no tips


  • Auto Saves

    • Enable Auto Saves?

      If True, auto saves be enabled for all levels that are not disallowed


    • Auto Saves Interval

      Interval in seconds between two auto saves


    • Trigger Auto Save On Game Quit?

      If true, an auto save will be triggered when the user quit to the Main Menu or quit the game entirely from the Pause Menu


    • Max Slots For Auto Saves

      Define how many slots can auto saves create before overwriting older auto saves (defines how many slots in total auto saves can use)


    • Disallowed Levels For Auto Saves

      If you want to disable auto saves on specific maps like a main menu, you can do so by referencing them in this array


  • Slow Batch Size / Medium Batch Size / Expensive Batch Size

    Each variable define how many actors are allowed to be processed in one frame for a specific save or load operation

    • Slow operations are Auto Saves & Important Saves (Triggers/checkpoints)
    • Medium operations are Quick Saves
    • Expensive operations are Manual Saves and any Load

    More details on this is given inside the section dedicated to the Save Game System

Hud Builder Category

Hud Builder

  • Hud Modules Definition Data Asset

    Data Asset containing the definition of all the modules that can be activated by contexts or manually added to the hud. More details about use the hud builder system in its dedicated section


  • Default Hud Context

    Hud context to display by default when loading the game


  • Default Hud Contexts Override for Levels

    When playing in any level defined in this map, the hud context will use this override instead of the default hud context


  • Hide Hud In Main Menu Level?

    Should the Hud be fully hidden in the defined main menu level?


  • Hide Hud In Benchmark Level?

    Should the Hud be fully hidden in the defined benchmark level?

Photo Mode Category

Photo Mode

  • Enable Photo Mode in Game?

    If True, the photo mode system is enabled in game and can be opened by the player when allowed. If False, the photo mode is fully disabled from the game


  • Photo Mode Widget

    Widget shown when the photo mode is opened


  • Photo Gallery Widget

    Widget shown when the gallery is requested from the photo mode


  • Pause Game for Photo Mode?

    If True, the game will be paused when entering the photo mode. If False, the game will be running at realtime while the photo mode is open


  • Capture Thumbnail

    If True, a thumbnail will be captured at the same time as the main picture in the Photo Mode

    The thumbnails are used to more efficiently display the screenshots inside the gallery without loading the full resolution image upfront

  • Max Camera Range

    The maximum range (in unreal units - centimeters) at which the camera can be moved from its original location.

    A value lower than 0 will disable the maximum range, allowing an unlimited range


  • Screenshot Directory Type

    Define where the screenshots are saved by the system

    • Default Engine Screenshot Location will save screenshots under [Project Folder]/Saved/Screenshots/[OSType]/. For packaged builds, the path is the same but the “Project Folder” will be inside the [User]/Appdata/Local folder on your Windows System
    • Save In Document Folder will save screenshots under [User]/Documents/My Games/[Project Name]/
Interaction System Category

Interaction System

  • Interaction Inputs Definition

    In this variable, you must define all the input actions that you are using for your interactions, including the IMC they are contained in. The most important part is the definition of the Input Action, the rest is used to display the input prompts in the interaction widget. More details about this inputs setup in its dedicated documentation section


  • Max Interaction Distance

    Maximum distance at which the player can interact with objects (in unreal units/centimeters)

    This variable is set to 200 units/centimeters by default


  • Interaction Radius

    Maximum radius of the interaction sphere, a smaller radius will require a more precise aiming of the object compared to a large radius


  • InteractionSphereTraceMethod

    Defines how the sphere trace is done for interactions

    • Trace from Camera (Start and Forward Vector) The trace will start from the camera and go forward for the specified interaction distance based on the camera forward vector
    • Trace from Character (Start and Forward Vector) The trace will start from the character and go forward for the specified interaction distance based on the character forward vector
    • Trace from Character (Start) with Camera direction (Forward Vector) The trace will start from the character but go forward for the specified interaction distance based on the camera forward vector

  • Interactable Object Types

    List of all the object types that can be detected from the traces

    Only object that have one of those object type in their collision settings will be considered for interactions


  • Blocking Object Types

    Similar to the Interactable Object Types setting, list of all object types that can block interactions if they are in between an interactable actor and the player (like a wall for instance)


  • Enable Debug

    If True, a visualization of the interaction traces and their hits will be displayed in game

Game Benchmark Category

Game Benchmark

  • Enable Game Benchmarking Tool?

    Should the game benchmarking tool be enabled and accessible inside the options menu?

    Before enabling this, make sure that you have followed the instructions inside the Options Menu section about the Game Benchmark to set it up properly


  • Enable Game Benchmarking Tool in Shipping Build?

    If the Game Benchmarking Tool is Enabled, should it also be enabled in Shipping Builds (for players)?


  • Game Benchmarking Level

    Reference of the level that contain the game benchmark setup as described in its dedicated section


  • Use Dedicated Input for Game Benchmark?

    If False, the game benchmark button will be displayed as a setting inside the Graphics Settings tab of the options menu. If True, the game benchmark button will be displayed with its own input and standalone button in the footer of the options menu

Game Credits Category

Game Credits

  • Display Game Credits Button in Menus?

    If True, the credits can be accessed from the main menu/pause menu using the Menus Credits Context. If False, the button to trigger credits in menus will be hidden


  • Game Credits Widget

    Widget shown when game credits are requested through menus or in game


  • Game Credits Contexts

    Set of contexts that can be used to trigger the game credits based on different scenarios. By default the Menus and Intro Credits context are used by the Pause Menu/Main Menu.

    More details about setting up the game credits in its dedicated section


Global Styling System

The Global Styling Data Asset allow you to quickly customise many visual elements across all the widgets provided with the pack.
To change any of these styles, go to the EasyGameUI/Core/GlobalConfig/GlobalStyling folder. In here, you will find the styling data asset used by default (DA_EGUI_DefaultStyling), as well as other presets for demonstration.

How to select the Styling Data Asset used by the system
  1. To select which Styling Data Asset is used by the system, open your Global Config Data Asset (or the demo one from the folder EasyGameUI/Core/GlobalConfig if you are using it)
  2. Then, inside the Global section, simply change the data asset in the Styling Data Asset variable

  3. Recompile any blueprint for the changes to take effect


Once the Styling Data Asset opened, you will be presented with many options to control the various styling elements, they are split in several sections that I will detail just below.

Note

For the changes to be applied and visible on the widgets in editor, you may need to trigger a compilation on any widget or blueprint of the pack

Colors Category

Colors

  • Accent Color

    Color used to highlight some parts of the UI such as the dividers, the buttons, the dirty indicator

Input Prompts Category

Input Prompts

  • Input Prompt Icon Color

    Color applied to all the input prompts using the Input Prompts Widgets


  • Input Prompt Overlay Material

    Overlay material that can be used to stylize the input prompts

    You can check out the M_InputPrompts_DemoOverlay for an example of overlay material


  • Input Prompt Overlay Material Parameter Name

    Parameter name of the base texture defined inside the overlay material

Text Category

Text

  • Primary Text Color

    Color used by default for the Common Text (all texts inside the pack)


  • Inverted Text Color

    Color used when needed against backgrounds that could use the same color as the primary text color (The buttons for instance)

    The color can be inverted by using the function Switch Text Color on any Common Text widget


  • Fonts

    All the settings for fonts using 5 presets: Regular, Medium, Bold, Black and Light. For each preset, you can select a font as well as an italic variant, and control the shadow used by the font.

    The config of all the widgets using a Common Text will have an option to control which font is used as well as its size

Buttons Category

Buttons

  • Use Global Rounding Parameter For Buttons?

    If True, all the button styles will be overwritten to use the global radius and rounding type values defined in the styling

    If False, each button style will be entirely responsible for setting its own styling including rounding parameters


  • Buttons Globa lRounding Corner Radii

    Corner Rounding applied to all buttons if the global rounding parameter is enabled


  • Buttons Global Rounding Type

    Rounding Type applied to all buttons if Use Global Rounding Parameter For Buttons? is True


  • Common Button Styles

    List of standard buttons styles used by the Common Button widget based on which style is selected in the widget

    The config of all the Common Button widgets will have an option to control which style is used by the button


  • Selector Arrow Texture

    The arrow image used on common selector button widgets. The texture must be squared and pointing to the left for the best results. This image can be seen on all settings selector and inside the gallery


  • Use Accent Color on Selector Arrow?

    If true, the selector arrow texture will use the accent color, the texture must be white for the color to apply properly. If false, the texture color will be retained

Common Background Category

Common Background

The single Common Background Styles variable contain a list of standard border styles used by the Common Background widget based on which style is selected in the widget.

The Normal Style selector is the style visible by default and Active Style Selector can be visible by calling the function Set Background Active on any Common Background widget

The Corner Rounding Type define which type of rounding should be used for the specific background, regardless of what is set inside the style

Common Scrollbox Category

Common Scrollbox

Both of these settings are used to apply a style to the Common Scroll Box widget

  • Common Scroll Box Style

    Standard style definition for a Scroll Box in Unreal


  • Common Scroll Bar Style

    Standard style definition for the Scroll Bar

    Note: The scrollbar “thumb” (the selectable part) always uses the accent color regardless of the styling color in here

Game Credits Category

Game Credits Styling

  • Section Title Style

    Styling (font, size, color, padding) of the text used by default for all Section Title Texts


  • Text Section Role Style

    Styling (font, size, color, padding) of the text used by default to display the Role Names


  • Text Section Names Style

    Styling (font, size, color, padding) of the text used by default to display the Members Names


  • Text Section Outer Margin

    Margin surrounding the Role and Names texts, separating them from the Section Title and/or any Images Sections

Settings Category

Settings

  • Setting Layout Presets

    Presets used in different contexts to apply base styling rules to the Setting Widgets. Each preset can define various parameters like the height of the setting, the fonts used the style of the reset button, etc.


  • Settings Background Styles Various styling options for the backgrounds used by all settings

    • Setting Background Style

      Style used for the background/border of the entire setting when not in focus/hovered

    • Setting Background Active Style

      Style used for the background/border of the entire setting when in focus or hovered

    • Options Selectors Background Style

      Style used for the background/border of the setting values part


  • Setting Button Styles

    • Setting Toggle Buttons Style

      Button style that should be used by the Setting Toggle widgets buttons

    • Reset Setting Button Style

      Button style that should be used by the reset button on each setting


  • Setting Slider Regroup various styling options for the Setting Slider widget

    • Slider Style Styling applied to the slider part of the setting

    • Settings Spin Box Style Style used for the spinbox (numerical input) in the widget

    • Use Inverted Text Color in Spin Box Check this box if the text inside the spin box should be using the inverted text color (if you want to have a light background in the spin box for example)


  • Setting Keybinding

    Normal and Active style for the key selectors inside the Setting Kebinding widget

    The Active Style is used when the user is focusing one of the key selector to change the keybind

Global Category

Global

  • The game logo to be displayed in System Menus like the Main Menu, Pause Menu and Intro Screen


  • UI Audio SFX

    Set of SFX effects that will be played in Common Widgets of the system (mostly buttons, settings, etc.)

    Those SFX can also be called from anywhere with the global function Play UI Audio SFX


  • Global Cursor Styling

    Set of cursor widgets to automatically apply to different states of the mouse cursor


  • Default Gamepad Keys Brand

    Select the default value between the three types of gamepad keys available. The gamepad keys brand can then be modified during gameplay inside the options menu

    X = Xbox Gamepad
    P = Playstation Gamepad
    S = Nintendo Switch Gamepad


Config Exporter Tool

The Global Config Exporter Tool is a utility that will help you export or import any config from the pack (Global Config & Global Styling) in a text format.

How to use the Config Exporter Tool
  1. You will find this tool inside the EasyGameUI/Core/GlobalConfig folder, you can open it by right clicking and selecting Run Editor Utility Widget

  2. Once open, you will be presented with the following UI

  3. In here, you can first select which data asset type you want to export data from/import data to, either the Global Config Data Asset, or the Global Styling Data Asset

  4. Inside the field Config Data Asset/Styling Data Asset, select the target Data Asset

  5. You can then either export or import datas with the following steps

    • To export datas, simply click on the Export Config button, a text that you can copy will then appear containing all the informations about that data asset

    • To import datas, first paste the config text inside the grey field, then, click on the Import Config button

      Warning

      Importing a config will overwrite any data that were previously stored in the data asset. Make sure to have selected the correct data asset and correct type.
      If the config text doesn’t match the data asset type, it won’t do anything.