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

Battle Bot Jaxcalibur: A Gen 9 Randbats bot that reached #1 on the ladder

Jaxcalibur

Hi everyone! I am excited to share a new Pokémon bot named Jaxcalibur. It only plays Gen 9 Random Battles, but it plays them extremely well. Over the past three weeks, it has spent time at #1 on the ladder and reached a peak Elo of 2557 and peak GXE of 95.3. As far as I know, it is the first AI to reach the level of top human players at Pokémon battling, albeit in a narrow format. For comparison, the strongest previous bot I'm aware of, FoulPlay, peaked around 2341 Elo and 88 GXE, which is roughly top-50 rather than top-1.

ladder.png

The ladder on August 10. This was Jaxcalibur's peak Elo (but not GXE)

That said, I can't say Jaxcalibur is the world's best random battler because one human outperformed it over this time period! MichaelderBeste2 held #1 on the ladder about 50% of the time compared to Jaxcalibur's 20%, and reached a slightly higher GXE of 95.5. I am really impressed that anyone can play better than a bot trained over millions of games and simulating thousands of possibilities each turn; that is an incredible feat!

How it works
Jaxcalibur uses a neural net trained with self-play reinforcement learning combined with pUCT search, similar to AlphaGo Zero. It is built on poke-env and Jax (which is where the name comes from). There is much more on how it works in the technical write-up here.

Some observations on how it plays: it is fairly conservative, preferring safe lines over hard reads. It is especially good at endgames because it can calculate several turns ahead. I think its clearest weaknesses are an imperfect understanding of PP stalling and a tendency to become predictable in some situations.

Current status
As of August 28, Jaxcalibur has stopped searching for ladder games and will let its rating decay. However, it will still accept randbats challenges if you'd like to play against it. It can only play one battle at a time, so it might not accept your challenge right away. Jaxcalibur currently plays random battles only, but I think it could be extended to other singles formats and, with more work, to doubles battles. It can't build teams itself, but you could use self-play with different teams to evaluate which ones are strongest

The open-sourcing question
When I started this project, I was intending to fully open-source Jaxcalibur, but it's strong enough I'm now a bit worried about how this could affect the community.

The case for releasing it: for me, the biggest benefit is that others could learn from it and build on it. Strong bots could also make single-player Pokémon more challenging, serve as practice partners, and be powerful tools for team building or balancing formats.

The case against: cheating is the big one. Someone could use Jaxcalibur to climb the ladder, obtain suspect reqs, or potentially even win tournaments in a way that's hard to detect. This feels especially relevant given the recent discussion about bots and suspect reqs. I also wonder whether easily accessible information about which teams, leads, and openings perform best would make team building less interesting.

One possible middle ground would be to release the code but not the model weights. However, for now I am holding off releasing either. I'd love to hear what people here think: should Jaxcalibur be open-sourced? If so, what would be a responsible way to release it? Strong, widely available Pokémon bots are probably coming sooner or later. This may be a useful chance to establish some norms around how they should be released and used.

Links
  • Showdown Profile: Challenge it to a random battle! Note it only plays one game at a time so it may not accept your challenge immediately.
  • Technical Write-Up: More details on how it works.
  • Self-Play Pokémon Win Rates: Which randbats Pokémon are strongest and weakest in top-level play?
  • Replays: See Jaxcalibur's games alongside what it was thinking.

Update (September 12)
Thanks everyone for all the thoughtful discussion around Jaxcalibur and the open-sourcing question. After reading the responses here and talking with members of the community, I've decided not to release Jaxcalibur's code or model weights. My main concern is preserving the integrity of the ladder and the broader Showdown/Smogon competitive scene.

I'm also taking Jaxcalibur offline from public challenges for at least the next week while I work on some fixes and improvements. I may make it available to challenge again afterward, but it will not be laddering.
 
Last edited:
Jaxcalibur

Hi everyone! I am excited to share a new Pokémon bot named Jaxcalibur. It only plays Gen 9 Random Battles, but it plays them extremely well. Over the past three weeks, it has spent time at #1 on the ladder and reached a peak Elo of 2557 and peak GXE of 95.3. As far as I know, it is the first AI to reach the level of top human players at Pokémon battling, albeit in a narrow format. For comparison, the strongest previous bot I'm aware of, FoulPlay, peaked around 2341 Elo and 88 GXE, which is roughly top-50 rather than top-1.

View attachment 859246
The ladder on August 10. This was Jaxcalibur's peak Elo (but not GXE)

That said, I can't say Jaxcalibur is the world's best random battler because one human outperformed it over this time period! MichaelderBeste2 held #1 on the ladder about 50% of the time compared to Jaxcalibur's 20%, and reached a slightly higher GXE of 95.5. I am really impressed that anyone can play better than a bot trained over millions of games and simulating thousands of possibilities each turn; that is an incredible feat!

How it works
Jaxcalibur uses a neural net trained with self-play reinforcement learning combined with pUCT search, similar to AlphaGo Zero. It is built on poke-env and Jax (which is where the name comes from). There is much more on how it works in the technical write-up here.

Some observations on how it plays: it is fairly conservative, preferring safe lines over hard reads. It is especially good at endgames because it can calculate several turns ahead. I think its clearest weaknesses are an imperfect understanding of PP stalling and a tendency to become predictable in some situations.

Current status
As of August 28, Jaxcalibur has stopped searching for ladder games and will let its rating decay. However, it will still accept randbats challenges if you'd like to play against it. It can only play one battle at a time, so it might not accept your challenge right away. Jaxcalibur currently plays random battles only, but I think it could be extended to other singles formats and, with more work, to doubles battles. It can't build teams itself, but you could use self-play with different teams to evaluate which ones are strongest

The open-sourcing question
When I started this project, I was intending to fully open-source Jaxcalibur, but it's strong enough I'm now a bit worried about how this could affect the community.

The case for releasing it: for me, the biggest benefit is that others could learn from it and build on it. Strong bots could also make single-player Pokémon more challenging, serve as practice partners, and be powerful tools for team building or balancing formats.

The case against: cheating is the big one. Someone could use Jaxcalibur to climb the ladder, obtain suspect reqs, or potentially even win tournaments in a way that's hard to detect. This feels especially relevant given the recent discussion about bots and suspect reqs. I also wonder whether easily accessible information about which teams, leads, and openings perform best would make team building less interesting.

One possible middle ground would be to release the code but not the model weights. However, for now I am holding off releasing either. I'd love to hear what people here think: should Jaxcalibur be open-sourced? If so, what would be a responsible way to release it? Strong, widely available Pokémon bots are probably coming sooner or later. This may be a useful chance to establish some norms around how they should be released and used.

Links
Found our new SV1 slot paysa JustOut459 Ghostilex Gom 35Q71N drowsy69 hammy3581 fay IMCOOKiNG yerdunc
 
Impressive shit, however don’t release it. Even the lower level bots I personally have messed with are good enough to mess up mid ladder players and to get to high ladder with enough time. Something like this being public could wreck the showdown ladder, especially if you make it easy for the average person to set up.
 
Last edited:
You should release this publicly, but give like a three-six month time frame beforehand. Force action to be taken now before there are bots that can play all formats better than humans and before some cheating scandal where someone who keeps their bot private uses it in smogon tour or w/e. There is gonna be a public bot better than this one at some point. Make people prepare now especially because there is no downside. The ranbats ladder won't be ruined as it's just adding a good player that is both beatable and possible to be better than unlike as it is in chess. Complaining about people using the bot on the ladder is akin to complaining about playing a good player. There are many dynamics within pokemon and the current strength of these bots that would make our ladder experience different than playing a chess cheater. Ranbat tournaments are mickey mouse.

edit: the three-six month timeframe thing was dumb, like there literally is no drawback to releasing it now besides people complaining because they think they should be mad but it actually isnt making their experience less enjoyable and maybe they even enjoy having something to be mad about!
 
Last edited:
That said, I can't say Jaxcalibur is the world's best random battler because one human outperformed it over this time period! MichaelderBeste2 held #1 on the ladder about 50% of the time compared to Jaxcalibur's 20%, and reached a slightly higher GXE of 95.5. I am really impressed that anyone can play better than a bot trained over millions of games and simulating thousands of possibilities each turn; that is an incredible feat!

Holy aura MichaelderBeste2
 
You should release this publicly, but give like a three-six month time frame beforehand. Force action to be taken now before there are bots that can play all formats better than humans and before some cheating scandal where someone who keeps their bot private uses it in smogon tour or w/e. There is gonna be a public bot better than this one at some point. Make people prepare now especially because there is no downside. The ranbats ladder won't be ruined as it's just adding a good player that is both beatable and possible to be better than unlike as it is in chess. Complaining about people using the bot on the ladder is akin to complaining about playing a good player. There are many dynamics within pokemon and the current strength of these bots that would make our ladder experience different than playing a chess cheater. Ranbat tournaments are mickey mouse.
I like the idea of using the bot as almost an ultimatum to force the Smogon community as a whole to address the concept of top level bots. Obviously right now we are not equipped with the tools to handle such a powerful force accessible to everyone, but eventually someone will release such a bot to the community, or worse, develop one in secret and use it to cheat. These issues effect both ladder and tours, and this bot only proves that Smogon needs an official policy, and ideally method of enforcement, surrounding bots.
 
I feel like it’s best to release this now. If you don’t do it, someone else will, and you might as well force the decision. Also releasing it now allows for quicker development of tools to detect it, similar to how chess.com detects stockfish.
 
The ranbats ladder won't be ruined as it's just adding a good player that is both beatable and possible to be better than unlike as it is in chess.
releasing it publicly doesn't mean just adding one good player who's beatable, though. unless access to it is strictly controlled, it means adding anywhere from dozens to thousands of players, all of whom are the second best player in the entire format. it's fun to see steph curry on the court but if you released a horde of steph curry clones into the nba draft then things would get real boring after the novelty wore off
 
releasing it publicly doesn't mean just adding one good player who's beatable, though. unless access to it is strictly controlled, it means adding anywhere from dozens to thousands of players, all of whom are the second best player in the entire format. it's fun to see steph curry on the court but if you released a horde of steph curry clones into the nba draft then things would get real boring after the novelty wore off
Also to add on, others will undoubtedly take the code and use it as a launching off point to make better bots via vibe coding and brute forcing to save on the time(maybe) and skill the author used making it. It’ll just snow ball and become a bigger and bigger issue.
 
Last edited:
I don't think we can be open-sourcing a bot for which we don't even have an idea of how to police.

I feel like it’s best to release this now. If you don’t do it, someone else will, and you might as well force the decision. Also releasing it now allows for quicker development of tools to detect it, similar to how chess.com detects stockfish.
The hope is that no one else will until we are equipped to handle it. Detection currently seems nearly impossible; many top rands players could easily consult the bot only a couple times in only a couple games and avoid detection.

Chess is much more black-and-white and objective in terms of move quality (Pokemon has mindgames and predictions, for instance), so it is easier to see if someone is playing at an unreasonable level. Many players could just use jax to help avoid endgame chokes or throws and it would be hard to prove. And it's not like chess's detection is anything resembling perfect; online tournaments usually require very careful recording of the players' surroundings to show there is no external assistance, and those that don't usually have cheating problems (see Titled Tuesday). In my opinion, Pokemon cheating detection would be nowhere near as good as in chess even if we had the same financial incentives chess has (which we obviously don't).

If the bot isn't open sourced, some people may abuse a bot from the shadows, but they would have to put in some real effort, and we still could have suspicions/handle it case-by-case. Make no mistake, both top players and newer players WILL cheat and get away with it a high percentage of the time if the bot is released.
 
I'm kind of presuming Randbats is basically the ideal playground for this because its paradoxically more restricted than most metas, right? Due to limited pools of sets and static stats there's significantly less of an information gap game-to-game. Even in an OTS format you don't know your opponent's exact spreads so the branches of possibilities are way smaller here.

Do you think the smaller variance helped make the bot as strong as it is?


As a final side note, I think there's something beautiful about Alomomola being the highest winrate and Luvdisc being the lowest.
 
Thanks for the comments everyone! It looks like people are pretty divided on the open-source question, and I don't want to release Jaxcalibur unless there is some kind of consensus that doing so would be okay.

With search turned off, Jaxcalibur can run on an ordinary laptop and still be very strong; I'd guess around 2400 Elo. So if the model weights were released, the barrier to using it on the ladder would be pretty low.

On the other hand, I think reproducing a bot of this strength from scratch would be quite a lot of work. I worked on it on-and-off for more than six months, and I was lucky enough to have access to an H100 (a high-end GPU) to train it. My guess is that it would take someone with AI/ML experience at least a few months and several hundred dollars in GPU credits to reimplement something comparable. So I don't think other bots at this level are necessarily imminent even for randbats, although obviously it's hard to know what other people may already be working on.
 
Definitely! It also made writing the engine easier because there are fewer pokemon/moves/abilities implement. For the same reason, I think bots would be especially strongs in open-team sheet formats because they could search ahead more easily with fewer unknowns.
do you have any thoughts on how much more computationally expensive it would be to model tiers with no team preview?

Or maybe less controversially, something that ingests a lot of public matches from a tournament and attempts to quantify it's own archetypes for the format and how well they do into one another?

ADV OU has one that predates the wide-scale adoption of the transformer architecture, for example.

Anything regarding analysis for matches or teams rather than playing games themselves seems like the least controversial but also most helpful applications of generative modeling that I can think of.
 
Back
Top