Ö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 dayalı sinyalleri kullanır.

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

ÖzellikTürAçıklama
Tahmini Oyuncu GecikmesiSayısalBir sunucudaki bir oyuncunun tahmini gecikmesi.
Arkadaş 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ün içinde 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 dayalı olarak tanımlanan sinyallerdir:

SinyalAçıklama
YaşSunucudaki oyuncuların ortalama yaşı ile katılan oyuncunun yaşı arasındaki fark, en fazla 25 ile ilgili farklılık.
Cihaz TürüSunucudaki oyuncuların katılan oyuncuyla aynı cihaz türüne sahip olma 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.
GecikmeBir sunucudaki tahmini oyuncu gecikmesi, en fazla 250 ile ilgili değer.
DilSunucudaki oyuncuların katılan oyuncuyla aynı dile sahip olma 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, en fazla 4.6 ile ilgili farklılık.
Sesli SohbetSunucudaki sesli sohbetin etkin olduğu oyuncuların oranı.
Metin SohbetiSunucudaki katılan oyuncuyla birlikte metin sohbeti yapabilen oyuncuların oranı.

Yaş

Katılan oyuncunun yaşı ile sunucudaki oyuncuların ortalama yaşı arasındaki farkı karşılaştıran sayısal bir sinyal. Bu sinyalin en fazla 25 ile ilgili farkı vardır. Sinyal puanı, yaş farkıyla ters orantılıdır; yani daha düşük yaş farklılıkları daha yüksek puana 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 arasında: Bilgisayar, mobil cihaz, tablet, konsol ve VR cihazı bulunmaktadır.

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

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 aynı zamanda maksimum ilgili değeri 1 olan sayısal bir sinyal olarak da kabul edilebilir.

arkadas¸larSinyalPuanı=min(# sunucudaki tercih edilen oyuncu,1)/1\text{arkadaşlarSinyalPuanı} = \min(\text{\# sunucudaki tercih edilen oyuncu}, 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 oyuncu/# sunucudaki oyuncu\text{dilSinyalPuanı} = \text{\# katılan oyuncuyla aynı dil ayarına sahip oyuncu} / \text{\# sunucudaki oyuncu}

Gecikme

Eğer katılan oyuncu bir sunucuda oynarsaydı, katılan oyuncunun gecikme süresinin tahmini ping süresini milisaniye cinsinden ölçen sayısal bir sinyal. Bu sinyalin maksimum ilgili değeri 250 milisaniyedir. Sinyal puanı ping ile ters orantılıdır; yani daha düşük ping değerleri daha yüksek puanlar alır.

gecikmeSinyalPuanı=1min(250,tahminiPingMs)/250\text{gecikmeSinyalPuanı} = 1 - \min(250, \text{tahminiPingMs}) / 250

Dolu Olma Oranı

Bir sunucudaki oyuncu sayısının sunucunun kapasitesine oranını ölçen sayısal bir sinyal.

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

Oyun Geçmişi

Oyun Geçmişi özellik değeri, bir oyuncunun son 28 gün içinde 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ğeri ile katılan oyuncunun Oyun Geçmişi değerini karşılaştırır. Bu sinyalin en fazla 4.6 ile ilgili farkı vardır. Sinyal puanı, oyun geçmişi farkıyla ters orantılıdır; yani daha düşük oyun geçmişi farklılıkları daha yüksek puanlar alır.

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 sohbetinin etkin veya devre dışı olması mümkündür. 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.

Eğer bir yer sesli sohbet devre dışıysa, Sesli Sohbet sinyalinin ağırlığı 0'dır.

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

Metin Sohbeti

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

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

Ö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 göz atın. Mevcut Roblox özellikleri hakkında daha fazla bilgi için Mevcut özellikler sayfasına göz atın.

ÖzellikÖzellikler
OyuncuKalıcı

Oyun içindeki bir oyuncunun 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 devam eder

Sunucu düzeyi veya oyun modu gibi sunucuya özel veriler

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ı ayarlayıp
MatchmakingService:InitializeServerAttributesForStudio({
Level = "İleri Seviye",
Elo = 123.456,
TrainingMode = true
})
end
-- Level özelliğini alır
local currentLevel, errorMessage = MatchmakingService:GetServerAttribute("Level")
if errorMessage then
warn(errorMessage)
else
print("Mevcut seviye: " .. currentLevel)
end
-- Level özellik değerini İleri Seviye olarak günceller
local success, errorMessage = MatchmakingService:SetServerAttribute("Level", "İleri Seviye")
if not success then
warn("Sunucu özelliğini [Level] [İleri Seviye] olarak güncelleme başarısız oldu: " .. errorMessage)
else
print("Başarıyla [Level] [İleri Seviye] olarak ayarlandı.")
end

Özel sinyaller

Özel sinyalleri siz oluşturup tanımlayabilirsiniz ve bu sinyaller 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 farklılıklar puanı düşürür veya artırır. Örneğin, bir oyuncunun beceri düzeyi sunucunun ortalama beceri düzeyine ne kadar yakınsa, sayısal sinyalin puanı o kadar yüksek olur. Bu puan daha sonra sinyalin ağırlığı ile çarpılır.
  • Kategorik sinyaller ise dizeler veya boolean'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 daha sonra ayrıca 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 göz atın. Mevcut Roblox sinyalleri hakkında daha fazla bilgi için Mevcut sinyaller sayfasına göz atın.

Oyuncu sayısal

Katılan oyuncu

Sunucunun ortalama oyuncu özelliği ile katılan oyuncunun özelliği arasındaki farkı minimize eder. 1000'in üzerindeki farklılıklar 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 sunucu_ortalama_Elo = 2000
local katılan_oyuncu_Elo = 1000
local max_ilişkili_fark = 1500
local diff = math.abs(sunucu_ortalama_Elo - katılan_oyuncu_Elo)
local score = 1 - math.min(diff / max_ilişkili_fark, 1)
return score
Sürekli değer

Sunucunun ortalama oyuncu özelliği ile 500'lik bir sabit değer arasındaki farkı minimize eder. 1000'in üzerindeki farklılıklar 0 sinyal puanı döndürür.

Sürekli 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
Sürekli değer örneği için oyuncu sayısal sinyali

local sunucu_toplam_PowerLevel = 4500
local katılan_oyuncu_PowerLevel = 9901
local max_ilişkili_fark = 1500
local constant_value = 5000
local diff = math.abs(sunucu_toplam_PowerLevel + katılan_oyuncu_PowerLevel - constant_value)
local score = 1 - math.min(diff / max_ilişkili_fark, 1)

Oyuncu kategorik

Kümeleme

Sunucudaki oyuncuların katılan oyuncunun özelliğiyle aynı özelliğe sahip olanlar arasındaki oranı 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şitlilik

Sunucudaki oyuncuların katılan oyuncunun özelliğinden farklı bir özelliğe sahip olanlar arasındaki oranı maksimize eder.

Çeşitlilik formülü için oyuncu kategorik sinyali

local score = num_players_same_{attribute_name} / occupancy
return 1 - score
Çeşitlilik ö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ı minimize eder. 1000'in üzerindeki farklılıklar 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 oyuncu sayısal sinyali

local sunucu_Level = 4500
local katılan_oyuncu_Level = 9000
local max_ilişkili_fark = 1500
local diff = math.abs(sunucu_Level - katılan_oyuncu_Level)
local score = 1 - math.min(diff / max_ilişkili_fark, 1)
Sürekli değer

Sunucunun özellik değeri ile bir sabit değer arasındaki farkı minimize eder. Bu sabit değerin üzerindeki farklılıklar 0 sinyal puanı döndürür.

Sürekli 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
Sürekli değer örneği için sunucu sayısal sinyali

local sunucu_OyunZamani = 500
local max_ilişkili_fark = 1000
local constant_value = 1000
local diff = math.abs(sunucu_OyunZamani - constant_value)
local score = math.min(diff / max_ilişkili_fark, 1)

Sunucu kategorik

Katılan oyuncu ile karşılaştırma

Eğer sunucunun özellik değeri (örneğin, Oyun Modu) katılan oyuncunun özellik değeri (örneğin, Tercih Edilen Oyun Modu) ile eşitse, 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 sunucu_OyunModu = "Hayatta Kalma"
local katılan_oyuncu_OyunModu = "Hayatta Kalma"
if sunucu_OyunModu == katılan_oyuncu_OyunModu then
return 1
else
return 0
end
Sabit bir değerle karşılaştırma

Eğer sunucunun özellik değeri bir sabit değer olan doğruya eşitse, 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 sunucu_OyunBaşlamadı = true
if sunucu_OyunBaşlamadı == 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.