Pewpew is a lightweight desktop overlay and dashboard for League of Legends that surfaces high‑signal, actionable info while you play:
- Wave Management reminders (cannon waves, lane timing)
- Objective Preparation notifications (Dragon/Herald/Baron setup timers)
- Compact live dashboard (items, runes, summoners, scores, teams)
- In‑game overlay that mirrors tips as subtle toasts, click‑through by default
Built with Electron + TypeScript. Tips are driven by simple YAML rules you can edit without rebuilding.
- Data source: Uses the Riot Live Client Data API exposed locally during live games at
http://127.0.0.1:2999. No credentials are required; this endpoint is only available while you are in a match. - Assets: Champion/items/spell icons are fetched from Riot Data Dragon (over HTTPS).
- Tips Engine: A small rules engine reads YAML from
data/tips/and emits “tip” payloads (title/body/icon/severity). We currently ship Objective and Wave Management rules. - Overlay: A transparent, always‑on‑top window renders compact toasts. It ignores mouse input so it won’t block gameplay. Works best in Windowed or Borderless modes (exclusive fullscreen can hide overlays).
- Wave Management: cannon‑wave reminders timed to lane spawning cycles
- Objective Preparation: pre‑spawn lead timers for Dragon/Herald/Baron
- Live dashboard: items, runes, summoners, team rosters, event log, insights
- Overlay: auto‑opens on game start, hotkey toggle, “Pewpew ON” indicator
- Dev‑only raw data viewer for debugging (hidden in production builds)
Prerequisites:
- Node.js 18+ (recommended) and npm
- Windows 10/11 (overlay tested on Windows; Electron is cross‑platform but the overlay is primarily tuned for Windows behavior)
Install and run:
npm install
npm run dev # builds TypeScript and starts Electron with dev flags
# or
npm start # same as 'dev' but without setting APP_DEV=1 explicitlyWhen a live game is detected, the app automatically switches to the “Live Game” tab and opens the overlay. Use the “Toggle Overlay” button in the header or press Ctrl+Shift+O to show/hide the overlay.
We use electron‑builder to package the app.
npm run dist # NSIS installer (.exe) → release/
npm run dist:portable # Portable single .exe → release/Versioning:
- The app version comes from
package.json"version" and is shown in the app header (e.g., v0.1.0). - Bump with
npm version patch|minor|majorbefore packaging.
Artifacts are written to the release/ folder. The portable build runs without installation; the NSIS build installs and adds Start Menu shortcuts.
- Auto‑opens when a game starts; auto‑hides when the game ends.
- “Pewpew ON” badge in the top‑right confirms the overlay is active.
- Click‑through: the overlay never captures mouse clicks.
- Best results in Windowed or Borderless modes (exclusive fullscreen can obscure overlays).
Hotkeys:
- Ctrl+Shift+O → Toggle overlay visibility
Tips live in data/tips/. You can add rules without rebuilding. The engine watches the directory and reloads automatically.
Example structure:
version: 1
modules:
- id: objectives
rules:
- id: dragon_prep_30
name: Dragon in 30s
trigger:
type: objective_spawn
objective: dragon
leadSeconds: 30
notify:
channels:
- type: overlay
icon: "🐉"
title: "Dragon in {lead}s"
body: "Group and secure vision."
severity: warningSupported triggers today:
objective_spawnwithobjective: dragon|herald|baronandleadSecondscannon_wavewithleadSeconds(during laning phase < 20:00)
- Header: Title with app version; controls for polling interval; buttons for Raw Data (dev only) and Toggle Overlay.
- Live Game tab:
- Summary cards (Game, Me, Scores)
- Items/Runes/Summoners (left)
- Wave Management tips (middle)
- Objective Preparation tips (right)
- Event log and Scoreboard below
While not in a game, a friendly “Waiting for a live game” screen is shown.
- Polling interval: Adjustable in the header (default 1000ms). The value is persisted to a small local settings file and restored on launch.
- Icons: App icons live under
assets/. For Windows packaging, includeassets/icon.ico(multi‑size ICO). - Packaging includes:
dist/**(compiled JS),renderer/**(HTML/CSS/TS outputs),data/**(tips), andassets/**(icons).
- Raw Data viewer: Accessible via “View Raw Data” in dev builds. Hidden/disabled in production builds.
- “No data / waiting for game”: The Live Client API only appears when you are in a live match. Start a game; the overlay will auto‑open.
- Overlay doesn’t appear: Switch LoL to Windowed or Borderless mode. Exclusive fullscreen can hide overlay windows on some systems.
- Strict antivirus/windows settings may affect overlays; ensure the app is allowed to run.
All processing happens locally. The app reads your local Live Client Data while you are in a game and fetches static assets from Riot’s CDN. No personal data is transmitted anywhere by this app.
TBD. *** End Patch