Game detection on screen
Some games tell a program on your computer what is happening. CS2 and Dota 2 do it through Valve’s game state integration, Fortnite writes a log, League of Legends answers its own client. Ad Manager reads those and puts your ad breaks in the gaps.
Most games do none of that. Overwatch, Marvel Rivals, Dead by Daylight and Apex Legends have no API, no log and nothing to paste into a launch option. For those, Pyre reads the picture instead: the desktop app looks at small regions of the frame your game is already drawing, recognises the end screen when it appears, and tells Ad Manager the match just finished.
It happens on your computer, and the frames stay there
Section titled “It happens on your computer, and the frames stay there”This is the part worth being blunt about, because “Pyre watches my screen” is a sentence that deserves a straight answer.
The reading runs inside the Pyre desktop app on your own machine. Pyre looks at the small strips of the picture where a game draws its result banner, its scoreboard or its HUD, decides whether a match just ended, and forgets the frame. The frames are never uploaded, never stored and never sent anywhere. Your webcam is not read, your chat is not read, and nothing outside the game’s own picture is read.
What reaches Pyre’s servers is the same one line every other detector sends: this game, this state, this confidence, at this time. Not a picture.
The one way a picture can ever leave your machine is the detection recorder, which is off until you switch it on yourself, and which sends cropped strips rather than frames. The privacy policy carries the same promises in the form you can hold us to.
Every readable game, and what Pyre can see in each
Section titled “Every readable game, and what Pyre can see in each”This table is every game Pyre reads, not just the four screen-read ones, so that the whole answer to “why is that moment missing” lives in one place. The four titles this page is about are the last four rows.
| Game | What Pyre reads | Match end | Halftime | Death or spectate |
|---|---|---|---|---|
| CS2 | Valve’s game state integration | up to 45s | A 15 second halftime cannot hold a 30 second ad. | up to 30s |
| Dota 2 | Valve’s game state integration | up to 75s | Dota 2 has no halftime. | up to 30s |
| Fortnite | the log the game writes | up to 45s | Fortnite has no halftime. | up to 30s |
| League of Legends | your own League client, through the LCU | up to 60s | League of Legends has no halftime. | Pyre cannot tell when you are dead or spectating in League yet, so this stays off until it can. |
| Overwatch | the VICTORY and DEFEAT banner, with the ability HUD as the in match evidence | up to 45s | Overwatch has no halftime. | Respawns are seconds long, too short for the shortest ad. |
| Marvel Rivals | the result banner’s colour, confirmed by the MVP scene that follows it | up to 45s | Marvel Rivals has no halftime. | The respawn timer moves with the camera, so Pyre cannot read it. |
| Dead by Daylight | the end of trial tally, in both the survivor and the killer layout | up to 60s | Dead by Daylight has no halftime. | No spectate reading for this game yet. |
| Apex Legends | the squad summary with its placement number, and the letterboxed death view | up to 45s | Apex has no halftime. | up to 120s |
League has one more absence, and it is the pre-match countdown:
League does not show Pyre a countdown before a match yet, so this stays off until it can.Every other readable game either gets a real countdown or falls back to clearing your ad block, which Ad Manager covers.
Those quoted sentences are why a moment is missing from a game’s detail on the Ads page. Since the 2026-08-31 rebuild the page draws only the moments a game can actually use, so a chip you can see is a chip that can fire, and this table is where the rest are explained. They are two different kinds of “no”, and the wording tells you which: “has no halftime” or “too short for the shortest ad” means the game does not have that moment and never will, while “yet” means Pyre cannot read it today and the chip can come back when it can.
Apex is the only one of the four screen-read games with a death or spectate window, because being knocked out of a battle royale is the one death long enough to hold a break. It still ships off until you ask for it, like every other game’s.
Two things a screen reading deliberately does not claim. It reads your match, not the lobby’s: Pyre knows the game ended, not who won what. And it never reads a pre-match countdown for these four, because none of them shows Pyre a countdown it can measure.
How Pyre says it is reading your game
Section titled “How Pyre says it is reading your game”The Stream Manager card names the detector behind a reading, so you always know which mechanism is talking:
| Label | What is behind it |
|---|---|
GSI | CS2 and Dota 2, through Valve’s game state integration. |
Game log | Fortnite, through the log it writes. |
LCU | League of Legends, through your own League client. |
Screen | One of the four games on this page, read from your capture. |
Low confidence | A reading Pyre could not make proper sense of. It never runs a break on its own. |
Screen is the tier this page is about. It is the least certain of the four and it
is treated that way everywhere: a screen reading has to clear a higher bar before it
can run anything, and every failure lands on the cadence rather than on silence.
Before the picture says anything, the process list does
Section titled “Before the picture says anything, the process list does”Reading an end screen takes a match to end. Noticing that a game is open takes nothing, and the desktop app was already doing it. So for these four games, the moment your game is running the card says so:
Apex Legends · Running · Low confidenceRunning is the one word on that line that is not a reading of the match. It is a
reading of your computer: the game is up, and Pyre knows nothing else yet. The
confidence is low because it deserves to be, and the reading can never start a break
on its own.
What it does do is protect. A running game with nothing said about the match is assumed to be a match, and Pyre holds ads out of it, because for these four the alternative was no protection at all. The card says which kind of protection you are getting rather than letting you assume Pyre can see your matches:
Protecting the match. (Pyre cannot see it, so it assumes one.)A confident reading from the picture replaces the assumption the instant it arrives. Tabbing out of the game for a few minutes, or closing it, releases it. The whole rule, including what it costs you, is on Ad Manager.
Verify it on your own channel
Section titled “Verify it on your own channel”Pyre will not run a real ad break off a screen reading on a channel that has never confirmed one. Your monitor, your game’s language, your HUD scale and your resolution are yours, and the only person who can prove Pyre reads them correctly is you.
Until a game is verified on your channel, its readings can only ever ask. They arrive as a prompt on the Stream Manager card, and nothing runs until you tap it.
-
Start the desktop app and the game. A browser tab cannot read your screen.
-
Open Ads under MONETIZE in the Pyre.Stream sidebar, open the game’s card, and press Verify detection.
-
Play one match. The panel says so, because there is nothing to see until you do:
Play one match. Pyre will tell you the moment it sees your end screen. -
Watch the strip. The panel shows what Pyre is reading and how close each check is to its threshold. Before frames arrive it says
Waiting for your game. The bars below move when Pyre starts seeing frames. -
Let a match end. When Pyre sees the end screen it confirms in one line:
Match end detected {n}s after the banner.That number is the delay between the banner appearing and Pyre being sure, and it is the thing to sanity check against what you just watched.
That one confirmation is what lifts the game to a full detector on your channel.
If Pyre gets it wrong, the panel carries That was wrong and It missed one
next to the confirmation. Today those are a note to yourself:
Noted on this machine. Nothing was sent. They become useful to us only if you
switch the recorder on below.
The health chip, word by word
Section titled “The health chip, word by word”Each game’s card carries a chip for what detection is actually doing right now. The desktop app says the same thing in a full sentence. Five words, and each one names a different fact:
| Chip | The sentence behind it |
|---|---|
Verified | Connected. Pyre can see this game's end screens. |
Unverified | Not verified on this channel yet. Play one match with the checker open and Pyre will confirm itself. |
Degraded | Pyre can see the game but part of the reading is off. Ads fall back to the spaced-out cadence when it cannot be sure. |
Stale pack | This game had an update Pyre has not caught up with. Detection is extra careful until we refresh it, and your cadence still runs. |
Unsupported | Pyre cannot read this game yet. |
Two absences are deliberate rather than missing.
A game that is not one of the four gets no chip at all. CS2 reads its own words,
so an Unverified mark on its card would be a fact about a detector it does not
have.
And there is a sixth thing the desktop app can say that has no chip word, because
it is a fact about the app on your machine rather than about this game’s setup:
The detection window crashed. Pyre will retry; ads stay on the cadence meanwhile.
Help Pyre learn a game
Section titled “Help Pyre learn a game”Games change. The only thing that keeps a screen reading accurate through a rebrand or a new season is footage of the moment it got confused, and the only people who have that footage are the people playing.
So the Ads page carries an opt-in, off on every channel until you turn it on yourself:
Help Pyre learn this gameSend cropped detection stripsWhen detection nearly fires or visibly misses, Pyre can send us the small strip of the screen it was reading. Never the whole screen, never your webcam, never chat. You can see exactly what a strip looks like below, and delete everything you have sent at any time.What a strip is. The exact region Pyre was already reading, cut on your machine
before anything is queued to send. Not a frame with a box drawn on it: a frame never
reaches the sending path at all. The card shows you real examples under What a
strip looks like, so you decide with the actual picture in front of you rather than
with our description of it. Before anything has been captured it says
Nothing captured yet. Strips appear here before anything is sent.
When one is sent. Only while the switch is on, and only on the three moments worth learning from: detection nearly fired, detection visibly missed one, or you flagged it in the verification panel.
How much. A channel sends at most 50 strips a day and holds at most 400, with the oldest dropped once it is full. Anything over 256 KB is refused rather than shrunk. Every strip is deleted automatically after 90 days.
How to take it back. Delete what you have sent wipes your strips from our
servers immediately, and the card confirms with Deleted. Turning the switch off
stops any new strip from that moment. With it off, nothing about your picture ever
leaves your computer.
What it cannot do
Section titled “What it cannot do”It needs the desktop app. A browser tab cannot read your screen. Without the app running there is no screen reading at all, and Ad Manager runs the cadence, which is a working feature rather than a degraded one.
It is these four games. Overwatch, Marvel Rivals, Dead by Daylight and Apex
Legends. Anything else either has a detector of its own or has none, and a game with
none still gets the cadence. Pyre cannot read this game yet. is the honest answer
rather than a promise.
A new game arrives with the web app, not with an update. The reading for each game is data Pyre fetches, so a refreshed one reaches you without downloading a new desktop build. It also means a game can be paused from our side if its reading starts misfiring, and you land on the cadence when it is.
It reads the end, not the story. Pyre knows a match ended. It does not know your placement, your score or your rank, and nothing on this page is analytics.
Ad breaks are Twitch only. The reading itself is not, but the feature it feeds rides Twitch’s ad APIs, and there is nothing equivalent to point at on Kick or YouTube.
Related
Section titled “Related”- Ad Manager for what Pyre does with a reading, the cadence, and the five moments.
- The Pyre.Stream desktop app for installing the app and for the games that report through a config rather than through the screen.
- The Stream Manager for the cockpit card the detector reading appears on.