Các thuộc tính và tín hiệu

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Các thuộc tính hiện có

Cấu hình ghép nối mặc định của Roblox sử dụng các tín hiệu dựa trên các thuộc tính hiện có như vị trí người chơi, nhóm tuổi và độ trễ.

Để sử dụng dữ liệu cho việc ghép nối mà Roblox không tự động bao gồm trong cấu hình mặc định của nó, bạn cần tạo các thuộc tính tùy chỉnhcác tín hiệu tùy chỉnh.

Thuộc tínhLoạiMô tả
Độ trễ dự đoán của người chơiSốĐộ trễ ước lượng của một người chơi trên một máy chủ.
Có bạn bèPhân loạiLiệu một máy chủ có bạn bè hoặc một người chơi khác cùng địa chỉ IP với người chơi tham gia.
Chế độ trò chuyện bằng giọng nói đã được kích hoạtPhân loạiLiệu một người chơi có kích hoạt trò chuyện bằng giọng nói hay không.
Tuổi của người chơiSốTuổi của người chơi.
Loại thiết bị của người chơiPhân loạiLoại thiết bị của người chơi. Có thể là thiết bị di động, máy tính, máy tính bảng, bảng điều khiển hoặc thiết bị VR.
Ngôn ngữ của người chơiPhân loạiNgôn ngữ của người chơi.
Lịch sử chơi của người chơiSốSố phút log-10 mà một người chơi đã chơi trong một vũ trụ trong 28 ngày qua.
Sự lấp đầy của máy chủSốSố người chơi trong một máy chủ.
Nhóm trò chuyện văn bản của người chơiPhân loạiNhóm trò chuyện văn bản của người chơi mà họ có thể trò chuyện cùng nhau.

Các tín hiệu hiện có

Dưới đây là các tín hiệu được định nghĩa bởi Roblox dựa trên các thuộc tính của Roblox:

Tín hiệuMô tả
TuổiSự khác biệt giữa tuổi trung bình của người chơi trong máy chủ và tuổi của người chơi tham gia, với sự khác biệt tối đa là 25.
Loại thiết bịTỷ lệ người chơi trong máy chủ có cùng loại thiết bị với người chơi tham gia.
Bạn bèSố người trong máy chủ là bạn bè của người chơi tham gia hoặc chia sẻ một địa chỉ IP với người chơi tham gia. 1 nếu có một người chơi ưa thích, 0 nếu không.
Độ trễĐộ trễ ước lượng của người chơi trên một máy chủ, với giá trị tối đa là 250.
Ngôn ngữTỷ lệ người chơi trong máy chủ có cùng ngôn ngữ với người chơi tham gia.
Sự lấp đầyTỷ lệ người chơi trong máy chủ so với công suất của máy chủ.
Lịch sử chơiSự khác biệt giữa lịch sử chơi trung bình trong máy chủ và lịch sử chơi của người chơi tham gia, với sự khác biệt tối đa là 4.6.
Trò chuyện bằng giọng nóiTỷ lệ người chơi trong máy chủ có kích hoạt trò chuyện bằng giọng nói.
Trò chuyện văn bảnTỷ lệ người chơi trong máy chủ có thể trò chuyện văn bản với người chơi tham gia cùng nhau.

Tuổi

Một tín hiệu số so sánh độ tuổi trung bình của người chơi trên một máy chủ với tuổi của người chơi tham gia. Tín hiệu này có sự khác biệt tối đa là 25. Điểm tín hiệu có mối quan hệ nghịch đảo với sự khác biệt về tuổi, có nghĩa là sự khác biệt tuổi thấp hơn có điểm cao hơn.

ageDifferenceSignalScore=1min(25,ageDifference)/25\text{ageDifferenceSignalScore} = 1 - \min(25, \text{ageDifference}) / 25

nơi

ageDifference=avgServerAgejoiningPlayerAge\text{ageDifference} = |\text{avgServerAge} - \text{joiningPlayerAge}|

Loại thiết bị

Một tín hiệu phân loại đo tỷ lệ người chơi trên máy chủ có cùng loại thiết bị với người chơi tham gia. Các loại thiết bị bao gồm: Máy tính, thiết bị di động, máy tính bảng, bảng điều khiển và thiết bị VR.

deviceTypeSignalScore=# players with same device as joining player/# players on the server\text{deviceTypeSignalScore} = \text{\# players with same device as joining player} / \text{\# players on the server}

Bạn bè

Một người chơi ưa thích là một người chơi είτε là bạn bè với người chơi tham gia hoặc chia sẻ cùng địa chỉ IP với người chơi tham gia. Tín hiệu Bạn bè là một tín hiệu phân loại có điểm 1 khi có một người chơi ưa thích trong máy chủ và điểm 0 khi không có người chơi ưa thích nào trong máy chủ.

friendsSignalScore=hasFriends ? 1:0\text{friendsSignalScore} = \text{hasFriends} \ {?} \ 1 : 0

Tín hiệu Bạn bè cũng có thể được coi là một tín hiệu số với giá trị tối đa là 1.

friendsSignalScore=min(# preferred players in server,1)/1\text{friendsSignalScore} = \min(\text{\# preferred players in server}, 1) / 1

Ngôn ngữ

Một tín hiệu phân loại đo tỷ lệ người chơi trong máy chủ có cùng ngôn ngữ với người chơi tham gia.

languageSignalScore=# players with same language setting as joining player/# players on the server\text{languageSignalScore} = \text{\# players with same language setting as joining player} / \text{\# players on the server}

Độ trễ

Một tín hiệu số đo thời gian ping ước lượng trong mili giây của người chơi tham gia nếu họ chơi trên một máy chủ. Tín hiệu này có giá trị tối đa là 250 mili giây. Điểm tín hiệu có mối quan hệ nghịch đảo với thời gian ping, có nghĩa là các giá trị ping thấp hơn có điểm cao hơn.

latencySignalScore=1min(250,estimatedPingMs)/250\text{latencySignalScore} = 1 - \min(250, \text{estimatedPingMs}) / 250

Sự lấp đầy

Một tín hiệu số đo tỷ lệ người chơi trên máy chủ so với công suất của máy chủ.

occupancySignalScore=# players in server/serverCapacity\text{occupancySignalScore} = \text{\# players in server} / \text{serverCapacity}

Lịch sử chơi

Giá trị thuộc tính Lịch sử chơi là số phút log-10 mà một người chơi đã chơi trong một vũ trụ trong 28 ngày qua. Tín hiệu số này so sánh giá trị Lịch sử chơi log-10 trung bình của người chơi trong máy chủ với giá trị Lịch sử chơi của người chơi tham gia. Tín hiệu này có sự khác biệt tối đa là 4.6. Điểm tín hiệu có mối quan hệ nghịch đảo với sự khác biệt về lịch sử chơi, có nghĩa là các sự khác biệt về lịch sử chơi thấp hơn có điểm cao hơn.

playHistorySignalScore=1min(4.6,playHistoryDifference/4.6)\text{playHistorySignalScore} = 1 - \min(4.6, \text{playHistoryDifference} / 4.6), nơi

playHistoryDifference=avgServerPlayHistoryjoiningPlayerPlayHistory\text{playHistoryDifference} = |\text{avgServerPlayHistory} - \text{joiningPlayerPlayHistory}|

Trò chuyện bằng giọng nói

Một người chơi có thể kích hoạt hoặc vô hiệu hóa trò chuyện bằng giọng nói. Tín hiệu Trò chuyện bằng giọng nói là một tín hiệu phân loại đo tỷ lệ người chơi có cùng cài đặt trò chuyện bằng giọng nói với người chơi tham gia so với số người chơi trong máy chủ.

Nếu một nơi có trò chuyện bằng giọng nói bị vô hiệu hóa, trọng số của tín hiệu Trò chuyện bằng giọng nói là 0.

voiceChatSignalScore=# players with same voice chat setting as joining player/# players on the server\text{voiceChatSignalScore} = \text{\# players with same voice chat setting as joining player} / \text{\# players on the server}

Trò chuyện văn bản

Một tín hiệu phân loại đo tỷ lệ người chơi trong máy chủ có thể trò chuyện văn bản với người chơi tham gia cùng nhau.

textChatSignalScore=# players can text with the joining player in common /# players on the server\text{textChatSignalScore} = \text{\# players can text with the joining player in common } / \text{\# players on the server}

Các thuộc tính tùy chỉnh

Các thuộc tính tùy chỉnh cho phép các tín hiệu tùy chỉnh truy cập dữ liệu người chơi và máy chủ. Để biết thêm thông tin về cách tạo các thuộc tính tùy chỉnh của riêng bạn, hãy xem Tạo một thuộc tính tùy chỉnh. Để biết thêm thông tin về các thuộc tính hiện có của Roblox, hãy xem Các thuộc tính hiện có.

Thuộc tínhĐặc điểm
Người chơiBền vững

Dữ liệu người chơi tùy chỉnh tồn tại trong các kho dữ liệu, như cấp độ hoặc điểm số của một người chơi trong trò chơi

Quản lý bằng cách sử dụng API DataStore
Máy chủKhông bền vững và chỉ kéo dài khi máy chủ còn hoạt động

Dữ liệu cụ thể của máy chủ như cấp độ máy chủ hoặc chế độ trò chơi

Quản lý bằng cách sử dụng API MatchmakingService
Ví dụ thuộc tính người chơ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
Ví dụ thuộc tính máy chủ

local MatchmakingService = game:GetService("MatchmakingService")
local RunService = game:GetService("RunService")
if RunService:IsStudio() then
-- Thiết lập các thuộc tính ban đầu và sơ đồ để kiểm tra
MatchmakingService:InitializeServerAttributesForStudio({
Level = "Nâng cao",
Elo = 123.456,
TrainingMode = true
})
end
-- Nhận thuộc tính Cấp độ
local currentLevel, errorMessage = MatchmakingService:GetServerAttribute("Level")
if errorMessage then
warn(errorMessage)
else
print("Cấp độ hiện tại: " .. currentLevel)
end
-- Cập nhật giá trị thuộc tính Cấp độ thành Nâng cao
local success, errorMessage = MatchmakingService:SetServerAttribute("Level", "Nâng cao")
if not success then
warn("Cập nhật thuộc tính máy chủ [Cấp độ] thành [Nâng cao] không thành công do lỗi: " .. errorMessage)
else
print("Đã thiết lập thành công [Cấp độ] thành [Nâng cao]")
end

Các tín hiệu tùy chỉnh

Các tín hiệu tùy chỉnh được tạo và định nghĩa bởi bạn và có thể là số hoặc phân loại:

  • Các tín hiệu số là các số. Chúng so sánh sự khác biệt giữa thuộc tính của người chơi tham gia và giá trị tổng hợp của máy chủ, với sự khác biệt lớn hơn làm giảm hoặc tăng điểm số. Ví dụ, điều càng gần với trình độ kỹ năng trung bình của máy chủ thì điểm số của tín hiệu số càng cao. Điểm số này sau đó được nhân với trọng số của tín hiệu.
  • Các tín hiệu phân loại là chuỗi hoặc boolean. Chúng dựa trên mức độ phổ biến của thuộc tính của người chơi tham gia khi so sánh với các người chơi khác trong máy chủ. Ví dụ, nếu một tỷ lệ cao người chơi trong một máy chủ có cùng ngôn ngữ ưa thích với người chơi tham gia, điểm số sẽ tăng. Điểm số này cũng sẽ được nhân với trọng số của tín hiệu.

Để biết thêm thông tin về cách tạo các tín hiệu tùy chỉnh của riêng bạn, hãy xem Tạo một tín hiệu tùy chỉnh. Để biết thêm thông tin về các tín hiệu hiện có của Roblox, hãy xem Các tín hiệu hiện có.

Người chơi số

Người chơi tham gia

Giảm thiểu sự khác biệt giữa thuộc tính trung bình của người chơi trên máy chủ và thuộc tính của người chơi tham gia. Các sự khác biệt vượt quá 1000 trả về điểm tín hiệu là 0.

Công thức người chơi tham gia cho tín hiệu số người chơi

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
Ví dụ người chơi tham gia cho tín hiệu số người chơi

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
Giá trị hằng số

Giảm thiểu sự khác biệt giữa thuộc tính trung bình của người chơi trên máy chủ và một giá trị hằng số là 500. Các sự khác biệt vượt quá 1000 trả về điểm tín hiệu là 0.

Công thức giá trị hằng số cho tín hiệu số người chơi

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
Ví dụ giá trị hằng số cho tín hiệu số người chơi

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)

Người chơi phân loại

Tập hợp

Tối đa hóa tỷ lệ người chơi trong máy chủ có cùng thuộc tính với thuộc tính của người chơi tham gia.

Công thức tập hợp cho tín hiệu phân loại người chơi

local score = num_players_same_{attribute_name} / occupancy
return score
Ví dụ tập hợp cho tín hiệu phân loại người chơi

local num_players_same_Guild = 15
local occupancy = 19
local score = num_players_same_Guild / occupancy
return score
Đa dạng hóa

Tối đa hóa tỷ lệ người chơi trong máy chủ có thuộc tính khác với thuộc tính của người chơi tham gia.

Công thức đa dạng hóa cho tín hiệu phân loại người chơi

local score = num_players_same_{attribute_name} / occupancy
return 1 - score
Ví dụ đa dạng hóa cho tín hiệu phân loại người chơi

local num_players_same_RpgClass = 15
local occupancy = 19
local score = num_players_same_RpgClass / occupancy
return score

Máy chủ số

Người chơi tham gia

Giảm thiểu sự khác biệt giữa thuộc tính của máy chủ và thuộc tính của người chơi tham gia. Các sự khác biệt vượt quá 1000 trả về điểm tín hiệu là 0.

Công thức người chơi tham gia cho tín hiệu số máy chủ

local diff = math.abs(server_{attribute_name} - joining_player_{attribute_name})
local score = 1 - math.min(diff / max_relevant_difference, 1)
return score
Ví dụ người chơi tham gia cho tín hiệu số máy chủ

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)
Giá trị hằng số

Giảm thiểu sự khác biệt giữa giá trị thuộc tính của máy chủ và một giá trị hằng số. Các sự khác biệt vượt quá giá trị hằng số này trả về điểm tín hiệu là 0.

Công thức giá trị hằng số cho tín hiệu số máy chủ

local diff = math.abs(server_{attribute_name} - constant_value)
local score = math.min(diff / max_relevant_difference, 1)
return score
Ví dụ giá trị hằng số cho tín hiệu số máy chủ

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)

Máy chủ phân loại

So sánh với người chơi tham gia

Điểm số là 1 khi giá trị thuộc tính của máy chủ (ví dụ, Chế độ trò chơi) bằng giá trị thuộc tính của người chơi (ví dụ, Chế độ trò chơi ưa thích). Ngược lại, điểm tín hiệu là 0.

Công thức người chơi tham gia cho tín hiệu phân loại máy chủ

if server_{attribute_name} == joining_player_{attribute_name} then
return 1
else
return 0
end
Ví dụ người chơi tham gia cho tín hiệu phân loại máy chủ

local server_GameMode = "Survival"
local joining_player_GameMode = "Survival"
if server_GameMode == joining_player_GameMode then
return 1
else
return 0
end
So sánh với giá trị hằng số

Điểm số là 1 khi giá trị thuộc tính của máy chủ bằng một giá trị hằng số là đúng. Ngược lại, điểm tín hiệu là 0.

Công thức giá trị hằng số cho tín hiệu phân loại máy chủ

if server_{attribute_name} == constant_value then
return 1
else
return 0
end
Ví dụ giá trị hằng số cho tín hiệu phân loại máy chủ

local server_GameNotStarted = true
if server_GameNotStarted == true then
return 1
else
return 0
end
©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.