Fixed Group Rotation
Fixed Group Rotation is the most structured algorithm in League Dispatcher. It organizes players into isolated pools (or "groups"). Each pool plays a complete mini round-robin — every possible team combination — before the pools are reshuffled through promotion and relegation.
How it Works
When a game day starts, the algorithm sorts all active players by their existing rank and divides them into groups of equal size (typically 4 players per group). Players without a rank are placed at the end.
Within each group, the system generates every possible 2v2 partnership combination. For a group of 4 players (A, B, C, D), there are exactly 3 games: AB vs CD, AC vs BD, and AD vs BC. Each player partners with every other player in the group exactly once.
Group Formation
Groups are formed based on player rank. The top-ranked players are assigned to Group 1, the next set to Group 2, and so on. This ensures each pool contains players of similar skill level. Unranked or new players are placed at the bottom.
Important: If the total player count doesn't divide evenly into full groups, leftover players will wait on the sideline until enough additional players arrive to form a new complete group.
The Round-Robin Cycle
The schedule is fixed for the entire cycle. Players in a group know exactly who they're playing with for the next 3 games (with 4 players) or up to 10 games (with 6 players in 3v3). Each dispatch picks the next unplayed combination from the schedule. Once all combinations are played, the cycle is complete.
Promotion & Relegation
Once all groups complete their round-robin, standings are calculated based on wins. The top half of each lower group swaps with the bottom half of the group above. For example, with 4-player groups, the top 2 from Group 2 promote to Group 1, and the bottom 2 from Group 1 relegate to Group 2. After the swap, all groups are dissolved and reformed with the new rankings for the next cycle.
When Does Promotion Happen?
Promotion and relegation are not automatic after individual games. They are typically triggered at the end of a play day when the admin clicks "Finish Game Day". They can also be triggered by clicking "Start Game Day" at the beginning of the next session. The system computes standings from the completed cycle, swaps players between groups, and forms new groups with updated rankings. All ranking data is persisted — so the next game day starts with the updated groups based on the previous session's results.
Loop Dispatch
When Loop Dispatch is enabled in Game Settings, groups that finish all their matchups continue dispatching bonus games in a loop rather than waiting for other groups to finish. When disabled, completed groups stop playing until promotion/relegation triggers the next cycle.
Late Arrivals
If new players arrive after groups have been formed, they wait until enough ungrouped players accumulate to form a complete new group. Once there are enough, a new group is automatically created and starts its own round-robin.
When to Use
Structured league nights where you want the predictability of a tournament round-robin combined with the flexibility to reshuffle pools between cycles. Great for badminton, pickleball, or volleyball sessions where players want to know their upcoming schedule.
Example Scenario
A 3-hour pickleball session with 16 players on 4 courts. Players are divided into 4 groups of 4. Each group plays 3 games (all 2v2 combinations). After roughly 45 minutes, all groups finish their matchups. If Loop Dispatch is enabled, groups keep playing bonus games in a loop until the admin ends the session. When the admin clicks "Finish Game Day", promotion/relegation is triggered — the top 2 from each group promote up, the bottom 2 relegate down. The next "Start Game Day" begins a new cycle with freshly formed groups based on updated rankings.