- #computer-vision
- #automation
- #roblox
- #games
- #desktop
- #freeware
Leaf's Grand Blue Autofish
Un'app gratuita per Windows che pesca nel gioco Roblox Grand Blue: legge lo schermo con OpenCV e l'OCR, gioca il minigioco con il mouse e registra ogni pesce con rarità e valore.
- Ruolo
- Sviluppatore e designer unico: rilevamento, input, interfaccia, i suoi effetti sonori e build di rilascio. Nato dalla macro di pesca open source di 1vtt, con il consenso dell'autore.
- Risultato
- Gratuita su GitHub dal 2 ottobre 2026 e ancora in aggiornamento. Nelle mie sessioni ha pescato 48.928 pesci per 4.612.065 d'oro, e mi ha portato al quinto posto nella classifica dei rebirth del gioco.
- Anno
- 2026
- Stato
- in corso
- Stack
- Python
- OpenCV
- NumPy
- RapidOCR
- ONNX Runtime
- mss
- pywebview
- Nuitka
Pronta quando vuoi tu
Premi Pesca un pesce per lanciare.
Una ricostruzione della pagina Pesca dell'app, con i suoi stili e i suoi suoni. Le catture sono estratte a caso da 400 reali.
L'inizio
Una macro che funzionava, e poco altro
Gioco a Grand Blue, e la sua pesca è un grind lungo. Ho trovato la macro di pesca open source di 1vtt, e funzionava, ma era essenziale: una finestra di console, un file JSON da modificare a mano e una calibrazione difficile da fare bene. Nessuna comodità. Il mio primo pensiero è stato che potevo farla meglio da solo.
L'obiettivo
Migliore per chi non ha mai aperto un terminale
Volevo metterci il mio lavoro di UI e UX e la mia esperienza di computer vision. Una vera interfaccia al posto della console, una calibrazione che ti guida passo per passo, numeri dal vivo invece di testo che scorre, un rilevamento che non perde un abboccamento per un solo frame sbagliato, e un exe pronto, così nessuno deve installare Python. 1vtt ha accettato che partissi dalla sua macro, ed è diventata un'app a sé.
L'avventura
Guardare lo schermo come un giocatore
L'app guarda solo lo schermo e usa solo mouse e tastiera, come un giocatore molto attento. Non legge né modifica mai i file o la memoria del gioco. Lancia, clicca il pulsante SHAKE finché un pesce abbocca, legge il badge di rarità, tiene la barra di recupero sul pesce, poi legge il messaggio di cattura per registrare il pesce, le sue mutazioni e quanto vale.
Intorno al motore ho progettato l'interfaccia, tutta in HTML e CSS dentro pywebview: una dashboard con una scena oceanica, un Inventario delle sessioni passate con grafici ed export CSV, una calibrazione guidata con un'immagine per ogni passo e impostazioni per temi, colori d'accento e un font adatto alla dislessia.
Ogni parte reagisce quando la usi, e ha i suoi effetti sonori, che ho creato io: il passaggio del mouse, i clic, il cambio di pagina e gli interruttori, l'avvio e lo stop, e un suono di cattura diverso per ogni fascia di rarità. Il suono conta molto in come si percepisce un'interfaccia, e volevo che questa fosse accogliente e un po' cool. Puoi sentirli nella demo qui sopra.
Le difficoltà
Cose che lo sfondo può imitare
Grand Blue disegna la sua interfaccia sopra acqua, sabbia e scene notturne, e quasi tutta è trasparente. Il pulsante SHAKE è un disco traslucido, quindi il suo colore è in realtà quello della scena. Il badge di rarità fluttua sopra il personaggio e si sposta con la telecamera. Durante il recupero, un pesce uscito dal bordo del riquadro sembrava una cattura conclusa. E il messaggio di cattura entra ed esce con un'animazione, accanto ad altro testo. Ognuno di questi ha richiesto un rilevatore basato su qualcosa che lo sfondo non può imitare, misurato su sessioni registrate invece che regolato a occhio. La scheda Tecnica li affronta uno per uno.
La fine
Gratuita, pubblica e ancora in crescita
La versione 0.1.0 è diventata pubblica su GitHub il 2 ottobre 2026, con un server Discord per l'assistenza, e la 0.1.2 è arrivata tre giorni dopo: testo letto sulla scheda video, cattura dello schermo più veloce e ripresa automatica quando la pesca si blocca. Si scarica gratis, e il suo codice sorgente non è pubblicato.
La prossima versione aggiunge le abilità automatiche: l'app spende i punti abilità nell'ordine che scegli e fa rebirth da sola. Per ora ce l'hanno solo i sostenitori. Con una build di prova sono arrivato al quinto posto della classifica dei rebirth di Grand Blue in pochi giorni.
Quinto nella classifica dei rebirth, al Rebirth 43.
- Pesci pescati nelle mie sessioni
- 48.928
- Pesci pescati nelle mie sessioni
- L'oro che valevano quelle catture
- 4.612.065 G
- L'oro che valevano quelle catture
- Di pesca, dal 30 settembre al 16 ottobre
- 175 h
- Di pesca, dal 30 settembre al 16 ottobre
- Download da GitHub
- 28
- Download da GitHub
- Nella classifica dei rebirth
- #5
- Nella classifica dei rebirth
Prossimi passi
Esca e cibo
Leggere l'esca e il cibo che hai dalle schermate del gioco, poi usarli da sola seguendo un ordine di priorità che scegli tu.
Indice dei pesci
Ogni specie con la sua rarità e il suo valore, più un tuo prezzo per ciascuna, per quando la scambi a un valore diverso.
Notifiche
Una notifica di Windows o un messaggio su Discord per le catture rare, la fine di una sessione, gli errori e le pause.
Controlli di sicurezza
Accorgersi del messaggio AFK, di un riavvio del server o di un ritorno al menu, poi fermarsi e avvisarti.
Pesca per te
Lancia, aspetta che un pesce abbocchi, clicca il pulsante SHAKE, gioca il minigioco di recupero e rilancia, finché non la fermi.
Legge ogni cattura
Il nome del pesce, le sue mutazioni, la rarità e quanto vale, dal messaggio che il gioco mostra a schermo.
Conserva le sessioni
Una dashboard dal vivo mentre peschi e un Inventario delle sessioni passate con grafici, un registro con ricerca ed export CSV.
Lascia andare alcuni pesci
Scegli le rarità che non ti interessano e l'app le lascia andare invece di tirarle su.
Abilità automatiche
Spende i punti abilità nell'ordine che scegli e può fare rebirth da sola al livello di Pesca che indichi.
Si calibra con te
Una guida passo per passo le insegna dove sono le cose sul tuo schermo, con un'immagine per ogni passo. Fino a cinque profili.
Non ti intralcia
Si mette in pausa da sola quando Roblox non è la finestra in primo piano, e le azioni principali hanno tasti rapidi che funzionano nel gioco.
Come piace a te
Tema scuro, chiaro o quello di Windows, un colore d'accento, un font adatto alla dislessia, ed effetti sonori che ho creato per ogni parte dell'interfaccia.
La dashboard
La pagina Pesca mostra la sessione mentre succede: tempo, lanci, catture, lanci senza abboccamento e oro guadagnato, poi ogni cattura con la rarità, quanto è durato il recupero, quanto la barra è rimasta vicina al pesce e il valore.
Inventario
Ogni sessione viene salvata. L'Inventario mostra l'oro guadagnato e l'oro all'ora, la cattura del giorno, il mix di rarità e il registro completo delle catture, che puoi cercare, filtrare, copiare come riepilogo o esportare in CSV.
Abilità automatiche
Arrivano con la prossima versione, e per ora solo per i sostenitori. Scegli l'ordine delle abilità su una mappa dell'intero albero, e quando un livello porta abbastanza punti l'app apre l'albero tra due lanci, sblocca la prossima, chiude il menu e torna a pescare. Può anche fare rebirth da sola al livello di Pesca che scegli, poi ricominciare l'ordine dall'inizio. Si possono salvare fino a tre ordini e condividerli con un codice.
Calibrazione e impostazioni
La calibrazione è una guida passo per passo: indichi le cose su un fermo immagine del gioco, l'app le controlla una per una, e nulla cambia finché ogni passo non è superato. Le correzioni rapide rifanno un singolo pezzo dall'interno del gioco. Le impostazioni coprono tasti rapidi, rarità da saltare, abilità automatiche, tempi, motore di rilevamento, aspetto e suono.
Il ciclo di pesca
Il motore è una macchina a stati che lavora solo su catture dello schermo. Ogni decisione nasce dai pixel: non c'è nessuna API e nessun accesso alla memoria del client di Roblox.
Lancio
Si sposta sul punto d'acqua calibrato, tiene premuto il mouse per il lancio e rilascia.Attesa e SHAKE
Osserva l'area del minigioco, trova e clicca ogni pulsante SHAKE che compare e chiude i popup di troppo. Rilancia dopo un timeout.Abboccata
Legge il badge di rarità sopra il personaggio. Una rarità che hai scelto di saltare viene lasciata andare riponendo la canna e riprendendola.Recupero
Segue la barra e il pesce a ogni frame e decide quando tenere premuto e quando rilasciare con un controllore predittivo che mira poco più avanti del pesce.Lettura
Legge il messaggio di cattura con l'OCR: specie, mutazioni e lunghezza, poi calcola il valore. Le mutazioni si moltiplicano tra loro.
Architettura
Motore
OpenCV, NumPy
La macchina a stati e i suoi rilevatori: analisi HSV e di forma su piccole aree dello schermo, template matching con maschera e componenti connesse. Nessuna rete neurale, a parte l'OCR.
Sessione
Python
Tutto ciò che sta intorno al motore: impostazioni, profili di calibrazione, tasti rapidi, avvio, stop e pausa, e il salvataggio di ogni sessione man mano.
Interfaccia
pywebview
Ogni finestra è HTML, CSS e JavaScript semplice in Edge WebView2, del tutto offline, su un unico design system con tema scuro e chiaro.
Cattura e input
mss, DirectX, SendInput
La cattura dello schermo della finestra del gioco, e input di mouse e tastiera inviati solo quando Roblox è la finestra in primo piano.
Lettura del testo
RapidOCR, ONNX Runtime
I modelli sono inclusi nel pacchetto, quindi leggere il testo non va mai online. Usa la scheda video quando può.
Rilascio
Nuitka
Compilata in un exe per Windows con tutto ciò che le serve, così i giocatori non installano Python.
Misurato, non regolato a occhio
Quando un recupero o un clic su SHAKE va storto, l'app salva ciò che ha visto: gli ultimi 90 frame della barra di recupero con la lettura di ciascuno, oppure uno screenshot del pulsante SHAKE mancato con i suoi punteggi. Ogni correzione qui sotto è partita da quelle registrazioni, e ogni rilevatore ha un benchmark costruito su screenshot reali del gioco.
Due lunghe prove
Due sessioni che ho lasciato andare da sole, lette dai file di sessione che l'app salva. Il 2 ottobre, uno stress test con la fortuna al massimo e le condizioni migliori che potessi creare. Il 12 ottobre, una prova delle abilità automatiche: l'app è salita di livello, ha speso i punti e ha fatto sei rebirth senza di me. Le catture superano i lanci per via dei pesci bonus, come Double Catch, che portano più di un pesce per lancio.
- 2 ottobre, senza nessuno
- 11h 45m
- 2 ottobre, senza nessuno
- Catture da 4.364 lanci
- 4.888
- Catture da 4.364 lanci
- Oro in quella sessione
- 502.821 G
- Oro in quella sessione
- Catture mitiche in quella sessione
- 98
- Catture mitiche in quella sessione
- Rebirth da sola, 12 ottobre, in 11h 46m
- 6
- Rebirth da sola, 12 ottobre, in 11h 46m
Sfide
Problema
Un pulsante SHAKE trasparente
Il pulsante SHAKE è un disco scuro traslucido, quindi cercarlo come un'immagine voleva dire cercare la scena dietro. Sull'acqua scura il vecchio rilevatore non ne trovava nessuno su 7 di prova. E alcuni clic proprio sul pulsante semplicemente non venivano registrati.
Soluzione
Ora il rilevatore confronta solo ciò che non dipende dalla scena: il testo bianco sul disco, poi un controllo che il bordo sia scurito in modo uniforme tutto intorno. Su 200 pulsanti incollati in 13 screenshot reali ne trova il 99%, contro il 65,5% di prima, senza clic sbagliati. Roblox preme solo un pulsante che considera sotto il mouse, quindi ogni clic ora ci arriva scivolando, aspetta 30 ms con un movimento di 1 px, tiene premuto per 50 ms, poi controlla che il pulsante abbia reagito, e se no riprova più lentamente. In una sessione dal vivo hanno abboccato 36 lanci su 36, e solo 1 clic su circa 540 è stato ripetuto.
Problema
Leggere il badge di rarità
Il badge fluttua sopra il personaggio e si sposta con la telecamera. Un lettore basato sul colore sbagliava il 7,7% delle volte e scattava nel 17% dei frame senza badge, e i modelli che imparava dalle partite diventavano pian piano ritagli di mare.
Soluzione
Il badge indica la rarità due volte, con il colore e con i suoi glifi (da ! a ??? e ?!), e ogni glifo è un riempimento piatto dentro un contorno nero spesso. Il lettore di glifi trova quelle forme chiuse, le divide in barre, punti e riccioli, e indica una rarità solo quando colore e sequenza concordano. Non usa modelli e non impara mai dalle partite. Sul benchmark legge il 90,6% dei singoli frame, senza rarità sbagliate né falsi rilevamenti, in circa 4 ms per ritaglio.
Problema
Catture fantasma
Un recupero finiva quando il pesce non si leggeva per qualche frame. Con i pesci difficili succedeva a metà: la prima sessione dal vivo ha registrato 12 catture false su 60. Le registrazioni hanno mostrato il perché: il riquadro disegnato in calibrazione finiva circa 54 px prima della barra, e i pesci veloci ne uscivano.
Soluzione
Ora la fine del recupero la decide la barra stessa: l'app impara i bordi stabili della barra durante il recupero e continua a tirare finché sono a schermo, anche quando il pesce per un attimo non si legge. E quando il pesce tocca un lato del riquadro, quel lato si allarga a piccoli passi. Nella sessione successiva il riquadro si è allargato di 72 px nel primo recupero difficile, e da lì non si è perso nessun pesce.
Problema
Leggere il messaggio di cattura
Il messaggio entra ed esce con un'animazione accanto al contatore della serie e ad altro testo, e una zona fissa leggeva la riga sbagliata. Anche il confronto approssimato confondeva nomi simili: un Golden Green Seahorse veniva registrato come Red Seahorse.
Soluzione
L'app legge una fascia ampia in una breve raffica di frame e tiene solo le righe che si possono interpretare come una cattura, seguendo la frase che usa il gioco. La specie si riconosce partendo dalla fine della riga, preferendo il nome più lungo che corrisponde, e ciò che viene prima è l'elenco delle mutazioni. Poi i frame votano il risultato.
È gratuita?
Sì. Se ti ha fatto risparmiare tempo, una mancia su Ko-fi è gradita e mai dovuta. Chi la sostiene dovrebbe ricevere le nuove versioni in anticipo, e ogni aggiornamento arriva prima o poi a tutti.
Verrò bannato?
Può succedere. L'automazione può andare contro i Termini d'uso di Roblox e le regole di un gioco, e l'app non cerca di nascondersi. La usi a tuo rischio, e lo dice anche la licenza. Se ci tieni al tuo account, non usarla.
Legge o modifica il gioco?
No. Non tocca i file né la memoria del gioco e non comunica con i server di Roblox. Fotografa lo schermo, lo legge, poi muove il mouse e preme i tasti, come farebbe una persona.
Il codice sorgente è disponibile?
No. L'app è gratuita, ma il suo codice non è pubblicato. Il repository su GitHub contiene le versioni, le guide e la licenza, e puoi verificare che il tuo download corrisponda allo SHA256 pubblicato.
Perché Windows o l'antivirus si lamentano?
L'app non ha una firma digitale, perché un certificato costa ogni anno e questo è un progetto gratuito. Inoltre ascolta i tasti rapidi e invia clic e pressioni di tasti, cose che gli antivirus tengono d'occhio. Il repository spiega come verificare il download prima di avviarlo.
Cosa mi serve?
Windows 10 o 11 a 64 bit e Roblox aperto in una finestra visibile. Tutto il resto è nello zip: nessun Python da installare. Al primo avvio accetti la licenza, poi una calibrazione guidata richiede qualche minuto.
Posso usare il PC mentre pesca?
Non proprio. Muove il mouse e clicca, e si mette in pausa da sola quando Roblox non è la finestra in primo piano, quindi lascia il gioco davanti e falla lavorare.
Dove sono i miei dati?
Nella cartella dell'app: impostazioni, calibrazione, sessioni e storico delle catture. Nessun account, nessun tracciamento, e l'app non fa connessioni di rete per conto suo. Per rimuoverla, elimina la cartella.
Ho bisogno di aiuto o ho trovato un bug
Chiedi sul server Discord, il posto più veloce per una risposta, oppure apri una segnalazione su GitHub.
5 ott 2026
0.1.2: più veloce e più affidabile
Il testo si legge sulla scheda video e lo schermo si cattura più in fretta, con una nuova scheda Settings > Engine e la velocità SHAKE Instant. Un passo di calibrazione per la zona in cui si leggono i nomi dei pesci. Quando non si pesca nulla per diversi lanci, l'app ripone la canna e la riprende da sola. Meno catture false nelle scene scure, catture velocissime contate, e i pesci bonus come Second Splash registrati come catture a sé. Il registro delle attività si salva man mano.
2 ott 2026
0.1.1: si apre dopo un download dal browser
Risolto il problema dell'app che su alcuni PC non si apriva dopo un download dal browser, perché Windows marca i file scaricati. I messaggi di errore ora indicano prima il server Discord.
2 ott 2026
0.1.0: prima versione pubblica
Pesca da sola, legge ogni cattura, tiene una dashboard dal vivo e un Inventario delle sessioni passate, salta le rarità che scegli e si calibra con un'immagine per ogni passo, con fino a cinque profili. Tema chiaro e scuro, un colore d'accento, un font adatto alla dislessia ed effetti sonori.
Ti serve qualcosa di simile?
Dimmi cosa deve fare, dove gira e per quando ti serve.
Altri lavori

- #computer-vision
- #automation
- #roblox
Pet Sim 99 Autofish
Un aiuto che legge lo schermo e segue i vortici nel minigioco di pesca di Pet Simulator 99.

- #discord
- #desktop
- #automation
FLStudio RPC
Una piccola app Windows che mostra nel tuo stato Discord il progetto FL Studio aperto, e da quanto ci lavori.

- #computer-vision
- #automation
- #games
GTA V Fingerprint Solver
Un risolutore con computer vision per il minigioco delle impronte di GTA V che risponde in meno di un secondo.