Skip to main content

Configuration

The Edgegap No-code Managed Matchmaker uses a JSON/YAML configuration to configure your matchmaker, so you don't have to.

If there's an option that you would like to see added to this configuration to support your needs, don't hesitate to contact our support team!

Fields#

  • auth: Configuration for the authentication method of your matchmaker
    • type: Type of authentication used by the Front End (possible values are -> NoAuth|Token)
    • configuration: Configuration of authentication's type. (optional)
      • token: Token used to authenticate the request. The token will be fetched from the headers at key authorization. this is only used in Token authentication type (optional)
      • key: This is not used for the moment (optional)
  • profiles: A List of profiles for your matchmaker. (must contains at least 1 element)
    • profile_id: A unique ID to identify the profile. (must be unique across all profiles)
    • name: The displayable name of the profile.
    • app: The arbitrium application to deploy by this profile.
    • version: The version of your application that will be deployed.
    • game_port: The version port used by the player to connect.
    • delay_to_start: The delay in seconds before your matchmaker start. (we recommend a value between 2 and 10)
    • refresh: The time in seconds between each iteration of matchmaking. (we recommend a value between 5 and 10. Any values under 5 could cause some issues)
    • match_player_count: The number of player in a match.
    • selectors: A list of selectors. They represent a choice between discret values. Only players with the same choices in all selectors will be matched together.
      • key: A unique ID to identify the selector. (must be unique across all selectors of the same profile)
      • name: The displayable name of the selector
      • default: The default value for this selector. (optional)
      • required: If the client is required to send data for this selector. If the selector is required and the player doesn't send data, it will take the default value if provided or it will deny the player's request.
      • inject_env: If the values are injected into the deployment. (optional)
      • items: A list of possible values for this selector. (must contains at least 1 element)
    • filters: A list of range values. They represent a choice between 2 numerical values. Only players within the same range will be matched together. (Only support 1 filter at the moment)
      • key: A unique ID to identify the filter. (must be unique across all filters of the same profile)
      • name: The displayable name of the filter
      • required: If the client is required to send data for this filter. If the filter is required and the player doesn't send data, it will deny the player's request.
      • maximum: Maximum value of the range. (inclusive)
      • minimum: Minimum value of the range. (inclusive)
      • difference: Configuration of the range
        • negative: Negative value of the range. E.G. If the player value is 200 and the negative value is 40, he can be matched with players that have a value down to 160 inclusive.
        • positive: Positive value of the range. E.G. If the player value is 200 and the positive value is 40, he can be matched with players that have a value up to 240 inclusive.

Pre-built Configuration#

Only works with the auto-fill demo app. You will have to change the "app" profile to use your own application

{
"auth": {
"type": "Token",
"configuration": {
"token": "ABCDEF12345",
"key": "player_id"
}
},
"profiles": [
{
"profile_id": "ffa",
"name": "Free for All",
"app": "demo",
"version": "v1",
"game_port": "5000",
"inject_env": false,
"delay_to_start": 2,
"refresh": 5,
"match_player_count": 4,
"selectors": [
{
"default": "training",
"key": "mode",
"inject_env": true,
"items": [
"training",
"casual",
"rank"
],
"required": true,
"name": "GameMode"
},
{
"key": "map",
"inject_env": true,
"items": [
"Dust II",
"Nuke Town"
],
"required": false,
"name": "Maps"
}
],
"filters": [
{
"maximum": 2000.0,
"difference": {
"negative": 20.0,
"positive": 30.0
},
"key": "elo",
"required": true,
"name": "Elo",
"minimum": 0.0
}
]
}
]
}