Pokémon battle simulator.
Go to file
2012-05-24 12:52:10 -05:00
config Revise who muted users can PM 2012-04-28 17:28:22 -04:00
logs Convert logging.md to use CRLFs so Notepad can open it. 2012-02-11 02:16:25 -05:00
.gitignore Add usergroups.csv to .gitignore 2012-05-16 21:13:15 -07:00
abilities.js Added a better solution to Cursed Body's crash 2012-05-22 20:32:10 -04:00
aliases.js Wormadam-Ground/Steel => Wormadam-Sandy/Trash 2012-04-09 00:09:18 -04:00
app.js Refactor most utility functions (toId, clampIntRange, etc.) into Sugar extensions of the relevant objects. 2012-05-24 01:41:01 -05:00
chat-commands.js Add !donate and /donate 2012-05-24 00:44:31 -07:00
doc.txt Move braces to the same line as their control statements 2012-04-16 12:54:03 +10:00
formats-data.js Add a few missing released DW Pokemon. 2012-05-21 10:43:02 -05:00
formats.js Glitchmons now has Unreleased banned 2012-05-18 10:14:06 -04:00
items.js Fix healing to be closer to the (highly idiosyncratic) games: 2012-05-23 14:51:38 -05:00
learnsets.js Add Dream World moves to every released Pokemon's learnset. 2012-05-21 10:45:11 -05:00
movedex.js Conversion 2 implementation 2012-05-22 21:51:47 +04:00
old-doc.txt Fixed the fix 2012-04-16 14:29:07 +10:00
package.json Add a new dependency: sugar 2012-05-16 21:56:29 -07:00
pokedex.js Remove duplicate abilities from the pokedex. 2012-05-17 16:35:36 -04:00
Procfile Make Procfile specify Heroku's desired port 2012-05-16 19:31:02 -05:00
README.md Proper four spaces -> single tab 2012-04-16 14:22:08 +10:00
scripts.js Refactor most utility functions (toId, clampIntRange, etc.) into Sugar extensions of the relevant objects. 2012-05-24 01:41:01 -05:00
simulator.js Refactor most utility functions (toId, clampIntRange, etc.) into Sugar extensions of the relevant objects. 2012-05-24 01:41:01 -05:00
statuses.js Refactor most utility functions (toId, clampIntRange, etc.) into Sugar extensions of the relevant objects. 2012-05-24 01:41:01 -05:00
tools.js Refactor most utility functions (toId, clampIntRange, etc.) into Sugar extensions of the relevant objects. 2012-05-24 01:41:01 -05:00
typechart.js Revert "Four spaces -> Single tab" 2012-04-16 14:09:07 +10:00
users.js Change the function declaration format to User.prototype.function. 2012-05-24 12:52:10 -05:00

Showdown

Showdown is a simulator of Pokemon battles. It currently only supports singles battles in 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

You can also specify a port:

node app.js 8000

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. Some browser setups might prevent this sort of connection, however (NoScript, for instance). If you can't get connecting locally to work in Firefox, try Chrome.

The reason your server is visited through play.pokemonshowdown.com is to make it more difficult for servers to see a user's password in any form, by handling logins globally. I realize that you might want your own login server and client hosted outside the pokemonshowdown.com domain, and I'll look more deeply into how to facilitate that when we're closer to leaving beta.

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.