Skip to main content

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.

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.

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.

Build docs developers (and LLMs) love