Pokémon battle simulator.
Go to file
2012-03-12 00:29:28 -04:00
config Report joins/leaves as deltas only: 2012-03-02 08:14:51 -05:00
logs Convert logging.md to use CRLFs so Notepad can open it. 2012-02-11 02:16:25 -05:00
.gitignore remove the node_modules folder from the repository and use package.json to define dependencies 2012-02-11 12:59:19 -05:00
abilities.js Color Change should only activate on damaging moves. 2012-03-11 21:41:36 -04:00
app.js More changes to the inactivity timer: 2012-03-08 19:31:28 -05:00
chat-commands.js Update the /hotpatch syntax to be clearer 2012-03-10 21:07:33 -05:00
doc.txt Everything I did before moving to Git 2011-12-22 23:53:05 -05:00
formats.js New legality checker: 2012-03-07 22:02:50 -05:00
items.js Add and implement Power Herb. 2012-03-11 03:07:30 -04:00
learnsets.js Implement CAP learnsets correctly 2012-02-08 21:19:57 -05:00
movedex.js Implement Spit Up and Swallow. 2012-03-12 00:29:28 -04:00
package.json remove the node_modules folder from the repository and use package.json to define dependencies 2012-02-11 12:59:19 -05:00
pokedex.js Commit entirety of pokedex.js 2012-02-16 15:19:18 -05:00
README.md remove the node_modules folder from the repository and use package.json to define dependencies 2012-02-11 12:59:19 -05:00
scripts.js Fix Circle Throw and Dragon Tail to be contact moves, and fix forceSwitch to not trigger when either the user or the target have 0 HP (e.g. someone uses Circle Throw but faints that turn due to Iron Barbs). 2012-03-11 19:23:39 -04:00
simulator.js Trick Room glitch now applies after stat boosts 2012-03-09 13:27:53 -05:00
statuses.js Make self-thawing a move property, instead of being defined by the Freeze status. 2012-03-03 22:26:36 -05:00
tiers.js Two other tiering fixes: Kabutops and Stoutland are in RU and UU, respectively. 2012-03-11 14:34:22 -04:00
tools.js Automatically create move.secondaries in getMove if necessary, to simplify secondary checking. 2012-03-10 20:48:37 -05:00
typechart.js Give Steel a type immunity to the 'poisoned' status 2012-02-24 02:17:32 -05:00
users.js Update bmelts' avatar. 2012-03-10 19:27:54 -05:00

Showdown

Showdown is a simulator of Pokemon battles. It currently only supports Generation 5 (Pokemon Black and Pokemon White).

Installing

Showdown requires Node.js and npm (which is installed by default with Node.js since v0.6.3).

Run npm install to install all necessary dependencies.

Copy config/config-example.js into config/config.js, and edit as you please.

After this, start Node:

cd <location of PS>
node app.js

Visit your server at http://play.pokemonshowdown.com/~~SERVER:PORT/

Replace SERVER with your server domain or IP, and PORT with the server's port. You can leave off :PORT if it is 8000 (the default).

Yes, you can test even if you are behind a NAT without port forwarding: http://play.pokemonshowdown.com/~~localhost/ will connect to your local machine.

Currently, this workflow works for testing Pokemon Showdown and testing your patches before submitting pull requests, but it ends up with somewhat ugly URLs. I'll make it easier to host your own server in the future, when we're closer to leaving beta.

The reason your server is visited through play.pokemonshowdown.com is to ensure that your server itself will not see any user's password in any form.

Browser support

Showdown currently supports, in order of preference:

  • Chrome
  • Firefox 4+
  • Safari
  • Safari for iPhone/iPod/iPad
  • Firefox for Android
  • IE9+

The built-in Android browser is not supported because of socket.io bug 651, but will be when that bug is fixed. In the meantime, Firefox for Android works.

IE8 has a few teambuilder issues that will be worked out when I have time.

I haven't looked into Opera much, but support for that is planned as long as it doesn't turn out to be too difficult.

As for older browsers (Firefox 3.6, IE7), I won't go out of my way to support them, but if there's a simple fix, you can suggest it to me and I'll implement it.