Custom Fields

Tournament custom fields are special fields configured in a tournament that allow to provide additional data in the participants of a tournament. These custom fields are set up per tournament and can therefore vary from one tournament to another.

Schema

Each custom field has the following properties:

  • machine_name
    string
    A name used to identify a custom field for computing purposes
  • label
    string
    A name used in forms to display a custom field
  • target_type
    string

    The entity concerned by the custom field

    Possible values: player, team, team_player

  • type
    string
    A data type used for both input and computing (see Custom Field Types)
  • default_value
    mixed
    A default value (can be array, object, scalar or null)
  • required
    boolean
    Whether the custom field is required
  • public
    boolean
    Whether the value of the custom field is public.
  • position
    boolean
    An ordering position used in forms
  • options
    object
    An object that control display or validation

The address field represents a complete address composed of street, postal code, city and country. It is always private and can not be configured as a public field. It is also unique and can not be configured twice on an entity. If the custom field is required, all four fields are required.

Type: address

JSON Schema
{
    "type": "object",
    "properties": {
        "address": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
        },
        "postal_code": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "city": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        },
        "country": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
        }
    },
    "required": [
        "address",
        "postal_code",
        "city",
        "country"
    ]
}
Example
{
    "address": "2, rue Paul Vaillant Couturier",
    "postal_code": "92300",
    "city": "Levallois-Perret",
    "country": "fr"
}

The birth date field represents a single date (without time and timezone) using the ISO 8601 format. It is unique and can not be configured twice on an entity.

Type: birth_date

JSON Schema
{
    "type": "string",
    "pattern": "^([0-9]{4})-([0-9]{2})-([0-9]{2})$"
}
Example
"1998-06-09"

The country field represents a country using the ISO 3166-1 alpha-2 format.

Type: country

JSON Schema
{
    "type": "string"
}
Example
"us"

The full name field is composed of a first name and a last name. It is unique and can not be configured twice on an entity. If the custom field is required, both values are required.

Type: full_name

JSON Schema
{
    "type": "object",
    "properties": {
        "first_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
        },
        "last_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
        }
    },
    "required": [
        "first_name",
        "last_name"
    ]
}
Example
{
    "first_name": "Jon",
    "last_name": "Snow"
}

The facebook id field represents the id of a facebook account. It is unique and can not be configured twice on an entity.

Type: facebook

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The instagram id field represents the id of an instagram account. It is unique and can not be configured twice on an entity.

Type: instagram

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The snapchat id field represents the id of a snapchat account. It is unique and can not be configured twice on an entity.

Type: snapchat

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The twitch id field represents the id of a twitch account. It is unique and can not be configured twice on an entity.

Type: twitch

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The twitter id field represents the id of a Twitter account. It is unique and can not be configured twice on an entity.

Type: twitter

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The vimeo id field represents the id of a vimeo account. It is unique and can not be configured twice on an entity.

Type: vimeo

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The youtube id field represents the id of a youtube account. It is unique and can not be configured twice on an entity.

Type: youtube

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The discord id field represents the discord username. It is unique and can not be configured twice on an entity.

Type: discord_id

JSON Schema
{
    "type": "string",
    "pattern": "^.{2,32}(#[0-9]{4})?$"
}

This custom field represents the player's BattleTag on the Battle.net platform. It is unique and can not be configured twice on an entity. It is only available on disciplines associated with Battle.net.

Type: battle_net_player_id

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

This custom field represents the player's Blood Bowl 2 id. It is unique and can not be configured twice on an entity. It is only available on Blood Bowl 2.

Type: blood_bowl2_player_id

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The Epic Games ID represents the player's id on the Epic Games platform. It is unique and cannot be configured twice on an entity. It is only available on disciplines associated with the Epic Games platform.

Type: epic_player_id

JSON Schema
{
    "type": "string",
    "minLength": 3,
    "maxLength": 255
}

This custom field is reserved for the HS Pick & Ban feature. It represents the user choice of items as configured by the feature. It is only available on Hearthstone and Krosmaga.

Type: hs_pick_choice

JSON Schema
{
    "type": "array",
    "items": {
        "type": "string",
        "enum": [
            "item1",
            "item2",
            "item3..."
        ]
    }
}
Example
[
    "hunter",
    "mage",
    "paladin"
]

The maniaplanet id represents the player's id on Maniaplanet. It is unique and can not be configured twice on an entity. It is only available on disciplines associated with Maniaplanet.

Type: maniaplanet_player_id

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The Origin ID represents the player's id on the Origin platform. It is unique and can not be configured twice on an entity. It is only available on disciplines associated with the Origin platform.

Type: origin_player_id

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The PSN Online ID represents the player's id when playing online on the Playstation network (PSN). It is unique and can not be configured twice on an entity. It is only available on disciplines associated with PSN.

Type: psn_player_id

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The LOL Riot id represents the player's id in Riot's games. It is unique and can not be configured twice on an entity.

Type: riot_player_id

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The Smite Player ID represents the player's id in Smite. It is unique and can not be configured twice on an entity. It is only available on Smite.

Type: smite_player_id

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The Steam ID represents the player's id on the Steam platform. It is unique and can not be configured twice on an entity. It is only available on disciplines associated with the Steam platform.

Type: steam_player_id

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The LOL summoner id represents the player's id in League of Legends. It is unique and can not be configured twice on an entity. It is only available on League of Legends.

Type: summoner_player_id

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The trackmania id represents the player's id on Trackmania. It is unique and can not be configured twice on an entity. It is only available on disciplines associated with Trackmania.

Type: trackmania_player_id

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

The Uplay ID represents the player's id on the Uplay platform. It is unique and can not be configured twice on an entity. It is only available on disciplines associated with the Uplay platform.

Type: uplay_player_id

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

This custom field represents the player's id on wargaming.net. It is unique and can not be configured twice on an entity. It is only available on disciplines associated with the wargaming.net platform.

Type: wargaming_player_id

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

This custom field represents the gamertag on Xbox Live. It is unique and can not be configured twice on an entity. It is only available on disciplines associated with the Xbox Live platform.

Type: xbox_live_player_id

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

This custom field represents a boolean value that can be enabled/disabled through a checkbox.

Type: checkbox

JSON Schema
{
    "type": "boolean"
}

This field represents a custom text value. This allows the organizer to ask more specific questions that can not be transformed into processable data.

Type: text

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

This custom field represents a boolean value that can be enabled/disabled through an opt-in shown at the end of a form. Its purpose is to accept/refuse certain conditions related to the registration. For other purposes, the checkbox type field is preferred.

Type: optin

JSON Schema
{
    "type": "boolean"
}

This custom field represents the URL of a website. It is unique and can not be configured twice on an entity.

Type: website

JSON Schema
{
    "type": "string",
    "minLength": 1,
    "maxLength": 255
}

This custom field contains multiple choices, with several answers that can be selected.

Type: multiple_choice

JSON Schema
{
    "type": "array",
    "items": {
        "type": "integer"
    }
}

Options

JSON Schema
{
    "type": "object",
    "properties": {
        "choices": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "label": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255
                    },
                    "value": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 32767
                    }
                }
            }
        },
        "min": {
            "type": "integer"
        },
        "max": {
            "type": "integer"
        }
    }
}

This custom field contains multiple choices, but only one answer may be selected.

Type: select_choice

JSON Schema
{
    "type": "integer"
}

Options

JSON Schema
{
    "type": "object",
    "properties": {
        "choices": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "label": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255
                    },
                    "value": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 32767
                    }
                }
            }
        },
        "type": {
            "type": "string",
            "enum": [
                "select",
                "radio"
            ]
        }
    }
}