The permanent pickup ladder — 1v1 up to 5v5v5v5 games on the tournament server, matchmade from a live queue, with an individual Elo for every player. Always on: say when you are free, the first eligible in the queue play.
The seasonal tournaments live on their own page, BB Cups — the Autumn 26 BB Cup: registrations open; the finished cups are kept there as archives.
A pickup on the tournament server whenever enough people are around — 3v3 fires at 6 players, 5v5 at 10, and since 05/09 1v1 at 2, 2v2 at 4, 4v4 at 8, 7v7 at 14 and 8v8 at 16 (all five opt-in). When several pools are full the biggest game fires; 2v2 and 1v1 come last, so a small format can never take the slot from a team game. Say when you are free and which format(s) you play, here or from the in-game panel, and the first eligible in the queue play. Every League game moves your personal League rating, which starts at 950. How does it all work? ↓
0 players waiting · a match fires as soon as enough players are waiting · all times UTC
BB Captains lobby: 1 player · 1 captain volunteer · Captains lobby →
A match fires as soon as enough READY players are waiting: the matchmaker takes the biggest playable game it can make from the players whose minimum allows it, first come, first served; everybody else keeps their place in line. Playable sizes: 2, 3, 4, 6, 8, 9, 10, 12, 14, 15, 16, 20 players. Teams are made for you once the match is found.
New to BB League? Your first game in 3 steps →
The queue above is live for everyone — log in to sign up.
In Factorio chat: askbot auth, paste the token in /bb-bets, then come back here.
A League signup is a promise to show up: the matchmaker DMs you on Discord the moment your game fires, and you lose a little rating if you never turn up. So it needs to know who you are, and it needs a Discord it can reach.
askbot auth in the game chat.The next BB Cup is the Autumn 26 BB Cup. Registrations close Sun 18 Oct, 21:00 UTC (target) · first games the week of 19 Oct · 3 rounds planned, final around Sun 22 Nov — targets, adjusted to the number of teams, in both brackets (⚡ Speed / 🎮 Casual). Swiss rounds, then Top-4 playoffs; the field fills team by team: 2 teams so far. Rosters hold 3–5 players (3 play per match, up to 2 spares). Teams of past cups do not carry over — the captain registers them again.
No team yet? Register as a free agent on the Cup page: the site groups free agents into balanced trios by League rating, each member accepts, and at 3/3 the team creates itself and is registered for the Autumn 26 Cup automatically. Every League pickup you play meanwhile still moves your rating.
Ranked players first (5+ rated games), sorted by rating. Players still in placement (fewer than 5 games) follow with no rank. Rating = 950 + 20 × (μ − 3σ) (OpenSkill, since 21/09): μ is your estimated skill, σ how sure the system is about it. Playing lowers σ, so your rating also rises as your level gets confirmed; a long break (more than 5 days) slowly raises σ again. No-show penalties are included. Click a name for their profile. How rating works →
| # | Player | Rating | W–L | Games | Last game |
|---|---|---|---|---|---|
| 1★ | 1409 μ 42.3 ± 6.4 | 20–3 | 23 | 2026-10-02 11:20 UTC | |
| 2 | Carl1 | 1378 μ 39.5 ± 6.0 | 14–3 | 17 | 2026-10-02 21:38 UTC |
| 3 | 1337 μ 36.0 ± 5.5 | 13–5 | 18 | 2026-10-03 00:00 UTC | |
| 4 | 1327 μ 33.2 ± 4.8 | 16–10 | 26 | 2026-10-03 00:00 UTC | |
| 5 | 1283 μ 34.9 ± 6.1 | 12–6 | 18 | 2026-09-22 05:01 UTC | |
| 6 | 1231 μ 31.0 ± 5.7 | 12–9 | 21 | 2026-09-28 19:59 UTC | |
| 7 | 1203 μ 26.4 ± 4.5 | 25–23 | 48 | 2026-10-03 00:00 UTC | |
| 8 | 1180 μ 31.2 ± 6.6 | 9–5 | 14 | 2026-09-28 19:59 UTC | |
| 9 | 1162 μ 31.0 ± 6.8 | 9–4 | 13 | 2026-09-21 04:32 UTC | |
| 10 | 1158 μ 23.1 ± 4.2 | 24–39 | 63 | 2026-10-03 00:00 UTC | |
| 11 | the1cobra | 1096 μ 26.2 ± 6.2 | 12–10 | 22 | 2026-10-02 21:38 UTC |
| 12 | 1072 μ 20.1 ± 4.5 | 14–24 | 38 | 2026-10-02 01:52 UTC | |
| 13 | 1041 μ 24.3 ± 6.6 | 1–7 | 8 | 2026-09-27 22:27 UTC | |
| 14 | 1022 μ 25.5 ± 7.2 | 6–4 | 10 | 2026-09-29 22:55 UTC | |
| 15 | 1022 μ 27.9 ± 8.1 | 3–2 | 5 | 2026-09-21 04:32 UTC | |
| 16 | 960 μ 19.5 ± 6.2 | 8–11 | 19 | 2026-10-02 11:20 UTC | |
| 17 | 945 μ 21.5 ± 7.2 | 2–5 | 7 | 2026-10-02 21:38 UTC | |
| 18 | 940 μ 19.2 ± 6.6 | 4–10 | 14 | 2026-09-22 21:50 UTC | |
| 19 | 928 μ 23.2 ± 8.1 | 2–3 | 5 | 2026-09-21 04:32 UTC | |
| 20 | 927 μ 20.2 ± 7.1 | 2–4 | 6 | 2026-09-27 01:14 UTC | |
| 21 | 923 μ 15.2 ± 5.5 | 11–19 | 30 | 2026-10-02 01:52 UTC | |
| 22 | 880 μ 17.4 ± 7.0 | 3–5 | 8 | 2026-09-26 23:05 UTC | |
| 23 | 831 μ 17.1 ± 7.7 | 0–5 | 5 | 2026-09-21 04:32 UTC | |
| 24 | 753 μ 7.7 ± 5.8 | 3–22 | 25 | 2026-09-29 22:55 UTC | |
| ▼ Placement — fewer than 5 rated games, not ranked yet | |||||
| — | 983 μ 26.6 ± 8.3 | 1–0 | 1 | 2026-09-21 04:32 UTC | |
| Date | Line-up | Winner | ||
|---|---|---|---|---|
| 2026-10-02 22:32 UTC |
|
🏆 Top Left | 📊 match page | |
| 2026-10-02 19:52 UTC |
|
🏆 Team A | 📊 match page | |
| 2026-10-02 10:39 UTC |
|
🏆 Team A | 📊 match page | |
| 2026-10-02 09:57 UTC |
Carl1 vs
|
🏆 Team A | 📊 match page | |
| 2026-10-02 00:08 UTC |
|
🏆 Top Left | 📊 match page | |
| 2026-10-02 00:00 UTC |
|
abandoned — both sides lose | 📊 match page | |
| 2026-10-01 23:06 UTC |
|
🏆 Team A | 📊 match page | |
| 2026-10-01 20:28 UTC |
|
🏆 Team A | 📊 match page | |
| 2026-09-30 21:23 UTC | 🏆 Top Left | 📊 match page | ||
| 2026-09-30 18:38 UTC | 🏆 Bottom Right | 📊 match page | ||
| Hour | Online | Games played / day | |
|---|---|---|---|
| 00:00 | 3.0 | 0.20 | |
| 01:00 | 2.3 | 0.08 | |
| 02:00 | 1.4 | 0.03 | |
| 03:00 | 0.9 | 0.05 | |
| 04:00 | 0.7 | 0.05 | |
| 05:00 | 0.5 | 0.03 | |
| 06:00 | 0.5 | 0.03 | |
| 07:00 | 0.5 | 0.00 | |
| 08:00 | 0.5 | 0.00 | |
| 09:00 | 0.4 | 0.03 | |
| 10:00 | 0.6 | 0.10 | |
| 11:00 | 0.8 | 0.03 | |
| 12:00 | 0.9 | 0.10 | |
| 13:00 | 1.2 | 0.10 | |
| 14:00 | 1.4 | 0.08 | |
| 15:00 | 2.0 | 0.10 | |
| 16:00 | 2.7 | 0.18 | |
| 17:00 | 3.2 | 0.15 | |
| 18:00 | 5.1 | 0.38 | |
| 19:00 | 7.5 | 0.41 | |
| 20:00 | 9.2 | 0.49 | |
| 21:00 | 8.6 | 0.44 | |
| 22:00 | 6.1 | 0.33 | |
| 23:00 | 4.2 | 0.28 |
Sign up from any of the 3 surfaces: the website (the League panel on the BB League page — mouse slider, from/until shown in your local time and UTC), the MAIN Factorio server, or the TOURNAMENT server — in game it is the red BB LEAGUE button, top-left.
You must have your Discord linked — that is how you get pinged the moment your game fires.
You have one signup, shared across all surfaces — the last action wins everywhere. Clicking Join again updates your window (you keep your queue spot); Leave — or your window expiring — removes you.
Format checkboxes: 3v3 and 5v5, both on by default; 1v1, 2v2, 4v4, 7v7 and 8v8 are opt-in (off by default). Tick every format you are happy to play — you are pooled for each of them at once. At least one must stay ticked.
⚠ Signing up is a commitment: a no-show costs Elo (see below).
First come, first served, strictly by signup order — no skill matching, no queue dodging.
A format fires the moment its pool is full among players whose window is open: 1v1 at 2, 2v2 at 4, 3v3 at 6, 4v4 at 8, 5v5 at 10, 7v7 at 14, 8v8 at 16. When more than one is full, the biggest game wins the slot — 8v8 > 7v7 > 5v5 > 4v4 > 3v3, then 2v2, then 1v1 — because only one League game runs at a time and the bigger fire gets more of the queue playing. In a 2v2 the 4 players must agree unanimously on the teams (RANDOM needs 4/4; MANUAL is armed by all 4 with an exact 2/2 split); a 1v1 has no team formation at all — the sides are drawn the moment both players are in. Bigger parties get a little longer to arrive and to decide (up to 20 and 15 minutes at 8v8).
Official matches own the server: from 120 minutes before a scheduled Cup match until its post-game map reset, no League game can start — you'll see a red notice. If your window is still open after the official match, your game fires then, automatically.
You get a Discord DM instantly (and a connect prompt if you're on the main server). You then have 10 minutes to show up on the tournament server — each absent player loses 4 Elo (the ones who came lose nothing) and the game is cancelled; everyone re-queues by re-clicking.
Once all players are there: team formation — a public panel where the players choose RANDOM teams (fires at a 2/3 majority) or MANUAL (pick your own side, exact split required, everyone clicks ARM to confirm; any change resets the arms; 10-minute limit or the game is cancelled, no Elo).
Then the standard ceremony: 2 map rerolls per side, sides drawn at random, map locked, and the prep countdown — skippable when all players click go.
Individual, starts at 1000, shown in the red button, on the leaderboard and on your profile. Zero-sum: winners gain exactly what losers lose — the population average stays 1000 forever.
One game moves everyone on both teams by the same amount: 32 × (1 − expected win chance), clamped between 1 and 31 — beating a stronger lineup pays up to +31, beating a much weaker one +1. Team strength = average Elo of its players. 1v1 games move half as much (16 × instead of 32 ×, so ±0.5 to ±15.5): the easiest format to farm weighs half.
Worked example (a real early game): winners averaged 1010.6, losers 984.1. Expected win chance = 1 / (1 + 10^((984.1 − 1010.6)/400)) = 53.8% → Δ = 32 × (1 − 0.538) = ±14.78 for all six players. Every rated game's page shows this exact breakdown in its 📈 League Elo section.
Why early games all move ~16: while everyone hovers near 1000, team averages can only differ by a few points, so the expected chance sticks to ~50% and Δ to ~16. The spread does the work later:
| Gap between team averages | Favorite wins | Underdog wins |
|---|---|---|
| 0 (even lineups) | ±16 | ±16 |
| 50 | ±13.7 | ±18.3 |
| 100 | ±11.5 | ±20.5 |
| 200 | ±7.7 | ±24.3 |
| 400 | ±2.9 | ±29.1 |
| 600+ | ±1 (floor) | ±31 (cap) |
A game counts the moment the map locks and the game starts; leaving mid-game doesn't save you — you share your team's result. Every winner also gets 1 coin per game. Only a fresh map counts: a game that started before your match fired (an old map whose silo already fell) is never ingested — the server resets and your match starts on a new one.
| Event | Elo |
|---|---|
| Win against a stronger lineup | up to +31 |
| Win against a much weaker lineup | +1 |
| Loss (mirror of the winners' gain) | −1 to −31 |
| No-show after your game fired | −4 |
| Game abandoned by both sides | −8 everyone |
| Cup / tournament match | 0 — never moves it |
You need 5 played games to be ranked on the leaderboard — your rating works from game 1.
Coin gamble. While the teams get ready, everyone on the server can put coins on a side (in-game panel); the pot is shared by the winning side in proportion to their stakes, a bet can never win more than the other side put in, and stakes are refunded if the match is cancelled. Players can only back their own team. If the same two line-ups meet again within 90 minutes, the match is played and rated as usual but has no gamble.
Fair play. One Discord account per League account (the link is required to queue, and a Discord can only be linked once). Two accounts seen on the same address never form a 1v1, and the same two players cannot meet twice in a row in 1v1. Accounts that play each other from the same address are flagged for review; farmed games are reverted, coins included.
Same treatment as official matches: result + top-builders recap card on Discord, full stats on the site (game page, profiles, leaderboard), and you're invited back to the main server a few minutes later.
Terms like Swiss, joker or bye are defined in the glossary.
These rules live in the public documentation — anything wrong can be corrected with a pull request.