A Node.js module for organizing tournaments, written in TypeScript.
If you are upgrading from v1.X to v2.X, it is strongly recommended you read the documentation, as a lot has changed.
Tournaments can be paired by single elimination, double elimination, round-robin, double round-robin, and Swiss.
If round-robin, double round-robin, or Swiss are chosen, then a single elimination or double elimination playoffs can follow.
For non-elimination tournaments, the following tiebreakers systems are supported:
- Opponent's match win percentage
- Game win percentage
- Opponent's game win percentage
- Opponent's opponent's match win percentage
A Couple Details
For double elimination, the method in which players move to the loser's bracket follows the same four alternating orders shown here to avoid rematches.
For round-robin (and double round-robin), players are paired via Berger Tables.
Swiss pairings are generated using a weighted Blossom Algorithm with maximum cardinality.
npm i tournament-organizer
To see all methods and properties, please visit the Wiki.
- Bracketeer - A Discord bot that runs tournaments
- Song Tournament - Create elimination brackets for your Spotify playlists
Please submit an issue if you encounter a bug or have a feature suggestion.
If you are interested in contributing, please feel free to fork and clone the repository (on main branch), then submit a pull request.
I am a high school teacher, and would appreciate any and all support in continuing this project.