EGGWATCH FOR WINDOWS
====================

VERSION 2.7.11 - SPAWN AREAS
Confirmed eggs now include the area read from their own spawn announcement.
Rift areas are read from explicit Rift announcements during the :00 or :30
five-minute spawn window. Two matching readings are required. Ambiguous or
missing locations stay unknown; EggWatch does not guess from an egg's name.
The website shows older Rift locations as last detections with a timestamp.
To receive areas in the shared feed, update the active publishing PC too.

VERSION 2.7.10 - EIGHT NEW EGGS
Detection and notification choices now include:
Secret: Gargoyle, RazorFang, Pure Jellyfish, Centaur
Eternal: Skeleton Horse, Pegasus
Divine: World Burner, ArchAngel
The detector and website now share a catalogue of 31 high-rarity eggs.
To update, close the old watcher with Ctrl + Backspace, extract this ZIP,
and run SETUP.bat from the new folder.

FAST RESET DETECTION
Checks target 0.05 seconds from 00:10 before reset through 04:50 after reset.
Normal scanning resumes outside this window. OCR speed depends on your PC.
The watcher now supports https://eggwatcher.com. Close the old watcher, extract
this version, and run SETUP.bat to update the desktop shortcut and connection.

WHAT IT DOES
EggWatch reads only your Roblox window on this PC. It copies the visible egg
reset countdown to the EggWatch website, confirms every egg shown in the same
spawn announcement, remembers up to 500 detected eggs, and sends the
notifications you choose. If Roblox disconnects, EggWatch reports it and waits for you to click
Reconnect or Open game. It does not play, inject into, or modify Roblox.

VERSION 2.7.7 - CLOSE SHORTCUT
Press Ctrl + Backspace from any app to close the EggWatch Python watcher.
The launcher will also exit instead of restarting it. Roblox and your browser
stay open. Open the EggWatch shortcut again when you want to restart tracking.
While EggWatch is running, this key combination is reserved for closing it.
If another app has already registered it, eggwatch.log reports the conflict.
Download and extract this updated version, close the old watcher, and run
SETUP.bat in the new folder to install the updated launcher and shortcut.

VERSION 2.7.6 SCANNER AND STABILITY FIX
Version 2.7.6 recognises the real Roblox window even when Windows blocks process
inspection, while still rejecting Chrome, Edge, Firefox, Opera, and other browser
pages that mention Roblox. The launcher now verifies the EggWatch health endpoint,
records real startup and capture errors in eggwatch.log, and automatically restarts
the watcher after an unexpected crash instead of silently closing.
It still allows confirmed eggs, history, shared publishing, and alerts only
when the detected name resolves to one of EggWatch's supported high-rarity
eggs. Every other OCR result is rejected as a bug and cannot enter the confirmed
egg section. Existing invalid saved entries are filtered when this version loads.

VERSION 2.7.3 BACKUP QUEUE FIX
Version 2.7.3 works with the updated EggWatch website so every desktop user,
not only the signed-in main owner, can start an installed watcher from the site.
Each running watcher connects directly to the automatic standby queue. The main
owner remains priority #1, and the earliest live backup takes over when the
watcher ahead stops sending heartbeats or its Roblox game goes down.

RESOLUTION-SAFE EGG DETECTION AND HISTORY RESET
Version 2.7.6 measures the live Roblox frame and scales its egg and timer areas
to that exact resolution. The same proportions work in windowed, borderless,
small, large, 4:3, 16:9, and ultrawide Roblox windows without using fixed pixel
coordinates. The EggWatch website also reflows to the visitor's available
screen width instead of overflowing off-screen.

Egg names are still read only from the upper-centre rectangle drawn by the
EggWatch owner (22% from the left, across 55.5% of the window, and the top 43%
high). A pet name is accepted only when Egg is in the same OCR label or in a
tightly adjacent label immediately to its right. A pet name elsewhere in the
box is ignored. Grey or white text inside a white Roblox player chat bubble is
also rejected before name matching, so messages such as "wsp" and "pls egg"
cannot become eggs. Version 2.7.6 clears the older detector history once on the
PC and shared site; only detections carrying the adjacent-Egg proof are saved.
The
notification picker accepts only official catalogue names, so OCR mistakes such
as TRext, Ori Tiger, Ort Tiger, TRes, Kiraken, and Kraban are removed.

FIRST SETUP
1. Extract the whole ZIP to a normal folder.
2. Double-click SETUP.bat.
3. Setup opens EggWatch and the website. Click Open game to launch Roblox.
4. The first time the browser asks to open EggWatch, press Open EggWatch.
5. Keep Roblox restored in Windowed or Borderless mode. It may stay behind
   Chrome, Discord, or another app, but do not minimise Roblox.
6. If Chrome asks to find/connect to a local device, press Allow.

If you installed EggWatch before the website changed to its shorter address,
download this version and run SETUP.bat once. Version 2.7.6 trusts both the new
EggWatch address and the previous address, so the website can show WATCHER
ONLINE as soon as the local watcher starts.

INSTANT-ALERT MODE
Version 2.7.6 is tuned for fast notifications without using more than two OCR
worker threads. The selected egg box is checked every 0.5 seconds. Only the
bottom-right countdown area is used for timer recognition, and that area is
checked every 10 seconds. Its displayed minutes and seconds are read live; no
countdown value is hard-coded. The full Roblox window is still checked every
four seconds only for disconnect recovery. The
watcher now pushes a confirmed egg straight to the open EggWatch site instead
of waiting for a browser refresh timer. Non-critical library warnings are
hidden, while real errors still appear on the website. Routine debug-image
writes remain off to reduce disk work.
The bottom-right game countdown is now the only screen area allowed to set the
egg reset timer. EggWatch copies that exact reading, keeps its last trusted
Roblox alignment, rolls into the next five-minute cycle automatically, and
rejects repeated stale 00:00 readings.
OCR variations of the "Mutate Your Egg" button, including "Imutate Your Egg",
are rejected and removed from the website and saved egg history.
The "Match The Egg" game instruction is also rejected and cannot become a spawn.
Nightflame (Divine), Gorilla King (Eternal), and Mutant Shark (Secret) are
included in OCR detection and the notification picker.
OCR text such as "ASecret Yeti Egg" is cleaned to "Yeti Egg" and merged with
the correctly read egg, preventing duplicate Unknown rows and alerts.

AFTER THE FIRST SETUP
Opening the EggWatch website starts only the installed watcher. You
can also use the EggWatch desktop shortcut created by setup; it starts the
watcher and the website together. Click Reconnect or Open game to launch Roblox. Run START_WITH_WINDOWS.bat once
if you want only the watcher to start when you sign in to Windows.

LIVE MOBILE USE
1. Start EggWatch on the Windows PC. On the main publishing PC, open the site
   and use "Main owner sign in" once so EggWatch remembers that installation as
   priority #1. The Windows watcher keeps its queue heartbeat running afterward.
2. On any phone, tablet, or computer, open the same public website link.
3. Every visitor automatically sees the same live timer, every egg in a shared
   spawn, saved history, and disconnect recovery.
4. Use Add to Home Screen if you want EggWatch to open like a mobile app.

AUTOMATIC PUBLISHER BACKUPS
Every installed EggWatch 2.7.6 watcher receives a private random installation
ID and joins the shared standby order while the watcher is running. The verified
main installation is always priority #1. If it stops sending a heartbeat for
ten seconds, the earliest connected standby automatically publishes its own
latest confirmed egg, timer, and history. If that standby closes, the next
connected installation takes over, with no fixed queue limit. When the main
installation reconnects, every backup automatically hands the global feed back
to it. A disconnected backup rejoins at the end of the standby order.

LIVE GAME FAILOVER
There is no CPU, memory, or OCR-speed requirement for the publisher queue. Every
EggWatch PC can keep its place in the automatic standby order. The watcher only
needs Roblox open and actively producing fresh scans. If the active person's game
closes, disconnects, or stops being scanned, the server removes that watcher and
promotes the next connected person automatically. When Roblox is restored, the
watcher rejoins the queue; the verified main installation always reclaims priority
#1 when its game returns.

The installation ID is not displayed on the public feed. Screenshots and
gameplay frames remain on each PC; only confirmed egg, timer, history, and
connection status data can be published by the currently active watcher.

Each visitor's website notification choices stay private to their own device.
On iPhone or iPad 16.4 or later, add EggWatch to the Home Screen, open the new
EggWatch icon, and press Enable iPhone alerts. The installed app subscribes to
Web Push so selected egg alerts can arrive when it is not the active screen.
Normal iPhone browser tabs cannot request notification permission because of
Apple's platform rules. Android and desktop browsers use their normal website
notification permission flow.

NOTIFICATION SETUP
1. On the website, open Notification setup.
2. Choose All high-rarity eggs, or Selected eggs.
3. Tick the individual egg names you want and press Save notification choices.
4. Press Enable website notifications and choose Allow in your browser.

Windows notifications work as soon as SETUP.bat finishes. Website notifications
need browser permission. For Discord and phone alerts, follow the optional steps
below. The same egg choices control Windows, website, Discord, and phone alerts.

MANUAL GAME LAUNCH
Roblox never opens on watcher startup, website load, or disconnect detection.
Click Reconnect or Open game on the website to open or rejoin Steal An Egg.
The older auto_restart_on_disconnect setting no longer enables automatic rejoin.

DISCORD AND PHONE ALERTS (OPTIONAL)
Open config.json in Notepad. Paste your Discord webhook URL into
"discord_webhook". To mention your Discord account, also put your numeric user
ID in "discord_user_id". Phone alerts arrive through the Discord mobile app.

IF THE TIMER OR EGG IS NOT RECOGNISED
Open config.json in Notepad, temporarily change "save_debug_frame" to true, and
let EggWatch run for about 35 seconds. Then open the debug folder and send the
latest-roblox.png image in ChatGPT so the detection area can be adjusted for
your screen size. Change "save_debug_frame" back to false afterwards. The image
never leaves your PC automatically.

PRIVACY
The local connection listens only on 127.0.0.1 (your own computer). The website
receives only the timer, egg history, rarity, notification choices, and watcher
status. A device that enables Web Push stores its anonymous
browser push endpoint and selected egg names so alerts can be delivered. It does
not store a phone number or Apple account. Confirmed status data is shared with
everyone who has the public website link. Screenshots and image processing
remain local to the Windows PC and are never uploaded automatically.
