Back
Computer Vision / Desktop App2025

OWCoach

PythonOpenCVmssNumPyOverwolfPyInstaller
OWCoach

Overview

A real-time Overwatch coaching overlay that reads the game screen — not its memory — to recommend hero counters as a match unfolds. A Python detection engine captures the scoreboard/killcam region, matches hero portraits with template matching, infers the enemy composition, and renders click-through suggestions through an Overwolf overlay. Packaged as a standalone Windows desktop app. SAFE BY DESIGN — The whole thing is deliberately screen-space only. It never reads or writes game process memory, never injects into the client, and makes zero network calls during play — so it is not a cheat and stays inside the game's terms of service by construction. The counter logic is a local ruleset; nothing about the player's session is uploaded. ENGINEERING — Auto-calibration locates the relevant HUD region across resolutions, template matching runs above a 0.87 confidence threshold to avoid false positives, and the overlay stays click-through so it never intercepts input. The build ships as a PyInstaller executable with a desktop shortcut and icon, plus a small stats-fetcher that pulls aggregate hero data offline.

Links

Implementation

// production excerpt
owlive/detect.py
# Reads the SCREEN locally — never game memory, never the network. TOS-safe.
import mss, numpy as np

# Screen-space template matching only: no process-memory reads, no injection.
HERO_ICONS = load_templates("hero_names.json")

with mss.mss() as sct:
    region = calibrate(sct)                  # auto-locate the killcam / scoreboard
    while running:
        frame = np.asarray(sct.grab(region))
        matches = match_templates(frame, HERO_ICONS, threshold=0.87)

        enemy = [m.hero for m in matches if m.team == "enemy"]
        counters = suggest_counters(enemy)   # local ruleset — zero API calls
        overlay.render(counters)             # click-through Overwolf overlay

Screen-space only — never touches game memory, makes zero network calls. TOS-safe by construction.