Deneyim ayarları, sunucuları yeniden başlatmadan oyun içi değerleri anlık olarak güncellemenize olanak tanır:
- Yeni bir eğitim zindanı açmak veya kapatmak gibi özellikleri açıp kapatabilirsiniz.
- Patron sağlığı, deneyim kazanımı veya eşya fiyatları gibi oyun içi değerleri ayarlayabilirsiniz.
- Gece yarısı başlayan Cadılar Bayramı etkinliği gibi zaman sınırlı içerikler başlatabilirsiniz.
Ayarlar, anahtarlar ve değerler şeklinde olur. Kodunuzda sabit kodlanmış değişkenler yerine, bir değeri (string, number, boolean veya JSON nesnesi) almak için anahtar kullanabilir ve ardından bu değeri istediğiniz zaman güncelleyebilirsiniz; bu, deneyiminizin yeni bir versiyonunu yayımlamayı gerektirmez. Gerekli kod değişiklikleri oldukça azdır:
local ConfigService = game:GetService("ConfigService")local configSnapshot = ConfigService:GetConfigAsync()local myValue = configSnapshot:GetValue("my_key_name")
Herhangi bir anda en fazla 1.000 aktif ayarınız olabilir ve bunları Creator Hub veya Roblox Studio üzerinden yönetebilirsiniz.

Ayar oluşturma ve düzenleme
Deneyiminiz için Creator Hub Ayarlar sayfasında Ayar oluştur'a tıklayın.
Bir anahtar, bir tür, bir değer belirtin ve isteğe bağlı olarak, ayarın amacını daha sonra tanıyabilmeniz için bir açıklama ekleyin. Desteklenen türler string, number, boolean ve JSON nesnesidir.
Oluşturulan kod snippet'ini deneyiminizde, muhtemelen ServerScriptService içinde, bir sunucu betiğine kopyalayın. Kod aşağıdaki gibi görünmelidir:
local ConfigService = game:GetService("ConfigService")local configSnapshot = ConfigService:GetConfigAsync()local MY_KEY = "my_key" -- isteğe bağlı, ayar anahtarını bir sabit olarak saklayınlocal myValue = configSnapshot:GetValue(MY_KEY)Değeri, diğer değişkenler gibi kullanın. Ayarlar, kodunuz içinde kullanılmadığı sürece hiçbir şey yapmaz.
Kodunuzda ayarları kullanma hakkında daha fazla bilgi için Ayarları kodunuza ekleyin kısmını inceleyin.
Bir ayarı düzenlemek, bir ayar oluşturmakla aynı şekilde yapılır. Düzenle butonuna tıklayın ve istenen değer ve açıklamayı güncelleyin.
Limitler
Ayar değerlerinin türüne göre aşağıdaki limitleri vardır.
| Tür | Maksimum boyut |
|---|---|
| String | 100.000 karakter |
| Number | ±1.7976931348623157e+308, ±2^53 tam sayı temsilleri için |
| Boolean | N/A |
| JSON | 100.000 karakter |
Ayarları yayımla
Bir ayar oluşturduğunuzda, kamuya açık hale gelmeden önce test etmeniz için sahne durumuna geçer. Sahne değişiklikleri, sizin ve ekibinizin Studio oyun oturumlarında mevcut olur, ancak canlı deneyimlerdeki oyuncular için mevcut değildir. Creator Hub'daki Ayarlar sayfası, tüm aktif ve sahne değişikliklerini gösterir.

- Sahne değişikliklerinizi test ettikten sonra, Şimdi yayımla'ya tıklayarak tüm oyuncular için beş dakika içinde yayımlayın. Ayrıca, daha uzun bir yayım süresi tercih ediyorsanız 15 dakika içinde yayımla seçeneğini de seçebilirsiniz.
- (Tavsiye edilir) Ne güncellediğinizi belirten açıklayıcı bir yayımlama mesajı ekleyin. Bu mesaj Geçmiş sayfasında görünür ve ileride değişikliğin amacını belirlemenize yardımcı olabilir.
Studio'da ayar oluşturma ve düzenleme
İsterseniz, Roblox Studio'da ayarları oluşturabilir, düzenleyebilir, sahne alabilir ve yayımlayabilirsiniz. Dosya > Ayarları Aç'a tıklayın. Studio arayüzü, yeni değerler sahne almak ve test etmek için özellikle uygundur.

Geçmişi görüntüle ve ayarları geri yükle
Ayarlar sayfasında, geçmiş güncellemeleri görmek için Geçmiş'e tıklayın. Her güncellemenin değişiklik zamanını, tarihini, değişikliği kimin yaptığını ve yayımlama mesajını içerir.

- Her satırı genişleterek anahtarı, değişiklikten önceki değeri ve sonraki değeri görebilirsiniz.
- Anahtarları aramak için Anahtar Ara kutusunu kullanın - açıklamaları veya değerleri değil, sadece anahtarları.
Geçmiş sayfası ayrıca ayarları önceki bir duruma geri yüklemenizi sağlar:
- "önceki" değeri sahne almak için değişikliğin yanında Geri Yükle'ye tıklayın. Dikkat edin ki bir ayarı geri yüklemek, mevcut sahne değişikliklerini iptal eder.
- Ayarlar sayfasına geri dönün ve ayarları yayımlayın.
Ayarları kodunuza ekleyin
Ayarlarla çalışmak için ana sınıf ConfigService'dir; bu sınıf deneyiminiz için en son anahtarları ve değerleri getirir. ConfigService yalnızca sunucu betiklerine açıktır. Bir istemci betiğinden bu yöntemleri çağırmaya çalışmak bir hata ile sonuçlanır.
Ayarlarla çalışmanın ilk adımı, ConfigSnapshot'ı elde etmektir; bu, o andaki tüm ayarların en son değerleridir. Bir snapshot almak için iki yöntem vardır:
ConfigService:GetConfigAsync() tüm deneyimlerde tüm oyunculara uygulamak istediğiniz global ayarlar içindir:
local ConfigService = game:GetService("ConfigService")local configSnapshot = ConfigService:GetConfigAsync()local bossHealth = configSnapshot:GetValue("bossHealth")ConfigService:GetConfigForPlayerAsync() deneyler içindir. Farklı oyuncuların farklı değerler almasını sağlamak için oyuncuya özel ayarları alır.
local ConfigService = game:GetService("ConfigService")local Players = game:GetService("Players")local function onPlayerAdded(player)local playerConfigSnapshot = ConfigService:GetConfigForPlayerAsync(player)local bossHealth = playerConfigSnapshot:GetValue("bossHealth")endPlayers.PlayerAdded:Connect(onPlayerAdded)
Her iki durumda da, anahtar mevcut değilse, ConfigSnapshot:GetValue() nil döner.
Snapshot'ları yenile
ConfigSnapshots, istediğiniz anda ayarların durumunu temsil eder. O an istediğiniz zaman snapshot almanız durumunda ayardaki değişiklikler otomatik olarak snapshot'lara yansımaz. Örneğin, rekabetçi bir nişancı oyununda, silah özelliklerinin maç sırasında dalgalanmasını önlemek için yalnızca turlar arasında yeni ayar değerlerini almak isteyebilirsiniz.
En son değerleri manuel olarak almak için, ConfigSnapshot:Refresh() yöntemini kullanın. İsteğe bağlı olarak, ConfigSnapshot.UpdateAvailable olayına bir işlev bağlayarak otomatik yenileme yapabilirsiniz:
configSnapshot.UpdateAvailable:Connect(function()
configSnapshot:Refresh()
end)
Bir snapshot'ı yeniledikten sonra, ConfigSnapshot:GetValueChangedSignal() yöntemiyle belirli bir anahtardaki değişiklikleri dinleyebilirsiniz, böylece deneyim kodunuzu güncelleyebilirsiniz:
configSnapshot:GetValueChangedSignal("bossHealth"):Connect(function(newHealthValue)
spawnNewBoss(newHealthValue)
end)
Hata işleme
Ayarın yüklenmesinin başarısız olduğu ve daha önce hiç yüklenmediği nadir durumlarda, ConfigService:GetConfigAsync() bir hata fırlatır.
ConfigService, önceki bir yüklemenin sonrasında Roblox sunucularına bağlantısını kaybettiğinde, ConfigService:GetConfigAsync() en son mevcut değerlerle bir snapshot döner. Bu snapshot'lar yeniden bağlanmayı dener ve yeni güncellemeleri başarıyla yüklediklerinde UpdateAvailable olayını tetikler.
Bu alışılmadık durumları nasıl yöneteceğiniz size bağlıdır. Çağrıyı bir pcall() içine sarabilir ve kodunuzda yedek değerler kullanabilir, oyuncuya bir hata gösterebilir ve snapshot'ın yeniden bağlanmasını bekleyebilir veya başka bir çözüm kullanabilirsiniz.
Ayarları test et
ConfigService, hem Studio'da hem de canlı sunucularda tüm deneyimi etkilemeden ayar değişikliklerini geçici olarak test etmek için yerleşik yöntemlere sahiptir.
Yerel bir test değeri ayarlamak için, bir sunucu betiğinden veya Geliştirici Konsolu üzerinden ConfigService:SetTestingValue() çağrısını yapın. Test değerlerindeki değişiklikler ayar güncellemesine ve ConfigSnapshot.UpdateAvailable sinyaline yol açar. Üretim güncellemeleri gibi, test değerini almak için mevcut snapshot'ları yenilemeniz gerekir:
local ConfigService = game:GetService("ConfigService")ConfigService:SetTestingValue("bossHealth", 200)local configSnapshot = ConfigService:GetConfigAsync()local bossHealth = configSnapshot:GetValue("bossHealth") -- Artık 200!
Test değişiklikleri, mevcut sunucunun ömrü boyunca geçerlidir ve diğer sunuculara yayılmaz. Studio'da, mevcut oyun oturumuna uygulanır ve canlı sunucuları etkilemez. Test değişikliklerini manuel olarak temizlemek için ConfigService:ClearTestingValue() yöntemini kullanabilirsiniz.