PokéBot Gen3 (libmgba) is a bot, written in Python that automatically shiny hunts in Pokémon Ruby, Sapphire, Emerald, FireRed and LeafGreen.
Initially created to complete a Prof. Oak and Living ✨Shiny✨ Dex Challenge in Pokémon Emerald, a 🔴24/7 livestream of the challenge can be found ongoing here.
pokebot-gen3.mp4
Main Interface | Load Save State | Debugger |
---|---|---|
Shiny Notifications | Phase Stats | Milestones |
- This is still in development, as such, functionality is subject to change - always make sure you back up your
profiles
folders before updating your bot! - Reach out in Discord #bot-support-libmgba❔ if you have any issues
The bot is frame perfect and can technically cheat by reading data from any point in memory. By default it will attempt to perform actions as if a human were playing to make gameplay as representative as possible, some examples:
- Starter Pokémon are generated just 1 frame after confirming the starter selection, the bot will wait until the battle begins, and the starter Pokémon sprite is visible before resetting
- It's possible to peek inside un-hatched eggs to view stats and shininess as soon as they're received from the daycare, the bot will wait until the eggs are fully hatched before checking and logging
- These are intentional design decisions, bot cheats can be used to bypass them (in most cases)
Visit the wiki for information on running the bot.
The wiki contains information about the default emulator keybinds/inputs, bot modes, configuration files and more (use the side bar to navigate)!
- Set TEXT SPEED to FAST
- Set BATTLE SCENE to OFF
- Utilise repel tricks to boost encounter rates of target Pokémon
- Using modes Spin or Bunny Hop and repels will become effectively infinite + steps won't be counted in Safari Zone
- Use a lead Pokémon with encounter rate boosting abilities, such as Illuminate
- Use a lead Pokémon with a short cry
- Use a lead Pokémon with a single character nickname
- Don't use a shiny lead Pokémon (shiny animation takes a few frames at the start of every battle)
The bot supports auto-starting a profile and can also be launched into a 'debug' mode which can aid bot development.
positional arguments:
profile Profile to initialize. Otherwise, the profile selection menu will appear.
options:
-h, --help show this help message and exit
-s {0,1,2,3,4}, --emulation-speed {0,1,2,3,4}
Initial emulation speed (0 for unthrottled; default: 1)
-nv, --no-video Turn off video output by default
-na, --no-audio Turn off audio output by default
-t, --always-on-top Keep the bot window always on top of other windows
-d, --debug Enable extra debug options and a debug menu
- Running mGBA at unbound speeds, will cause very fast and bright flashing!
- Any unbounded video examples on this page will be hidden by default, and marked with ⚠ photosensitivity warning
Other awesome PokéBot projects:
This project would not be possible without the decompiled symbol tables and other various data from the following projects:
- Pokémon Emerald decompilation (symbols)
- Pokémon Ruby and Sapphire decompilation (symbols)
- Pokémon FireRed and LeafGreen decompilation (symbols)
- PKHeX Plugin: MissingEventFlagsCheckerPlugin (event flags data)