Skip to content

About

League of Legends-style ping wheel for the Windows desktop, with multiplayer rooms / 桌面版 LoL 信号轮盘,支持联机

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Ping Wheel

English | 中文

Hold a key and drag to open a League of Legends–style ping wheel over any window on Windows, then drop a ping on screen with its icon and sound. Join a room and your pings show up on your friends' screens too.

demo

Features

  • Hold Alt and drag the left mouse button to open the wheel; release on a sector to ping. Works over any window.
  • Nine pings from the game: Retreat, Push, On My Way, All In, Assist Me, Need Vision, Enemy Missing, Enemy Vision, plus the generic blue ping from the center hub.
  • Ping marks animate at the cursor with the matching sound and fade out after a configurable time.
  • Bind any key or mouse side button as the trigger, and bind a direct hotkey (for example Ctrl+Alt+D) to any single ping.
  • Pause and resume everything with Ctrl+Alt+P or from the tray menu.
  • Play with friends: one person hosts a room from inside the app, others join with a 6-digit code. Only the ping type is sent, never your cursor position.
  • Replace icons and sounds by dropping files into the assets folder. Changes apply without a restart.
  • Multi-monitor and mixed-DPI aware. Runs in the tray and can start with Windows.
  • English and Chinese UI; follows the system language by default and can be switched in settings.

Install

Users. Download PingWheel-Setup-x.x.x.exe from Releases and run it. No runtime or extra install is needed. Windows 10 / 11 only. The installer is not code-signed, so SmartScreen may warn on first run; choose "More info" and then "Run anyway". The app lives in the tray; click the tray icon to open settings.

From source. Requires Node.js 22 or newer.

git clone https://github.com/Reverie0123/ping-wheel.git
cd ping-wheel
npm install
npm run dev

Other commands: npm run build then npm start runs the built app, npm run dist builds the installer into dist/, npm test runs unit tests. The keyboard/mouse hook is a small C++ program shipped prebuilt as resources/hook-helper.exe; rebuild it with npm run build:helper (needs MinGW-w64 g++) only if you change native/hook-helper/hook.cpp.

Usage

  1. Hold Alt, press the left mouse button and drag. The wheel opens once you have dragged 8 px.
  2. Move toward a sector and release to send that ping. Release inside the center hub to send the generic ping.
  3. To cancel, right-click or press Esc before releasing.
  4. Alt+click without dragging passes through to the window underneath as usual.
  5. Press Ctrl+Alt+P to pause or resume. A toast on screen confirms the state.
  6. To change the trigger key, open settings from the tray, click Re-record next to the trigger key, and press a key or a mouse side button.
  7. To play with friends, set My ID in settings. The host turns on Host a room and clicks Create room, then sends the room code and one of the listed addresses (Copy invite copies both). Others paste that address into Server address, enter the code and click Join. Everyone must be on the same network, such as the same Wi-Fi or the same virtual LAN (Radmin VPN, ZeroTier).

Configuration

Everything except hostPort is editable in the settings window. The file is %APPDATA%\ping-wheel\config.json, read on startup and rewritten whenever a setting changes.

Key Default Range
hotkey Alt any key, mouse middle or side buttons
dragThresholdPx 8 2 to 40
clickPing false send the generic ping on a plain click
toggleHotkey Ctrl+Alt+P must include Ctrl, Alt or Win
hubRadius 100 60 to 160, scales the whole wheel
pingSizePx 56 36 to 120
pingDurationMs 2200 1000 to 8000
volume 0.8 0 to 1
tickSound true click when crossing a sector
pingHotkeys {} one hotkey per ping id
nickname "" up to 16 characters; your name in rooms, also shown under On My Way
serverUrl / hostRelay / hostPort "" / false / 8787 multiplayer
launchAtStartup / enabledOnStart false / true installed version only for autostart
language "auto" auto (follow system), zh or en
{
  "version": 2,
  "hotkey": { "kind": "key", "code": 18, "label": "Alt" },
  "hubRadius": 100,
  "pingDurationMs": 2200,
  "volume": 0.8
}

Custom icons and sounds go in %APPDATA%\ping-wheel\assets\icons and assets\sounds, named after the ping id (retreat, push, omw, allin, assist, vision, missing, enemy_vision, signal). Logs are in %APPDATA%\ping-wheel\logs\main.log.

Known limitations

  • Windows 10 / 11 only.
  • Does not work over windows running as administrator (Task Manager, elevated installers). Windows does not deliver their input to a normal-privilege hook.
  • Games in exclusive fullscreen draw over the overlay. Use borderless or windowed mode.
  • Screen sharing of a single window does not capture pings. Share the whole screen.
  • With a modifier as the trigger, holding it and dragging is swallowed, so other apps never see that Alt-drag. Direct ping hotkeys that use a modifier or an F-key are swallowed too.
  • Antivirus software may flag the global keyboard/mouse hook and the unsigned installer.
  • Multiplayer needs everyone on the same network or virtual LAN. There is no public server. The host must keep the app running; rooms hold up to 10 people and pings are rate-limited to 5 in a burst.
  • Windows can silently remove low-level hooks. The helper re-installs itself when it notices, but you may lose a ping now and then.

Planned

These are ideas, not commitments.

  • A public relay server so rooms work across the internet without a virtual LAN. The relay code is already in server/ and can be self-hosted.
  • Multiple wheels. The wheel is data-driven, but the UI currently exposes only the map-ping wheel.
  • macOS support.

Assets and disclaimer

Icons and sounds come from League of Legends via the League of Legends Wiki and are © Riot Games, Inc. They are not covered by this project's license. Ping Wheel is an unofficial fan project, not affiliated with or endorsed by Riot Games, and is for learning and entertainment only, not for commercial use.

License

MIT for the source code. See the note at the end of the LICENSE file about the game assets.

Related projects

  • lolPing brings the ping wheel to the desktop as well and was released earlier. Some single-player design choices here follow its design notes; the code is independent.

About

League of Legends-style ping wheel for the Windows desktop, with multiplayer rooms / 桌面版 LoL 信号轮盘,支持联机

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages