pokemon-showdown/COMMANDLINE.md
Guangcong Luo ddb6010bb9 Support importing teams
We now have a `Teams.import` function. This supports importing teams
in any format, allowing it to be the backbone of a new series of
commandline functions, which support teams in any format.
2021-06-09 22:08:31 -07:00

3.8 KiB

Pokémon Showdown command-line tools

Pokémon Showdown provides a command-line utility pokemon-showdown. You can access its help anytime with pokemon-showdown -h.

Setup

Install Node.js, clone this repository and run ./build from inside it. (Windows users should use node build, and replace all future mentions of ./ in this document with node followed by a space.)

Every time you update the code here (such as with git pull), run ./build again. (If you get errors, try running ./build --force.)

Afterwards, you can use any of the following commands:

Supported commands

Note: Commands that ask for a team want the team in packed team format or JSON format. Teambuilder export format is not supported.

./pokemon-showdown start [--skip-build] [PORT]

Starts a PS server on the specified port

(Defaults to the port setting in config/config.js)
(The port setting in config/config.js defaults to 8000)

Using Pokémon Showdown as a server is documented at:

https://github.com/smogon/pokemon-showdown/blob/master/server/README.md

(You do not need to use ./build when using PS as a server; it will

be run automatically for you unless you use --skip-build.)
./pokemon-showdown generate-team [FORMAT-ID [RANDOM-SEED]]

Generates a random team, and writes it to stdout in packed team format

(Format defaults to "gen7randombattle")
./pokemon-showdown validate-team [FORMAT-ID]

Reads a team in any format from stdin, and validates it

  • If valid: exits with code 0
  • If invalid: writes errors to stderr, exits with code 1
./pokemon-showdown simulate-battle

Simulates a battle, taking input to stdin and writing output to stdout

Using Pokémon Showdown as a command-line simulator is documented at:

https://github.com/smogon/pokemon-showdown/blob/master/sim/README.md
./pokemon-showdown json-team

Reads a team in any format from stdin, writes the unpacked JSON to stdout

./pokemon-showdown pack-team

Reads a team in any format from stdin, writes the packed team to stdout

./pokemon-showdown export-team

Reads a team in any format from stdin, writes the exported (human-readable) team to stdout

./pokemon-showdown help

Displays this reference

Piping

These commands are very unixy (using stdin and stdout), so you can of course pipe them together:

$ ./pokemon-showdown generate-team gen8randombattle | ./pokemon-showdown export-team
Kartana @ Choice Band
Ability: Beast Boost
Level: 74
EVs: 85 HP / 85 Atk / 85 Def / 85 SpA / 85 SpD / 85 Spe
- Smart Strike
- Sacred Sword
- Knock Off
- Leaf Blade

Rotom (Rotom-Heat) @ Heavy-Duty Boots
Ability: Levitate
Level: 82
EVs: 85 HP / 85 Def / 85 SpA / 85 SpD / 85 Spe
IVs: 0 Atk
- Defog
- Will-O-Wisp
- Thunderbolt
- Overheat

Kingler @ Life Orb
Ability: Sheer Force
Level: 84
EVs: 85 HP / 85 Atk / 85 Def / 85 SpA / 85 SpD / 85 Spe
- Liquidation
- X-Scissor
- Superpower
- Rock Slide

Abomasnow @ Light Clay
Ability: Snow Warning
Level: 82
EVs: 85 HP / 85 Atk / 85 Def / 85 SpA / 85 SpD / 85 Spe
- Ice Shard
- Aurora Veil
- Earthquake
- Blizzard

Goodra @ Assault Vest
Ability: Sap Sipper
Level: 82
EVs: 85 HP / 85 Atk / 85 Def / 85 SpA / 85 SpD / 85 Spe
- Earthquake
- Power Whip
- Draco Meteor
- Fire Blast

Raikou @ Choice Specs
Ability: Pressure
Level: 80
EVs: 85 HP / 85 Def / 85 SpA / 85 SpD / 85 Spe
IVs: 0 Atk
- Scald
- Aura Sphere
- Thunderbolt
- Volt Switch
$ ./pokemon-showdown generate-team gen8randombattle | ./pokemon-showdown validate-team gen8ou
Your set for Coalossal is flagged as Gigantamax, but Gigantamaxing is disallowed
(If this was a mistake, disable Gigantamaxing on the set.)
Octillery's ability Moody is banned.