Storage

Overview

Monogatari can use different storage engines so you can choose whichever works for your game best. This configuration can be found inside your options.js file. By default, it will look something like this:

    // Define what storage engine should be used to save the game data. *
    // Adapters Available:
    // - LocalStorage: This one is used by default
    // - SessionStorage: Same as LocalStorage but will be cleared when the page
    //                      is closed.
    // - IndexedDB: The information is saved using the IndexedDB web API
    // - RemoteStorage: The information will be sent and retrieved from a given
    //                    URL Endpoint providing a REST API.
    'Storage': {
        'Adapter': 'LocalStorage',
        'Store': 'GameData',
        'Endpoint': ''
    }

Local Storage

This is the default storage engine used by Monogatari and it uses your browser's local storage.

Session Storage

The session storage works just like the local storage engine with the important difference that their data will be erased the moment they close the game.

Indexed DB

Remote Storage

For remote storage, your configuration in options.js can be set as follow.

Or you may add a store name:

The storage engine concats the Store and Endpoint values as the actual RESTful API endpoint url to use:

Implementing the Remote Storage

The storage mimic that of a localStorage, which is simple JSON object storage.

The endpoint url should implement the below API interface:


Normally, retrieves all the values in the space in a key-value JSON object. If previous storage does not exist, return an empty JSON object: {}.

In keys-listing mode, return all keys stored in the space as a JSON array.

Parameters

Name
Description

keys

Boolean. If set to true, will switch to keys-listing mode.


Clear the entire storage object.

Equivlant to


Return the value of the key in the storage object.

Equivlant to


Store the value in the storage object under the key.

The request body will be the JSON value to store.

Equivlant to


Update the value in the storage object under the key.

The request body will be the JSON value to store. The original content should be overwritten.

Equivlant to


Return the value of the key in the storage object.

Equivlant to

Last updated

Was this helpful?