5a3a6f0ef9
Full log below: 1. Pallet Rival: 0:02:11 (02:11) 2. Nidoran grass: 0:06:41 (04:30) 15 15 9 12 beat Brock with a good Nidoran! Att: 16, Def: 14, Speed: 14, Special: 13, caught at level 4. 3. Brock's Gym: 0:11:14 (04:33) accidentally killed Spearow with a critical :( gen 1 missed (1 in 256 chance) accidentally killed Spearow with a critical :( 4. Route 3: 0:18:45 (07:31) 13 Moon encounters, but we caught a Paras! 5. Mt. Moon: 0:27:14 (08:29) 15 15 9 12 56 49 50 47 YOLO enabled at Nugget Bridge is using Poison Sting to attempt to red-bar off Mankey. 6. Nugget Bridge: 0:34:40 (07:26) Thrash didn't finish the kill :( swapping to Squirtle for safety. 7. Misty's Gym: 0:40:12 (05:32) YOLO disabled at Vermilion City YOLO enabled at Surge's Gym PERFECT, 1 try Trashcans! || 0:47:53 8. Surge's Gym: 0:48:54 (08:42) needs a 4-turn thrash (1 in 2 chance) to beat this dangerous trainer... Giovanni skip strats! 9. HM02 Fly: 0:59:10 (10:16) is using Rock Slide to one-hit these Ghastlies in red-bar (each is 1 in 10 to miss). 10. Pokemon Tower: 1:07:15 (08:05) YOLO disabled at Safari Zone needs to grab the backup Full Restore here. 11. Silph Giovanni: 1:17:56 (10:41) EQ Elixer: Koga's Gym 12. Koga's Gym: 1:21:29 (03:33) 13. Erika's Gym: 1:26:44 (05:15) 14. Blaine's Gym: 1:29:38 (02:54) 15. Sabrina's Gym: 1:31:20 (01:42) EQ Elixer: Sabrina's Gym got Focus Energy - which prevents Machoke criticalling - using an X Special to guarantee the last damage range. 16. Giovanni's Gym: 1:34:56 (03:36) is skipping the Center and attempting to red-bar the Elite 4! Swapping out Spearow to tank Aurora Beam into turn 2 Rest. Only a problem if it misses... 17. Lorelei: 1:42:58 (08:02) 18. Bruno: 1:44:23 (01:25) 19. Agatha: 1:46:05 (01:42) 20. Lance: 1:47:59 (01:54) 21. Champion: 1:51:05 (03:06) v1.4.4: 399917 frames, with seed 207901 beat the game in 1:51:05! |
||
---|---|---|
action | ||
ai | ||
data | ||
external | ||
storage | ||
util | ||
.gitignore | ||
LICENSE | ||
NidoranStats.md | ||
Readme.md | ||
Seeds.md | ||
main.lua |
Readme.md
PokéBot
An automated computer program that speedruns Pokémon generation 1 games.
Pokémon Red (Any% Glitchless) personal best runs:
Watch live
twitch.tv/thepokebot
PokéBot’s official streaming channel on Twitch. Consider following there to find out when we’re streaming, or follow the Twitter feed for announcements when we get personal best pace runs going.
Run the bot locally
Running the PokéBot on your own machine is easy. You will need a Windows environment (it runs great in VMs on Mac/Linux too).
-
First, clone this repository (or download and unzip it) to your computer.
-
Download the BizHawk 1.6.1 emulator and extract the ZIP file anywhere you like to “install” it.
Note: BizHawk v1.6.1 (Windows only) is the only version known to work.
-
Run the BizHawk prerequisites installer, which should update a C++ distributable needed by BizHawk.
-
Procure a ROM file of Pokémon Red (you should personally own the game).
-
Open BizHawk.exe, then drag your ROM file onto the window, and Pokémon Red should start up.
-
If you want to test the full run, set
RESET_FOR_TIME
inmain.lua
tofalse
instead oftrue
. -
Under the Tools menu, select Lua Console. Press the “open folder” button, and navigate to the PokéBot folder you downloaded. Select
main.lua
and press “open”. The bot should start running!
Seeds
PokéBot comes with a built-in run recording feature that takes advantage of random number seeding to reproduce runs in their entirety. Any time the bot resets or beats the game, it will log a number to the Lua console that is the seed for the run. If you set CUSTOM_SEED
in main.lua
to that number, the bot will reproduce your run, allowing you to share your times with others. Note that making any other modifications will prevent this from working. So if you want to make changes to the bot and share your time, be sure to fork the repo and push your changes.
Other Categories
The bot is designed to run "any% glitchless" (beat the game as fast as possible, without major glitches) categories - the most popular in the speedrunning community. However, the bot can easily be adapted for other purposes including use in testing frame data for human players, or to run different categories of the game.
Red Any% No Save Corruption by Marc-Andre Boulet
If you're interested in adapting the bot to other categories or games, we'd love to see it, and are happy to help answer questions.
Credits
Developers
Kyle Coburn: Original concept, Red routing
Michael Jondahl: Combat algorithm, Java bridge for connecting the bot to Twitch chat, LiveSplit, Twitter, etc.
Special thanks
To our Twitch chat moderators who help answer questions, and make the stream a great place to hang out.
To LiveSplit for providing custom component for integrating in-game time splits.
To the Pokémon speedrunning community members who inspired the idea, and shared their knowledge on ways to improve the bot.