A condition-driven screen overlay for games on Windows. Scans the screen and renders transparent, click-through overlays — text, images — when conditions you define are met.
Condition builder — define pixel, image, and OCR conditions with live testing
Rule builder — bind conditions to overlay actions
Global settings and action defaults
- Transparent, click-through overlay — renders on top of your game without interfering with input
- Per-game profiles — each profile targets a specific process; the overlay activates automatically when that process is focused
- Three condition types — pixel color match, image template match (OpenCV), and OCR text match
- Composite conditions — combine any conditions with AND, OR, and NOT logic
- Two overlay actions — draw text and draw images at any screen position
- Sound alerts — play a sound file on the leading edge of a condition becoming true
- GUI editor — build and test profiles without touching JSON
- Live condition testing — test any condition against the current screen from the editor
- DXGI screen capture — low-overhead GPU-based capture via the Desktop Duplication API
- Smart region batching — overlapping scan regions are merged to avoid redundant captures
- Crosshair overlay — optional configurable crosshair per profile
- Windows 10 or later
- .NET 8 SDK
- Visual Studio 2022 (recommended) or the
dotnetCLI
git clone https://github.com/curtyo18/ScreenHUD.git
cd ScreenHUD
dotnet build
dotnet run --project src/ScreenHUD.AppOr open ScreenHUD.sln in Visual Studio and run the ScreenHUD.App project.
On first launch, ScreenHUD appears in the system tray. Double-click the tray icon to open the editor.
- Create a profile — click
+in the profile list, enter a name and the target process executable (e.g.Wow.exe) - Add a condition — go to the Conditions tab, click
+, choose a type and fill in the parameters. Use Pick to select a screen region or pixel interactively, and Test to check if the condition matches right now - Add a rule — go to the Rules tab, click
+, select your condition, then add one or more actions (draw text, draw image, or play sound) - Save — click Save. Focus your game and the overlay will activate automatically
| Type | Description |
|---|---|
pixelMatch |
Samples a screen region and checks if the pixel color matches within a tolerance |
imageMatch |
Template-matches an image asset against a screen region using OpenCV |
ocr |
Runs Windows OCR on a screen region and checks if the result contains a target string |
AND |
True when all referenced conditions are true |
OR |
True when any referenced condition is true |
NOT |
Inverts a referenced condition |
Composite conditions (AND/OR/NOT) reference other named conditions, allowing arbitrary logical expressions.
| Type | Description |
|---|---|
drawText |
Renders text on the overlay at a specified position with configurable font, size, color, opacity, and optional glow |
drawImage |
Renders an image asset on the overlay at a specified position with configurable opacity |
playSound |
Plays a sound file — fires once when the condition transitions from false to true |
Each profile targets one game process and contains its own conditions and rules. Profiles are stored as JSON files in the profiles/ directory and managed through the GUI. A global settings.json sets defaults (poll rate, monitor, overlay toggle) that individual profiles can override.
ScreenHUD monitors which process has focus via the Win32 API. When a profile's target process is focused, a scan loop starts: it captures the relevant screen regions using DXGI Desktop Duplication, evaluates all conditions against the captured frame, and pushes results to the overlay. When the process loses focus, scanning pauses and the overlay clears. Only one profile is active at a time.