• Follow our Instagram!
  • Curious about what we're currently doing about bots? Check out the latest updates from staff in this thread.

Battle Bot eevenator - a gen9 randbats bot

Hi all :)

I made a randbats bot, and it is preeeeety strong.

Screenshot_20261009_063749.png



This is a hobby project I've been working on over the past year or so. I knew it was pretty good, but I had never let it play on the ladder until a few weeks ago.

Like many of you, I have been following discussion on Jaxcalibur. When I saw jaxcalibur_author's initial forum post, I decided "okay, its time to unleash this thing on the ladder". I've let the bot play on the ladder overnight for the past couple of days, and it hit #1 with a peak of 2626 elo :)

Eevenator's design is quite similar to jaxcalibur's design (at least from what I can tell based on jaxcalibur_author's technical write-up at https://jaxcalibur.github.io/). Eevenator is a transformer neural net that analyzes a tokenized representation of the game state. From what I've read about jaxcalibur's design, I think the biggest difference between eevenator and jaxcalibur is in how it predicts of the opponent's unrevealed pokemon (and unrevealed moves/abilities/items, etc). Eevenator makes the basic deductions that most strong ladder players do, such as "saw opponent's mon take hazards chip damage -> thus it must not have heavy duty boots -> thus it must be the Bulky Attacker set". In addition to the directly observable facts, it also uses a neural net prediction of unrevealed information based on the opponent's behavior. An example would be something like "On turn 2 opponent switched in Kyurem. If opponent had a Toxapex, they probably would have chosen to switch it in instead of Kyurem. Thus they probably don't have a Toxapex." I'm planning on writing up a more in-depth technical overview over the coming weekend. I'm also happy to answer any questions here in this thread.

As for releasing the neural net model and source code, I have the same opinion as jaxcalibur_author. I would like to release it, but from what I have read in the ongoing discussions on the matter, it seems that people would prefer that I don't release the model and source code to avoid the ladder becoming riddled with bots. I hope eventually competitive pokemon bots will go the way of chess engines and have their own community ladder.

I'm going to be setting the bot up to accept challenges so that anyone interested can try playing against it. I'll plan on leaving it running to accept challenges for at least a week or so.

Also, jaxcalibur_author let me know if you're down for some matches, I'd love to see how well eevenator does vs jaxcalibur :)
 
Last edited:
 
I've actually been fighting this bot quite a bit on ladder and it is impressive it actually got that high as sad as that may be (it's extremely lucky smh). However, I am not sure if it is because of the technical side or that it was made to do so but it is extremely annoying to play a bot, that I was well aware was a bot, yet it took several seconds to move each turn. It just wastes your time and other bots do not that.
 
I wonder if this was the straw that broke the camel's back. Well, I support this policy. I'll be registering my bot when the registry is set up, and I won't be letting it play on ladder until there is some kind of opt-out system in place.

I've actually been fighting this bot quite a bit on ladder and it is impressive it actually got that high as sad as that may be (it's extremely lucky smh). However, I am not sure if it is because of the technical side or that it was made to do so but it is extremely annoying to play a bot, that I was well aware was a bot, yet it took several seconds to move each turn. It just wastes your time and other bots do not that.
The delay is because it is doing a tree-search of the possible continuations of the game, same as jaxcalibur and other bots. It is designed so that it will search until it "converges" on what it thinks is the best move. Usually it takes 10-15 seconds, but if its a close call it will take a bit more time. It doesn't have to do the search process, it could just pick what it initially thinks is the best move, but the search makes it stronger.
 
Back
Top