20241016.0
Configuration changes
- It is no longer necessary or possible to enable/disable automatic battling (setting
battle: true
inbattle.yml
). Each bot mode will decide itself whether battling is required or not. - The option
lead_mon_balance_levels
was removed. Instead, the Level Grind mode (formerly Pokecenter Loop mode) will give you that choice each time you start it. - Enabling the HTTP server is done in a different file (
http.yml
instead ofobs.yml
.) If you've been using the HTTP server, you will have to modify that file to enable it again. (Start the bot once with the new version so this file is being generated for you.) customhooks.py
was removed. If it still exist in your profiles directory, it will be ignored. If you've been using this, you can achieve similar things by creating a plugin in theplugins/
directory. (This does not affectcustomcatchfilters.py
.)
New stats system
Statistics are no longer being kept in JSON/CSV files as before. Instead, the bot stores everything in a sqlite database file called stats.db
within each profile's directory.
When you start a profile for the first time with this new version, the bot should automatically convert your old JSON/CSV files. They will remaing where they are, but they won't be updated anymore.
This also adds a few more things that are being tracked -- even though we don't use this information right now:
- For encounters, it tracks the map/coordinates where a Pokémon was encountered, the bot mode used, how the Pokémon was encountered (tall grass, while surfing, while fishing, hatching, ...)
- It also tracks the battle outcome. If a shiny encounter escapes or is defeated by accident, it will not count towards the goal display in the stream overlay.
- It tracks how many fishing attempts were successful, and the longest streak of unsuccessful fishing attempts.
New battle system
The auto-battle system also received an overhaul.
A lot of that is just boring behind-the-scenes stuff that will make it easier to implement different battle strategies, but it also features some better decision-making that takes type immunities and some abilities into account.
The new system properly handles 'mutual destruction', i.e. if both the player's and the opponent's Pokémon faint at the same time, due to moves like Explosion or recoil damage.
More new things
- The bot can now be configured to save automatically after catching a Pokémon (like the bot on stream does.) To enable this, set
save_after_catching: true
inbattle.yml
. It is disabled by default. - The Pokecenter Loop mode got renamed into Level Grind mode, to better reflect what it's actually supposed to accomplish. When selecting the mode, it will give you a choice between only levelling up your lead Pokémon or level-balancing the entire party.
- The auto-battle system received an overhaul, laying the groundwork for further improvements to battle strategies. For now, this improves the way the potentially most damaging move is chosen, and takes more abilities and immunities into account.
- Puzzle Solver mode supports Birth Island (Deoxys puzzle) on FR/LG as well.
- Feebas mode will automatically move around between the upper and lower lakes on Route 119. It will also swim up the waterfall if HM Waterfall is available.
- Feebas mode works in non-English versions of Emerald.
- The HTTP server supports streaming the bot's video and audio using a WebRTC stream. It should also perform a bit more reliably.
Bugfixes
- Fixed an error when trying to start Roamer Reset mode on FR/LG without owning the Sapphire #402
- Encounters will be tracked even in Manual mode #403
- Pickup checking/item retrieval on Ruby/Sapphire works #403
- Castform Static Gift Reset on Ruby/Sapphire works #403
- Fixed some auto-battle issues on Ruby/Sapphire #403, #421
- Auto-battling broke if both Pokémon fainted in the same turn (due to Explosion, or recoil damage, ...) #416
- Starters mode on R/S/E no longer hangs if the encountered Poochyena/Zigzagoon is shiny #418
- The bot will work with Python 3.13, though for the time being we still recommend staying with 3.12 -- some features might not be available #422, #429
Fixes for non-English Games
Thanks to Teras and Neka there are more features supported on non-English versions of Emerald, and even some on FireRed:
- Using items in non-English versions of Emerald works again (which fixes using Repel in Roamer Reset mode, among other things) #401
- Basic support for some features on non-English FireRed versions #428
- Learning/Replacing moves automatically on Emerald works #430, #431
- Fixes whiteout (all party Pokémon defeated) handling on Emerald #434
- Support for Spin, Sweet Scent, Fishing, Daycare, and Game Corner modes in non-English FireRed versions (except for Japanese) #435, #438