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, how it's applied, 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 Content Browser, right-click → Blueprint Class
  2. Choose Setting Type as parent
  3. Name it based on behavior (e.g., Setting_Global for console variables)
  4. Open and configure:
    • Select Domain (Global or Player)
    • Add Application Strategy from dropdown
    • Add Persistence Strategy from 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 input action 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 CVar strategy to extract resolution from a larger value). The resolution widget references Setting_Resolution with no Sub Key.