Veri deposu hata kodları ve limitleri

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Veri depolarına yaptığınız istekler, kötü bağlantı veya diğer sorunlar nedeniyle başarısız olabilir. Hataları yönetmek ve bir hata kodu ile birlikte mesaj döndürmek için veri deposu işlevlerini pcall() içine sarın.

UpdateAsync() gibi başarısız bir yazma çağrısı, oyun sunucusunun başarılı bir yanıt almadığı anlamına gelir. Bu, arka uç yazımının gerçekleşmediğini garanti etmez. Bazı hata senaryolarında, son yazım durumu, önbelleksiz bir takip okuması ile doğrulanana kadar çağrıcıya bilinmeyebilir.

Hata kodu referansı

Hata koduHata adıHata mesajıNotlar
101KeyNameEmptyAnahtar adı boş olamaz.Veri deposu işlevine girilen anahtarın boş bir dize olup olmadığını kontrol edin.
102KeyNameLimitAnahtar adı 50 karakter limitini aşıyor.Veri deposu işlevine girilen anahtarın uzunluğunun 50'yi aşıp aşmadığını kontrol edin.
103ValueNotAllowedDataStore içinde X izin verilemez.Kötü bir güncelleme işlevi X türünde bir değer döndürdü.
104CantStoreValueDataStore içinde X saklanamaz.Güncelleme işlevi, serileştirilemeyen X türünde bir değer döndürdü.
105ValueTooLargeSerileştirilmiş değer X limitini aşıyor.SetAsync() veya UpdateAsync() ile bir değer ayarlıyorsanız, değerin serileştirilmiş uzunluğu X boyutunu aşamaz. Verinin serileştirilmiş uzunluğunu kontrol etmek için JSONEncode() kullanın.
106MaxValueInvalidMaxValue bir tamsayı olmalıdır.GetSortedAsync() için bir maksimum değer geçiriyorsanız, bu bir tamsayı olmalıdır.
106MinValueInvalidMinValue bir tamsayı olmalıdır.GetSortedAsync() için bir minimum değer geçiriyorsanız, bu bir tamsayı olmalıdır.
106PageSizeGreaterPageSize önceden tanımlanmış bir aralık içinde olmalıdır.Bir OrderedDataStore için minimum sayfa boyutu 1'dir.
106PageSizeLesserPageSize önceden tanımlanmış bir aralık içinde olmalıdır.Bir OrderedDataStore için maksimum sayfa boyutu 100'dür.
107MinMaxOrderInvalidMaxValue MinValue'dan büyük veya eşit olmalıdır.Maksimum değer, GetSortedAsync() için minimum değerden büyük veya eşit olmalıdır.
301GetAsyncThrottleGetAsync isteği bırakıldı. İstek sınırlıydı ama kuyruk doluydu.GetAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut verimlilikte istekleri işleyemiyor.
302SetAsyncThrottleSetAsync isteği bırakıldı. İstek sınırlıydı ama kuyruk doluydu.SetAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut verimlilikte istekleri işleyemiyor.
303IncreAsyncThrottleIncrementAsync isteği bırakıldı. İstek sınırlıydı ama kuyruk doluydu.IncrementAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut verimlilikte istekleri işleyemiyor.
304UpdateAsyncThrottleUpdateAsync isteği bırakıldı. İstek sınırlıydı ama kuyruk doluydu.UpdateAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut verimlilikte istekleri işleyemiyor.
304TransformThrottleUpdateAsync isteği bırakıldı. İstek sınırlıydı ama kuyruk doluydu.UpdateAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut verimlilikte istekleri işleyemiyor.
305GetSortedThrottleGetSorted isteği bırakıldı. İstek sınırlıydı ama kuyruk doluydu.GetSortedAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut verimlilikte istekleri işleyemiyor.
306RemoveAsyncThrottleRemoveAsync isteği bırakıldı. İstek sınırlıydı ama kuyruk doluydu.RemoveAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut verimlilikte istekleri işleyemiyor.
401DataModelNoAccessİstek başarısız oldu. DataModel deneyim kapanırken erişilemez.DataModel başlatılmamış çünkü deneyim kapanıyor.
402LuaWebSrvsNoAccessİstek başarısız oldu. LuaWebService deneyim kapanırken erişilemez.LuaWebService başlatılmamış çünkü deneyim kapanıyor.
403StudioAccessToApisNotAllowedAPI erişimi etkinleştirilmediği için Stüdyo'dan DataStore'a yazılamaz.Stüdyo'da veri depolarını kullanmak için API erişimi aktif olmalıdır.
404InternalErrorOrderedDataStore mevcut değil.Bu isteğe bağlı OrderedDataStore bulunamadı. Bu, veri bozulmasının bir işareti olabilir. Daha sonra tekrar deneyin.
501InternalErrorYanıtı ayrıştırılamıyor çünkü veri bozulmuş olabilir.Sunucu, isteğinize yanıtı ayrıştırmakta başarısız oldu. Bu, veri bozulmasının bir işareti olabilir. Daha sonra tekrar deneyin.
502RequestRejectedAPI Hizmetleri isteği hata ile reddetti X.Roblox sunucularında işlenirken X hatası oluştu. Daha sonra tekrar deneyin.
503InternalErrorVeri deposu isteği başarılıydı ama anahtar bulunamadı.İstenen anahtar veri deposunda bulunamadı. Bu, veri bozulmasının bir işareti olabilir. Daha sonra tekrar deneyin.
504InternalErrorVeri deposu isteği başarılıydı ama yanıt doğru formatta değildi.Sunucu, isteğinize yanıtı ayrıştırmakta başarısız oldu. Bu, veri bozulmasının bir işareti olabilir. Daha sonra tekrar deneyin.
505InternalErrorOrderedDataStore isteği başarılıydı ama yanıt doğru formatta değildi.Sunucu, OrderedDataStore isteğinize yanıtı ayrıştırmakta başarısız oldu. Bu, veri bozulmasının bir işareti olabilir. Daha sonra tekrar deneyin.
509OperationNotAllowedVeri deposu işlemleri, olası veri bozulmasını önlemek için Kişisel RCC üzerinde çalışırken engellenmiştir.Özel RCC kanallarında veri deposu yazımları engellenmiştir.
511AttributeSizeTooLargeMeta veri özniteliği boyutu X limitini aşıyor.Serileştirilmiş meta veri boyutu X limitini aşıyor. X değeri dinamik. Boyut değişirse, değer de değişir.
512UserIdLimitExceededUserID boyutu X limitini aşıyor.Kullanıcı tarafından sağlanan kullanıcı kimlikleri dizisinin uzunluğu X limitini aşıyor.
513AttributeFormatErrorÖznitelik userId formatı geçersiz.Sağlanan kullanıcı kimliği bir sayı değil.
513AttributeFormatErrorÖznitelik meta veri formatı geçersiz.Meta veri bir tablo değil.
GetVersionAsyncThrottleGetVersionAsync isteği bırakıldı. İstek sınırlıydı.GetVersionAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut verimlilikte istekleri işleyemiyor.
GetVersionAtTimeAsyncThrottleGetVersionAtTimeAsync isteği bırakıldı. İstek sınırlıydı.GetVersionAtTimeAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut verimlilikte istekleri işleyemiyor.
ListDataStoresAsyncThrottleListDataStoresAsync isteği bırakıldı. İstek sınırlıydı.ListDataStoresAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut verimlilikte istekleri işleyemiyor.
ListKeysAsyncThrottleListKeysAsync isteği bırakıldı. İstek sınırlıydı.ListKeysAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut verimlilikte istekleri işleyemiyor.
ListVersionsAsyncThrottleListVersionsAsync isteği bırakıldı. İstek sınırlıydı.ListVersionsAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut verimlilikte istekleri işleyemiyor.
RemoveVersionAsyncThrottleRemoveVersionAsync isteği bırakıldı. İstek sınırlıydı.RemoveVersionAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut verimlilikte istekleri işleyemiyor.
InvalidTimestampZaman damgası pozitif olmalı ve gelecekte on dakikadan fazla olmamalıdır.GetVersionAtTimeAsync() için sağlanan zaman damgası geçerli değildi.
StandardReadExperienceThrottledStandardRead isteği deneyim limitleri tarafından sınırlıydı.GetAsync(), GetVersionAsync(), GetVersionAtTimeAsync(), veya standart bir veri deposunda UpdateAsync() okuması, StandardRead deneyim düzeyi oran limitini aştı.
StandardWriteExperienceThrottledStandardWrite isteği deneyim limitleri tarafından sınırlıydı.SetAsync(), IncrementAsync(), veya standart bir veri deposunda UpdateAsync() yazması, StandardWrite deneyim düzeyi oran limitini aştı.
StandardListExperienceThrottledStandardList isteği deneyim limitleri tarafından sınırlıydı.ListKeysAsync(), ListVersionsAsync(), veya standart veri depolarında ListDataStoresAsync() isteği, StandardList deneyim düzeyi oran limitini aştı.
StandardRemoveExperienceThrottledStandardRemove isteği deneyim limitleri tarafından sınırlıydı.Standart bir veri deposunda RemoveAsync() isteği, StandardRemove deneyim düzeyi oran limitini aştı.
OrderedReadExperienceThrottledOrderedRead isteği deneyim limitleri tarafından sınırlıydı.GetAsync(), BatchGetAsync(), veya sıralı bir veri deposunda UpdateAsync() okuması, OrderedRead deneyim düzeyi oran limitini aştı.
OrderedWriteExperienceThrottledOrderedWrite isteği deneyim limitleri tarafından sınırlıydı.SetAsync(), IncrementAsync(), veya sıralı bir veri deposunda UpdateAsync() yazması, OrderedWrite deneyim düzeyi oran limitini aştı.
OrderedListExperienceThrottledOrderedList isteği deneyim limitleri tarafından sınırlıydı.GetSortedAsync() isteği, sıralı bir veri deposunda OrderedList deneyim düzeyi oran limitini aştı.
OrderedRemoveExperienceThrottledOrderedRemove isteği deneyim limitleri tarafından sınırlıydı.RemoveAsync() isteği, sıralı bir veri deposunda OrderedRemove deneyim düzeyi oran limitini aştı.
StandardReadGameServerThrottledStandardRead isteği oyun sunucusu limitleri tarafından sınırlıydı veya istek kuyruğu doluydu.GetAsync(), GetVersionAsync(), GetVersionAtTimeAsync(), veya standart bir veri deposunda UpdateAsync() okuması, StandardRead oyun sunucusu düzeyi oran limitini aştı.
StandardWriteGameServerThrottledStandardWrite isteği oyun sunucusu limitleri tarafından sınırlıydı veya istek kuyruğu doluydu.SetAsync(), IncrementAsync(), veya standart bir veri deposunda UpdateAsync() yazması, StandardWrite oyun sunucusu düzeyi oran limitini aştı.
StandardListGameServerThrottledStandardList isteği oyun sunucusu limitleri tarafından sınırlıydı veya istek kuyruğu doluydu.ListKeysAsync(), ListVersionsAsync(), veya standart veri depolarında ListDataStoresAsync() isteği, StandardList oyun sunucusu düzeyi oran limitini aştı.
StandardRemoveGameServerThrottledStandardRemove isteği oyun sunucusu limitleri tarafından sınırlıydı veya istek kuyruğu doluydu.Standart bir veri deposunda RemoveAsync() isteği, StandardRemove oyun sunucusu düzeyi oran limitini aştı.
OrderedReadGameServerThrottledOrderedRead isteği oyun sunucusu limitleri tarafından sınırlıydı veya istek kuyruğu doluydu.GetAsync(), BatchGetAsync(), veya sıralı bir veri deposunda UpdateAsync() okuması, OrderedRead oyun sunucusu düzeyi oran limitini aştı.
OrderedWriteGameServerThrottledOrderedWrite isteği oyun sunucusu limitleri tarafından sınırlıydı veya istek kuyruğu doluydu.SetAsync(), IncrementAsync(), veya sıralı bir veri deposunda UpdateAsync() yazması, OrderedWrite oyun sunucusu düzeyi oran limitini aştı.
OrderedListGameServerThrottledOrderedList isteği oyun sunucusu limitleri tarafından sınırlıydı veya istek kuyruğu doluydu.GetSortedAsync() isteği, sıralı bir veri deposunda OrderedList oyun sunucusu düzeyi oran limitini aştı.
OrderedRemoveGameServerThrottledOrderedRemove isteği oyun sunucusu limitleri tarafından sınırlıydı veya istek kuyruğu doluydu.RemoveAsync() isteği, sıralı bir veri deposunda OrderedRemove oyun sunucusu düzeyi oran limitini aştı.

Sunucu hata kodları

Hata adıHata mesajıNotlar
DatastoreDeletedVeri deposu silindi.Veri deposu üzerinde bir işlem gerçekleştirilemedi çünkü veri deposu daha önce silinmişti.
DatastoreThrottledİstek oranı datastore için izin verilen maksimumu aşıyor.Tek bir veri deposuna çok fazla istek gönderildi.
InternalServerErrorBir iç sunucu hatası oluştu.Roblox sunucularında ara sıra hata. Tekrar deneyin, ideal olarak üstel geri dönüş ile.
InvalidExclusiveStartKeySağlanan özel başlangıç anahtarı geçerli değil.ListKeysAsync() gibi bir listeleme işlemi için sağlanan özel başlangıç anahtarı (imleç) geçerli değil.
InvalidPlaceSağlanan yer geçersiz.Yer için eşleşen Evren ID'si yok. Daha sonra tekrar deneyin.
InvalidTargetSağlanan hedef geçersiz.Sıralı veri deposu anahtar adı 50 karakter limitini aşıyor.
InvalidUniverseSağlanan evren geçersiz.Evren için eşleşen Yer ID'si yok. Daha sonra tekrar deneyin.
InvalidUserIdsSağlanan kullanıcı kimlikleri geçersiz bir formata sahip.Kullanıcı kimliklerini ayrıştırmada başarısız olundu.
KeyThrottledİstek oranı anahtar için izin verilen maksimumu aşıyor.Tek bir anahtar için izin verilen maksimum istek oranını aşıyor.
KeyNotFoundİstenen anahtar mevcut değil.Anahtar mevcut değil.
N/Aİlerlemek için sayfa yok.Bu hata, Pages:AdvanceToNextPageAsync()'yi son sayfada çağırdığınızda oluşur.
StandardReadExperienceThrottledStandart okuma isteği oranı deneyim için izin verilen maksimumu aşıyor.GetAsync(), GetVersionAsync(), GetVersionAtTimeAsync(), veya standart bir veri deposunda UpdateAsync() okuması, StandardRead deneyim düzeyi oran limitini aştı.
StandardWriteExperienceThrottledStandart yazma isteği oranı deneyim için izin verilen maksimumu aşıyor.SetAsync(), IncrementAsync(), veya standart bir veri deposunda UpdateAsync() yazması, StandardWrite deneyim düzeyi oran limitini aştı.
StandardListExperienceThrottledStandart listeleme isteği oranı deneyim için izin verilen maksimumu aşıyor.ListKeysAsync(), ListVersionsAsync(), veya standart veri depolarında ListDataStoresAsync() isteği, StandardList deneyim düzeyi oran limitini aştı.
StandardRemoveExperienceThrottledStandart kaldırma isteği oranı deneyim için izin verilen maksimumu aşıyor.Standart bir veri deposunda RemoveAsync() isteği, StandardRemove deneyim düzeyi oran limitini aştı.
OrderedReadExperienceThrottledSıralı okuma isteği oranı deneyim için izin verilen maksimumu aşıyor.GetAsync(), BatchGetAsync(), veya sıralı bir veri deposunda UpdateAsync() okuması, OrderedRead deneyim düzeyi oran limitini aştı.
OrderedWriteExperienceThrottledSıralı yazma isteği oranı deneyim için izin verilen maksimumu aşıyor.SetAsync(), IncrementAsync(), veya sıralı bir veri deposunda UpdateAsync() yazması, OrderedWrite deneyim düzeyi oran limitini aştı.
OrderedListExperienceThrottledSıralı listeleme isteği oranı deneyim için izin verilen maksimumu aşıyor.GetSortedAsync() isteği, sıralı bir veri deposunda OrderedList deneyim düzeyi oran limitini aştı.
OrderedRemoveExperienceThrottledSıralı kaldırma isteği oranı deneyim için izin verilen maksimumu aşıyor.RemoveAsync() isteği, sıralı bir veri deposunda OrderedRemove deneyim düzeyi oran limitini aştı.

Limitler

Veri modellerinin limitleri vardır. Bir deneyim bu limitleri aşarsa, hizmet otomatik olarak deneyimin veri deposu kullanımını sınırlayarak gelecekteki isteklerin aşağıdaki kuyruklardan birine yerleştirilmesine neden olur:

  • Ayarla
  • Sıralı ayarla
  • Al
  • Sıralı al

Bir kuyruktaki istekler, alındıkları sıraya göre işlenir. Çağrılan işlev, isteği hala kuyrukta olduğu sürece beklemeye devam eder. Eğer veri deposu anahtarı kendisi sınırlıysa, istek bir kuyruğa yerleştirilir ama geçici olarak atlanır.

Her kuyruğun 30 isteklik bir limiti vardır. Bir kuyruğun limiti aşıldığında, istekler 301-306 aralığında bir hata kodu ile başarısız olur ve isteklerin tamamen bırakıldığını gösterir.

Erişim limitleri

Veri depoları, hem deneyim hem de sunucu düzeyi limitlerine tabidir. Deneyim düzeyi limitleri, deneyim boyunca toplam eşzamanlı kullanıcı sayısına göre ölçeklenirken, sunucu düzeyi limitleri yapılandırılabilir ve yaratıcı tarafından bir araç olarak kullanılmak üzere tasarlanmıştır.

Deneyim Limitleri

Her deneyim, veri deposu türüne, istek türüne ve eşzamanlı kullanıcı sayısına bağlı olarak belirli sayıda veri deposu isteğine izin verilir. Her veri deposu türü ve istek türü için limit, listelenen tüm işlevler arasında paylaşılır.

  • UpdateAsync() hem okuma hem de yazma istek bütçesinden tüketir. Tek bir çağrı her iki limiti de azaltır.
  • Oyun sunucusu ve Açık Bulut bütçeyi paylaşır; Açık Bulut trafiği, deneyim içindeki kullanıma göre sınırlanabilir (ve tersine). Daha fazla rehberlik için Oran limitlerini kontrol et bölümüne bakın.
Standart veri depoları
İstek türüOyun sunucusu API'siAçık Bulut API'siPaylaşılan limitler (dakikada istek)
OkumaGetAsync()
GetVersionAsync()
GetVersionAtTimeAsync()
UpdateAsync()
Veri Deposu Girişi Al300 + eşzamanlıKullanıcılar × 40
YazmaSetAsync()
IncrementAsync()
UpdateAsync()
Veri Deposu Girişi Oluştur, Güncelle, Artır300 + eşzamanlıKullanıcılar × 20
ListelemeListDataStoresAsync()
ListKeysAsync()
ListVersionsAsync()
Veri Depolarını Listele, Veri Deposu Girişlerini Listele, Veri Deposu Girişi Revizyonlarını Listele300 + eşzamanlıKullanıcılar × 2
KaldırmaRemoveAsync()Veri Deposu Girişini Sil, Veri Deposunu Sil, Veri Deposunu Geri Yükle300 + eşzamanlıKullanıcılar × 40
Sıralı veri depoları
İstek türüOyun sunucusu API'siAçık Bulut API'siPaylaşılan limitler (dakikada istek)
OkumaGetAsync()
BatchGetAsync()
UpdateAsync()
Sıralı Veri Deposu Girişini Al300 + eşzamanlıKullanıcılar × 40
YazmaSetAsync()
IncrementAsync()
UpdateAsync()
Sıralı Veri Deposu Girişini Oluştur, Güncelle, Artır300 + eşzamanlıKullanıcılar × 20
ListelemeGetSortedAsync()Sıralı Veri Deposu Girişlerini Listele300 + eşzamanlıKullanıcılar × 2
KaldırmaRemoveAsync()Sıralı Veri Deposu Girişini Sil300 + eşzamanlıKullanıcılar × 40
Oran limitlerini kontrol et

Açık Bulut ve oyun sunucusu istekleri paylaşıldığı için, her birinin bütçeden ne kadar tüketebileceğini bağımsız olarak kontrol etmek önemlidir.

Oyun sunucusu

Bireysel sunucular, yukarıda açıklandığı gibi yerleşik limitlere sahiptir. Bireysel sunucuların toplam bütçeye katkısını ince ayar yapmak için SetRateLimitForRequestType() ve GetRequestBudgetForRequestType() kombinasyonunu kullanın.

Açık Bulut

Açık Bulut istekleri, harici bir oran sınırlama çözümü gerektirir. Aşağıdaki yaklaşımlardan birini öneriyoruz:

  • (Basit) Her isteğin ardından kısa bir zaman aşımı ekleyin, özellikle aynı API'yi sürekli bir döngüde çağırıyorsanız. Bu zaman aşımını 60 / (istenen bütçe tüketimi dakikada) saniye olarak ayarlayın, üst sınır olarak. Bu yaklaşım, isteklerin patlama halinde gönderilmesine izin vermez.
  • (Sağlam) Sızıntı kovası stratejisini kullanarak yerel bir oran sınırlayıcı uygulayın.

Aşağıdaki Node.js kod örnekleri referans uygulamaları içermektedir.

const apiKey = process.env.API_KEY;
if (!apiKey) {
throw new Error('API_KEY ortam değişkeni ayarlanmamış.');
}
const apiHeaderKey = 'x-api-key';
const universeId = '';
const dataStoreId = 'Inventory';
const baseUrl = 'https://apis.roblox.com/cloud/v2/';
// --- İşlem başına oran sınırlama yapılandırması (dakikada istek) ---
const LIST_RATE_PER_MIN = 60;
const GET_RATE_PER_MIN = 120;
const UPDATE_RATE_PER_MIN = 60;
// Her işlem için üst sınır aralığı: 60 / (dakikada istek) saniye.
const LIST_INTERVAL_MS = (60 / LIST_RATE_PER_MIN) * 1000;
const GET_INTERVAL_MS = (60 / GET_RATE_PER_MIN) * 1000;
const UPDATE_INTERVAL_MS = (60 / UPDATE_RATE_PER_MIN) * 1000;
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
// İsteği gerçekleştirir, ardından bu işlemin kendi aralığı kadar bekler.
async function throttledFetch(url, options, intervalMs) {
const response = await fetch(url, options);
await sleep(intervalMs);
return response;
}
async function listEntries(universe, dataStore) {
const listPath = `universes/${universe}/data-stores/${dataStore}/entries`;
const url = baseUrl + listPath;
const response = await throttledFetch(url, {
headers: { [apiHeaderKey]: apiKey }
}, LIST_INTERVAL_MS);
return response.json();
}
async function getEntry(path) {
const url = baseUrl + path;
const response = await throttledFetch(url, {
headers: { [apiHeaderKey]: apiKey }
}, GET_INTERVAL_MS);
return response.json();
}
async function updateEntry(path, payload) {
const url = baseUrl + path;
const response = await throttledFetch(url, {
method: 'PATCH',
headers: {
[apiHeaderKey]: apiKey,
'Content-Type': 'application/json'
},
body: JSON.stringify(payload) // Gövde bir dize olmalıdır
}, UPDATE_INTERVAL_MS);
return response;
}
(async () => {
try {
const entries = await listEntries(universeId, dataStoreId);
for (const entry of entries.dataStoreEntries) {
const path = entry.path;
console.log(`\nİşlem yapılıyor: ${path}`);
const currentData = await getEntry(path);
currentData.value.currency += 10;
const payload = { value: currentData.value };
const updateResponse = await updateEntry(path, payload);
console.log(`Durum: ${updateResponse.status}`);
console.log(`Yanıt: ${await updateResponse.text()}`);
}
} catch (error) {
console.error('Yürütme sırasında bir hata oluştu:', error);
}
})();

Sunucu limitleri

Her sunucunun, o sunucudaki oyuncu sayısına bağlı olarak her istek türü için yapılandırılabilir bir oran limiti vardır. Sunucular, ilk oluşturulduklarında bir kerelik ek istek bütçesi alırlar. Mevcut sunucunun herhangi bir zamanda yapabileceği veri deposu isteklerinin sayısını doğrulamak için GetRequestBudgetForRequestType() kullanın.

Bu limitler, yaratıcı tarafından yapılandırılabilir ve SetRateLimitForRequestType() API'si kullanılarak ayarlanabilir. Bu API'yi kullanarak, bir yaratıcı her istek türü için kendi veri deposu oran limitlerini yapılandırabilir.

Aşağıdaki varsayılan oran limitleri, API çağrılmadığında geçerlidir:

Standart veri depoları
İstek türüDataStoreRequestType EnumOyun sunucusu API'siDakikada istek
OkumaStandardReadGetAsync()
GetVersionAsync()
GetVersionAtTimeAsync()
UpdateAsync()
60 + oyuncuSayısı × 40
YazmaStandardWriteSetAsync()
IncrementAsync()
UpdateAsync()
60 + oyuncuSayısı × 40
ListelemeStandardListListDataStoresAsync()
ListKeysAsync()
ListVersionsAsync()
5 + oyuncuSayısı × 2
KaldırmaStandardRemoveRemoveAsync()60 + oyuncuSayısı × 40
RemoveVersion (Kullanımdan kaldırıldı)RemoveVersionAsyncRemoveVersionAsync()5 + oyuncuSayısı × 2
Sıralı veri depoları
İstek türüDataStoreRequestType EnumOyun sunucusu API'siDakikada istek
OkumaOrderedReadGetAsync()
BatchGetAsync()
UpdateAsync()
60 + oyuncuSayısı × 40
YazmaOrderedWriteSetAsync()
IncrementAsync()
UpdateAsync()
30 + oyuncuSayısı × 5
ListelemeOrderedListGetSortedAsync()5 + oyuncuSayısı × 2
KaldırmaOrderedRemoveRemoveAsync()30 + oyuncuSayısı × 5

Veri limitleri

Veri depoları, her giriş başına ne kadar veri kullanılabileceğini sınırlar.

Veri deposu adı, anahtar adı ve kapsam belirli bir karakter uzunluğunun altında olmalıdır. Uzunluklarını kontrol etmek için string.len() kullanın.

Veri (anahtar değeri) başlangıç türünden bağımsız olarak bir dize olarak saklanır. Verinin boyutunu, Luau verisini serileştirilmiş bir JSON tablosuna dönüştüren JSONEncode() işlevi ile kontrol edebilirsiniz.

BileşenMaksimum karakter sayısı
Veri deposu adı50
Anahtar adı50
Kapsam50
Veri (anahtar değeri)4,194,304 her anahtar için

Meta veri limitleri

Kullanıcı tanımlı meta verilerdeki karakter sayısına sınırlamalar.

BileşenMaksimum karakter sayısı
Anahtar adı50
Değer250
Anahtar-değer çiftleri300

Verimlilik limitleri

Anahtar başına verimlilik limitleri, Roblox sunucularında performansın optimal olmasını sağlar. Her limit, bir deneyimdeki tüm sunuculardaki her bir anahtara uygulanır ve zamanla yenilenir.

Roblox, anahtara bağlı olan kotaların son 60 saniyedeki kullanımını inceler. Kullanım, mevcut isteği de içerecek şekilde verimlilik limitinin içindeyse, istek onaylanır. Kullanım limitin üzerinde ise, istek reddedilir.

İstek türüOyun sunucusu API'siAçık Bulut API'siLimit
OkumaGetAsync()
GetVersionAsync()
GetVersionAtTimeAsync()
ListVersionsAsync()
UpdateAsync()
Veri Deposu Girişi Al25 MB dakikada
YazmaSetAsync()
IncrementAsync()
UpdateAsync()
RemoveAsync()
Veri Deposu Girişi Oluştur, Güncelle, Artır, Kaldır4 MB dakikada

Yukarıdaki verimlilik limitlerine ek olarak, Roblox verileri dahili bir şemaya dayalı olarak parçalara ayırır. Sonuç olarak, arka uç sunucusu aynı veri deposuna yüksek hacimli istekler aldığında, daha fazla sınırlama ile sonuçlanabilir. Neden ne olursa olsun, sınırlama ya DatastoreThrottled ya da KeyThrottled hataları olarak kendini gösterir; bu, verimlilik limitinin bir veri deposu veya bir anahtar için aşılıp aşılmadığına bağlıdır. Bu hata mesajları, hem sıralı hem de standart veri depoları için geçerlidir.

Depolama limitleri

Depolama kullanımını stabil ve ölçeklenebilir tutmak için, veri depoları depolama kullanımınıza bir oyun düzeyi limiti uygular.

Bu limit, her oyun için bir temel tahsisat ve ek olarak yaşam boyu kullanıcı sayısına dayalı bir ek tahsisat içerir. Bir yaşam boyu kullanıcı, oyununuza en az bir kez katılan herhangi bir kullanıcıdır.

Depolama limiti, aşağıdaki formül kullanılarak hesaplanır: Toplam en son sürüm depolama limiti = 500 MB + 1 MB × yaşam boyu kullanıcı sayısı.

Depolama kullanımı, her anahtarın en son sürümünün sıkıştırılmış boyutu kullanılarak ölçülür. Veri depoları, verilerinizi depolamadan önce otomatik olarak sıkıştırır, bu nedenle kendiniz önceden sıkıştırmaktan kaçının. Ön sıkıştırma, gereksiz CPU yükü ekler ve veri depolarının yerleşik sıkıştırmasının etkinliğini azaltabilir. Sıkıştırılmamış verileri saklayarak, Roblox'un sıkıştırma algoritmalarındaki iyileştirmelerden ve gelecekteki şemaya dayalı optimizasyonlardan otomatik olarak faydalanırsınız.

Her anahtarın yalnızca en son sürümü depolama kullanımınıza sayılır. Silinmiş anahtarlar ve geçersiz sürümler, saklama süresi boyunca sürüm API'leri aracılığıyla hala erişilebilir olsa da, depolama kullanımınıza sayılmaz. Ancak, Açık Bulut üzerinden silinen veri depoları DeleteDataStore yöntemi, kalıcı olarak kaldırılana kadar 30 günlük silme işleme süresi boyunca depolama kullanımınıza sayılmaya devam eder.

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.