Skip to content

thisisatest1900/pokebot-gen3

 
 

Repository files navigation

PokéBot Gen3 (libmgba)

Wiki Python 3.12 Code Formatting

Discord YouTube Twitter

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.

🔴24/7✨Shiny✨Hunting Bot

pokebot-gen3.mp4
Main Interface Load Save State Debugger
image image image
Shiny Notifications Phase Stats Milestones
image image image

✨ Preamble

This bot is still in development, as such, functionality is subject to change - always make sure you back up your profiles folders before updating your bot!

The bot is frame perfect and can technically cheat by reading data from any point in memory and manipulating RNG. 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
  • Feebas tile locations could be instantly located by reading memory, the bot will attempt to locate the tiles by searching each tile individually

These are intentional design decisions, bot cheats can be used to bypass them (in most cases).

⚠ Photosensitivity Warning

  • Running mGBA at unbound speeds (3,000+ frames per second on high-end PCs), can cause very fast and bright flashing!
  • Any unbounded video examples on the wiki will be hidden by default, and marked with ⚠ photosensitivity warning

❓ Getting Started

Visit the wiki for information getting started, keybinds/inputs, bot modes, configuration files and more!

🐛 Debugging

The bot supports auto-starting a profile and can also be launched into a "debug" mode which will open an extra pane next to the emulator to aid bot development.

The debug tabs includes information such as currently running game tasks and callbacks, emulator inputs, as well as information about recent battles, player status, current map, daycare and event flags.

positional arguments:
  profile               Profile to initialize. Otherwise, the profile selection menu will appear.

options:
  -h, --help            show this help message and exit
  -m {MODE_NAME}, --bot-mode {MODE_NAME}
                        Initial bot mode (default: Manual)
  -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

Click here for a list of bot mode strings to use in place of MODE_NAME.

❤ Attributions

Core functionality:

Other awesome PokéBot projects:

This project would not be possible without the decompiled symbol tables and other various data from the following projects:

Test save states and bot profiles:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.2%
  • HTML 4.8%