Windows-only desktop app that automates encounter hunting, detects special forms (shiny/event), logs encounter stats, and optionally notifies you over Discord.
Supported OS: Windows 10/11 64‑bit • Target: .NET 8 Windows • Status: Works as of 21/11/2025 (game updates may break offsets)
- Walks back and forth between two in‑game positions (X or Y axis) to trigger encounters.
- Detects the current encounter’s Pokemon ID and whether it’s a shiny or event form.
- Beeps locally and can send a Discord announcement when a target matches your filters.
- Lets you pick targets (any/shiny/event or by specific ID) with a visual selector and sprite previews.
- Tracks encounter statistics with a simple dashboard: total, last hour, since last special, average encounters per special.
- Provides a hotkey to stop the bot instantly.
- Optional Discord remote commands: send a key to the game, take a desktop screenshot, check authorization, etc.
- Build
- Open
ProHack.slnin Visual Studio 2022+ and setPresentationas the startup project. Build in Release. - Or use the .NET CLI to build the solution. The app targets
net8.0-windows.
- Run
- Start the PRO client and log in first.
- Launch PROHack; a short Loading screen will initialize local storage and (if present) the pokedex data and Discord bot.
- If the game is detected, the main window shows “Game found!”.
The embedded Discord bot is private to you and supports a small set of commands.
Setup
- Create an app at https://discord.com/developers/applications?new_application=true
- In “Installation” set Install Link to “None”. In “Bot” disable “Public Bot”.
- Enable the intents: Presence, Server Members, and Message Content.
- Reset token and copy it. Keep it secret.
- In OAuth2 > URL Generator, select “bot” and permissions: Send Messages, Attach Files, Read Message History. Invite it to your private server.
- In PROHack open “Discord Options”. Paste the token and Save.
- Click “Reboot bot” in the dialog. Status will show when connected.
- In any channel, run
!get-user-id, copy your ID, paste it in “Discord Options” as Authorized User and Save. - In your target channel, run
!set-announce-channel. - Click “Send test message” in “Discord Options” to verify.
Commands
!help [command]— list commands or show details for one!get-user-id— DM your user ID!is-authorized— check if the current user matches the configured authorized user!set-announce-channel— set the current channel for app announcements!send-key <Key>— send a key press to the game (Keys enum name)!get-screenshot— send a desktop screenshot!echo <text>— test echo
Security
- Only the configured Authorized User can run sensitive commands.
- Keep your token private and use a private server.
- “Game not found” — ensure PRO is running and you’re logged in. If PRO runs elevated, run PROHack as admin.
- Discord bot won’t start — verify the token is correct, intents are enabled, and the bot isn’t public. Try “Reboot bot”.
- No sprites or names in selector — populate the
DATAfolder as described above. - Bot walks out of bounds — re‑register positions; ensure you selected the correct axis.
- App stopped with an error — check the error box on the main form; offsets may be outdated after a game update.
Project layout
Presentation— WinForms UI, app entry point (Program.cs, forms)Application— automation loop (AutoFarm), hotkey registrationInfrastructure— memory manager, Discord bot (Discord.Net), pokedex loader, screenshot helper, simple XML databaseDomain— models and enums (targets, pokedex entries, selected menu)