Skip to content
Back to wiki

GGS 1.6 Release Notes

A

Author

Author

Created: Sep 09, 2026Updated: Sep 15, 2026

Table of contents

Generic Game System 1.6

Changes since 1.5.1. Local-player settings can now be previewed, applied, or cancelled. A few sloppy defaults in interaction, activatable widgets, and modals are tightened. The settings menu is additive and will not appear until you configure it. Missing an interaction component, a modal close-zone bind, or an old display-name override fails activation or compilation.

Added

  • Each local player can preview, save, or discard settings. Device video writes to UGameUserSettings. Audio, input, and accessibility write to that player’s Shared SaveGame. Leaving the menu without Apply drops dirty values.
  • Common video / audio / input / accessibility / language do not have to be built from scratch. Built-in providers can be subclassed in Blueprint. Video covers window mode, display selection, resolution, brightness, quality, VSync, frame rate, and dynamic resolution. Input covers device preferences only, not Enhanced Input rebinding. Projects must override Shared ApplySettings before those preferences reach their own audio or post-process.
  • A settings screen can list rows, show details, and go back through CommonUI. An activatable menu, entries, and Apply / Cancel are included.
  • A narrow HUD can stack a row of widgets into one column. The Lyra-style responsive panel folds children when the viewport is small.
  • Effect libraries, interaction definitions, and settings assets can be created in the Content Browser. GenericGameSystemEditor factories are new.
  • Mac is allowed on every runtime module and the editor module. This release targets Unreal Engine 5.8.

Changed

  • An Avatar without an interaction component can no longer activate an interaction ability. Activation is refused and logged, so the ability does not run with no candidates.
  • Interaction Gameplay Behaviors instantiate per run. Single-run ability state is no longer stored on a shared CDO. Custom behaviors that cached on the CDO will leak across triggers.
  • The default interaction display-name implementation uses the correct function name. C++ subclasses that overrode GetInteractionDisplayNameText_Implementation must rename it or they fail to compile / keep the wrong default.
  • Failed Smart Object lookups no longer hand Blueprints a dirty pointer. Outputs are cleared on the failure path.
  • InputConfig = Default inherits the CommonUI parent config instead of declaring nothing. Old screens that relied on an empty Optional should pick Game / Menu / GameAndMenu. A flag can hide the cursor during viewport capture.
  • Modals can close from an empty tap. Subclasses must bind Border_TapToCloseZone, or turn the option off. Existing Blueprints without that bind need it after the upgrade.
  • Effects and UI developer settings follow the other Generic plugins. UGES_ContextEffectsSettings is now UGES_DeveloperSettings; UGUIS_GenericUISystemSettings is now UGUIS_DeveloperSettings. Field responsibilities are unchanged.

Upgrade Notes

Settings are additive and stay dark until configured. Interaction, modals, and old settings class names are behavior tightening or source-breaking. C++ class names, modal Blueprints, the interaction component, and interface overrides need a pass. Skipping it can leave interaction abilities inert or modal Blueprints unable to compile.

  1. Change hardcoded old Developer Settings class names in C++ or ini, then confirm the original values still appear in Project Settings.
  2. Bind Border_TapToCloseZone on UGUIS_GameModalWidget subclasses, or disable tap-to-close.
  3. Add an interaction component on the Avatar. Interaction abilities no longer activate without it.
  4. Rewrite custom interaction behaviors that relied on shared CDO state. Treat each run as a new instance.
  5. Rename GetInteractionDisplayNameText_Implementation to GetInteractionDisplayName_Implementation.
  6. Widgets with InputConfig = Default inherit the parent input config. If the old behavior depended on “no input config declared”, pick Game / Menu / GameAndMenu explicitly.
  7. To use the settings menu: configure UGSS_DeveloperSettings, usually subclass Common Shared and override ApplySettings, then add the Common providers you need to Startup Provider Classes.