Overview

QuickSave is built on the concept of roots and keys

Roots

Roots map to filenames and hence must not contain characters that are not allowed in filenames

Roots are the top level grouping for a collection of data and are equivalent to filenames

Keys

The same key cannot exist more than once under a root

Keys identify data that is stored under a root, a root can contain many keys

This can be visualised as follows

  • Root1
    • Key1
    • Key2
    • Key3

Supported Types

Types must have a parameterless public constructor in order to be deserialised

Primitives and custom objects are supported as long as they have public properties that can be serialised. The following Unity Engine types are known to work, many others probably will as well but haven't been confirmed. The plugin is easily extendable to add support for additional types.

  • Bounds
  • Color
  • Color32
  • Matrix4x4
  • Quaternion
  • Rect
  • Sprite
  • Texture2D
  • Transform
  • Vector2
  • Vector3
  • Vector4

Encryption

Once a root has been encrypted all subsequent reads / writes must specify the same encryption method and password if applicable

Encryption is applied to the whole root rather than individual keys

Compression

Once a root has been compressed all subsequent reads / writes must specify the same compression method

Compression is applied to the whole root rather than individual keys

Save Location

Files are saved by default into the location specified by Application.PersistentDataPath, however this can be changed by setting QuickSaveGlobalSettings.StorageLocation