unixtreme / pokebot-gen3

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PokéBot Gen3 (libmgba)

Python 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 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)

❓ Getting Started

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)!


⏩ Tips/Tricks

Optimal game settings

  • 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)

🐛 Debugging

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

⚠ Photosensitivity Warning

  • 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

❤ Attributions

Other awesome PokéBot projects:

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

About

License:GNU General Public License v3.0


Languages

Language:Python 100.0%