Skip to content
Back to wiki

Settings System

A

Author

Author

Created: Oct 19, 2026Updated: Oct 19, 2026

Table of contents

Module boundaries

GGS settings are split into three modules that you can adopt as needed:

  • GenericSettingsSystem provides the local-player settings subsystem, registry, setting nodes, accessors, provider lifecycle, and Apply, Cancel, and Reload flow.
  • GenericSettingsSystemCommon provides optional Video, Audio, Input, Accessibility, and Language providers.
  • GenericSettingsSystemUI connects the registry to CommonUI menus and widgets from GenericUISystem. The core settings runtime does not depend on the UI module.

Runtime model

Each Local Player has its own UGSS_GameSettingsSubsystem and registry. Setting nodes can come from a Definition Data Asset or be registered by a runtime Provider. Pages and Collections organize navigation and values; accessors connect value nodes to project state through Local or Shared storage.

Apply commits nodes that are still pending and persists engine settings and Shared Settings. Cancel restores the tracked initial values. Reload reloads Shared Settings and refreshes registered values from their accessors. Dynamic nodes can write through an accessor immediately, so the project should decide which values are suitable for preview and which should wait for Apply.

Reading path

  • Learn the registry, SettingId, accessors, providers, and Apply/Cancel lifecycle before choosing a Data Asset or C++/Blueprint Provider.
  • Before enabling a Common provider, decide which preferences GGS stores and which values your project systems must apply.
  • Add GenericSettingsSystemUI separately when you need a settings menu, then build widgets that fit your project's UI structure.

Continue with:

  • Settings Model and Providers
  • Built-in Providers and Project Configuration
  • Settings Menu UI Integration