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

Battle Bot MissingNo.Zero: a pure self-play reinforcement learning bot that reached #1 on five random-battle ladders

Hi all. Since August 2026 I've been running MissingNo.Zero, a pure self-play reinforcement learning bot, on the random-battle ladders. If reached #1 in gens 1, 2, 4, 6 and 7.

More details: https://github.com/nickgreenquist/missingno-zero

Results
  • Gen 1: #1 on Sept 29 (peak Elo 1726)
  • Gen 4: #1 on Oct 8 (peak 1738)
  • Gen 6: #1 on Oct 16 (peak 1942)
  • Gen 2: #1 on Oct 18 (peak 1558)
  • Gen 7: #1 on Oct 24 (peak 1900)
  • Gen 9: top 10, best #5 on Oct 25 (peak 2453)

boards_gen1_gen2.png

boards_gen4_gen6.png

boards_gen7_gen9.png


Background
I picked Showdown for a personal reinforcement learning project on July 25, before I knew much about the bot scene; the first bot I read up on was the first bot I read up on was Foul Play. Gen 1, my original goal, reached #1 66 days after I started this project as just an idea.

My starting recipe came from Wang's 2024 MIT thesis on gen 4 random battles.

Jaxcalibur
Like all of us here, I saw the Jaxcalibur thread; I first read its write-up on Sept 26. However, my gen 1 bots had been on the ladder since August, and the last one built before the write-up had reached #5. The write-up showed self-play PPO could reach #1 without search in training, so I dropped search from training (a dead end I had been trying) and adopted several of its ideas for the run that reached #1.

How it played
  • Every account has "bot" in its name (nickgen1rbrlbot, nickgen4rbrlbot, nickgen6rbrlbot, MissingNo.ZeroBot).
  • Gens 1 and 4 played and reached #1 before Showdown had a bot policy, which arrived with its bot registry on Oct 13; staff then registered all four accounts.
  • Gens 2 and 6 played as registered bots but before the bot opt-in went live on Oct 20, so the ladder matched them like any other account.
  • Gens 7 and 9 came after the bot opt-in went live, so they only met players who had turned it on, and other bots.
  • No chat, no fake delays, or anything that tried to make it 'look human'.

FAQ
  • Will you release the code or weights? No, for the same reason as Jaxcalibur and others: with too many details, anyone could use an AI coding tool to quickly spin up a strong bot that ignores Showdown's bot policy.
  • Will you run it again? Can I play it? No.
  • How did you benchmark it before laddering? Against Foul Play: with its search, each #1 model beat Foul Play in 67-81% of games at a fixed search budget.
  • Did it use any human data? No.
  • Why gen 1, and why these gens? Gen 1 was the goal from the start: it's the generation I grew up with, and gen 2 is my other childhood favorite. I skipped gens 3, 5 and 8 for their low player counts.
  • What did it train on? Gen 1 trained on one laptop in about 40 hours. Each later gen rented one GPU for a few days to speed things up, about $160-280 per gen.
  • Did it use a GPU on the ladder? No. The network and all of its search ran on the laptop's CPU.
  • Did you write your own battle engine? No. It used existing ones: Showdown's own simulator, pkmn/engine and poke-engine.
  • Why didn't gen 9 reach #1? It peaked at #5. Jaxcalibur had already reached #1 there, so more money would only have bought a #1 that had been done before.

Thanks to the staff for handling bot registration quickly, and to everyone who played it.
 
Last edited:
Back
Top