因為網路連線不佳或其他問題導致資料商店無法存取資料。若要處理錯誤並以錯誤碼返回訊息,請將資料商店功能包在 pcall() 裡。
錯誤代碼參考
錯誤碼 | 錯誤名稱 | 錯誤訊息 | 注意 | |
---|---|---|---|---|
101 | KeyNameEmpty | 鑰匙名稱不能為空。 | 檢查鑰匙輸入到資料存取功能是否為空字串。 | |
102 | KeyNameLimit | 鑰匙名稱超出 50 個字元限制。 | 檢查鑰匙輸入到資料存取功能的長度是否超過 50。 | |
103 | ValueNotAllowed | 無法在 DataStore 中允許 X。 | 一個壞的更新函數返回了類型 X 的值。 | |
104 | CantStoreValue | 無法將 X 存放在 DataStore 中。 | 更新功能返回了一個值為 X 的值,該值並未被序列化。 | |
105 | ValueTooLarge | 串值超過 X 限制。 | 如果你設定了 SetAsync() 或 UpdateAsync() ,值的串化長度不能超過 X 。要檢查值串化長度是否為 X ,請使用 1> Class.HttpService:JSONEncode()|JSONEncode()1> 。 | |
106 | MaxValueInvalid | MaxValue 必須是整數。 | 如果您將最大值傳給 GetSortedAsync() 為一個 OrderedDataStore ,它必須是整數。 | |
106 | MinValueInvalid | MinValue 必須是整數。 | 如果您將最小值傳递給 GetSortedAsync() 為一個 OrderedDataStore,它必須是整數。 | |
106 | PageSizeGreater | PageSize 必須在預設範圍內。 | 最小 OrderedDataStore 頁面尺寸為 1。 | |
106 | PageSizeLesser | PageSize 必須在預設範圍內。 | Class.OrderedDataStore 的最大頁面尺寸為 100。 | |
107 | MinMaxOrderInvalid | MaxValue 必須大於或等於 MinValue 。 | 最大值必須大於或等於最低值,以便 GetSortedAsync() 。 | |
301 | GetAsyncThrottle | GetAsync 請求已掉落。請求被限制,但佇列已滿。 | GetAsync() | |
302 | SetAsyncThrottle | SetAsync 請求已掉落。請求被限制,但佇列已滿。 | Class.GlobalDataStore:SetAsync()|SetAsync() Class.GlobalDataStore:SetAsync() 要求超過了最大排隊尺寸,Roblox 無法在目前的輸出中處理要求。 | |
303 | IncreAsyncThrottle | IncrementAsync 請求已掉落。請求被限制,但佇列已滿。 | IncrementAsync() 請求已超過最大排隊尺寸,Roblox 無法在目前的輸出量處理要求。 | |
304 | UpdateAsyncThrottle | UpdateAsync 請求已掉落。請求被限制,但佇列已滿。 | UpdateAsync() 請求已超過最大排隊尺寸,Roblox 無法在目前的輸出速度處理要求。 | |
304 | TransformThrottle | UpdateAsync 請求已掉落。請求被限制,但佇列已滿。 | UpdateAsync() 請求已超過最大排隊尺寸,Roblox 無法在目前的輸出速度處理要求。 | |
305 | GetSortedThrottle | GetSorted 請求已掉落。請求被限制,但佇列已滿。 | Class.OrderedDataStore:GetSortedAsync()|GetSortedAsync() 請求已超過最大排隊長度,Roblox 無法在目前的輸出量處理要求。 | |
306 | RemoveAsyncThrottle | RemoveAsync | RemoveAsync() | |
401 | DataModelNoAccess | 請求失敗。DataModel 在關閉體驗時無法使用。 | DataModel 是非初始化,因為體驗正在關閉。 | |
402 | LuaWebSrvsNoAccess | 請求失敗。 LuaWebService 在關閉體驗時無法使用。 | LuaWebService 無法初始化,因為體驗正在關閉。 | |
403 | StudioAccessToApisNotAllowed | 無法從 Studio 寫入 DataStore 因為 API 存取無法啟用。 | 必須啟用 API 才能使用 Studio 中的資料儲存。 | |
404 | InternalError | OrderedDataStore 不存在。 | 與此請求關聯的 OrderedDataStore 未找到。這可能是資料錯誤的一種標誌。請稍後再試。 | |
501 | InternalError | 因為資料可能會被損壞,所以無法分析回應。 | 無法解析您的請邀請。這可能是資料錯誤的一個標誌。請稍後再試。 | |
502 | RequestRejected | API 服務因錯誤而拒絕請求 X。 | 在 Roblox 伺服器處理時發生錯誤 X。請稍後再試。 | |
503 | InternalError | 閱取資料儲存請求成功,但鑰匙未找到。 | 請求的鑰匙未在資料儲存中找到。這可能是資料儲存中的錯誤。請稍後再試。 | |
504 | InternalError | 資料存取請求成功,但回應未正確格式化。 | 無法解析您的請邀請。這可能是資料錯誤的一個標誌。請稍後再試。 | |
505 | InternalError | OrderedDataStore 請求成功,但回應未正確格式化。 | 無法解析您的 OrderedDataStore 請邀請的回應。這可能是資料錯誤的一種標誌。請稍後再試。 | |
509 | OperationNotAllowed | 個人 RCC 執行時會阻止資料存取,以防止資料可能會被壞損。 | 資料儲存擁有私人 RCC 通道上的寫入限制。 | |
511 | AttributeSizeTooLarge | 元數據屬性大小超出 X 限制。 | 串化的資料大小超過 X 的限制。值 X 是動態的。如果大小變更,值也會變更。 | |
512 | UserIdLimitExceeded | UserID 大小超出 X 限制。 | 用戶提供的用戶ID陣列的長度超過X的限制。 | |
513 | AttributeFormatError | 屬性 userId 格式無效。 | 提供的使用者ID 不是數字。 | |
513 | AttributeFormatError | 屬性標籤格式無效。 | 元數據不是表。 | |
GetVersionAsyncThrottle | GetVersionAsync 請求已掉落。請求被限制。 | Class.DataStore:GetVersionAsync()|GetVersionAsync() 請求已超過最大排隊長度,Roblox 無法在目前的輸出量處理要求。 | ||
ListDataStoresAsyncThrottle | ListDataStoresAsync 請求已掉落。請求被限制。 | Class.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync() 請求已超過最大排隊長度,Roblox 無法在目前的輸出量處理要求。 | ||
ListKeysAsyncThrottle | ListKeysAsync 請求已掉落。請求被限制。 | Class.DataStore:ListKeysAsync()|ListKeysAsync() 請求已超過最大排隊長度,Roblox 無法在目前的輸出量處理要求。 | ||
ListVersionsAsyncThrottle | ListVersionsAsync 請求已掉落。請求被限制。 | ListVersionsAsync() 請求已超過最大排隊長度,Roblox 無法在目前的輸出量處理此類請求。 | ||
RemoveVersionAsyncThrottle | RemoveVersionAsync 請求已掉落。請求被限制。 | Class.DataStore:RemoveVersionAsync()|RemoveVersionAsync() Class.DataStore:RemoveVersionAsync() 要求已超過最大排隊長度,Roblox 無法在目前的輸出量處理要求。 |
伺服器錯誤代碼
錯誤名稱 | 錯誤訊息 | 注意 |
---|---|---|
DatastoreThrottled | 請求率超過允許的最大值對於 datastore 。 | 已向單個資料儲存發送太多請求。 |
InternalServerError | 發生內部伺服器錯誤。 | Roblox 伺服器的時間錯誤。請再試一次,理想的時間延遲。 |
InvalidPlace | 提供的位置無效。 | 沒有找到地空間的宇宙ID。請稍後再試。 |
InvalidTarget | 提供的目標無效。 | 已訂購的資料商店鑰匙名稱超出 50 個字元限制。 |
InvalidUniverse | 提供的宇宙無效。 | 宇宙沒有合適的地方ID。請稍後再試。 |
InvalidUserIds | 提供的用戶ID有無效格式。 | 無法解析使用者 ID。 |
KeyThrottled | 請求率超過鑰鍵的允許最大值。 | 請求率超過單個鍵的允許最高請求率。 |
KeyNotFound | 請求的鑰匙不存在。 | 鑰匙不存在。 |
N/A | 沒有頁面可以前進。 | 發生這個錯誤時,您在最後一頁上呼叫 Pages:AdvanceToNextPageAsync()。 |
限制
資料模型有 限制 。如果體驗超過這些限制,服務會自動降低體驗資料存取使用量並導致未來要求放置在以下一個給排隊:
- 設置
- 已訂購的套設定
- 獲取
- 已訂購取得
在排隊中處理的請求會在受到的順序。 呼叫的函數會繼續輸出,直到其請求仍在排隊中。 如果資料存取鑰匙自身被限制,請求將被放置在排隊中,但暫時跳過。
每個佇列的最大請求數是 30 個。當佇列的上限達到時,請求會發生錯誤,並且在 301-306 範圍內顯示,表示請求已全部捨棄。
伺服器限制
每個服務器允許一定數量的資料存取請求,根據要求類型和用戶數量。使用 GetRequestBudgetForRequestType() 來確認當前位置可以做的數據存取請求數量。
請求類型 | 功能 | 每分鐘請求 |
---|---|---|
取得 | GetAsync() | 60 + 玩家數 × 10 |
設定 (限制在所有列出的功能之間共享) | SetAsync() IncrementAsync() UpdateAsync() 0> Class.GlobalDataStore:RemoveAsync()|RemoveAsync()0> | 60 + 玩家數 × 10 |
排序一下 | GetSortedAsync() | 5 + numPlayers × 2 |
取得版本 | GetVersionAsync() | 5 + numPlayers × 2 |
清單 | Class.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync()``Class.DataStore:ListKeysAsync()|ListKeysAsync()``Class.DataStore:ListVersionsAsync()|ListVersionAsync() | 5 + numPlayers × 2 |
移除 | RemoveVersionAsync() | 5 + numPlayers × 2 |
資料限制
資料儲存可以限制每個項目的資料使用。
資料存取名稱、鑰匙名稱和範圍 必須都在特定字元長度下。使用 string.len() 檢查它們的長度。
資料 (鑰匙值) 也以字串的形式儲存,無論是其初始輸入。您可以使用 JSONEncode() 函數檢查資料的大小。
零件 | 最大字符數 |
---|---|
資料商店名稱 | 50 |
鑰匙名稱 | 50 |
範圍 | 50 |
資料 (鑰匙值) | 每個鍵 4,194,304 |
金幣數據限制
用戶自定義標籤的字符數量限制。
零件 | 最大字符數 |
---|---|
鑰匙名稱 | 50 |
價值 | 250 |
鑰匙值對 | 300 |
輸出限制
通過鑰匙的輸入限制可以確保 Roblox 服務器的性能最佳。每個限制都適用於每個鑰匙在所有服務器上,並且在時間過程中刷新。
Roblox 在過去的 60 秒內檢查使用者使用鑰匙的使用方式。如果使用者包括目前的請邀請在內,則該請求會被批准。如果使用者超出限制,請求將被拒絕。
請求類型 | 限制 |
---|---|
閱讀 | 每分鐘 25 MB |
寫入 | 每分鐘 4 MB |