Skip to main content
Version: 2.x

Setting Types

Setting Types are Blueprint classes that define how settings work. They determine what a setting controls, whether it binds to an external game system, and where it's saved.

What is a Setting Type?

A Setting Type is a Blueprint class (inheriting from SettingType) that configures:

Creating a Setting Type

  1. In the Content Browser, right-click and select Blueprint Class.
  2. Choose Setting Type as the parent class.
  3. Name it based on behavior (for example, Setting_Global for console variables).
  4. Open and configure:
    • Select Domain (Global or Player).
    • Add a Binding Strategy from the dropdown if the setting needs automatic synchronization to a game system.
    • Add a Persistence Strategy from the dropdown.

Reusing Setting Types

You typically create one Setting Type per behavior pattern, not one per setting.

Multiple settings per type

A single Setting Type can be used for many settings. Widgets specify which specific setting they control using the Sub Key property:

Example: A single Setting_Global can be used for all console variable settings:

  • Shadow quality widget → Setting Type: Setting_Global, Sub Key: sg.ShadowQuality
  • Texture quality widget → Setting Type: Setting_Global, Sub Key: sg.TextureQuality
  • Audio volume widget → Setting Type: Setting_Global, Sub Key: GameAudio.Volume

The Sub Key identifies which specific setting the widget controls:

  • Console variable widgets - The console variable name (e.g., sg.ShadowQuality)
  • Input mapping widgets - The player-mappable binding name (from the widget's Mapping Name property)

Single setting per type

Create a dedicated Setting Type when a setting needs special logic or configuration. In this case, widgets don't need a Sub Key:

Example: The example project's Setting_Resolution needs custom logic (a value mask on its console-variable binding strategy to extract resolution from a larger value). The resolution widget references Setting_Resolution with no Sub Key.