mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-04-25 16:14:01 -05:00
- Fix various reconnect bugs - Move table styling to battle-log - Fix highlighting bugs - Bump cookie expiration another month Trivial - Fix rounding in build time - Fix left border in vertical tabs dark mode - Improve README wording
137 lines
5.4 KiB
Markdown
137 lines
5.4 KiB
Markdown
Pokémon Showdown Client
|
|
========================================================================
|
|
|
|
Navigation: [Website][1] | [Server repository][2] | **Client repository** | [Dex repository][3]
|
|
|
|
[1]: http://pokemonshowdown.com/
|
|
[2]: https://github.com/Zarel/Pokemon-Showdown
|
|
[3]: https://github.com/Zarel/Pokemon-Showdown-Dex
|
|
|
|
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][4]**, if you're
|
|
setting up a server.
|
|
|
|
[4]: https://github.com/Zarel/Pokemon-Showdown
|
|
|
|
Browser support
|
|
------------------------------------------------------------------------
|
|
|
|
Pokémon Showdown currently supports, in order of preference:
|
|
|
|
- Chrome
|
|
- Chromium browsers (Edge, Vivaldi, Brave, Opera...)
|
|
- Firefox
|
|
- Safari 5+
|
|
- IE11+ and Edge
|
|
- Chrome/Firefox/Safari for various mobile devices
|
|
- any remotely modern browser
|
|
|
|
Pokémon Showdown is usable, but expect degraded performance and certain features not to work in extremely legacy browsers like:
|
|
|
|
- Safari 4
|
|
- IE9-10
|
|
|
|
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.
|
|
|
|
New client
|
|
------------------------------------------------------------------------
|
|
|
|
Development is proceeding on the client rewrite! The live version is
|
|
available at https://play.pokemonshowdown.com/beta
|
|
|
|
You can contribute to it yourself using the same process as before, just
|
|
use `testclient-beta.html` rather than `testclient.html`.
|
|
|
|
Testing (the old client)
|
|
------------------------------------------------------------------------
|
|
|
|
Client testing requires a build step! Install the latest Node.js (we
|
|
require v20 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 `play.pokemonshowdown.com/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][5], 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
|
|
grab it from:
|
|
|
|
> https://play.pokemonshowdown.com/testclient-key.php
|
|
|
|
Make sure to put it in `config/` and not `play.pokemonshowdown.com/config/`.
|
|
|
|
(This is the only supported method of logging in on the beta testclient.)
|
|
|
|
[5]: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
|
|
|
|
### 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][6].
|
|
|
|
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.
|
|
|
|
[6]: http://www.gnu.org/licenses/agpl-3.0.html
|
|
|
|
**WARNING:** This is **NOT** the same license as Pokémon Showdown's server.
|