Stages
Definition
A stage is a major step in a tournament. It defines the method used to have participants play against each other. There are several types of stages, each with a specific purpose and functioning.
Type
A stage has a type that defines how the competition is orchestrated. It determines how groups and rounds are organised, and whether brackets or rankings are used.
The type of stage is also different depending on the type of match. Some stage types only work with duel matches. Others only work with ffa matches.
Settings
A stage has several settings that mainly depend on the stage type. They are used to handle the arrival and departure of participants in the stage. They are also used to define how the stage should manage its inner working notably how groups and rounds are set up.
Not all settings are defined in the stage. In some cases, depending on the stage type, some settings can also be set at the group or round level. This enables additional customization of the inner working of the stage type within a single group or round.
Match settings
A stage has match settings that defines how matches in the stage should be played. It mainly references the match format. Match settings can also be configured on the group or round level to only affect a single group or a single round. They can also be configured directly on the match to define how a particular match should be configured.
Placement
A stage can be set up to manage the placement manually or automatically. A manual placement requires to set each participant in the stage. An automatic placement fills the stage automatically with the current participants and each time a new participant is created until there are no slots left in the stage.
Available stage types
There are currently 11 different types of stage supported on Toornament:
Duel-based:
- Single Elimination
- Double Elimination
- Bracket Groups
- Custom Bracket
- Round-robin Groups
- Gauntlet
- League
- Swiss System
FFA-based:
Single Elimination
A single elimination stage is a bracket in which competitors are eliminated after one loss. Only the winners continue to progress in the bracket until there is only one winner.
Stage
Type: single_elimination
Settings:
- sizeintegerThe number of competitors in the stage
- third_deciderbooleanWhether there is an additional match between the losers of the semi-finals to decide the 3rd and 4th place (this option requires at least 4 competitors in the stage).
- thresholdintegerA numeric value that defines when matches should not be played anymore. Matches that involve seeds that are lower or equal to the threshold are removed from the bracket unless the match is required for a subsequent match (such as in a losers’ bracket).
Double Elimination
A double elimination stage is a bracket in which competitors must lose twice to be eliminated. The stage is divided into two brackets: a winners' bracket and a losers' bracket. The winners' bracket is a single elimination bracket that involves only competitors that have never lost. The losers' bracket involves only competitors that have lost once. At the end, a grand final is played between the winners of both brackets.
Stage
Type: double_elimination
Settings:
- sizeintegerThe number of competitors in the stage
- skip_round1booleanWhether the first round of the winners' bracket is played. When this round is not played, part of the competitors starts in the winners' bracket, part starts in the losers' bracket.
- grand_finalstring
The type of grand final: "none" implies there is no grand final between the two brackets; "simple" implies that there is only a single match in the grand final and "double" means that in case the competitor coming from the losers’ bracket wins the match, a second match is played to simulate the winners’ bracket finalist going down to the losers’ bracket.
Possible values: none, simple, double
- thresholdintegerA numeric value that defines when matches should not be played anymore. Matches that involve seeds that are lower or equal to the threshold are removed from the bracket unless the match is required for a subsequent match (such as in a losers’ bracket).
Bracket groups
A bracket groups stage is a stage with several groups each containing a small bracket that involves a reduced number of competitors. Competitors don't move from one group to another. They keep playing in the same group.
Stage
Type: bracket_groups
Settings:
- sizeintegerThe number of competitors in the stage
- nb_groupsintegerThe number of groups
- bracket_typestring
The type of bracket used in each group: "single" represents a single elimination bracket, "double" represents a double elimination bracket.
Possible values: single, double
- thresholdintegerA numeric value that defines when matches should not be played anymore. Matches that involve seeds that are lower or equal to the threshold are removed from the bracket unless the match is required for a subsequent match (such as in a losers’ bracket).
- arrivalstring
The arrival method used to distribute competitors in the groups when they arrive in the stage.
Possible values: adjacent, sequential, snake, branch
- departurestring
The departure method used to re-assign competitors from the groups to the stage when they leave the stage. The "mirror" method reproduces the same method used in the arrival.
Default: mirror
Possible values: adjacent, sequential, snake, branch, mirror
Custom Bracket
A custom bracket is a Duel bracket built manually by the organizer. The stage can contain one or more brackets, which are connected together or not. As such, the stage can end with one or more winners, depending on how the bracket is built.
Stage
Type: custom_bracket
Settings:
- sizeintegerThe number of competitors in the stage.
- schemastring
A list of matches, one per line. Each match is defined by a name and opponents, either identified by seed number or the path from a previous path.
For more information, please read the guide for schema rules and examples.
Round-robin groups
A round-robin groups stage is a stage with several small groups. Each group involves a subset of the stage competitors and arranges matches between all competitors using a round-robin method.
Stage
Type: pools
Settings:
- sizeintegerThe number of competitors in the stage
- nb_groupsintegerThe number of groups
- arrivalstring
The arrival method used to distribute competitors in the groups when they arrive in the stage.
Possible values: adjacent, sequential, snake, branch
- departurestring
The departure method used to re-assign competitors from the groups to the stage when they leave the stage. The "mirror" method reproduces the same method used in the arrival.
Default: mirror
Possible values: adjacent, sequential, snake, branch, mirror
- pairing_methodstring
The pairing method describes how competitors are paired together. The "manual" method does no pairing and lets the group settings describe the pairing manually. The "standard" method applies the standard round robin method. The "double_standard" method applies the standard method twice, once in the normal order, once in the reverse order.
Default: standard
Possible values: manual, standard, double_standard
- calculatorsarray
Contains the configuration of ranking calculators used to calculate points in the ranking. By default, calculators will be configured to provide 3 points for a win, 1 point for a draw and 0 points for a loss.
For more information, please read the Ranking calculators documentation.
- tiebreakersarray
Contains the configuration of ranking tiebreakers used to break ties in the ranking.
For more information, please read the Ranking tiebreakers documentation.
Group
Settings:
- sizeintegerThe number of competitors in the group
- pairing_valuesarray
Contains the pairings used in this group. The pairing values are represented by an array of rounds each containing an array of pairings. A pairing is composed of an array with two seed numbers.
Example:
[[[1,2],[3,4],[5,6]],[[1,4],[2,5],[3,6]]]
Gauntlet
A gauntlet stage is a bracket in which participants of lower seed play progressively against opponents of higher seed.
Stage
Type: gauntlet
Settings:
- sizeintegerThe number of competitors in the stage
League
The league stage is a stage with few large groups. Each group involves a subset of the stage competitors and arranges matches between all competitors using a round robin method.
Stage
Type: league
Settings:
- sizeintegerThe number of competitors in the stage
- nb_groupsintegerThe number of groups
- arrivalstring
The arrival method used to distribute competitors in the groups when they arrive in the stage.
Possible values: adjacent, sequential, snake, branch
- departurestring
The departure method used to re-assign competitors from the groups to the stage when they leave the stage. The "mirror" method reproduces the same method used in the arrival.
Default: mirror
Possible values: adjacent, sequential, snake, branch, mirror
- pairing_methodstring
The pairing method describes how competitors are paired together. The "manual" method does no pairing and lets the group settings describe the pairing manually. The "standard" method applies the standard round robin method. The "double_standard" method applies the standard method twice, once in the normal order, once in the reverse order.
Default: standard
Possible values: manual, standard, double_standard
- calculatorsarray
Contains the configuration of ranking calculators used to calculate points in the ranking. By default, calculators will be configured to provide 3 points for a win, 1 point for a draw and 0 points for a loss.
For more information, please read the Ranking calculators documentation.
- tiebreakersarray
Contains the configuration of ranking tiebreakers used to break ties in the ranking.
For more information, please read the Ranking tiebreakers documentation.
Group
Settings:
- sizeintegerThe number of competitors in the group
- pairing_valuesarray
Contains the pairings used in this group. The pairing values are represented by an array of rounds each containing an array of pairings. A pairing is composed of an array with two seed numbers.
Example:
[[[1,2],[3,4],[5,6]],[[1,4],[2,5],[3,6]]]
Swiss System
A swiss system is a stage with a single group that arranges matches between the competitors using a swiss pairing method.
Stage
Type: swiss
Settings:
- sizeintegerThe number of competitors in the stage
- arrivalstring
The arrival method used to distribute competitors in the groups when they arrive in the stage.
Possible values: adjacent, sequential, snake, branch
- departurestring
The departure method used to re-assign competitors from the groups to the stage when they leave the stage. The "mirror" method reproduces the same method used in the arrival.
Default: mirror
Possible values: adjacent, sequential, snake, branch, mirror
- pairing_methodstring
The pairing method describes how competitors are paired together. The "manual" method does no pairing and lets the round settings describe the pairing manually. The "p_balanced" method pairs competitors using a same level difference within a score group. The "p_opposite" method pairs competitors by favoring top ranked within a score group. The "p_random" method pairs randomly within a score group.
Default: p_balanced
Possible values: manual, p_balanced, p_opposite, p_random
- calculatorsarray
Contains the configuration of ranking calculators used to calculate points in the ranking. By default, calculators will be configured to provide 2 points for a win, 1 point for a draw, 1 point for a bye and 0 points for a loss.
For more information, please read the Ranking calculators documentation.
- tiebreakersarray
Contains the configuration of ranking tiebreakers used to break ties in the ranking.
For more information, please read the Ranking tiebreakers documentation.
Group
Settings:
- sizeintegerThe number of competitors in the group
Round
Settings:
- sizeintegerThe number of competitors in the round
- pairing_valuesarray
Contains the pairings used in this round. The pairing values are represented by an array of pairings. A pairing is composed of an array with two seed numbers.
When using the manual pairing method, this must contain a valid pairing table. When another pairing method is used, this will contain the calculated pairings when the round is created.
Example:
[[1,2],[3,4],[5,6]]
Simple
The simple stage is a stage with one or several matches. There is only one group and one round. There is no relation between matches.
Stage
Type: simple
Settings:
- sizeintegerThe number of competitors in the stage
- nb_matchesintegerThe number of matches available in the stage.
- arrivalstring
The arrival method used to distribute competitors in the groups when they arrive in the stage.
Default: sequential
Possible values: adjacent, sequential, snake
- departurestring
The departure method used to re-assign competitors from the groups to the stage when they leave the stage. The "mirror" method reproduces the same method used in the arrival.
Default: mirror
Possible values: adjacent, sequential, snake, mirror
- score_intentstring
Define the order in which to rank the scores, by selecting the best score. Example: highest for standard descending points, and lowest for ascending time.
Default: highest
Possible values: highest, lowest
- score_typestring
Define the type of score to be used in the stage.
Default: points
Possible values: points, duration
FFA Single Elimination
A FFA single elimination stage is a bracket in which competitors progress depending on their match rank. Only the top competitors continue to progress in the bracket until last match.
Stage
Type: ffa_single_elimination
Settings:
- sizeintegerThe number of competitors in the stage
- match_sizeintegerThe number of competitors per match.
- match_winnersintegerThe number of qualified competitors per match.
- score_intentstring
Define the order in which to rank the scores, by selecting the best score. Example: highest for standard descending points, and lowest for ascending time.
Default: highest
Possible values: highest, lowest
- score_typestring
Define the type of score to be used in the stage.
Default: points
Possible values: points, duration
- thresholdinteger|nullA numeric value that defines when matches should not be played anymore. Matches that involve seeds that are lower or equal to the threshold are removed from the bracket unless the match is required for a subsequent match (such as in a losers’ bracket).
FFA Bracket Groups
A FFA bracket groups stage is a stage with several groups each containing a small bracket that involves a reduced number of competitors. Competitors don't move from one group to another. They keep playing in the same group.
Stage
Type: ffa_bracket_groups
Settings:
- sizeintegerThe number of competitors in the stage
- nb_groupsintegerThe number of groups
- match_sizeintegerThe number of competitors per match.
- match_winnersintegerThe number of qualified competitors per match.
- thresholdintegerA numeric value that defines when matches should not be played anymore. Matches that involve seeds that are lower or equal to the threshold are removed from the bracket unless the match is required for a subsequent match (such as in a losers’ bracket).
- arrivalstring
The arrival method used to distribute competitors in the groups when they arrive in the stage.
Possible values: adjacent, sequential, snake, branch
- score_intentstring
Define the order in which to rank the scores, by selecting the best score. Example: highest for standard descending points, and lowest for ascending time.
Default: highest
Possible values: highest, lowest
- score_typestring
Define the type of score to be used in the stage.
Default: points
Possible values: points, duration
- departurestring
The departure method used to re-assign competitors from the groups to the stage when they leave the stage. The "mirror" method reproduces the same method used in the arrival.
Default: mirror
Possible values: adjacent, sequential, snake, branch, mirror
FFA Custom Bracket
A FFA custom bracket is a FFA bracket built manually by the organizer. The stage can contain one or more brackets, which are connected together or not. As such, the stage can end with one or more winners, depending on how the bracket is built.
Stage
Type: ffa_custom_bracket
Settings:
- sizeintegerThe number of competitors in the stage.
- schemastring
A list of matches, one per line. Each match is defined by a name and opponents, either identified by seed number or the path from a previous path.
For more information, please read the guide for schema rules and examples.
FFA League
The FFA league stage is a stage with few large groups. Each group involves a subset of the stage competitors and let the organizer arrange matches between the competitors.
Stage
Type: ffa_league
Settings:
- sizeintegerThe number of competitors in the stage
- nb_groupsintegerThe number of groups
- arrivalstring
The arrival method used to distribute competitors in the groups when they arrive in the stage.
Possible values: adjacent, sequential, snake, branch
- departurestring
The departure method used to re-assign competitors from the groups to the stage when they leave the stage. The "mirror" method reproduces the same method used in the arrival.
Default: mirror
Possible values: adjacent, sequential, snake, branch, mirror
- matching_methodstring
The matching method describes how competitors are matched together. For the moment, only the "manual" method is available. It lets the group settings describe the matching manually.
Default: manual
Possible values: manual
- calculatorsarray
Contains the configuration of ranking calculators used to calculate points in the ranking. By default, calculators will be configured to provide the score of each match as points in the ranking.
For more information, please read the Ranking calculators documentation.
- tiebreakersarray
Contains the configuration of ranking tiebreakers used to break ties in the ranking.
For more information, please read the Ranking tiebreakers documentation.
Group
Settings:
- sizeintegerThe number of competitors in the group
- matching_valuesarray
Contains the matching values used in this group. The matching values are represented by an array of rounds each containing a match composition. A match is composed of three or more seed numbers.
Example:
[[[1,2,3,4],[5,6,7,8]],[[1,2,5,6],[3,4,7,8]]]