Skip to main content

SaveSlotService

Functions

_promiseSelectDefaultSlot

SaveSlotService._promiseSelectDefaultSlot(
maidany,
hasSaveSlotsany
) → Promise.Promise<any>?

Selects the player's last active slot, or creates and selects the default slot. Does nothing when explicit selection is required.

Every hop is maid-owned and re-checks the binder for the same reason as the caller: any of these reads can settle after the player left, and continuing into the destroyed binder throws.

RequireExplicitSelection

SaveSlotService.RequireExplicitSelection(selfSaveSlotService) → ()

Requires explicit slot selection

GetExplicitSelectionRequired

SaveSlotService.GetExplicitSelectionRequired(selfSaveSlotService) → boolean

Returns whether explicit slot selection is required

PromiseIsInternalTeleport

SaveSlotService.PromiseIsInternalTeleport(
playerPlayer
) → Promise<boolean>

Resolves whether the player teleported in carrying a save-slot id -- i.e. arrived via an internal slot teleport rather than a fresh join. Presence-only (it does not validate the slot still exists); use HasSaveSlots.PromiseHasSaveSlotFromTeleport when existence matters. It is a promise because a client-initiated teleport only reaches the server once the client replicates its arrived data.

SetMaxSlotCount

SaveSlotService.SetMaxSlotCount(
maxSlotCountnumber
) → ()

Sets the max slot count

SetUnlimitedSlots

SaveSlotService.SetUnlimitedSlots(selfSaveSlotService) → ()

Removes the slot ceiling, so HasSaveSlots.PromiseSelectNewSaveSlot always allocates the next free index. A thin alias over SaveSlotService.SetMaxSlotCount with an unbounded count; same before-Start guard applies.

SetCodeGenerator

SaveSlotService.SetCodeGenerator(
generatorSaveSlotCodeUtils.CodeGenerator
) → ()

Sets the share-code generator applied to every player's exports (see SaveSlotCodeUtils.CodeGenerator), so a game can choose a code format that suits its players. Defaults to SaveSlotCodeUtils.generateDefaultCode. Must be called before Start.

RegisterDefaultSummaryProvider

SaveSlotService.RegisterDefaultSummaryProvider(
namestring,
providerHasSaveSlots.SummaryProvider
) → () → ()

Registers a named default summary provider, applied to every player's save slots. Each provider's current value is aggregated into the active slot's Summary, keyed by name. Registering or unregistering reflects on all bound players. Returns a function that unregisters the provider (also give it to a [Maid]).

RegisterPreSelectCallback

SaveSlotService.RegisterPreSelectCallback(
callbackPreSelectCallback
) → () → ()--

Removes the callback

Registers a callback to run for every player immediately before a slot becomes active, whatever selected it. It runs with the previous selection still in place, and what it returns decides what happens next:

  • nothing (or true) -- allow the selection
  • false -- refuse it; the selection rejects and the active slot is left alone
  • a promise -- hold the selection open until it settles, refusing if it resolves false

An error or a rejection is warned about and allows the selection: only a stated false refuses. There is no timeout, so keep the work bounded.

PromisePreSelect

SaveSlotService.PromisePreSelect(
playerPlayer,
slotIdSlotId,
previousSlotIdSlotId?
) → Promise<boolean>--

False when any callback refused

Runs every registered pre-select callback for a slot about to become active, resolving with whether the selection may proceed once the ones that returned a promise have settled. Called by HasSaveSlots as each selection commits.

Every callback runs, even once one has refused: they are independent, and one that only wanted to settle state must not be skipped because an unrelated one said no.

ObserveActiveSlotStoreBrio

SaveSlotService.ObserveActiveSlotStoreBrio(
playerPlayer
) → Observable.Observable<Brio.Brio<DataStoreStage.DataStoreStage>>

Observes the DataStoreStage for the player's active slot as a Brio

PromiseActiveSlotStore

SaveSlotService.PromiseActiveSlotStore(
playerPlayer
) → Promise.Promise<DataStoreStage.DataStoreStage?>

Returns the DataStoreStage for the player's active slot

PromiseHasSlot

SaveSlotService.PromiseHasSlot(
playerPlayer,
slotIdSaveSlotData.SlotId
) → Promise.Promise<boolean>

Returns whether the player has a slot with the given ID

PromiseSelectSlot

SaveSlotService.PromiseSelectSlot(
playerPlayer,
slotIdSaveSlotData.SlotId
) → Promise.Promise<DataStoreStage.DataStoreStage>

Selects the slot with the given ID for the player

PromiseCreateSlot

SaveSlotService.PromiseCreateSlot(
playerPlayer,
slotIndexnumber,
metadataSaveSlotData.SaveSlotMetadata?
) → Promise.Promise<any>

Creates a slot for the player at the given index

PromiseDeleteSlot

SaveSlotService.PromiseDeleteSlot(
playerPlayer,
slotIdSaveSlotData.SlotId
) → Promise.Promise<any>

Deletes the slot with the given ID for the player

PromiseResetActiveSlot

SaveSlotService.PromiseResetActiveSlot(
playerPlayer
) → Promise.Promise<any>

Resets the player's active slot to a fresh empty one

PromisePersistEphemeralSlot

SaveSlotService.PromisePersistEphemeralSlot(
playerPlayer,
slotIdSaveSlotData.SlotId?
) → Promise.Promise<SaveSlotData.SlotId>

Turns the player's ephemeral session into a real save slot and continues play on it, resolving to the new slot id. See HasSaveSlots.PromisePersistEphemeralSlot.

PromiseExportSlot

SaveSlotService.PromiseExportSlot(
playerPlayer,
slotIdSaveSlotData.SlotId
) → Promise.Promise<SaveSlotExportUtils.SaveSlotExport>

Exports the player's non-main slot into a serializable table. See HasSaveSlots.PromiseExportSlot.

PromiseImportSlot

SaveSlotService.PromiseImportSlot(
playerPlayer,
exportSaveSlotExportUtils.SaveSlotExport
) → Promise.Promise<SaveSlotData.SlotId>

Imports an exported slot into a fresh non-main slot for the player, resolving to the new slot id. See HasSaveSlots.PromiseImportSlot.

PromiseSaveSlotToSharedDataStore

SaveSlotService.PromiseSaveSlotToSharedDataStore(
playerPlayer,
slotIdSaveSlotData.SlotId,
keystring
) → Promise.Promise<boolean>

Saves the player's non-main slot to the shared store under the given key. See HasSaveSlots.PromiseSaveSlotToSharedDataStore.

PromiseImportSlotFromSharedDataStore

SaveSlotService.PromiseImportSlotFromSharedDataStore(
playerPlayer,
keystring
) → Promise.Promise<SaveSlotData.SlotId>

Imports a shared-store export into a fresh non-main slot for the player. See HasSaveSlots.PromiseImportSlotFromSharedDataStore.

PromiseExportSaveSlotToCode

SaveSlotService.PromiseExportSaveSlotToCode(
playerPlayer,
slotIdSaveSlotData.SlotId?
) → Promise.Promise<string>

Exports the player's slot to the shared store under a fresh code and resolves to it. See HasSaveSlots.PromiseExportSaveSlotToCode.

PromiseImportEphemeralSaveSlotFromCode

SaveSlotService.PromiseImportEphemeralSaveSlotFromCode(
playerPlayer,
codestring
) → Promise.Promise<SaveSlotData.SlotId>

Loads the code into a fresh transferable ephemeral slot for the player. See HasSaveSlots.PromiseImportEphemeralSaveSlotFromCode.

PromiseExportSaveSlotToJson

SaveSlotService.PromiseExportSaveSlotToJson(
playerPlayer,
slotIdSaveSlotData.SlotId?
) → Promise.Promise<string>

Exports the player's slot as a raw JSON string. See HasSaveSlots.PromiseExportSaveSlotToJson.

Destroy

SaveSlotService.Destroy(selfSaveSlotService) → ()

Destroys the service

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"
    }
}