Özellikler ve sinyaller

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

Mevcut özellikler

Varsayılan Roblox eşleştirme yapılandırması, oyuncu konumu, yaş grubu ve gecikme gibi mevcut özelliklere dayanan sinyalleri kullanır.

Roblox'un varsayılan yapılandırmasında otomatik olarak dahil etmediği verileri eşleştirme için kullanmak istiyorsanız, özel özellikler ve özel sinyaller oluşturmanız gerekir.

ÖzellikTürAçıklama
Tahmini Oyuncu GecikmesiSayısalBir oyuncunun bir sunucudaki tahmini gecikmesi.
Arkadaşları Var mıKategorikBir sunucuda, katılan oyuncuyla aynı IP adresine sahip bir arkadaş veya başka bir oyuncunun olup olmadığı.
Sesli Sohbet EtkinKategorikBir oyuncunun sesli sohbetinin etkin olup olmadığı.
Oyuncu YaşıSayısalOyuncunun yaşı.
Oyuncu Cihaz TürüKategorikOyuncunun cihaz türü. Mobil cihaz, bilgisayar, tablet, konsol veya VR cihazı olabilir.
Oyuncu DiliKategorikOyuncunun dili.
Oyuncu Oyun GeçmişiSayısalBir oyuncunun son 28 günde bir evrende oynadığı dakika sayısının log-10'u.
Sunucu Dolu Olma OranıSayısalBir sunucudaki oyuncu sayısı.
Oyuncu Metin Sohbet GrubuKategorikOyuncunun birlikte metin sohbeti yapabileceği metin sohbet grubu.

Mevcut sinyaller

Aşağıdakiler, Roblox özelliklerine dayanan Roblox tanımlı sinyallerdir:

SinyalAçıklama
YaşSunucudaki oyuncuların ortalama yaşı ile katılan oyuncunun yaşı arasındaki fark, maksimum ilgili fark 25'tir.
Cihaz TürüSunucudaki katılan oyuncuyla aynı cihaz türüne sahip oyuncuların oranı.
ArkadaşlarSunucudaki katılan oyuncuyla arkadaş olan veya katılan oyuncuyla aynı IP adresini paylaşan kişi sayısı. Tercih edilen bir oyuncu varsa 1, aksi takdirde 0.
GecikmeKatılan oyuncunun bir sunucu için delta ping'i, bu, oyuncunun en iyi erişilebilir veri merkezinde ulaşabileceği en düşük ping'in üzerindeki tahmini ping'dir, maksimum ilgili değer 100'dür.
DilSunucudaki katılan oyuncuyla aynı dile sahip oyuncuların oranı.
Dolu Olma OranıSunucudaki oyuncu sayısının sunucunun kapasitesine oranı.
Oyun GeçmişiSunucudaki ortalama oyun geçmişi ile katılan oyuncunun oyun geçmişi arasındaki fark, maksimum ilgili fark 4.6'dır.
Sesli SohbetSunucudaki sesli sohbet etkin olan oyuncuların oranı.
Metin SohbetiSunucudaki katılan oyuncuyla birlikte metin sohbeti yapabilen oyuncuların oranı.

Yaş

Bir sunucudaki oyuncuların ortalama yaşlarını katılan oyuncunun yaşıyla karşılaştıran sayısal bir sinyal. Bu sinyalin maksimum ilgili farkı 25'tir. Sinyal puanı, yaş farkıyla ters orantılıdır; yani daha düşük yaş farkları daha yüksek puanlara sahiptir.

yas¸FarkıSinyalPuanı=1min(25,yas¸Farkı)/25\text{yaşFarkıSinyalPuanı} = 1 - \min(25, \text{yaşFarkı}) / 25

burada

yas¸Farkı=ortalamaSunucuYas¸ıkatılanOyuncuYas¸ı\text{yaşFarkı} = |\text{ortalamaSunucuYaşı} - \text{katılanOyuncuYaşı}|

Cihaz Türü

Katılan oyuncuyla aynı cihaz türüne sahip sunucudaki oyuncuların oranını ölçen kategorik bir sinyal. Cihaz türleri: Bilgisayar, mobil cihaz, tablet, konsol ve VR cihazıdır.

cihazTu¨ru¨SinyalPuanı=# katılan oyuncuyla aynı cihaza sahip oyuncular/# sunucudaki oyuncular\text{cihazTürüSinyalPuanı} = \text{\# katılan oyuncuyla aynı cihaza sahip oyuncular} / \text{\# sunucudaki oyuncular}

Arkadaşlar

Tercih edilen bir oyuncu, katılan oyuncuyla arkadaş olan veya katılan oyuncuyla aynı IP adresini paylaşan bir oyuncudur. Arkadaşlar sinyali, sunucuda bir tercih edilen oyuncu olduğunda 1 puan, sunucuda tercih edilen oyuncu olmadığında 0 puan alan kategorik bir sinyaldir.

arkadas¸larSinyalPuanı=arkadas¸Var mı ? 1:0\text{arkadaşlarSinyalPuanı} = \text{arkadaşVar mı} \ {?} \ 1 : 0

Arkadaşlar sinyali ayrıca maksimum ilgili değeri 1 olan sayısal bir sinyal olarak da düşünülebilir.

arkadas¸larSinyalPuanı=min(# sunucudaki tercih edilen oyuncular,1)/1\text{arkadaşlarSinyalPuanı} = \min(\text{\# sunucudaki tercih edilen oyuncular}, 1) / 1

Dil

Katılan oyuncuyla aynı dil ayarına sahip sunucudaki oyuncuların oranını ölçen kategorik bir sinyal.

dilSinyalPuanı=# katılan oyuncuyla aynı dil ayarına sahip oyuncular/# sunucudaki oyuncular\text{dilSinyalPuanı} = \text{\# katılan oyuncuyla aynı dil ayarına sahip oyuncular} / \text{\# sunucudaki oyuncular}

Gecikme

Katılan oyuncunun bir sunucuda oynarsa milisaniye cinsinden delta ping'ini ölçen sayısal bir sinyal, bu, oyuncunun en iyi erişilebilir veri merkezinde ulaşabileceği en düşük ping'in üzerindeki tahmini ping'dir. Bu sinyalin maksimum ilgili değeri 100 milisaniyedir. Sinyal puanı, delta ping ile ters orantılıdır; yani daha düşük delta ping değerleri daha yüksek puanlara sahiptir.

gecikmeSinyalPuanı=1min(100,deltaPingMs)/100\text{gecikmeSinyalPuanı} = 1 - \min(100, \text{deltaPingMs}) / 100

Dolu Olma Oranı

Sunucudaki oyuncuların oranını sunucunun kapasitesine ölçen sayısal bir sinyal.

doluOlmaOranıSinyalPuanı=# sunucudaki oyuncular/sunucuKapasitesi\text{doluOlmaOranıSinyalPuanı} = \text{\# sunucudaki oyuncular} / \text{sunucuKapasitesi}

Oyun Geçmişi

Oyun Geçmişi özellik değeri, bir oyuncunun son 28 günde bir evrende oynadığı dakika sayısının log-10'udur. Bu sayısal sinyal, sunucudaki oyuncuların ortalama log-10 Oyun Geçmişi değerini katılan oyuncunun Oyun Geçmişi değeriyle karşılaştırır. Bu sinyalin maksimum ilgili farkı 4.6'dır. Sinyal puanı, oyun geçmişi farkıyla ters orantılıdır; yani daha düşük oyun geçmişi farkları daha yüksek puanlara sahiptir.

oyunGec¸mis¸iSinyalPuanı=1min(4.6,oyunGec¸mis¸iFarkı/4.6)\text{oyunGeçmişiSinyalPuanı} = 1 - \min(4.6, \text{oyunGeçmişiFarkı} / 4.6), burada

oyunGec¸mis¸iFarkı=ortalamaSunucuOyunGec¸mis¸ikatılanOyuncuOyunGec¸mis¸i\text{oyunGeçmişiFarkı} = |\text{ortalamaSunucuOyunGeçmişi} - \text{katılanOyuncuOyunGeçmişi}|

Sesli Sohbet

Bir oyuncunun sesli sohbeti etkin veya devre dışı olabilir. Sesli Sohbet sinyali, katılan oyuncuyla aynı sesli sohbet ayarına sahip oyuncuların oranını sunucudaki oyuncu sayısına ölçen kategorik bir sinyaldir.

Bir yer sesli sohbeti devre dışıysa, Sesli Sohbet sinyalinin ağırlığı 0'dır.

sesliSohbetSinyalPuanı=# katılan oyuncuyla aynı sesli sohbet ayarına sahip oyuncular/# sunucudaki oyuncular\text{sesliSohbetSinyalPuanı} = \text{\# katılan oyuncuyla aynı sesli sohbet ayarına sahip oyuncular} / \text{\# sunucudaki oyuncular}

Metin Sohbeti

Katılan oyuncuyla birlikte metin sohbeti yapabilen sunucudaki oyuncuların oranını ölçen kategorik bir sinyal.

metinSohbetiSinyalPuanı=# katılan oyuncuyla ortak metin sohbeti yapabilen oyuncular/# sunucudaki oyuncular\text{metinSohbetiSinyalPuanı} = \text{\# katılan oyuncuyla ortak metin sohbeti yapabilen oyuncular} / \text{\# sunucudaki oyuncular}

Özel özellikler

Özel özellikler, özel sinyallere oyuncu ve sunucu verilerine erişim sağlar. Kendi özel özelliklerinizi oluşturma hakkında daha fazla bilgi için Özel bir özellik oluşturun sayfasına bakın. Mevcut Roblox özellikleri hakkında daha fazla bilgi için Mevcut özellikler sayfasına bakın.

ÖzellikÖzellikler
OyuncuKalıcı

Bir oyuncunun oyundaki seviyesi veya puanı gibi veri depolarında kalıcı olan özel oyuncu verisi

DataStore API'leri kullanılarak yönetilir
SunucuKalıcı değildir ve yalnızca sunucu aktif olduğu sürece sürer

Sunucuya özgü veriler, sunucu seviyesi veya oyun modu gibi

MatchmakingService API'si kullanılarak yönetilir
Oyuncu özelliği örneği
local DataStoreService = game:GetService("DataStoreService")
local eloStore = DataStoreService:GetDataStore("PlayerElo")
function onMatchEnded(players: {Player}, winners: {Player}, losers: {Player})
for _, player in players do
local updatedElo = CalculateUpdatedElo(player, winners, losers)
local success, errorMessage = pcall(function()
eloStore:SetAsync(player.UserId, updatedElo)
end)
end
end
Sunucu özelliği örneği
local MatchmakingService = game:GetService("MatchmakingService")
local RunService = game:GetService("RunService")
if RunService:IsStudio() then
-- Test için başlangıç özelliklerini ve şemasını ayarlar
MatchmakingService:InitializeServerAttributesForStudio({
Level = "İleri Düzey",
Elo = 123.456,
TrainingMode = true
})
end
-- Seviye özelliğini alır
local currentLevel, errorMessage = MatchmakingService:GetServerAttribute("Level")
if errorMessage then
warn(errorMessage)
else
print("Mevcut seviye: " .. currentLevel)
end
-- Seviye özelliği değerini İleri Düzey olarak günceller
local success, errorMessage = MatchmakingService:SetServerAttribute("Level", "İleri Düzey")
if not success then
warn("Sunucu özelliği [Level] değerini [İleri Düzey] olarak güncellemeyi başaramadı: " .. errorMessage)
else
print("Başarıyla [Level] değerini [İleri Düzey] olarak ayarlandı")
end

Özel sinyaller

Özel sinyaller, sizin tarafınızdan oluşturulur ve tanımlanır ve sayısal veya kategorik olabilir:

  • Sayısal sinyaller sayılardır. Katılan oyuncunun özelliği ile sunucunun toplanmış değeri arasındaki farkı karşılaştırır; daha büyük farklar puanı düşürür veya artırır. Örneğin, bir oyuncunun yetenek seviyesi sunucudaki ortalama yetenek seviyesine ne kadar yakınsa, sayısal sinyalin puanı o kadar yüksektir. Bu puan daha sonra sinyalin ağırlığı ile çarpılır.
  • Kategorik sinyaller, dizeler veya boole'lardır. Katılan oyuncunun özelliğinin sunucudaki diğer oyuncularla karşılaştırıldığında ne kadar yaygın olduğuna dayanır. Örneğin, sunucudaki oyuncuların yüksek bir yüzdesi katılan oyuncuyla aynı tercih edilen dile sahipse, puan artar. Bu puan da sinyalin ağırlığı ile çarpılır.

Kendi özel sinyallerinizi oluşturma hakkında daha fazla bilgi için Özel bir sinyal oluşturun sayfasına bakın. Mevcut Roblox sinyalleri hakkında daha fazla bilgi için Mevcut sinyaller sayfasına bakın.

Oyuncu sayısal

Katılan oyuncu

Sunucunun ortalama oyuncu özelliği ile katılan oyuncunun özelliği arasındaki farkı en aza indirir. 1000'in üzerindeki farklar 0 sinyal puanı döndürür.

Katılan oyuncu formülü için oyuncu sayısal sinyali
local diff = math.abs(server_{aggregation_function}_{attribute_name} - joining_player_{attribute_name})
local score = 1 - math.min(diff / max_relevant_difference, 1)
return score
Katılan oyuncu örneği için oyuncu sayısal sinyali
local server_average_Elo = 2000
local joining_player_Elo = 1000
local max_relevant_difference = 1500
local diff = math.abs(server_average_Elo - joining_player_Elo)
local score = 1 - math.min(diff / max_relevant_difference, 1)
return score
Sabit değer

Sunucunun ortalama oyuncu özelliği ile 500 sabit değeri arasındaki farkı en aza indirir. 1000'in üzerindeki farklar 0 sinyal puanı döndürür.

Sabit değer formülü için oyuncu sayısal sinyali
local diff = math.abs(server_sum_{attribute_name} + joining_player_{attribute_name} - constant_value)
local score = 1 - math.min(diff / max_relevant_difference, 1)
return score
Sabit değer örneği için oyuncu sayısal sinyali
local server_sum_PowerLevel = 4500
local joining_player_PowerLevel = 9901
local max_relevant_difference = 1500
local constant_value = 5000
local diff = math.abs(server_sum_PowerLevel + joining_player_PowerLevel - constant_value)
local score = 1 - math.min(diff / max_relevant_difference, 1)

Oyuncu kategorik

Kümeleme

Katılan oyuncunun özelliğiyle aynı özelliğe sahip sunucudaki oyuncuların oranını maksimize eder.

Kümeleme formülü için oyuncu kategorik sinyali
local score = num_players_same_{attribute_name} / occupancy
return score
Kümeleme örneği için oyuncu kategorik sinyali
local num_players_same_Guild = 15
local occupancy = 19
local score = num_players_same_Guild / occupancy
return score
Çeşitlendirme

Katılan oyuncunun özelliğinden farklı bir özelliğe sahip sunucudaki oyuncuların oranını maksimize eder.

Çeşitlendirme formülü için oyuncu kategorik sinyali
local score = num_players_same_{attribute_name} / occupancy
return 1 - score
Çeşitlendirme örneği için oyuncu kategorik sinyali
local num_players_same_RpgClass = 15
local occupancy = 19
local score = num_players_same_RpgClass / occupancy
return score

Sunucu sayısal

Katılan oyuncu

Sunucunun özelliği ile katılan oyuncunun özelliği arasındaki farkı en aza indirir. 1000'in üzerindeki farklar 0 sinyal puanı döndürür.

Katılan oyuncu formülü için sunucu sayısal sinyali
local diff = math.abs(server_{attribute_name} - joining_player_{attribute_name})
local score = 1 - math.min(diff / max_relevant_difference, 1)
return score
Katılan oyuncu örneği için sunucu sayısal sinyali
local server_Level = 4500
local joining_player_Level = 9000
local max_relevant_difference = 1500
local diff = math.abs(server_Level - joining_player_Level)
local score = 1 - math.min(diff / max_relevant_difference, 1)
Sabit değer

Sunucunun özellik değeri ile bir sabit değer arasındaki farkı en aza indirir. Bu sabit değerin üzerindeki farklar 0 sinyal puanı döndürür.

Sabit değer formülü için sunucu sayısal sinyali
local diff = math.abs(server_{attribute_name} - constant_value)
local score = math.min(diff / max_relevant_difference, 1)
return score
Sabit değer örneği için sunucu sayısal sinyali
local server_GameTime = 500
local max_relevant_difference = 1000
local constant_value = 1000
local diff = math.abs(server_GameTime - constant_value)
local score = math.min(diff / max_relevant_difference, 1)

Sunucu kategorik

Katılan oyuncuyla karşılaştırma

Sunucunun özellik değeri (örneğin, Oyun Modu) katılan oyuncunun özellik değeri (örneğin, Tercih Edilen Oyun Modu) ile eşit olduğunda puan 1'dir. Aksi takdirde, sinyal puanı 0'dır.

Katılan oyuncu formülü için sunucu kategorik sinyali
if server_{attribute_name} == joining_player_{attribute_name} then
return 1
else
return 0
end
Katılan oyuncu örneği için sunucu kategorik sinyali
local server_GameMode = "Hayatta Kalma"
local joining_player_GameMode = "Hayatta Kalma"
if server_GameMode == joining_player_GameMode then
return 1
else
return 0
end
Sabit değerle karşılaştırma

Sunucunun özellik değeri, sabit bir değer olan true ile eşit olduğunda puan 1'dir. Aksi takdirde, sinyal puanı 0'dır.

Sabit değer formülü için sunucu kategorik sinyali
if server_{attribute_name} == constant_value then
return 1
else
return 0
end
Sabit değer örneği için sunucu kategorik sinyali
local server_GameNotStarted = true
if server_GameNotStarted == true then
return 1
else
return 0
end
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.