Skip to main content

DataStore

DataStore wrapper with serialized table saves and reconciliation support.

Functions​

CreateStore​

DataStore.CreateStore(Config: Config) → StoreHandle

Creates a validated datastore handle from config.

Reconcile​

DataStore.Reconcile(
Template: SaveTable,
ExistingSaveData: SaveTable?
) → SaveTable

Reconciles existing save data with template.

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

Load​

DataStore.Load(
StoreHandle: StoreHandle,
Key: string
) → SaveTable

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

Save​

DataStore.Save(
StoreHandle: StoreHandle,
Key: string,
SaveData: SaveTable
) → ()

Serializes and saves a table.

Update​

DataStore.Update(
StoreHandle: StoreHandle,
Key: string,
Transform: (SaveData: SaveTable) → 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": 99,
                "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": 131,
                "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": 150,
                "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": 179,
                "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": 201,
                "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"
    }
}