Settings

com.cupkekgames.settings — fully expandable settings system + Luna UI panel for graphics quality, audio mixer, locale switching, and input rebinding. Backed by the GameSave package for persistence; surfaces a complete UI.Settings view that drops into any scene.

Dependencies

  • com.cupkekgames.singletons (SettingsSystem singleton)
  • com.cupkekgames.keyvaluedatabases (SettingsDataSO extends KeyValueDatabaseSO)
  • com.cupkekgames.editorinspector ([MultiLineHeader] on data classes)
  • com.cupkekgames.input
  • com.cupkekgames.luna (UI panel)
  • com.cupkekgames.data (settings persistence)

VersionDefines: com.unity.localization, com.unity.inputsystem, com.unity.render-pipelines.universal. Each unlocks the relevant adapter when its package is installed.

What's inside

  • SettingsSystem/ — settings registry, persistence pipeline, Unity URP / Localization / Input System adapters.
  • UI.Settings/ — Luna UI settings panel + per-control widgets (slider, dropdown, toggle, key-rebind cell).

The autosave-indicator UI bridge that listens to GameSave events lives in Luna's Samples~/GameFull/Scripts/UI.WithGameSave/ (sample-grade scaffolding, not in this package).

Graphics: what the settings write, and when it comes back

The graphics section applies the player's choices to shared project assets: MSAA and the opaque texture on every URP asset in RenderPipelineAssets, the renderer features Effects Low turns off, the Depth of Field and Bloom high-quality overrides on the effects volume profile, the optional Effects Low drops profile (every override in it turns off at Low, for example a presentation profile with depth of field on close-up cameras), and QualitySettings (render pipeline, VSync, texture mip limit).

  • Effects High is the authored state, not "everything on". Each value is remembered the first time the section writes it (AuthoredGraphicsState), and High returns to it. An override you left off stays off.
  • Bloom high-quality filtering moves with its override flag, so the Low value takes effect even when the profile did not override it.
  • In the editor, leaving play mode puts every value back. The assets are project files: without this, the next asset save after a play session wrote the player's settings (MSAA 1 from a dev save, say) into version control.

Since 0.3.5. The render scale option (100 / 125 / 150%, an optional RenderScale radio row in the graphics UXML) writes every URP asset's render scale and is put back the same way (since 0.3.7).

Current settings are a runtime copy

SettingsSystem takes one settings asset, the defaults. CurrentSettings is a runtime copy of them with the player's saved values loaded over it, built the first time anything asks for it. No project asset holds the player's save, so play sessions leave your settings assets untouched. Since 0.3.6; earlier versions had a second "current settings" asset that the save was loaded into, and that slot is gone.

Pages

Full settings-system documentation is coming soon. For now, see the GameFull sample at Samples~/GameFull/ for an end-to-end working example.

See Architecture & Distribution for the full package map.

Settings

Theme

Light

Contrast

Material

Dark

Dim

Material Dark

System

Sidebar(Light & Contrast only)

Light
Dark

Font Family

DM Sans

Wix

Inclusive Sans

AR One Sans

Direction

LTR
RTL