Search bot (one-turn minimax) · control group

PokéChamp

Rating (95% CI)
1672+90−110
Rank
—
Record
142–81
Win rate
64%
Turns played
3,299
Switch rate
20%
Median Terastallization turn
never
Median Mega Evolution turn
turn 1

What PokéChamp is, and why it is here

PokéChamp is the work of Seth Karten, Andy Luu Nguyen and Chi Jin, published as PokéChamp: an Expert-level Minimax Language Agent, a spotlight paper at ICML 2025. Project page · Paper (arXiv:2503.04094) · Code · Dataset

Their work showed that a language model can play competitive Pokémon at a high level when it sits inside a game-theoretic search, and gave the field the tools and data to test that. This benchmark would not exist without it. Seth Karten and Chi Jin, with collaborators from UT Austin, NYU, Johns Hopkins, Google DeepMind and Carnegie Mellon, also organize the PokéAgent Challenge, a NeurIPS 2025 competition on Pokémon battling and speedrunning agents.

The version that plays here

The original PokéChamp is a minimax agent with a language model inside it: the model proposes candidate actions, predicts what the opponent will do, and judges the positions the search reaches. What plays on RotomArena is our own implementation of that design, written from the paper’s description, with the language model taken out: every one of those three jobs is done by a hand-written rule instead. It contains none of their code. We use it as a fixed reference opponent, not as a reproduction of the paper’s agent, which should be judged by the paper’s own results.

So when the leaderboard says “PokéChamp”, read it as “PokéChamp’s search, without its brain”. It reads no prompt, writes no explanation and produces no tokens. Every turn, in a few milliseconds, it:

  1. Lists every legal action. Each available move, each move again with Terastallization if that is still possible, and each switch. In Champions it Mega Evolves at the first chance, as strong players do.
  2. Guesses the opponent’s three likeliest replies. Moves it has already seen the opponent use, weighted by power and by how well they hit its own active Pokémon. If it has seen none yet, it assumes a strong attack of each of the opponent’s types. If its own Pokémon threatens a super-effective hit, it also considers the opponent switching out.
  3. Plays out one turn for every pairing with an approximate damage formula at the battle’s level: real stats for its own Pokémon, estimates from base stats for the opponent’s, move priority, then speed, deciding who goes first, entry hazards on switch-in, and a small penalty for switching, which costs a turn.
  4. Scores each resulting position with a hand-tuned evaluation. Pokémon left standing count most, then HP, then status conditions and type matchups, then stat boosts and entry hazards.
  5. Picks the action whose worst outcome is best. This is the minimax idea at the heart of PokéChamp: assume the opponent finds the reply that hurts most, and play whatever survives that best.

At team preview it scores each of its Pokémon against the opponent’s whole team (the damage it would deal minus the damage it would take) and brings the best, a Mega Stone holder slightly preferred; the best one leads.

When it first joined Champions (October 2026), it still estimated every opponent at level 100 against its own level-50 stats: each opponent looked twice as fast and strong, every move scored the same, and it switched turn after turn. It won 1 game in 40 against the max-damage and random bots. Estimating at the battle’s level, it won 34 of the same 40.

What our version cannot do

It looks exactly one turn ahead. It does not plan a sweep, scout, predict a double switch, save a Pokémon for later, or remember what worked last game. Its damage formula ignores items and every ability except Guts, and it knows nothing about the metagame beyond what that formula implies. Without the language model that the original puts at its core, it is a calculator with opinions about HP.

That is what we want from a reference opponent: simple enough to describe in five steps, so that a result against it means something.

Why it is in the rankings

It is a fixed yardstick. Ratings only mean something relative to opponents whose strength does not change. Our PokéChamp never updates, never gets deprecated and costs nothing to run, so every model added to the ladder, now or later, plays the same set of games against the same program. That is what makes a rating from one month comparable with a rating from the next.

It sits where the interesting comparisons are. Random AI marks the floor: a model that loses to it is broken. PokéChamp’s search marks something more useful, the strength of one-turn arithmetic done perfectly. A language model that beats it is doing something a calculator cannot. A language model that loses to it has read the whole battle, reasoned about it at length, and been outplayed by a handful of weighted numbers. The PokéChamp paper’s central point is that the best results come from combining the two.

It is rated like everyone else. Its rating is fitted from its games, with its own error bars, on the same scale as the models. It is not the fixed point of the scale: that is the anchor model, which sits at 1500 by definition. It has no rank number, because the ranking is for models; it appears on the leaderboard the way a reference line appears on a chart.

Statistics that do not apply

Our PokéChamp has never hallucinated a move, run out of tokens, timed out, or been rate-limited. It has also never explained a single decision. The autopilot, token and cost columns on the leaderboard are left blank for it, which we consider a fair summary of its personality.

The design, the name and the idea are PokéChamp's; the implementation, and any mistakes in it, are ours. Their own code is at github.com/sethkarten/pokechamp.

By benchmark

BenchmarkRating (95% CI)GamesRecord
All benchmarks1672+90−11014183–58
Rotom Champ Bench1714+95−10014183–58

Style

Signature move
Earthquake
Most time on the field
Kingambit

Matches

DateGame (winner first)TurnsDuration
2026-10-16PokéChamp>Laya RotomArena104 sReplay
2026-10-16PokéChamp>Laya RotomArena104 sReplay
2026-10-16PokéChamp>Laya RotomArena104 sReplay
2026-10-16Ling 3.1 Flash>PokéChamp617 minReplay
2026-10-16PokéChamp>Ling 3.1 Flash37 minReplay
2026-10-16PokéChamp>Ling 3.1 Flash711 minReplay
2026-10-15GPT-6.1 Sol>PokéChamp874 minReplay
2026-10-15Gemini 4 Argon>PokéChamp875 minReplay
2026-10-15GPT-6.1 Sol>PokéChamp976 minReplay
2026-10-15GPT-6.1 Sol>PokéChamp111.8 hReplay
2026-10-15Gemini 4 Argon>PokéChamp770 minReplay
2026-10-15Gemini 4 Argon>PokéChamp665 minReplay
2026-10-15PokéChamp>Muse Spark Open175 minReplay
2026-10-15PokéChamp>Muse Spark Open112 minReplay
2026-10-15Muse Spark Open>PokéChamp1611 minReplay
2026-10-15PokéChamp>GPT-6 Luna Pro134 minReplay
2026-10-15PokéChamp>GPT-6 Luna Pro94 minReplay
2026-10-15PokéChamp>GPT-6 Luna Pro114 minReplay
2026-10-15PokéChamp>Claude Sonnet 5.5645 sReplay
2026-10-15PokéChamp>Claude Sonnet 5.5656 sReplay
2026-10-15Claude Sonnet 5.5>PokéChamp533 sReplay
2026-10-15PokéChamp>Nemotron 3.5 Super VL62 minReplay
2026-10-15PokéChamp>Nemotron 3.5 Super VL144 minReplay
2026-10-15PokéChamp>Nemotron 3.5 Super VL205 minReplay
2026-10-14Gemma 4 31B>PokéChamp64 minReplay
2026-10-14PokéChamp>Gemma 4 31B94 minReplay
2026-10-14Gemma 4 31B>PokéChamp2727 minReplay
2026-10-13PokéChamp>GPT-OSS 20B75 minReplay
2026-10-13PokéChamp>GPT-OSS 20B55 minReplay
2026-10-13GPT-OSS 20B>PokéChamp73 minReplay
2026-10-13PokéChamp>Ornith 1.5 35B1227 minReplay
2026-10-13Ornith 1.5 35B>PokéChamp1662 minReplay
2026-10-13Ornith 1.5 35B>PokéChamp718 minReplay
2026-10-13PokéChamp>Bonsai 2 27B68 minReplay
2026-10-13PokéChamp>Bonsai 2 27B55 minReplay
2026-10-13Bonsai 2 27B>PokéChamp55 minReplay
2026-10-13PokéChamp>Ling 3.0 Tiny96 minReplay
2026-10-13PokéChamp>Ling 3.0 Tiny97 minReplay
2026-10-13PokéChamp>Ling 3.0 Tiny98 minReplay
2026-10-13PokéChamp>Laya128 sReplay
2026-10-13PokéChamp>Laya148 sReplay
2026-10-13PokéChamp>Laya178 sReplay
2026-10-13PokéChamp>MiniCPM5 2B73 minReplay
2026-10-13PokéChamp>MiniCPM5 2B237 minReplay
2026-10-13PokéChamp>MiniCPM5 2B72 minReplay
2026-10-13PokéChamp>Drex v1.5618 sReplay
2026-10-13PokéChamp>Drex v1.5517 sReplay
2026-10-13PokéChamp>Drex v1.5516 sReplay
2026-10-13PokéChamp>Claude Haiku 5.5142 minReplay
2026-10-13PokéChamp>Claude Haiku 5.5112 minReplay
2026-10-13Claude Haiku 5.5>PokéChamp847 sReplay
2026-10-13PokéChamp>Claude Opus 5.562 minReplay
2026-10-13PokéChamp>Claude Opus 5.5112 minReplay
2026-10-13PokéChamp>Claude Opus 5.582 minReplay
2026-10-13GPT-6 Luna Pro>PokéChamp123 minReplay
2026-10-13PokéChamp>GPT-6 Luna Pro146 minReplay
2026-10-13PokéChamp>GPT-6 Luna Pro83 minReplay
2026-10-13PokéChamp>GLM 5.3 Flash728 sReplay
2026-10-13PokéChamp>GLM 5.3 Flash721 sReplay
2026-10-13PokéChamp>GLM 5.3 Flash421 sReplay
2026-10-13PokéChamp>Muse Spark 1.374 minReplay
2026-10-13Muse Spark 1.3>PokéChamp2214 minReplay
2026-10-13PokéChamp>Muse Spark 1.396 minReplay
2026-10-13Gemini 4 Argon>PokéChamp124 minReplay
2026-10-13Gemini 4 Argon>PokéChamp83 minReplay
2026-10-13Gemini 4 Argon>PokéChamp93 minReplay
2026-10-13PokéChamp>Muse Wonder72 minReplay
2026-10-13Muse Wonder>PokéChamp62 minReplay
2026-10-13Muse Wonder>PokéChamp72 minReplay
2026-10-13PokéChamp>Kimi K3630 sReplay
2026-10-13PokéChamp>Kimi K3546 sReplay
2026-10-13Kimi K3>PokéChamp632 sReplay
2026-10-13PokéChamp>MiMo V2.6 Pro1113 minReplay
2026-10-13MiMo V2.6 Pro>PokéChamp87 minReplay
2026-10-13PokéChamp>MiMo V2.6 Pro710 minReplay
2026-10-13Grok 4.7>PokéChamp912 minReplay
2026-10-13PokéChamp>Grok 4.7911 minReplay
2026-10-13Grok 4.7>PokéChamp1013 minReplay
2026-10-13PokéChamp>Qwen3.8 Flash33 minReplay
2026-10-13PokéChamp>Qwen3.8 Flash74 minReplay
2026-10-13Qwen3.8 Flash>PokéChamp126 minReplay
2026-10-13PokéChamp>Jev 1.1396 sReplay
2026-10-13PokéChamp>Jev 1.1365 sReplay
2026-10-13Jev 1.13>PokéChamp54 sReplay
2026-10-13PokéChamp>Microsoft-Decision-146 sReplay
2026-10-13PokéChamp>Microsoft-Decision-146 sReplay
2026-10-13Microsoft-Decision-1>PokéChamp78 sReplay
2026-10-13Mercury Decide>PokéChamp79 sReplay
2026-10-13PokéChamp>Mercury Decide1014 sReplay
2026-10-13Mercury Decide>PokéChamp56 sReplay
2026-10-13Drex v2.0>PokéChamp2221 sReplay
2026-10-13Drex v2.0>PokéChamp1820 sReplay
2026-10-13Drex v2.0>PokéChamp1918 sReplay
2026-10-13PokéChamp>Claude Sonnet 5.5663 sReplay
2026-10-13Claude Sonnet 5.5>PokéChamp523 sReplay
2026-10-13Claude Sonnet 5.5>PokéChamp535 sReplay
2026-10-13PokéChamp>GPT-6 Luna983 sReplay
2026-10-13GPT-6 Luna>PokéChamp132 minReplay
2026-10-13PokéChamp>GPT-6 Luna92 minReplay
2026-10-13MiMo V2.6 Flash>PokéChamp32 minReplay
2026-10-13PokéChamp>MiMo V2.6 Flash78 minReplay
2026-10-13MiMo V2.6 Flash>PokéChamp42 minReplay
2026-10-13PokéChamp>DeepSeek V4.1 Flash98 minReplay
2026-10-13DeepSeek V4.1 Flash>PokéChamp74 minReplay
2026-10-13DeepSeek V4.1 Flash>PokéChamp83 minReplay
2026-10-13Gemini 3.8 Flash>PokéChamp888 sReplay
2026-10-13PokéChamp>Gemini 3.8 Flash868 sReplay
2026-10-13Gemini 3.8 Flash>PokéChamp62 minReplay
2026-10-13PokéChamp>Solar Pro 464 minReplay
2026-10-13PokéChamp>Solar Pro 4581 sReplay
2026-10-13Solar Pro 4>PokéChamp94 minReplay
2026-10-13GLM 5.3>PokéChamp729 sReplay
2026-10-13PokéChamp>GLM 5.3964 sReplay
2026-10-13GLM 5.3>PokéChamp1164 sReplay
2026-10-13GPT-6.1 Sol>PokéChamp82 minReplay
2026-10-13GPT-6.1 Sol>PokéChamp112 minReplay
2026-10-13GPT-6.1 Sol>PokéChamp132 minReplay
2026-10-13PokéChamp>MiniMax M31622 minReplay
2026-10-13MiniMax M3>PokéChamp86 minReplay
2026-10-13MiniMax M3>PokéChamp1112 minReplay
2026-10-13PokéChamp>DeepSeek V4 Pro76 minReplay
2026-10-13PokéChamp>DeepSeek V4 Pro1313 minReplay
2026-10-13DeepSeek V4 Pro>PokéChamp1711 minReplay
2026-10-13PokéChamp>Qwen3.8 Max Prime52 minReplay
2026-10-13PokéChamp>Qwen3.8 Max Prime103 minReplay
2026-10-13PokéChamp>Qwen3.8 Max Prime83 minReplay
2026-10-13PokéChamp>GPT-6 Luna Decisions1611 sReplay
2026-10-13GPT-6 Luna Decisions>PokéChamp97 sReplay
2026-10-13GPT-6 Luna Decisions>PokéChamp138 sReplay
2026-10-13PokéChamp>Perplexity Decider V1.1 27B3324 sReplay
2026-10-13PokéChamp>Perplexity Decider V1.1 27B1421 sReplay
2026-10-13PokéChamp>Perplexity Decider V1.1 27B323 minReplay
2026-10-13PokéChamp>Solar Decide Flash1116 sReplay
2026-10-13PokéChamp>Solar Decide Flash3446 sReplay
2026-10-13PokéChamp>Solar Decide Flash1525 sReplay
2026-10-13PokéChamp>Nemotron 3 Ultra3556 minReplay
2026-10-13Nemotron 3 Ultra>PokéChamp1926 minReplay
2026-10-13Nemotron 3 Ultra>PokéChamp1214 minReplay
2026-10-13PokéChamp>Qwen3.8 27B816 minReplay
2026-10-13Qwen3.8 27B>PokéChamp42 minReplay
2026-10-13PokéChamp>Qwen3.8 27B514 minReplay
2026-10-11PokéChamp>Ornith 1.5 35B56 minReplay
2026-10-11PokéChamp>Ornith 1.5 35B97 minReplay
2026-10-11PokéChamp>Ornith 1.5 35B87 minReplay
2026-10-11Bonsai 2 27B>PokéChamp6853 minReplay
2026-10-11PokéChamp>Bonsai 2 27B4934 minReplay
2026-10-11PokéChamp>Bonsai 2 27B1815 minReplay
2026-10-11PokéChamp>GPT-6 Luna152 minReplay
2026-10-11PokéChamp>GPT-6 Luna548 sReplay
2026-10-11PokéChamp>GPT-6 Luna750 sReplay
2026-10-11PokéChamp>MiMo V2.6 Flash63 minReplay
2026-10-11PokéChamp>MiMo V2.6 Flash92 minReplay
2026-10-11PokéChamp>MiMo V2.6 Flash584 sReplay
2026-10-11DeepSeek V4.1 Flash>PokéChamp879 sReplay
2026-10-11PokéChamp>DeepSeek V4.1 Flash1075 sReplay
2026-10-11PokéChamp>DeepSeek V4.1 Flash272 minReplay
2026-10-11Gemini 3.8 Flash>PokéChamp929 sReplay
2026-10-11PokéChamp>Gemini 3.8 Flash826 sReplay
2026-10-11Gemini 3.8 Flash>PokéChamp518 sReplay
2026-10-11Jev 1.13>PokéChamp78 sReplay
2026-10-11Jev 1.13>PokéChamp88 sReplay
2026-10-11Jev 1.13>PokéChamp78 sReplay
2026-10-11PokéChamp>Microsoft-Decision-178 sReplay
2026-10-11PokéChamp>Microsoft-Decision-167 sReplay
2026-10-11PokéChamp>Microsoft-Decision-157 sReplay
2026-10-11PokéChamp>Mercury Decide97 sReplay
2026-10-11PokéChamp>Mercury Decide99 sReplay
2026-10-11PokéChamp>Mercury Decide97 sReplay
2026-10-11PokéChamp>Claude Haiku 5.5102 minReplay
2026-10-11PokéChamp>Claude Haiku 5.5987 sReplay
2026-10-11Claude Haiku 5.5>PokéChamp183 minReplay
2026-10-11GPT-6 Luna Pro>PokéChamp82 minReplay
2026-10-11GPT-6 Luna Pro>PokéChamp92 minReplay
2026-10-11PokéChamp>GPT-6 Luna Pro82 minReplay
2026-10-11GLM 5.3 Flash>PokéChamp614 sReplay
2026-10-11GLM 5.3 Flash>PokéChamp1224 sReplay
2026-10-11PokéChamp>GLM 5.3 Flash922 sReplay
2026-10-11PokéChamp>MiniCPM5 2B63 minReplay
2026-10-11PokéChamp>MiniCPM5 2B155 minReplay
2026-10-11PokéChamp>MiniCPM5 2B53 minReplay
2026-10-11PokéChamp>Laya123 sReplay
2026-10-11PokéChamp>Laya143 sReplay
2026-10-11PokéChamp>Laya143 sReplay
2026-10-11PokéChamp>Muse Spark 1.3116 minReplay
2026-10-11Muse Spark 1.3>PokéChamp114 minReplay
2026-10-11PokéChamp>Muse Spark 1.3127 minReplay
2026-10-11Solar Pro 4>PokéChamp63 minReplay
2026-10-11Solar Pro 4>PokéChamp558 sReplay
2026-10-11Solar Pro 4>PokéChamp72 minReplay
2026-10-11PokéChamp>Ling 3.0 Tiny73 minReplay
2026-10-11PokéChamp>Ling 3.0 Tiny135 minReplay
2026-10-11PokéChamp>Ling 3.0 Tiny73 minReplay
2026-10-11GPT-6 Luna Decisions>PokéChamp742 sReplay
2026-10-11GPT-6 Luna Decisions>PokéChamp542 sReplay
2026-10-11GPT-6 Luna Decisions>PokéChamp642 sReplay
2026-10-11PokéChamp>Drex v1.5818 sReplay
2026-10-11PokéChamp>Drex v1.5919 sReplay
2026-10-11PokéChamp>Perplexity Decider V1.1 27B74 sReplay
2026-10-11PokéChamp>Drex v1.5716 sReplay
2026-10-11PokéChamp>Perplexity Decider V1.1 27B77 sReplay
2026-10-11PokéChamp>Perplexity Decider V1.1 27B74 sReplay
2026-10-11PokéChamp>Gemma 4 31B134 minReplay
2026-10-11PokéChamp>Gemma 4 31B103 minReplay
2026-10-11PokéChamp>Gemma 4 31B772 sReplay
2026-10-11PokéChamp>GPT-OSS 20B72 minReplay
2026-10-11PokéChamp>GPT-OSS 20B83 minReplay
2026-10-11PokéChamp>GPT-OSS 20B63 minReplay
2026-10-08Ling 3.0 Tiny>PokéChamp2014 minReplay
2026-10-08PokéChamp>Ling 3.0 Tiny2014 minReplay
2026-10-08PokéChamp>Ling 3.0 Tiny137 minReplay
2026-10-08Ling 3.0 Tiny>PokéChamp1914 minReplay
2026-10-07Gemma 4 31B>PokéChamp173 minReplay
2026-10-07PokéChamp>Gemma 4 31B225 minReplay
2026-10-07PokéChamp>Gemma 4 31B255 minReplay
2026-10-07PokéChamp>Gemma 4 31B174 minReplay
2026-10-07PokéChamp>Nemotron 3 Ultra1414 minReplay
2026-10-07Nemotron 3 Ultra>PokéChamp2112 minReplay
2026-10-07PokéChamp>Nemotron 3 Ultra1811 minReplay
2026-10-07PokéChamp>Nemotron 3 Ultra2416 minReplay
2026-10-07PokéChamp>Bonsai 2 27B1815 minReplay
2026-10-07PokéChamp>Bonsai 2 27B2721 minReplay
2026-10-07PokéChamp>Bonsai 2 27B1614 minReplay
2026-10-07PokéChamp>Bonsai 2 27B2518 minReplay