8 players · 2 courts · 2v2 · unique partners + unique enemy pair matchups
The scheduler below is implemented for 8 active players (no bench rotation). If you add more than 8, you can still store names, but generation requires selecting exactly 8 (see note in code).
{{ error }}
{{ info }}
Enter games per match (e.g., 6–4). This updates standings instantly.
Sorted by Points → Game Diff → Games For
| # | Player | Pts | W | T | L | GF | GA | GD | MP | Gap ↑ | Gap ↓ |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ row.name }} | {{ row.points }} | {{ row.w }} | {{ row.t }} | {{ row.l }} | {{ row.gf }} | {{ row.ga }} | {{ row.gd }} | {{ row.mp }} | {{ idx === 0 ? "—" : (standings[idx-1].points - row.points) }} | {{ idx === standings.length - 1 ? "—" : (row.points - standings[idx+1].points) }} |