################### ISteamRemoteStorage ################### .. note:: This documentation is auto-generated. Methods marked with 🤖 are automatically generated bindings. Methods marked with ✍️ are manually implemented and methods marked with ✋ are currently not implemented. List of Functions ----------------- * :func:`RemoteStorage.BeginFileWriteBatch` * :func:`RemoteStorage.CommitPublishedFileUpdate` * :func:`RemoteStorage.CreatePublishedFileUpdateRequest` * :func:`RemoteStorage.DeletePublishedFile` * :func:`RemoteStorage.EndFileWriteBatch` * :func:`RemoteStorage.EnumeratePublishedFilesByUserAction` * :func:`RemoteStorage.EnumeratePublishedWorkshopFiles` * :func:`RemoteStorage.EnumerateUserPublishedFiles` * :func:`RemoteStorage.EnumerateUserSharedWorkshopFiles` * :func:`RemoteStorage.EnumerateUserSubscribedFiles` * :func:`RemoteStorage.FileDelete` * :func:`RemoteStorage.FileExists` * :func:`RemoteStorage.FileForget` * :func:`RemoteStorage.FilePersisted` * :func:`RemoteStorage.FileRead` * :func:`RemoteStorage.FileReadAsync` * :func:`RemoteStorage.FileReadAsyncComplete` * :func:`RemoteStorage.FileShare` * :func:`RemoteStorage.FileWrite` * :func:`RemoteStorage.FileWriteAsync` * :func:`RemoteStorage.FileWriteStreamCancel` * :func:`RemoteStorage.FileWriteStreamClose` * :func:`RemoteStorage.FileWriteStreamOpen` * :func:`RemoteStorage.FileWriteStreamWriteChunk` * :func:`RemoteStorage.GetCachedUGCCount` * :func:`RemoteStorage.GetCachedUGCHandle` * :func:`RemoteStorage.GetFileCount` * :func:`RemoteStorage.GetFileNameAndSize` * :func:`RemoteStorage.GetFileSize` * :func:`RemoteStorage.GetFileTimestamp` * :func:`RemoteStorage.GetLocalFileChange` * :func:`RemoteStorage.GetLocalFileChangeCount` * :func:`RemoteStorage.GetPublishedFileDetails` * :func:`RemoteStorage.GetPublishedItemVoteDetails` * :func:`RemoteStorage.GetQuota` * :func:`RemoteStorage.GetSyncPlatforms` * :func:`RemoteStorage.GetUGCDetails` * :func:`RemoteStorage.GetUGCDownloadProgress` * :func:`RemoteStorage.GetUserPublishedItemVoteDetails` * :func:`RemoteStorage.IsCloudEnabledForAccount` * :func:`RemoteStorage.IsCloudEnabledForApp` * :func:`RemoteStorage.PublishVideo` * :func:`RemoteStorage.PublishWorkshopFile` * :func:`RemoteStorage.SetCloudEnabledForApp` * :func:`RemoteStorage.SetSyncPlatforms` * :func:`RemoteStorage.SetUserPublishedFileAction` * :func:`RemoteStorage.SubscribePublishedFile` * :func:`RemoteStorage.UGCDownload` * :func:`RemoteStorage.UGCDownloadToLocation` * :func:`RemoteStorage.UGCRead` * :func:`RemoteStorage.UnsubscribePublishedFile` * :func:`RemoteStorage.UpdatePublishedFileDescription` * :func:`RemoteStorage.UpdatePublishedFileFile` * :func:`RemoteStorage.UpdatePublishedFilePreviewFile` * :func:`RemoteStorage.UpdatePublishedFileSetChangeDescription` * :func:`RemoteStorage.UpdatePublishedFileTags` * :func:`RemoteStorage.UpdatePublishedFileTitle` * :func:`RemoteStorage.UpdatePublishedFileVisibility` * :func:`RemoteStorage.UpdateUserPublishedItemVote` List of Callbacks ----------------- * :func:`RemoteStorage.OnRemoteStorageFileShareResult` * :func:`RemoteStorage.OnRemoteStoragePublishFileResult` * :func:`RemoteStorage.OnRemoteStorageDeletePublishedFileResult` * :func:`RemoteStorage.OnRemoteStorageEnumerateUserPublishedFilesResult` * :func:`RemoteStorage.OnRemoteStorageSubscribePublishedFileResult` * :func:`RemoteStorage.OnRemoteStorageEnumerateUserSubscribedFilesResult` * :func:`RemoteStorage.OnRemoteStorageUnsubscribePublishedFileResult` * :func:`RemoteStorage.OnRemoteStorageUpdatePublishedFileResult` * :func:`RemoteStorage.OnRemoteStorageDownloadUGCResult` * :func:`RemoteStorage.OnRemoteStorageGetPublishedFileDetailsResult` * :func:`RemoteStorage.OnRemoteStorageEnumerateWorkshopFilesResult` * :func:`RemoteStorage.OnRemoteStorageGetPublishedItemVoteDetailsResult` * :func:`RemoteStorage.OnRemoteStoragePublishedFileSubscribed` * :func:`RemoteStorage.OnRemoteStoragePublishedFileUnsubscribed` * :func:`RemoteStorage.OnRemoteStoragePublishedFileDeleted` * :func:`RemoteStorage.OnRemoteStorageUpdateUserPublishedItemVoteResult` * :func:`RemoteStorage.OnRemoteStorageUserVoteDetails` * :func:`RemoteStorage.OnRemoteStorageEnumerateUserSharedWorkshopFilesResult` * :func:`RemoteStorage.OnRemoteStorageSetUserPublishedFileActionResult` * :func:`RemoteStorage.OnRemoteStorageEnumeratePublishedFilesByUserActionResult` * :func:`RemoteStorage.OnRemoteStoragePublishFileProgress` * :func:`RemoteStorage.OnRemoteStoragePublishedFileUpdated` * :func:`RemoteStorage.OnRemoteStorageFileWriteAsyncComplete` * :func:`RemoteStorage.OnRemoteStorageFileReadAsyncComplete` * :func:`RemoteStorage.OnRemoteStorageLocalFileChange` Function Reference ------------------ .. function:: RemoteStorage.BeginFileWriteBatch() 🤖 **Auto-generated binding** :returns: (bool) Return value :SteamWorks: `BeginFileWriteBatch `_ **Example**:: Steam.RemoteStorage.BeginFileWriteBatch() Steam.RemoteStorage.FileWrite('config.dat', configData, #configData) Steam.RemoteStorage.FileWrite('progress.dat', progressData, #progressData) Steam.RemoteStorage.EndFileWriteBatch() .. function:: RemoteStorage.CommitPublishedFileUpdate(updateHandle, callback) 🤖 **Auto-generated binding** :param uint64 - PublishedFileUpdateHandle_t updateHandle: :param function callback: CallResult callback receiving struct :func:`RemoteStorageUpdatePublishedFileResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `CommitPublishedFileUpdate `_ .. function:: RemoteStorage.CreatePublishedFileUpdateRequest(unPublishedFileId) 🤖 **Auto-generated binding** :param uint64 - PublishedFileId_t unPublishedFileId: :returns: (uint64 - PublishedFileUpdateHandle_t) Return value :SteamWorks: `CreatePublishedFileUpdateRequest `_ .. function:: RemoteStorage.DeletePublishedFile(unPublishedFileId, callback) 🤖 **Auto-generated binding** :param uint64 - PublishedFileId_t unPublishedFileId: :param function callback: CallResult callback receiving struct :func:`RemoteStorageDeletePublishedFileResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `DeletePublishedFile `_ .. function:: RemoteStorage.EndFileWriteBatch() 🤖 **Auto-generated binding** :returns: (bool) Return value :SteamWorks: `EndFileWriteBatch `_ .. function:: RemoteStorage.EnumeratePublishedFilesByUserAction(eAction, unStartIndex, callback) 🤖 **Auto-generated binding** :param int - EWorkshopFileAction eAction: :param int unStartIndex: :param function callback: CallResult callback receiving struct :func:`RemoteStorageEnumeratePublishedFilesByUserActionResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `EnumeratePublishedFilesByUserAction `_ .. function:: RemoteStorage.EnumeratePublishedWorkshopFiles(eEnumerationType, unStartIndex, unCount, unDays, pTags, pUserTags, callback) 🤖 **Auto-generated binding** :param int - EWorkshopEnumerationType eEnumerationType: :param int unStartIndex: :param int unCount: :param int unDays: :param pTags: (:ref:`SteamParamStringArray_t `) :param pUserTags: (:ref:`SteamParamStringArray_t `) :param function callback: CallResult callback receiving struct :func:`RemoteStorageEnumerateWorkshopFilesResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `EnumeratePublishedWorkshopFiles `_ .. function:: RemoteStorage.EnumerateUserPublishedFiles(unStartIndex, callback) 🤖 **Auto-generated binding** :param int unStartIndex: :param function callback: CallResult callback receiving struct :func:`RemoteStorageEnumerateUserPublishedFilesResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `EnumerateUserPublishedFiles `_ .. function:: RemoteStorage.EnumerateUserSharedWorkshopFiles(steamId, unStartIndex, pRequiredTags, pExcludedTags, callback) 🤖 **Auto-generated binding** :param uint64 - CSteamID steamId: :param int unStartIndex: :param pRequiredTags: (:ref:`SteamParamStringArray_t `) :param pExcludedTags: (:ref:`SteamParamStringArray_t `) :param function callback: CallResult callback receiving struct :func:`RemoteStorageEnumerateUserPublishedFilesResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `EnumerateUserSharedWorkshopFiles `_ .. function:: RemoteStorage.EnumerateUserSubscribedFiles(unStartIndex, callback) 🤖 **Auto-generated binding** :param int unStartIndex: :param function callback: CallResult callback receiving struct :func:`RemoteStorageEnumerateUserSubscribedFilesResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `EnumerateUserSubscribedFiles `_ .. function:: RemoteStorage.FileDelete(pchFile) 🤖 **Auto-generated binding** :param str? pchFile: :returns: (bool) Return value :SteamWorks: `FileDelete `_ **Example**:: if Steam.RemoteStorage.FileDelete('old_save.txt') then print('Cloud file deleted') end .. function:: RemoteStorage.FileExists(pchFile) 🤖 **Auto-generated binding** :param str? pchFile: :returns: (bool) Return value :SteamWorks: `FileExists `_ **Example**:: if Steam.RemoteStorage.FileExists('savegame.txt') then loadCloudSave() else createNewSave() end .. function:: RemoteStorage.FileForget(pchFile) 🤖 **Auto-generated binding** :param str? pchFile: :returns: (bool) Return value :SteamWorks: `FileForget `_ .. function:: RemoteStorage.FilePersisted(pchFile) 🤖 **Auto-generated binding** :param str? pchFile: :returns: (bool) Return value :SteamWorks: `FilePersisted `_ **Example**:: if Steam.RemoteStorage.FilePersisted('savegame.txt') then print('File is synchronized to the cloud') end .. function:: RemoteStorage.FileRead(pchFile, cubDataToRead) 🤖 **Auto-generated binding** :param str? pchFile: :param int? cubDataToRead: size of the buffer to allocate for ``pvData``. If ``nil`` then the buffer will be ``NULL``. :returns: (int) Return value :returns: (str) ``pvData`` :SteamWorks: `FileRead `_ **Signature differences from C++ API:** * Parameter ``pvData`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. **Example**:: local size = Steam.RemoteStorage.GetFileSize('savegame.txt') local _, data = Steam.RemoteStorage.FileRead('savegame.txt', size) if data then loadSaveData(data) end .. function:: RemoteStorage.FileReadAsync(pchFile, nOffset, cubToRead, callback) 🤖 **Auto-generated binding** :param str? pchFile: :param int nOffset: :param int cubToRead: :param function callback: CallResult callback receiving struct :func:`RemoteStorageFileReadAsyncComplete_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `FileReadAsync `_ **Example**:: Steam.RemoteStorage.FileReadAsync('savegame.dat', 0, fileSize, function(data, err) if not err and data.m_eResult == Steam.k_EResultOK then local ok, fileData = Steam.RemoteStorage.FileReadAsyncComplete(data.m_hFileReadAsync, fileSize) if ok then loadSaveData(fileData) end end end) .. function:: RemoteStorage.FileReadAsyncComplete(hReadCall, cubToRead) 🤖 **Auto-generated binding** :param uint64 hReadCall: :param int? cubToRead: size of the buffer to allocate for ``pvBuffer``. If ``nil`` then the buffer will be ``NULL``. :returns: (bool) Return value :returns: (str) ``pvBuffer`` :SteamWorks: `FileReadAsyncComplete `_ **Signature differences from C++ API:** * Parameter ``pvBuffer`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. **Notes:** * See :func:`RemoteStorage.FileReadAsync`'s example. .. function:: RemoteStorage.FileShare(pchFile, callback) 🤖 **Auto-generated binding** :param str? pchFile: :param function callback: CallResult callback receiving struct :func:`RemoteStorageFileShareResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `FileShare `_ .. function:: RemoteStorage.FileWrite(pchFile, pvData, cubData) 🤖 **Auto-generated binding** :param str? pchFile: :param str? pvData: :param int cubData: size of the input array ``pvData`` :returns: (bool) Return value :SteamWorks: `FileWrite `_ **Example**:: local data = 'player_name=Alice level=42 ' local ok = Steam.RemoteStorage.FileWrite('savegame.txt', data, #data) if not ok then print('Failed to write cloud save') end .. function:: RemoteStorage.FileWriteAsync(pchFile, pvData, cubData, callback) 🤖 **Auto-generated binding** :param str? pchFile: :param str? pvData: :param int cubData: size of the input array ``pvData`` :param function callback: CallResult callback receiving struct :func:`RemoteStorageFileWriteAsyncComplete_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `FileWriteAsync `_ **Example**:: Steam.RemoteStorage.FileWriteAsync('autosave.dat', saveData, #saveData, function(data, err) if err or data.m_eResult ~= Steam.k_EResultOK then print('Async write failed') else print('Cloud save written asynchronously') end end) .. function:: RemoteStorage.FileWriteStreamCancel(writeHandle) 🤖 **Auto-generated binding** :param uint64 - UGCFileWriteStreamHandle_t writeHandle: :returns: (bool) Return value :SteamWorks: `FileWriteStreamCancel `_ .. function:: RemoteStorage.FileWriteStreamClose(writeHandle) 🤖 **Auto-generated binding** :param uint64 - UGCFileWriteStreamHandle_t writeHandle: :returns: (bool) Return value :SteamWorks: `FileWriteStreamClose `_ .. function:: RemoteStorage.FileWriteStreamOpen(pchFile) 🤖 **Auto-generated binding** :param str? pchFile: :returns: (uint64 - UGCFileWriteStreamHandle_t) Return value :SteamWorks: `FileWriteStreamOpen `_ .. function:: RemoteStorage.FileWriteStreamWriteChunk(writeHandle, pvData, cubData) 🤖 **Auto-generated binding** :param uint64 - UGCFileWriteStreamHandle_t writeHandle: :param str? pvData: :param int cubData: size of the input array ``pvData`` :returns: (bool) Return value :SteamWorks: `FileWriteStreamWriteChunk `_ .. function:: RemoteStorage.GetCachedUGCCount() 🤖 **Auto-generated binding** :returns: (int) Return value :SteamWorks: `GetCachedUGCCount `_ .. function:: RemoteStorage.GetCachedUGCHandle(iCachedContent) 🤖 **Auto-generated binding** :param int iCachedContent: :returns: (uint64 - UGCHandle_t) Return value :SteamWorks: `GetCachedUGCHandle `_ .. function:: RemoteStorage.GetFileCount() 🤖 **Auto-generated binding** :returns: (int) Return value :SteamWorks: `GetFileCount `_ **Example**:: local count = Steam.RemoteStorage.GetFileCount() for i = 0, count - 1 do local name, size = Steam.RemoteStorage.GetFileNameAndSize(i) print(name .. ' (' .. size .. ' bytes)') end .. function:: RemoteStorage.GetFileNameAndSize(iFile) 🤖 **Auto-generated binding** :param int iFile: :returns: (str) Return value :returns: (int) ``pnFileSizeInBytes`` :SteamWorks: `GetFileNameAndSize `_ **Signature differences from C++ API:** * Parameter ``pnFileSizeInBytes`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. **Notes:** * See :func:`RemoteStorage.GetFileCount`'s example. .. function:: RemoteStorage.GetFileSize(pchFile) 🤖 **Auto-generated binding** :param str? pchFile: :returns: (int) Return value :SteamWorks: `GetFileSize `_ **Example**:: local size = Steam.RemoteStorage.GetFileSize('savegame.txt') print('Save file size: ' .. size .. ' bytes') .. function:: RemoteStorage.GetFileTimestamp(pchFile) 🤖 **Auto-generated binding** :param str? pchFile: :returns: (uint64) Return value :SteamWorks: `GetFileTimestamp `_ **Example**:: local timestamp = Steam.RemoteStorage.GetFileTimestamp('savegame.txt') print('Last modified: ' .. os.date('%c', timestamp)) .. function:: RemoteStorage.GetLocalFileChange(iFile) 🤖 **Auto-generated binding** :param int iFile: :returns: (str) Return value :returns: (int) ``pEChangeType`` :returns: (int) ``pEFilePathType`` :SteamWorks: `GetLocalFileChange `_ **Signature differences from C++ API:** * Parameter ``pEChangeType`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. * Parameter ``pEFilePathType`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. .. function:: RemoteStorage.GetLocalFileChangeCount() 🤖 **Auto-generated binding** :returns: (int) Return value :SteamWorks: `GetLocalFileChangeCount `_ **Example**:: -- Check for external changes (e.g. from another PC) local count = Steam.RemoteStorage.GetLocalFileChangeCount() for i = 0, count - 1 do local name, changeType = Steam.RemoteStorage.GetLocalFileChange(i) print('Cloud file changed:', name, changeType) end .. function:: RemoteStorage.GetPublishedFileDetails(unPublishedFileId, unMaxSecondsOld, callback) 🤖 **Auto-generated binding** :param uint64 - PublishedFileId_t unPublishedFileId: :param int unMaxSecondsOld: :param function callback: CallResult callback receiving struct :func:`RemoteStorageGetPublishedFileDetailsResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `GetPublishedFileDetails `_ .. function:: RemoteStorage.GetPublishedItemVoteDetails(unPublishedFileId, callback) 🤖 **Auto-generated binding** :param uint64 - PublishedFileId_t unPublishedFileId: :param function callback: CallResult callback receiving struct :func:`RemoteStorageGetPublishedItemVoteDetailsResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `GetPublishedItemVoteDetails `_ .. function:: RemoteStorage.GetQuota() 🤖 **Auto-generated binding** :returns: (bool) Return value :returns: (uint64) ``pnTotalBytes`` :returns: (uint64) ``puAvailableBytes`` :SteamWorks: `GetQuota `_ **Signature differences from C++ API:** * Parameter ``pnTotalBytes`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. * Parameter ``puAvailableBytes`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. **Example**:: local _, total, available = Steam.RemoteStorage.GetQuota() print(string.format('Cloud storage: %d/%d bytes used', total - available, total)) .. function:: RemoteStorage.GetSyncPlatforms(pchFile) 🤖 **Auto-generated binding** :param str? pchFile: :returns: (int - ERemoteStoragePlatform) Return value :SteamWorks: `GetSyncPlatforms `_ .. function:: RemoteStorage.GetUGCDetails(hContent) 🤖 **Auto-generated binding** :param uint64 - UGCHandle_t hContent: :returns: (bool) Return value :returns: (int) ``pnAppID`` :returns: (str) ``ppchName`` :returns: (int) ``pnFileSizeInBytes`` :returns: (uint64) ``pSteamIDOwner`` :SteamWorks: `GetUGCDetails `_ **Signature differences from C++ API:** * Parameter ``pnAppID`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. * Parameter ``ppchName`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. * Parameter ``pnFileSizeInBytes`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. * Parameter ``pSteamIDOwner`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. .. function:: RemoteStorage.GetUGCDownloadProgress(hContent) 🤖 **Auto-generated binding** :param uint64 - UGCHandle_t hContent: :returns: (bool) Return value :returns: (int) ``pnBytesDownloaded`` :returns: (int) ``pnBytesExpected`` :SteamWorks: `GetUGCDownloadProgress `_ **Signature differences from C++ API:** * Parameter ``pnBytesDownloaded`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. * Parameter ``pnBytesExpected`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. .. function:: RemoteStorage.GetUserPublishedItemVoteDetails(unPublishedFileId, callback) 🤖 **Auto-generated binding** :param uint64 - PublishedFileId_t unPublishedFileId: :param function callback: CallResult callback receiving struct :func:`RemoteStorageGetPublishedItemVoteDetailsResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `GetUserPublishedItemVoteDetails `_ .. function:: RemoteStorage.IsCloudEnabledForAccount() 🤖 **Auto-generated binding** :returns: (bool) Return value :SteamWorks: `IsCloudEnabledForAccount `_ .. function:: RemoteStorage.IsCloudEnabledForApp() 🤖 **Auto-generated binding** :returns: (bool) Return value :SteamWorks: `IsCloudEnabledForApp `_ **Example**:: if Steam.RemoteStorage.IsCloudEnabledForApp() then syncCloudSaves() end .. function:: RemoteStorage.PublishVideo(eVideoProvider, pchVideoAccount, pchVideoIdentifier, pchPreviewFile, nConsumerAppId, pchTitle, pchDescription, eVisibility, callback) 🤖 **Auto-generated binding** :param int - EWorkshopVideoProvider eVideoProvider: :param str? pchVideoAccount: :param str? pchVideoIdentifier: :param str? pchPreviewFile: :param int - AppId_t nConsumerAppId: :param str? pchTitle: :param str? pchDescription: :param int - ERemoteStoragePublishedFileVisibility eVisibility: :param function callback: CallResult callback receiving struct :func:`RemoteStoragePublishFileProgress_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :returns: (:ref:`SteamParamStringArray_t `) ``pTags`` :SteamWorks: `PublishVideo `_ **Signature differences from C++ API:** * Parameter ``pTags`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. .. function:: RemoteStorage.PublishWorkshopFile(pchFile, pchPreviewFile, nConsumerAppId, pchTitle, pchDescription, eVisibility, eWorkshopFileType, callback) 🤖 **Auto-generated binding** :param str? pchFile: :param str? pchPreviewFile: :param int - AppId_t nConsumerAppId: :param str? pchTitle: :param str? pchDescription: :param int - ERemoteStoragePublishedFileVisibility eVisibility: :param int - EWorkshopFileType eWorkshopFileType: :param function callback: CallResult callback receiving struct :func:`RemoteStoragePublishFileProgress_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :returns: (:ref:`SteamParamStringArray_t `) ``pTags`` :SteamWorks: `PublishWorkshopFile `_ **Signature differences from C++ API:** * Parameter ``pTags`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. .. function:: RemoteStorage.SetCloudEnabledForApp(bEnabled) 🤖 **Auto-generated binding** :param bool bEnabled: :SteamWorks: `SetCloudEnabledForApp `_ **Example**:: -- Allow user to toggle cloud saves Steam.RemoteStorage.SetCloudEnabledForApp(userWantsCloud) .. function:: RemoteStorage.SetSyncPlatforms(pchFile, eRemoteStoragePlatform) 🤖 **Auto-generated binding** :param str? pchFile: :param int - ERemoteStoragePlatform eRemoteStoragePlatform: :returns: (bool) Return value :SteamWorks: `SetSyncPlatforms `_ .. function:: RemoteStorage.SetUserPublishedFileAction(unPublishedFileId, eAction, callback) 🤖 **Auto-generated binding** :param uint64 - PublishedFileId_t unPublishedFileId: :param int - EWorkshopFileAction eAction: :param function callback: CallResult callback receiving struct :func:`RemoteStorageSetUserPublishedFileActionResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `SetUserPublishedFileAction `_ .. function:: RemoteStorage.SubscribePublishedFile(unPublishedFileId, callback) 🤖 **Auto-generated binding** :param uint64 - PublishedFileId_t unPublishedFileId: :param function callback: CallResult callback receiving struct :func:`RemoteStorageSubscribePublishedFileResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `SubscribePublishedFile `_ .. function:: RemoteStorage.UGCDownload(hContent, unPriority, callback) 🤖 **Auto-generated binding** :param uint64 - UGCHandle_t hContent: :param int unPriority: :param function callback: CallResult callback receiving struct :func:`RemoteStorageDownloadUGCResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `UGCDownload `_ .. function:: RemoteStorage.UGCDownloadToLocation(hContent, pchLocation, unPriority, callback) 🤖 **Auto-generated binding** :param uint64 - UGCHandle_t hContent: :param str? pchLocation: :param int unPriority: :param function callback: CallResult callback receiving struct :func:`RemoteStorageDownloadUGCResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `UGCDownloadToLocation `_ .. function:: RemoteStorage.UGCRead(hContent, cubDataToRead, cOffset, eAction) 🤖 **Auto-generated binding** :param uint64 - UGCHandle_t hContent: :param int? cubDataToRead: size of the buffer to allocate for ``pvData``. If ``nil`` then the buffer will be ``NULL``. :param int cOffset: :param int - EUGCReadAction eAction: :returns: (int) Return value :returns: (str) ``pvData`` :SteamWorks: `UGCRead `_ **Signature differences from C++ API:** * Parameter ``pvData`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. .. function:: RemoteStorage.UnsubscribePublishedFile(unPublishedFileId, callback) 🤖 **Auto-generated binding** :param uint64 - PublishedFileId_t unPublishedFileId: :param function callback: CallResult callback receiving struct :func:`RemoteStorageUnsubscribePublishedFileResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `UnsubscribePublishedFile `_ .. function:: RemoteStorage.UpdatePublishedFileDescription(updateHandle, pchDescription) 🤖 **Auto-generated binding** :param uint64 - PublishedFileUpdateHandle_t updateHandle: :param str? pchDescription: :returns: (bool) Return value :SteamWorks: `UpdatePublishedFileDescription `_ .. function:: RemoteStorage.UpdatePublishedFileFile(updateHandle, pchFile) 🤖 **Auto-generated binding** :param uint64 - PublishedFileUpdateHandle_t updateHandle: :param str? pchFile: :returns: (bool) Return value :SteamWorks: `UpdatePublishedFileFile `_ .. function:: RemoteStorage.UpdatePublishedFilePreviewFile(updateHandle, pchPreviewFile) 🤖 **Auto-generated binding** :param uint64 - PublishedFileUpdateHandle_t updateHandle: :param str? pchPreviewFile: :returns: (bool) Return value :SteamWorks: `UpdatePublishedFilePreviewFile `_ .. function:: RemoteStorage.UpdatePublishedFileSetChangeDescription(updateHandle, pchChangeDescription) 🤖 **Auto-generated binding** :param uint64 - PublishedFileUpdateHandle_t updateHandle: :param str? pchChangeDescription: :returns: (bool) Return value :SteamWorks: `UpdatePublishedFileSetChangeDescription `_ .. function:: RemoteStorage.UpdatePublishedFileTags(updateHandle) 🤖 **Auto-generated binding** :param uint64 - PublishedFileUpdateHandle_t updateHandle: :returns: (bool) Return value :returns: (:ref:`SteamParamStringArray_t `) ``pTags`` :SteamWorks: `UpdatePublishedFileTags `_ **Signature differences from C++ API:** * Parameter ``pTags`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. .. function:: RemoteStorage.UpdatePublishedFileTitle(updateHandle, pchTitle) 🤖 **Auto-generated binding** :param uint64 - PublishedFileUpdateHandle_t updateHandle: :param str? pchTitle: :returns: (bool) Return value :SteamWorks: `UpdatePublishedFileTitle `_ .. function:: RemoteStorage.UpdatePublishedFileVisibility(updateHandle, eVisibility) 🤖 **Auto-generated binding** :param uint64 - PublishedFileUpdateHandle_t updateHandle: :param int - ERemoteStoragePublishedFileVisibility eVisibility: :returns: (bool) Return value :SteamWorks: `UpdatePublishedFileVisibility `_ .. function:: RemoteStorage.UpdateUserPublishedItemVote(unPublishedFileId, bVoteUp, callback) 🤖 **Auto-generated binding** :param uint64 - PublishedFileId_t unPublishedFileId: :param bool bVoteUp: :param function callback: CallResult callback receiving struct :func:`RemoteStorageUpdateUserPublishedItemVoteResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `UpdateUserPublishedItemVote `_ Callbacks --------- .. function:: RemoteStorage.OnRemoteStorageFileShareResult Callback for `RemoteStorageFileShareResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_hFile** *(uint64 - UGCHandle_t)* * **data.m_rgchFilename** *(string)* .. function:: RemoteStorage.OnRemoteStoragePublishFileResult Callback for `RemoteStoragePublishFileResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nPublishedFileId** *(uint64 - PublishedFileId_t)* * **data.m_bUserNeedsToAcceptWorkshopLegalAgreement** *(bool)* .. function:: RemoteStorage.OnRemoteStorageDeletePublishedFileResult Callback for `RemoteStorageDeletePublishedFileResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nPublishedFileId** *(uint64 - PublishedFileId_t)* .. function:: RemoteStorage.OnRemoteStorageEnumerateUserPublishedFilesResult Callback for `RemoteStorageEnumerateUserPublishedFilesResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nResultsReturned** *(int)* * **data.m_nTotalResultCount** *(int)* * **data.m_rgPublishedFileId** *(uint64[] - PublishedFileId_t)* .. function:: RemoteStorage.OnRemoteStorageSubscribePublishedFileResult Callback for `RemoteStorageSubscribePublishedFileResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nPublishedFileId** *(uint64 - PublishedFileId_t)* .. function:: RemoteStorage.OnRemoteStorageEnumerateUserSubscribedFilesResult Callback for `RemoteStorageEnumerateUserSubscribedFilesResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nResultsReturned** *(int)* * **data.m_nTotalResultCount** *(int)* * **data.m_rgPublishedFileId** *(uint64[] - PublishedFileId_t)* * **data.m_rgRTimeSubscribed** *(int)* .. function:: RemoteStorage.OnRemoteStorageUnsubscribePublishedFileResult Callback for `RemoteStorageUnsubscribePublishedFileResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nPublishedFileId** *(uint64 - PublishedFileId_t)* .. function:: RemoteStorage.OnRemoteStorageUpdatePublishedFileResult Callback for `RemoteStorageUpdatePublishedFileResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nPublishedFileId** *(uint64 - PublishedFileId_t)* * **data.m_bUserNeedsToAcceptWorkshopLegalAgreement** *(bool)* .. function:: RemoteStorage.OnRemoteStorageDownloadUGCResult Callback for `RemoteStorageDownloadUGCResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_hFile** *(uint64 - UGCHandle_t)* * **data.m_nAppID** *(int - AppId_t)* * **data.m_nSizeInBytes** *(int)* * **data.m_pchFileName** *(string)* * **data.m_ulSteamIDOwner** *(uint64)* .. function:: RemoteStorage.OnRemoteStorageGetPublishedFileDetailsResult Callback for `RemoteStorageGetPublishedFileDetailsResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nPublishedFileId** *(uint64 - PublishedFileId_t)* * **data.m_nCreatorAppID** *(int - AppId_t)* * **data.m_nConsumerAppID** *(int - AppId_t)* * **data.m_rgchTitle** *(string)* * **data.m_rgchDescription** *(string)* * **data.m_hFile** *(uint64 - UGCHandle_t)* * **data.m_hPreviewFile** *(uint64 - UGCHandle_t)* * **data.m_ulSteamIDOwner** *(uint64)* * **data.m_rtimeCreated** *(int)* * **data.m_rtimeUpdated** *(int)* * **data.m_eVisibility** *(int - ERemoteStoragePublishedFileVisibility)* * **data.m_bBanned** *(bool)* * **data.m_rgchTags** *(string)* * **data.m_bTagsTruncated** *(bool)* * **data.m_pchFileName** *(string)* * **data.m_nFileSize** *(int)* * **data.m_nPreviewFileSize** *(int)* * **data.m_rgchURL** *(string)* * **data.m_eFileType** *(int - EWorkshopFileType)* * **data.m_bAcceptedForUse** *(bool)* .. function:: RemoteStorage.OnRemoteStorageEnumerateWorkshopFilesResult Callback for `RemoteStorageEnumerateWorkshopFilesResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nResultsReturned** *(int)* * **data.m_nTotalResultCount** *(int)* * **data.m_rgPublishedFileId** *(uint64[] - PublishedFileId_t)* * **data.m_rgScore** *(float)* * **data.m_nAppId** *(int - AppId_t)* * **data.m_unStartIndex** *(int)* .. function:: RemoteStorage.OnRemoteStorageGetPublishedItemVoteDetailsResult Callback for `RemoteStorageGetPublishedItemVoteDetailsResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_unPublishedFileId** *(uint64 - PublishedFileId_t)* * **data.m_nVotesFor** *(int)* * **data.m_nVotesAgainst** *(int)* * **data.m_nReports** *(int)* * **data.m_fScore** *(float)* .. function:: RemoteStorage.OnRemoteStoragePublishedFileSubscribed Callback for `RemoteStoragePublishedFileSubscribed_t `_ **callback(data)** receives: * **data.m_nPublishedFileId** *(uint64 - PublishedFileId_t)* * **data.m_nAppID** *(int - AppId_t)* .. function:: RemoteStorage.OnRemoteStoragePublishedFileUnsubscribed Callback for `RemoteStoragePublishedFileUnsubscribed_t `_ **callback(data)** receives: * **data.m_nPublishedFileId** *(uint64 - PublishedFileId_t)* * **data.m_nAppID** *(int - AppId_t)* .. function:: RemoteStorage.OnRemoteStoragePublishedFileDeleted Callback for `RemoteStoragePublishedFileDeleted_t `_ **callback(data)** receives: * **data.m_nPublishedFileId** *(uint64 - PublishedFileId_t)* * **data.m_nAppID** *(int - AppId_t)* .. function:: RemoteStorage.OnRemoteStorageUpdateUserPublishedItemVoteResult Callback for `RemoteStorageUpdateUserPublishedItemVoteResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nPublishedFileId** *(uint64 - PublishedFileId_t)* .. function:: RemoteStorage.OnRemoteStorageUserVoteDetails Callback for `RemoteStorageUserVoteDetails_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nPublishedFileId** *(uint64 - PublishedFileId_t)* * **data.m_eVote** *(int - EWorkshopVote)* .. function:: RemoteStorage.OnRemoteStorageEnumerateUserSharedWorkshopFilesResult Callback for `RemoteStorageEnumerateUserSharedWorkshopFilesResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nResultsReturned** *(int)* * **data.m_nTotalResultCount** *(int)* * **data.m_rgPublishedFileId** *(uint64[] - PublishedFileId_t)* .. function:: RemoteStorage.OnRemoteStorageSetUserPublishedFileActionResult Callback for `RemoteStorageSetUserPublishedFileActionResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nPublishedFileId** *(uint64 - PublishedFileId_t)* * **data.m_eAction** *(int - EWorkshopFileAction)* .. function:: RemoteStorage.OnRemoteStorageEnumeratePublishedFilesByUserActionResult Callback for `RemoteStorageEnumeratePublishedFilesByUserActionResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_eAction** *(int - EWorkshopFileAction)* * **data.m_nResultsReturned** *(int)* * **data.m_nTotalResultCount** *(int)* * **data.m_rgPublishedFileId** *(uint64[] - PublishedFileId_t)* * **data.m_rgRTimeUpdated** *(int)* .. function:: RemoteStorage.OnRemoteStoragePublishFileProgress Callback for `RemoteStoragePublishFileProgress_t `_ **callback(data)** receives: * **data.m_dPercentFile** *(float)* * **data.m_bPreview** *(bool)* .. function:: RemoteStorage.OnRemoteStoragePublishedFileUpdated Callback for `RemoteStoragePublishedFileUpdated_t `_ **callback(data)** receives: * **data.m_nPublishedFileId** *(uint64 - PublishedFileId_t)* * **data.m_nAppID** *(int - AppId_t)* * **data.m_ulUnused** *(uint64)* .. function:: RemoteStorage.OnRemoteStorageFileWriteAsyncComplete Callback for `RemoteStorageFileWriteAsyncComplete_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* .. function:: RemoteStorage.OnRemoteStorageFileReadAsyncComplete Callback for `RemoteStorageFileReadAsyncComplete_t `_ **callback(data)** receives: * **data.m_hFileReadAsync** *(uint64 - SteamAPICall_t)* * **data.m_eResult** *(int - EResult)* * **data.m_nOffset** *(int)* * **data.m_cubRead** *(int)* .. function:: RemoteStorage.OnRemoteStorageLocalFileChange Callback for `RemoteStorageLocalFileChange_t `_ **callback(data)** receives no fields (notification only). **Example**:: function Steam.RemoteStorage.OnRemoteStorageLocalFileChange() local count = Steam.RemoteStorage.GetLocalFileChangeCount() print('Cloud file changes detected:', count) reloadCloudSaves() end