Deneyim ayarları

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

Deneyim ayarları, oyun içi değerleri gerçek zamanlı olarak sunucuları yeniden başlatmadan güncellemenizi sağlar:

  • Yeni bir başlangıç zindanı etkinleştirmek veya devre dışı bırakmak gibi, özellikleri açıp kapatın.
  • Patron sağlık, deneyim kazanımı veya eşya fiyatları gibi oyun içi değerleri ayarlayın.
  • Gece yarısı başlayan bir Cadılar Bayramı etkinliği gibi zaman sınırlı içerikler başlatın.

Ayarlar, anahtarlar ve değerler şeklinde gelir. Kodunuzda sabit kodlanmış sabitler yerine, bir değeri (dize, sayı, boolean veya JSON nesnesi) almak için anahtarı kullanabilir ve o değeri istediğiniz zaman güncelleyebilirsiniz; deneyiminizin yeni bir sürümünü yayınlamanıza gerek kalmaz. Gerekli kod değişiklikleri minimumdur:

local ConfigService = game:GetService("ConfigService")
local configSnapshot = ConfigService:GetConfigAsync()
local myValue = configSnapshot:GetValue("my_key_name")

Herhangi bir zamanda en fazla 1.000 aktif ayarınız olabilir ve bunları Creator Hub veya Roblox Studio'da yönetebilirsiniz.

Creator Hub'daki Ayarlar sayfasının genel görünümü

Ayarları oluşturma ve düzenleme

  1. Deneyiminiz için Creator Hub Ayarlar sayfasında, Ayar oluştur butonuna tıklayın.

  2. Bir anahtar, bir tür, bir değer belirleyin ve isteğe bağlı olarak, bu ayarın amacını daha sonra sizin veya ekibinizin tanıyabilmesi için bir açıklama ekleyin. Desteklenen türler dize, sayı, boolean ve JSON nesnesidir.

  3. Oluşturulan kod parçasını deneyiminizde, muhtemelen ServerScriptService içinde bir sunucu betiğine kopyalayın. Kod şu şekilde 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ın
    local myValue = configSnapshot:GetValue(MY_KEY)
  4. Değeri, diğer değişkenler gibi kullanın. Ayarlar, kodunuz içinde kullanılmadığı sürece hiçbir şey yapmaz.

Betiklerinizde ayarlarla ilgili daha fazla bilgi için, Kodunuza ayar ekleyin kısmına bakın.

Bir ayarı düzenlemek, bir ayar oluşturmaktan farksızdır. Düzenle düğmesine tıklayın ve değeri ve açıklamayı istediğiniz şekilde güncelleyin.

Sınırlamalar

Ayar değerlerinin türüne göre aşağıdaki sınırlamaları vardır.

TürMaksimum boyut
Dize100.000 karakter
Sayı±1.7976931348623157e+308, ±2^53 kesin tamsayı temsilleri için
BooleanYok
JSON100.000 karakter

Ayarları yayınlama

Bir ayar oluşturduktan sonra, kamuya açık hale gelmeden önce test edebilmeniz için aşamalı bir duruma geçer. Aşamalı değişiklikler, sizin ve ekibinizin Studio oynama oturumlarında kullanılabilir, ancak canlı deneyimlerde oyunculara sunulmaz. Creator Hub'daki Ayarlar sayfası, tüm aktif ve aşamalı değişiklikleri gösterir.

Yayınlanmamış değişiklikleri gösteren Ayarlar sayfası
  1. Aşamalı değişikliklerinizi test ettikten sonra, Şimdi Yayınla butonuna tıklayarak tüm oyunculara beş dakika içinde yayınlayın. Eğer daha uzun bir yayım süresini tercih ediyorsanız 15 dakikada Yayınla seçeneğini de tercih edebilirsiniz.
  2. (Tavsiyeli) Ne güncellediğinizi belirtmek için bir tanımlayıcı yayın mesajı ekleyin. Bu mesaj, Geçmiş sayfasında görünecek ve sizin ve ekibinizin değişikliğin amacını daha sonra tanımasına yardımcı olabilir.

Studio'da ayarları oluşturma ve düzenleme

İsterseniz, Roblox Studio'da ayarları oluşturabilir, düzenleyebilir, aşamalı hale getirebilir ve yayınlayabilirsiniz. Aracı açmak için Dosya > Ayarları Aç'a tıklayın. Studio arayüzü, yeni değerleri aşamalı hale getirmek ve test etmek için özellikle kullanışlıdır.

Ayarlarla çalışma için Studio penceresi

Başka bir deneyime ayar yayınlama

Yalnızca Studio'da, ayarları başka bir deneyime yayınlayabilirsiniz; bu, o deneyimin ayarlarını tamamen yok eder. Bu, bir aşama veya geliştirme deneyiminden canlı deneyime ayarları senkronize etmek için özellikle faydalı olabilir. Studio aracında Yayınlanmış sekmesine gidin ve Olarak Yayınla seçeneğine tıklayın.

Ayarlarla çalışma için Studio penceresi

Geçmişi görüntüleme ve ayarları geri yükleme

Ayarlar sayfasında, geçmiş güncellemeleri görmek için Geçmiş butonuna tıklayın. Her güncellemenin değişiklik zamanı ve tarihi, değişikliği yapan kişi ve yayın mesajı vardır.

Ayar değeri için genişletilmiş fark ile geçmiş sayfası

  • Her satırı genişleterek anahtarı, değişiklik öncesi değeri ve sonraki değeri görebilirsiniz.
  • Anahtarları aramak için Anahtar Ara kutusunu kullanın - açıklamalar veya değerler değil, yalnızca anahtarlar için.

Geçmiş sayfası ayrıca ayarları önceki bir duruma geri yüklemenizi de sağlar:

  1. "önceki" değeri aşamalı hale getirmek için değişikliğin yanındaki Geri Yükle butonuna tıklayın. Lütfen bir ayarı geri yüklemenin mevcut aşamalı değişiklikleri yok edeceğini unutmayın.
  2. Ayarlar sayfasına geri dönün ve ayarları yayınlayın.

Koduza ayar ekleyin

Ayarlarla çalışmak için ana sınıf ConfigService'dir; bu, deneyiminiz için en son anahtarları ve değerleri alır. ConfigService yalnızca sunucu betiklerinde kullanılabilir. Müşteri betiklerinden yöntemlerini çağırmaya çalışmak bir hata oluşturur.

Ayarlarla çalışmanın ilk adımı, mevcut zaman noktasındaki tüm ayarların en son değerlerini almak için bir ConfigSnapshot elde etmektir. Bir anlık görüntü elde etmek için iki yöntem vardır:

  • ConfigService:GetConfigAsync(), deneyimde tüm oyunculara uygulanmasını istediğiniz global ayarlar içindir:

    local ConfigService = game:GetService("ConfigService")
    local configSnapshot = ConfigService:GetConfigAsync()
    local bossHealth = configSnapshot:GetValue("bossHealth")
  • ConfigService:GetConfigForPlayerAsync() ise deneyler içindir. Bu, farklı oyuncuların farklı değerler alabilmesi için oyuncuya özel ayarları getirir.

    local ConfigService = game:GetService("ConfigService")
    local Players = game:GetService("Players")
    local function onPlayerAdded(player)
    local playerConfigSnapshot = ConfigService:GetConfigForPlayerAsync(player)
    local bossHealth = playerConfigSnapshot:GetValue("bossHealth")
    end
    Players.PlayerAdded:Connect(onPlayerAdded)

Her iki durumda da, anahtar mevcut değilse, ConfigSnapshot:GetValue() nil döner.

Anlık görüntüleri yenileme

ConfigSnapshots, anlık görüntüyü talep ettiğinizdeki yapılandırmanın durumunu temsil eder. Oyun deneyimini bozmayı önlemek için, bir ayardaki güncellemeler anlık görüntülere otomatik olarak yayılmaz. Örneğin, rekabetçi bir nişancı oyununda, silah özelliklerinin maç ortasında dalgalanmaması 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, otomatik yenilemek için ConfigSnapshot.UpdateAvailable olayına bir işlev bağlayabilirsiniz:

configSnapshot.UpdateAvailable:Connect(function()
configSnapshot:Refresh()
end)

Bir anlık görüntüyü yeniledikten sonra, belirli bir anahtarın değişikliklerini dinlemek için ConfigSnapshot:GetValueChangedSignal() yöntemini kullanabilirsiniz, böylece oyun deneyiminizin kodunu güncelleyebilirsiniz:

configSnapshot:GetValueChangedSignal("bossHealth"):Connect(function(newHealthValue)
spawnNewBoss(newHealthValue)
end)

Hata yönetimi

Nadir durumlarda yapılandırma yüklenemediğinde ve daha önce hiç yüklenmediğinde, ConfigService:GetConfigAsync() bir hata fırlatır.

Eğer ConfigService, daha önce yüklendiği Robloks sunucularıyla bağlantısını kaybederse, ConfigService:GetConfigAsync() en son mevcut değerlerle bir anlık görüntü döner. Bu anlık görüntüler, yeni güncellemeleri yüklediklerinde yeniden bağlanmaya çalışır ve UpdateAvailable olayını tetikler.

Bu alışılmadık durumları nasıl yöneteceğiniz size kalmıştır. Çağrıyı pcall() içinde sarmalayabilir ve kodunuzda yedek değerler kullanabilir, oyuncuya bir hata gösterebilir ve anlık görüntünün yeniden bağlanmasını bekleyebilir veya başka bir çözüm uygulayabilirsiniz.

Ayarları test etme

ConfigService, hem Studio'da hem de canlı sunucularda tüm deneyimi etkilemeden geçici olarak ayar değişikliklerini test etmek için yerleşik yöntemlere sahiptir.

Yerel bir test değeri ayarlamak için ConfigService:SetTestingValue() çağrısını bir sunucu betiğinden veya Geliştirici Konsolu aracılığıyla yapın. Test değerlerindeki değişiklikler, ConfigSnapshot.UpdateAvailable sinyalinin yanı sıra bir ayar güncellemesini tetikler. Üretim güncellemesi gibi, test değerini almak için mevcut anlık görüntüleri yenilemelisiniz:

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, geçerli oyun oturumuna uygulanır ve canlı sunucuları etkilemez. Test değişikliklerini manuel olarak temizlemek için ConfigService:ClearTestingValue() kullanabilirsiniz.

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