Attribute und Signale

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Vorhandene Attribute

Die Standard-Matchmaking-Konfiguration von Roblox verwendet Signale, die auf vorhandenen Attributen wie Spielstandort, Altersgruppe und Latenz basieren.

Um Daten für das Matchmaking zu verwenden, die Roblox nicht automatisch in seiner Standardkonfiguration einbezieht, müssen Sie benutzerdefinierte Attribute und benutzerdefinierte Signale erstellen.

AttributTypBeschreibung
Geschätzte Spieler-LatenzNumerischDie geschätzte Latenz eines Spielers in einem Server.
Hat FreundeKategorischOb ein Server einen Freund oder einen anderen Spieler mit der gleichen IP-Adresse wie der beitretende Spieler hat.
Sprach-Chat aktiviertKategorischOb ein Spieler den Sprach-Chat aktiviert hat.
SpieleralterNumerischDas Alter des Spielers.
Spieler-GerätetypKategorischDer Gerätetyp des Spielers. Kann ein mobiles Gerät, ein Computer, ein Tablet, eine Konsole oder ein VR-Gerät sein.
Sprache des SpielersKategorischDie Sprache des Spielers.
Spielgeschichte des SpielersNumerischDie Log-10-Anzahl der Minuten, die ein Spieler in einem Universum in den letzten 28 Tagen gespielt hat.
Server-AuslastungNumerischDie Anzahl der Spieler in einem Server.
Text-Chat-Gruppe des SpielersKategorischDie Text-Chat-Gruppe des Spielers, in der sie gemeinsam texten können.

Vorhandene Signale

Die folgenden sind von Roblox definierte Signale, die auf den Roblox-Attributen basieren:

SignalBeschreibung
AlterDer Unterschied zwischen dem durchschnittlichen Alter der Spieler im Server und dem Alter des beitretenden Spielers, mit einem maximal relevanten Unterschied von 25.
GerätetypDas Verhältnis der Spieler im Server, die den gleichen Gerätetyp wie der beitretende Spieler haben.
FreundeDie Anzahl der Personen im Server, die Freunde des beitretenden Spielers sind oder die eine IP-Adresse mit dem beitretenden Spieler teilen. 1, wenn es einen bevorzugten Spieler gibt, 0 sonst.
LatenzDie geschätzte Spieler-Latenz für einen Server, mit einem maximal relevantem Wert von 250.
SpracheDas Verhältnis der Spieler im Server, die die gleiche Sprache wie der beitretende Spieler haben.
AuslastungDas Verhältnis der Spieler im Server im Vergleich zur Kapazität des Servers.
SpielhistorieDer Unterschied zwischen der durchschnittlichen Spielhistorie im Server und der Spielhistorie des beitretenden Spielers, mit einem maximal relevanten Unterschied von 4.6.
Sprach-ChatDas Verhältnis der Spieler im Server, die den Sprach-Chat aktiviert haben.
Text-ChatDas Verhältnis der Spieler im Server, die mit dem beitretenden Spieler zusammen texten können.

Alter

Ein numerisches Signal, das das durchschnittliche Alter der Spieler auf einem Server mit dem Alter des beitretenden Spielers vergleicht. Dieses Signal hat einen maximal relevanten Unterschied von 25. Der Signalwert steht in umgekehrtem Verhältnis zum Altersunterschied, was bedeutet, dass geringere Altersunterschiede höhere Werte haben.

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

wobei

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

Gerätetyp

Ein kategorisches Signal, das das Verhältnis der Spieler auf dem Server misst, die den gleichen Gerätetyp wie der beitretende Spieler haben. Gerätetypen umfassen: Computer, mobiles Gerät, Tablet, Konsole und VR-Gerät.

deviceTypeSignalScore=# Spieler mit dem gleichen Gera¨t wie der beitretende Spieler/# Spieler im Server\text{deviceTypeSignalScore} = \text{\# Spieler mit dem gleichen Gerät wie der beitretende Spieler} / \text{\# Spieler im Server}

Freunde

Ein bevorzugter Spieler ist ein Spieler, der entweder mit dem beitretenden Spieler befreundet ist oder die gleiche IP-Adresse wie der beitretende Spieler teilt. Das Friends-Signal ist ein kategorisches Signal mit einem Wert von 1, wenn es einen bevorzugten Spieler im Server gibt, und einem Wert von 0, wenn es keine bevorzugten Spieler im Server gibt.

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

Das Friends-Signal kann auch als numerisches Signal mit einem maximal relevanten Wert von 1 betrachtet werden.

friendsSignalScore=min(# bevorzugte Spieler im Server,1)/1\text{friendsSignalScore} = \min(\text{\# bevorzugte Spieler im Server}, 1) / 1

Sprache

Ein kategorisches Signal, das das Verhältnis der Spieler auf dem Server misst, die die gleiche Spracheinstellung wie der beitretende Spieler teilen.

languageSignalScore=# Spieler mit der gleichen Spracheinstellung wie der beitretende Spieler/# Spieler im Server\text{languageSignalScore} = \text{\# Spieler mit der gleichen Spracheinstellung wie der beitretende Spieler} / \text{\# Spieler im Server}

Latenz

Ein numerisches Signal, das die geschätzte Ping-Zeit in Millisekunden des beitretenden Spielers misst, wenn er auf einem Server spielen würde. Dieses Signal hat einen maximal relevanten Wert von 250 Millisekunden. Der Signalwert steht in umgekehrtem Verhältnis zu den Pings, wobei niedrigere Ping-Werte höhere Werte haben.

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

Auslastung

Ein numerisches Signal, das das Verhältnis der Spieler im Server zur Kapazität des Servers misst.

occupancySignalScore=# Spieler im Server/serverCapacity\text{occupancySignalScore} = \text{\# Spieler im Server} / \text{serverCapacity}

Spielhistorie

Der Wert des Attributs Spielhistorie ist die Log-10-Anzahl der Minuten, die ein Spieler in einem Universum in den letzten 28 Tagen gespielt hat. Dieses numerische Signal vergleicht den durchschnittlichen Log-10-Wert der Spielhistorie der Spieler im Server mit dem Wert der Spielhistorie des beitretenden Spielers. Dieses Signal hat einen maximal relevanten Unterschied von 4.6. Der Signalwert steht in umgekehrtem Verhältnis zum Unterschied in der Spielhistorie, was bedeutet, dass geringere Unterschiede in der Spielhistorie höhere Werte haben.

playHistorySignalScore=1min(4.6,playHistoryDifference/4.6)\text{playHistorySignalScore} = 1 - \min(4.6, \text{playHistoryDifference} / 4.6), wobei

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

Sprach-Chat

Ein Spieler kann den Sprach-Chat aktiviert oder deaktiviert haben. Das Sprach-Chat-Signal ist ein kategorisches Signal, das das Verhältnis der Spieler mit der gleichen Sprach-Chat-Einstellung wie der beitretende Spieler zur Anzahl der Spieler im Server misst.

Wenn ein Ort den Sprach-Chat deaktiviert hat, ist das Gewicht des Sprach-Chat-Signals 0.

voiceChatSignalScore=# Spieler mit der gleichen Sprach-Chat-Einstellung wie der beitretende Spieler/# Spieler im Server\text{voiceChatSignalScore} = \text{\# Spieler mit der gleichen Sprach-Chat-Einstellung wie der beitretende Spieler} / \text{\# Spieler im Server}

Text-Chat

Ein kategorisches Signal, das das Verhältnis der Spieler im Server misst, die mit dem beitretenden Spieler gemeinsam texten können.

textChatSignalScore=# Spieler, die mit dem beitretenden Spieler gemeinsam texten ko¨nnen /# Spieler im Server\text{textChatSignalScore} = \text{\# Spieler, die mit dem beitretenden Spieler gemeinsam texten können } / \text{\# Spieler im Server}

Benutzerdefinierte Attribute

Benutzerdefinierte Attribute geben benutzerdefinierten Signalen Zugriff auf Spieler- und Serverdaten. Weitere Informationen zum Erstellen eigener benutzerdefinierter Attribute finden Sie unter Erstellen eines benutzerdefinierten Attributs. Weitere Informationen zu bestehenden Roblox-Attributen finden Sie unter Vorhandene Attribute.

AttributEigenschaften
SpielerPersistente

Benutzerdefinierte Spieldaten, die in Datenspeichern erhalten bleiben, wie die Stufe oder Punktzahl eines Spielers im Spiel

Verwaltet mit den DataStore APIs
ServerNicht persistent und hält nur so lange an, wie der Server aktiv ist

Serverspezifische Daten wie die Serverstufe oder den Spielmodus

Verwaltet mit der MatchmakingService API
Beispiel für Spielerattribut

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
Beispiel für Serverattribut

local MatchmakingService = game:GetService("MatchmakingService")
local RunService = game:GetService("RunService")
if RunService:IsStudio() then
-- Initialisiert die Attribute und das Schema für Tests
MatchmakingService:InitializeServerAttributesForStudio({
Level = "Fortgeschritten",
Elo = 123.456,
TrainingMode = true
})
end
-- Abrufen des Attributs Level
local currentLevel, errorMessage = MatchmakingService:GetServerAttribute("Level")
if errorMessage then
warn(errorMessage)
else
print("Aktueller Level: " .. currentLevel)
end
-- Aktualisiert den Wert des Attributs Level auf Fortgeschritten
local success, errorMessage = MatchmakingService:SetServerAttribute("Level", "Fortgeschritten")
if not success then
warn("Fehler beim Aktualisieren des Serverattributs [Level] auf [Fortgeschritten]: " .. errorMessage)
else
print("Erfolgreich [Level] auf [Fortgeschritten] gesetzt")
end

Benutzerdefinierte Signale

Benutzerdefinierte Signale werden von Ihnen erstellt und definiert und können numerisch oder kategorisch sein:

  • Numerische Signale sind Zahlen. Sie vergleichen den Unterschied zwischen dem Attribut des beitretenden Spielers und dem aggregierten Wert des Servers, wobei größere Unterschiede den Wert verringern oder erhöhen. Zum Beispiel, je näher das Fähigkeitsniveau eines Spielers dem durchschnittlichen Fähigkeitsniveau des Servers ist, desto höher ist der Wert des numerischen Signals. Dieser Wert wird dann mit dem Gewicht des Signals multipliziert.
  • Kategorische Signale sind Strings oder Booleans. Sie basieren darauf, wie häufig das Attribut des beitretenden Spielers im Vergleich zu den anderen Spielern im Server ist. Zum Beispiel, wenn ein hoher Prozentsatz der Spieler in einem Server die gleiche bevorzugte Sprache wie der beitretende Spieler hat, erhöht sich der Wert. Dieser Wert wird dann ebenfalls mit dem Gewicht des Signals multipliziert.

Für weitere Informationen zum Erstellen eigener benutzerdefinierter Signale siehe Erstellen eines benutzerdefinierten Signals. Für weitere Informationen zu bestehenden Roblox-Signalen siehe Vorhandene Signale.

Spieler numerisch

Beitretender Spieler

Minimiert den Unterschied zwischen dem durchschnittlichen Spielerattribut des Servers und dem Attribut des beitretenden Spielers. Unterschiede über 1000 liefern einen Signalwert von 0.

Beitretender Spieler Formel für numerisches Signal

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
Beitretender Spieler Beispiel für numerisches Signal

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
Konstanter Wert

Minimiert den Unterschied zwischen dem durchschnittlichen Spielerattribut des Servers und einem konstanten Wert von 500. Unterschiede über 1000 liefern einen Signalwert von 0.

Konstante Wert Formel für numerisches Signal

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
Konstanter Wert Beispiel für numerisches Signal

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)

Spieler kategorisch

Clustering

Maximiert das Verhältnis der Spieler im Server, die dasselbe Attribut wie das Attribut des beitretenden Spielers haben.

Clustering Formel für kategorisches Signal

local score = num_players_same_{attribute_name} / occupancy
return score
Clustering Beispiel für kategorisches Signal

local num_players_same_Guild = 15
local occupancy = 19
local score = num_players_same_Guild / occupancy
return score
Diversifizieren

Maximiert das Verhältnis der Spieler im Server, die ein anderes Attribut als das Attribut des beitretenden Spielers haben.

Diversifizieren Formel für kategorisches Signal

local score = num_players_same_{attribute_name} / occupancy
return 1 - score
Diversifizieren Beispiel für kategorisches Signal

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

Server numerisch

Beitretender Spieler

Minimiert den Unterschied zwischen dem Attribut des Servers und dem Attribut des beitretenden Spielers. Unterschiede über 1000 liefern einen Signalwert von 0.

Beitretender Spieler Formel für Server numerisches Signal

local diff = math.abs(server_{attribute_name} - joining_player_{attribute_name})
local score = 1 - math.min(diff / max_relevant_difference, 1)
return score
Beitretender Spieler Beispiel für numerisches Signal

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)
Konstanter Wert

Minimiert den Unterschied zwischen dem Attributswert des Servers und einem konstanten Wert. Unterschiede über diesen konstanten Wert liefern einen Signalwert von 0.

Konstante Wert Formel für Server numerisches Signal

local diff = math.abs(server_{attribute_name} - constant_value)
local score = math.min(diff / max_relevant_difference, 1)
return score
Konstante Wert Beispiel für Server numerisches Signal

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)

Server kategorisch

Vergleich mit beitretendem Spieler

Der Wert ist 1, wenn der Attributswert des Servers (z.B. Spielmodus) gleich dem Attributswert des Spielers (z.B. Bevorzugter Spielmodus) ist. Andernfalls ist der Signalwert 0.

Vergleich mit beitretendem Spieler Formel für Server kategorisches Signal

if server_{attribute_name} == joining_player_{attribute_name} then
return 1
else
return 0
end
Vergleich mit beitretendem Spieler Beispiel für Server kategorisches Signal

local server_GameMode = "Überleben"
local joining_player_GameMode = "Überleben"
if server_GameMode == joining_player_GameMode then
return 1
else
return 0
end
Vergleich mit konstantem Wert

Der Wert ist 1, wenn der Attributswert des Servers gleich einem konstanten Wert von true ist. Andernfalls ist der Signalwert 0.

Konstante Wert Formel für Server kategorisches Signal

if server_{attribute_name} == constant_value then
return 1
else
return 0
end
Konstante Wert Beispiel für Server kategorisches Signal

local server_GameNotStarted = true
if server_GameNotStarted == true then
return 1
else
return 0
end
©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.