Version: en

100 Player Battle Royale With Relaxation Sample

This config file configures the matchmaking logic for a 100 player Battle Royale game with the following criteria:

  • All players will be matched in a single team.
  • The matchmaking logic will create a match only if there is a minimum of 90 players.
    • If the youngest ticket in a match is 5 seconds old, the match can also be valid at 70 players.
    • If the youngest ticket in a match is 30 seconds old, the match can also be valid at 20 players.
  • The maximum number of players put together in a team will be 100.
  • Players will only match with other players in a match if their Skill is within 200 points of each other.
    • If the oldest ticket in the match is 5 seconds old, the maximum difference between the Skill can be within 250.
    • If the oldest ticket in the match is 10 seconds old, the maximum difference between the Skill can be within 300.
  • Players will only match with other players in a match if their Cheater field is the same.
    • If the oldest ticket in the match is more than 15 seconds old, this rule will not be enforced for said match.

Config File#

{
"Matchmaking": {
"Name": "100p-battle-royale",
"TargetFunction": {
"Name": "rule-based"
},
"Config": {
"Name": "100p-battle-royale",
"DefaultQoSRegion": "0000-0000-0000-0000",
"MatchDefinition": {
"MatchRules": [
{
"Type": "Difference", "Source": "Ticket.Data.Skill", "Reference": 200,
"Relaxations": [
{ "Type": "ChangeReference.Replace", "Value": 250, "AtSeconds": 5, "AgeType": "Oldest" },
{ "Type": "ChangeReference.Replace", "Value": 300, "AtSeconds": 10, "AgeType": "Oldest"}
]
},
{ "Type": "Equality", "Source": "Ticket.Data.Cheater",
"Relaxations": [
{ "Type": "DisableRule", "AtSeconds": 15, "AgeType": "Oldest" },
]
}
],
"Teams": [
{
"Name": "Main Team",
"TeamCount": { "Min": 1, "Max": 1 },
"PlayerCount": { "Min": 90, "Max": 100, "Relaxations": [
{ "Type": "ChangeRange.ReplaceMin", "Value": 70, "AtSeconds": 5, "AgeType": "Youngest" },
{ "Type": "ChangeRange.ReplaceMin", "Value": 20, "AtSeconds": 30, "AgeType": "Youngest" }
] }
}
]
},
"TicketTimeoutMs": 60000
}
}
}

Ticket Sample#

Base-64 encoded field values#

{
"Properties": {
"Players": "W3siSWQiOiAiUGxheWVyMSJ9XQ==",
"Data":"eyJTa2lsbCI6IDQzMi4wLCAiQ2hlYXRlciI6ICJ0cnVlIn0="
}
}

The decoded contents of the above fields are:#

"Players": "Data": {"Skill": 432.0, "Cheater": "true"}
"Data": {"Skill": 432.0, "Cheater": "true"}