Skip to main content

System Requirements

Pokemon Showdown requires Node.js to run. Make sure you have the correct version installed before proceeding.
Pokemon Showdown requires Node.js v22 or later for full compatibility. Earlier versions may not work correctly.

Check Your Node.js Version

Verify your Node.js installation:
node --version
If you need to upgrade Node.js, you can use the n package manager:
npm install --global n
n latest

Installation Steps

1

Clone the Repository

Download Pokemon Showdown from GitHub:
git clone https://github.com/smogon/pokemon-showdown.git
cd pokemon-showdown
Using Git is recommended over downloading a ZIP file, as it makes updating your server much easier with the /updateserver command.
2

Create Configuration File

Copy the example configuration to create your server config:
cp config/config-example.js config/config.js
You can edit config/config.js to customize your server settings. See the Configuration guide for details.
3

Build and Start the Server

Start Pokemon Showdown using the startup script:
./pokemon-showdown
Or on Windows:
node pokemon-showdown
The server will automatically build required files on first run.

Starting the Server

Pokemon Showdown can be started with several options:

Default Start

./pokemon-showdown
This starts the server on the default port (8000) specified in your config.

Custom Port

Start on a specific port:
./pokemon-showdown 9000
Or:
node pokemon-showdown 9000

Skip Build

Skip the build process if you know your files are up to date:
./pokemon-showdown start --skip-build

Accessing Your Server

Once your server is running, you can access it through your browser:

Local Access

Visit http://localhost:8000 to connect from the same machine running the server.

Remote Access

Visit http://YOUR-IP:8000 where YOUR-IP is your server’s public IP address.
Your server will be redirected to http://SERVER.insecure.psim.us for shared account login functionality. The insecure.psim.us subdomain is used for servers without HTTPS certificates.

Network Configuration

Port Forwarding

For users to connect to your server from outside your local network, you’ll need to forward the server port (default 8000) through your router.
Some internet service providers block server hosting entirely. In this case, you’ll need to rent a VPS (Virtual Private Server) to host your server.

Windows Git Requirements

If you’re on Windows, you may need to link Git’s UNIX commands to your PATH to build Pokemon Showdown:

Testing Your Installation

You can test your server locally even if you’re behind a NAT without port forwarding:
  1. Start your server
  2. Visit http://localhost:8000 in your browser
  3. You should see the Pokemon Showdown client interface
Some browser security setups (like NoScript) might prevent local connections. If Firefox doesn’t work, try Chrome.

Command Line Interface

The pokemon-showdown executable supports several commands:
./pokemon-showdown start

CLI Options

  • --skip-build - Skip the TypeScript build process
  • --help or -h - Display help information
  • --debug or -D - Enable debug mode for battle simulation
  • --replay or -R - Enable replay mode
  • --spectate or -S - Enable spectator mode

Next Steps

Configuration

Customize your server settings, ports, and features

Administration

Set up administrator accounts and manage users

Security

Secure your server for production deployment

Troubleshooting

Node.js Version Errors

If you see an error about Node.js version:
We require Node.js version 22 or later; you're using vX.X.X
Upgrade your Node.js installation using the steps in System Requirements.

Build Errors

If the build fails, try:
  1. Delete the node_modules and dist directories
  2. Run npm install
  3. Try starting the server again

Connection Issues

If you can’t connect to your server:
  1. Verify the server is running (check terminal output)
  2. Confirm you’re using the correct port
  3. Check firewall settings
  4. Verify port forwarding if accessing remotely

Build docs developers (and LLMs) love