Skip to main content

Save Game & Steam Cloud

How player data persists between sessions and across machines.

Two Storage Layers

LayerWhatWhen
Local SaveGame (SG_PlayerData)Graphics, audio, account settings, game preferences, player data mapAlways
Steam Cloud (SIK Remote Storage)Player rank, level, skin type, skin color (keys from DA_PM_Settings)When Use Cloud Storage? is enabled and cloud is available

Both use the same keys defined in PM_SettingsData → Cloud Player Data, so data stays consistent between layers.

Initialization (Begin Play)

BPC_PlayerData (on BP_PlayerState, Component Type = Menu):

  1. Loads the save slot (Slot Name variable) or creates it.
  2. Check Save Game For Default Data fills missing values from Default Player Data Values in DA_PM_Settings (first launch).
  3. Check for cloud data availability verifies Steam Cloud (respecting the Use Cloud Storage? toggle); if unavailable, the Party Manager shows a warning via Handle CloudStorage Notification.
  4. Player Saved Data Validation compares saved settings against currently applied ones (e.g. graphics); if they differ, the "Keep Current / Load Saved" dialog appears.
  5. Sets SaveDataInitialized? = true. Other systems should check PDATA_SavaDataInitialized? before reading.

Reading & Writing

Never touch SG_PlayerData directly. Go through BPI_PlayerDataInterface (see the functions reference) or the Get Player Cloud Data / Get Player Data helpers in BP_SPM_Library.

Settings application helpers in BP_SPM_Library:

  • Set Player Graphics Settings / Set Default Graphics Settings / IsSavedGraphicsSettingsDifferent?
  • ApplyAudioVolumeSettings: applies saved volumes to the sound classes in Content/SteamPartyMenu/SoundEffects/SoundClasses
  • Get Current Set Game Settings
  • Get Last Party Size Used / Get Last Gamemode Used / Get Last Map Used: used by Create SPM Party to restore the host's last match settings

Settings Structs

Found in Content/SteamPartyMenu/Blueprints/Structures/:

  • S_GraphicsSettings: resolution, window mode, quality scalars
  • S_AudioSettings: per-sound-class volumes
  • S_AccountSettings: account-level options

The Settings Menu tabs (WB_GraphicsSettings, WB_AudioSettings, WB_AccountSettings) read and write these structs through the interface.

Steamworks Setup

For cloud saves to work in your own app:

  1. Enable Steam Cloud in your Steamworks App Admin (Cloud quotas per user).
  2. Keep Use Cloud Storage? checked in DA_PM_Settings.
  3. With the test AppID 480, cloud behavior is shared with every other Spacewar app, so expect noise. Use your real AppID for reliable testing.