Skip to content

ReEnMikki/pokemon-showdown-client

This branch is 19 commits ahead of, 315 commits behind smogon/pokemon-showdown-client:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5dc5475 · Sep 2, 2023
Apr 13, 2021
May 27, 2021
Aug 31, 2023
Aug 31, 2023
Nov 26, 2021
Oct 27, 2020
Feb 23, 2020
Aug 30, 2023
Oct 21, 2019
Aug 30, 2023
Jul 18, 2023
Jun 2, 2023
Sep 2, 2023
Sep 2, 2023
Aug 30, 2023
Jan 12, 2014
Dec 22, 2022
Jul 18, 2023
Jun 2, 2023
Nov 6, 2017
Apr 13, 2021
Jul 23, 2020
Aug 25, 2023
Jun 7, 2021
May 14, 2018
Jul 23, 2020
Mar 8, 2017
Jun 6, 2021
Sep 4, 2019
Mar 16, 2021
Jul 27, 2020
Nov 15, 2017
Feb 3, 2016
Jun 28, 2022
Oct 30, 2017
Feb 27, 2019
Jul 27, 2020
Apr 1, 2021
Jul 28, 2020
Apr 8, 2016
Feb 3, 2016
Nov 21, 2017
Feb 3, 2016
Apr 8, 2016
Apr 8, 2016
Apr 8, 2016
Jan 2, 2016
Apr 11, 2023
Jul 19, 2019
Nov 21, 2017
Sep 20, 2013
Mar 16, 2023
Feb 3, 2016
Apr 27, 2013
Feb 3, 2016
Apr 2, 2016
May 5, 2021
Apr 1, 2021
Feb 22, 2016
Jan 24, 2013
Nov 21, 2017
May 5, 2021
Aug 25, 2023
Feb 19, 2019
Jul 29, 2021

Repository files navigation

Pokémon Showdown Client

Navigation: Website | Server repository | Client repository | Dex repository

Introduction

This is a repository for most of the client code for Pokémon Showdown.

This is what runs play.pokemonshowdown.com.

WARNING: You probably want the Pokémon Showdown server, if you're setting up a server.

Browser support

Pokémon Showdown currently supports, in order of preference:

  • Chrome
  • Firefox
  • Opera
  • Safari 5+
  • IE11+
  • Chrome/Firefox/Safari for various mobile devices

Pokémon Showdown is usable, but expect degraded performance and certain features not to work in:

  • Safari 4+
  • IE9+

Pokémon Showdown is mostly developed on Chrome, and Chrome or the desktop client is required for certain features like dragging-and-dropping teams from PS to your computer. However, bugs reported on any supported browser will usually be fixed pretty quickly.

Testing

Client testing now requires a build step! Install the latest Node.js (we require v14 or later) and Git, and run node build (on Windows) or ./build (on other OSes) to build.

You can make and test client changes simply by building after each change, and opening testclient.html. This will allow you to test changes to the client without setting up your own login server.

Test keys

For security reasons, browsers don't let other websites control PS, so they can't screw with your account, but it does make it harder to log in on the test client.

The default hack makes you copy/paste the data instead, but if you're refreshing a lot, just add a config/testclient-key.js file, with the contents:

const POKEMON_SHOWDOWN_TESTCLIENT_KEY = 'sid';

Replace sid with the contents of your actual PS sid cookie. You can quickly access this on Chrome through the URL bar:

image image

(This is the only supported method of logging in on the beta Preact client.)

Other servers

You can connect to an arbitrary server by navigating to testclient.html?~~host:port. For example, to connect to a server running locally on port 8000, you can navigate to testclient.html?~~localhost:8000.

NOTE: Certain browsers will convert '?' to '%3F' when reading files off of the local filesystem. As a workaround, try using a different browser or serving the files locally first (ie. run npx http-server from the directory this README is in, then navigate in your browser to http://localhost:8080/testclient.html?~~localhost:8000).

Limitations

Even with a test key, the following things will fail in testclient.html:

  • Registering
  • Logging into other accounts (you can still switch to other unregistered accounts and back, though)

Everything else can be tested.

Warning

This repository is not "batteries included". It does NOT include instructions to run a full Pokémon Showdown login server, and we will not provide them. Please do not ask for help on this; you will be turned away.

If you make a mistake hosting a login server, your users' passwords can get stolen, so we do not want anyone to host a login server unless they can figure out how to do it without help.

It also doesn't include several resource files (namely, the /audio/ and /sprites/ directories) for size reasons.

On the other hand, as long as you don't want to run your own login server, this repository contains everything you need to test changes to the client; just see the "Testing" section above.

License

Pokémon Showdown's client is distributed under the terms of the AGPLv3.

The reason is mostly because I don't want low-effort proprietary forks that add bad code that steals everyone's passwords, or something like that.

If you're doing anything else other than forking, especially if you want to some client code files in your own open-source project that you want to release under a more permissive license (like, if you want to make your own multiplayer open-source game client for a different game), please ask at staff@pokemonshowdown.com. I hold all the copyright to the AGPLv3 parts and can relicense them to MIT for you.

WARNING: This is NOT the same license as Pokémon Showdown's server.

About

The client for Pokémon Showdown

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 36.1%
  • TypeScript 32.5%
  • JavaScript 25.2%
  • CSS 4.3%
  • HTML 1.6%
  • NSIS 0.3%