Pokémon Showdown Client is the open-source browser application powering play.pokemonshowdown.com. It delivers real-time Pokémon battles over WebSocket, a full-featured teambuilder, ladder browsing, and an embeddable replay viewer — all built with TypeScript and Preact, targeting both modern browsers and legacy environments like IE9.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/smogon/pokemon-showdown-client/llms.txt
Use this file to discover all available pages before exploring further.
Introduction
Understand what the client is, how it relates to the server, and what you can build with it.
Quickstart
Clone the repo, build the client, and run it against a local or remote server in minutes.
Architecture
Learn about the phased loading system, panel model, and observable state management.
API Reference
Explore the public TypeScript classes — PSModel, Battle, Dex, Teams, and more.
Explore by topic
Client Modules
Deep-dives into each module: connection, battle engine, log, teambuilder, and panels.
Configuration
Configure the server endpoint, preferences, and custom server connections.
Web API
JSON endpoints for replays, users, ladders, and dex data — all CORS-enabled.
Contributing
Set up your dev environment, understand the build process, and submit changes.
Key capabilities
Battle Engine
MIT-licensed animation and state engine with per-generation sprite support.
Teambuilder
Full team editing with packed format import/export across all generations.
Replay Viewer
Embeddable replay player backed by a public JSON API.
Desktop App
NW.js wrapper for Windows and macOS with native packaging support.
Real-Time Chat
Chat rooms, PMs, tournaments, and spectator support built on the panel system.
Ladder
Format-based ladder with GXE ratings and full user stat history.
This repository contains the client only. If you want to run a battle server, see the Pokémon Showdown server repository.
