
Metamon trains sequence model RL policies to play Pokémon Showdown.
Training originally relied on approximately "reconstructed" records of human battles.
Today, the best metamon policies are trained on large datasets of agent vs. agent gameplay across a variety of skill levels and teams. This repo replaces
the deprecated jakegrigsby/metamon-synthetic by providing RL trajectories in the new data format.
It has been validated by training the most recent (and best overall) metamon policy as of the end of the NeurIPS 2025 PokéAgent Challenge.
There are two subsets:
| Name | Size | Description |
|---|---|---|
pac-base | 11M Trajectories | Partially comprised of battles played by organizer baselines on the PokéAgent Challenge practice ladder, but the vast majority are battles collected locally for the purposes of training the |
pac-exploratory | 7M Trajectories | Self-play revisited after the NeurIPS challenge with higher sampling temperature (to improve value estimates of sub-optimal actions). Also includes battles against a winner of the PokéAgent Challenge and corrects for pac-base's lack of gen2-gen4 data. metamon-parsed-replays, pac-base, and pac-exploratory. |
pac-tauros | 4M Trajectories | Self-play dataset specifically focused on high-ladder Gen1OU. Contains decisions of base policies in the ~70-83% GXE range on human ladder, and was used to train policies that can top the public leaderboard. |
from metamon.data import SelfPlayDataset
self_play_dset = SelfPlayDataset(
subset="pac-base", # or "pac-exploratory"
observation_space=obs_space,
action_space=act_space,
reward_function=rew_fn,
formats=["gen1ou", "gen9ou"],
)
obs, actions, rewards, dones = self_play_dset[0]
These battles are currently only available in the parsed replay format, which makes them liable to be deprecated should that format change or a major bug be found. When/if this happens:

Metamon trains sequence model RL policies to play Pokémon Showdown.
Training originally relied on approximately "reconstructed" records of human battles.
Today, the best metamon policies are trained on large datasets of agent vs. agent gameplay across a variety of skill levels and teams. This repo replaces
the deprecated jakegrigsby/metamon-synthetic by providing RL trajectories in the new data format.
It has been validated by training the most recent (and best overall) metamon policy as of the end of the NeurIPS 2025 PokéAgent Challenge.
There are two subsets:
| Name | Size | Description |
|---|---|---|
pac-base | 11M Trajectories | Partially comprised of battles played by organizer baselines on the PokéAgent Challenge practice ladder, but the vast majority are battles collected locally for the purposes of training the |
pac-exploratory | 7M Trajectories | Self-play revisited after the NeurIPS challenge with higher sampling temperature (to improve value estimates of sub-optimal actions). Also includes battles against a winner of the PokéAgent Challenge and corrects for pac-base's lack of gen2-gen4 data. metamon-parsed-replays, pac-base, and pac-exploratory. |
pac-tauros | 4M Trajectories | Self-play dataset specifically focused on high-ladder Gen1OU. Contains decisions of base policies in the ~70-83% GXE range on human ladder, and was used to train policies that can top the public leaderboard. |
from metamon.data import SelfPlayDataset
self_play_dset = SelfPlayDataset(
subset="pac-base", # or "pac-exploratory"
observation_space=obs_space,
action_space=act_space,
reward_function=rew_fn,
formats=["gen1ou", "gen9ou"],
)
obs, actions, rewards, dones = self_play_dset[0]
These battles are currently only available in the parsed replay format, which makes them liable to be deprecated should that format change or a major bug be found. When/if this happens: