Dual-Division Leagues
A dual-division league lets every player sign up once and compete in two divisions at the same time:
- A Seed division — grouped by skill/rating, so strong players face strong players.
- A Timezone division — grouped by preferred playing hours, so opponents can actually find time to play.
Every player gets a full slate of opponents in each division, generated up front, so nobody is stuck waiting on you to pair the next round.
Setting it up
Dual-division leagues are built from two ordinary LEAGUE-format stages — one for each division. There's no separate wizard; you create both stages the normal way and turn on the dual-division option on each.
- Go to Manage → Stages → Add Stage.
- Set the format to League.
- Turn on Dual-division league, then pick this stage's Division role:
- Seed division — grouped by rating/seed. This division's final standing is the one that counts toward season placement.
- Timezone division — grouped by playing hours. Results here still count toward player stats and ratings, just not the season placement.
- If you already have a division with the role you pick, the panel says so. It's a warning, not a block — you can save it and fix the other stage afterwards.
- Choose a group size (8 or 16 players per group). This is a target, not a rule: the panel shows the split you'd actually get for your current confirmed head-count (e.g. "22 confirmed players → groups of 8 + 7 + 7") so you can see odd groups — and therefore byes — before you commit.
- Choose the pairing schemes — each one becomes one round of fixtures, and the panel tells you how many rounds and roughly how many weeks that adds up to:
- Adjacent — neighbours by seed (1v2, 3v4…)
- Slide — top half vs. bottom half
- Fold — 1v8, 2v7: strongest vs. weakest (sometimes called a "slaughter" pairing)
- Random — shuffled, avoiding repeat matchups where possible
- Set the round length (how many days each round runs before the next opens) and whether rounds should auto-open on schedule.
- Repeat for the second stage with the other division role.
- Activate both stages. Because they're marked as a dual-division pair, you don't have to finish one before starting the other — the stages list shows them side by side rather than in sequence.
Assigning players to groups
Open each stage's detail page (Manage → Stages → [stage name]). The division setup panel sits at the top, and the ordinary Groups panel is still below it. That panel shows each group's real roster and its real matches for this division, and its presentation tools — renaming, colours, avatars, Discord threads, per-group match tools — work as they do on any other stage. What it does not do here is change who is in a group or in what order: adding, removing, bulk-adding and seed-reordering all write a single competition-wide group per player, which cannot represent two divisions, so they are switched off with a pointer back to the division panel. Deleting a group is refused while anyone is still in it.
- Auto-assign — a one-click starting point:
- On the seed division, Auto-assign by seed spreads players evenly across groups by their seed (top players aren't all bunched into one group).
- On the timezone division, Auto-assign by timezone sorts players by their profile timezone and buckets them into three regional bands before splitting each band into groups. Each group then shows the UTC-offset range it covers (e.g. "UTC−8 → −4 · 7 players"), so you can tell at a glance which band is which. Players with no timezone set are named in the panel rather than just counted — they can add one on their profile, or you can place them by hand.
- Manual adjustment — change any player's group from the dropdown in the assignment table. Changes are staged: edited rows are highlighted, and one Save changes button commits them all at once. Discard throws them away.
- Empty groups — if you re-run auto-assign at a different group size, any group left empty gets a Remove group button right in the panel.
You can re-run auto-assign as many times as you like before locking — it's meant to be a starting point you fine-tune, not the final word. Auto-assign never touches a player you've already withdrawn from the stage.
Manage membership from the division panel, not the Groups panel. On a dual-division stage the Groups panel still shows each group's real roster and its real matches — but its add / remove / "Add all unassigned" / seed-reorder tools are switched off, with a note pointing back up here. They write a single competition-wide group per player, which cannot represent two divisions. Renaming, colours, avatars, Discord threads and per-group match tools all work normally. Deleting a group is refused while anyone is still in it.
Locking divisions and generating fixtures
Once every active player has a group, the Lock & generate fixtures button becomes available. If it's greyed out, the reason why is written directly underneath it.
Clicking it:
- Creates one round per pairing scheme you configured (e.g. Adjacent, Slide, Fold — three rounds), across every group.
- Publishes the entire schedule at once — players see every round's opponent from day one, and each player gets a "Your schedule" panel on the public stage page showing their own fixtures and deadlines.
- Names each round after its scheme (e.g. "Round 2 · Slide") so it's clear what pattern produced each pairing.
- Sends one notification per division telling players their full schedule is out.
Generation notes
If the engine has anything to tell you, it appears in a notes panel above the round cards — with player names, not IDs. Two kinds:
- Rematch — a group size that isn't a power of two can make two schemes produce the same pair. The note names both players and the earlier round they already met in, so you can nudge group membership and regenerate if you'd rather avoid it.
- Odd group — a group with an odd number of players gives someone a bye each round. The note names who. Bye duty rotates, so no player ever sits out twice in one schedule.
Dismissing the panel keeps it dismissed. If a regenerate later produces different notes, it comes back.
While the league is running
Each round gets a card with everything you need:
- Open now — opens a scheduled round immediately, whether or not auto-open is on.
- Edit dates — change a round's start/end window at any time.
- Regenerate — rebuild that round's fixtures from current group membership. Available only while none of that round's matches have a reported result. Byes and cancelled matches don't block it.
Round windows are deadlines, not gates. Players can play any of their fixtures in any order, at any time — the dates drive reminders and deadline handling, not permission. That's deliberate: in a league spread across timezones, players who can find time early shouldn't be made to wait.
Rounds open automatically on the schedule you set (or you open them by hand with Open now if auto-open is off). The usual round reminders (opened, halfway, 24 hours left) fire as they do for any other round, with the division named in the title so the two divisions' reminders are never confusable.
Changing groups after locking
Edit groups on the division panel reopens the assignment table. Changes take effect when you regenerate a round; rounds that already have reported results keep their fixtures.
Withdrawing and reinstating a player
Withdrawing cancels the player's remaining unplayed fixtures and gives each affected opponent a bye for that round. Matches already played are never touched.
- The Withdraw button on the roster is league-wide — it removes them from both divisions at once, and the confirmation tells you exactly how many fixtures that cancels in each. If you only want them out of one division, there's a link for that inside the same dialog.
- Dropping a player from the Participants page, or approving their own withdrawal request, does exactly the same thing. You don't have to remember to use a particular screen.
- Reinstate puts a withdrawn player back. It tells you which rounds you can regenerate to fold them back into the schedule; rounds with reported results keep their fixtures. Note the asymmetry: Withdraw is league-wide, Reinstate is per-division — so bringing someone back into both divisions means pressing Reinstate on each division's page.
What this doesn't do (yet)
- No drag-and-drop group board — group assignment is a dropdown per player in the staged table.
- No one-click "create a dual-division league" preset — you build the two stages yourself as described above.
- No visual timezone map or adjustable region boundaries — auto-assign always splits into three roughly equal bands by player count, and offsets are resolved at the moment you press the button (so a July run and a November run can band DST-observing players differently).
- The Rounds page in the sidebar doesn't cover dual-division leagues — round operations live on each division's own stage page.