Skip to content

brandon-relentnet/queuePop

Repository files navigation

queuePop

License Python Platform

A lightweight, automated tool for League of Legends and Teamfight Tactics that instantly accepts queue ready checks. It runs silently in the system tray and integrates with Discord for remote notifications.

πŸ“Έ Screenshots

queuePop dashboard, monitoring, ranked overview, and live activity

Auto pick/ban & notifications Champion priority list
Settings Champion select
Per-champion loadouts One-click queue
Loadout editor Queue launcher

πŸš€ Features

  • Auto-Accept Queues: Instantly accepts the "Ready Check" popup.
  • Auto Pick & Ban: Automatically bans and picks champions based on your assigned role, with ordered backup picks if your first choice is banned or taken. Hovers your pick and auto-locks it just before the timer runs out.
  • ARAM Bench Grab: In ARAM, automatically swaps to your highest-priority champion the moment it appears on the reroll bench, and applies that champ's loadout (runes, summoner spells, skin).
  • Per-Champion Loadouts: Save runes, summoner spells, and a skin per champion; they're applied automatically once you're locked in.
  • System Tray Integration: Runs silently in the background; minimize to tray to keep your taskbar clean.
  • Discord Notifications: Get a ping on your phone (via Discord Webhook) when your queue pops!
  • Game Mode Detection: Smartly identifies if it's Ranked, ARAM, or TFT.
  • Queue Filtering: Configure exactly which game modes to accept (e.g., only "TFT Ranked").
  • Zero-Interference: Uses the LCU API directly, no screen scraping or mouse hijacking.

πŸ“₯ Installation

Option 1: Installer (Recommended)

  1. Go to the Releases page.
  2. Download queuePop-v<version>-setup.exe.
  3. Run it. It installs for the current user (no admin prompt), adds a Start Menu entry, and can optionally create a desktop shortcut and start with Windows.

Option 2: Portable

  1. Download queuePop-v<version>-portable.zip from Releases.
  2. Extract it anywhere and run queuePop.exe.

Auto-updates: both flavours check for new releases on launch. When one is available you'll see an Update banner, one click downloads it and restarts into the new version (the installer build updates silently; the portable build swaps its own .exe). You can also check manually under Settings β†’ About & Updates.

Option 3: Run from Source

If you are a developer, you can run it directly with Python.

  1. Clone the repository.
  2. Install dependencies:
    pip install -r requirements.txt
  3. Run the application from the repository root:
    python src/main.py

βš™οΈ Configuration

On the first run, a setup wizard will appear in a console window.

  1. Discord Webhook (Optional): Paste a webhook URL to receive notifications.
  2. Discord User ID (Optional): Enter your ID (e.g., 123456789) to get @mentioned when the queue pops.
  3. Allowed Queues: Select which modes to auto-accept (or leave blank for all).

Auto Pick & Ban

Open Settings from the tray icon and switch to the Champ Select tab:

  1. Tick Enable Auto Pick / Ban.
  2. For each role, enter comma-separated champion names for Ban(s) and Pick(s), e.g. Ahri, Syndra, Lux. Picks are tried in order, so list backups in case your first choice is banned or already taken by a teammate.
  3. Set the lock-in timer (default 1 second). Your pick is hovered immediately, so you can still change it manually, and force-locked once the phase has this many seconds left.

Role-based pick & ban applies to queues with assigned roles (Draft Pick, Ranked Solo/Duo, Ranked Flex). Blind Pick has no roles and is left alone.

ARAM

ARAM doesn't let you pick a champion outright β€” you're dealt a random one and share a reroll bench with your team. So instead of picking, queuePop watches the bench and instantly grabs your highest-priority champ the moment it shows up, trying your list in order. Open Settings β†’ Champ Select, tick Enable ARAM, and enter a comma-separated priority list (e.g. Ziggs, Lux, Ashe). Whatever champ you end up on gets its saved loadout (runes, spells, skin) applied automatically. Works in ARAM and ARAM Mayhem.

Modifying Settings

  • Right-click the system tray icon and select Exit to close the app.
  • Run the app with the --update flag to restart the wizard:
    queuePop.exe --update
    (Or simply delete the config.json file and restart the app).

πŸ–₯️ Usage

  1. Launch queuePop.exe.
  2. The application will minimize to the system tray (look for the Thresh icon).
  3. Right-click the tray icon to:
    • Pause/Resume: Temporarily stop auto-accepting.
    • Show/Hide Console: View the activity log and debug info.
    • Exit: Close the application.

πŸ› οΈ Building

To build the executable yourself using PyInstaller:

pip install pyinstaller
python -m PyInstaller queuePop.spec

The output will be in the dist/ folder. For a full clean build, run:

python build_release.py

That fetches League assets, compiles the Tailwind CSS, runs PyInstaller, and writes these artifacts to releases/:

Artifact What it is
queuePop-v<version>-setup.exe Inno Setup installer (the installed flavour)
queuePop-v<version>-portable.zip Zipped portable exe
queuePop.exe Bare exe, the asset the portable auto-updater downloads

The installer step needs Inno Setup on your PATH; if it's missing, the script warns and still produces the portable artifacts. The installer script lives at installer/queuePop.iss.

🚒 Releasing

Releases are built and published by GitHub Actions (.github/workflows/release.yml) on windows-latest:

  1. Bump __version__ in src/_version.py.
  2. Commit, then tag and push:
    git tag v1.2.0
    git push origin main --tags
  3. The workflow verifies the tag matches _version.py, builds all three artifacts, and publishes a GitHub Release with auto-generated notes. Users on older versions get the in-app update prompt.

You can also trigger it manually from the Actions tab (it uses the version in _version.py and creates the matching tag).

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Note: This project is not endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing League of Legends.