Skip to content

DataStore namespace

League Client does not store user data on disk, similar to incognito mode in web browsers. This namespace helps you to store user data on disk.

DataStore.set()

functionsince v1.0.1
ts
function set(key: string, data: any): Promise<void>

Asynchronously stores data associated with the specified key.

Parameters

  • key (string) The key under which the data will be stored. Keys must be unique across all plugins to avoid conflicts.

  • data (any) The value to store. Supported types include:

    • Primitive types: string, number, boolean, null
    • Collections: arrays, objects

All data is serialized into JSON format, so non-serializable types such as functions and runtime objects will be ignored.

Returns

A void Promise that resolves once the data is successfully stored.

Example

js
let my_num = 10
let my_str = 'hello'
DataStore.set('my_num', my_num)
DataStore.set('my_str', my_str)

Remarks

To avoid data conflicts, use unique and descriptive key names, preferably prefixed with your plugin’s identifier. For example, use plugin-name/user-settings instead of generic names like settings or data.

For multiple data entries such as config or user settings, you should store them in an object.

ts
let config = { a: 10, b: 'hello' }
DataStore.set('my-config', config)

DataStore.get()

functionsince v1.0.1
ts
function get<T = any>(key: string, fallback?: T): T

Retrieves stored data by key. If the key does not exist, the function will return undefined or an optional fallback value.

Parameters

  • key (string) The key associated with the data.

  • fallback (T) (optional) A default value to return if the key does not exist.

Returns

The stored data, or the fallback value if the key is missing.

Example

js
console.log(DataStore.get('my_str'))
// some string
console.log(DataStore.get('key-does-not-exist'))
// undefined

Since v1.0.5, you can set fallback value for non-existent keys.

js
console.log(DataStore.get('key-does-not-exist', 1000))
// 1000

DataStore.has()

functionsince v1.0.1
ts
function has(key: string): boolean

Checks if a specific key exists in the storage.

Parameters

  • key (string) The key to check.

Returns

A boolean value indicating whether the key exists.

Example

js
console.log(DataStore.has('my_num'))
console.log(DataStore.has('key-does-not-exist'))

DataStore.remove()

functionsince v1.0.1
ts
function remove(key: string): Promise<boolean>

Asynchronously removes a key-value pair from storage.

Parameters

  • key (string) The key of the data to remove.

Returns

A boolean Promise that resolves to:

  • true if the key was found and removed.
  • false if the key does not exist.

Example

js
await DataStore.remove('some-key')
DataStore.has('some-key') // -> false

Released under the MIT License.