Show raw api
{
"functions": [
{
"name": "_promiseSelectDefaultSlot",
"desc": "Selects the player's last active slot, or creates and selects the default slot.\nDoes nothing when explicit selection is required.\n\nEvery hop is maid-owned and re-checks the binder for the same reason as the caller: any of\nthese reads can settle after the player left, and continuing into the destroyed binder throws.",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "maid",
"desc": "",
"lua_type": "any"
},
{
"name": "hasSaveSlots",
"desc": "",
"lua_type": "any\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<any>?\n"
}
],
"function_type": "static",
"source": {
"line": 182,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "RequireExplicitSelection",
"desc": "Requires explicit slot selection",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 230,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "GetExplicitSelectionRequired",
"desc": "Returns whether explicit slot selection is required",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
}
],
"returns": [
{
"desc": "",
"lua_type": "boolean\n"
}
],
"function_type": "static",
"source": {
"line": 238,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseIsInternalTeleport",
"desc": "Resolves whether the player teleported in carrying a save-slot id -- i.e. arrived via an internal\nslot teleport rather than a fresh join. Presence-only (it does not validate the slot still exists);\nuse [HasSaveSlots.PromiseHasSaveSlotFromTeleport] when existence matters. It is a promise because a\nclient-initiated teleport only reaches the server once the client replicates its arrived data.",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise<boolean>"
}
],
"function_type": "static",
"source": {
"line": 251,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "SetMaxSlotCount",
"desc": "Sets the max slot count",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "maxSlotCount",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 258,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "SetUnlimitedSlots",
"desc": "Removes the slot ceiling, so [HasSaveSlots.PromiseSelectNewSaveSlot] always\nallocates the next free index. A thin alias over [SaveSlotService.SetMaxSlotCount]\nwith an unbounded count; same before-Start guard applies.",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 269,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "SetCodeGenerator",
"desc": "Sets the share-code generator applied to every player's exports (see [SaveSlotCodeUtils.CodeGenerator]),\nso a game can choose a code format that suits its players. Defaults to\n[SaveSlotCodeUtils.generateDefaultCode]. Must be called before Start.",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "generator",
"desc": "",
"lua_type": "SaveSlotCodeUtils.CodeGenerator"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 280,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "RegisterDefaultSummaryProvider",
"desc": "Registers a named default summary provider, applied to every player's save slots. Each provider's\ncurrent value is aggregated into the active slot's Summary, keyed by `name`. Registering or\nunregistering reflects on all bound players. Returns a function that unregisters the provider (also\ngive it to a [Maid]).",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "name",
"desc": "",
"lua_type": "string"
},
{
"name": "provider",
"desc": "",
"lua_type": "HasSaveSlots.SummaryProvider"
}
],
"returns": [
{
"desc": "",
"lua_type": "() -> ()"
}
],
"function_type": "static",
"source": {
"line": 296,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "RegisterPreSelectCallback",
"desc": "Registers a callback to run for every player immediately before a slot becomes active, whatever\nselected it. It runs with the previous selection still in place, and what it returns decides what\nhappens next:\n\n* nothing (or `true`) -- allow the selection\n* `false` -- refuse it; the selection rejects and the active slot is left alone\n* a promise -- hold the selection open until it settles, refusing if it resolves `false`\n\nAn error or a rejection is warned about and allows the selection: only a stated `false` refuses. There\nis no timeout, so keep the work bounded.",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "callback",
"desc": "",
"lua_type": "PreSelectCallback"
}
],
"returns": [
{
"desc": "Removes the callback",
"lua_type": "() -> ()"
}
],
"function_type": "static",
"source": {
"line": 322,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromisePreSelect",
"desc": "Runs every registered pre-select callback for a slot about to become active, resolving with whether the\nselection may proceed once the ones that returned a promise have settled. Called by [HasSaveSlots] as\neach selection commits.\n\nEvery callback runs, even once one has refused: they are independent, and one that only wanted to\nsettle state must not be skipped because an unrelated one said no.",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "slotId",
"desc": "",
"lua_type": "SlotId"
},
{
"name": "previousSlotId",
"desc": "",
"lua_type": "SlotId?"
}
],
"returns": [
{
"desc": "False when any callback refused",
"lua_type": "Promise<boolean>"
}
],
"function_type": "static",
"source": {
"line": 341,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "ObserveActiveSlotStoreBrio",
"desc": "Observes the [DataStoreStage] for the player's active slot as a [Brio]",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Observable.Observable<Brio.Brio<DataStoreStage.DataStoreStage>>\n"
}
],
"function_type": "static",
"source": {
"line": 378,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseActiveSlotStore",
"desc": "Returns the [DataStoreStage] for the player's active slot",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<DataStoreStage.DataStoreStage?>\n"
}
],
"function_type": "static",
"source": {
"line": 392,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseHasSlot",
"desc": "Returns whether the player has a slot with the given ID",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "slotId",
"desc": "",
"lua_type": "SaveSlotData.SlotId\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<boolean>\n"
}
],
"function_type": "static",
"source": {
"line": 404,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseSelectSlot",
"desc": "Selects the slot with the given ID for the player",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "slotId",
"desc": "",
"lua_type": "SaveSlotData.SlotId\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<DataStoreStage.DataStoreStage>\n"
}
],
"function_type": "static",
"source": {
"line": 417,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseCreateSlot",
"desc": "Creates a slot for the player at the given index",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "slotIndex",
"desc": "",
"lua_type": "number"
},
{
"name": "metadata",
"desc": "",
"lua_type": "SaveSlotData.SaveSlotMetadata?\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<any>\n"
}
],
"function_type": "static",
"source": {
"line": 430,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseDeleteSlot",
"desc": "Deletes the slot with the given ID for the player",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "slotId",
"desc": "",
"lua_type": "SaveSlotData.SlotId\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<any>\n"
}
],
"function_type": "static",
"source": {
"line": 444,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseResetActiveSlot",
"desc": "Resets the player's active slot to a fresh empty one",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<any>\n"
}
],
"function_type": "static",
"source": {
"line": 457,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromisePersistEphemeralSlot",
"desc": "Turns the player's ephemeral session into a real save slot and continues play on it, resolving to the\nnew slot id. See [HasSaveSlots.PromisePersistEphemeralSlot].",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "slotId",
"desc": "",
"lua_type": "SaveSlotData.SlotId?\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<SaveSlotData.SlotId>\n"
}
],
"function_type": "static",
"source": {
"line": 467,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseExportSlot",
"desc": "Exports the player's non-main slot into a serializable table. See [HasSaveSlots.PromiseExportSlot].",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "slotId",
"desc": "",
"lua_type": "SaveSlotData.SlotId\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<SaveSlotExportUtils.SaveSlotExport>\n"
}
],
"function_type": "static",
"source": {
"line": 480,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseImportSlot",
"desc": "Imports an exported slot into a fresh non-main slot for the player, resolving to the new slot id.\nSee [HasSaveSlots.PromiseImportSlot].",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "export",
"desc": "",
"lua_type": "SaveSlotExportUtils.SaveSlotExport\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<SaveSlotData.SlotId>\n"
}
],
"function_type": "static",
"source": {
"line": 494,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseSaveSlotToSharedDataStore",
"desc": "Saves the player's non-main slot to the shared store under the given key. See\n[HasSaveSlots.PromiseSaveSlotToSharedDataStore].",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "slotId",
"desc": "",
"lua_type": "SaveSlotData.SlotId"
},
{
"name": "key",
"desc": "",
"lua_type": "string\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<boolean>\n"
}
],
"function_type": "static",
"source": {
"line": 508,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseImportSlotFromSharedDataStore",
"desc": "Imports a shared-store export into a fresh non-main slot for the player. See\n[HasSaveSlots.PromiseImportSlotFromSharedDataStore].",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "key",
"desc": "",
"lua_type": "string\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<SaveSlotData.SlotId>\n"
}
],
"function_type": "static",
"source": {
"line": 523,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseExportSaveSlotToCode",
"desc": "Exports the player's slot to the shared store under a fresh code and resolves to it. See\n[HasSaveSlots.PromiseExportSaveSlotToCode].",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "slotId",
"desc": "",
"lua_type": "SaveSlotData.SlotId?\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<string>\n"
}
],
"function_type": "static",
"source": {
"line": 537,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseImportEphemeralSaveSlotFromCode",
"desc": "Loads the code into a fresh transferable ephemeral slot for the player. See\n[HasSaveSlots.PromiseImportEphemeralSaveSlotFromCode].",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "code",
"desc": "",
"lua_type": "string\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<SaveSlotData.SlotId>\n"
}
],
"function_type": "static",
"source": {
"line": 551,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "PromiseExportSaveSlotToJson",
"desc": "Exports the player's slot as a raw JSON string. See [HasSaveSlots.PromiseExportSaveSlotToJson].",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
},
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "slotId",
"desc": "",
"lua_type": "SaveSlotData.SlotId?\n"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise.Promise<string>\n"
}
],
"function_type": "static",
"source": {
"line": 564,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
},
{
"name": "Destroy",
"desc": "Destroys the service",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "SaveSlotService"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 577,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
}
],
"properties": [],
"types": [],
"name": "SaveSlotService",
"desc": "",
"source": {
"line": 5,
"path": "src/saveslot/src/Server/SaveSlotService.lua"
}
}