Skip to main content

Match Configuration

The Match Configuration is sent to the Game Server which is responsible for dispatching the match configuration to all Game Clients to allow the respective players to join the match. The configuration is sent to the Game Server endpoint provided by the Game Developer and it is compliant to the specifications provided in the Game Studio > Main Configuration > Match Lifecycle section, under the Match Configuration > Request Body Template panel.

Match Configuration

The request payload is essentially a standard JSON object, common to all games, containing information such as faction composition, afk timeout, spectators; it also contains some game-specific data, defined by the chosen game mode, in the game_custom_data property.

The payload can be transformed, just before it is sent to the Game, to fit the expected shape on the Game Server side using a custom ECMAScript specified in the Request Transformation panel.

Request Transformation example

function addField(h) {
h.body.someProperty = "someValue";
return h;
}
addField(scriptHelper);

Endpoint Specifications

Payload overview

The JSON schema of the match configuration payload can be found here.

A sample payload for a 2-factions matchmaking match is the following:

{
"match_id": "12345-2-1",
"faceit_match_id": "12345",
"game": "tic-tac-toe",
"region": "EU",
"round": 1,
"competition": {
"id": "abcd-efgh",
"type": "matchmaking"
},
"factions": {
"faction1": {
"id": "aaaa-bbbb",
"leader": "1111-2222",
"name": "team_foo",
"avatar": "https://distribution.faceit.com/images/something.jpeg",
"players": [
{
"id": "aaaa-bbbb",
"nickname": "foo",
"game_id": "1111-2222",
"game_name": "TheFoo",
"anticheat_required": false
}
],
"coaches": null
},
"faction2": {
"id": "cccc-dddd",
"leader": "3333-4444",
"name": "team_bar",
"avatar": null,
"players": [
{
"id": "cccc-dddd",
"nickname": "bar",
"game_id": "3333-4444",
"game_name": "OGbar",
"anticheat_required": false
}
],
"coaches": [
{
"id": "eeee-ffff",
"nickname": "baz",
"game_id": "5555-6666",
"game_name": "baz",
"anticheat_required": false
}
]
}
},
"game_custom_data": {},
"type": "DEFAULT",
"allow_ongoing_join": false,
"series_id": null,
"roster_with_substitutes": false,
"version": 2
}

Field Descriptions

Request Payload

FieldTypeDescription
match_idStringThe FACEIT unique identifier of the match instance. It will be different for every "BestOf" round or potential reconfigurations.
faceit_match_idStringThe identifier the players will see on FACEIT platform.
gameStringThe identifier of the game title.
regionStringThe identifier of the game region where the match was created.
roundIntegerThe round counter in case of "BestOf" matched. Always greater than 0.
competitionCompetitionThe information about the competition which generated the match. See Competition section.
factionsmap<String,Faction>The factions that compose the match. Each faction is defined using factionN string key. See Faction section for details about the faction object.
game_custom_dataObjectGame-specific settings defined by the Game Mode.
typeStringThe match type. It can be DEFAULT or COMMUNITY_SERVER.
allow_ongoing_joinBooleanThe flag that drives the abity to join ongoing matches using special commands. If set to true the game should accept player add/remove commands (for advanced integrations).
series_idStringThe identifier of a match series, in case of Community Server matches. Optional value, null if not defined.
roster_with_substitutesBooleanThe flag that tells if the faction rosters contain also substitutes along with players.
versionIntegerThe payload version, in case of future changes. Statically set to 2

Competition

FieldTypeDescription
idStringThe FACEIT identifier of the competition.
typeStringThe type of competition. Can be matchmaking, hub, championship, community_server

Faction

FieldTypeDescription
idStringThe FACEIT identifier of the faction.
leaderStringThe in-game player identifier of the captain of the faction.
nameStringThe FACEIT name of the faction.
avatarStringThe url of the avatar image of the faction. Optional value, null if not defined.
playersarray<Player>The roster of the faction. See Player section for details about the player object.
coachesarray<Player>The list of coaches of the faction. See Player section for details about the player object. Optional value, null if not defined.

Player

FieldTypeDescription
idStringThe FACEIT identifier of the player.
nicknameStringThe FACEIT nickname of the player.
game_idStringThe in-game player identifier.
game_nameStringThe in-game player nickname.
anticheat_requiredBooleanThe flag that tells if the players should have the anti-cheat client running in order to play the match. Only for integrations with AntiCheat.

Response Codes and Errors

HTTP CodesDescription
2xxMatch configuration call will be considered successful.
4xxMatch configuration call will be considered failed.
5xxMatch configuration call will be considered failed.