Skip to main content

DataStore

DataStore wrapper with serialized table saves and reconciliation support.

Functions

CreateStore

DataStore.CreateStore(ConfigConfig) → StoreHandle

Creates a validated datastore handle from config.

Reconcile

DataStore.Reconcile(
TemplateSaveTable,
ExistingSaveDataSaveTable?
) → SaveTable

Reconciles existing save data with template.

Missing keys in existing save data are filled from template recursively.

Load

DataStore.Load(
StoreHandleStoreHandle,
Keystring
) → SaveTable

Loads and deserializes save data as a table, then reconciles with template.

Save

DataStore.Save(
StoreHandleStoreHandle,
Keystring,
SaveDataSaveTable
) → ()

Serializes and saves a table.

Update

DataStore.Update(
StoreHandleStoreHandle,
Keystring,
Transform(SaveDataSaveTable) → SaveTable
) → SaveTable

Atomically updates save data as a table.

Show raw api
{
    "functions": [
        {
            "name": "CreateStore",
            "desc": "Creates a validated datastore handle from config.",
            "params": [
                {
                    "name": "Config",
                    "desc": "",
                    "lua_type": "Config"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "StoreHandle"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 97,
                "path": "src/Packages/DataStore/init.luau"
            }
        },
        {
            "name": "Reconcile",
            "desc": "Reconciles existing save data with template.\n\nMissing keys in existing save data are filled from template recursively.",
            "params": [
                {
                    "name": "Template",
                    "desc": "",
                    "lua_type": "SaveTable"
                },
                {
                    "name": "ExistingSaveData",
                    "desc": "",
                    "lua_type": "SaveTable?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "SaveTable"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 129,
                "path": "src/Packages/DataStore/init.luau"
            }
        },
        {
            "name": "Load",
            "desc": "Loads and deserializes save data as a table, then reconciles with template.",
            "params": [
                {
                    "name": "StoreHandle",
                    "desc": "",
                    "lua_type": "StoreHandle"
                },
                {
                    "name": "Key",
                    "desc": "",
                    "lua_type": "string"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "SaveTable"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 148,
                "path": "src/Packages/DataStore/init.luau"
            }
        },
        {
            "name": "Save",
            "desc": "Serializes and saves a table.",
            "params": [
                {
                    "name": "StoreHandle",
                    "desc": "",
                    "lua_type": "StoreHandle"
                },
                {
                    "name": "Key",
                    "desc": "",
                    "lua_type": "string"
                },
                {
                    "name": "SaveData",
                    "desc": "",
                    "lua_type": "SaveTable"
                }
            ],
            "returns": [],
            "function_type": "static",
            "source": {
                "line": 177,
                "path": "src/Packages/DataStore/init.luau"
            }
        },
        {
            "name": "Update",
            "desc": "Atomically updates save data as a table.",
            "params": [
                {
                    "name": "StoreHandle",
                    "desc": "",
                    "lua_type": "StoreHandle"
                },
                {
                    "name": "Key",
                    "desc": "",
                    "lua_type": "string"
                },
                {
                    "name": "Transform",
                    "desc": "",
                    "lua_type": "(SaveData : SaveTable) -> SaveTable"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "SaveTable"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 199,
                "path": "src/Packages/DataStore/init.luau"
            }
        }
    ],
    "properties": [],
    "types": [],
    "name": "DataStore",
    "desc": "DataStore wrapper with serialized table saves and reconciliation support.",
    "source": {
        "line": 6,
        "path": "src/Packages/DataStore/init.luau"
    }
}