queuePop v1.3.3
queuePop now plays your entire ARAM champ select — from the very first second to the loading screen.
✨ The headline: ARAM opening pick
Modern ARAM starts by offering you 2-3 champions for ~10 seconds; if you don't choose, the game picks randomly and dumps the rest onto a shared bench where anyone can snipe them. queuePop now picks the best of your offered champs within the first second — before a teammate can beat you to your own roll.
(For the curious: the offered champ list isn't in the champ-select session at all — it's hidden in a separate lol-lobby-team-builder endpoint, and trying to pick a champ you weren't offered silently "succeeds" while doing nothing. That's why this was never possible before. We found it by instrumenting live lobbies.)
🎯 Champ priority modes
The old "highest mastery" toggle is now a six-way Champ priority in Settings → ARAM, and it drives everything — the opening pick, bench grabs, and trades chase one consistent target:
| Mode | What it chases |
|---|---|
| Highest mastery | Your most-played champs (the classic behavior — existing configs migrate here) |
| Lowest mastery | Champs you've barely touched, never-played first — for learning the roster |
| Rusty | Whatever you haven't played in the longest — old mains keep cycling back |
| Mastery milestone | Whichever champ is closest to its next mastery level — maximum dings per game |
| Random | One shuffled order per lobby — chaos mode |
| My ARAM list | Your hand-sorted Champ Select → ARAM list |
🔁 Smarter trading
Trades are standing offers, not one-shot actions — so queuePop now manages them like one:
- Keeps at most one live request, always aimed at the best upgrade a teammate is holding
- Auto-cancels the request the moment it stops being an upgrade (e.g. you just grabbed something better off the bench) — a teammate's late "accept" can never downgrade you
- Re-checks incoming offers at the moment of acceptance, not when they arrived
- Never re-pesters someone who declined, and rate-limits request churn
⚙️ Order of operations
Each champ-select tick now runs in strict priority order: opening pick → bench grab (instant, free) → trades (slow, consensual) → runes/spells/skins last — so the guaranteed moves always land before the cooperative ones, and cosmetics can never delay a pick.
🐛 Fixes
- Console output is forced to UTF-8 at startup — previously, running queuePop with redirected output could crash the client-connected handler on an emoji and leave the app stuck on "Searching for League Client…"
- Champion mastery is fetched once per champ select and shared by all features
Full changelog: v1.3.2...v1.3.3