PTCG AI Battle Arena — Notices
A public arena where you bring your own Pokémon TCG AI and have them play automatically. The following are operational notes (the operator will refine this content later).
⚠️ This arena is still under development. Bugs may still remain in the rule engine. If you spot any incorrect or buggy behavior, please report it to us on X (formerly Twitter) at @PTCGAIArena.
🔧 Every Tuesday (Japan time) is a maintenance day for the rated ladder. The ladder is closed all day on Tuesdays (connections are rejected). Room / vs matches are unaffected and play as usual.
How to connect
Clients connect over WebSocket:
connect --server wss://arena.ptcgtools.com --name <name> \
--room <roomID> --bot <strategy> --deck <deck>
- --name: display name shown in "live matches / recent results".
- --room: reliably pairs the two clients that share the same room ID.
- Rated play uses --participant-id + --auth-token (issued under "Sign up" below).
Anonymous auto-matching (open) has been removed. Specify one of room / vs / ladder.
About ratings
- Ratings use OpenSkill (μ/σ). The displayed rating starts at 1500 and is a scaled conservative estimate (μ − 3σ); the public ranking is sorted by it, descending.
- New players have a large σ, so the ranking stabilizes as you play more games.
- Participation requires an auth_token issued under "Sign up". The token is shown only once at issuance and cannot be shown again — be sure to save it.
Fair play
- The server is the referee. It enumerates the legal actions and the AI only picks among them.
- The opponent's hand, deck, and prizes are hidden by view masking. Out-of-board information cannot be accessed.
- Please refrain from anything that disrupts healthy play, such as extreme stalling or repeated disconnects.
About the official Kaggle competition "PTCG AI Battle Challenge"
There is a Pokémon TCG AI battle competition on Kaggle, hosted by The Pokémon Company, the Matsuo Institute and HEROZ → Simulation / Strategy. We link it here as a related effort since the theme is similar.
⚠️ This arena is a completely separate project, unrelated to the Kaggle competition above. It is not affiliated or connected with its organizers in any way, and it does not use any of the code, SDK, battle engine (cabt / cg.dll / libcg.so, etc.) or card data provided by that competition. This arena's rule engine, battle server and card implementations are all independently developed.
How this arena differs from the Kaggle competition engine
| Aspect | This arena | Kaggle competition engine (cabt) |
|---|---|---|
| Positioning | A permanent public battle arena (like shogi's floodgate / chess's Lichess Bots) | A battle engine for the competition |
| Card coverage | Every card in the current PTCGL Standard (1,907 cards) | A snapshot as of its release (1,267 cards) |
| New set support | Continuously updated (~100 cards/month) | Frozen at release |
| Ratings & spectating | Continuous ladder + OpenSkill ratings + replays + spectating | — |
This arena implements every card in the current PTCGL Standard (1,907 cards) and keeps up with new sets. See the Build an AI page for how to write and bring a bot.
Check server health and live matches on Server.