mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-05-04 12:36:32 -05:00
172 lines
4.9 KiB
Plaintext
172 lines
4.9 KiB
Plaintext
|
|
|
|
The Showdown protocol.
|
|
|
|
Changes from old protocol:
|
|
|
|
- "ally" renamed "p1", "foe" renamed "p2"
|
|
- Dashes in commands are no longer used, and abbreviations are used more liberally. It's still human-readable _enough_, and saves a tiny bit of bandwidth.
|
|
- "r-" and "residual " were merged into "-"
|
|
|
|
The main thing is that stuff that previously like:
|
|
|
|
stealth-rock-damage foe-Excadrill 3.125
|
|
residual foe-Rotom-W item-heal Leftovers
|
|
r-volatile ally-Seviper leech-seed
|
|
|
|
will look something like:
|
|
|
|
-damage p2-Excadrill 3.125 e:StealthRock
|
|
-heal p2-Rotom-W 6.25 i:Leftovers
|
|
-start p1-Seviper e:LeechSeed
|
|
|
|
|
|
Out-of-game
|
|
------------------------------------------------------------------------
|
|
|
|
p1 [user full]
|
|
p2 [user full]
|
|
Initialize a Side associated with [user], in the corresponding slot.
|
|
|
|
If [side full] is empty, remove the Side in that slot.
|
|
|
|
p3 [user full]
|
|
p4 [user full]
|
|
The same as p1 and p2. Can be ignored by clients that don't support 3-player and 4-player.
|
|
|
|
In 2v2, alliances are p1 and p3 against p2 and p4.
|
|
|
|
chat [user] [message full]
|
|
The log records that [user] says [message full].
|
|
|
|
join [user]
|
|
The log records that [user] joins the room.
|
|
|
|
leave [user]
|
|
The log records that [user] leaves the room.
|
|
|
|
message [message full]
|
|
[message full] is broadcast in the log.
|
|
|
|
rawmessage [rawmessage full]
|
|
[rawmessage full] is broadcast as raw HTML in the log.
|
|
|
|
Initialization
|
|
------------------------------------------------------------------------
|
|
|
|
poke [pokemon]
|
|
Initialize a pokemon with the given ID, if it exists.
|
|
|
|
previewpoke [pokemon]
|
|
Initialize a pokemon for the purposes of Team Preview.
|
|
|
|
Two differences from `poke`: Will initialize a new pokemon even if a pokemon with that ID already exists, and the initialized pokemon will have an unknown name.
|
|
|
|
preview
|
|
Start Team Preview.
|
|
|
|
endpreview
|
|
End Team Preview.
|
|
|
|
|
|
Gameplay (major)
|
|
------------------------------------------------------------------------
|
|
|
|
switch [pokemon]
|
|
Switch in [pokemon].
|
|
|
|
drag [pokemon]
|
|
Drag in [pokemon].
|
|
|
|
replace [pokemon]
|
|
[pokemon] replaces what was in its slot previously. Generally used for Illusion reveals.
|
|
|
|
move [pokemon] [move] [pokemon2] [attr]
|
|
Make [pokemon] use [move] against [pokemon2].
|
|
[attr] describes how to handle the move animation:
|
|
"miss" - the move missed
|
|
"notarget" - the move's target fainted before the start of the move, and no other suitable target was found
|
|
"fail" - the move hit, but failed for some reason
|
|
anything else - the move connected normally
|
|
|
|
faint [pokemon]
|
|
[pokemon] faints.
|
|
|
|
|
|
Health
|
|
------------------------------------------------------------------------
|
|
|
|
-damage [pokemon] [damage] [source]
|
|
[pokemon] receives [damage] damage.
|
|
|
|
-heal [pokemon] [damage] [source]
|
|
[pokemon] is healed by [damage] damage.
|
|
|
|
Effects
|
|
------------------------------------------------------------------------
|
|
|
|
-start [pokemon] [effect] [source]
|
|
The effect [effect] starts on [pokemon].
|
|
|
|
Clients that track effects should keep in mind that some effects may end without a message.
|
|
|
|
-turnstart [pokemon] [effect] [source]
|
|
The 1-turn volatile effect [effect] starts on [pokemon]. No corresponding "-end" message will be given, but the effect will expire at the end of the turn.
|
|
|
|
-end [pokemon] [effect] [source]
|
|
The effect [effect] ends on [pokemon].
|
|
|
|
Generally not used for abilities ("-start" is called on the new ability, which replaces it).
|
|
Generally not used for items ("-take" or "-start" is called, depending on whether the item was replaced or removed).
|
|
|
|
-remove [pokemon] [effect] [source]
|
|
The effect [effect] ends on [pokemon], unnaturally.
|
|
|
|
Aside from animation and message differences, this is identical to using "-end".
|
|
|
|
-activate [pokemon] [effect] [source]
|
|
The effect [effect] activates on [pokemon].
|
|
|
|
This is usually just a message and/or an animation; the results of the effect activation are described later.
|
|
|
|
-use [pokemon] [effect] [source]
|
|
[pokemon] uses the item [effect].
|
|
|
|
Aside from animation and message differences, this is identical to using "-activate" followed by "-end".
|
|
|
|
-take [pokemon] [effect] [source]
|
|
[pokemon]'s item [effect] is taken from it.
|
|
|
|
Identical to -end, but usually comes with a different animation and message.
|
|
|
|
-sidestart [user] [effect] [source]
|
|
The side condition [effect] starts on the side associated with [user].
|
|
|
|
-sideend [user] [effect] [source]
|
|
The side condition [effect] ends on the side associated with [user].
|
|
|
|
-fieldstart [effect] [source]
|
|
The field effect [effect] starts.
|
|
|
|
-fieldstart [effect] [source]
|
|
The field effect [effect] ends.
|
|
|
|
|
|
Boosts
|
|
------------------------------------------------------------------------
|
|
|
|
-boost [pokemon] [boost] [source]
|
|
Boost [pokemon] by [boost].
|
|
|
|
-setboost [pokemon] [boost] [source]
|
|
Set [pokemon]'s boost levels to [boost].
|
|
|
|
-clearboost [pokemon] [source]
|
|
Clear all of [pokemon]'s [boost].
|
|
|
|
-copyboost [pokemon] [pokemon2] [source]
|
|
Replace [pokemon]'s boosts with [pokemon2]'s boosts.
|
|
|
|
-swapboost [pokemon] [pokemon2] [source]
|
|
Swap [pokemon]'s boosts and [pokemon2]'s boosts.
|
|
|