• Manual
  • API Documentation

    Show / Hide Table of Contents
    • Introduction
    • Installation
    • Getting Started
    • Demos
    • The Save System API
    • Auto Save
    • Platforms
    • Security
    • Serialization
    • Supported Data Types
    • Migration
    • FAQ
    • Changelog
    • Extend
      • Overview
      • Converter
      • Encryption
      • Storage
    • Guides
      • Overview
      • Configuring Settings
      • Using Auto Save
      • Basic Saving and Loading
      • Saving and Loading Raw Data
      • Deleting the Data
      • Saving and Loading Images
      • Saving and Loading Scene Objects
      • Saving and Loading Assets
      • Saving and Loading Readonly Properties
    • Integrations
      • Overview
      • Google Play Games
      • Xbox Live
      • Bolt
      • Firebase
      • PlayFab
      • PlayMaker
      • Steam Auto-Cloud
      • Steamworks .NET
      • Facepunch Steamworks
      • Text Mesh Pro
    • Storage
      • Overview
      • Backup
      • Catalog
      • Meta Data
      • Built-in Storages
        • File
        • PlayerPrefs
        • Memory
      • Third-party Storages
        • Firebase
          • Realtime Database
          • Cloud Storage
          • Firestore
        • PlayFab
          • Entity Objects
          • Entity Files
          • User Data
        • Steam
          • Steamworks .NET
          • Facepunch Steamworks
        • Google Play
          • Saved Game
        • Xbox Live
          • Connected Storage

    Storages

    There are different types of storages for different situations and use cases, Save System supports both Local and Online storage types, so you can easily manage your data across different platforms with different storage types using an Unified API.

    Built-in Storages

    The package includes built-in storages for most common use cases that enables you to get a boost in your productivity:

    • File
    • PlayerPrefs
    • Memory

    Third-party Storages

    There are official integrations available for third-party storage providers such as cloud services and game backends, check each integration or storage page to download the package:

    • Xbox Live Connected Storage
    • Google Play Games Saved Game
    • Firebase Realtime Database
    • Firebase Cloud Storage
    • Firebase Cloud Firestore
    • PlayFab UserData
    • PlayFab Entity Objects
    • Steamworks .NET
    • Facepunch Steamworks

    Custom Storage

    You can easily create your own custom storage by extending the StorageBase class and implementing the methods.

    Learn more

    Backup

    Storage API allows you to backup your data by duplicating it in most cases (it depends on the storage implementation), then it uses the Meta Data API to add the backup to the list of the backups in the item meta data, so when you use SaveSystemAPI.GetBackups or SaveSystemAPI.RestoreLatestBackup it detects the backups through there.

    So it means by disabling the Meta Data API, you wouldn't be able to use Backups. (by the way it depends on the storage implementation, but in most cases it wouldn't work)

    Learn more

    Meta Data

    The Meta Data API allows you to store additional meta information about the storage item, such as Last Access Time, Last Modification Time, Is Encrypted and ... So, it would allow you to add your own custom data to it, or use the existing information.

    Learn more

    Catalog

    The Catalog storage item allows the storage to keep a list of items in the storage so you wouldn't have to use Query methods to loop through files or keys in a database to find out which files or entries are saved using Save System, also it just saves the identifier in the list, not the full path or modified identifier, so it would let you get most out of the identifier value by converting it to whatever you want.

    Also, it lets you to keep a list of active saved items in the storage too, for like displaying saved slots.

    Learn more

    Connection String

    The connection string allows to create a new storage instance using an URL-like syntax string.

    <Storage Protocol>://<Parameter Name>=<Paramter Value>; <Parameters ...>
    

    The storage protocol is actually the storage identifier, such as disk or playerprefs or any other storages available.

    So for example if you want to initialize the LocalDiskStorage, you can do it like this:

    disk://path={0}
    

    Also, you can use pre-defined variables inside the connection string which are identified using numbers, the below shows the list of available pre-defined variable numbers you can use:

    • {0} = Application.persistentDataPath
    • {1} = Application.dataPath
    • {2} = Application.streamingAssetsPath
    • {3} = Application.temporaryCachePath
    • {4} = Application.absoluteURL
    • {5} = Application.buildGUID
    • {6} = Application.companyName
    • {7} = Application.productName
    • {8} = Application.identifier
    • {9} = Application.version
    • {10} = Application.unityVersion

    You can find more information about built-in storages connection string:

    • File
    • PlayerPrefs
    • Memory

    Or third-party integrations:

    • Xbox Live Connected Storage
    • Google Play Games Saved Game
    • Firebase Realtime Database
    • Firebase Cloud Storage
    • Firebase Cloud Firestore
    • PlayFab UserData
    • PlayFab Entity Objects
    • Steamworks .NET
    • Facepunch Steamworks
    • Improve this Doc
    • 0 Comments
    In This Article
    • Built-in Storages
    • Third-party Storages
    • Custom Storage
    • Backup
    • Meta Data
    • Catalog
    • Connection String