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

Battle Bot Numbrion Reached rank 1 in Gen 9 Random Doubles Battle

Hi all, I am going to keep this short and sweet since it seems like there have been a lot of posts like this recently.

Numbrion reached rank 1 on ranbat doubles at a peak elo of 2136. The bot had an average gxe of 88.5 and an average elo of 2043. I have never made a neural net before so this could not have been done without claude code, but I do have a technical background. This was a little over a week of work and was trained in about 10 hours on a macbook pro m1. I actually have a better model than what I used to get that score but I could not check the actual results since my account is on the bot ladder now and there are not many people playing bots at such high elo.
SCR-20261016-mvjr.png

(this is an old image I was planning to take a new image when my new model took number 1 but since the bot change was made I can't really climb)

Basically if you though that 2v2 pokemon was safe from bots because there are more options, you were wrong. As seems to be the rule here I will keep this closed source. I also won't be making more models because my method scales with more compute and I don't really feel like renting computing space to make a better model. I will also be kind of light on the technical details because the jaxcalibur technical doc was enough for me to copy the architecture of that model and improve on it. I really love pokemon so I hope the bots can eventually be a positive force in the pokemon community. For now it's clear you only need a claude code sub and a bunch of free time (in my case unemployment) to make a model on the human limit.

Here are some of the things that were a big unlock for the model:
- Size can be extremely small even 0.8M parameters was enough to get rank 1.
- Training enviroment speed is everything you basically need to rewrite the showdown engine in rust or another fast language.
- Search is important you can even do 2 layer search if you engine is efficient enough.
- You need a teacher to show your model what is right and wrong instead of PPO.
- Teacher should be normal model with search on shallow setting to generate examples fast.

That is about it for me. Ask questions if you have any.
 
Last edited:
Hello, I’m a Random doubles ladder grinder myself. I am curious if you collected winrates for each pokemon and would be willing to share them? I’m interested.
 
Hello, I’m a Random doubles ladder grinder myself. I am curious if you collected winrates for each pokemon and would be willing to share them? I’m interested.
Tbh I kinda just deleted a bunch of them I was using for analysis because I though I would not need them so I only have old ones. These are from an early snapsnot with average elo of 1980 and peak of 2038 so quite a bit weaker than the final bot.
| # | Opponent | Opp Elo | Our Elo | Gain | Turns | Replay |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | crittwitt | 2017 | 1977 | +22 | 8 | [link](https://replay.pokemonshowdown.com/gen9randomdoublesbattle-2699538756-d5xgbohq9tim8wkpat2noiupt6am9jtpw) |
| 2 | thisisafuckingame | 1981 | 1981 | +19 | 9 | [link](https://replay.pokemonshowdown.com/gen9randomdoublesbattle-2699551156) |
| 3 | beijji | 1973 | 1943 | +22 | 11 | [link](https://replay.pokemonshowdown.com/gen9randomdoublesbattle-2699527339) |
| 4 | ranguo | 1958 | 2016 | +17 | 13 | [link](https://replay.pokemonshowdown.com/gen9randomdoublesbattle-2699435650) |
| 5 | cthiesen | 1946 | 1894 | +23 | 12 | [link](https://replay.pokemonshowdown.com/gen9randomdoublesbattle-2699572070) |
| 6 | DaPumper | 1940 | 1934 | +20 | 15 | [link](https://replay.pokemonshowdown.com/gen9randomdoublesbattle-2699483692) |
| 7 | cthiesen | 1938 | 1933 | +20 | 10 | [link](https://replay.pokemonshowdown.com/gen9randomdoublesbattle-2699588010) |
| 8 | iPorgot | 1935 | 1960 | +19 | 5 | [link](https://replay.pokemonshowdown.com/gen9randomdoublesbattle-2699505263) |
| 9 | Latino | 1916 | 1960 | +17 | 8 | [link](https://replay.pokemonshowdown.com/gen9randomdoublesbattle-2699536616) |
| 10 | SmellyP | 1911 | 1999 | +15 | 18 | [link](https://replay.pokemonshowdown.com/gen9randomdoublesbattle-2699540151-ywwbqbcksnl5lxaaymvfp72u6dkd7rppw) |

To be clear these are top 10 highest elo wins I don't really know what would count as most interesting.

Wait I am braindead you asked about winrates for pokemons. I do have the data but its not enough to be conclusive I only recorded about 300 games so the result is that there are many pokemon that only win.

| Pokémon | Games | Wins | Win % |
| --- | --- | --- | --- |
| Sableye | 10 | 10 | 100% |
| Magmar | 8 | 8 | 100% |
| Roaring Moon | 8 | 8 | 100% |
| Jolteon | 7 | 7 | 100% |
| Blastoise, Garganacl, Ho-Oh, Regidrago, Spiritomb, Toxapex | 6 each | 6 each | 100% |
| Regice | 10 | 9 | 90% |
| Blaziken, Clawitzer, Gogoat, Mightyena | 9 each | 8 each | 89% |

So sorry to dissapoint but no I do not know which pokemon have the best winrates.
 
Last edited:
As another randubs enthusiast, is the bot open for challenges?
It's set up now though its kind of weird version of the bot because I had to do it on my windows pc not my mac and the result is that it is slower than the real bot should be a bit stronger though.

You can just challenge the Numbrion account I will keep it up for a few days. Oh but it will refuse anything but doubles ranbat.
 
Last edited:
Hi all, I am going to keep this short and sweet since it seems like there have been a lot of posts like this recently.

Numbrion reached rank 1 on ranbat doubles at a peak elo of 2136. The bot had an average gxe of 88.5 and an average elo of 2043. I have never made a neural net before so this could not have been done without claude code, but I do have a technical background. This was a little over a week of work and was trained in about 10 hours on a macbook pro m1. I actually have a better model than what I used to get that score but I could not check the actual results since my account is on the bot ladder now and there are not many people playing bots at such high elo.
View attachment 871457
(this is an old image I was planning to take a new image when my new model took number 1 but since the bot change was made I can't really climb)

Basically if you though that 2v2 pokemon was safe from bots because there are more options, you were wrong. As seems to be the rule here I will keep this closed source. I also won't be making more models because my method scales with more compute and I don't really feel like renting computing space to make a better model. I will also be kind of light on the technical details because the jaxcalibur technical doc was enough for me to copy the architecture of that model and improve on it. I really love pokemon so I hope the bots can eventually be a positive force in the pokemon community. For now it's clear you only need a claude code sub and a bunch of free time (in my case unemployment) to make a model on the human limit.

Here are some of the things that were a big unlock for the model:
- Size can be extremely small even 0.8M parameters was enough to get rank 1.
- Training enviroment speed is everything you basically need to rewrite the showdown engine in rust or another fast language.
- Search is important you can even do 2 layer search if you engine is efficient enough.
- You need a teacher to show your model what is right and wrong instead of PPO.
- Teacher should be normal model with search on shallow setting to generate examples fast.

That is about it for me. Ask questions if you have any.
Hi, are you open to sharing the environment? I’m a university student working on a VGC team generator for a computational creativity class. We are using evolutionary algorithms and wanted to use a battle simulator as part of our fitness function. We were planning to run a private showdown server with poke-env, but if you have something faster, that would be a big help. Happy to provide more info, just DM me. Thanks in advance! :)
 
Back
Top