diff --git a/search/search_index.json b/search/search_index.json
index 4f4e8a2..d39b4d4 100755
--- a/search/search_index.json
+++ b/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Welcome to the Poketypes Docs!","text":"
This site contains the project documentation for the poketypes
project, whose goal is to provide clear, consistent, correct data about Pokemon, using the same base data as Pokemon Showdown.
"},{"location":"#table-of-contents","title":"Table Of Contents","text":"This package provides two very useful modules for handling Pokemon data:
dex
: contains Pokemon Enums, Data Classes, and an instantiated information center Gen
showdown
: provides two main classes Message
and BattleMessage
, for processing showdown communications
Based on the needs of your project, you may need one or both of these.
There is also the module protos
, which contains the logic for generating the DexClass
core Enums used in dex
. As an end-user of the typing and data structures in ths package, you don't need to access anything in protos
, however, if you want to have data-structure / enum support for more niche showdown mods, contributions to the protos
class would be greatly appreciated.
"},{"location":"#project-overview","title":"Project Overview","text":"Fully type-hinted, consistently labeled, feature rich information about Pokemon.
Modules exported by this package dex
: Contains Enums and BaseModels for all things pokemon data related. showdown
: Contains models related to showdown message processing. protos
: Contains tools related to protobuf generation.
"},{"location":"about/about/","title":"The Core Team","text":""},{"location":"about/changelog/","title":"Changelog","text":"Changelog will not be 100% accurate until the official 1.0.0 release. Right now each release is a mash-up of various message tweaks, documenation additions, field reworkings, etc..
I'll try to keep a generally accurate log until then mostly for my own benefit, but take it with a grain of salt
"},{"location":"about/changelog/#021","title":"0.2.1","text":""},{"location":"about/changelog/#changed","title":"Changed","text":" - Remaining docstrings have been added
- flake8 linting detects 0 issues!
- Showdown reference pages for general messages and battle messages are updated
"},{"location":"about/changelog/#020","title":"0.2.0","text":""},{"location":"about/changelog/#added","title":"Added","text":" - mkdocs documentation generation
- flake8 linting (with pydoclint and pydocstyle extensions)
- This changelog!
"},{"location":"about/changelog/#changed_1","title":"Changed","text":" - Lots of docstrings added/tweaked following google style guide
"},{"location":"about/changelog/#010","title":"0.1.0","text":""},{"location":"about/changelog/#added_1","title":"Added","text":" dex
, showdown
, and protos
modules with base functionality - project folder structure
- poetry dependency setup
"},{"location":"about/license/","title":"License","text":"MIT License
Copyright (c) 2023 Trevor Wieland
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"},{"location":"dex/","title":"Dex Intro","text":""},{"location":"dex/#5-minute-summary","title":"5-Minute Summary","text":"In the poketypes
package, we include the module dex
, which contains two different types of data structures, so-called DexClass Enums, which contain uniquely enumerated labels for everything from pokemon formes to items to moves and more. The other contained data structure is the PokedexClass BaseModel, which are pydantic BaseModels, meant for holding reference material about a specific corresponding DexClass label.
For example, one specific DexClass is the DexPokemon
, an Enum which maps every distinct pokemon forme (base, cosmetic, temporary, etc.) to a unique integer. So we have things like DexPokemon.POKEMON_MAGIKARP
, which is mapped to the integer 129000. Then, we have the PokedexPokemon
BaseModel, whose purpose would be to store all useful information about each specific corresponding DexPokemon
id, such as the types of the pokemon (each stored as a DexType
), the learnset of the pokemon (stored as DexMove
), etc..
This means that if you are building logic for interpretting a pokemon battle, rather than relying on string comparisons which can both be slow and inconsistent, you can instead use included functions such as cast2dex
, which can take input strings and a relevant DexClass, and return the correct label to use.
These extra layers of labeling may seem cumbersome to work with at first, but since we provide all of the cleaning functions you could need to transform between them, the trade-off for using just a few extra lines of code is 100% guarunteed label consistency and accuracy, with minimal risk of typos.
For instance, you might care about checking if an opponent pokemon can potentially have the ability levitate. Then you could directly use DexAbility.ABILITY_LEVITATE
, checking if this label exists in the corresponding PokedexPokemon.abilities
. Since no string comparisons are happening, there's no risk of accidentally spelling levitate wrong since the type hinting will inform you.
Lastly, there is the actual pokedex instances, which are accessed by calling dex.gen()
. This returns a pydantic object that has a pre-instantiated dictionary for Pokemon, Moves, and Items, which each map from their corresponding DexClass to their corresponding PokedexClass. For example, dex.gen(5).pokemon[DexPokemon.POKEMON_MAGIKARP]
will return the PokedexPokemon
object for Magikarp, will all the details already filled out, as it was in generation 5. If you leave out the gen number, it will automatically use the latest generation available.
"},{"location":"dex/#reference-links","title":"Reference Links","text":"For details on all the different kinds of DexClasses, see the reference page here
For details on all the different kinds of PokedexClasses, see the reference page here
For details on all the different cleaning utilities, see the reference page here
For details on the gen function, see the reference page here
"},{"location":"dex/reference/dex-classes/","title":"The DexClass","text":"poketypes.dex.dexdata_pb2
OR directly import from poketypes.dex
"},{"location":"dex/reference/dex-classes/#basics","title":"Basics","text":"Each DexClass is an auto-generated Enum using google's protobuf library, and the poketypes.protos
module. In order to use these Enums, you do not need to have the library installed, however if you want to generate your own Enums in this way, or modify how the existing ones are generating, you will need to do so.
Follow the steps in the contributing to get your local environment setup if you want to develop changes for these Enums.
"},{"location":"dex/reference/dex-classes/#reference","title":"Reference","text":"Generated protocol buffer code.
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexStat","title":"DexStat
","text":"Represents possible stats
Options:
- 0: Unassigned
- 1: Attack
- 2: Defence
- 3: Special Attack
- 4: Special Defence
- 5: Speed
- 6: Health
- 7: Evasion
- 8: Accuracy
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexGen","title":"DexGen
","text":"Represents supported Generations
Each integer gen is represented as its integer value.
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexMoveCategory","title":"DexMoveCategory
","text":"Represents possible move categories
Options:
- 0: Unassigned
- 1: Physical
- 2: Special
- 3: Status
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexMoveTarget","title":"DexMoveTarget
","text":"Represents possible move targets
Options:
- 0: Unassigned
- 1: Self
- 2: Adjacent Ally
- 3: Adjacent Ally or Self
- 4: All
- 5: All Adjacent
- 6: All Adjacent Foes
- 7: Allies
- 8: Ally Side
- 9: Ally Team
- 10: Any
- 11: Foe Side
- 12: Normal
- 13: Random Normal
- 14: Scripted
- 15: Adjacent Foe
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexType","title":"DexType
","text":"Auto-Generated by protogen.py Contains data for Gen 9
Represents possible Types
Options:
- 1: BUG
- 2: DARK
- 3: DRAGON
- 4: ELECTRIC
- 5: FAIRY
- 6: FIGHTING
- 7: FIRE
- 8: FLYING
- 9: GHOST
- 10: GRASS
- 11: GROUND
- 12: ICE
- 13: NORMAL
- 14: POISON
- 15: PSYCHIC
- 16: ROCK
- 17: STEEL
- 18: WATER
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexNature","title":"DexNature
","text":"Represents possible Natures
Options:
- 1: ADAMANT
- 2: BASHFUL
- 3: BOLD
- 4: BRAVE
- 5: CALM
- 6: CAREFUL
- 7: DOCILE
- 8: GENTLE
- 9: HARDY
- 10: HASTY
- 11: IMPISH
- 12: JOLLY
- 13: LAX
- 14: LONELY
- 15: MILD
- 16: MODEST
- 17: NAIVE
- 18: NAUGHTY
- 19: QUIET
- 20: QUIRKY
- 21: RASH
- 22: RELAXED
- 23: SASSY
- 24: SERIOUS
- 25: TIMID
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexPokemon","title":"DexPokemon
","text":"Represents possible Pokemons
Options:
- 1000: BULBASAUR
- 2000: IVYSAUR
- 3000: VENUSAUR
- 3001: VENUSAURMEGA
- 3002: VENUSAURGMAX
- 4000: CHARMANDER
- 5000: CHARMELEON
- 6000: CHARIZARD
- 6001: CHARIZARDMEGAX
- 6002: CHARIZARDMEGAY
- 6003: CHARIZARDGMAX
- 7000: SQUIRTLE
- 8000: WARTORTLE
- 9000: BLASTOISE
- 9001: BLASTOISEMEGA
- 9002: BLASTOISEGMAX
- 10000: CATERPIE
- 11000: METAPOD
- 12000: BUTTERFREE
- 12001: BUTTERFREEGMAX
- 13000: WEEDLE
- 14000: KAKUNA
- 15000: BEEDRILL
- 15001: BEEDRILLMEGA
- 16000: PIDGEY
- 17000: PIDGEOTTO
- 18000: PIDGEOT
- 18001: PIDGEOTMEGA
- 19000: RATTATA
- 19001: RATTATAALOLA
- 20000: RATICATE
- 20001: RATICATEALOLA
- 20002: RATICATEALOLATOTEM
- 21000: SPEAROW
- 22000: FEAROW
- 23000: EKANS
- 24000: ARBOK
- 25000: PIKACHU
- 25001: PIKACHUCOSPLAY
- 25002: PIKACHUROCKSTAR
- 25003: PIKACHUBELLE
- 25004: PIKACHUPOPSTAR
- 25005: PIKACHUPHD
- 25006: PIKACHULIBRE
- 25007: PIKACHUORIGINAL
- 25008: PIKACHUHOENN
- 25009: PIKACHUSINNOH
- 25010: PIKACHUUNOVA
- 25011: PIKACHUKALOS
- 25012: PIKACHUALOLA
- 25013: PIKACHUPARTNER
- 25014: PIKACHUSTARTER
- 25015: PIKACHUGMAX
- 25016: PIKACHUWORLD
- 26000: RAICHU
- 26001: RAICHUALOLA
- 27000: SANDSHREW
- 27001: SANDSHREWALOLA
- 28000: SANDSLASH
- 28001: SANDSLASHALOLA
- 29000: NIDORANF
- 30000: NIDORINA
- 31000: NIDOQUEEN
- 32000: NIDORANM
- 33000: NIDORINO
- 34000: NIDOKING
- 35000: CLEFAIRY
- 36000: CLEFABLE
- 37000: VULPIX
- 37001: VULPIXALOLA
- 38000: NINETALES
- 38001: NINETALESALOLA
- 39000: JIGGLYPUFF
- 40000: WIGGLYTUFF
- 41000: ZUBAT
- 42000: GOLBAT
- 43000: ODDISH
- 44000: GLOOM
- 45000: VILEPLUME
- 46000: PARAS
- 47000: PARASECT
- 48000: VENONAT
- 49000: VENOMOTH
- 50000: DIGLETT
- 50001: DIGLETTALOLA
- 51000: DUGTRIO
- 51001: DUGTRIOALOLA
- 52000: MEOWTH
- 52001: MEOWTHALOLA
- 52002: MEOWTHGALAR
- 52003: MEOWTHGMAX
- 53000: PERSIAN
- 53001: PERSIANALOLA
- 54000: PSYDUCK
- 55000: GOLDUCK
- 56000: MANKEY
- 57000: PRIMEAPE
- 58000: GROWLITHE
- 58001: GROWLITHEHISUI
- 59000: ARCANINE
- 59001: ARCANINEHISUI
- 60000: POLIWAG
- 61000: POLIWHIRL
- 62000: POLIWRATH
- 63000: ABRA
- 64000: KADABRA
- 65000: ALAKAZAM
- 65001: ALAKAZAMMEGA
- 66000: MACHOP
- 67000: MACHOKE
- 68000: MACHAMP
- 68001: MACHAMPGMAX
- 69000: BELLSPROUT
- 70000: WEEPINBELL
- 71000: VICTREEBEL
- 72000: TENTACOOL
- 73000: TENTACRUEL
- 74000: GEODUDE
- 74001: GEODUDEALOLA
- 75000: GRAVELER
- 75001: GRAVELERALOLA
- 76000: GOLEM
- 76001: GOLEMALOLA
- 77000: PONYTA
- 77001: PONYTAGALAR
- 78000: RAPIDASH
- 78001: RAPIDASHGALAR
- 79000: SLOWPOKE
- 79001: SLOWPOKEGALAR
- 80000: SLOWBRO
- 80001: SLOWBROMEGA
- 80002: SLOWBROGALAR
- 81000: MAGNEMITE
- 82000: MAGNETON
- 83000: FARFETCHD
- 83001: FARFETCHDGALAR
- 84000: DODUO
- 85000: DODRIO
- 86000: SEEL
- 87000: DEWGONG
- 88000: GRIMER
- 88001: GRIMERALOLA
- 89000: MUK
- 89001: MUKALOLA
- 90000: SHELLDER
- 91000: CLOYSTER
- 92000: GASTLY
- 93000: HAUNTER
- 94000: GENGAR
- 94001: GENGARMEGA
- 94002: GENGARGMAX
- 95000: ONIX
- 96000: DROWZEE
- 97000: HYPNO
- 98000: KRABBY
- 99000: KINGLER
- 99001: KINGLERGMAX
- 100000: VOLTORB
- 100001: VOLTORBHISUI
- 101000: ELECTRODE
- 101001: ELECTRODEHISUI
- 102000: EXEGGCUTE
- 103000: EXEGGUTOR
- 103001: EXEGGUTORALOLA
- 104000: CUBONE
- 105000: MAROWAK
- 105001: MAROWAKALOLA
- 105002: MAROWAKALOLATOTEM
- 106000: HITMONLEE
- 107000: HITMONCHAN
- 108000: LICKITUNG
- 109000: KOFFING
- 110000: WEEZING
- 110001: WEEZINGGALAR
- 111000: RHYHORN
- 112000: RHYDON
- 113000: CHANSEY
- 114000: TANGELA
- 115000: KANGASKHAN
- 115001: KANGASKHANMEGA
- 116000: HORSEA
- 117000: SEADRA
- 118000: GOLDEEN
- 119000: SEAKING
- 120000: STARYU
- 121000: STARMIE
- 122000: MRMIME
- 122001: MRMIMEGALAR
- 123000: SCYTHER
- 124000: JYNX
- 125000: ELECTABUZZ
- 126000: MAGMAR
- 127000: PINSIR
- 127001: PINSIRMEGA
- 128000: TAUROS
- 128001: TAUROSPALDEACOMBAT
- 128002: TAUROSPALDEABLAZE
- 128003: TAUROSPALDEAAQUA
- 129000: MAGIKARP
- 130000: GYARADOS
- 130001: GYARADOSMEGA
- 131000: LAPRAS
- 131001: LAPRASGMAX
- 132000: DITTO
- 133000: EEVEE
- 133001: EEVEESTARTER
- 133002: EEVEEGMAX
- 134000: VAPOREON
- 135000: JOLTEON
- 136000: FLAREON
- 137000: PORYGON
- 138000: OMANYTE
- 139000: OMASTAR
- 140000: KABUTO
- 141000: KABUTOPS
- 142000: AERODACTYL
- 142001: AERODACTYLMEGA
- 143000: SNORLAX
- 143001: SNORLAXGMAX
- 144000: ARTICUNO
- 144001: ARTICUNOGALAR
- 145000: ZAPDOS
- 145001: ZAPDOSGALAR
- 146000: MOLTRES
- 146001: MOLTRESGALAR
- 147000: DRATINI
- 148000: DRAGONAIR
- 149000: DRAGONITE
- 150000: MEWTWO
- 150001: MEWTWOMEGAX
- 150002: MEWTWOMEGAY
- 151000: MEW
- 152000: CHIKORITA
- 153000: BAYLEEF
- 154000: MEGANIUM
- 155000: CYNDAQUIL
- 156000: QUILAVA
- 157000: TYPHLOSION
- 157001: TYPHLOSIONHISUI
- 158000: TOTODILE
- 159000: CROCONAW
- 160000: FERALIGATR
- 161000: SENTRET
- 162000: FURRET
- 163000: HOOTHOOT
- 164000: NOCTOWL
- 165000: LEDYBA
- 166000: LEDIAN
- 167000: SPINARAK
- 168000: ARIADOS
- 169000: CROBAT
- 170000: CHINCHOU
- 171000: LANTURN
- 172000: PICHU
- 172001: PICHUSPIKYEARED
- 173000: CLEFFA
- 174000: IGGLYBUFF
- 175000: TOGEPI
- 176000: TOGETIC
- 177000: NATU
- 178000: XATU
- 179000: MAREEP
- 180000: FLAAFFY
- 181000: AMPHAROS
- 181001: AMPHAROSMEGA
- 182000: BELLOSSOM
- 183000: MARILL
- 184000: AZUMARILL
- 185000: SUDOWOODO
- 186000: POLITOED
- 187000: HOPPIP
- 188000: SKIPLOOM
- 189000: JUMPLUFF
- 190000: AIPOM
- 191000: SUNKERN
- 192000: SUNFLORA
- 193000: YANMA
- 194000: WOOPER
- 194001: WOOPERPALDEA
- 195000: QUAGSIRE
- 196000: ESPEON
- 197000: UMBREON
- 198000: MURKROW
- 199000: SLOWKING
- 199001: SLOWKINGGALAR
- 200000: MISDREAVUS
- 201000: UNOWN
- 201001: UNOWNB
- 201002: UNOWNC
- 201003: UNOWND
- 201004: UNOWNE
- 201005: UNOWNF
- 201006: UNOWNG
- 201007: UNOWNH
- 201008: UNOWNI
- 201009: UNOWNJ
- 201010: UNOWNK
- 201011: UNOWNL
- 201012: UNOWNM
- 201013: UNOWNN
- 201014: UNOWNO
- 201015: UNOWNP
- 201016: UNOWNQ
- 201017: UNOWNR
- 201018: UNOWNS
- 201019: UNOWNT
- 201020: UNOWNU
- 201021: UNOWNV
- 201022: UNOWNW
- 201023: UNOWNX
- 201024: UNOWNY
- 201025: UNOWNZ
- 201026: UNOWNEXCLAMATION
- 201027: UNOWNQUESTION
- 202000: WOBBUFFET
- 203000: GIRAFARIG
- 204000: PINECO
- 205000: FORRETRESS
- 206000: DUNSPARCE
- 207000: GLIGAR
- 208000: STEELIX
- 208001: STEELIXMEGA
- 209000: SNUBBULL
- 210000: GRANBULL
- 211000: QWILFISH
- 211001: QWILFISHHISUI
- 212000: SCIZOR
- 212001: SCIZORMEGA
- 213000: SHUCKLE
- 214000: HERACROSS
- 214001: HERACROSSMEGA
- 215000: SNEASEL
- 215001: SNEASELHISUI
- 216000: TEDDIURSA
- 217000: URSARING
- 218000: SLUGMA
- 219000: MAGCARGO
- 220000: SWINUB
- 221000: PILOSWINE
- 222000: CORSOLA
- 222001: CORSOLAGALAR
- 223000: REMORAID
- 224000: OCTILLERY
- 225000: DELIBIRD
- 226000: MANTINE
- 227000: SKARMORY
- 228000: HOUNDOUR
- 229000: HOUNDOOM
- 229001: HOUNDOOMMEGA
- 230000: KINGDRA
- 231000: PHANPY
- 232000: DONPHAN
- 233000: PORYGON2
- 234000: STANTLER
- 235000: SMEARGLE
- 236000: TYROGUE
- 237000: HITMONTOP
- 238000: SMOOCHUM
- 239000: ELEKID
- 240000: MAGBY
- 241000: MILTANK
- 242000: BLISSEY
- 243000: RAIKOU
- 244000: ENTEI
- 245000: SUICUNE
- 246000: LARVITAR
- 247000: PUPITAR
- 248000: TYRANITAR
- 248001: TYRANITARMEGA
- 249000: LUGIA
- 250000: HOOH
- 251000: CELEBI
- 252000: TREECKO
- 253000: GROVYLE
- 254000: SCEPTILE
- 254001: SCEPTILEMEGA
- 255000: TORCHIC
- 256000: COMBUSKEN
- 257000: BLAZIKEN
- 257001: BLAZIKENMEGA
- 258000: MUDKIP
- 259000: MARSHTOMP
- 260000: SWAMPERT
- 260001: SWAMPERTMEGA
- 261000: POOCHYENA
- 262000: MIGHTYENA
- 263000: ZIGZAGOON
- 263001: ZIGZAGOONGALAR
- 264000: LINOONE
- 264001: LINOONEGALAR
- 265000: WURMPLE
- 266000: SILCOON
- 267000: BEAUTIFLY
- 268000: CASCOON
- 269000: DUSTOX
- 270000: LOTAD
- 271000: LOMBRE
- 272000: LUDICOLO
- 273000: SEEDOT
- 274000: NUZLEAF
- 275000: SHIFTRY
- 276000: TAILLOW
- 277000: SWELLOW
- 278000: WINGULL
- 279000: PELIPPER
- 280000: RALTS
- 281000: KIRLIA
- 282000: GARDEVOIR
- 282001: GARDEVOIRMEGA
- 283000: SURSKIT
- 284000: MASQUERAIN
- 285000: SHROOMISH
- 286000: BRELOOM
- 287000: SLAKOTH
- 288000: VIGOROTH
- 289000: SLAKING
- 290000: NINCADA
- 291000: NINJASK
- 292000: SHEDINJA
- 293000: WHISMUR
- 294000: LOUDRED
- 295000: EXPLOUD
- 296000: MAKUHITA
- 297000: HARIYAMA
- 298000: AZURILL
- 299000: NOSEPASS
- 300000: SKITTY
- 301000: DELCATTY
- 302000: SABLEYE
- 302001: SABLEYEMEGA
- 303000: MAWILE
- 303001: MAWILEMEGA
- 304000: ARON
- 305000: LAIRON
- 306000: AGGRON
- 306001: AGGRONMEGA
- 307000: MEDITITE
- 308000: MEDICHAM
- 308001: MEDICHAMMEGA
- 309000: ELECTRIKE
- 310000: MANECTRIC
- 310001: MANECTRICMEGA
- 311000: PLUSLE
- 312000: MINUN
- 313000: VOLBEAT
- 314000: ILLUMISE
- 315000: ROSELIA
- 316000: GULPIN
- 317000: SWALOT
- 318000: CARVANHA
- 319000: SHARPEDO
- 319001: SHARPEDOMEGA
- 320000: WAILMER
- 321000: WAILORD
- 322000: NUMEL
- 323000: CAMERUPT
- 323001: CAMERUPTMEGA
- 324000: TORKOAL
- 325000: SPOINK
- 326000: GRUMPIG
- 327000: SPINDA
- 328000: TRAPINCH
- 329000: VIBRAVA
- 330000: FLYGON
- 331000: CACNEA
- 332000: CACTURNE
- 333000: SWABLU
- 334000: ALTARIA
- 334001: ALTARIAMEGA
- 335000: ZANGOOSE
- 336000: SEVIPER
- 337000: LUNATONE
- 338000: SOLROCK
- 339000: BARBOACH
- 340000: WHISCASH
- 341000: CORPHISH
- 342000: CRAWDAUNT
- 343000: BALTOY
- 344000: CLAYDOL
- 345000: LILEEP
- 346000: CRADILY
- 347000: ANORITH
- 348000: ARMALDO
- 349000: FEEBAS
- 350000: MILOTIC
- 351000: CASTFORM
- 351001: CASTFORMSUNNY
- 351002: CASTFORMRAINY
- 351003: CASTFORMSNOWY
- 352000: KECLEON
- 353000: SHUPPET
- 354000: BANETTE
- 354001: BANETTEMEGA
- 355000: DUSKULL
- 356000: DUSCLOPS
- 357000: TROPIUS
- 358000: CHIMECHO
- 359000: ABSOL
- 359001: ABSOLMEGA
- 360000: WYNAUT
- 361000: SNORUNT
- 362000: GLALIE
- 362001: GLALIEMEGA
- 363000: SPHEAL
- 364000: SEALEO
- 365000: WALREIN
- 366000: CLAMPERL
- 367000: HUNTAIL
- 368000: GOREBYSS
- 369000: RELICANTH
- 370000: LUVDISC
- 371000: BAGON
- 372000: SHELGON
- 373000: SALAMENCE
- 373001: SALAMENCEMEGA
- 374000: BELDUM
- 375000: METANG
- 376000: METAGROSS
- 376001: METAGROSSMEGA
- 377000: REGIROCK
- 378000: REGICE
- 379000: REGISTEEL
- 380000: LATIAS
- 380001: LATIASMEGA
- 381000: LATIOS
- 381001: LATIOSMEGA
- 382000: KYOGRE
- 382001: KYOGREPRIMAL
- 383000: GROUDON
- 383001: GROUDONPRIMAL
- 384000: RAYQUAZA
- 384001: RAYQUAZAMEGA
- 385000: JIRACHI
- 386000: DEOXYS
- 386001: DEOXYSATTACK
- 386002: DEOXYSDEFENSE
- 386003: DEOXYSSPEED
- 387000: TURTWIG
- 388000: GROTLE
- 389000: TORTERRA
- 390000: CHIMCHAR
- 391000: MONFERNO
- 392000: INFERNAPE
- 393000: PIPLUP
- 394000: PRINPLUP
- 395000: EMPOLEON
- 396000: STARLY
- 397000: STARAVIA
- 398000: STARAPTOR
- 399000: BIDOOF
- 400000: BIBAREL
- 401000: KRICKETOT
- 402000: KRICKETUNE
- 403000: SHINX
- 404000: LUXIO
- 405000: LUXRAY
- 406000: BUDEW
- 407000: ROSERADE
- 408000: CRANIDOS
- 409000: RAMPARDOS
- 410000: SHIELDON
- 411000: BASTIODON
- 412000: BURMY
- 412001: BURMYSANDY
- 412002: BURMYTRASH
- 413000: WORMADAM
- 413001: WORMADAMSANDY
- 413002: WORMADAMTRASH
- 414000: MOTHIM
- 415000: COMBEE
- 416000: VESPIQUEN
- 417000: PACHIRISU
- 418000: BUIZEL
- 419000: FLOATZEL
- 420000: CHERUBI
- 421000: CHERRIM
- 421001: CHERRIMSUNSHINE
- 422000: SHELLOS
- 422001: SHELLOSEAST
- 423000: GASTRODON
- 423001: GASTRODONEAST
- 424000: AMBIPOM
- 425000: DRIFLOON
- 426000: DRIFBLIM
- 427000: BUNEARY
- 428000: LOPUNNY
- 428001: LOPUNNYMEGA
- 429000: MISMAGIUS
- 430000: HONCHKROW
- 431000: GLAMEOW
- 432000: PURUGLY
- 433000: CHINGLING
- 434000: STUNKY
- 435000: SKUNTANK
- 436000: BRONZOR
- 437000: BRONZONG
- 438000: BONSLY
- 439000: MIMEJR
- 440000: HAPPINY
- 441000: CHATOT
- 442000: SPIRITOMB
- 443000: GIBLE
- 444000: GABITE
- 445000: GARCHOMP
- 445001: GARCHOMPMEGA
- 446000: MUNCHLAX
- 447000: RIOLU
- 448000: LUCARIO
- 448001: LUCARIOMEGA
- 449000: HIPPOPOTAS
- 450000: HIPPOWDON
- 451000: SKORUPI
- 452000: DRAPION
- 453000: CROAGUNK
- 454000: TOXICROAK
- 455000: CARNIVINE
- 456000: FINNEON
- 457000: LUMINEON
- 458000: MANTYKE
- 459000: SNOVER
- 460000: ABOMASNOW
- 460001: ABOMASNOWMEGA
- 461000: WEAVILE
- 462000: MAGNEZONE
- 463000: LICKILICKY
- 464000: RHYPERIOR
- 465000: TANGROWTH
- 466000: ELECTIVIRE
- 467000: MAGMORTAR
- 468000: TOGEKISS
- 469000: YANMEGA
- 470000: LEAFEON
- 471000: GLACEON
- 472000: GLISCOR
- 473000: MAMOSWINE
- 474000: PORYGONZ
- 475000: GALLADE
- 475001: GALLADEMEGA
- 476000: PROBOPASS
- 477000: DUSKNOIR
- 478000: FROSLASS
- 479000: ROTOM
- 479001: ROTOMHEAT
- 479002: ROTOMWASH
- 479003: ROTOMFROST
- 479004: ROTOMFAN
- 479005: ROTOMMOW
- 480000: UXIE
- 481000: MESPRIT
- 482000: AZELF
- 483000: DIALGA
- 483001: DIALGAORIGIN
- 484000: PALKIA
- 484001: PALKIAORIGIN
- 485000: HEATRAN
- 486000: REGIGIGAS
- 487000: GIRATINA
- 487001: GIRATINAORIGIN
- 488000: CRESSELIA
- 489000: PHIONE
- 490000: MANAPHY
- 491000: DARKRAI
- 492000: SHAYMIN
- 492001: SHAYMINSKY
- 493000: ARCEUS
- 493001: ARCEUSBUG
- 493002: ARCEUSDARK
- 493003: ARCEUSDRAGON
- 493004: ARCEUSELECTRIC
- 493005: ARCEUSFAIRY
- 493006: ARCEUSFIGHTING
- 493007: ARCEUSFIRE
- 493008: ARCEUSFLYING
- 493009: ARCEUSGHOST
- 493010: ARCEUSGRASS
- 493011: ARCEUSGROUND
- 493012: ARCEUSICE
- 493013: ARCEUSPOISON
- 493014: ARCEUSPSYCHIC
- 493015: ARCEUSROCK
- 493016: ARCEUSSTEEL
- 493017: ARCEUSWATER
- 494000: VICTINI
- 495000: SNIVY
- 496000: SERVINE
- 497000: SERPERIOR
- 498000: TEPIG
- 499000: PIGNITE
- 500000: EMBOAR
- 501000: OSHAWOTT
- 502000: DEWOTT
- 503000: SAMUROTT
- 503001: SAMUROTTHISUI
- 504000: PATRAT
- 505000: WATCHOG
- 506000: LILLIPUP
- 507000: HERDIER
- 508000: STOUTLAND
- 509000: PURRLOIN
- 510000: LIEPARD
- 511000: PANSAGE
- 512000: SIMISAGE
- 513000: PANSEAR
- 514000: SIMISEAR
- 515000: PANPOUR
- 516000: SIMIPOUR
- 517000: MUNNA
- 518000: MUSHARNA
- 519000: PIDOVE
- 520000: TRANQUILL
- 521000: UNFEZANT
- 522000: BLITZLE
- 523000: ZEBSTRIKA
- 524000: ROGGENROLA
- 525000: BOLDORE
- 526000: GIGALITH
- 527000: WOOBAT
- 528000: SWOOBAT
- 529000: DRILBUR
- 530000: EXCADRILL
- 531000: AUDINO
- 531001: AUDINOMEGA
- 532000: TIMBURR
- 533000: GURDURR
- 534000: CONKELDURR
- 535000: TYMPOLE
- 536000: PALPITOAD
- 537000: SEISMITOAD
- 538000: THROH
- 539000: SAWK
- 540000: SEWADDLE
- 541000: SWADLOON
- 542000: LEAVANNY
- 543000: VENIPEDE
- 544000: WHIRLIPEDE
- 545000: SCOLIPEDE
- 546000: COTTONEE
- 547000: WHIMSICOTT
- 548000: PETILIL
- 549000: LILLIGANT
- 549001: LILLIGANTHISUI
- 550000: BASCULIN
- 550001: BASCULINBLUESTRIPED
- 550002: BASCULINWHITESTRIPED
- 551000: SANDILE
- 552000: KROKOROK
- 553000: KROOKODILE
- 554000: DARUMAKA
- 554001: DARUMAKAGALAR
- 555000: DARMANITAN
- 555001: DARMANITANZEN
- 555002: DARMANITANGALAR
- 555003: DARMANITANGALARZEN
- 556000: MARACTUS
- 557000: DWEBBLE
- 558000: CRUSTLE
- 559000: SCRAGGY
- 560000: SCRAFTY
- 561000: SIGILYPH
- 562000: YAMASK
- 562001: YAMASKGALAR
- 563000: COFAGRIGUS
- 564000: TIRTOUGA
- 565000: CARRACOSTA
- 566000: ARCHEN
- 567000: ARCHEOPS
- 568000: TRUBBISH
- 569000: GARBODOR
- 569001: GARBODORGMAX
- 570000: ZORUA
- 570001: ZORUAHISUI
- 571000: ZOROARK
- 571001: ZOROARKHISUI
- 572000: MINCCINO
- 573000: CINCCINO
- 574000: GOTHITA
- 575000: GOTHORITA
- 576000: GOTHITELLE
- 577000: SOLOSIS
- 578000: DUOSION
- 579000: REUNICLUS
- 580000: DUCKLETT
- 581000: SWANNA
- 582000: VANILLITE
- 583000: VANILLISH
- 584000: VANILLUXE
- 585000: DEERLING
- 585001: DEERLINGSUMMER
- 585002: DEERLINGAUTUMN
- 585003: DEERLINGWINTER
- 586000: SAWSBUCK
- 586001: SAWSBUCKSUMMER
- 586002: SAWSBUCKAUTUMN
- 586003: SAWSBUCKWINTER
- 587000: EMOLGA
- 588000: KARRABLAST
- 589000: ESCAVALIER
- 590000: FOONGUS
- 591000: AMOONGUSS
- 592000: FRILLISH
- 593000: JELLICENT
- 594000: ALOMOMOLA
- 595000: JOLTIK
- 596000: GALVANTULA
- 597000: FERROSEED
- 598000: FERROTHORN
- 599000: KLINK
- 600000: KLANG
- 601000: KLINKLANG
- 602000: TYNAMO
- 603000: EELEKTRIK
- 604000: EELEKTROSS
- 605000: ELGYEM
- 606000: BEHEEYEM
- 607000: LITWICK
- 608000: LAMPENT
- 609000: CHANDELURE
- 610000: AXEW
- 611000: FRAXURE
- 612000: HAXORUS
- 613000: CUBCHOO
- 614000: BEARTIC
- 615000: CRYOGONAL
- 616000: SHELMET
- 617000: ACCELGOR
- 618000: STUNFISK
- 618001: STUNFISKGALAR
- 619000: MIENFOO
- 620000: MIENSHAO
- 621000: DRUDDIGON
- 622000: GOLETT
- 623000: GOLURK
- 624000: PAWNIARD
- 625000: BISHARP
- 626000: BOUFFALANT
- 627000: RUFFLET
- 628000: BRAVIARY
- 628001: BRAVIARYHISUI
- 629000: VULLABY
- 630000: MANDIBUZZ
- 631000: HEATMOR
- 632000: DURANT
- 633000: DEINO
- 634000: ZWEILOUS
- 635000: HYDREIGON
- 636000: LARVESTA
- 637000: VOLCARONA
- 638000: COBALION
- 639000: TERRAKION
- 640000: VIRIZION
- 641000: TORNADUS
- 641001: TORNADUSTHERIAN
- 642000: THUNDURUS
- 642001: THUNDURUSTHERIAN
- 643000: RESHIRAM
- 644000: ZEKROM
- 645000: LANDORUS
- 645001: LANDORUSTHERIAN
- 646000: KYUREM
- 646001: KYUREMBLACK
- 646002: KYUREMWHITE
- 647000: KELDEO
- 647001: KELDEORESOLUTE
- 648000: MELOETTA
- 648001: MELOETTAPIROUETTE
- 649000: GENESECT
- 649001: GENESECTDOUSE
- 649002: GENESECTSHOCK
- 649003: GENESECTBURN
- 649004: GENESECTCHILL
- 650000: CHESPIN
- 651000: QUILLADIN
- 652000: CHESNAUGHT
- 653000: FENNEKIN
- 654000: BRAIXEN
- 655000: DELPHOX
- 656000: FROAKIE
- 657000: FROGADIER
- 658000: GRENINJA
- 658001: GRENINJABOND
- 658002: GRENINJAASH
- 659000: BUNNELBY
- 660000: DIGGERSBY
- 661000: FLETCHLING
- 662000: FLETCHINDER
- 663000: TALONFLAME
- 664000: SCATTERBUG
- 665000: SPEWPA
- 666000: VIVILLON
- 666001: VIVILLONARCHIPELAGO
- 666002: VIVILLONCONTINENTAL
- 666003: VIVILLONELEGANT
- 666004: VIVILLONGARDEN
- 666005: VIVILLONHIGHPLAINS
- 666006: VIVILLONICYSNOW
- 666007: VIVILLONJUNGLE
- 666008: VIVILLONMARINE
- 666009: VIVILLONMODERN
- 666010: VIVILLONMONSOON
- 666011: VIVILLONOCEAN
- 666012: VIVILLONPOLAR
- 666013: VIVILLONRIVER
- 666014: VIVILLONSANDSTORM
- 666015: VIVILLONSAVANNA
- 666016: VIVILLONSUN
- 666017: VIVILLONTUNDRA
- 666018: VIVILLONFANCY
- 666019: VIVILLONPOKEBALL
- 667000: LITLEO
- 668000: PYROAR
- 669000: FLABEBE
- 669001: FLABEBEBLUE
- 669002: FLABEBEORANGE
- 669003: FLABEBEWHITE
- 669004: FLABEBEYELLOW
- 670000: FLOETTE
- 670001: FLOETTEBLUE
- 670002: FLOETTEORANGE
- 670003: FLOETTEWHITE
- 670004: FLOETTEYELLOW
- 670005: FLOETTEETERNAL
- 671000: FLORGES
- 671001: FLORGESBLUE
- 671002: FLORGESORANGE
- 671003: FLORGESWHITE
- 671004: FLORGESYELLOW
- 672000: SKIDDO
- 673000: GOGOAT
- 674000: PANCHAM
- 675000: PANGORO
- 676000: FURFROU
- 676001: FURFROUDANDY
- 676002: FURFROUDEBUTANTE
- 676003: FURFROUDIAMOND
- 676004: FURFROUHEART
- 676005: FURFROUKABUKI
- 676006: FURFROULAREINE
- 676007: FURFROUMATRON
- 676008: FURFROUPHARAOH
- 676009: FURFROUSTAR
- 677000: ESPURR
- 678000: MEOWSTIC
- 678001: MEOWSTICF
- 679000: HONEDGE
- 680000: DOUBLADE
- 681000: AEGISLASH
- 681001: AEGISLASHBLADE
- 682000: SPRITZEE
- 683000: AROMATISSE
- 684000: SWIRLIX
- 685000: SLURPUFF
- 686000: INKAY
- 687000: MALAMAR
- 688000: BINACLE
- 689000: BARBARACLE
- 690000: SKRELP
- 691000: DRAGALGE
- 692000: CLAUNCHER
- 693000: CLAWITZER
- 694000: HELIOPTILE
- 695000: HELIOLISK
- 696000: TYRUNT
- 697000: TYRANTRUM
- 698000: AMAURA
- 699000: AURORUS
- 700000: SYLVEON
- 701000: HAWLUCHA
- 702000: DEDENNE
- 703000: CARBINK
- 704000: GOOMY
- 705000: SLIGGOO
- 705001: SLIGGOOHISUI
- 706000: GOODRA
- 706001: GOODRAHISUI
- 707000: KLEFKI
- 708000: PHANTUMP
- 709000: TREVENANT
- 710000: PUMPKABOO
- 710001: PUMPKABOOSMALL
- 710002: PUMPKABOOLARGE
- 710003: PUMPKABOOSUPER
- 711000: GOURGEIST
- 711001: GOURGEISTSMALL
- 711002: GOURGEISTLARGE
- 711003: GOURGEISTSUPER
- 712000: BERGMITE
- 713000: AVALUGG
- 713001: AVALUGGHISUI
- 714000: NOIBAT
- 715000: NOIVERN
- 716000: XERNEAS
- 716001: XERNEASNEUTRAL
- 717000: YVELTAL
- 718000: ZYGARDE
- 718001: ZYGARDE10
- 718002: ZYGARDECOMPLETE
- 719000: DIANCIE
- 719001: DIANCIEMEGA
- 720000: HOOPA
- 720001: HOOPAUNBOUND
- 721000: VOLCANION
- 722000: ROWLET
- 723000: DARTRIX
- 724000: DECIDUEYE
- 724001: DECIDUEYEHISUI
- 725000: LITTEN
- 726000: TORRACAT
- 727000: INCINEROAR
- 728000: POPPLIO
- 729000: BRIONNE
- 730000: PRIMARINA
- 731000: PIKIPEK
- 732000: TRUMBEAK
- 733000: TOUCANNON
- 734000: YUNGOOS
- 735000: GUMSHOOS
- 735001: GUMSHOOSTOTEM
- 736000: GRUBBIN
- 737000: CHARJABUG
- 738000: VIKAVOLT
- 738001: VIKAVOLTTOTEM
- 739000: CRABRAWLER
- 740000: CRABOMINABLE
- 741000: ORICORIO
- 741001: ORICORIOPOMPOM
- 741002: ORICORIOPAU
- 741003: ORICORIOSENSU
- 742000: CUTIEFLY
- 743000: RIBOMBEE
- 743001: RIBOMBEETOTEM
- 744000: ROCKRUFF
- 745000: LYCANROC
- 745001: LYCANROCMIDNIGHT
- 745002: LYCANROCDUSK
- 746000: WISHIWASHI
- 746001: WISHIWASHISCHOOL
- 747000: MAREANIE
- 748000: TOXAPEX
- 749000: MUDBRAY
- 750000: MUDSDALE
- 751000: DEWPIDER
- 752000: ARAQUANID
- 752001: ARAQUANIDTOTEM
- 753000: FOMANTIS
- 754000: LURANTIS
- 754001: LURANTISTOTEM
- 755000: MORELULL
- 756000: SHIINOTIC
- 757000: SALANDIT
- 758000: SALAZZLE
- 758001: SALAZZLETOTEM
- 759000: STUFFUL
- 760000: BEWEAR
- 761000: BOUNSWEET
- 762000: STEENEE
- 763000: TSAREENA
- 764000: COMFEY
- 765000: ORANGURU
- 766000: PASSIMIAN
- 767000: WIMPOD
- 768000: GOLISOPOD
- 769000: SANDYGAST
- 770000: PALOSSAND
- 771000: PYUKUMUKU
- 772000: TYPENULL
- 773000: SILVALLY
- 773001: SILVALLYBUG
- 773002: SILVALLYDARK
- 773003: SILVALLYDRAGON
- 773004: SILVALLYELECTRIC
- 773005: SILVALLYFAIRY
- 773006: SILVALLYFIGHTING
- 773007: SILVALLYFIRE
- 773008: SILVALLYFLYING
- 773009: SILVALLYGHOST
- 773010: SILVALLYGRASS
- 773011: SILVALLYGROUND
- 773012: SILVALLYICE
- 773013: SILVALLYPOISON
- 773014: SILVALLYPSYCHIC
- 773015: SILVALLYROCK
- 773016: SILVALLYSTEEL
- 773017: SILVALLYWATER
- 774000: MINIOR
- 774001: MINIORORANGE
- 774002: MINIORYELLOW
- 774003: MINIORGREEN
- 774004: MINIORBLUE
- 774005: MINIORINDIGO
- 774006: MINIORVIOLET
- 774007: MINIORMETEOR
- 775000: KOMALA
- 776000: TURTONATOR
- 777000: TOGEDEMARU
- 777001: TOGEDEMARUTOTEM
- 778000: MIMIKYU
- 778001: MIMIKYUBUSTED
- 778002: MIMIKYUTOTEM
- 778003: MIMIKYUBUSTEDTOTEM
- 779000: BRUXISH
- 780000: DRAMPA
- 781000: DHELMISE
- 782000: JANGMOO
- 783000: HAKAMOO
- 784000: KOMMOO
- 784001: KOMMOOTOTEM
- 785000: TAPUKOKO
- 786000: TAPULELE
- 787000: TAPUBULU
- 788000: TAPUFINI
- 789000: COSMOG
- 790000: COSMOEM
- 791000: SOLGALEO
- 792000: LUNALA
- 793000: NIHILEGO
- 794000: BUZZWOLE
- 795000: PHEROMOSA
- 796000: XURKITREE
- 797000: CELESTEELA
- 798000: KARTANA
- 799000: GUZZLORD
- 800000: NECROZMA
- 800001: NECROZMADUSKMANE
- 800002: NECROZMADAWNWINGS
- 800003: NECROZMAULTRA
- 801000: MAGEARNA
- 801001: MAGEARNAORIGINAL
- 802000: MARSHADOW
- 803000: POIPOLE
- 804000: NAGANADEL
- 805000: STAKATAKA
- 806000: BLACEPHALON
- 807000: ZERAORA
- 808000: MELTAN
- 809000: MELMETAL
- 809001: MELMETALGMAX
- 810000: GROOKEY
- 811000: THWACKEY
- 812000: RILLABOOM
- 812001: RILLABOOMGMAX
- 813000: SCORBUNNY
- 814000: RABOOT
- 815000: CINDERACE
- 815001: CINDERACEGMAX
- 816000: SOBBLE
- 817000: DRIZZILE
- 818000: INTELEON
- 818001: INTELEONGMAX
- 819000: SKWOVET
- 820000: GREEDENT
- 821000: ROOKIDEE
- 822000: CORVISQUIRE
- 823000: CORVIKNIGHT
- 823001: CORVIKNIGHTGMAX
- 824000: BLIPBUG
- 825000: DOTTLER
- 826000: ORBEETLE
- 826001: ORBEETLEGMAX
- 827000: NICKIT
- 828000: THIEVUL
- 829000: GOSSIFLEUR
- 830000: ELDEGOSS
- 831000: WOOLOO
- 832000: DUBWOOL
- 833000: CHEWTLE
- 834000: DREDNAW
- 834001: DREDNAWGMAX
- 835000: YAMPER
- 836000: BOLTUND
- 837000: ROLYCOLY
- 838000: CARKOL
- 839000: COALOSSAL
- 839001: COALOSSALGMAX
- 840000: APPLIN
- 841000: FLAPPLE
- 841001: FLAPPLEGMAX
- 842000: APPLETUN
- 842001: APPLETUNGMAX
- 843000: SILICOBRA
- 844000: SANDACONDA
- 844001: SANDACONDAGMAX
- 845000: CRAMORANT
- 845001: CRAMORANTGULPING
- 845002: CRAMORANTGORGING
- 846000: ARROKUDA
- 847000: BARRASKEWDA
- 848000: TOXEL
- 849000: TOXTRICITY
- 849001: TOXTRICITYLOWKEY
- 849002: TOXTRICITYGMAX
- 849003: TOXTRICITYLOWKEYGMAX
- 850000: SIZZLIPEDE
- 851000: CENTISKORCH
- 851001: CENTISKORCHGMAX
- 852000: CLOBBOPUS
- 853000: GRAPPLOCT
- 854000: SINISTEA
- 854001: SINISTEAANTIQUE
- 855000: POLTEAGEIST
- 855001: POLTEAGEISTANTIQUE
- 856000: HATENNA
- 857000: HATTREM
- 858000: HATTERENE
- 858001: HATTERENEGMAX
- 859000: IMPIDIMP
- 860000: MORGREM
- 861000: GRIMMSNARL
- 861001: GRIMMSNARLGMAX
- 862000: OBSTAGOON
- 863000: PERRSERKER
- 864000: CURSOLA
- 865000: SIRFETCHD
- 866000: MRRIME
- 867000: RUNERIGUS
- 868000: MILCERY
- 869000: ALCREMIE
- 869001: ALCREMIERUBYCREAM
- 869002: ALCREMIEMATCHACREAM
- 869003: ALCREMIEMINTCREAM
- 869004: ALCREMIELEMONCREAM
- 869005: ALCREMIESALTEDCREAM
- 869006: ALCREMIERUBYSWIRL
- 869007: ALCREMIECARAMELSWIRL
- 869008: ALCREMIERAINBOWSWIRL
- 869009: ALCREMIEGMAX
- 870000: FALINKS
- 871000: PINCURCHIN
- 872000: SNOM
- 873000: FROSMOTH
- 874000: STONJOURNER
- 875000: EISCUE
- 875001: EISCUENOICE
- 876000: INDEEDEE
- 876001: INDEEDEEF
- 877000: MORPEKO
- 877001: MORPEKOHANGRY
- 878000: CUFANT
- 879000: COPPERAJAH
- 879001: COPPERAJAHGMAX
- 880000: DRACOZOLT
- 881000: ARCTOZOLT
- 882000: DRACOVISH
- 883000: ARCTOVISH
- 884000: DURALUDON
- 884001: DURALUDONGMAX
- 885000: DREEPY
- 886000: DRAKLOAK
- 887000: DRAGAPULT
- 888000: ZACIAN
- 888001: ZACIANCROWNED
- 889000: ZAMAZENTA
- 889001: ZAMAZENTACROWNED
- 890000: ETERNATUS
- 890001: ETERNATUSETERNAMAX
- 891000: KUBFU
- 892000: URSHIFU
- 892001: URSHIFURAPIDSTRIKE
- 892002: URSHIFUGMAX
- 892003: URSHIFURAPIDSTRIKEGMAX
- 893000: ZARUDE
- 893001: ZARUDEDADA
- 894000: REGIELEKI
- 895000: REGIDRAGO
- 896000: GLASTRIER
- 897000: SPECTRIER
- 898000: CALYREX
- 898001: CALYREXICE
- 898002: CALYREXSHADOW
- 899000: WYRDEER
- 900000: KLEAVOR
- 901000: URSALUNA
- 901001: URSALUNABLOODMOON
- 902000: BASCULEGION
- 902001: BASCULEGIONF
- 903000: SNEASLER
- 904000: OVERQWIL
- 905000: ENAMORUS
- 905001: ENAMORUSTHERIAN
- 906000: SPRIGATITO
- 907000: FLORAGATO
- 908000: MEOWSCARADA
- 909000: FUECOCO
- 910000: CROCALOR
- 911000: SKELEDIRGE
- 912000: QUAXLY
- 913000: QUAXWELL
- 914000: QUAQUAVAL
- 915000: LECHONK
- 916000: OINKOLOGNE
- 916001: OINKOLOGNEF
- 917000: TAROUNTULA
- 918000: SPIDOPS
- 919000: NYMBLE
- 920000: LOKIX
- 921000: PAWMI
- 922000: PAWMO
- 923000: PAWMOT
- 924000: TANDEMAUS
- 925000: MAUSHOLD
- 925001: MAUSHOLDFOUR
- 926000: FIDOUGH
- 927000: DACHSBUN
- 928000: SMOLIV
- 929000: DOLLIV
- 930000: ARBOLIVA
- 931000: SQUAWKABILLY
- 931001: SQUAWKABILLYBLUE
- 931002: SQUAWKABILLYYELLOW
- 931003: SQUAWKABILLYWHITE
- 932000: NACLI
- 933000: NACLSTACK
- 934000: GARGANACL
- 935000: CHARCADET
- 936000: ARMAROUGE
- 937000: CERULEDGE
- 938000: TADBULB
- 939000: BELLIBOLT
- 940000: WATTREL
- 941000: KILOWATTREL
- 942000: MASCHIFF
- 943000: MABOSSTIFF
- 944000: SHROODLE
- 945000: GRAFAIAI
- 946000: BRAMBLIN
- 947000: BRAMBLEGHAST
- 948000: TOEDSCOOL
- 949000: TOEDSCRUEL
- 950000: KLAWF
- 951000: CAPSAKID
- 952000: SCOVILLAIN
- 953000: RELLOR
- 954000: RABSCA
- 955000: FLITTLE
- 956000: ESPATHRA
- 957000: TINKATINK
- 958000: TINKATUFF
- 959000: TINKATON
- 960000: WIGLETT
- 961000: WUGTRIO
- 962000: BOMBIRDIER
- 963000: FINIZEN
- 964000: PALAFIN
- 964001: PALAFINHERO
- 965000: VAROOM
- 966000: REVAVROOM
- 967000: CYCLIZAR
- 968000: ORTHWORM
- 969000: GLIMMET
- 970000: GLIMMORA
- 971000: GREAVARD
- 972000: HOUNDSTONE
- 973000: FLAMIGO
- 974000: CETODDLE
- 975000: CETITAN
- 976000: VELUZA
- 977000: DONDOZO
- 978000: TATSUGIRI
- 978001: TATSUGIRIDROOPY
- 978002: TATSUGIRISTRETCHY
- 979000: ANNIHILAPE
- 980000: CLODSIRE
- 981000: FARIGIRAF
- 982000: DUDUNSPARCE
- 982001: DUDUNSPARCETHREESEGMENT
- 983000: KINGAMBIT
- 984000: GREATTUSK
- 985000: SCREAMTAIL
- 986000: BRUTEBONNET
- 987000: FLUTTERMANE
- 988000: SLITHERWING
- 989000: SANDYSHOCKS
- 990000: IRONTREADS
- 991000: IRONBUNDLE
- 992000: IRONHANDS
- 993000: IRONJUGULIS
- 994000: IRONMOTH
- 995000: IRONTHORNS
- 996000: FRIGIBAX
- 997000: ARCTIBAX
- 998000: BAXCALIBUR
- 999000: GIMMIGHOUL
- 999001: GIMMIGHOULROAMING
- 1000000: GHOLDENGO
- 1001000: WOCHIEN
- 1002000: CHIENPAO
- 1003000: TINGLU
- 1004000: CHIYU
- 1005000: ROARINGMOON
- 1006000: IRONVALIANT
- 1007000: KORAIDON
- 1008000: MIRAIDON
- 1009000: WALKINGWAKE
- 1010000: IRONLEAVES
- 1011000: DIPPLIN
- 1012000: POLTCHAGEIST
- 1012001: POLTCHAGEISTARTISAN
- 1013000: SINISTCHA
- 1013001: SINISTCHAMASTERPIECE
- 1014000: OKIDOGI
- 1015000: MUNKIDORI
- 1016000: FEZANDIPITI
- 1017000: OGERPON
- 1017001: OGERPONWELLSPRING
- 1017002: OGERPONHEARTHFLAME
- 1017003: OGERPONCORNERSTONE
- 1017004: OGERPONTEALTERA
- 1017005: OGERPONWELLSPRINGTERA
- 1017006: OGERPONHEARTHFLAMETERA
- 1017007: OGERPONCORNERSTONETERA
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexMove","title":"DexMove
","text":"Represents possible Moves
Options:
- 1: RECHARGE
- 100: POUND
- 200: KARATECHOP
- 300: DOUBLESLAP
- 400: COMETPUNCH
- 500: MEGAPUNCH
- 600: PAYDAY
- 700: FIREPUNCH
- 800: ICEPUNCH
- 900: THUNDERPUNCH
- 1000: SCRATCH
- 1100: VISEGRIP
- 1200: GUILLOTINE
- 1300: RAZORWIND
- 1400: SWORDSDANCE
- 1500: CUT
- 1600: GUST
- 1700: WINGATTACK
- 1800: WHIRLWIND
- 1900: FLY
- 2000: BIND
- 2100: SLAM
- 2200: VINEWHIP
- 2300: STOMP
- 2400: DOUBLEKICK
- 2500: MEGAKICK
- 2600: JUMPKICK
- 2700: ROLLINGKICK
- 2800: SANDATTACK
- 2900: HEADBUTT
- 3000: HORNATTACK
- 3100: FURYATTACK
- 3200: HORNDRILL
- 3300: TACKLE
- 3400: BODYSLAM
- 3500: WRAP
- 3600: TAKEDOWN
- 3700: THRASH
- 3800: DOUBLEEDGE
- 3900: TAILWHIP
- 4000: POISONSTING
- 4100: TWINEEDLE
- 4200: PINMISSILE
- 4300: LEER
- 4400: BITE
- 4500: GROWL
- 4600: ROAR
- 4700: SING
- 4800: SUPERSONIC
- 4900: SONICBOOM
- 5000: DISABLE
- 5100: ACID
- 5200: EMBER
- 5300: FLAMETHROWER
- 5400: MIST
- 5500: WATERGUN
- 5600: HYDROPUMP
- 5700: SURF
- 5800: ICEBEAM
- 5900: BLIZZARD
- 6000: PSYBEAM
- 6100: BUBBLEBEAM
- 6200: AURORABEAM
- 6300: HYPERBEAM
- 6400: PECK
- 6500: DRILLPECK
- 6600: SUBMISSION
- 6700: LOWKICK
- 6800: COUNTER
- 6900: SEISMICTOSS
- 7000: STRENGTH
- 7100: ABSORB
- 7200: MEGADRAIN
- 7300: LEECHSEED
- 7400: GROWTH
- 7500: RAZORLEAF
- 7600: SOLARBEAM
- 7700: POISONPOWDER
- 7800: STUNSPORE
- 7900: SLEEPPOWDER
- 8000: PETALDANCE
- 8100: STRINGSHOT
- 8200: DRAGONRAGE
- 8300: FIRESPIN
- 8400: THUNDERSHOCK
- 8500: THUNDERBOLT
- 8600: THUNDERWAVE
- 8700: THUNDER
- 8800: ROCKTHROW
- 8900: EARTHQUAKE
- 9000: FISSURE
- 9100: DIG
- 9200: TOXIC
- 9300: CONFUSION
- 9400: PSYCHIC
- 9500: HYPNOSIS
- 9600: MEDITATE
- 9700: AGILITY
- 9800: QUICKATTACK
- 9900: RAGE
- 10000: TELEPORT
- 10100: NIGHTSHADE
- 10200: MIMIC
- 10300: SCREECH
- 10400: DOUBLETEAM
- 10500: RECOVER
- 10600: HARDEN
- 10700: MINIMIZE
- 10800: SMOKESCREEN
- 10900: CONFUSERAY
- 11000: WITHDRAW
- 11100: DEFENSECURL
- 11200: BARRIER
- 11300: LIGHTSCREEN
- 11400: HAZE
- 11500: REFLECT
- 11600: FOCUSENERGY
- 11700: BIDE
- 11800: METRONOME
- 11900: MIRRORMOVE
- 12000: SELFDESTRUCT
- 12100: EGGBOMB
- 12200: LICK
- 12300: SMOG
- 12400: SLUDGE
- 12500: BONECLUB
- 12600: FIREBLAST
- 12700: WATERFALL
- 12800: CLAMP
- 12900: SWIFT
- 13000: SKULLBASH
- 13100: SPIKECANNON
- 13200: CONSTRICT
- 13300: AMNESIA
- 13400: KINESIS
- 13500: SOFTBOILED
- 13600: HIGHJUMPKICK
- 13700: GLARE
- 13800: DREAMEATER
- 13900: POISONGAS
- 14000: BARRAGE
- 14100: LEECHLIFE
- 14200: LOVELYKISS
- 14300: SKYATTACK
- 14400: TRANSFORM
- 14500: BUBBLE
- 14600: DIZZYPUNCH
- 14700: SPORE
- 14800: FLASH
- 14900: PSYWAVE
- 15000: SPLASH
- 15100: ACIDARMOR
- 15200: CRABHAMMER
- 15300: EXPLOSION
- 15400: FURYSWIPES
- 15500: BONEMERANG
- 15600: REST
- 15700: ROCKSLIDE
- 15800: HYPERFANG
- 15900: SHARPEN
- 16000: CONVERSION
- 16100: TRIATTACK
- 16200: SUPERFANG
- 16300: SLASH
- 16400: SUBSTITUTE
- 16500: STRUGGLE
- 16600: SKETCH
- 16700: TRIPLEKICK
- 16800: THIEF
- 16900: SPIDERWEB
- 17000: MINDREADER
- 17100: NIGHTMARE
- 17200: FLAMEWHEEL
- 17300: SNORE
- 17400: CURSE
- 17500: FLAIL
- 17600: CONVERSION2
- 17700: AEROBLAST
- 17800: COTTONSPORE
- 17900: REVERSAL
- 18000: SPITE
- 18100: POWDERSNOW
- 18200: PROTECT
- 18300: MACHPUNCH
- 18400: SCARYFACE
- 18500: FEINTATTACK
- 18600: SWEETKISS
- 18700: BELLYDRUM
- 18800: SLUDGEBOMB
- 18900: MUDSLAP
- 19000: OCTAZOOKA
- 19100: SPIKES
- 19200: ZAPCANNON
- 19300: FORESIGHT
- 19400: DESTINYBOND
- 19500: PERISHSONG
- 19600: ICYWIND
- 19700: DETECT
- 19800: BONERUSH
- 19900: LOCKON
- 20000: OUTRAGE
- 20100: SANDSTORM
- 20200: GIGADRAIN
- 20300: ENDURE
- 20400: CHARM
- 20500: ROLLOUT
- 20600: FALSESWIPE
- 20700: SWAGGER
- 20800: MILKDRINK
- 20900: SPARK
- 21000: FURYCUTTER
- 21100: STEELWING
- 21200: MEANLOOK
- 21300: ATTRACT
- 21400: SLEEPTALK
- 21500: HEALBELL
- 21600: RETURN
- 21601: RETURN102
- 21700: PRESENT
- 21800: FRUSTRATION
- 21900: SAFEGUARD
- 22000: PAINSPLIT
- 22100: SACREDFIRE
- 22200: MAGNITUDE
- 22300: DYNAMICPUNCH
- 22400: MEGAHORN
- 22500: DRAGONBREATH
- 22600: BATONPASS
- 22700: ENCORE
- 22800: PURSUIT
- 22900: RAPIDSPIN
- 23000: SWEETSCENT
- 23100: IRONTAIL
- 23200: METALCLAW
- 23300: VITALTHROW
- 23400: MORNINGSUN
- 23500: SYNTHESIS
- 23600: MOONLIGHT
- 23700: HIDDENPOWER
- 23701: HIDDENPOWER60
- 23702: HIDDENPOWERBUG
- 23703: HIDDENPOWERBUG60
- 23704: HIDDENPOWERDARK
- 23705: HIDDENPOWERDARK60
- 23706: HIDDENPOWERDRAGON
- 23707: HIDDENPOWERDRAGON60
- 23708: HIDDENPOWERELECTRIC
- 23709: HIDDENPOWERELECTRIC60
- 23710: HIDDENPOWERFIGHTING
- 23711: HIDDENPOWERFIGHTING60
- 23712: HIDDENPOWERFIRE
- 23713: HIDDENPOWERFIRE60
- 23714: HIDDENPOWERFLYING
- 23715: HIDDENPOWERFLYING60
- 23716: HIDDENPOWERGHOST
- 23717: HIDDENPOWERGHOST60
- 23718: HIDDENPOWERGRASS
- 23719: HIDDENPOWERGRASS60
- 23720: HIDDENPOWERGROUND
- 23721: HIDDENPOWERGROUND60
- 23722: HIDDENPOWERICE
- 23723: HIDDENPOWERICE60
- 23724: HIDDENPOWERPOISON
- 23725: HIDDENPOWERPOISON60
- 23726: HIDDENPOWERPSYCHIC
- 23727: HIDDENPOWERPSYCHIC60
- 23728: HIDDENPOWERROCK
- 23729: HIDDENPOWERROCK60
- 23730: HIDDENPOWERSTEEL
- 23731: HIDDENPOWERSTEEL60
- 23732: HIDDENPOWERWATER
- 23733: HIDDENPOWERWATER60
- 23800: CROSSCHOP
- 23900: TWISTER
- 24000: RAINDANCE
- 24100: SUNNYDAY
- 24200: CRUNCH
- 24300: MIRRORCOAT
- 24400: PSYCHUP
- 24500: EXTREMESPEED
- 24600: ANCIENTPOWER
- 24700: SHADOWBALL
- 24800: FUTURESIGHT
- 24900: ROCKSMASH
- 25000: WHIRLPOOL
- 25100: BEATUP
- 25200: FAKEOUT
- 25300: UPROAR
- 25400: STOCKPILE
- 25500: SPITUP
- 25600: SWALLOW
- 25700: HEATWAVE
- 25800: HAIL
- 25900: TORMENT
- 26000: FLATTER
- 26100: WILLOWISP
- 26200: MEMENTO
- 26300: FACADE
- 26400: FOCUSPUNCH
- 26500: SMELLINGSALTS
- 26600: FOLLOWME
- 26700: NATUREPOWER
- 26800: CHARGE
- 26900: TAUNT
- 27000: HELPINGHAND
- 27100: TRICK
- 27200: ROLEPLAY
- 27300: WISH
- 27400: ASSIST
- 27500: INGRAIN
- 27600: SUPERPOWER
- 27700: MAGICCOAT
- 27800: RECYCLE
- 27900: REVENGE
- 28000: BRICKBREAK
- 28100: YAWN
- 28200: KNOCKOFF
- 28300: ENDEAVOR
- 28400: ERUPTION
- 28500: SKILLSWAP
- 28600: IMPRISON
- 28700: REFRESH
- 28800: GRUDGE
- 28900: SNATCH
- 29000: SECRETPOWER
- 29100: DIVE
- 29200: ARMTHRUST
- 29300: CAMOUFLAGE
- 29400: TAILGLOW
- 29500: LUSTERPURGE
- 29600: MISTBALL
- 29700: FEATHERDANCE
- 29800: TEETERDANCE
- 29900: BLAZEKICK
- 30000: MUDSPORT
- 30100: ICEBALL
- 30200: NEEDLEARM
- 30300: SLACKOFF
- 30400: HYPERVOICE
- 30500: POISONFANG
- 30600: CRUSHCLAW
- 30700: BLASTBURN
- 30800: HYDROCANNON
- 30900: METEORMASH
- 31000: ASTONISH
- 31100: WEATHERBALL
- 31200: AROMATHERAPY
- 31300: FAKETEARS
- 31400: AIRCUTTER
- 31500: OVERHEAT
- 31600: ODORSLEUTH
- 31700: ROCKTOMB
- 31800: SILVERWIND
- 31900: METALSOUND
- 32000: GRASSWHISTLE
- 32100: TICKLE
- 32200: COSMICPOWER
- 32300: WATERSPOUT
- 32400: SIGNALBEAM
- 32500: SHADOWPUNCH
- 32600: EXTRASENSORY
- 32700: SKYUPPERCUT
- 32800: SANDTOMB
- 32900: SHEERCOLD
- 33000: MUDDYWATER
- 33100: BULLETSEED
- 33200: AERIALACE
- 33300: ICICLESPEAR
- 33400: IRONDEFENSE
- 33500: BLOCK
- 33600: HOWL
- 33700: DRAGONCLAW
- 33800: FRENZYPLANT
- 33900: BULKUP
- 34000: BOUNCE
- 34100: MUDSHOT
- 34200: POISONTAIL
- 34300: COVET
- 34400: VOLTTACKLE
- 34500: MAGICALLEAF
- 34600: WATERSPORT
- 34700: CALMMIND
- 34800: LEAFBLADE
- 34900: DRAGONDANCE
- 35000: ROCKBLAST
- 35100: SHOCKWAVE
- 35200: WATERPULSE
- 35300: DOOMDESIRE
- 35400: PSYCHOBOOST
- 35500: ROOST
- 35600: GRAVITY
- 35700: MIRACLEEYE
- 35800: WAKEUPSLAP
- 35900: HAMMERARM
- 36000: GYROBALL
- 36100: HEALINGWISH
- 36200: BRINE
- 36300: NATURALGIFT
- 36400: FEINT
- 36500: PLUCK
- 36600: TAILWIND
- 36700: ACUPRESSURE
- 36800: METALBURST
- 36900: UTURN
- 37000: CLOSECOMBAT
- 37100: PAYBACK
- 37200: ASSURANCE
- 37300: EMBARGO
- 37400: FLING
- 37500: PSYCHOSHIFT
- 37600: TRUMPCARD
- 37700: HEALBLOCK
- 37800: WRINGOUT
- 37900: POWERTRICK
- 38000: GASTROACID
- 38100: LUCKYCHANT
- 38200: MEFIRST
- 38300: COPYCAT
- 38400: POWERSWAP
- 38500: GUARDSWAP
- 38600: PUNISHMENT
- 38700: LASTRESORT
- 38800: WORRYSEED
- 38900: SUCKERPUNCH
- 39000: TOXICSPIKES
- 39100: HEARTSWAP
- 39200: AQUARING
- 39300: MAGNETRISE
- 39400: FLAREBLITZ
- 39500: FORCEPALM
- 39600: AURASPHERE
- 39700: ROCKPOLISH
- 39800: POISONJAB
- 39900: DARKPULSE
- 40000: NIGHTSLASH
- 40100: AQUATAIL
- 40200: SEEDBOMB
- 40300: AIRSLASH
- 40400: XSCISSOR
- 40500: BUGBUZZ
- 40600: DRAGONPULSE
- 40700: DRAGONRUSH
- 40800: POWERGEM
- 40900: DRAINPUNCH
- 41000: VACUUMWAVE
- 41100: FOCUSBLAST
- 41200: ENERGYBALL
- 41300: BRAVEBIRD
- 41400: EARTHPOWER
- 41500: SWITCHEROO
- 41600: GIGAIMPACT
- 41700: NASTYPLOT
- 41800: BULLETPUNCH
- 41900: AVALANCHE
- 42000: ICESHARD
- 42100: SHADOWCLAW
- 42200: THUNDERFANG
- 42300: ICEFANG
- 42400: FIREFANG
- 42500: SHADOWSNEAK
- 42600: MUDBOMB
- 42700: PSYCHOCUT
- 42800: ZENHEADBUTT
- 42900: MIRRORSHOT
- 43000: FLASHCANNON
- 43100: ROCKCLIMB
- 43200: DEFOG
- 43300: TRICKROOM
- 43400: DRACOMETEOR
- 43500: DISCHARGE
- 43600: LAVAPLUME
- 43700: LEAFSTORM
- 43800: POWERWHIP
- 43900: ROCKWRECKER
- 44000: CROSSPOISON
- 44100: GUNKSHOT
- 44200: IRONHEAD
- 44300: MAGNETBOMB
- 44400: STONEEDGE
- 44500: CAPTIVATE
- 44600: STEALTHROCK
- 44700: GRASSKNOT
- 44800: CHATTER
- 44900: JUDGMENT
- 45000: BUGBITE
- 45100: CHARGEBEAM
- 45200: WOODHAMMER
- 45300: AQUAJET
- 45400: ATTACKORDER
- 45500: DEFENDORDER
- 45600: HEALORDER
- 45700: HEADSMASH
- 45800: DOUBLEHIT
- 45900: ROAROFTIME
- 46000: SPACIALREND
- 46100: LUNARDANCE
- 46200: CRUSHGRIP
- 46300: MAGMASTORM
- 46400: DARKVOID
- 46500: SEEDFLARE
- 46600: OMINOUSWIND
- 46700: SHADOWFORCE
- 46800: HONECLAWS
- 46900: WIDEGUARD
- 47000: GUARDSPLIT
- 47100: POWERSPLIT
- 47200: WONDERROOM
- 47300: PSYSHOCK
- 47400: VENOSHOCK
- 47500: AUTOTOMIZE
- 47600: RAGEPOWDER
- 47700: TELEKINESIS
- 47800: MAGICROOM
- 47900: SMACKDOWN
- 48000: STORMTHROW
- 48100: FLAMEBURST
- 48200: SLUDGEWAVE
- 48300: QUIVERDANCE
- 48400: HEAVYSLAM
- 48500: SYNCHRONOISE
- 48600: ELECTROBALL
- 48700: SOAK
- 48800: FLAMECHARGE
- 48900: COIL
- 49000: LOWSWEEP
- 49100: ACIDSPRAY
- 49200: FOULPLAY
- 49300: SIMPLEBEAM
- 49400: ENTRAINMENT
- 49500: AFTERYOU
- 49600: ROUND
- 49700: ECHOEDVOICE
- 49800: CHIPAWAY
- 49900: CLEARSMOG
- 50000: STOREDPOWER
- 50100: QUICKGUARD
- 50200: ALLYSWITCH
- 50300: SCALD
- 50400: SHELLSMASH
- 50500: HEALPULSE
- 50600: HEX
- 50700: SKYDROP
- 50800: SHIFTGEAR
- 50900: CIRCLETHROW
- 51000: INCINERATE
- 51100: QUASH
- 51200: ACROBATICS
- 51300: REFLECTTYPE
- 51400: RETALIATE
- 51500: FINALGAMBIT
- 51600: BESTOW
- 51700: INFERNO
- 51800: WATERPLEDGE
- 51900: FIREPLEDGE
- 52000: GRASSPLEDGE
- 52100: VOLTSWITCH
- 52200: STRUGGLEBUG
- 52300: BULLDOZE
- 52400: FROSTBREATH
- 52500: DRAGONTAIL
- 52600: WORKUP
- 52700: ELECTROWEB
- 52800: WILDCHARGE
- 52900: DRILLRUN
- 53000: DUALCHOP
- 53100: HEARTSTAMP
- 53200: HORNLEECH
- 53300: SACREDSWORD
- 53400: RAZORSHELL
- 53500: HEATCRASH
- 53600: LEAFTORNADO
- 53700: STEAMROLLER
- 53800: COTTONGUARD
- 53900: NIGHTDAZE
- 54000: PSYSTRIKE
- 54100: TAILSLAP
- 54200: HURRICANE
- 54300: HEADCHARGE
- 54400: GEARGRIND
- 54500: SEARINGSHOT
- 54600: TECHNOBLAST
- 54700: RELICSONG
- 54800: SECRETSWORD
- 54900: GLACIATE
- 55000: BOLTSTRIKE
- 55100: BLUEFLARE
- 55200: FIERYDANCE
- 55300: FREEZESHOCK
- 55400: ICEBURN
- 55500: SNARL
- 55600: ICICLECRASH
- 55700: VCREATE
- 55800: FUSIONFLARE
- 55900: FUSIONBOLT
- 56000: FLYINGPRESS
- 56100: MATBLOCK
- 56200: BELCH
- 56300: ROTOTILLER
- 56400: STICKYWEB
- 56500: FELLSTINGER
- 56600: PHANTOMFORCE
- 56700: TRICKORTREAT
- 56800: NOBLEROAR
- 56900: IONDELUGE
- 57000: PARABOLICCHARGE
- 57100: FORESTSCURSE
- 57200: PETALBLIZZARD
- 57300: FREEZEDRY
- 57400: DISARMINGVOICE
- 57500: PARTINGSHOT
- 57600: TOPSYTURVY
- 57700: DRAININGKISS
- 57800: CRAFTYSHIELD
- 57900: FLOWERSHIELD
- 58000: GRASSYTERRAIN
- 58100: MISTYTERRAIN
- 58200: ELECTRIFY
- 58300: PLAYROUGH
- 58400: FAIRYWIND
- 58500: MOONBLAST
- 58600: BOOMBURST
- 58700: FAIRYLOCK
- 58800: KINGSSHIELD
- 58900: PLAYNICE
- 59000: CONFIDE
- 59100: DIAMONDSTORM
- 59200: STEAMERUPTION
- 59300: HYPERSPACEHOLE
- 59400: WATERSHURIKEN
- 59500: MYSTICALFIRE
- 59600: SPIKYSHIELD
- 59700: AROMATICMIST
- 59800: EERIEIMPULSE
- 59900: VENOMDRENCH
- 60000: POWDER
- 60100: GEOMANCY
- 60200: MAGNETICFLUX
- 60300: HAPPYHOUR
- 60400: ELECTRICTERRAIN
- 60500: DAZZLINGGLEAM
- 60600: CELEBRATE
- 60700: HOLDHANDS
- 60800: BABYDOLLEYES
- 60900: NUZZLE
- 61000: HOLDBACK
- 61100: INFESTATION
- 61200: POWERUPPUNCH
- 61300: OBLIVIONWING
- 61400: THOUSANDARROWS
- 61500: THOUSANDWAVES
- 61600: LANDSWRATH
- 61700: LIGHTOFRUIN
- 61800: ORIGINPULSE
- 61900: PRECIPICEBLADES
- 62000: DRAGONASCENT
- 62100: HYPERSPACEFURY
- 62200: BREAKNECKBLITZ
- 62400: ALLOUTPUMMELING
- 62600: SUPERSONICSKYSTRIKE
- 62800: ACIDDOWNPOUR
- 63000: TECTONICRAGE
- 63200: CONTINENTALCRUSH
- 63400: SAVAGESPINOUT
- 63600: NEVERENDINGNIGHTMARE
- 63800: CORKSCREWCRASH
- 64000: INFERNOOVERDRIVE
- 64200: HYDROVORTEX
- 64400: BLOOMDOOM
- 64600: GIGAVOLTHAVOC
- 64800: SHATTEREDPSYCHE
- 65000: SUBZEROSLAMMER
- 65200: DEVASTATINGDRAKE
- 65400: BLACKHOLEECLIPSE
- 65600: TWINKLETACKLE
- 65800: CATASTROPIKA
- 65900: SHOREUP
- 66000: FIRSTIMPRESSION
- 66100: BANEFULBUNKER
- 66200: SPIRITSHACKLE
- 66300: DARKESTLARIAT
- 66400: SPARKLINGARIA
- 66500: ICEHAMMER
- 66600: FLORALHEALING
- 66700: HIGHHORSEPOWER
- 66800: STRENGTHSAP
- 66900: SOLARBLADE
- 67000: LEAFAGE
- 67100: SPOTLIGHT
- 67200: TOXICTHREAD
- 67300: LASERFOCUS
- 67400: GEARUP
- 67500: THROATCHOP
- 67600: POLLENPUFF
- 67700: ANCHORSHOT
- 67800: PSYCHICTERRAIN
- 67900: LUNGE
- 68000: FIRELASH
- 68100: POWERTRIP
- 68200: BURNUP
- 68300: SPEEDSWAP
- 68400: SMARTSTRIKE
- 68500: PURIFY
- 68600: REVELATIONDANCE
- 68700: COREENFORCER
- 68800: TROPKICK
- 68900: INSTRUCT
- 69000: BEAKBLAST
- 69100: CLANGINGSCALES
- 69200: DRAGONHAMMER
- 69300: BRUTALSWING
- 69400: AURORAVEIL
- 69500: SINISTERARROWRAID
- 69600: MALICIOUSMOONSAULT
- 69700: OCEANICOPERETTA
- 69800: GUARDIANOFALOLA
- 69900: SOULSTEALING7STARSTRIKE
- 70000: STOKEDSPARKSURFER
- 70100: PULVERIZINGPANCAKE
- 70200: EXTREMEEVOBOOST
- 70300: GENESISSUPERNOVA
- 70400: SHELLTRAP
- 70500: FLEURCANNON
- 70600: PSYCHICFANGS
- 70700: STOMPINGTANTRUM
- 70800: SHADOWBONE
- 70900: ACCELEROCK
- 71000: LIQUIDATION
- 71100: PRISMATICLASER
- 71200: SPECTRALTHIEF
- 71300: SUNSTEELSTRIKE
- 71400: MOONGEISTBEAM
- 71500: TEARFULLOOK
- 71600: ZINGZAP
- 71700: NATURESMADNESS
- 71800: MULTIATTACK
- 71900: 10000000VOLTTHUNDERBOLT
- 72000: MINDBLOWN
- 72100: PLASMAFISTS
- 72200: PHOTONGEYSER
- 72300: LIGHTTHATBURNSTHESKY
- 72400: SEARINGSUNRAZESMASH
- 72500: MENACINGMOONRAZEMAELSTROM
- 72600: LETSSNUGGLEFOREVER
- 72700: SPLINTEREDSTORMSHARDS
- 72800: CLANGOROUSSOULBLAZE
- 72900: ZIPPYZAP
- 73000: SPLISHYSPLASH
- 73100: FLOATYFALL
- 73200: PIKAPAPOW
- 73300: BOUNCYBUBBLE
- 73400: BUZZYBUZZ
- 73500: SIZZLYSLIDE
- 73600: GLITZYGLOW
- 73700: BADDYBAD
- 73800: SAPPYSEED
- 73900: FREEZYFROST
- 74000: SPARKLYSWIRL
- 74100: VEEVEEVOLLEY
- 74200: DOUBLEIRONBASH
- 74300: MAXGUARD
- 74400: DYNAMAXCANNON
- 74500: SNIPESHOT
- 74600: JAWLOCK
- 74700: STUFFCHEEKS
- 74800: NORETREAT
- 74900: TARSHOT
- 75000: MAGICPOWDER
- 75100: DRAGONDARTS
- 75200: TEATIME
- 75300: OCTOLOCK
- 75400: BOLTBEAK
- 75500: FISHIOUSREND
- 75600: COURTCHANGE
- 75700: MAXFLARE
- 75800: MAXFLUTTERBY
- 75900: MAXLIGHTNING
- 76000: MAXSTRIKE
- 76100: MAXKNUCKLE
- 76200: MAXPHANTASM
- 76300: MAXHAILSTORM
- 76400: MAXOOZE
- 76500: MAXGEYSER
- 76600: MAXAIRSTREAM
- 76700: MAXSTARFALL
- 76800: MAXWYRMWIND
- 76900: MAXMINDSTORM
- 77000: MAXROCKFALL
- 77100: MAXQUAKE
- 77200: MAXDARKNESS
- 77300: MAXOVERGROWTH
- 77400: MAXSTEELSPIKE
- 77500: CLANGOROUSSOUL
- 77600: BODYPRESS
- 77700: DECORATE
- 77800: DRUMBEATING
- 77900: SNAPTRAP
- 78000: PYROBALL
- 78100: BEHEMOTHBLADE
- 78200: BEHEMOTHBASH
- 78300: AURAWHEEL
- 78400: BREAKINGSWIPE
- 78500: BRANCHPOKE
- 78600: OVERDRIVE
- 78700: APPLEACID
- 78800: GRAVAPPLE
- 78900: SPIRITBREAK
- 79000: STRANGESTEAM
- 79100: LIFEDEW
- 79200: OBSTRUCT
- 79300: FALSESURRENDER
- 79400: METEORASSAULT
- 79500: ETERNABEAM
- 79600: STEELBEAM
- 79700: EXPANDINGFORCE
- 79800: STEELROLLER
- 79900: SCALESHOT
- 80000: METEORBEAM
- 80100: SHELLSIDEARM
- 80200: MISTYEXPLOSION
- 80300: GRASSYGLIDE
- 80400: RISINGVOLTAGE
- 80500: TERRAINPULSE
- 80600: SKITTERSMACK
- 80700: BURNINGJEALOUSY
- 80800: LASHOUT
- 80900: POLTERGEIST
- 81000: CORROSIVEGAS
- 81100: COACHING
- 81200: FLIPTURN
- 81300: TRIPLEAXEL
- 81400: DUALWINGBEAT
- 81500: SCORCHINGSANDS
- 81600: JUNGLEHEALING
- 81700: WICKEDBLOW
- 81800: SURGINGSTRIKES
- 81900: THUNDERCAGE
- 82000: DRAGONENERGY
- 82100: FREEZINGGLARE
- 82200: FIERYWRATH
- 82300: THUNDEROUSKICK
- 82400: GLACIALLANCE
- 82500: ASTRALBARRAGE
- 82600: EERIESPELL
- 82700: DIRECLAW
- 82800: PSYSHIELDBASH
- 82900: POWERSHIFT
- 83000: STONEAXE
- 83100: SPRINGTIDESTORM
- 83200: MYSTICALPOWER
- 83300: RAGINGFURY
- 83400: WAVECRASH
- 83500: CHLOROBLAST
- 83600: MOUNTAINGALE
- 83700: VICTORYDANCE
- 83800: HEADLONGRUSH
- 83900: BARBBARRAGE
- 84000: ESPERWING
- 84100: BITTERMALICE
- 84200: SHELTER
- 84300: TRIPLEARROWS
- 84400: INFERNALPARADE
- 84500: CEASELESSEDGE
- 84600: BLEAKWINDSTORM
- 84700: WILDBOLTSTORM
- 84800: SANDSEARSTORM
- 84900: LUNARBLESSING
- 85000: TAKEHEART
- 85100: TERABLAST
- 85200: SILKTRAP
- 85300: AXEKICK
- 85400: LASTRESPECTS
- 85500: LUMINACRASH
- 85600: ORDERUP
- 85700: JETPUNCH
- 85800: SPICYEXTRACT
- 85900: SPINOUT
- 86000: POPULATIONBOMB
- 86100: ICESPINNER
- 86200: GLAIVERUSH
- 86300: REVIVALBLESSING
- 86400: SALTCURE
- 86500: TRIPLEDIVE
- 86600: MORTALSPIN
- 86700: DOODLE
- 86800: FILLETAWAY
- 86900: KOWTOWCLEAVE
- 87000: FLOWERTRICK
- 87100: TORCHSONG
- 87200: AQUASTEP
- 87300: RAGINGBULL
- 87400: MAKEITRAIN
- 87500: PSYBLADE
- 87600: HYDROSTEAM
- 87700: RUINATION
- 87800: COLLISIONCOURSE
- 87900: ELECTRODRIFT
- 88000: SHEDTAIL
- 88100: CHILLYRECEPTION
- 88200: TIDYUP
- 88300: SNOWSCAPE
- 88400: POUNCE
- 88500: TRAILBLAZE
- 88600: CHILLINGWATER
- 88700: HYPERDRILL
- 88800: TWINBEAM
- 88900: RAGEFIST
- 89000: ARMORCANNON
- 89100: BITTERBLADE
- 89200: DOUBLESHOCK
- 89300: GIGATONHAMMER
- 89400: COMEUPPANCE
- 89500: AQUACUTTER
- 89600: BLAZINGTORQUE
- 89700: WICKEDTORQUE
- 89800: NOXIOUSTORQUE
- 89900: COMBATTORQUE
- 90000: MAGICALTORQUE
- 90100: BLOODMOON
- 90200: MATCHAGOTCHA
- 90300: SYRUPBOMB
- 90400: IVYCUDGEL
- 100000: GMAXBEFUDDLE
- 100001: GMAXCANNONADE
- 100002: GMAXCENTIFERNO
- 100003: GMAXCHISTRIKE
- 100004: GMAXCUDDLE
- 100005: GMAXDEPLETION
- 100006: GMAXDRUMSOLO
- 100007: GMAXFINALE
- 100008: GMAXFIREBALL
- 100009: GMAXFOAMBURST
- 100010: GMAXGOLDRUSH
- 100011: GMAXGRAVITAS
- 100012: GMAXHYDROSNIPE
- 100013: GMAXMALODOR
- 100014: GMAXMELTDOWN
- 100015: GMAXONEBLOW
- 100016: GMAXRAPIDFLOW
- 100017: GMAXREPLENISH
- 100018: GMAXRESONANCE
- 100019: GMAXSANDBLAST
- 100020: GMAXSMITE
- 100021: GMAXSNOOZE
- 100022: GMAXSTEELSURGE
- 100023: GMAXSTONESURGE
- 100024: GMAXSTUNSHOCK
- 100025: GMAXSWEETNESS
- 100026: GMAXTARTNESS
- 100027: GMAXTERROR
- 100028: GMAXVINELASH
- 100029: GMAXVOLCALITH
- 100030: GMAXVOLTCRASH
- 100031: GMAXWILDFIRE
- 100032: GMAXWINDRAGE
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexItem","title":"DexItem
","text":"Represents possible Items
Options:
- 2: MASTERBALL
- 3: ULTRABALL
- 4: GREATBALL
- 5: POKEBALL
- 6: SAFARIBALL
- 7: NETBALL
- 8: DIVEBALL
- 9: NESTBALL
- 10: REPEATBALL
- 11: TIMERBALL
- 12: LUXURYBALL
- 13: PREMIERBALL
- 14: DUSKBALL
- 15: HEALBALL
- 16: QUICKBALL
- 17: CHERISHBALL
- 44: BERRYJUICE
- 81: SUNSTONE
- 82: MOONSTONE
- 83: FIRESTONE
- 84: THUNDERSTONE
- 85: WATERSTONE
- 86: LEAFSTONE
- 100: ROOTFOSSIL
- 101: CLAWFOSSIL
- 102: HELIXFOSSIL
- 103: DOMEFOSSIL
- 104: OLDAMBER
- 105: ARMORFOSSIL
- 106: SKULLFOSSIL
- 107: RAREBONE
- 108: SHINYSTONE
- 109: DUSKSTONE
- 110: DAWNSTONE
- 111: OVALSTONE
- 113: GRISEOUSORB
- 117: DOUSEDRIVE
- 118: SHOCKDRIVE
- 119: BURNDRIVE
- 120: CHILLDRIVE
- 136: ADAMANTORB
- 137: LUSTROUSORB
- 138: MAIL
- 150: CHERIBERRY
- 150: PRZCUREBERRY
- 151: CHESTOBERRY
- 151: MINTBERRY
- 152: PECHABERRY
- 152: PSNCUREBERRY
- 153: RAWSTBERRY
- 153: ICEBERRY
- 154: ASPEARBERRY
- 154: BURNTBERRY
- 155: LEPPABERRY
- 155: MYSTERYBERRY
- 156: ORANBERRY
- 156: BERRY
- 157: PERSIMBERRY
- 157: BITTERBERRY
- 158: LUMBERRY
- 158: MIRACLEBERRY
- 159: SITRUSBERRY
- 159: GOLDBERRY
- 160: FIGYBERRY
- 161: WIKIBERRY
- 162: MAGOBERRY
- 163: AGUAVBERRY
- 164: IAPAPABERRY
- 165: RAZZBERRY
- 166: BLUKBERRY
- 167: NANABBERRY
- 168: WEPEARBERRY
- 169: PINAPBERRY
- 170: POMEGBERRY
- 171: KELPSYBERRY
- 172: QUALOTBERRY
- 173: HONDEWBERRY
- 174: GREPABERRY
- 175: TAMATOBERRY
- 176: CORNNBERRY
- 177: MAGOSTBERRY
- 178: RABUTABERRY
- 179: NOMELBERRY
- 180: SPELONBERRY
- 181: PAMTREBERRY
- 182: WATMELBERRY
- 183: DURINBERRY
- 184: BELUEBERRY
- 185: OCCABERRY
- 186: PASSHOBERRY
- 187: WACANBERRY
- 188: RINDOBERRY
- 189: YACHEBERRY
- 190: CHOPLEBERRY
- 191: KEBIABERRY
- 192: SHUCABERRY
- 193: COBABERRY
- 194: PAYAPABERRY
- 195: TANGABERRY
- 196: CHARTIBERRY
- 197: KASIBBERRY
- 198: HABANBERRY
- 199: COLBURBERRY
- 200: BABIRIBERRY
- 201: CHILANBERRY
- 202: LIECHIBERRY
- 203: GANLONBERRY
- 204: SALACBERRY
- 205: PETAYABERRY
- 206: APICOTBERRY
- 207: LANSATBERRY
- 208: STARFBERRY
- 209: ENIGMABERRY
- 210: MICLEBERRY
- 211: CUSTAPBERRY
- 212: JABOCABERRY
- 213: ROWAPBERRY
- 214: BRIGHTPOWDER
- 215: WHITEHERB
- 216: MACHOBRACE
- 218: QUICKCLAW
- 220: MENTALHERB
- 221: CHOICEBAND
- 222: KINGSROCK
- 223: SILVERPOWDER
- 226: SOULDEW
- 227: DEEPSEATOOTH
- 228: DEEPSEASCALE
- 231: FOCUSBAND
- 233: SCOPELENS
- 234: METALCOAT
- 235: LEFTOVERS
- 236: DRAGONSCALE
- 237: LIGHTBALL
- 238: SOFTSAND
- 239: HARDSTONE
- 240: MIRACLESEED
- 241: BLACKGLASSES
- 242: BLACKBELT
- 243: MAGNET
- 244: MYSTICWATER
- 245: SHARPBEAK
- 246: POISONBARB
- 247: NEVERMELTICE
- 248: SPELLTAG
- 249: TWISTEDSPOON
- 250: CHARCOAL
- 251: DRAGONFANG
- 252: SILKSCARF
- 252: PINKBOW
- 252: POLKADOTBOW
- 253: UPGRADE
- 254: SHELLBELL
- 255: SEAINCENSE
- 256: LAXINCENSE
- 257: LUCKYPUNCH
- 258: METALPOWDER
- 259: THICKCLUB
- 260: LEEK
- 260: STICK
- 266: WIDELENS
- 267: MUSCLEBAND
- 268: WISEGLASSES
- 269: EXPERTBELT
- 270: LIGHTCLAY
- 271: LIFEORB
- 272: POWERHERB
- 273: TOXICORB
- 274: FLAMEORB
- 275: QUICKPOWDER
- 276: FOCUSSASH
- 277: ZOOMLENS
- 278: METRONOME
- 279: IRONBALL
- 280: LAGGINGTAIL
- 281: DESTINYKNOT
- 282: BLACKSLUDGE
- 283: ICYROCK
- 284: SMOOTHROCK
- 285: HEATROCK
- 286: DAMPROCK
- 287: GRIPCLAW
- 288: CHOICESCARF
- 289: STICKYBARB
- 290: POWERBRACER
- 291: POWERBELT
- 292: POWERLENS
- 293: POWERBAND
- 294: POWERANKLET
- 295: POWERWEIGHT
- 296: SHEDSHELL
- 297: BIGROOT
- 298: CHOICESPECS
- 299: FLAMEPLATE
- 300: SPLASHPLATE
- 301: ZAPPLATE
- 302: MEADOWPLATE
- 303: ICICLEPLATE
- 304: FISTPLATE
- 305: TOXICPLATE
- 306: EARTHPLATE
- 307: SKYPLATE
- 308: MINDPLATE
- 309: INSECTPLATE
- 310: STONEPLATE
- 311: SPOOKYPLATE
- 312: DRACOPLATE
- 313: DREADPLATE
- 314: IRONPLATE
- 315: ODDINCENSE
- 316: ROCKINCENSE
- 317: FULLINCENSE
- 318: WAVEINCENSE
- 319: ROSEINCENSE
- 322: PROTECTOR
- 323: ELECTIRIZER
- 324: MAGMARIZER
- 325: DUBIOUSDISC
- 326: REAPERCLOTH
- 327: RAZORCLAW
- 328: RAZORFANG
- 493: FASTBALL
- 494: LEVELBALL
- 495: LUREBALL
- 496: HEAVYBALL
- 497: LOVEBALL
- 498: FRIENDBALL
- 499: MOONBALL
- 500: SPORTBALL
- 501: PARKBALL
- 535: REDORB
- 536: BLUEORB
- 538: PRISMSCALE
- 539: EVIOLITE
- 540: FLOATSTONE
- 541: ROCKYHELMET
- 542: AIRBALLOON
- 543: REDCARD
- 544: RINGTARGET
- 545: BINDINGBAND
- 546: ABSORBBULB
- 547: CELLBATTERY
- 548: EJECTBUTTON
- 549: FIREGEM
- 550: WATERGEM
- 551: ELECTRICGEM
- 552: GRASSGEM
- 553: ICEGEM
- 554: FIGHTINGGEM
- 555: POISONGEM
- 556: GROUNDGEM
- 557: FLYINGGEM
- 558: PSYCHICGEM
- 559: BUGGEM
- 560: ROCKGEM
- 561: GHOSTGEM
- 562: DRAGONGEM
- 563: DARKGEM
- 564: STEELGEM
- 565: NORMALGEM
- 573: COVERFOSSIL
- 574: PLUMEFOSSIL
- 577: DREAMBALL
- 582: BIGNUGGET
- 640: WEAKNESSPOLICY
- 641: ASSAULTVEST
- 645: PIXIEPLATE
- 647: WHIPPEDDREAM
- 648: SACHET
- 649: LUMINOUSMOSS
- 650: SNOWBALL
- 651: SAFETYGOGGLES
- 657: GENGARITE
- 658: GARDEVOIRITE
- 659: AMPHAROSITE
- 660: VENUSAURITE
- 661: CHARIZARDITEX
- 662: BLASTOISINITE
- 663: MEWTWONITEX
- 664: MEWTWONITEY
- 665: BLAZIKENITE
- 666: MEDICHAMITE
- 667: HOUNDOOMINITE
- 668: AGGRONITE
- 669: BANETTITE
- 670: TYRANITARITE
- 671: SCIZORITE
- 672: PINSIRITE
- 673: AERODACTYLITE
- 674: LUCARIONITE
- 675: ABOMASITE
- 676: KANGASKHANITE
- 677: GYARADOSITE
- 678: ABSOLITE
- 679: CHARIZARDITEY
- 680: ALAKAZITE
- 681: HERACRONITE
- 682: MAWILITE
- 683: MANECTITE
- 684: GARCHOMPITE
- 685: LATIASITE
- 686: LATIOSITE
- 687: ROSELIBERRY
- 688: KEEBERRY
- 689: MARANGABERRY
- 711: JAWFOSSIL
- 712: SAILFOSSIL
- 716: FAIRYGEM
- 753: SWAMPERTITE
- 754: SCEPTILITE
- 755: SABLENITE
- 756: ALTARIANITE
- 757: GALLADITE
- 758: AUDINITE
- 759: METAGROSSITE
- 760: SHARPEDONITE
- 761: SLOWBRONITE
- 762: STEELIXITE
- 763: PIDGEOTITE
- 764: GLALITITE
- 765: DIANCITE
- 768: CAMERUPTITE
- 769: LOPUNNITE
- 770: SALAMENCITE
- 771: BEEDRILLITE
- 777: NORMALIUMZ
- 778: FIRIUMZ
- 779: WATERIUMZ
- 780: ELECTRIUMZ
- 781: GRASSIUMZ
- 782: ICIUMZ
- 783: FIGHTINIUMZ
- 784: POISONIUMZ
- 785: GROUNDIUMZ
- 786: FLYINIUMZ
- 787: PSYCHIUMZ
- 788: BUGINIUMZ
- 789: ROCKIUMZ
- 790: GHOSTIUMZ
- 791: DRAGONIUMZ
- 792: DARKINIUMZ
- 793: STEELIUMZ
- 794: FAIRIUMZ
- 795: PIKANIUMZ
- 796: BOTTLECAP
- 797: GOLDBOTTLECAP
- 799: DECIDIUMZ
- 800: INCINIUMZ
- 801: PRIMARIUMZ
- 802: TAPUNIUMZ
- 803: MARSHADIUMZ
- 804: ALORAICHIUMZ
- 805: SNORLIUMZ
- 806: EEVIUMZ
- 807: MEWNIUMZ
- 837: PIKASHUNIUMZ
- 847: ADRENALINEORB
- 850: ICESTONE
- 852: BEASTBALL
- 880: TERRAINEXTENDER
- 881: PROTECTIVEPADS
- 882: ELECTRICSEED
- 883: PSYCHICSEED
- 884: MISTYSEED
- 885: GRASSYSEED
- 905: FIGHTINGMEMORY
- 906: FLYINGMEMORY
- 907: POISONMEMORY
- 908: GROUNDMEMORY
- 909: ROCKMEMORY
- 910: BUGMEMORY
- 911: GHOSTMEMORY
- 912: STEELMEMORY
- 913: FIREMEMORY
- 914: WATERMEMORY
- 915: GRASSMEMORY
- 916: ELECTRICMEMORY
- 917: PSYCHICMEMORY
- 918: ICEMEMORY
- 919: DRAGONMEMORY
- 920: DARKMEMORY
- 921: FAIRYMEMORY
- 922: SOLGANIUMZ
- 923: LUNALIUMZ
- 924: ULTRANECROZIUMZ
- 925: MIMIKIUMZ
- 926: LYCANIUMZ
- 927: KOMMONIUMZ
- 1104: RUSTEDSWORD
- 1105: RUSTEDSHIELD
- 1106: FOSSILIZEDBIRD
- 1107: FOSSILIZEDFISH
- 1108: FOSSILIZEDDRAKE
- 1109: FOSSILIZEDDINO
- 1110: STRAWBERRYSWEET
- 1111: LOVESWEET
- 1112: BERRYSWEET
- 1113: CLOVERSWEET
- 1114: FLOWERSWEET
- 1115: STARSWEET
- 1116: RIBBONSWEET
- 1117: SWEETAPPLE
- 1118: TARTAPPLE
- 1119: THROATSPRAY
- 1120: EJECTPACK
- 1121: HEAVYDUTYBOOTS
- 1122: BLUNDERPOLICY
- 1123: ROOMSERVICE
- 1124: UTILITYUMBRELLA
- 1131: TR00
- 1132: TR01
- 1133: TR02
- 1134: TR03
- 1135: TR04
- 1136: TR05
- 1137: TR06
- 1138: TR07
- 1139: TR08
- 1140: TR09
- 1141: TR10
- 1142: TR11
- 1143: TR12
- 1144: TR13
- 1145: TR14
- 1146: TR15
- 1147: TR16
- 1148: TR17
- 1149: TR18
- 1150: TR19
- 1151: TR20
- 1152: TR21
- 1153: TR22
- 1154: TR23
- 1155: TR24
- 1156: TR25
- 1157: TR26
- 1158: TR27
- 1159: TR28
- 1160: TR29
- 1161: TR30
- 1162: TR31
- 1163: TR32
- 1164: TR33
- 1165: TR34
- 1166: TR35
- 1167: TR36
- 1168: TR37
- 1169: TR38
- 1170: TR39
- 1171: TR40
- 1172: TR41
- 1173: TR42
- 1174: TR43
- 1175: TR44
- 1176: TR45
- 1177: TR46
- 1178: TR47
- 1179: TR48
- 1180: TR49
- 1181: TR50
- 1182: TR51
- 1183: TR52
- 1184: TR53
- 1185: TR54
- 1186: TR55
- 1187: TR56
- 1188: TR57
- 1189: TR58
- 1190: TR59
- 1191: TR60
- 1192: TR61
- 1193: TR62
- 1194: TR63
- 1195: TR64
- 1196: TR65
- 1197: TR66
- 1198: TR67
- 1199: TR68
- 1200: TR69
- 1201: TR70
- 1202: TR71
- 1203: TR72
- 1204: TR73
- 1205: TR74
- 1206: TR75
- 1207: TR76
- 1208: TR77
- 1209: TR78
- 1210: TR79
- 1211: TR80
- 1212: TR81
- 1213: TR82
- 1214: TR83
- 1215: TR84
- 1216: TR85
- 1217: TR86
- 1218: TR87
- 1219: TR88
- 1220: TR89
- 1221: TR90
- 1222: TR91
- 1223: TR92
- 1224: TR93
- 1225: TR94
- 1226: TR95
- 1227: TR96
- 1228: TR97
- 1229: TR98
- 1230: TR99
- 1254: CRACKEDPOT
- 1255: CHIPPEDPOT
- 1583: GALARICACUFF
- 1593: GALARICAWREATH
- 1778: ADAMANTCRYSTAL
- 1779: LUSTROUSGLOBE
- 1780: GRISEOUSCORE
- 1786: STRANGEBALL
- 1862: MALICIOUSARMOR
- 1881: BOOSTERENERGY
- 1882: ABILITYSHIELD
- 1883: CLEARAMULET
- 1884: MIRRORHERB
- 1885: PUNCHINGGLOVE
- 1886: COVERTCLOAK
- 1887: LOADEDDICE
- 2345: AUSPICIOUSARMOR
- 2402: FAIRYFEATHER
- 2403: SYRUPYAPPLE
- 2404: UNREMARKABLETEACUP
- 2405: MASTERPIECETEACUP
- 2407: CORNERSTONEMASK
- 2408: WELLSPRINGMASK
- 2409: HEARTHFLAMEMASK
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexStatus","title":"DexStatus
","text":"Represents possible Statuss
Options:
- 1: FNT
- 2: BRN
- 3: PAR
- 4: SLP
- 5: FRZ
- 6: PSN
- 7: TOX
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexWeather","title":"DexWeather
","text":"Represents possible Weathers
Options:
- 1: NONE
- 2: RAINDANCE
- 3: PRIMORDIALSEA
- 4: SUNNYDAY
- 5: DESOLATELAND
- 6: SANDSTORM
- 7: HAIL
- 8: SNOW
- 9: DELTASTREAM
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexCondition","title":"DexCondition
","text":"Represents possible Conditions
Options:
- 1: CONFUSION
- 2: FLINCH
- 3: TRAPPED
- 4: TRAPPER
- 5: PARTIALLYTRAPPED
- 6: LOCKEDMOVE
- 7: TWOTURNMOVE
- 8: CHOICELOCK
- 9: MUSTRECHARGE
- 10: FUTUREMOVE
- 11: HEALREPLACEMENT
- 12: STALL
- 13: GEM
- 14: DYNAMAX
- 15: COMMANDED
- 16: COMMANDING
- 17: ARCEUS
- 18: SILVALLY
- 19: ROLLOUTSTORAGE
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexAbility","title":"DexAbility
","text":"Represents possible Abilitys
Options:
- 100: NOABILITY
- 200: STENCH
- 300: DRIZZLE
- 400: SPEEDBOOST
- 500: BATTLEARMOR
- 600: STURDY
- 700: DAMP
- 800: LIMBER
- 900: SANDVEIL
- 1000: STATIC
- 1100: VOLTABSORB
- 1200: WATERABSORB
- 1300: OBLIVIOUS
- 1400: CLOUDNINE
- 1500: COMPOUNDEYES
- 1600: INSOMNIA
- 1700: COLORCHANGE
- 1800: IMMUNITY
- 1900: FLASHFIRE
- 2000: SHIELDDUST
- 2100: OWNTEMPO
- 2200: SUCTIONCUPS
- 2300: INTIMIDATE
- 2400: SHADOWTAG
- 2500: ROUGHSKIN
- 2600: WONDERGUARD
- 2700: LEVITATE
- 2800: EFFECTSPORE
- 2900: SYNCHRONIZE
- 3000: CLEARBODY
- 3100: NATURALCURE
- 3200: LIGHTNINGROD
- 3300: SERENEGRACE
- 3400: SWIFTSWIM
- 3500: CHLOROPHYLL
- 3600: ILLUMINATE
- 3700: TRACE
- 3800: HUGEPOWER
- 3900: POISONPOINT
- 4000: INNERFOCUS
- 4100: MAGMAARMOR
- 4200: WATERVEIL
- 4300: MAGNETPULL
- 4400: SOUNDPROOF
- 4500: RAINDISH
- 4600: SANDSTREAM
- 4700: PRESSURE
- 4800: THICKFAT
- 4900: EARLYBIRD
- 5000: FLAMEBODY
- 5100: RUNAWAY
- 5200: KEENEYE
- 5300: HYPERCUTTER
- 5400: PICKUP
- 5500: TRUANT
- 5600: HUSTLE
- 5700: CUTECHARM
- 5800: PLUS
- 5900: MINUS
- 6000: FORECAST
- 6100: STICKYHOLD
- 6200: SHEDSKIN
- 6300: GUTS
- 6400: MARVELSCALE
- 6500: LIQUIDOOZE
- 6600: OVERGROW
- 6700: BLAZE
- 6800: TORRENT
- 6900: SWARM
- 7000: ROCKHEAD
- 7100: DROUGHT
- 7200: ARENATRAP
- 7300: VITALSPIRIT
- 7400: WHITESMOKE
- 7500: PUREPOWER
- 7600: SHELLARMOR
- 7700: AIRLOCK
- 7800: TANGLEDFEET
- 7900: MOTORDRIVE
- 8000: RIVALRY
- 8100: STEADFAST
- 8200: SNOWCLOAK
- 8300: GLUTTONY
- 8400: ANGERPOINT
- 8500: UNBURDEN
- 8600: HEATPROOF
- 8700: SIMPLE
- 8800: DRYSKIN
- 8900: DOWNLOAD
- 9000: IRONFIST
- 9100: POISONHEAL
- 9200: ADAPTABILITY
- 9300: SKILLLINK
- 9400: HYDRATION
- 9500: SOLARPOWER
- 9600: QUICKFEET
- 9700: NORMALIZE
- 9800: SNIPER
- 9900: MAGICGUARD
- 10000: NOGUARD
- 10100: STALL
- 10200: TECHNICIAN
- 10300: LEAFGUARD
- 10400: KLUTZ
- 10500: MOLDBREAKER
- 10600: SUPERLUCK
- 10700: AFTERMATH
- 10800: ANTICIPATION
- 10900: FOREWARN
- 11000: UNAWARE
- 11100: TINTEDLENS
- 11200: FILTER
- 11300: SLOWSTART
- 11400: SCRAPPY
- 11500: STORMDRAIN
- 11600: ICEBODY
- 11700: SOLIDROCK
- 11800: SNOWWARNING
- 11900: HONEYGATHER
- 12000: FRISK
- 12100: RECKLESS
- 12200: MULTITYPE
- 12300: FLOWERGIFT
- 12400: BADDREAMS
- 12500: PICKPOCKET
- 12600: SHEERFORCE
- 12700: CONTRARY
- 12800: UNNERVE
- 12900: DEFIANT
- 13000: DEFEATIST
- 13100: CURSEDBODY
- 13200: HEALER
- 13300: FRIENDGUARD
- 13400: WEAKARMOR
- 13500: HEAVYMETAL
- 13600: LIGHTMETAL
- 13700: MULTISCALE
- 13800: TOXICBOOST
- 13900: FLAREBOOST
- 14000: HARVEST
- 14100: TELEPATHY
- 14200: MOODY
- 14300: OVERCOAT
- 14400: POISONTOUCH
- 14500: REGENERATOR
- 14600: BIGPECKS
- 14700: SANDRUSH
- 14800: WONDERSKIN
- 14900: ANALYTIC
- 15000: ILLUSION
- 15100: IMPOSTER
- 15200: INFILTRATOR
- 15300: MUMMY
- 15400: MOXIE
- 15500: JUSTIFIED
- 15600: RATTLED
- 15700: MAGICBOUNCE
- 15800: SAPSIPPER
- 15900: PRANKSTER
- 16000: SANDFORCE
- 16100: IRONBARBS
- 16200: ZENMODE
- 16300: VICTORYSTAR
- 16400: TURBOBLAZE
- 16500: TERAVOLT
- 16600: AROMAVEIL
- 16700: FLOWERVEIL
- 16800: CHEEKPOUCH
- 16900: PROTEAN
- 17000: FURCOAT
- 17100: MAGICIAN
- 17200: BULLETPROOF
- 17300: COMPETITIVE
- 17400: STRONGJAW
- 17500: REFRIGERATE
- 17600: SWEETVEIL
- 17700: STANCECHANGE
- 17800: GALEWINGS
- 17900: MEGALAUNCHER
- 18000: GRASSPELT
- 18100: SYMBIOSIS
- 18200: TOUGHCLAWS
- 18300: PIXILATE
- 18400: GOOEY
- 18500: AERILATE
- 18600: PARENTALBOND
- 18700: DARKAURA
- 18800: FAIRYAURA
- 18900: AURABREAK
- 19000: PRIMORDIALSEA
- 19100: DESOLATELAND
- 19200: DELTASTREAM
- 19300: STAMINA
- 19400: WIMPOUT
- 19500: EMERGENCYEXIT
- 19600: WATERCOMPACTION
- 19700: MERCILESS
- 19800: SHIELDSDOWN
- 19900: STAKEOUT
- 20000: WATERBUBBLE
- 20100: STEELWORKER
- 20200: BERSERK
- 20300: SLUSHRUSH
- 20400: LONGREACH
- 20500: LIQUIDVOICE
- 20600: TRIAGE
- 20700: GALVANIZE
- 20800: SURGESURFER
- 20900: SCHOOLING
- 21000: DISGUISE
- 21100: BATTLEBOND
- 21200: POWERCONSTRUCT
- 21300: CORROSION
- 21400: COMATOSE
- 21500: QUEENLYMAJESTY
- 21600: INNARDSOUT
- 21700: DANCER
- 21800: BATTERY
- 21900: FLUFFY
- 22000: DAZZLING
- 22100: SOULHEART
- 22200: TANGLINGHAIR
- 22300: RECEIVER
- 22400: POWEROFALCHEMY
- 22500: BEASTBOOST
- 22600: RKSSYSTEM
- 22700: ELECTRICSURGE
- 22800: PSYCHICSURGE
- 22900: MISTYSURGE
- 23000: GRASSYSURGE
- 23100: FULLMETALBODY
- 23200: SHADOWSHIELD
- 23300: PRISMARMOR
- 23400: NEUROFORCE
- 23500: INTREPIDSWORD
- 23600: DAUNTLESSSHIELD
- 23700: LIBERO
- 23800: BALLFETCH
- 23900: COTTONDOWN
- 24000: PROPELLERTAIL
- 24100: MIRRORARMOR
- 24200: GULPMISSILE
- 24300: STALWART
- 24400: STEAMENGINE
- 24500: PUNKROCK
- 24600: SANDSPIT
- 24700: ICESCALES
- 24800: RIPEN
- 24900: ICEFACE
- 25000: POWERSPOT
- 25100: MIMICRY
- 25200: SCREENCLEANER
- 25300: STEELYSPIRIT
- 25400: PERISHBODY
- 25500: WANDERINGSPIRIT
- 25600: GORILLATACTICS
- 25700: NEUTRALIZINGGAS
- 25800: PASTELVEIL
- 25900: HUNGERSWITCH
- 26000: QUICKDRAW
- 26100: UNSEENFIST
- 26200: CURIOUSMEDICINE
- 26300: TRANSISTOR
- 26400: DRAGONSMAW
- 26500: CHILLINGNEIGH
- 26600: GRIMNEIGH
- 26700: ASONE
- 26701: ASONEGLASTRIER
- 26702: ASONESPECTRIER
- 26900: LINGERINGAROMA
- 27000: SEEDSOWER
- 27100: THERMALEXCHANGE
- 27200: ANGERSHELL
- 27300: PURIFYINGSALT
- 27400: WELLBAKEDBODY
- 27500: WINDRIDER
- 27600: GUARDDOG
- 27700: ROCKYPAYLOAD
- 27800: WINDPOWER
- 27900: ZEROTOHERO
- 28000: COMMANDER
- 28100: ELECTROMORPHOSIS
- 28200: PROTOSYNTHESIS
- 28300: QUARKDRIVE
- 28400: GOODASGOLD
- 28500: VESSELOFRUIN
- 28501: TABLETSOFRUIN
- 28502: BEADSOFRUIN
- 28600: SWORDOFRUIN
- 28900: ORICHALCUMPULSE
- 29000: HADRONENGINE
- 29100: OPPORTUNIST
- 29200: CUDCHEW
- 29300: SHARPNESS
- 29400: SUPREMEOVERLORD
- 29500: COSTAR
- 29600: TOXICDEBRIS
- 29700: ARMORTAIL
- 29800: EARTHEATER
- 29900: MYCELIUMMIGHT
- 30000: HOSPITALITY
- 30100: MINDSEYE
- 30200: EMBODYASPECTTEAL
- 30300: EMBODYASPECTWELLSPRING
- 30400: EMBODYASPECTHEARTHFLAME
- 30500: EMBODYASPECTCORNERSTONE
- 30600: TOXICCHAIN
- 30700: SUPERSWEETSYRUP
"},{"location":"dex/reference/pokedex-classes/","title":"The PokedexClass","text":"poketypes.dex.pokedex
OR directly import from poketypes.dex
"},{"location":"dex/reference/pokedex-classes/#basics","title":"Basics","text":"Each PokedexClass is a pydantic BaseModel, holding every possibly-useful attribute sourced directly from pokemon showdown typescript files as the ground truth.
"},{"location":"dex/reference/pokedex-classes/#reference","title":"Reference","text":"Provides BaseModels for accessing real information about specific items/pokemon/moves/etc.
All Pokedex{NAME} classes are defined in this module, though you can also import these directly from poketypes.dex.
"},{"location":"dex/reference/pokedex-classes/#poketypes.dex.pokedex.PokedexMove","title":"PokedexMove
","text":"Pokedex class for Move information.
ATTRIBUTE DESCRIPTION name
The friendly string name of this move
TYPE: str
id
The DexMove ID of this move
TYPE: DexMove.ValueType
base_power
The base power of the move
TYPE: int
pp
The pp of this move
TYPE: int
priority
The priority of the move
TYPE: int
crit_ratio
The crit ratio of the move (e.g. 2 = twice the chance to crit)
TYPE: int
category
The move category as a DexMoveCategory
TYPE: DexMoveCategory.ValueType
target
The target type of this move
TYPE: DexMoveTarget.ValueType
mtype
The type of the move
TYPE: DexType.ValueType
breaks_protect
Whether the move breaks target protect
TYPE: bool
ignore_ability
Whether the move ignores target ability
TYPE: bool
ignore_defensive
Whether the move ignores target defensive boosts
TYPE: bool
ignore_evasion
Whether the move ignores target evasion boosts
TYPE: bool
ignore_immunity
Whether the move ignores target immunity to this move type
TYPE: bool
multiaccuracy
Whether the multihit move is all or nothing
TYPE: bool
ohko
Whether the move is a one-hit-ko
TYPE: bool
stalling_move
Whether the move is considered a stalling move
TYPE: bool
will_crit
Whether the move will 100% crit if it lands
TYPE: bool
has_crash_damage
Whether the move does damage to its user on failure
TYPE: bool
has_sheer_force
The move is always boosted by sheer-force without losing benefit
TYPE: bool
selfdestruct_always
Whether this move always causes the user to faint
TYPE: bool
selfdestruct_ifhit
Whether the move causes the user to faint if and only if it hits
TYPE: bool
steals_boosts
Whether the move steals the targets boosts
TYPE: bool
level_damage
Whether the move does damage based on the level of the user
TYPE: bool
force_switch
Whether the move forces the target to switch out
TYPE: bool
mindblown_recoil
Whether the move has special 'Mind Blown' style recoil
TYPE: bool
struggle_recoil
Whether the move has special 'Struggle' style recoil
TYPE: bool
smart_target
Whether the move uses smart targetting
TYPE: bool
thaws_target
Whether the move thaws target as a special effect
TYPE: bool
tracks_target
Whether the move ignores draw-in
move/abilities.
TYPE: bool
selfswitch_standard
Whether the move is a typical self-switching move. Teleport/U-Turn/etc
TYPE: bool
selfswitch_volatile
Whether the move is a volatile-keeping self-switching move. Baton Pass
TYPE: bool
selfswitch_shedtail
Whether the move is a substitue creating self-switching move. Shed Tail
TYPE: bool
sleep_usable
Whether the move can be used when sleeping
TYPE: bool
no_metronome
Whether the move can NOT be used as a result of metronome
TYPE: bool
no_sketch
Whether the move can NOT be copied as a result of sketch
TYPE: bool
no_ppboosts
Whether the move can NOT have its pp boosted beyond default
TYPE: bool
accuracy
The accuracy of this move. Optional if the move bypasses accuracy
TYPE: Optional[int]
multihit
The move hits multiple times from slot0 - slot1 times inclusive. Optional
TYPE: Optional[Tuple[int, int]]
drain
The move drains hp: (slot0 / slot1) times damage dealt. Optional
TYPE: Optional[Tuple[int, int]]
heal
The move directly heals hp: (slot0 / slot1) times maximum health. Optional
TYPE: Optional[Tuple[int, int]]
recoil
The move recoils back hp: (slot0 / slot1) times damage dealt. Optional
TYPE: Optional[Tuple[int, int]]
boosts
Any boosts for the target this move provides (100%). Optional
TYPE: Optional[Dict[DexStat.ValueType, int]]
direct_damage
An integer exact amount of damage the move does. Optional
TYPE: Optional[int]
weather
The weather started by this move. Optional
TYPE: Optional[DexWeather.ValueType]
flag_allyanim
MOVE FLAG: allyanim
TYPE: bool
flag_bite
MOVE FLAG: bite
TYPE: bool
flag_bullet
MOVE FLAG: bullet
TYPE: bool
flag_bypasssub
MOVE FLAG: bypasssub
TYPE: bool
flag_cantusetwice
MOVE FLAG: cantusetwice
TYPE: bool
flag_charge
MOVE FLAG: charge
TYPE: bool
flag_contact
MOVE FLAG: contact
TYPE: bool
flag_dance
MOVE FLAG: dance
TYPE: bool
flag_defrost
MOVE FLAG: defrost
TYPE: bool
flag_distance
MOVE FLAG: distance
TYPE: bool
flag_failcopycat
MOVE FLAG: failcopycat
TYPE: bool
flag_failencore
MOVE FLAG: failencore
TYPE: bool
flag_failinstruct
MOVE FLAG: failinstruct
TYPE: bool
flag_failmefirst
MOVE FLAG: failmefirst
TYPE: bool
flag_failmimic
MOVE FLAG: failmimic
TYPE: bool
flag_futuremove
MOVE FLAG: futuremove
TYPE: bool
flag_gravity
MOVE FLAG: gravity
TYPE: bool
flag_heal
MOVE FLAG: heal
TYPE: bool
flag_mirror
MOVE FLAG: mirror
TYPE: bool
flag_mustpressure
MOVE FLAG: mustpressure
TYPE: bool
flag_noassist
MOVE FLAG: noassist
TYPE: bool
flag_nonsky
MOVE FLAG: nonsky
TYPE: bool
flag_noparentalbond
MOVE FLAG: noparentalbond
TYPE: bool
flag_nosleeptalk
MOVE FLAG: nosleeptalk
TYPE: bool
flag_pledgecombo
MOVE FLAG: pledgecombo
TYPE: bool
flag_powder
MOVE FLAG: powder
TYPE: bool
flag_protect
MOVE FLAG: protect
TYPE: bool
flag_pulse
MOVE FLAG: pulse
TYPE: bool
flag_punch
MOVE FLAG: punch
TYPE: bool
flag_recharge
MOVE FLAG: recharge
TYPE: bool
flag_reflectable
MOVE FLAG: reflectable
TYPE: bool
flag_slicing
MOVE FLAG: slicing
TYPE: bool
flag_snatch
MOVE FLAG: snatch
TYPE: bool
flag_sound
MOVE FLAG: sound
TYPE: bool
flag_wind
MOVE FLAG: wind
TYPE: bool
"},{"location":"dex/reference/pokedex-classes/#poketypes.dex.pokedex.PokedexItem","title":"PokedexItem
","text":"Pokedex class for Item information.
ATTRIBUTE DESCRIPTION name
The friendly string name of this item
TYPE: str
id
The DexItem ID of this item
TYPE: DexItem.ValueType
is_gem
Whether the item is a gem or not
TYPE: bool
is_berry
Whether the item is a berry
TYPE: bool
naturalgift_base_power
If this item is usable with Natural Gift, what is the base power
TYPE: Optional[int]
naturalgift_type
If this item is usable with Natural Gift, what is the type
TYPE: Optional[DexType.ValueType]
item_users
A list of intended holders of this item
TYPE: List[DexPokemon.ValueType]
zmove_to
What move this zmove transforms the move into
TYPE: Optional[DexMove.ValueType]
zmove_from
What special move this zmove transforms
TYPE: Optional[DexMove.ValueType]
mega_evolves
Which base-forme pokemon this megastone evolves from. Optional
TYPE: Optional[DexPokemon.ValueType]
mega_forme
Which mega-forme pokemon this megastone evolves into. Optional
TYPE: Optional[DexPokemon.ValueType]
ignore_klutz
Whether the item ignores klutz
TYPE: bool
fling_basepower
The basepower of fling when flinging this item. None if n/a
TYPE: Optional[int]
"},{"location":"dex/reference/pokedex-classes/#poketypes.dex.pokedex.StatBlock","title":"StatBlock
","text":"Helper object for containing base stats information.
ATTRIBUTE DESCRIPTION hp_stat
The base hp of the pokemon
TYPE: int
atk_stat
The base attack of the pokemon
TYPE: int
def_stat
The base defence of the pokemon
TYPE: int
spa_stat
The base special attack of the pokemon
TYPE: int
spd_stat
The base special defence of the pokemon
TYPE: int
spe_stat
The base speed of the pokemon
TYPE: int
"},{"location":"dex/reference/pokedex-classes/#poketypes.dex.pokedex.PokedexPokemon","title":"PokedexPokemon
","text":"Pokedex class for Pokemon information.
ATTRIBUTE DESCRIPTION name
The friendly string name of this pokemon
TYPE: str
id
The DexPokemon ID of this pokemon
TYPE: DexPokemon.ValueType
base_name
The friendly string name of this pokemon's base forme
TYPE: str
base_id
The DexPokemon ID of this pokemon's base forme
TYPE: DexPokemon.ValueType
types
The types of this pokemon
TYPE: List[DexType.ValueType]
base_stats
The base stat block of this pokemon
TYPE: StatBlock
abilities
The list of abilities this pokemon can have
TYPE: List[DexAbility.ValueType]
"},{"location":"dex/reference/utilities/","title":"Utilities","text":"There are also a few utility functions provided to help the user convert typical string names to the relevant ID for their corresponding Dex Class.
"},{"location":"dex/reference/utilities/#dex-data-utilities","title":"Dex Data Utilities:","text":"Provides tools for cleaning Dex IDs back and forth from strings, as well as other utility functions.
"},{"location":"dex/reference/utilities/#poketypes.dex.dexdata.cast2dex","title":"cast2dex(name, dex_class)
","text":"Clean and cast name to the corresponding entry in the given dex_class.
EX: Magikarp -> Cleaned to: MAGIKARP -> DexPokemon.POKEMON_MAGIKARP (Which is secretly the int 129000)
EX: Scizor-Mega -> Cleaned to: SCIZORMEGA -> DexPokemon.POKEMON_SCIZORMEGA (Which is secretly the int 208001)
Parameters:
Name Type Description Default name
str
The name of the entry.
required dex_class
AnyDex
Which Dex Enum to use in labeling. Must be a valid Dex{NAME} class.
required Returns:
Name Type Description int
int
The corresponding value for this cleaned entry.
Source code in poketypes\\dex\\dexdata.py
def cast2dex(name: str, dex_class: AnyDex) -> int:\n \"\"\"Clean and cast name to the corresponding entry in the given dex_class.\n\n EX:\n Magikarp -> Cleaned to: MAGIKARP -> DexPokemon.POKEMON_MAGIKARP (Which is secretly the int 129000)\n\n EX:\n Scizor-Mega -> Cleaned to: SCIZORMEGA -> DexPokemon.POKEMON_SCIZORMEGA (Which is secretly the int 208001)\n\n Args:\n name (str): The name of the entry.\n dex_class (AnyDex): Which Dex Enum to use in labeling. Must be a valid Dex{NAME} class.\n\n Returns:\n int: The corresponding value for this cleaned entry.\n \"\"\"\n clean_id = clean_name(name)\n\n if clean_id is None:\n return clean_id\n\n if dex_class == DexAbility:\n return DexAbility.Value(f\"ABILITY_{clean_id}\")\n elif dex_class == DexCondition:\n return DexCondition.Value(f\"CONDITION_{clean_id}\")\n elif dex_class == DexGen:\n return DexGen.Value(f\"GEN_{clean_id}\")\n elif dex_class == DexItem:\n return DexItem.Value(f\"ITEM_{clean_id}\")\n elif dex_class == DexMove:\n return DexMove.Value(f\"MOVE_{clean_id}\")\n elif dex_class == DexMoveCategory:\n return DexMoveCategory.Value(f\"MOVECATEGORY_{clean_id}\")\n elif dex_class == DexMoveTarget:\n return DexMoveTarget.Value(f\"MOVETARGET_{clean_id}\")\n elif dex_class == DexNature:\n return DexNature.Value(f\"NATURE_{clean_id}\")\n elif dex_class == DexPokemon:\n return DexPokemon.Value(f\"POKEMON_{clean_id}\")\n elif dex_class == DexStat:\n return DexStat.Value(f\"STAT_{clean_id}\")\n elif dex_class == DexStatus:\n return DexStatus.Value(f\"STATUS_{clean_id}\")\n elif dex_class == DexType:\n return DexType.Value(f\"TYPE_{clean_id}\")\n elif dex_class == DexWeather:\n return DexWeather.Value(f\"WEATHER_{clean_id}\")\n
"},{"location":"dex/reference/utilities/#poketypes.dex.dexdata.clean_forme","title":"clean_forme(species)
","text":"Transform a pokemon species (DexPokemon) into the string name of it's base forme.
Makes use of the fact that DexPokemon are of the form {dex_number}{3-digit forme number}, and that the base forme is always forme-number 000
. If this changes, this function will no longer work.
Parameters:
Name Type Description Default species
ValueType
The input species to clean to base forme.
required Returns:
Type Description ValueType
DexPokemon.ValueType: The corresponding ID of the base forme species.
Source code in poketypes\\dex\\dexdata.py
def clean_forme(species: DexPokemon.ValueType) -> DexPokemon.ValueType:\n \"\"\"Transform a pokemon species (DexPokemon) into the string name of it's base forme.\n\n Makes use of the fact that DexPokemon are of the form {dex_number}{3-digit forme number},\n and that the base forme is always forme-number `000`.\n If this changes, this function will no longer work.\n\n Args:\n species (DexPokemon.ValueType): The input species to clean to base forme.\n\n Returns:\n DexPokemon.ValueType: The corresponding ID of the base forme species.\n \"\"\"\n clean_species = (species // 1000) * 1000\n return clean_species\n
"},{"location":"dex/reference/utilities/#poketypes.dex.dexdata.clean_name","title":"clean_name(name)
","text":"Format a given uncleaned string name as the format needed for searching the corresponding Enum.
Parameters:
Name Type Description Default name
Optional[str]
An optional name to clean. If None is given, we immediately return None.
required Returns:
Type Description Optional[str]
Optional[str]: The clean-form of the input name, if it wasn't None or blank.
Source code in poketypes\\dex\\dexdata.py
def clean_name(name: Optional[str]) -> Optional[str]:\n \"\"\"Format a given uncleaned string name as the format needed for searching the corresponding Enum.\n\n Args:\n name (Optional[str]): An optional name to clean. If None is given, we immediately return None.\n\n Returns:\n Optional[str]: The clean-form of the input name, if it wasn't None or blank.\n \"\"\"\n if name is None or name == \"\":\n return None\n\n clean_id = (\n unicodedata.normalize(\n \"NFKD\",\n name.upper()\n .replace(\"-\", \"\")\n .replace(\"\u2019\", \"\")\n .replace(\"'\", \"\")\n .replace(\" \", \"\")\n .replace(\"*\", \"\")\n .replace(\":\", \"\")\n .replace(\"%\", \"\")\n .replace(\".\", \"\")\n .replace(\")\", \"\")\n .replace(\"(\", \"\"),\n )\n .encode(\"ASCII\", \"ignore\")\n .decode(\"ASCII\")\n )\n return clean_id\n
"},{"location":"showdown/","title":"Showdown Intro","text":""},{"location":"showdown/#5-minute-summary","title":"5-Minute Summary","text":"In the poketypes
package, we include the module showdown
, which contains pydantic BaseModel
subclasses for General and Battle Message formats. This allows for a smoother communication process with Pokemon Showdown, as rather than needing to build a message parser yourself, relying on relatively limited documentation from Showdown directly, you can instead build logic to take as input either Message
or BattleMessage
objects, which will come pre-parsed, with full type-hinting and data validation built in.
To start, you can import both from the module showdown
like so:
from poketypes.showdown import Message, BattleMessage\n
Both Message
and BattleMessage
are subclasses of pydantic.BaseModel
, and both also have an additional function called from_message
, which takes as input a string, and returns an initialized and parsed object from the input string message.
message = BattleMessage.from_string(\"|poke|p1|Metagross, L80|item\")\n
At this point, message
will automatically be identified as a poke
battle message, and will be an instance of the class poketypes.showdown.battlemessage.BattleMessage_poke
. Rather than checking with isinstance
, however, we recommend instead checking the message.BMTYPE
(or message.MTYPE
for general messages), which is of the type poketypes.showdown.BMType
, an Enum of all the different battle message types you can receive. For type hinting purposes, such as in the signature of a function that would process a given BattleMessage
subclass, you would do the following:
def process_bm_poke(message: poketypes.showdown.battlemessage.BattleMessage_poke):\n
This will ensure that your IDE will have type hinting support as you process the message, and in the specific example of BattleMessage_poke
, will give support in directly accessing the data fields like message.PLAYER
that are unique to this BattleMessage
subclass.
Check out the Guides in this section for some common use-cases of this module, eith step-by-step instructions on each part of the process. Or if you prefer to learn by reading docs, check out the Reference links below or on the sidebar to familiarize yourself with some of the different categories of messages.
"},{"location":"showdown/#reference-links","title":"Reference Links","text":"For details on all the different kinds of Message
subclasses, see the reference page here
For details on all the different kinds of BattleMessage
subclasses, see the reference page here
"},{"location":"showdown/explanations/","title":"Why Two Classes?","text":"Once you've started using the showdown message classes, you might start wondering why there is even a split between Message
and BattleMessage
classes at all, why not just have one class called Message
which works for both?
The answer is really from a convenience standpoint, rather than any technical limitation.
In theory, we could absolutely just have one larger Message
class that encompasses both of our current message classes, however in practice we don't use the two that we have today in the same way at all. With Pokemon Showdown's webclient, battle messages are actually a special type of room-message, sent with a chunk formatting that looks something like:
\"\"\">battle-BATTLEID\n|init|battle\n|title|colress-gpt-test1 vs. colress-gpt-test2\n|j|\u2606colress-gpt-test1\n\"\"\"\n
Already, in order to process this in a parser, we will need special handling to identify that a certain message chunk is related to some specific room/battle, and then process each remaining line in the chunk as a message pertaining to that room. Since we're already checking for room information with the \">\" at the start, we may as well just check for \">battle\" instead, and parse everything that follows as though it is specific to a battle.
It is theoretically possible that in the future we may decide that simplifying our two class structure into just a single Message
class may make sense, but considering that other than some benefits in terms of code organization, there really isn't much reason to do so either. The Message
and BattleMessage
classes are complex enough as they are now, so if we tried to merge them into one we would really need to consider a different file formatting structure for writing subclasses, compared to our current solution of one file for Message
and one file for BattleMessage
.
"},{"location":"showdown/guides/basic-parser/","title":"Building a Replay Log Parser","text":""},{"location":"showdown/guides/basic-parser/#introduction","title":"Introduction","text":"This tutorial will guide usage of poketypes.showdown
to create a simple replay log parser, which can read any arbitrary Pokemon Showdown replay file, and turn it into a list of BattleMessage
subclass objects, that you could then proceed to do some sort of analysis or transformation on.
Since we'll be processing a Replay log in this example, we will only be using poketypes.showdown.BattleMessage
, but similar concepts can be applied for processing any message sent by showdown, so long as you make the distinction between general messages and message chunks that target a specific battle.
"},{"location":"showdown/guides/basic-parser/#prerequisites","title":"Prerequisites","text":"Make sure that you have poketypes
installed to your virtual environment, which you can do with:
pip install poketypes\n
Additionally, go ahead and download the replay file here. If you click the Download button on this page, it should download a .html file called 'OUMonotype-2014-01-29-kdarewolf-onox.html', which we will use as an example, but any replay file should work.
"},{"location":"showdown/guides/basic-parser/#step-1-extracting-the-battle-log","title":"Step 1: Extracting the Battle Log","text":"Replay files are stored in html files, which means we need to extract the text log that we want to parse first.
To do that, since we only need very basic html extraction, we can
"},{"location":"showdown/reference/battle-messages/","title":"The Showdown Battle Message","text":""},{"location":"showdown/reference/battle-messages/#the-battlemessage-object","title":"The BattleMessage object","text":"The base class for all specific BattleMessage subclasses to be built from.
When parsing a string battle message, you should directly use this class's from_message
function, which will auto-identify which subclass (if any) the given string belongs to.
Across all BattleMessages, you will be able to access both BMTYPE and BATTLE_MESSAGE, though you shouldn't need to access BATTLE_MESSAGE directly. (If you do, then we must be missing some data that exists in the raw string)
ATTRIBUTE DESCRIPTION BMTYPE
The message type of this battle message. Must be a vaild showdown battle message.
TYPE: BMType
BATTLE_MESSAGE
The raw message line as sent from showdown. Shouldn't need to be used but worth keeping.
TYPE: str
ERR_STATE
The error type of this battle message if it failed to parse
TYPE: Optional[Literal['UNKNOWN_BMTYPE', 'MISSING_DICT_CLASS', 'IMPLEMENTATION_NOT_READY', 'PARSE_ERROR']]
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage.from_message","title":"from_message(battle_message)
staticmethod
","text":"Create a specific BattleMessage object from a raw message.
For example, given a message '|faint|p2a: Umbreon', this will create a new BattleMessage_faint with fields extracted from the text properly.
"},{"location":"showdown/reference/battle-messages/#battlemessage-subclasses","title":"BattleMessage Subclasses","text":"Contains BaseModels for BattleMessage parsing and processing.
Remember to use BattleMessage.from_message directly, unless you are building test cases where you want to assert that a given message leads to a certain subclass of BattleMessage. from_message
will auto-detect which BMType the given message corresponds to, and return the associated subclass (or an error detailing what went wrong) for you.
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_player","title":"BattleMessage_player
","text":"Message containing player information.
ATTRIBUTE DESCRIPTION PLAYER
The player id of this player
TYPE: str
USERNAME
The username of the player
TYPE: str
AVATAR
Either a number id of the user's avatar or a custom value
TYPE: Union[int, str]
RATING
The elo of the player in the current format, if applicable
TYPE: Optional[int]
Use Case(s) - To communicate player username/avatar/rating information.
Message Format(s) - |player|PLAYER|USERNAME|AVATAR|RATING
Input Example(s) - |player|p1|colress-gpt-test1|colress|1520
- |player|p2|colress-gpt-test2|265|1229
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_teamsize","title":"BattleMessage_teamsize
","text":"Message containing teamsize information.
ATTRIBUTE DESCRIPTION PLAYER
The player id of this player
TYPE: str
NUMBER
The number of pokemon your opponent has.
TYPE: int
Use Case(s) - To communicate player team size.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_gametype","title":"BattleMessage_gametype
","text":"Message containing gametype information.
ATTRIBUTE DESCRIPTION GAMETYPE
The gametype of this format
TYPE: Literal['singles', 'doubles', 'triples', 'multi', 'freeforall']
Use Case(s) - To communicate the game type (singles, doubles, triples, etc.)
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_gen","title":"BattleMessage_gen
","text":"Message containing gen information.
ATTRIBUTE DESCRIPTION GENNUM
The integer generation number of this format
TYPE: DexGen.ValueType
Use Case(s) - To communicate the generation number.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_tier","title":"BattleMessage_tier
","text":"Message containing format information.
ATTRIBUTE DESCRIPTION FORMATNAME
The game format of this match
TYPE: str
Use Case(s) - To communicate the format of this battle.
Message Format(s) Input Example(s) - |tier|[Gen 5] Random Battle
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_rated","title":"BattleMessage_rated
","text":"Message containing rating information.
ATTRIBUTE DESCRIPTION MESSAGE
An optional message used in tournaments
TYPE: Optional[str]
Use Case(s) - To communicate any extra rules/clauses for this format.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_rule","title":"BattleMessage_rule
","text":"Message containing extra rule information.
ATTRIBUTE DESCRIPTION RULE
The name of the rule
TYPE: str
DESCRIPTION
A description of this rule
TYPE: str
Use Case(s) - To communicate any extra rules/clauses for this format.
Message Format(s) Input Example(s) - |rule|HP Percentage Mod: HP is shown in percentages
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_clearpoke","title":"BattleMessage_clearpoke
","text":"Message containing a clearpoke notification.
Use Case(s) - To signal that teampreview is starting.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_poke","title":"BattleMessage_poke
","text":"Message containing base-forme-only information about a pokemon, presented in teampreview.
ATTRIBUTE DESCRIPTION PLAYER
The player id of this player
TYPE: str
SPECIES
The forme-less species for this pokemon
TYPE: DexPokemon.ValueType
LEVEL
The level of this pokemon
TYPE: int
GENDER
The gender of this pokemon
TYPE: Optional[Literal['M', 'F']]
SHINY
Whether the pokemon is shiny or not
TYPE: bool
TERA
If this pokemon is teratyped, the string type of the new type. Else None.
TYPE: Optional[DexType.ValueType]
HAS_ITEM
Whether or not the pokemon is holding an item
TYPE: bool
Use Case(s) - To communicate base-forme, simple pokemon information for teampreview
Message Format(s) - |poke|PLAYER|DETAILS|ITEM
Input Example(s) - |poke|p1|Metagross, L80|item
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_start","title":"BattleMessage_start
","text":"Message signaling the start of a battle.
Use Case(s) - To communicate that the battle has started (teampreview is over)
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_teampreview","title":"BattleMessage_teampreview
","text":"Message signaling to make a teampreview team-order decision.
Use Case(s) - To communicate that the user needs to select a team-order.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_empty","title":"BattleMessage_empty
","text":"Completely blank message.
Use Case(s) - To separate sections in a battle log
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_request","title":"BattleMessage_request
","text":"Message communicating options the user has in an upcoming choice.
ATTRIBUTE DESCRIPTION REQUEST_TYPE
Which type of request this request is between TEAMPREVIEW, ACTIVE, and FORCESWITCH
TYPE: Literal['TEAMPREVIEW', 'ACTIVE', 'FORCESWITCH', 'WAIT']
USERNAME
The player's username
TYPE: str
PLAYER
The player id of this player
TYPE: str
RQID
The id number of this request, for the purpose of an undo function
TYPE: Optional[int]
POKEMON
The pokemon details for each pokemon in this player's side
TYPE: List[RequestPoke]
ACTIVE_OPTIONS
A list of actions available for each active pokemon. Will be None if switch/teampreview
TYPE: Optional[List[ActiveOption]]
FORCESWITCH_SLOTS
A list of bool for each slot whether they are being forced to switch
TYPE: Optional[List[bool]]
Use Case(s) - To inform the user about their team so that a team-order decision can be made.
- To inform the user about their available moves/switches so that a standard decision can be made.
- To request the user to switch out a Pokemon due to a forced operation (fainted/forced out).
- To inform the user that their opponent is making a decision and that the user has to wait for them.
Message Format(s) Input Example(s) - See logs for examples, there are a lot of variations.
Tips This does not necessarily mean it is time for the user to respond to a choice, as teampreview and move requests are sent before the details of the previous turn are sent, and thus you should wait until it is the correct time to send your decision.
For FORCESWITCH requests, however, a decision should be sent once you receive this message.
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_inactive","title":"BattleMessage_inactive
","text":"Message communicating that the inactivity timer has been set.
ATTRIBUTE DESCRIPTION MESSAGE
A message related to the battle timer notification
TYPE: str
Use Case(s) - To signal that there is a time-limit for descisions to be made.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_inactiveoff","title":"BattleMessage_inactiveoff
","text":"Message communicating that the inactivity timer has been turned off.
ATTRIBUTE DESCRIPTION MESSAGE
A message related to the battle timer notification
TYPE: str
Use Case(s) - To signal that there is no longer a time-limit for descisions to be made.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_upkeep","title":"BattleMessage_upkeep
","text":"Message communicating upkeep notice.
Use Case(s) - To signal that the upkeep stage has happened
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_turn","title":"BattleMessage_turn
","text":"Message communicating that a turn has begun, and that move choices should be made.
ATTRIBUTE DESCRIPTION NUMBER
The current turn number
TYPE: int
Use Case(s) - To signal to the players to make a move.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_win","title":"BattleMessage_win
","text":"Message communicating that a player has won the battle.
ATTRIBUTE DESCRIPTION USERNAME
The username of the winning player
TYPE: str
Use Case(s) - To signal which player has won.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_tie","title":"BattleMessage_tie
","text":"Message communicating that neither player has won the battle.
Use Case(s) - To signal the battle has ended in a tie
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_expire","title":"BattleMessage_expire
","text":"Message communicating that the battle has ended due to mutual inactivity.
Use Case(s) - To signal the battle has ended due to mutual inactivity
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_t","title":"BattleMessage_t
","text":"Message communicating the current timestamp.
ATTRIBUTE DESCRIPTION TIMESTAMP
The time of this turn as a datetime (conv from unix seconds)
TYPE: datetime
Use Case(s) - Gives current timestamp of this set of messages
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_move","title":"BattleMessage_move
","text":"Message communicating that a pokemon successfully used a move.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon using the move
TYPE: PokemonIdentifier
MOVE
The name of the move used
TYPE: str
TARGET
The primary target of this move. This can be None when applicable
TYPE: Optional[PokemonIdentifier]
EFFECT
An optional effect that the move is taken from (Magic bounce, Sleep Talk, etc)
TYPE: Optional[Effect]
Use Case(s) - Communicating which move was used, including source/target information.
Message Format(s) - |move|POKEMON|MOVE|TARGET
- |move|POKEMON|MOVE|TARGET|[from]
- TODO: Add more
Input Example(s) - |move|p1a: Sceptile|Acrobatics|p2a: Espeon
- |move|p1a: Kangaskhan|Fake Out||[still]
- TODO: Add more
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_switch","title":"BattleMessage_switch
","text":"Message communicating that a pokemon has switched in.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon swapping in, potentially replacing the slot
TYPE: PokemonIdentifier
SPECIES
The species for this pokemon, including forme
TYPE: DexPokemon.ValueType
LEVEL
The level of this pokemon
TYPE: int
GENDER
The gender of this pokemon
TYPE: Optional[Literal['M', 'F']]
SHINY
Whether the pokemon is shiny or not
TYPE: bool
TERA
If this pokemon is teratyped, the string type of the new type. Else None.
TYPE: Optional[str]
CUR_HP
The current HP of the pokemon
TYPE: int
MAX_HP
The maximum HP of the pokemon
TYPE: int
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
Use Case(s) - Communicating which pokemon switched in, as well as info about the pokemon.
Message Format(s) - |switch|POKEMON|DETAILS|HP STATUS
Input Example(s) - |switch|p2a: Toxicroak|Toxicroak, L81, F|100/100
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_drag","title":"BattleMessage_drag
","text":"Message communicating that a pokemon has switched in.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon being dragged in
TYPE: PokemonIdentifier
SPECIES
The species for this pokemon, including forme
TYPE: DexPokemon.ValueType
LEVEL
The level of this pokemon
TYPE: int
GENDER
The gender of this pokemon
TYPE: Optional[Literal['M', 'F']]
SHINY
Whether the pokemon is shiny or not
TYPE: bool
TERA
If this pokemon is teratyped, the string type of the new type. Else None.
TYPE: Optional[str]
CUR_HP
The current HP of the pokemon
TYPE: int
MAX_HP
The maximum HP of the pokemon
TYPE: int
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
Use Case(s) - Communicating which pokemon was dragged in, as well as info about the pokemon.
Message Format(s) - |drag|POKEMON|DETAILS|HP STATUS
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_detailschange","title":"BattleMessage_detailschange
","text":"Message communicating that a pokemon has changed formes in a permanent way.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon changing formes
TYPE: PokemonIdentifier
SPECIES
The species for this pokemon, including forme
TYPE: DexPokemon.ValueType
LEVEL
The level of this pokemon
TYPE: int
GENDER
The gender of this pokemon
TYPE: Optional[Literal['M', 'F']]
SHINY
Whether the pokemon is shiny or not
TYPE: bool
TERA
If this pokemon is teratyped, the string type of the new type. Else None.
TYPE: Optional[str]
CUR_HP
The current HP of the pokemon
TYPE: Optional[str]
MAX_HP
The maximum HP of the pokemon
TYPE: Optional[str]
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
Use Case(s) - Communicating that a certain pokemon changed forme.
Message Format(s) - |detailschange|POKEMON|DETAILS
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_replace","title":"BattleMessage_replace
","text":"Message communicating that a pokemon has been replaced (Zoroark illusion ability).
ATTRIBUTE DESCRIPTION POKEMON
The pokemon being revealed (Zoroark)
TYPE: PokemonIdentifier
SPECIES
The species for this pokemon, including forme
TYPE: DexPokemon.ValueType
LEVEL
The level of this pokemon
TYPE: int
GENDER
The gender of this pokemon
TYPE: Optional[Literal['M', 'F']]
SHINY
Whether the pokemon is shiny or not
TYPE: bool
TERA
If this pokemon is teratyped, the string type of the new type. Else None.
TYPE: Optional[str]
CUR_HP
The current HP of the pokemon
TYPE: Optional[str]
MAX_HP
The maximum HP of the pokemon
TYPE: Optional[str]
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
Use Case(s) - Communicating that a certain pokemon has been replaced.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_swap","title":"BattleMessage_swap
","text":"Message communicating that a certain active slot has had its pokemon swapped with another.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon being swapped before
swapping
TYPE: PokemonIdentifier
POSITION
The slot that this Pokemon is being swapped to, as an integer
TYPE: int
EFFECT
An optional effect explaining what caused the swapping
TYPE: Optional[Effect]
Use Case(s) - Communicating that two pokemon have swapped active slots.
Message Format(s) - |swap|POKEMON|POSITION
- |swap|POKEMON|POSITION|[from]
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_cant","title":"BattleMessage_cant
","text":"Message communicating that a pokemon was unable to do something.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that was unable to act
TYPE: PokemonIdentifier
REASON
The reason that the pokemon was unable to do what it was trying to do
TYPE: str
MOVE
The move being used that was unable to be used. None if not applicable
TYPE: Optional[str]
Use Case(s) - Communicating that a pokemon failed to do something, with the reason it failed.
Message Format(s) - |cant|POKEMON|REASON|MOVE
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_faint","title":"BattleMessage_faint
","text":"Message communicating that a pokemon has fainted.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that fainted
TYPE: PokemonIdentifier
Use Case(s) - Communicating that a pokemon fainted.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_fail","title":"BattleMessage_fail
","text":"Message communicating that a pokemon has failed to do something.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that failed to do something
TYPE: PokemonIdentifier
EFFECT
The effect causing/explaining the fail. Is Optional since sometimes it fails with no explanation
TYPE: Optional[Effect]
Use Case(s) - Communicating that a pokemon failed to do something
- Communicate what effect caused the failure
- Communicate if a status caused the failure.
Message Format(s) - |-fail|POKEMON
- |-fail|POKEMON|EFFECT
- |-fail|POKEMON|STATUS
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_block","title":"BattleMessage_block
","text":"Message communicating that a pokemon has blocked an opposing action.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that was targeted but blocked something
TYPE: PokemonIdentifier
EFFECT
The reason this was able to be blocked
TYPE: Effect
Use Case(s) - Communicating that a pokemon was able to block some other action.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_notarget","title":"BattleMessage_notarget
","text":"Message communicating that no target was available at move-use time.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that had no target available
TYPE: PokemonIdentifier
Use Case(s) - Communicating that a pokemon had no target available.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_miss","title":"BattleMessage_miss
","text":"Message communicating that a given source pokemon missed its action.
ATTRIBUTE DESCRIPTION SOURCE
The pokemon missing the attack
TYPE: PokemonIdentifier
TARGET
The pokemon evading (If applicable, can be None)
TYPE: Optional[PokemonIdentifier]
Use Case(s) - Communicating that a pokemon missed.
- Communicating which pokemon was targeted but avoided the action.
Message Format(s) - |-miss|SOURCE
- |-miss|SOURCE|TARGET
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_damage","title":"BattleMessage_damage
","text":"Message communicating that a pokemon has taken damage.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon being hurt
TYPE: PokemonIdentifier
CUR_HP
The current HP of the pokemon
TYPE: int
MAX_HP
The maximum HP of the pokemon. None if the pokemon is fainted
TYPE: Optional[int]
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
EFFECT
The reason this damage was dealt, if not from a move
TYPE: Optional[Effect]
Use Case(s) - Communicating that a pokemon took damage in some way.
Message Format(s) - |-damage|POKEMON|HP STATUS
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_heal","title":"BattleMessage_heal
","text":"Message communicating that a pokemon has healed some health.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon being healed
TYPE: PokemonIdentifier
CUR_HP
The current HP of the pokemon
TYPE: int
MAX_HP
The maximum HP of the pokemon
TYPE: int
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
EFFECT
The reason this health was healed, if not from a move
TYPE: Optional[Effect]
Use Case(s) - Communicating that a pokemon healed in some way.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_sethp","title":"BattleMessage_sethp
","text":"Message communicating that a pokemon has an exact hp amount.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon getting the HP set
TYPE: PokemonIdentifier
CUR_HP
The current HP of the pokemon
TYPE: int
MAX_HP
The maximum HP of the pokemon
TYPE: int
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
EFFECT
The reason this health was healed
TYPE: Optional[Effect]
Use Case(s) - Communicating that a pokemon had its health directly set.
Message Format(s) - |-sethp|POKEMON|HP STATUS|EFFECT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_status","title":"BattleMessage_status
","text":"Message communicating that a pokemon has gained a status.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon gaining the status
TYPE: PokemonIdentifier
STATUS
The status being gained
TYPE: DexStatus.ValueType
Use Case(s) - Communicating that a pokemon has gained a status condition.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_curestatus","title":"BattleMessage_curestatus
","text":"Message communicating that a pokemon has lost a status.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon losing the status
TYPE: PokemonIdentifier
STATUS
The status being lost
TYPE: DexStatus.ValueType
Use Case(s) - Communicating that a pokemon has lost a status condition.
Message Format(s) - |-curestatus|POKEMON|STATUS
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_cureteam","title":"BattleMessage_cureteam
","text":"Message communicating that a team has been cured of all status conditions.
ATTRIBUTE DESCRIPTION EFFECT
The effect causing the team to be healed
TYPE: Effect
Use Case(s) - Communicating that all pokemon have been cured.
Message Format(s) - |-cureteam|POKEMON|EFFECT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_boost","title":"BattleMessage_boost
","text":"Message communicating that a pokemon has gained some stat boost.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon getting the boost
TYPE: PokemonIdentifier
STAT
Which stat is being boosted
TYPE: PokeStat
AMOUNT
By how much this stat is being boosted, as an integer. Can be 0 if at cap
TYPE: int
Use Case(s) - Communicating that a pokemon received a single stat boost.
Message Format(s) - |-boost|POKEMON|STAT|AMOUNT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_unboost","title":"BattleMessage_unboost
","text":"Message communicating that a pokemon has had some stat lowered.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon getting the boost
TYPE: PokemonIdentifier
STAT
Which stat is being boosted
TYPE: PokeStat
AMOUNT
By how much this stat is being unboosted, as an integer. Can be 0 if at cap
TYPE: int
Use Case(s) - Communicating that a pokemon received a single stat unboost.
Message Format(s) - |-unboost|POKEMON|STAT|AMOUNT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_setboost","title":"BattleMessage_setboost
","text":"Message communicating that a pokemon has had some stat set to a certain boost value.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon getting the boost
TYPE: PokemonIdentifier
STAT
Which stat is being boosted
TYPE: PokeStat
AMOUNT
The new value being assigned for this stat boost
TYPE: int
Use Case(s) - Communicating that a pokemon received a set stat boost value.
Message Format(s) - |-setboost|POKEMON|STAT|AMOUNT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_swapboost","title":"BattleMessage_swapboost
","text":"Message communicating that two specific pokemon have had their stat boosts switched.
Warning Not yet implemented!
ATTRIBUTE DESCRIPTION POKEMON
The pokemon getting the boost
TYPE: str
Use Case(s) - Communicating that two pokemon have had their respective stat boosts swapped.
Message Format(s) - |-swapboost|SOURCE|TARGET|STATS
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_invertboost","title":"BattleMessage_invertboost
","text":"Message communicating that a pokemon has had its stat boosts inverted.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon getting the boost inverted
TYPE: PokemonIdentifier
Use Case(s) - Communicating that a pokemon has had its stat boosts inverted.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_clearboost","title":"BattleMessage_clearboost
","text":"Message communicating that a pokemon has had its stat boosts cleared.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that had its stat boosts cleared.
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has had its stat boosts cleared.
Message Format(s): Input Example(s) - |-clearboost|p1a: Pikachu
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_clearallboost","title":"BattleMessage_clearallboost
","text":"Message communicating that all pokemon have had their stat boosts cleared.
Use Case(s): - Communicating that all pokemon have had their stat boosts cleared.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_clearpositiveboost","title":"BattleMessage_clearpositiveboost
","text":"Message communicating that a pokemon has had its positive stat boosts cleared.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that had its positive stat boosts cleared.
TYPE: PokemonIdentifier
EFFECT
The effect causing this positive boost clearance
TYPE: Effect
Use Case(s): - Communicating that a pokemon has had its positive stat boosts cleared.
Message Format(s): - |-clearpositiveboost|TARGET|EFF_SOURCE|EFFECT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_clearnegativeboost","title":"BattleMessage_clearnegativeboost
","text":"Message communicating that a pokemon has had its negative stat boosts cleared.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that had its negative stat boosts cleared.
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has had its negative stat boosts cleared.
Message Format(s): - |-clearnegativeboost|POKEMON
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_copyboost","title":"BattleMessage_copyboost
","text":"Message communicating that a pokemon has had its stat boosts copied.
Warning Not yet implemented!
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that had its stat boosts copied.
TYPE: str
Use Case(s): - Communicating that a pokemon has had its stat boosts copied.
Message Format(s): - |-copyboost|SOURCE|TARGET
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_weather","title":"BattleMessage_weather
","text":"Message communicating that the weather has changed.
ATTRIBUTE DESCRIPTION WEATHER
The weather being set
TYPE: DexWeather.ValueType
Use Case(s): - Communicating that the weather has changed.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_fieldstart","title":"BattleMessage_fieldstart
","text":"Message communicating that a field condition has started.
ATTRIBUTE DESCRIPTION EFFECT
The effect starting for the field.
TYPE: Effect
Use Case(s): - Communicating that a field condition has started.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_fieldend","title":"BattleMessage_fieldend
","text":"Message communicating that a field condition has ended.
ATTRIBUTE DESCRIPTION EFFECT
The effect ending for the field.
TYPE: Effect
Use Case(s): - Communicating that a field condition has ended.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_sidestart","title":"BattleMessage_sidestart
","text":"Message communicating that a side condition has started.
ATTRIBUTE DESCRIPTION PLAYER
The player id of the impacted player
TYPE: str
CONDITION
The field condition starting
TYPE: str
Use Case(s): - Communicating that a side condition has started.
Message Format(s): - |-sidestart|SIDE|CONDITION
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_sideend","title":"BattleMessage_sideend
","text":"Message communicating that a side condition has ended.
ATTRIBUTE DESCRIPTION PLAYER
The player id of the impacted player
TYPE: str
CONDITION
The field condition starting
TYPE: str
EFFECT
The effect that is causing the conditon to end
TYPE: Optional[Effect]
Use Case(s): - Communicating that a side condition has ended.
Message Format(s): - |-sideend|SIDE|CONDITION
- |-sideend|SIDE|CONDITION|[from]
- |-sideend|SIDE|CONDITION|[of]
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_swapsideconditions","title":"BattleMessage_swapsideconditions
","text":"Message communicating that a side condition has been swapped.
Use Case(s): - Communicating that a side condition has been swapped.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_volstart","title":"BattleMessage_volstart
","text":"Message communicating that a volatile effect has started.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon this volatile effect is started for
TYPE: PokemonIdentifier
EFFECT
The effect that caused this volatile status
TYPE: Optional[Effect]
Use Case(s): - Communicating that a volatile effect has started.
Message Format(s): - |-start|POKEMON|VOLATILE
- |-start|POKEMON|MOVE
- |-start|POKEMON|MOVE|MOVE
- |-start|POKEMON|MOVE|[from]
- |-start|POKEMON|MOVE|[from]|[of]
- |-start|POKEMON|typechange|TYPE
- |-start|POKEMON|typechange|TYPE|[from]
- |-start|POKEMON|typechange|TYPE|[from]|[of]
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_volend","title":"BattleMessage_volend
","text":"Message communicating that a volatile effect has ended.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon this volatile effect is ended for
TYPE: PokemonIdentifier
EFFECT
The effect that caused this volatile status
TYPE: Effect
SILENT
Whether this message is silent or not
TYPE: bool
Use Case(s): - Communicating that a volatile effect has ended.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_crit","title":"BattleMessage_crit
","text":"Message communicating that a pokemon has had a critical hit.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that had a critical hit
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has had a critical hit.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_supereffective","title":"BattleMessage_supereffective
","text":"Message communicating that a pokemon has been hit super effectively.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that was hit super effectively
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has been hit super effectively.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_resisted","title":"BattleMessage_resisted
","text":"Message communicating that a pokemon has resisted an attack.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that resisted the attack
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has resisted an attack.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_immune","title":"BattleMessage_immune
","text":"Message communicating that a pokemon has been immune to an attack.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that was immune to the attack
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has been immune to an attack.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_item","title":"BattleMessage_item
","text":"Message communicating that a pokemon has had its item revealed.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon whose item is revealed
TYPE: PokemonIdentifier
ITEM
The item being revealed
TYPE: str
EFFECT
The effect that revealed the item, if applicable. Not used when auto-revealed (air balloon)
TYPE: Optional[Effect]
Use Case(s): - Communicating that a pokemon has had its item revealed.
Message Format(s): - |-item|POKEMON|ITEM
- |-item|POKEMON|ITEM|[from]EFFECT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_enditem","title":"BattleMessage_enditem
","text":"Message communicating that a pokemon has had its item destroyed.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon whose item is destroyed
TYPE: PokemonIdentifier
ITEM
The item being destroyed
TYPE: str
EFFECT
The effect that destroyed the item, if applicable.
TYPE: Optional[Effect]
Use Case(s): - Communicating that a pokemon has had its item destroyed.
Message Format(s): - |-enditem|POKEMON|ITEM
- |-enditem|POKEMON|ITEM|[from]EFFECT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_ability","title":"BattleMessage_ability
","text":"Message communicating that a pokemon has had its ability revealed.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon whose ability is revealed
TYPE: PokemonIdentifier
ABILITY
The ability being revealed
TYPE: DexAbility.ValueType
EFFECT
The effect that revealed the ability, if applicable.
TYPE: Optional[Effect]
Use Case(s): - Communicating that a pokemon has had its ability revealed.
Message Format(s): - |-ability|POKEMON|ABILITY
- |-ability|POKEMON|ABILITY|[from] EFFECT
- |-ability|POKEMON|ABILITY|[from] EFFECT|[of] POKEMON
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_endability","title":"BattleMessage_endability
","text":"Message communicating that a pokemon has had its ability suppressed.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon whose ability is suppressed
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has had its ability suppressed.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_transform","title":"BattleMessage_transform
","text":"Message communicating that a pokemon has transformed into another pokemon.
ATTRIBUTE DESCRIPTION SOURCE
The pokemon transforming
TYPE: PokemonIdentifier
TARGET
The pokemon it's transforming into
TYPE: PokemonIdentifier
EFFECT
The optional effect explaining the transformation
TYPE: Optional[Effect]
Use Case(s): - Communicating that a pokemon has transformed into another pokemon.
Message Format(s): - |-transform|SOURCE|TARGET|
- |-transform|SOURCE|TARGET|[from]
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_mega","title":"BattleMessage_mega
","text":"Message communicating that a pokemon has mega evolved.
Warning Not implemented yet.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that mega evolved
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has mega evolved.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_primal","title":"BattleMessage_primal
","text":"Message communicating that a pokemon has gone primal.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon going primal
TYPE: PokemonIdentifier
ITEM
The held item that is being used
TYPE: str
Use Case(s): - Communicating that a pokemon has gone primal.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_burst","title":"BattleMessage_burst
","text":"Message communicating that a pokemon has burst.
Warning Not implemented yet.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that burst
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has burst.
Message Format(s): - |-burst|POKEMON|SPECIES|ITEM
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_zpower","title":"BattleMessage_zpower
","text":"Message communicating that a pokemon has used a Z move.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon using the Z move
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has used a Z move.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_zbroken","title":"BattleMessage_zbroken
","text":"Message communicating that a pokemon's Z move is over.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon whose Z move is over
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon's Z move is over.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_activate","title":"BattleMessage_activate
","text":"Message communicating that a pokemon has activated an effect.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon activating the effect
TYPE: PokemonIdentifier
EFFECT
The effect being activated
TYPE: Effect
Use Case(s): - Communicating that a pokemon has activated an effect.
Message Format(s): - |-activate|POKEMON|EFFECT
- |-activate|POKEMON|VOLATILE
- |-activate|POKEMON|MOVE|EFFECT
- |-activate|POKEMON|ABILITY|EFFECT
- |-activate|POKEMON|ITEM|EFFECT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_hint","title":"BattleMessage_hint
","text":"Message communicating that a hint has been sent to the player.
ATTRIBUTE DESCRIPTION MESSAGE
The message sent to you as a hint
TYPE: str
Use Case(s): - Communicating that a hint has been sent to the player.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_center","title":"BattleMessage_center
","text":"Message communicating that the pokemon in a triple battle have been centered.
Use Case(s): - Communicating that the pokemon in a triple battle have been centered.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_message","title":"BattleMessage_message
","text":"Message communicating that a message has been sent.
ATTRIBUTE DESCRIPTION MESSAGE
The message sent as part of this notification
TYPE: str
Use Case(s): - Communicating that a message has been sent.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_combine","title":"BattleMessage_combine
","text":"Message communicating that two moves have been combined.
Use Case(s): - Communicating that two moves have been combined.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_waiting","title":"BattleMessage_waiting
","text":"Message communicating that a pokemon is waiting for the target.
Warning Not implemented yet.
ATTRIBUTE DESCRIPTION POKEMON
The main pokemon identifier relevant
TYPE: str
Use Case(s): - Communicating that a pokemon is waiting for the target.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_prepare","title":"BattleMessage_prepare
","text":"Message communicating that a pokemon is preparing a move.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon preparing the move
TYPE: PokemonIdentifier
MOVE
The move being prepared
TYPE: str
Use Case(s): - Communicating that a pokemon is preparing a move.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_mustrecharge","title":"BattleMessage_mustrecharge
","text":"Message communicating that a pokemon must recharge.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that must recharge
TYPE: str
Use Case(s): - Communicating that a pokemon must recharge.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_nothing","title":"BattleMessage_nothing
","text":"Message communicating that nothing happened.
Use Case(s): - Communicating that nothing happened.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_hitcount","title":"BattleMessage_hitcount
","text":"Message communicating that a pokemon has been hit multiple times.
ATTRIBUTE DESCRIPTION POKEMON
The Pokemon being hit multiple times. Can be slotless
TYPE: PokemonIdentifier
NUM
The number of hits as an integer
TYPE: int
Use Case(s): - Communicating that a pokemon has been hit multiple times.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_singlemove","title":"BattleMessage_singlemove
","text":"Message communicating that a pokemon has used a single move.
ATTRIBUTE DESCRIPTION POKEMON
The Pokemon using this single move
TYPE: PokemonIdentifier
MOVE
The move being used
TYPE: DexMove.ValueType
Use Case(s): Message Format(s): - |-singlemove|POKEMON|MOVE
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_singleturn","title":"BattleMessage_singleturn
","text":"Message communicating that a pokemon has used a single turn move.
ATTRIBUTE DESCRIPTION POKEMON
The Pokemon using this single move
TYPE: PokemonIdentifier
MOVE
The move being used
TYPE: DexMove.ValueType
Use Case(s): - Communicating that a pokemon has used a single turn move.
Message Format(s): - |-singleturn|POKEMON|MOVE
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_formechange","title":"BattleMessage_formechange
","text":"Message communicating that a pokemon has changed formes.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon changing formes in some temporary way
TYPE: PokemonIdentifier
SPECIES
The species for this pokemon, including forme
TYPE: DexPokemon.ValueType
EFFECT
Optionally, what caused the formechange
TYPE: Optional[Effect]
Use Case(s): - Communicating that a pokemon has changed formes.
Message Format(s): - |-formechange|POKEMON|SPECIES
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_terastallize","title":"BattleMessage_terastallize
","text":"Message communicating that a pokemon has terastallized.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon doing the terastallization
TYPE: PokemonIdentifier
TYPE
The type being terastallized
TYPE: DexType.ValueType
Use Case(s): - Communicating that a pokemon has terastallized.
Message Format(s): - |terastallize|POKEMON|TYPE
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_fieldactivate","title":"BattleMessage_fieldactivate
","text":"Message communicating that a field effect has been activated.
ATTRIBUTE DESCRIPTION EFFECT
The effect causing the field activation
TYPE: Effect
Use Case(s): - Communicating that a field effect has been activated.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_error","title":"BattleMessage_error
","text":"Message communicating that an error has occurred.
ATTRIBUTE DESCRIPTION MESSAGE
The error message sent by showdown
TYPE: str
Use Case(s): - Communicating that an error has occurred.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_bigerror","title":"BattleMessage_bigerror
","text":"Message communicating that a big error has occurred.
ATTRIBUTE DESCRIPTION MESSAGE
The error message sent by showdown
TYPE: str
Use Case(s): - Communicating that a big error has occurred.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_init","title":"BattleMessage_init
","text":"Message communicating that a battle has been initialized.
Use Case(s): - Communicating that a battle has been initialized.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_deinit","title":"BattleMessage_deinit
","text":"Message communicating that a battle has been deinitialized.
Use Case(s): - Communicating that a battle has been deinitialized.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_title","title":"BattleMessage_title
","text":"Message communicating that a title has been sent for this battle.
ATTRIBUTE DESCRIPTION TITLE
The title of this match as shown on pokemon showdown
TYPE: str
Use Case(s): - Communicating that a title has been sent for this battle.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_join","title":"BattleMessage_join
","text":"Message communicating that a player has joined the battle.
ATTRIBUTE DESCRIPTION USERNAME
The username of the joining player
TYPE: str
Use Case(s): - Communicating that a player has joined the battle.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_leave","title":"BattleMessage_leave
","text":"Message communicating that a player has left the battle.
ATTRIBUTE DESCRIPTION USERNAME
The username of the leaving player
TYPE: str
Use Case(s): - Communicating that a player has left the battle.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_raw","title":"BattleMessage_raw
","text":"Message communicating that a raw message has been sent.
ATTRIBUTE DESCRIPTION MESSAGE
The raw message from Showdown. Typically used for rating changes.
TYPE: str
Use Case(s): - Communicating that a raw message has been sent.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_anim","title":"BattleMessage_anim
","text":"Message communicating that an override animation has been sent.
Warning This has not been fully implemented / tested on large data yet.
ATTRIBUTE DESCRIPTION SOURCE
The pokemon using the move
TYPE: PokemonIdentifier
TARGET
The pokemon being targeted by the move. If there is no target then this will instead be slotless
TYPE: PokemonIdentifier
MOVE
The move being used
TYPE: DexMove.ValueType
NO_TARGET
Whether the move is labeled as notarget or not
TYPE: bool
Use Case(s): - Communicating that a move should use a different animation from typical.
Message Format(s): - |-anim|SOURCE|MOVE|TARGET|[notarget]
Input Example(s) "},{"location":"showdown/reference/battle-messages/#message-utility-classes","title":"Message Utility Classes","text":"Contains BaseModels for BattleMessage parsing and processing.
Remember to use BattleMessage.from_message directly, unless you are building test cases where you want to assert that a given message leads to a certain subclass of BattleMessage. from_message
will auto-detect which BMType the given message corresponds to, and return the associated subclass (or an error detailing what went wrong) for you.
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BMType","title":"BMType
","text":"String-Enum for holding all unique categories of Showdown Battle Messages.
See https://github.com/smogon/pokemon-showdown/blob/master/sim/SIM-PROTOCOL.md for the full list of battle messages
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.PokeStat","title":"PokeStat
","text":"Helper enum for identifying valid stats.
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.PokemonIdentifier","title":"PokemonIdentifier
","text":"A BaseModel giving details about which Pokemon is being talked about.
Attributes:
Name Type Description IDENTITY
str
The unique identifier for a pokemon. Looks like ARCANINE
if the input is p1: Arcanine
PLAYER
str
The player this pokemon belongs to
SLOT
Optional[str]
Optionally, the slot this pokemon is in. Will be None if slot info isn't given in the message
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.PokemonIdentifier.from_ident_string","title":"from_ident_string(ident)
staticmethod
","text":"Create a new PokemonIdentifier from an identifier string without slot information.
Parameters:
Name Type Description Default ident
str
An input string to extract field information from. Looks like \"p1: Arcanine\"
required Returns:
Name Type Description PokemonIdentifier
PokemonIdentifier
A newly created PokemonIdentifier object from this string
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.PokemonIdentifier.from_slot_string","title":"from_slot_string(slot)
staticmethod
","text":"Create a new PokemonIdentifier from an identifier string with slot information.
Parameters:
Name Type Description Default slot
str
An input string to extract field information from. Looks like \"p1a: Arcanine\"
required Returns:
Name Type Description PokemonIdentifier
PokemonIdentifier
A newly created PokemonIdentifier object from this string
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.PokemonIdentifier.from_string","title":"from_string(string)
staticmethod
","text":"Auto-Create a new PokemonIdentifier based on which type of identity string is given.
Parameters:
Name Type Description Default string
str
An input string to extract field information from. Looks like \"p1a: Arcanine\"
required Returns:
Name Type Description PokemonIdentifier
PokemonIdentifier
A newly created PokemonIdentifier object from this string
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.EffectType","title":"EffectType
","text":"Helper class to identify which category of effect is being activated.
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.Effect","title":"Effect
","text":"A helper class for many Battle Message types that rely on something happening to cause the message effect.
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.RequestPoke","title":"RequestPoke
","text":"A helper class to contain details about a pokemon held in the side
data of a request.
Attributes:
Name Type Description IDENT
PokemonIdentifier
The string pokemon identifier (without slot information)
SPECIES
DexPokemon.ValueType
The species for this pokemon, including forme
LEVEL
int
The level of this pokemon
GENDER
Optional[Literal['M', 'F']]
The gender of this pokemon
SHINY
bool
Whether the pokemon is shiny or not
TERA
Optional[DexType.ValueType]
If this pokemon is teratyped, the DexType of the new type. Else None.
CUR_HP
int
The current HP of the pokemon
MAX_HP
Optional[int]
The maximum HP of the pokemon, None if the pokemon is fainted
STATUS
Optional[DexStatus.ValueType]
The status of the pokemon. Can be None if there is no status
ACTIVE
bool
Whether the pokemon is active or not
STATS
Dict[PokeStat, int]
A dictionary of stat->values for each stat of this pokemon (before modifiers)
MOVES
List[DexMove.ValueType]
The list of moves this pokemon knows, without pp information
BASE_ABILITY
DexAbility.ValueType
The base ability of this pokemon, ignoring any ability switching shenanigans
ABILITY
Optional[DexAbility.ValueType]
The current ability of this pokemon. Only used in certain gens, can be None
ITEM
Optional[DexItem.ValueType]
The held item of this pokemon. None if no item is held
POKEBALL
str
Which pokeball this pokemon is contained in
COMMANDING
Optional[bool]
Tatsugiri commander mechanic. True if active, false if not, None if older gen
REVIVING
Optional[bool]
Revival Blessing flag (I think?)
TERATYPE
Optional[DexType.ValueType]
The type that this pokemon can teratype into
TERASTALLIZED
Optional[DexType.ValueType]
The type that this pokemon is teratyped into. None if not applicable
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.MoveData","title":"MoveData
","text":"A helper class to contain details about a move held in the active data for a request.
Attributes:
Name Type Description NAME
str
The friendly name of the move
ID
DexMove.ValueType
The id of the move
CUR_PP
Optional[int]
The integer amount of times this move can still be used. None if Trapped
MAX_PP
Optional[int]
The integer amount of times this move can ever be used. None if Trapped
TARGET
Optional[DexMoveTarget.ValueType]
The targetting type of this move. None if Trapped
DISABLED
Optional[bool]
Whether this move is disabled or not. None if Trapped
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.ActiveOption","title":"ActiveOption
","text":"A helper class to contain details about all moves available for an active pokemon in a request.
Attributes:
Name Type Description MOVES
List[MoveData]
A list of available moves for this slot
CAN_MEGA
bool
Whether the pokemon can mega evolve
CAN_ZMOVE
bool
Whether the pokemon can zmove
CAN_DYNA
bool
Whether the pokemon can dynamax
CAN_TERA
bool
Whether the pokemon can teratype
TRAPPED
bool
Whether the user is trapped
"},{"location":"showdown/reference/standard-messages/","title":"The Standard Showdown Message","text":""},{"location":"showdown/reference/standard-messages/#the-message-object","title":"The Message object","text":"The base class for all specific Message subclasses to be built from.
When parsing a string message, you should directly use this class's from_message
function, which will auto-identify which subclass (if any) the given string belongs to.
Across all Messages, you will be able to access both MTYPE and MESSAGE, though you shouldn't need to access MESSAGE directly. (If you do, then we must be missing some data that exists in the raw string)
ATTRIBUTE DESCRIPTION MTYPE
The message type of this message. Must be a vaild showdown general message.
TYPE: MType
MESSAGE
The raw message line as sent from showdown. Shouldn't need to be used but worth keeping.
TYPE: str
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message.from_message","title":"from_message(message)
staticmethod
","text":"Create a specific Message object from a raw string message.
This is used for general Showdown Messages, compared to the BattleMessage class meant for battle details.
PARAMETER DESCRIPTION message
The newline-stripped single string message as sent by the server.
TYPE: str
RETURNS DESCRIPTION Message
An initialized subclass of Message
, for the corresponding class for this message type.
TYPE: 'Message'
"},{"location":"showdown/reference/standard-messages/#message-subclasses","title":"Message Subclasses","text":"Contains BaseModels for Message parsing and processing.
Remember to use Message.from_message directly, unless you are building test cases where you want to assert that a given message leads to a certain subclass of Message. from_message
will auto-detect which MType the given message corresponds to, and return the associated subclass (or an error detailing what went wrong) for you.
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_challstr","title":"Message_challstr
","text":"Message containing a login challenge string.
ATTRIBUTE DESCRIPTION CHALLSTR
The string challenge string
TYPE: str
Use Case(s) - Gives the user a challenge string to submit to the login server to get a token
Message Format(s) Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_customgroups","title":"Message_customgroups
","text":"Message containing info about server custom groups.
ATTRIBUTE DESCRIPTION CUSTOM_GROUPS
The list of custom groups
TYPE: List[CustomGroup]
Use Case(s) - To communicate all usergroups
Message Format(s) - |customgroups|CUSTOMGROUPS
Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_formats","title":"Message_formats
","text":"Message containing info about server enabled formats.
ATTRIBUTE DESCRIPTION FORMATS
The list of formats
TYPE: List[str]
Use Case(s) - To communicate all available formats the user can play
Message Format(s) Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_init","title":"Message_init
","text":"Message notifying about a battle starting.
Use Case(s) - To communicate battle initialization notice.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_join","title":"Message_join
","text":"Message containing info about a joining user.
ATTRIBUTE DESCRIPTION USERNAME
The username of the joining player
TYPE: str
Use Case(s) - To communicate player room user entry.
Message Format(s) Input Example(s) - |j|\u2606colress-gpt-test1
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_leave","title":"Message_leave
","text":"Message containing info about a leaving user.
ATTRIBUTE DESCRIPTION USERNAME
The username of the leaving player
TYPE: str
Use Case(s) - To communicate player room user exit.
Message Format(s) - |leave|USERNAME
- |l|USERNAME
Input Example(s) - |l|\u2606colress-gpt-test1
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_pm","title":"Message_pm
","text":"Message containing a PM to/from the user.
ATTRIBUTE DESCRIPTION SOURCE
The username of the user who sent the pm
TYPE: str
TARGET
The username of the user who received the pm
TYPE: str
PM
The message. Newlines are denoted with |
TYPE: str
IS_CHALLENGE
Whether this PM is a challenge to a battle
TYPE: bool
CHALLENGE_FORMAT
The format of the challenge if it is a challenge
TYPE: Optional[str]
Use Case(s) - Notify the user about a PM received.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_title","title":"Message_title
","text":"Message notifying about the title of a room.
ATTRIBUTE DESCRIPTION TITLE
The title of this match as shown on pokemon showdown
TYPE: str
Use Case(s) - To communicate room title info.
Message Format(s) Input Example(s) - |title|colress-gpt-test1 vs. colress-gpt-test2
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_updatechallenges","title":"Message_updatechallenges
","text":"Message containing a current challenge searches, if any.
ATTRIBUTE DESCRIPTION OUTGOING
A dictionary of username->format for each outgoing challenge
TYPE: Dict[str, str]
INCOMING
A dictionary of username->format for each incoming challenge
TYPE: Dict[str, str]
Use Case(s) - Gives the user an update about all of their current battle challenge requests.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_updatesearch","title":"Message_updatesearch
","text":"Message containing a current ladder searches, if any.
ATTRIBUTE DESCRIPTION SEARCHING
A list of formats currently searching for a ladder match
TYPE: List[str]
GAMES
A optional dictionary of game-id->format of currently ongoing games
TYPE: Optional[Dict[str, str]]
Use Case(s) - Gives the user an update about all of their current battle search requests.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_updateuser","title":"Message_updateuser
","text":"Message containing info about your user settings / login information.
ATTRIBUTE DESCRIPTION USERNAME
The username of your current login
TYPE: str
NAMED
Whether you are currently logged in or not
TYPE: bool
AVATAR
Either a number id of the user's avatar or a custom value
TYPE: Union[int, str]
SETTINGS
The user settings for your current user session
TYPE: UserSettings
Use Case(s) - To communicate any changes to your login / user session.
Message Format(s) - |updateuser|USER|NAMED|AVATAR|SETTINGS
Input Example(s) "},{"location":"showdown/reference/standard-messages/#message-utility-classes","title":"Message Utility Classes","text":"Contains BaseModels for Message parsing and processing.
Remember to use Message.from_message directly, unless you are building test cases where you want to assert that a given message leads to a certain subclass of Message. from_message
will auto-detect which MType the given message corresponds to, and return the associated subclass (or an error detailing what went wrong) for you.
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.CustomGroup","title":"CustomGroup
","text":"A helper class to contain information about server custom groups.
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.MType","title":"MType
","text":"String-Enum for holding all unique categories of Showdown Generic Messages.
See https://github.com/smogon/pokemon-showdown/blob/master/PROTOCOL.md for the (partial) list of message types
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.UserSettings","title":"UserSettings
","text":"A helper class to contain information about user settings.
Attributes:
Name Type Description BLOCK_CHALLENGES
bool
Whether you are currently blocking challenges
BLOCK_PMS
bool
Whether you are currently blocking PMs
IGNORE_TICKETS
bool
Whether you are currently ignoring tickets
HIDE_BATTLES
bool
Whether you are currently hiding battles on your trainer card
BLOCK_INVITES
bool
Whether you are currently blocking invites
DO_NOT_DISTURB
bool
Your current do not disturb setting
BLOCK_FRIEND_REQUESTS
bool
Whether you are currently blocking friend requests
ALLOW_FRIEND_NOTIFICATIONS
bool
Whether you are currently allowing friend notifications
DISPLAY_BATTLES
bool
Whether you are currently displaying battles to friends
HIDE_LOGINS
bool
Whether you are currently hiding logins
HIDDEN_NEXT_BATTLE
bool
Whether you are hiding your next battle or not
INVITE_ONLY_NEXT_BATTLE
bool
Whether you are limiting your next battle to invite only or not
LANGUAGE
Optional[str]
The language set by your user
"}]}
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Welcome to the Poketypes Docs!","text":"This site contains the project documentation for the poketypes
project, whose goal is to provide clear, consistent, correct data about Pokemon, using the same base data as Pokemon Showdown.
"},{"location":"#table-of-contents","title":"Table Of Contents","text":"This package provides two very useful modules for handling Pokemon data:
dex
: contains Pokemon Enums, Data Classes, and an instantiated information center Gen
showdown
: provides two main classes Message
and BattleMessage
, for processing showdown communications
Based on the needs of your project, you may need one or both of these.
There is also the module protos
, which contains the logic for generating the DexClass
core Enums used in dex
. As an end-user of the typing and data structures in ths package, you don't need to access anything in protos
, however, if you want to have data-structure / enum support for more niche showdown mods, contributions to the protos
class would be greatly appreciated.
"},{"location":"#project-overview","title":"Project Overview","text":"Fully type-hinted, consistently labeled, feature rich information about Pokemon.
Modules exported by this package dex
: Contains Enums and BaseModels for all things pokemon data related. showdown
: Contains models related to showdown message processing. protos
: Contains tools related to protobuf generation.
"},{"location":"about/about/","title":"The Core Team","text":""},{"location":"about/changelog/","title":"Changelog","text":"Changelog will not be 100% accurate until the official 1.0.0 release. Right now each release is a mash-up of various message tweaks, documenation additions, field reworkings, etc..
I'll try to keep a generally accurate log until then mostly for my own benefit, but take it with a grain of salt
"},{"location":"about/changelog/#021","title":"0.2.1","text":""},{"location":"about/changelog/#changed","title":"Changed","text":" - Remaining docstrings have been added
- flake8 linting detects 0 issues!
- Showdown reference pages for general messages and battle messages are updated
"},{"location":"about/changelog/#020","title":"0.2.0","text":""},{"location":"about/changelog/#added","title":"Added","text":" - mkdocs documentation generation
- flake8 linting (with pydoclint and pydocstyle extensions)
- This changelog!
"},{"location":"about/changelog/#changed_1","title":"Changed","text":" - Lots of docstrings added/tweaked following google style guide
"},{"location":"about/changelog/#010","title":"0.1.0","text":""},{"location":"about/changelog/#added_1","title":"Added","text":" dex
, showdown
, and protos
modules with base functionality - project folder structure
- poetry dependency setup
"},{"location":"about/license/","title":"License","text":"MIT License
Copyright (c) 2023 Trevor Wieland
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"},{"location":"dex/","title":"Dex Intro","text":""},{"location":"dex/#5-minute-summary","title":"5-Minute Summary","text":"In the poketypes
package, we include the module dex
, which contains two different types of data structures, so-called DexClass Enums, which contain uniquely enumerated labels for everything from pokemon formes to items to moves and more. The other contained data structure is the PokedexClass BaseModel, which are pydantic BaseModels, meant for holding reference material about a specific corresponding DexClass label.
For example, one specific DexClass is the DexPokemon
, an Enum which maps every distinct pokemon forme (base, cosmetic, temporary, etc.) to a unique integer. So we have things like DexPokemon.POKEMON_MAGIKARP
, which is mapped to the integer 129000. Then, we have the PokedexPokemon
BaseModel, whose purpose would be to store all useful information about each specific corresponding DexPokemon
id, such as the types of the pokemon (each stored as a DexType
), the learnset of the pokemon (stored as DexMove
), etc..
This means that if you are building logic for interpretting a pokemon battle, rather than relying on string comparisons which can both be slow and inconsistent, you can instead use included functions such as cast2dex
, which can take input strings and a relevant DexClass, and return the correct label to use.
These extra layers of labeling may seem cumbersome to work with at first, but since we provide all of the cleaning functions you could need to transform between them, the trade-off for using just a few extra lines of code is 100% guarunteed label consistency and accuracy, with minimal risk of typos.
For instance, you might care about checking if an opponent pokemon can potentially have the ability levitate. Then you could directly use DexAbility.ABILITY_LEVITATE
, checking if this label exists in the corresponding PokedexPokemon.abilities
. Since no string comparisons are happening, there's no risk of accidentally spelling levitate wrong since the type hinting will inform you.
Lastly, there is the actual pokedex instances, which are accessed by calling dex.gen()
. This returns a pydantic object that has a pre-instantiated dictionary for Pokemon, Moves, and Items, which each map from their corresponding DexClass to their corresponding PokedexClass. For example, dex.gen(5).pokemon[DexPokemon.POKEMON_MAGIKARP]
will return the PokedexPokemon
object for Magikarp, will all the details already filled out, as it was in generation 5. If you leave out the gen number, it will automatically use the latest generation available.
"},{"location":"dex/#reference-links","title":"Reference Links","text":"For details on all the different kinds of DexClasses, see the reference page here
For details on all the different kinds of PokedexClasses, see the reference page here
For details on all the different cleaning utilities, see the reference page here
For details on the gen function, see the reference page here
"},{"location":"dex/reference/dex-classes/","title":"The DexClass","text":"poketypes.dex.dexdata_pb2
OR directly import from poketypes.dex
"},{"location":"dex/reference/dex-classes/#basics","title":"Basics","text":"Each DexClass is an auto-generated Enum using google's protobuf library, and the poketypes.protos
module. In order to use these Enums, you do not need to have the library installed, however if you want to generate your own Enums in this way, or modify how the existing ones are generating, you will need to do so.
Follow the steps in the contributing to get your local environment setup if you want to develop changes for these Enums.
"},{"location":"dex/reference/dex-classes/#reference","title":"Reference","text":"Generated protocol buffer code.
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexStat","title":"DexStat
","text":"Represents possible stats
Options:
- 0: Unassigned
- 1: Attack
- 2: Defence
- 3: Special Attack
- 4: Special Defence
- 5: Speed
- 6: Health
- 7: Evasion
- 8: Accuracy
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexGen","title":"DexGen
","text":"Represents supported Generations
Each integer gen is represented as its integer value.
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexMoveCategory","title":"DexMoveCategory
","text":"Represents possible move categories
Options:
- 0: Unassigned
- 1: Physical
- 2: Special
- 3: Status
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexMoveTarget","title":"DexMoveTarget
","text":"Represents possible move targets
Options:
- 0: Unassigned
- 1: Self
- 2: Adjacent Ally
- 3: Adjacent Ally or Self
- 4: All
- 5: All Adjacent
- 6: All Adjacent Foes
- 7: Allies
- 8: Ally Side
- 9: Ally Team
- 10: Any
- 11: Foe Side
- 12: Normal
- 13: Random Normal
- 14: Scripted
- 15: Adjacent Foe
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexType","title":"DexType
","text":"Auto-Generated by protogen.py Contains data for Gen 9
Represents possible Types
Options:
- 1: BUG
- 2: DARK
- 3: DRAGON
- 4: ELECTRIC
- 5: FAIRY
- 6: FIGHTING
- 7: FIRE
- 8: FLYING
- 9: GHOST
- 10: GRASS
- 11: GROUND
- 12: ICE
- 13: NORMAL
- 14: POISON
- 15: PSYCHIC
- 16: ROCK
- 17: STEEL
- 18: WATER
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexNature","title":"DexNature
","text":"Represents possible Natures
Options:
- 1: ADAMANT
- 2: BASHFUL
- 3: BOLD
- 4: BRAVE
- 5: CALM
- 6: CAREFUL
- 7: DOCILE
- 8: GENTLE
- 9: HARDY
- 10: HASTY
- 11: IMPISH
- 12: JOLLY
- 13: LAX
- 14: LONELY
- 15: MILD
- 16: MODEST
- 17: NAIVE
- 18: NAUGHTY
- 19: QUIET
- 20: QUIRKY
- 21: RASH
- 22: RELAXED
- 23: SASSY
- 24: SERIOUS
- 25: TIMID
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexPokemon","title":"DexPokemon
","text":"Represents possible Pokemons
Options:
- 1000: BULBASAUR
- 2000: IVYSAUR
- 3000: VENUSAUR
- 3001: VENUSAURMEGA
- 3002: VENUSAURGMAX
- 4000: CHARMANDER
- 5000: CHARMELEON
- 6000: CHARIZARD
- 6001: CHARIZARDMEGAX
- 6002: CHARIZARDMEGAY
- 6003: CHARIZARDGMAX
- 7000: SQUIRTLE
- 8000: WARTORTLE
- 9000: BLASTOISE
- 9001: BLASTOISEMEGA
- 9002: BLASTOISEGMAX
- 10000: CATERPIE
- 11000: METAPOD
- 12000: BUTTERFREE
- 12001: BUTTERFREEGMAX
- 13000: WEEDLE
- 14000: KAKUNA
- 15000: BEEDRILL
- 15001: BEEDRILLMEGA
- 16000: PIDGEY
- 17000: PIDGEOTTO
- 18000: PIDGEOT
- 18001: PIDGEOTMEGA
- 19000: RATTATA
- 19001: RATTATAALOLA
- 20000: RATICATE
- 20001: RATICATEALOLA
- 20002: RATICATEALOLATOTEM
- 21000: SPEAROW
- 22000: FEAROW
- 23000: EKANS
- 24000: ARBOK
- 25000: PIKACHU
- 25001: PIKACHUCOSPLAY
- 25002: PIKACHUROCKSTAR
- 25003: PIKACHUBELLE
- 25004: PIKACHUPOPSTAR
- 25005: PIKACHUPHD
- 25006: PIKACHULIBRE
- 25007: PIKACHUORIGINAL
- 25008: PIKACHUHOENN
- 25009: PIKACHUSINNOH
- 25010: PIKACHUUNOVA
- 25011: PIKACHUKALOS
- 25012: PIKACHUALOLA
- 25013: PIKACHUPARTNER
- 25014: PIKACHUSTARTER
- 25015: PIKACHUGMAX
- 25016: PIKACHUWORLD
- 26000: RAICHU
- 26001: RAICHUALOLA
- 27000: SANDSHREW
- 27001: SANDSHREWALOLA
- 28000: SANDSLASH
- 28001: SANDSLASHALOLA
- 29000: NIDORANF
- 30000: NIDORINA
- 31000: NIDOQUEEN
- 32000: NIDORANM
- 33000: NIDORINO
- 34000: NIDOKING
- 35000: CLEFAIRY
- 36000: CLEFABLE
- 37000: VULPIX
- 37001: VULPIXALOLA
- 38000: NINETALES
- 38001: NINETALESALOLA
- 39000: JIGGLYPUFF
- 40000: WIGGLYTUFF
- 41000: ZUBAT
- 42000: GOLBAT
- 43000: ODDISH
- 44000: GLOOM
- 45000: VILEPLUME
- 46000: PARAS
- 47000: PARASECT
- 48000: VENONAT
- 49000: VENOMOTH
- 50000: DIGLETT
- 50001: DIGLETTALOLA
- 51000: DUGTRIO
- 51001: DUGTRIOALOLA
- 52000: MEOWTH
- 52001: MEOWTHALOLA
- 52002: MEOWTHGALAR
- 52003: MEOWTHGMAX
- 53000: PERSIAN
- 53001: PERSIANALOLA
- 54000: PSYDUCK
- 55000: GOLDUCK
- 56000: MANKEY
- 57000: PRIMEAPE
- 58000: GROWLITHE
- 58001: GROWLITHEHISUI
- 59000: ARCANINE
- 59001: ARCANINEHISUI
- 60000: POLIWAG
- 61000: POLIWHIRL
- 62000: POLIWRATH
- 63000: ABRA
- 64000: KADABRA
- 65000: ALAKAZAM
- 65001: ALAKAZAMMEGA
- 66000: MACHOP
- 67000: MACHOKE
- 68000: MACHAMP
- 68001: MACHAMPGMAX
- 69000: BELLSPROUT
- 70000: WEEPINBELL
- 71000: VICTREEBEL
- 72000: TENTACOOL
- 73000: TENTACRUEL
- 74000: GEODUDE
- 74001: GEODUDEALOLA
- 75000: GRAVELER
- 75001: GRAVELERALOLA
- 76000: GOLEM
- 76001: GOLEMALOLA
- 77000: PONYTA
- 77001: PONYTAGALAR
- 78000: RAPIDASH
- 78001: RAPIDASHGALAR
- 79000: SLOWPOKE
- 79001: SLOWPOKEGALAR
- 80000: SLOWBRO
- 80001: SLOWBROMEGA
- 80002: SLOWBROGALAR
- 81000: MAGNEMITE
- 82000: MAGNETON
- 83000: FARFETCHD
- 83001: FARFETCHDGALAR
- 84000: DODUO
- 85000: DODRIO
- 86000: SEEL
- 87000: DEWGONG
- 88000: GRIMER
- 88001: GRIMERALOLA
- 89000: MUK
- 89001: MUKALOLA
- 90000: SHELLDER
- 91000: CLOYSTER
- 92000: GASTLY
- 93000: HAUNTER
- 94000: GENGAR
- 94001: GENGARMEGA
- 94002: GENGARGMAX
- 95000: ONIX
- 96000: DROWZEE
- 97000: HYPNO
- 98000: KRABBY
- 99000: KINGLER
- 99001: KINGLERGMAX
- 100000: VOLTORB
- 100001: VOLTORBHISUI
- 101000: ELECTRODE
- 101001: ELECTRODEHISUI
- 102000: EXEGGCUTE
- 103000: EXEGGUTOR
- 103001: EXEGGUTORALOLA
- 104000: CUBONE
- 105000: MAROWAK
- 105001: MAROWAKALOLA
- 105002: MAROWAKALOLATOTEM
- 106000: HITMONLEE
- 107000: HITMONCHAN
- 108000: LICKITUNG
- 109000: KOFFING
- 110000: WEEZING
- 110001: WEEZINGGALAR
- 111000: RHYHORN
- 112000: RHYDON
- 113000: CHANSEY
- 114000: TANGELA
- 115000: KANGASKHAN
- 115001: KANGASKHANMEGA
- 116000: HORSEA
- 117000: SEADRA
- 118000: GOLDEEN
- 119000: SEAKING
- 120000: STARYU
- 121000: STARMIE
- 122000: MRMIME
- 122001: MRMIMEGALAR
- 123000: SCYTHER
- 124000: JYNX
- 125000: ELECTABUZZ
- 126000: MAGMAR
- 127000: PINSIR
- 127001: PINSIRMEGA
- 128000: TAUROS
- 128001: TAUROSPALDEACOMBAT
- 128002: TAUROSPALDEABLAZE
- 128003: TAUROSPALDEAAQUA
- 129000: MAGIKARP
- 130000: GYARADOS
- 130001: GYARADOSMEGA
- 131000: LAPRAS
- 131001: LAPRASGMAX
- 132000: DITTO
- 133000: EEVEE
- 133001: EEVEESTARTER
- 133002: EEVEEGMAX
- 134000: VAPOREON
- 135000: JOLTEON
- 136000: FLAREON
- 137000: PORYGON
- 138000: OMANYTE
- 139000: OMASTAR
- 140000: KABUTO
- 141000: KABUTOPS
- 142000: AERODACTYL
- 142001: AERODACTYLMEGA
- 143000: SNORLAX
- 143001: SNORLAXGMAX
- 144000: ARTICUNO
- 144001: ARTICUNOGALAR
- 145000: ZAPDOS
- 145001: ZAPDOSGALAR
- 146000: MOLTRES
- 146001: MOLTRESGALAR
- 147000: DRATINI
- 148000: DRAGONAIR
- 149000: DRAGONITE
- 150000: MEWTWO
- 150001: MEWTWOMEGAX
- 150002: MEWTWOMEGAY
- 151000: MEW
- 152000: CHIKORITA
- 153000: BAYLEEF
- 154000: MEGANIUM
- 155000: CYNDAQUIL
- 156000: QUILAVA
- 157000: TYPHLOSION
- 157001: TYPHLOSIONHISUI
- 158000: TOTODILE
- 159000: CROCONAW
- 160000: FERALIGATR
- 161000: SENTRET
- 162000: FURRET
- 163000: HOOTHOOT
- 164000: NOCTOWL
- 165000: LEDYBA
- 166000: LEDIAN
- 167000: SPINARAK
- 168000: ARIADOS
- 169000: CROBAT
- 170000: CHINCHOU
- 171000: LANTURN
- 172000: PICHU
- 172001: PICHUSPIKYEARED
- 173000: CLEFFA
- 174000: IGGLYBUFF
- 175000: TOGEPI
- 176000: TOGETIC
- 177000: NATU
- 178000: XATU
- 179000: MAREEP
- 180000: FLAAFFY
- 181000: AMPHAROS
- 181001: AMPHAROSMEGA
- 182000: BELLOSSOM
- 183000: MARILL
- 184000: AZUMARILL
- 185000: SUDOWOODO
- 186000: POLITOED
- 187000: HOPPIP
- 188000: SKIPLOOM
- 189000: JUMPLUFF
- 190000: AIPOM
- 191000: SUNKERN
- 192000: SUNFLORA
- 193000: YANMA
- 194000: WOOPER
- 194001: WOOPERPALDEA
- 195000: QUAGSIRE
- 196000: ESPEON
- 197000: UMBREON
- 198000: MURKROW
- 199000: SLOWKING
- 199001: SLOWKINGGALAR
- 200000: MISDREAVUS
- 201000: UNOWN
- 201001: UNOWNB
- 201002: UNOWNC
- 201003: UNOWND
- 201004: UNOWNE
- 201005: UNOWNF
- 201006: UNOWNG
- 201007: UNOWNH
- 201008: UNOWNI
- 201009: UNOWNJ
- 201010: UNOWNK
- 201011: UNOWNL
- 201012: UNOWNM
- 201013: UNOWNN
- 201014: UNOWNO
- 201015: UNOWNP
- 201016: UNOWNQ
- 201017: UNOWNR
- 201018: UNOWNS
- 201019: UNOWNT
- 201020: UNOWNU
- 201021: UNOWNV
- 201022: UNOWNW
- 201023: UNOWNX
- 201024: UNOWNY
- 201025: UNOWNZ
- 201026: UNOWNEXCLAMATION
- 201027: UNOWNQUESTION
- 202000: WOBBUFFET
- 203000: GIRAFARIG
- 204000: PINECO
- 205000: FORRETRESS
- 206000: DUNSPARCE
- 207000: GLIGAR
- 208000: STEELIX
- 208001: STEELIXMEGA
- 209000: SNUBBULL
- 210000: GRANBULL
- 211000: QWILFISH
- 211001: QWILFISHHISUI
- 212000: SCIZOR
- 212001: SCIZORMEGA
- 213000: SHUCKLE
- 214000: HERACROSS
- 214001: HERACROSSMEGA
- 215000: SNEASEL
- 215001: SNEASELHISUI
- 216000: TEDDIURSA
- 217000: URSARING
- 218000: SLUGMA
- 219000: MAGCARGO
- 220000: SWINUB
- 221000: PILOSWINE
- 222000: CORSOLA
- 222001: CORSOLAGALAR
- 223000: REMORAID
- 224000: OCTILLERY
- 225000: DELIBIRD
- 226000: MANTINE
- 227000: SKARMORY
- 228000: HOUNDOUR
- 229000: HOUNDOOM
- 229001: HOUNDOOMMEGA
- 230000: KINGDRA
- 231000: PHANPY
- 232000: DONPHAN
- 233000: PORYGON2
- 234000: STANTLER
- 235000: SMEARGLE
- 236000: TYROGUE
- 237000: HITMONTOP
- 238000: SMOOCHUM
- 239000: ELEKID
- 240000: MAGBY
- 241000: MILTANK
- 242000: BLISSEY
- 243000: RAIKOU
- 244000: ENTEI
- 245000: SUICUNE
- 246000: LARVITAR
- 247000: PUPITAR
- 248000: TYRANITAR
- 248001: TYRANITARMEGA
- 249000: LUGIA
- 250000: HOOH
- 251000: CELEBI
- 252000: TREECKO
- 253000: GROVYLE
- 254000: SCEPTILE
- 254001: SCEPTILEMEGA
- 255000: TORCHIC
- 256000: COMBUSKEN
- 257000: BLAZIKEN
- 257001: BLAZIKENMEGA
- 258000: MUDKIP
- 259000: MARSHTOMP
- 260000: SWAMPERT
- 260001: SWAMPERTMEGA
- 261000: POOCHYENA
- 262000: MIGHTYENA
- 263000: ZIGZAGOON
- 263001: ZIGZAGOONGALAR
- 264000: LINOONE
- 264001: LINOONEGALAR
- 265000: WURMPLE
- 266000: SILCOON
- 267000: BEAUTIFLY
- 268000: CASCOON
- 269000: DUSTOX
- 270000: LOTAD
- 271000: LOMBRE
- 272000: LUDICOLO
- 273000: SEEDOT
- 274000: NUZLEAF
- 275000: SHIFTRY
- 276000: TAILLOW
- 277000: SWELLOW
- 278000: WINGULL
- 279000: PELIPPER
- 280000: RALTS
- 281000: KIRLIA
- 282000: GARDEVOIR
- 282001: GARDEVOIRMEGA
- 283000: SURSKIT
- 284000: MASQUERAIN
- 285000: SHROOMISH
- 286000: BRELOOM
- 287000: SLAKOTH
- 288000: VIGOROTH
- 289000: SLAKING
- 290000: NINCADA
- 291000: NINJASK
- 292000: SHEDINJA
- 293000: WHISMUR
- 294000: LOUDRED
- 295000: EXPLOUD
- 296000: MAKUHITA
- 297000: HARIYAMA
- 298000: AZURILL
- 299000: NOSEPASS
- 300000: SKITTY
- 301000: DELCATTY
- 302000: SABLEYE
- 302001: SABLEYEMEGA
- 303000: MAWILE
- 303001: MAWILEMEGA
- 304000: ARON
- 305000: LAIRON
- 306000: AGGRON
- 306001: AGGRONMEGA
- 307000: MEDITITE
- 308000: MEDICHAM
- 308001: MEDICHAMMEGA
- 309000: ELECTRIKE
- 310000: MANECTRIC
- 310001: MANECTRICMEGA
- 311000: PLUSLE
- 312000: MINUN
- 313000: VOLBEAT
- 314000: ILLUMISE
- 315000: ROSELIA
- 316000: GULPIN
- 317000: SWALOT
- 318000: CARVANHA
- 319000: SHARPEDO
- 319001: SHARPEDOMEGA
- 320000: WAILMER
- 321000: WAILORD
- 322000: NUMEL
- 323000: CAMERUPT
- 323001: CAMERUPTMEGA
- 324000: TORKOAL
- 325000: SPOINK
- 326000: GRUMPIG
- 327000: SPINDA
- 328000: TRAPINCH
- 329000: VIBRAVA
- 330000: FLYGON
- 331000: CACNEA
- 332000: CACTURNE
- 333000: SWABLU
- 334000: ALTARIA
- 334001: ALTARIAMEGA
- 335000: ZANGOOSE
- 336000: SEVIPER
- 337000: LUNATONE
- 338000: SOLROCK
- 339000: BARBOACH
- 340000: WHISCASH
- 341000: CORPHISH
- 342000: CRAWDAUNT
- 343000: BALTOY
- 344000: CLAYDOL
- 345000: LILEEP
- 346000: CRADILY
- 347000: ANORITH
- 348000: ARMALDO
- 349000: FEEBAS
- 350000: MILOTIC
- 351000: CASTFORM
- 351001: CASTFORMSUNNY
- 351002: CASTFORMRAINY
- 351003: CASTFORMSNOWY
- 352000: KECLEON
- 353000: SHUPPET
- 354000: BANETTE
- 354001: BANETTEMEGA
- 355000: DUSKULL
- 356000: DUSCLOPS
- 357000: TROPIUS
- 358000: CHIMECHO
- 359000: ABSOL
- 359001: ABSOLMEGA
- 360000: WYNAUT
- 361000: SNORUNT
- 362000: GLALIE
- 362001: GLALIEMEGA
- 363000: SPHEAL
- 364000: SEALEO
- 365000: WALREIN
- 366000: CLAMPERL
- 367000: HUNTAIL
- 368000: GOREBYSS
- 369000: RELICANTH
- 370000: LUVDISC
- 371000: BAGON
- 372000: SHELGON
- 373000: SALAMENCE
- 373001: SALAMENCEMEGA
- 374000: BELDUM
- 375000: METANG
- 376000: METAGROSS
- 376001: METAGROSSMEGA
- 377000: REGIROCK
- 378000: REGICE
- 379000: REGISTEEL
- 380000: LATIAS
- 380001: LATIASMEGA
- 381000: LATIOS
- 381001: LATIOSMEGA
- 382000: KYOGRE
- 382001: KYOGREPRIMAL
- 383000: GROUDON
- 383001: GROUDONPRIMAL
- 384000: RAYQUAZA
- 384001: RAYQUAZAMEGA
- 385000: JIRACHI
- 386000: DEOXYS
- 386001: DEOXYSATTACK
- 386002: DEOXYSDEFENSE
- 386003: DEOXYSSPEED
- 387000: TURTWIG
- 388000: GROTLE
- 389000: TORTERRA
- 390000: CHIMCHAR
- 391000: MONFERNO
- 392000: INFERNAPE
- 393000: PIPLUP
- 394000: PRINPLUP
- 395000: EMPOLEON
- 396000: STARLY
- 397000: STARAVIA
- 398000: STARAPTOR
- 399000: BIDOOF
- 400000: BIBAREL
- 401000: KRICKETOT
- 402000: KRICKETUNE
- 403000: SHINX
- 404000: LUXIO
- 405000: LUXRAY
- 406000: BUDEW
- 407000: ROSERADE
- 408000: CRANIDOS
- 409000: RAMPARDOS
- 410000: SHIELDON
- 411000: BASTIODON
- 412000: BURMY
- 412001: BURMYSANDY
- 412002: BURMYTRASH
- 413000: WORMADAM
- 413001: WORMADAMSANDY
- 413002: WORMADAMTRASH
- 414000: MOTHIM
- 415000: COMBEE
- 416000: VESPIQUEN
- 417000: PACHIRISU
- 418000: BUIZEL
- 419000: FLOATZEL
- 420000: CHERUBI
- 421000: CHERRIM
- 421001: CHERRIMSUNSHINE
- 422000: SHELLOS
- 422001: SHELLOSEAST
- 423000: GASTRODON
- 423001: GASTRODONEAST
- 424000: AMBIPOM
- 425000: DRIFLOON
- 426000: DRIFBLIM
- 427000: BUNEARY
- 428000: LOPUNNY
- 428001: LOPUNNYMEGA
- 429000: MISMAGIUS
- 430000: HONCHKROW
- 431000: GLAMEOW
- 432000: PURUGLY
- 433000: CHINGLING
- 434000: STUNKY
- 435000: SKUNTANK
- 436000: BRONZOR
- 437000: BRONZONG
- 438000: BONSLY
- 439000: MIMEJR
- 440000: HAPPINY
- 441000: CHATOT
- 442000: SPIRITOMB
- 443000: GIBLE
- 444000: GABITE
- 445000: GARCHOMP
- 445001: GARCHOMPMEGA
- 446000: MUNCHLAX
- 447000: RIOLU
- 448000: LUCARIO
- 448001: LUCARIOMEGA
- 449000: HIPPOPOTAS
- 450000: HIPPOWDON
- 451000: SKORUPI
- 452000: DRAPION
- 453000: CROAGUNK
- 454000: TOXICROAK
- 455000: CARNIVINE
- 456000: FINNEON
- 457000: LUMINEON
- 458000: MANTYKE
- 459000: SNOVER
- 460000: ABOMASNOW
- 460001: ABOMASNOWMEGA
- 461000: WEAVILE
- 462000: MAGNEZONE
- 463000: LICKILICKY
- 464000: RHYPERIOR
- 465000: TANGROWTH
- 466000: ELECTIVIRE
- 467000: MAGMORTAR
- 468000: TOGEKISS
- 469000: YANMEGA
- 470000: LEAFEON
- 471000: GLACEON
- 472000: GLISCOR
- 473000: MAMOSWINE
- 474000: PORYGONZ
- 475000: GALLADE
- 475001: GALLADEMEGA
- 476000: PROBOPASS
- 477000: DUSKNOIR
- 478000: FROSLASS
- 479000: ROTOM
- 479001: ROTOMHEAT
- 479002: ROTOMWASH
- 479003: ROTOMFROST
- 479004: ROTOMFAN
- 479005: ROTOMMOW
- 480000: UXIE
- 481000: MESPRIT
- 482000: AZELF
- 483000: DIALGA
- 483001: DIALGAORIGIN
- 484000: PALKIA
- 484001: PALKIAORIGIN
- 485000: HEATRAN
- 486000: REGIGIGAS
- 487000: GIRATINA
- 487001: GIRATINAORIGIN
- 488000: CRESSELIA
- 489000: PHIONE
- 490000: MANAPHY
- 491000: DARKRAI
- 492000: SHAYMIN
- 492001: SHAYMINSKY
- 493000: ARCEUS
- 493001: ARCEUSBUG
- 493002: ARCEUSDARK
- 493003: ARCEUSDRAGON
- 493004: ARCEUSELECTRIC
- 493005: ARCEUSFAIRY
- 493006: ARCEUSFIGHTING
- 493007: ARCEUSFIRE
- 493008: ARCEUSFLYING
- 493009: ARCEUSGHOST
- 493010: ARCEUSGRASS
- 493011: ARCEUSGROUND
- 493012: ARCEUSICE
- 493013: ARCEUSPOISON
- 493014: ARCEUSPSYCHIC
- 493015: ARCEUSROCK
- 493016: ARCEUSSTEEL
- 493017: ARCEUSWATER
- 494000: VICTINI
- 495000: SNIVY
- 496000: SERVINE
- 497000: SERPERIOR
- 498000: TEPIG
- 499000: PIGNITE
- 500000: EMBOAR
- 501000: OSHAWOTT
- 502000: DEWOTT
- 503000: SAMUROTT
- 503001: SAMUROTTHISUI
- 504000: PATRAT
- 505000: WATCHOG
- 506000: LILLIPUP
- 507000: HERDIER
- 508000: STOUTLAND
- 509000: PURRLOIN
- 510000: LIEPARD
- 511000: PANSAGE
- 512000: SIMISAGE
- 513000: PANSEAR
- 514000: SIMISEAR
- 515000: PANPOUR
- 516000: SIMIPOUR
- 517000: MUNNA
- 518000: MUSHARNA
- 519000: PIDOVE
- 520000: TRANQUILL
- 521000: UNFEZANT
- 522000: BLITZLE
- 523000: ZEBSTRIKA
- 524000: ROGGENROLA
- 525000: BOLDORE
- 526000: GIGALITH
- 527000: WOOBAT
- 528000: SWOOBAT
- 529000: DRILBUR
- 530000: EXCADRILL
- 531000: AUDINO
- 531001: AUDINOMEGA
- 532000: TIMBURR
- 533000: GURDURR
- 534000: CONKELDURR
- 535000: TYMPOLE
- 536000: PALPITOAD
- 537000: SEISMITOAD
- 538000: THROH
- 539000: SAWK
- 540000: SEWADDLE
- 541000: SWADLOON
- 542000: LEAVANNY
- 543000: VENIPEDE
- 544000: WHIRLIPEDE
- 545000: SCOLIPEDE
- 546000: COTTONEE
- 547000: WHIMSICOTT
- 548000: PETILIL
- 549000: LILLIGANT
- 549001: LILLIGANTHISUI
- 550000: BASCULIN
- 550001: BASCULINBLUESTRIPED
- 550002: BASCULINWHITESTRIPED
- 551000: SANDILE
- 552000: KROKOROK
- 553000: KROOKODILE
- 554000: DARUMAKA
- 554001: DARUMAKAGALAR
- 555000: DARMANITAN
- 555001: DARMANITANZEN
- 555002: DARMANITANGALAR
- 555003: DARMANITANGALARZEN
- 556000: MARACTUS
- 557000: DWEBBLE
- 558000: CRUSTLE
- 559000: SCRAGGY
- 560000: SCRAFTY
- 561000: SIGILYPH
- 562000: YAMASK
- 562001: YAMASKGALAR
- 563000: COFAGRIGUS
- 564000: TIRTOUGA
- 565000: CARRACOSTA
- 566000: ARCHEN
- 567000: ARCHEOPS
- 568000: TRUBBISH
- 569000: GARBODOR
- 569001: GARBODORGMAX
- 570000: ZORUA
- 570001: ZORUAHISUI
- 571000: ZOROARK
- 571001: ZOROARKHISUI
- 572000: MINCCINO
- 573000: CINCCINO
- 574000: GOTHITA
- 575000: GOTHORITA
- 576000: GOTHITELLE
- 577000: SOLOSIS
- 578000: DUOSION
- 579000: REUNICLUS
- 580000: DUCKLETT
- 581000: SWANNA
- 582000: VANILLITE
- 583000: VANILLISH
- 584000: VANILLUXE
- 585000: DEERLING
- 585001: DEERLINGSUMMER
- 585002: DEERLINGAUTUMN
- 585003: DEERLINGWINTER
- 586000: SAWSBUCK
- 586001: SAWSBUCKSUMMER
- 586002: SAWSBUCKAUTUMN
- 586003: SAWSBUCKWINTER
- 587000: EMOLGA
- 588000: KARRABLAST
- 589000: ESCAVALIER
- 590000: FOONGUS
- 591000: AMOONGUSS
- 592000: FRILLISH
- 593000: JELLICENT
- 594000: ALOMOMOLA
- 595000: JOLTIK
- 596000: GALVANTULA
- 597000: FERROSEED
- 598000: FERROTHORN
- 599000: KLINK
- 600000: KLANG
- 601000: KLINKLANG
- 602000: TYNAMO
- 603000: EELEKTRIK
- 604000: EELEKTROSS
- 605000: ELGYEM
- 606000: BEHEEYEM
- 607000: LITWICK
- 608000: LAMPENT
- 609000: CHANDELURE
- 610000: AXEW
- 611000: FRAXURE
- 612000: HAXORUS
- 613000: CUBCHOO
- 614000: BEARTIC
- 615000: CRYOGONAL
- 616000: SHELMET
- 617000: ACCELGOR
- 618000: STUNFISK
- 618001: STUNFISKGALAR
- 619000: MIENFOO
- 620000: MIENSHAO
- 621000: DRUDDIGON
- 622000: GOLETT
- 623000: GOLURK
- 624000: PAWNIARD
- 625000: BISHARP
- 626000: BOUFFALANT
- 627000: RUFFLET
- 628000: BRAVIARY
- 628001: BRAVIARYHISUI
- 629000: VULLABY
- 630000: MANDIBUZZ
- 631000: HEATMOR
- 632000: DURANT
- 633000: DEINO
- 634000: ZWEILOUS
- 635000: HYDREIGON
- 636000: LARVESTA
- 637000: VOLCARONA
- 638000: COBALION
- 639000: TERRAKION
- 640000: VIRIZION
- 641000: TORNADUS
- 641001: TORNADUSTHERIAN
- 642000: THUNDURUS
- 642001: THUNDURUSTHERIAN
- 643000: RESHIRAM
- 644000: ZEKROM
- 645000: LANDORUS
- 645001: LANDORUSTHERIAN
- 646000: KYUREM
- 646001: KYUREMBLACK
- 646002: KYUREMWHITE
- 647000: KELDEO
- 647001: KELDEORESOLUTE
- 648000: MELOETTA
- 648001: MELOETTAPIROUETTE
- 649000: GENESECT
- 649001: GENESECTDOUSE
- 649002: GENESECTSHOCK
- 649003: GENESECTBURN
- 649004: GENESECTCHILL
- 650000: CHESPIN
- 651000: QUILLADIN
- 652000: CHESNAUGHT
- 653000: FENNEKIN
- 654000: BRAIXEN
- 655000: DELPHOX
- 656000: FROAKIE
- 657000: FROGADIER
- 658000: GRENINJA
- 658001: GRENINJABOND
- 658002: GRENINJAASH
- 659000: BUNNELBY
- 660000: DIGGERSBY
- 661000: FLETCHLING
- 662000: FLETCHINDER
- 663000: TALONFLAME
- 664000: SCATTERBUG
- 665000: SPEWPA
- 666000: VIVILLON
- 666001: VIVILLONARCHIPELAGO
- 666002: VIVILLONCONTINENTAL
- 666003: VIVILLONELEGANT
- 666004: VIVILLONGARDEN
- 666005: VIVILLONHIGHPLAINS
- 666006: VIVILLONICYSNOW
- 666007: VIVILLONJUNGLE
- 666008: VIVILLONMARINE
- 666009: VIVILLONMODERN
- 666010: VIVILLONMONSOON
- 666011: VIVILLONOCEAN
- 666012: VIVILLONPOLAR
- 666013: VIVILLONRIVER
- 666014: VIVILLONSANDSTORM
- 666015: VIVILLONSAVANNA
- 666016: VIVILLONSUN
- 666017: VIVILLONTUNDRA
- 666018: VIVILLONFANCY
- 666019: VIVILLONPOKEBALL
- 667000: LITLEO
- 668000: PYROAR
- 669000: FLABEBE
- 669001: FLABEBEBLUE
- 669002: FLABEBEORANGE
- 669003: FLABEBEWHITE
- 669004: FLABEBEYELLOW
- 670000: FLOETTE
- 670001: FLOETTEBLUE
- 670002: FLOETTEORANGE
- 670003: FLOETTEWHITE
- 670004: FLOETTEYELLOW
- 670005: FLOETTEETERNAL
- 671000: FLORGES
- 671001: FLORGESBLUE
- 671002: FLORGESORANGE
- 671003: FLORGESWHITE
- 671004: FLORGESYELLOW
- 672000: SKIDDO
- 673000: GOGOAT
- 674000: PANCHAM
- 675000: PANGORO
- 676000: FURFROU
- 676001: FURFROUDANDY
- 676002: FURFROUDEBUTANTE
- 676003: FURFROUDIAMOND
- 676004: FURFROUHEART
- 676005: FURFROUKABUKI
- 676006: FURFROULAREINE
- 676007: FURFROUMATRON
- 676008: FURFROUPHARAOH
- 676009: FURFROUSTAR
- 677000: ESPURR
- 678000: MEOWSTIC
- 678001: MEOWSTICF
- 679000: HONEDGE
- 680000: DOUBLADE
- 681000: AEGISLASH
- 681001: AEGISLASHBLADE
- 682000: SPRITZEE
- 683000: AROMATISSE
- 684000: SWIRLIX
- 685000: SLURPUFF
- 686000: INKAY
- 687000: MALAMAR
- 688000: BINACLE
- 689000: BARBARACLE
- 690000: SKRELP
- 691000: DRAGALGE
- 692000: CLAUNCHER
- 693000: CLAWITZER
- 694000: HELIOPTILE
- 695000: HELIOLISK
- 696000: TYRUNT
- 697000: TYRANTRUM
- 698000: AMAURA
- 699000: AURORUS
- 700000: SYLVEON
- 701000: HAWLUCHA
- 702000: DEDENNE
- 703000: CARBINK
- 704000: GOOMY
- 705000: SLIGGOO
- 705001: SLIGGOOHISUI
- 706000: GOODRA
- 706001: GOODRAHISUI
- 707000: KLEFKI
- 708000: PHANTUMP
- 709000: TREVENANT
- 710000: PUMPKABOO
- 710001: PUMPKABOOSMALL
- 710002: PUMPKABOOLARGE
- 710003: PUMPKABOOSUPER
- 711000: GOURGEIST
- 711001: GOURGEISTSMALL
- 711002: GOURGEISTLARGE
- 711003: GOURGEISTSUPER
- 712000: BERGMITE
- 713000: AVALUGG
- 713001: AVALUGGHISUI
- 714000: NOIBAT
- 715000: NOIVERN
- 716000: XERNEAS
- 716001: XERNEASNEUTRAL
- 717000: YVELTAL
- 718000: ZYGARDE
- 718001: ZYGARDE10
- 718002: ZYGARDECOMPLETE
- 719000: DIANCIE
- 719001: DIANCIEMEGA
- 720000: HOOPA
- 720001: HOOPAUNBOUND
- 721000: VOLCANION
- 722000: ROWLET
- 723000: DARTRIX
- 724000: DECIDUEYE
- 724001: DECIDUEYEHISUI
- 725000: LITTEN
- 726000: TORRACAT
- 727000: INCINEROAR
- 728000: POPPLIO
- 729000: BRIONNE
- 730000: PRIMARINA
- 731000: PIKIPEK
- 732000: TRUMBEAK
- 733000: TOUCANNON
- 734000: YUNGOOS
- 735000: GUMSHOOS
- 735001: GUMSHOOSTOTEM
- 736000: GRUBBIN
- 737000: CHARJABUG
- 738000: VIKAVOLT
- 738001: VIKAVOLTTOTEM
- 739000: CRABRAWLER
- 740000: CRABOMINABLE
- 741000: ORICORIO
- 741001: ORICORIOPOMPOM
- 741002: ORICORIOPAU
- 741003: ORICORIOSENSU
- 742000: CUTIEFLY
- 743000: RIBOMBEE
- 743001: RIBOMBEETOTEM
- 744000: ROCKRUFF
- 745000: LYCANROC
- 745001: LYCANROCMIDNIGHT
- 745002: LYCANROCDUSK
- 746000: WISHIWASHI
- 746001: WISHIWASHISCHOOL
- 747000: MAREANIE
- 748000: TOXAPEX
- 749000: MUDBRAY
- 750000: MUDSDALE
- 751000: DEWPIDER
- 752000: ARAQUANID
- 752001: ARAQUANIDTOTEM
- 753000: FOMANTIS
- 754000: LURANTIS
- 754001: LURANTISTOTEM
- 755000: MORELULL
- 756000: SHIINOTIC
- 757000: SALANDIT
- 758000: SALAZZLE
- 758001: SALAZZLETOTEM
- 759000: STUFFUL
- 760000: BEWEAR
- 761000: BOUNSWEET
- 762000: STEENEE
- 763000: TSAREENA
- 764000: COMFEY
- 765000: ORANGURU
- 766000: PASSIMIAN
- 767000: WIMPOD
- 768000: GOLISOPOD
- 769000: SANDYGAST
- 770000: PALOSSAND
- 771000: PYUKUMUKU
- 772000: TYPENULL
- 773000: SILVALLY
- 773001: SILVALLYBUG
- 773002: SILVALLYDARK
- 773003: SILVALLYDRAGON
- 773004: SILVALLYELECTRIC
- 773005: SILVALLYFAIRY
- 773006: SILVALLYFIGHTING
- 773007: SILVALLYFIRE
- 773008: SILVALLYFLYING
- 773009: SILVALLYGHOST
- 773010: SILVALLYGRASS
- 773011: SILVALLYGROUND
- 773012: SILVALLYICE
- 773013: SILVALLYPOISON
- 773014: SILVALLYPSYCHIC
- 773015: SILVALLYROCK
- 773016: SILVALLYSTEEL
- 773017: SILVALLYWATER
- 774000: MINIOR
- 774001: MINIORORANGE
- 774002: MINIORYELLOW
- 774003: MINIORGREEN
- 774004: MINIORBLUE
- 774005: MINIORINDIGO
- 774006: MINIORVIOLET
- 774007: MINIORMETEOR
- 775000: KOMALA
- 776000: TURTONATOR
- 777000: TOGEDEMARU
- 777001: TOGEDEMARUTOTEM
- 778000: MIMIKYU
- 778001: MIMIKYUBUSTED
- 778002: MIMIKYUTOTEM
- 778003: MIMIKYUBUSTEDTOTEM
- 779000: BRUXISH
- 780000: DRAMPA
- 781000: DHELMISE
- 782000: JANGMOO
- 783000: HAKAMOO
- 784000: KOMMOO
- 784001: KOMMOOTOTEM
- 785000: TAPUKOKO
- 786000: TAPULELE
- 787000: TAPUBULU
- 788000: TAPUFINI
- 789000: COSMOG
- 790000: COSMOEM
- 791000: SOLGALEO
- 792000: LUNALA
- 793000: NIHILEGO
- 794000: BUZZWOLE
- 795000: PHEROMOSA
- 796000: XURKITREE
- 797000: CELESTEELA
- 798000: KARTANA
- 799000: GUZZLORD
- 800000: NECROZMA
- 800001: NECROZMADUSKMANE
- 800002: NECROZMADAWNWINGS
- 800003: NECROZMAULTRA
- 801000: MAGEARNA
- 801001: MAGEARNAORIGINAL
- 802000: MARSHADOW
- 803000: POIPOLE
- 804000: NAGANADEL
- 805000: STAKATAKA
- 806000: BLACEPHALON
- 807000: ZERAORA
- 808000: MELTAN
- 809000: MELMETAL
- 809001: MELMETALGMAX
- 810000: GROOKEY
- 811000: THWACKEY
- 812000: RILLABOOM
- 812001: RILLABOOMGMAX
- 813000: SCORBUNNY
- 814000: RABOOT
- 815000: CINDERACE
- 815001: CINDERACEGMAX
- 816000: SOBBLE
- 817000: DRIZZILE
- 818000: INTELEON
- 818001: INTELEONGMAX
- 819000: SKWOVET
- 820000: GREEDENT
- 821000: ROOKIDEE
- 822000: CORVISQUIRE
- 823000: CORVIKNIGHT
- 823001: CORVIKNIGHTGMAX
- 824000: BLIPBUG
- 825000: DOTTLER
- 826000: ORBEETLE
- 826001: ORBEETLEGMAX
- 827000: NICKIT
- 828000: THIEVUL
- 829000: GOSSIFLEUR
- 830000: ELDEGOSS
- 831000: WOOLOO
- 832000: DUBWOOL
- 833000: CHEWTLE
- 834000: DREDNAW
- 834001: DREDNAWGMAX
- 835000: YAMPER
- 836000: BOLTUND
- 837000: ROLYCOLY
- 838000: CARKOL
- 839000: COALOSSAL
- 839001: COALOSSALGMAX
- 840000: APPLIN
- 841000: FLAPPLE
- 841001: FLAPPLEGMAX
- 842000: APPLETUN
- 842001: APPLETUNGMAX
- 843000: SILICOBRA
- 844000: SANDACONDA
- 844001: SANDACONDAGMAX
- 845000: CRAMORANT
- 845001: CRAMORANTGULPING
- 845002: CRAMORANTGORGING
- 846000: ARROKUDA
- 847000: BARRASKEWDA
- 848000: TOXEL
- 849000: TOXTRICITY
- 849001: TOXTRICITYLOWKEY
- 849002: TOXTRICITYGMAX
- 849003: TOXTRICITYLOWKEYGMAX
- 850000: SIZZLIPEDE
- 851000: CENTISKORCH
- 851001: CENTISKORCHGMAX
- 852000: CLOBBOPUS
- 853000: GRAPPLOCT
- 854000: SINISTEA
- 854001: SINISTEAANTIQUE
- 855000: POLTEAGEIST
- 855001: POLTEAGEISTANTIQUE
- 856000: HATENNA
- 857000: HATTREM
- 858000: HATTERENE
- 858001: HATTERENEGMAX
- 859000: IMPIDIMP
- 860000: MORGREM
- 861000: GRIMMSNARL
- 861001: GRIMMSNARLGMAX
- 862000: OBSTAGOON
- 863000: PERRSERKER
- 864000: CURSOLA
- 865000: SIRFETCHD
- 866000: MRRIME
- 867000: RUNERIGUS
- 868000: MILCERY
- 869000: ALCREMIE
- 869001: ALCREMIERUBYCREAM
- 869002: ALCREMIEMATCHACREAM
- 869003: ALCREMIEMINTCREAM
- 869004: ALCREMIELEMONCREAM
- 869005: ALCREMIESALTEDCREAM
- 869006: ALCREMIERUBYSWIRL
- 869007: ALCREMIECARAMELSWIRL
- 869008: ALCREMIERAINBOWSWIRL
- 869009: ALCREMIEGMAX
- 870000: FALINKS
- 871000: PINCURCHIN
- 872000: SNOM
- 873000: FROSMOTH
- 874000: STONJOURNER
- 875000: EISCUE
- 875001: EISCUENOICE
- 876000: INDEEDEE
- 876001: INDEEDEEF
- 877000: MORPEKO
- 877001: MORPEKOHANGRY
- 878000: CUFANT
- 879000: COPPERAJAH
- 879001: COPPERAJAHGMAX
- 880000: DRACOZOLT
- 881000: ARCTOZOLT
- 882000: DRACOVISH
- 883000: ARCTOVISH
- 884000: DURALUDON
- 884001: DURALUDONGMAX
- 885000: DREEPY
- 886000: DRAKLOAK
- 887000: DRAGAPULT
- 888000: ZACIAN
- 888001: ZACIANCROWNED
- 889000: ZAMAZENTA
- 889001: ZAMAZENTACROWNED
- 890000: ETERNATUS
- 890001: ETERNATUSETERNAMAX
- 891000: KUBFU
- 892000: URSHIFU
- 892001: URSHIFURAPIDSTRIKE
- 892002: URSHIFUGMAX
- 892003: URSHIFURAPIDSTRIKEGMAX
- 893000: ZARUDE
- 893001: ZARUDEDADA
- 894000: REGIELEKI
- 895000: REGIDRAGO
- 896000: GLASTRIER
- 897000: SPECTRIER
- 898000: CALYREX
- 898001: CALYREXICE
- 898002: CALYREXSHADOW
- 899000: WYRDEER
- 900000: KLEAVOR
- 901000: URSALUNA
- 901001: URSALUNABLOODMOON
- 902000: BASCULEGION
- 902001: BASCULEGIONF
- 903000: SNEASLER
- 904000: OVERQWIL
- 905000: ENAMORUS
- 905001: ENAMORUSTHERIAN
- 906000: SPRIGATITO
- 907000: FLORAGATO
- 908000: MEOWSCARADA
- 909000: FUECOCO
- 910000: CROCALOR
- 911000: SKELEDIRGE
- 912000: QUAXLY
- 913000: QUAXWELL
- 914000: QUAQUAVAL
- 915000: LECHONK
- 916000: OINKOLOGNE
- 916001: OINKOLOGNEF
- 917000: TAROUNTULA
- 918000: SPIDOPS
- 919000: NYMBLE
- 920000: LOKIX
- 921000: PAWMI
- 922000: PAWMO
- 923000: PAWMOT
- 924000: TANDEMAUS
- 925000: MAUSHOLD
- 925001: MAUSHOLDFOUR
- 926000: FIDOUGH
- 927000: DACHSBUN
- 928000: SMOLIV
- 929000: DOLLIV
- 930000: ARBOLIVA
- 931000: SQUAWKABILLY
- 931001: SQUAWKABILLYBLUE
- 931002: SQUAWKABILLYYELLOW
- 931003: SQUAWKABILLYWHITE
- 932000: NACLI
- 933000: NACLSTACK
- 934000: GARGANACL
- 935000: CHARCADET
- 936000: ARMAROUGE
- 937000: CERULEDGE
- 938000: TADBULB
- 939000: BELLIBOLT
- 940000: WATTREL
- 941000: KILOWATTREL
- 942000: MASCHIFF
- 943000: MABOSSTIFF
- 944000: SHROODLE
- 945000: GRAFAIAI
- 946000: BRAMBLIN
- 947000: BRAMBLEGHAST
- 948000: TOEDSCOOL
- 949000: TOEDSCRUEL
- 950000: KLAWF
- 951000: CAPSAKID
- 952000: SCOVILLAIN
- 953000: RELLOR
- 954000: RABSCA
- 955000: FLITTLE
- 956000: ESPATHRA
- 957000: TINKATINK
- 958000: TINKATUFF
- 959000: TINKATON
- 960000: WIGLETT
- 961000: WUGTRIO
- 962000: BOMBIRDIER
- 963000: FINIZEN
- 964000: PALAFIN
- 964001: PALAFINHERO
- 965000: VAROOM
- 966000: REVAVROOM
- 967000: CYCLIZAR
- 968000: ORTHWORM
- 969000: GLIMMET
- 970000: GLIMMORA
- 971000: GREAVARD
- 972000: HOUNDSTONE
- 973000: FLAMIGO
- 974000: CETODDLE
- 975000: CETITAN
- 976000: VELUZA
- 977000: DONDOZO
- 978000: TATSUGIRI
- 978001: TATSUGIRIDROOPY
- 978002: TATSUGIRISTRETCHY
- 979000: ANNIHILAPE
- 980000: CLODSIRE
- 981000: FARIGIRAF
- 982000: DUDUNSPARCE
- 982001: DUDUNSPARCETHREESEGMENT
- 983000: KINGAMBIT
- 984000: GREATTUSK
- 985000: SCREAMTAIL
- 986000: BRUTEBONNET
- 987000: FLUTTERMANE
- 988000: SLITHERWING
- 989000: SANDYSHOCKS
- 990000: IRONTREADS
- 991000: IRONBUNDLE
- 992000: IRONHANDS
- 993000: IRONJUGULIS
- 994000: IRONMOTH
- 995000: IRONTHORNS
- 996000: FRIGIBAX
- 997000: ARCTIBAX
- 998000: BAXCALIBUR
- 999000: GIMMIGHOUL
- 999001: GIMMIGHOULROAMING
- 1000000: GHOLDENGO
- 1001000: WOCHIEN
- 1002000: CHIENPAO
- 1003000: TINGLU
- 1004000: CHIYU
- 1005000: ROARINGMOON
- 1006000: IRONVALIANT
- 1007000: KORAIDON
- 1008000: MIRAIDON
- 1009000: WALKINGWAKE
- 1010000: IRONLEAVES
- 1011000: DIPPLIN
- 1012000: POLTCHAGEIST
- 1012001: POLTCHAGEISTARTISAN
- 1013000: SINISTCHA
- 1013001: SINISTCHAMASTERPIECE
- 1014000: OKIDOGI
- 1015000: MUNKIDORI
- 1016000: FEZANDIPITI
- 1017000: OGERPON
- 1017001: OGERPONWELLSPRING
- 1017002: OGERPONHEARTHFLAME
- 1017003: OGERPONCORNERSTONE
- 1017004: OGERPONTEALTERA
- 1017005: OGERPONWELLSPRINGTERA
- 1017006: OGERPONHEARTHFLAMETERA
- 1017007: OGERPONCORNERSTONETERA
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexMove","title":"DexMove
","text":"Represents possible Moves
Options:
- 1: RECHARGE
- 100: POUND
- 200: KARATECHOP
- 300: DOUBLESLAP
- 400: COMETPUNCH
- 500: MEGAPUNCH
- 600: PAYDAY
- 700: FIREPUNCH
- 800: ICEPUNCH
- 900: THUNDERPUNCH
- 1000: SCRATCH
- 1100: VISEGRIP
- 1200: GUILLOTINE
- 1300: RAZORWIND
- 1400: SWORDSDANCE
- 1500: CUT
- 1600: GUST
- 1700: WINGATTACK
- 1800: WHIRLWIND
- 1900: FLY
- 2000: BIND
- 2100: SLAM
- 2200: VINEWHIP
- 2300: STOMP
- 2400: DOUBLEKICK
- 2500: MEGAKICK
- 2600: JUMPKICK
- 2700: ROLLINGKICK
- 2800: SANDATTACK
- 2900: HEADBUTT
- 3000: HORNATTACK
- 3100: FURYATTACK
- 3200: HORNDRILL
- 3300: TACKLE
- 3400: BODYSLAM
- 3500: WRAP
- 3600: TAKEDOWN
- 3700: THRASH
- 3800: DOUBLEEDGE
- 3900: TAILWHIP
- 4000: POISONSTING
- 4100: TWINEEDLE
- 4200: PINMISSILE
- 4300: LEER
- 4400: BITE
- 4500: GROWL
- 4600: ROAR
- 4700: SING
- 4800: SUPERSONIC
- 4900: SONICBOOM
- 5000: DISABLE
- 5100: ACID
- 5200: EMBER
- 5300: FLAMETHROWER
- 5400: MIST
- 5500: WATERGUN
- 5600: HYDROPUMP
- 5700: SURF
- 5800: ICEBEAM
- 5900: BLIZZARD
- 6000: PSYBEAM
- 6100: BUBBLEBEAM
- 6200: AURORABEAM
- 6300: HYPERBEAM
- 6400: PECK
- 6500: DRILLPECK
- 6600: SUBMISSION
- 6700: LOWKICK
- 6800: COUNTER
- 6900: SEISMICTOSS
- 7000: STRENGTH
- 7100: ABSORB
- 7200: MEGADRAIN
- 7300: LEECHSEED
- 7400: GROWTH
- 7500: RAZORLEAF
- 7600: SOLARBEAM
- 7700: POISONPOWDER
- 7800: STUNSPORE
- 7900: SLEEPPOWDER
- 8000: PETALDANCE
- 8100: STRINGSHOT
- 8200: DRAGONRAGE
- 8300: FIRESPIN
- 8400: THUNDERSHOCK
- 8500: THUNDERBOLT
- 8600: THUNDERWAVE
- 8700: THUNDER
- 8800: ROCKTHROW
- 8900: EARTHQUAKE
- 9000: FISSURE
- 9100: DIG
- 9200: TOXIC
- 9300: CONFUSION
- 9400: PSYCHIC
- 9500: HYPNOSIS
- 9600: MEDITATE
- 9700: AGILITY
- 9800: QUICKATTACK
- 9900: RAGE
- 10000: TELEPORT
- 10100: NIGHTSHADE
- 10200: MIMIC
- 10300: SCREECH
- 10400: DOUBLETEAM
- 10500: RECOVER
- 10600: HARDEN
- 10700: MINIMIZE
- 10800: SMOKESCREEN
- 10900: CONFUSERAY
- 11000: WITHDRAW
- 11100: DEFENSECURL
- 11200: BARRIER
- 11300: LIGHTSCREEN
- 11400: HAZE
- 11500: REFLECT
- 11600: FOCUSENERGY
- 11700: BIDE
- 11800: METRONOME
- 11900: MIRRORMOVE
- 12000: SELFDESTRUCT
- 12100: EGGBOMB
- 12200: LICK
- 12300: SMOG
- 12400: SLUDGE
- 12500: BONECLUB
- 12600: FIREBLAST
- 12700: WATERFALL
- 12800: CLAMP
- 12900: SWIFT
- 13000: SKULLBASH
- 13100: SPIKECANNON
- 13200: CONSTRICT
- 13300: AMNESIA
- 13400: KINESIS
- 13500: SOFTBOILED
- 13600: HIGHJUMPKICK
- 13700: GLARE
- 13800: DREAMEATER
- 13900: POISONGAS
- 14000: BARRAGE
- 14100: LEECHLIFE
- 14200: LOVELYKISS
- 14300: SKYATTACK
- 14400: TRANSFORM
- 14500: BUBBLE
- 14600: DIZZYPUNCH
- 14700: SPORE
- 14800: FLASH
- 14900: PSYWAVE
- 15000: SPLASH
- 15100: ACIDARMOR
- 15200: CRABHAMMER
- 15300: EXPLOSION
- 15400: FURYSWIPES
- 15500: BONEMERANG
- 15600: REST
- 15700: ROCKSLIDE
- 15800: HYPERFANG
- 15900: SHARPEN
- 16000: CONVERSION
- 16100: TRIATTACK
- 16200: SUPERFANG
- 16300: SLASH
- 16400: SUBSTITUTE
- 16500: STRUGGLE
- 16600: SKETCH
- 16700: TRIPLEKICK
- 16800: THIEF
- 16900: SPIDERWEB
- 17000: MINDREADER
- 17100: NIGHTMARE
- 17200: FLAMEWHEEL
- 17300: SNORE
- 17400: CURSE
- 17500: FLAIL
- 17600: CONVERSION2
- 17700: AEROBLAST
- 17800: COTTONSPORE
- 17900: REVERSAL
- 18000: SPITE
- 18100: POWDERSNOW
- 18200: PROTECT
- 18300: MACHPUNCH
- 18400: SCARYFACE
- 18500: FEINTATTACK
- 18600: SWEETKISS
- 18700: BELLYDRUM
- 18800: SLUDGEBOMB
- 18900: MUDSLAP
- 19000: OCTAZOOKA
- 19100: SPIKES
- 19200: ZAPCANNON
- 19300: FORESIGHT
- 19400: DESTINYBOND
- 19500: PERISHSONG
- 19600: ICYWIND
- 19700: DETECT
- 19800: BONERUSH
- 19900: LOCKON
- 20000: OUTRAGE
- 20100: SANDSTORM
- 20200: GIGADRAIN
- 20300: ENDURE
- 20400: CHARM
- 20500: ROLLOUT
- 20600: FALSESWIPE
- 20700: SWAGGER
- 20800: MILKDRINK
- 20900: SPARK
- 21000: FURYCUTTER
- 21100: STEELWING
- 21200: MEANLOOK
- 21300: ATTRACT
- 21400: SLEEPTALK
- 21500: HEALBELL
- 21600: RETURN
- 21601: RETURN102
- 21700: PRESENT
- 21800: FRUSTRATION
- 21900: SAFEGUARD
- 22000: PAINSPLIT
- 22100: SACREDFIRE
- 22200: MAGNITUDE
- 22300: DYNAMICPUNCH
- 22400: MEGAHORN
- 22500: DRAGONBREATH
- 22600: BATONPASS
- 22700: ENCORE
- 22800: PURSUIT
- 22900: RAPIDSPIN
- 23000: SWEETSCENT
- 23100: IRONTAIL
- 23200: METALCLAW
- 23300: VITALTHROW
- 23400: MORNINGSUN
- 23500: SYNTHESIS
- 23600: MOONLIGHT
- 23700: HIDDENPOWER
- 23701: HIDDENPOWER60
- 23702: HIDDENPOWERBUG
- 23703: HIDDENPOWERBUG60
- 23704: HIDDENPOWERDARK
- 23705: HIDDENPOWERDARK60
- 23706: HIDDENPOWERDRAGON
- 23707: HIDDENPOWERDRAGON60
- 23708: HIDDENPOWERELECTRIC
- 23709: HIDDENPOWERELECTRIC60
- 23710: HIDDENPOWERFIGHTING
- 23711: HIDDENPOWERFIGHTING60
- 23712: HIDDENPOWERFIRE
- 23713: HIDDENPOWERFIRE60
- 23714: HIDDENPOWERFLYING
- 23715: HIDDENPOWERFLYING60
- 23716: HIDDENPOWERGHOST
- 23717: HIDDENPOWERGHOST60
- 23718: HIDDENPOWERGRASS
- 23719: HIDDENPOWERGRASS60
- 23720: HIDDENPOWERGROUND
- 23721: HIDDENPOWERGROUND60
- 23722: HIDDENPOWERICE
- 23723: HIDDENPOWERICE60
- 23724: HIDDENPOWERPOISON
- 23725: HIDDENPOWERPOISON60
- 23726: HIDDENPOWERPSYCHIC
- 23727: HIDDENPOWERPSYCHIC60
- 23728: HIDDENPOWERROCK
- 23729: HIDDENPOWERROCK60
- 23730: HIDDENPOWERSTEEL
- 23731: HIDDENPOWERSTEEL60
- 23732: HIDDENPOWERWATER
- 23733: HIDDENPOWERWATER60
- 23800: CROSSCHOP
- 23900: TWISTER
- 24000: RAINDANCE
- 24100: SUNNYDAY
- 24200: CRUNCH
- 24300: MIRRORCOAT
- 24400: PSYCHUP
- 24500: EXTREMESPEED
- 24600: ANCIENTPOWER
- 24700: SHADOWBALL
- 24800: FUTURESIGHT
- 24900: ROCKSMASH
- 25000: WHIRLPOOL
- 25100: BEATUP
- 25200: FAKEOUT
- 25300: UPROAR
- 25400: STOCKPILE
- 25500: SPITUP
- 25600: SWALLOW
- 25700: HEATWAVE
- 25800: HAIL
- 25900: TORMENT
- 26000: FLATTER
- 26100: WILLOWISP
- 26200: MEMENTO
- 26300: FACADE
- 26400: FOCUSPUNCH
- 26500: SMELLINGSALTS
- 26600: FOLLOWME
- 26700: NATUREPOWER
- 26800: CHARGE
- 26900: TAUNT
- 27000: HELPINGHAND
- 27100: TRICK
- 27200: ROLEPLAY
- 27300: WISH
- 27400: ASSIST
- 27500: INGRAIN
- 27600: SUPERPOWER
- 27700: MAGICCOAT
- 27800: RECYCLE
- 27900: REVENGE
- 28000: BRICKBREAK
- 28100: YAWN
- 28200: KNOCKOFF
- 28300: ENDEAVOR
- 28400: ERUPTION
- 28500: SKILLSWAP
- 28600: IMPRISON
- 28700: REFRESH
- 28800: GRUDGE
- 28900: SNATCH
- 29000: SECRETPOWER
- 29100: DIVE
- 29200: ARMTHRUST
- 29300: CAMOUFLAGE
- 29400: TAILGLOW
- 29500: LUSTERPURGE
- 29600: MISTBALL
- 29700: FEATHERDANCE
- 29800: TEETERDANCE
- 29900: BLAZEKICK
- 30000: MUDSPORT
- 30100: ICEBALL
- 30200: NEEDLEARM
- 30300: SLACKOFF
- 30400: HYPERVOICE
- 30500: POISONFANG
- 30600: CRUSHCLAW
- 30700: BLASTBURN
- 30800: HYDROCANNON
- 30900: METEORMASH
- 31000: ASTONISH
- 31100: WEATHERBALL
- 31200: AROMATHERAPY
- 31300: FAKETEARS
- 31400: AIRCUTTER
- 31500: OVERHEAT
- 31600: ODORSLEUTH
- 31700: ROCKTOMB
- 31800: SILVERWIND
- 31900: METALSOUND
- 32000: GRASSWHISTLE
- 32100: TICKLE
- 32200: COSMICPOWER
- 32300: WATERSPOUT
- 32400: SIGNALBEAM
- 32500: SHADOWPUNCH
- 32600: EXTRASENSORY
- 32700: SKYUPPERCUT
- 32800: SANDTOMB
- 32900: SHEERCOLD
- 33000: MUDDYWATER
- 33100: BULLETSEED
- 33200: AERIALACE
- 33300: ICICLESPEAR
- 33400: IRONDEFENSE
- 33500: BLOCK
- 33600: HOWL
- 33700: DRAGONCLAW
- 33800: FRENZYPLANT
- 33900: BULKUP
- 34000: BOUNCE
- 34100: MUDSHOT
- 34200: POISONTAIL
- 34300: COVET
- 34400: VOLTTACKLE
- 34500: MAGICALLEAF
- 34600: WATERSPORT
- 34700: CALMMIND
- 34800: LEAFBLADE
- 34900: DRAGONDANCE
- 35000: ROCKBLAST
- 35100: SHOCKWAVE
- 35200: WATERPULSE
- 35300: DOOMDESIRE
- 35400: PSYCHOBOOST
- 35500: ROOST
- 35600: GRAVITY
- 35700: MIRACLEEYE
- 35800: WAKEUPSLAP
- 35900: HAMMERARM
- 36000: GYROBALL
- 36100: HEALINGWISH
- 36200: BRINE
- 36300: NATURALGIFT
- 36400: FEINT
- 36500: PLUCK
- 36600: TAILWIND
- 36700: ACUPRESSURE
- 36800: METALBURST
- 36900: UTURN
- 37000: CLOSECOMBAT
- 37100: PAYBACK
- 37200: ASSURANCE
- 37300: EMBARGO
- 37400: FLING
- 37500: PSYCHOSHIFT
- 37600: TRUMPCARD
- 37700: HEALBLOCK
- 37800: WRINGOUT
- 37900: POWERTRICK
- 38000: GASTROACID
- 38100: LUCKYCHANT
- 38200: MEFIRST
- 38300: COPYCAT
- 38400: POWERSWAP
- 38500: GUARDSWAP
- 38600: PUNISHMENT
- 38700: LASTRESORT
- 38800: WORRYSEED
- 38900: SUCKERPUNCH
- 39000: TOXICSPIKES
- 39100: HEARTSWAP
- 39200: AQUARING
- 39300: MAGNETRISE
- 39400: FLAREBLITZ
- 39500: FORCEPALM
- 39600: AURASPHERE
- 39700: ROCKPOLISH
- 39800: POISONJAB
- 39900: DARKPULSE
- 40000: NIGHTSLASH
- 40100: AQUATAIL
- 40200: SEEDBOMB
- 40300: AIRSLASH
- 40400: XSCISSOR
- 40500: BUGBUZZ
- 40600: DRAGONPULSE
- 40700: DRAGONRUSH
- 40800: POWERGEM
- 40900: DRAINPUNCH
- 41000: VACUUMWAVE
- 41100: FOCUSBLAST
- 41200: ENERGYBALL
- 41300: BRAVEBIRD
- 41400: EARTHPOWER
- 41500: SWITCHEROO
- 41600: GIGAIMPACT
- 41700: NASTYPLOT
- 41800: BULLETPUNCH
- 41900: AVALANCHE
- 42000: ICESHARD
- 42100: SHADOWCLAW
- 42200: THUNDERFANG
- 42300: ICEFANG
- 42400: FIREFANG
- 42500: SHADOWSNEAK
- 42600: MUDBOMB
- 42700: PSYCHOCUT
- 42800: ZENHEADBUTT
- 42900: MIRRORSHOT
- 43000: FLASHCANNON
- 43100: ROCKCLIMB
- 43200: DEFOG
- 43300: TRICKROOM
- 43400: DRACOMETEOR
- 43500: DISCHARGE
- 43600: LAVAPLUME
- 43700: LEAFSTORM
- 43800: POWERWHIP
- 43900: ROCKWRECKER
- 44000: CROSSPOISON
- 44100: GUNKSHOT
- 44200: IRONHEAD
- 44300: MAGNETBOMB
- 44400: STONEEDGE
- 44500: CAPTIVATE
- 44600: STEALTHROCK
- 44700: GRASSKNOT
- 44800: CHATTER
- 44900: JUDGMENT
- 45000: BUGBITE
- 45100: CHARGEBEAM
- 45200: WOODHAMMER
- 45300: AQUAJET
- 45400: ATTACKORDER
- 45500: DEFENDORDER
- 45600: HEALORDER
- 45700: HEADSMASH
- 45800: DOUBLEHIT
- 45900: ROAROFTIME
- 46000: SPACIALREND
- 46100: LUNARDANCE
- 46200: CRUSHGRIP
- 46300: MAGMASTORM
- 46400: DARKVOID
- 46500: SEEDFLARE
- 46600: OMINOUSWIND
- 46700: SHADOWFORCE
- 46800: HONECLAWS
- 46900: WIDEGUARD
- 47000: GUARDSPLIT
- 47100: POWERSPLIT
- 47200: WONDERROOM
- 47300: PSYSHOCK
- 47400: VENOSHOCK
- 47500: AUTOTOMIZE
- 47600: RAGEPOWDER
- 47700: TELEKINESIS
- 47800: MAGICROOM
- 47900: SMACKDOWN
- 48000: STORMTHROW
- 48100: FLAMEBURST
- 48200: SLUDGEWAVE
- 48300: QUIVERDANCE
- 48400: HEAVYSLAM
- 48500: SYNCHRONOISE
- 48600: ELECTROBALL
- 48700: SOAK
- 48800: FLAMECHARGE
- 48900: COIL
- 49000: LOWSWEEP
- 49100: ACIDSPRAY
- 49200: FOULPLAY
- 49300: SIMPLEBEAM
- 49400: ENTRAINMENT
- 49500: AFTERYOU
- 49600: ROUND
- 49700: ECHOEDVOICE
- 49800: CHIPAWAY
- 49900: CLEARSMOG
- 50000: STOREDPOWER
- 50100: QUICKGUARD
- 50200: ALLYSWITCH
- 50300: SCALD
- 50400: SHELLSMASH
- 50500: HEALPULSE
- 50600: HEX
- 50700: SKYDROP
- 50800: SHIFTGEAR
- 50900: CIRCLETHROW
- 51000: INCINERATE
- 51100: QUASH
- 51200: ACROBATICS
- 51300: REFLECTTYPE
- 51400: RETALIATE
- 51500: FINALGAMBIT
- 51600: BESTOW
- 51700: INFERNO
- 51800: WATERPLEDGE
- 51900: FIREPLEDGE
- 52000: GRASSPLEDGE
- 52100: VOLTSWITCH
- 52200: STRUGGLEBUG
- 52300: BULLDOZE
- 52400: FROSTBREATH
- 52500: DRAGONTAIL
- 52600: WORKUP
- 52700: ELECTROWEB
- 52800: WILDCHARGE
- 52900: DRILLRUN
- 53000: DUALCHOP
- 53100: HEARTSTAMP
- 53200: HORNLEECH
- 53300: SACREDSWORD
- 53400: RAZORSHELL
- 53500: HEATCRASH
- 53600: LEAFTORNADO
- 53700: STEAMROLLER
- 53800: COTTONGUARD
- 53900: NIGHTDAZE
- 54000: PSYSTRIKE
- 54100: TAILSLAP
- 54200: HURRICANE
- 54300: HEADCHARGE
- 54400: GEARGRIND
- 54500: SEARINGSHOT
- 54600: TECHNOBLAST
- 54700: RELICSONG
- 54800: SECRETSWORD
- 54900: GLACIATE
- 55000: BOLTSTRIKE
- 55100: BLUEFLARE
- 55200: FIERYDANCE
- 55300: FREEZESHOCK
- 55400: ICEBURN
- 55500: SNARL
- 55600: ICICLECRASH
- 55700: VCREATE
- 55800: FUSIONFLARE
- 55900: FUSIONBOLT
- 56000: FLYINGPRESS
- 56100: MATBLOCK
- 56200: BELCH
- 56300: ROTOTILLER
- 56400: STICKYWEB
- 56500: FELLSTINGER
- 56600: PHANTOMFORCE
- 56700: TRICKORTREAT
- 56800: NOBLEROAR
- 56900: IONDELUGE
- 57000: PARABOLICCHARGE
- 57100: FORESTSCURSE
- 57200: PETALBLIZZARD
- 57300: FREEZEDRY
- 57400: DISARMINGVOICE
- 57500: PARTINGSHOT
- 57600: TOPSYTURVY
- 57700: DRAININGKISS
- 57800: CRAFTYSHIELD
- 57900: FLOWERSHIELD
- 58000: GRASSYTERRAIN
- 58100: MISTYTERRAIN
- 58200: ELECTRIFY
- 58300: PLAYROUGH
- 58400: FAIRYWIND
- 58500: MOONBLAST
- 58600: BOOMBURST
- 58700: FAIRYLOCK
- 58800: KINGSSHIELD
- 58900: PLAYNICE
- 59000: CONFIDE
- 59100: DIAMONDSTORM
- 59200: STEAMERUPTION
- 59300: HYPERSPACEHOLE
- 59400: WATERSHURIKEN
- 59500: MYSTICALFIRE
- 59600: SPIKYSHIELD
- 59700: AROMATICMIST
- 59800: EERIEIMPULSE
- 59900: VENOMDRENCH
- 60000: POWDER
- 60100: GEOMANCY
- 60200: MAGNETICFLUX
- 60300: HAPPYHOUR
- 60400: ELECTRICTERRAIN
- 60500: DAZZLINGGLEAM
- 60600: CELEBRATE
- 60700: HOLDHANDS
- 60800: BABYDOLLEYES
- 60900: NUZZLE
- 61000: HOLDBACK
- 61100: INFESTATION
- 61200: POWERUPPUNCH
- 61300: OBLIVIONWING
- 61400: THOUSANDARROWS
- 61500: THOUSANDWAVES
- 61600: LANDSWRATH
- 61700: LIGHTOFRUIN
- 61800: ORIGINPULSE
- 61900: PRECIPICEBLADES
- 62000: DRAGONASCENT
- 62100: HYPERSPACEFURY
- 62200: BREAKNECKBLITZ
- 62400: ALLOUTPUMMELING
- 62600: SUPERSONICSKYSTRIKE
- 62800: ACIDDOWNPOUR
- 63000: TECTONICRAGE
- 63200: CONTINENTALCRUSH
- 63400: SAVAGESPINOUT
- 63600: NEVERENDINGNIGHTMARE
- 63800: CORKSCREWCRASH
- 64000: INFERNOOVERDRIVE
- 64200: HYDROVORTEX
- 64400: BLOOMDOOM
- 64600: GIGAVOLTHAVOC
- 64800: SHATTEREDPSYCHE
- 65000: SUBZEROSLAMMER
- 65200: DEVASTATINGDRAKE
- 65400: BLACKHOLEECLIPSE
- 65600: TWINKLETACKLE
- 65800: CATASTROPIKA
- 65900: SHOREUP
- 66000: FIRSTIMPRESSION
- 66100: BANEFULBUNKER
- 66200: SPIRITSHACKLE
- 66300: DARKESTLARIAT
- 66400: SPARKLINGARIA
- 66500: ICEHAMMER
- 66600: FLORALHEALING
- 66700: HIGHHORSEPOWER
- 66800: STRENGTHSAP
- 66900: SOLARBLADE
- 67000: LEAFAGE
- 67100: SPOTLIGHT
- 67200: TOXICTHREAD
- 67300: LASERFOCUS
- 67400: GEARUP
- 67500: THROATCHOP
- 67600: POLLENPUFF
- 67700: ANCHORSHOT
- 67800: PSYCHICTERRAIN
- 67900: LUNGE
- 68000: FIRELASH
- 68100: POWERTRIP
- 68200: BURNUP
- 68300: SPEEDSWAP
- 68400: SMARTSTRIKE
- 68500: PURIFY
- 68600: REVELATIONDANCE
- 68700: COREENFORCER
- 68800: TROPKICK
- 68900: INSTRUCT
- 69000: BEAKBLAST
- 69100: CLANGINGSCALES
- 69200: DRAGONHAMMER
- 69300: BRUTALSWING
- 69400: AURORAVEIL
- 69500: SINISTERARROWRAID
- 69600: MALICIOUSMOONSAULT
- 69700: OCEANICOPERETTA
- 69800: GUARDIANOFALOLA
- 69900: SOULSTEALING7STARSTRIKE
- 70000: STOKEDSPARKSURFER
- 70100: PULVERIZINGPANCAKE
- 70200: EXTREMEEVOBOOST
- 70300: GENESISSUPERNOVA
- 70400: SHELLTRAP
- 70500: FLEURCANNON
- 70600: PSYCHICFANGS
- 70700: STOMPINGTANTRUM
- 70800: SHADOWBONE
- 70900: ACCELEROCK
- 71000: LIQUIDATION
- 71100: PRISMATICLASER
- 71200: SPECTRALTHIEF
- 71300: SUNSTEELSTRIKE
- 71400: MOONGEISTBEAM
- 71500: TEARFULLOOK
- 71600: ZINGZAP
- 71700: NATURESMADNESS
- 71800: MULTIATTACK
- 71900: 10000000VOLTTHUNDERBOLT
- 72000: MINDBLOWN
- 72100: PLASMAFISTS
- 72200: PHOTONGEYSER
- 72300: LIGHTTHATBURNSTHESKY
- 72400: SEARINGSUNRAZESMASH
- 72500: MENACINGMOONRAZEMAELSTROM
- 72600: LETSSNUGGLEFOREVER
- 72700: SPLINTEREDSTORMSHARDS
- 72800: CLANGOROUSSOULBLAZE
- 72900: ZIPPYZAP
- 73000: SPLISHYSPLASH
- 73100: FLOATYFALL
- 73200: PIKAPAPOW
- 73300: BOUNCYBUBBLE
- 73400: BUZZYBUZZ
- 73500: SIZZLYSLIDE
- 73600: GLITZYGLOW
- 73700: BADDYBAD
- 73800: SAPPYSEED
- 73900: FREEZYFROST
- 74000: SPARKLYSWIRL
- 74100: VEEVEEVOLLEY
- 74200: DOUBLEIRONBASH
- 74300: MAXGUARD
- 74400: DYNAMAXCANNON
- 74500: SNIPESHOT
- 74600: JAWLOCK
- 74700: STUFFCHEEKS
- 74800: NORETREAT
- 74900: TARSHOT
- 75000: MAGICPOWDER
- 75100: DRAGONDARTS
- 75200: TEATIME
- 75300: OCTOLOCK
- 75400: BOLTBEAK
- 75500: FISHIOUSREND
- 75600: COURTCHANGE
- 75700: MAXFLARE
- 75800: MAXFLUTTERBY
- 75900: MAXLIGHTNING
- 76000: MAXSTRIKE
- 76100: MAXKNUCKLE
- 76200: MAXPHANTASM
- 76300: MAXHAILSTORM
- 76400: MAXOOZE
- 76500: MAXGEYSER
- 76600: MAXAIRSTREAM
- 76700: MAXSTARFALL
- 76800: MAXWYRMWIND
- 76900: MAXMINDSTORM
- 77000: MAXROCKFALL
- 77100: MAXQUAKE
- 77200: MAXDARKNESS
- 77300: MAXOVERGROWTH
- 77400: MAXSTEELSPIKE
- 77500: CLANGOROUSSOUL
- 77600: BODYPRESS
- 77700: DECORATE
- 77800: DRUMBEATING
- 77900: SNAPTRAP
- 78000: PYROBALL
- 78100: BEHEMOTHBLADE
- 78200: BEHEMOTHBASH
- 78300: AURAWHEEL
- 78400: BREAKINGSWIPE
- 78500: BRANCHPOKE
- 78600: OVERDRIVE
- 78700: APPLEACID
- 78800: GRAVAPPLE
- 78900: SPIRITBREAK
- 79000: STRANGESTEAM
- 79100: LIFEDEW
- 79200: OBSTRUCT
- 79300: FALSESURRENDER
- 79400: METEORASSAULT
- 79500: ETERNABEAM
- 79600: STEELBEAM
- 79700: EXPANDINGFORCE
- 79800: STEELROLLER
- 79900: SCALESHOT
- 80000: METEORBEAM
- 80100: SHELLSIDEARM
- 80200: MISTYEXPLOSION
- 80300: GRASSYGLIDE
- 80400: RISINGVOLTAGE
- 80500: TERRAINPULSE
- 80600: SKITTERSMACK
- 80700: BURNINGJEALOUSY
- 80800: LASHOUT
- 80900: POLTERGEIST
- 81000: CORROSIVEGAS
- 81100: COACHING
- 81200: FLIPTURN
- 81300: TRIPLEAXEL
- 81400: DUALWINGBEAT
- 81500: SCORCHINGSANDS
- 81600: JUNGLEHEALING
- 81700: WICKEDBLOW
- 81800: SURGINGSTRIKES
- 81900: THUNDERCAGE
- 82000: DRAGONENERGY
- 82100: FREEZINGGLARE
- 82200: FIERYWRATH
- 82300: THUNDEROUSKICK
- 82400: GLACIALLANCE
- 82500: ASTRALBARRAGE
- 82600: EERIESPELL
- 82700: DIRECLAW
- 82800: PSYSHIELDBASH
- 82900: POWERSHIFT
- 83000: STONEAXE
- 83100: SPRINGTIDESTORM
- 83200: MYSTICALPOWER
- 83300: RAGINGFURY
- 83400: WAVECRASH
- 83500: CHLOROBLAST
- 83600: MOUNTAINGALE
- 83700: VICTORYDANCE
- 83800: HEADLONGRUSH
- 83900: BARBBARRAGE
- 84000: ESPERWING
- 84100: BITTERMALICE
- 84200: SHELTER
- 84300: TRIPLEARROWS
- 84400: INFERNALPARADE
- 84500: CEASELESSEDGE
- 84600: BLEAKWINDSTORM
- 84700: WILDBOLTSTORM
- 84800: SANDSEARSTORM
- 84900: LUNARBLESSING
- 85000: TAKEHEART
- 85100: TERABLAST
- 85200: SILKTRAP
- 85300: AXEKICK
- 85400: LASTRESPECTS
- 85500: LUMINACRASH
- 85600: ORDERUP
- 85700: JETPUNCH
- 85800: SPICYEXTRACT
- 85900: SPINOUT
- 86000: POPULATIONBOMB
- 86100: ICESPINNER
- 86200: GLAIVERUSH
- 86300: REVIVALBLESSING
- 86400: SALTCURE
- 86500: TRIPLEDIVE
- 86600: MORTALSPIN
- 86700: DOODLE
- 86800: FILLETAWAY
- 86900: KOWTOWCLEAVE
- 87000: FLOWERTRICK
- 87100: TORCHSONG
- 87200: AQUASTEP
- 87300: RAGINGBULL
- 87400: MAKEITRAIN
- 87500: PSYBLADE
- 87600: HYDROSTEAM
- 87700: RUINATION
- 87800: COLLISIONCOURSE
- 87900: ELECTRODRIFT
- 88000: SHEDTAIL
- 88100: CHILLYRECEPTION
- 88200: TIDYUP
- 88300: SNOWSCAPE
- 88400: POUNCE
- 88500: TRAILBLAZE
- 88600: CHILLINGWATER
- 88700: HYPERDRILL
- 88800: TWINBEAM
- 88900: RAGEFIST
- 89000: ARMORCANNON
- 89100: BITTERBLADE
- 89200: DOUBLESHOCK
- 89300: GIGATONHAMMER
- 89400: COMEUPPANCE
- 89500: AQUACUTTER
- 89600: BLAZINGTORQUE
- 89700: WICKEDTORQUE
- 89800: NOXIOUSTORQUE
- 89900: COMBATTORQUE
- 90000: MAGICALTORQUE
- 90100: BLOODMOON
- 90200: MATCHAGOTCHA
- 90300: SYRUPBOMB
- 90400: IVYCUDGEL
- 100000: GMAXBEFUDDLE
- 100001: GMAXCANNONADE
- 100002: GMAXCENTIFERNO
- 100003: GMAXCHISTRIKE
- 100004: GMAXCUDDLE
- 100005: GMAXDEPLETION
- 100006: GMAXDRUMSOLO
- 100007: GMAXFINALE
- 100008: GMAXFIREBALL
- 100009: GMAXFOAMBURST
- 100010: GMAXGOLDRUSH
- 100011: GMAXGRAVITAS
- 100012: GMAXHYDROSNIPE
- 100013: GMAXMALODOR
- 100014: GMAXMELTDOWN
- 100015: GMAXONEBLOW
- 100016: GMAXRAPIDFLOW
- 100017: GMAXREPLENISH
- 100018: GMAXRESONANCE
- 100019: GMAXSANDBLAST
- 100020: GMAXSMITE
- 100021: GMAXSNOOZE
- 100022: GMAXSTEELSURGE
- 100023: GMAXSTONESURGE
- 100024: GMAXSTUNSHOCK
- 100025: GMAXSWEETNESS
- 100026: GMAXTARTNESS
- 100027: GMAXTERROR
- 100028: GMAXVINELASH
- 100029: GMAXVOLCALITH
- 100030: GMAXVOLTCRASH
- 100031: GMAXWILDFIRE
- 100032: GMAXWINDRAGE
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexItem","title":"DexItem
","text":"Represents possible Items
Options:
- 2: MASTERBALL
- 3: ULTRABALL
- 4: GREATBALL
- 5: POKEBALL
- 6: SAFARIBALL
- 7: NETBALL
- 8: DIVEBALL
- 9: NESTBALL
- 10: REPEATBALL
- 11: TIMERBALL
- 12: LUXURYBALL
- 13: PREMIERBALL
- 14: DUSKBALL
- 15: HEALBALL
- 16: QUICKBALL
- 17: CHERISHBALL
- 44: BERRYJUICE
- 81: SUNSTONE
- 82: MOONSTONE
- 83: FIRESTONE
- 84: THUNDERSTONE
- 85: WATERSTONE
- 86: LEAFSTONE
- 100: ROOTFOSSIL
- 101: CLAWFOSSIL
- 102: HELIXFOSSIL
- 103: DOMEFOSSIL
- 104: OLDAMBER
- 105: ARMORFOSSIL
- 106: SKULLFOSSIL
- 107: RAREBONE
- 108: SHINYSTONE
- 109: DUSKSTONE
- 110: DAWNSTONE
- 111: OVALSTONE
- 113: GRISEOUSORB
- 117: DOUSEDRIVE
- 118: SHOCKDRIVE
- 119: BURNDRIVE
- 120: CHILLDRIVE
- 136: ADAMANTORB
- 137: LUSTROUSORB
- 138: MAIL
- 150: CHERIBERRY
- 150: PRZCUREBERRY
- 151: CHESTOBERRY
- 151: MINTBERRY
- 152: PECHABERRY
- 152: PSNCUREBERRY
- 153: RAWSTBERRY
- 153: ICEBERRY
- 154: ASPEARBERRY
- 154: BURNTBERRY
- 155: LEPPABERRY
- 155: MYSTERYBERRY
- 156: ORANBERRY
- 156: BERRY
- 157: PERSIMBERRY
- 157: BITTERBERRY
- 158: LUMBERRY
- 158: MIRACLEBERRY
- 159: SITRUSBERRY
- 159: GOLDBERRY
- 160: FIGYBERRY
- 161: WIKIBERRY
- 162: MAGOBERRY
- 163: AGUAVBERRY
- 164: IAPAPABERRY
- 165: RAZZBERRY
- 166: BLUKBERRY
- 167: NANABBERRY
- 168: WEPEARBERRY
- 169: PINAPBERRY
- 170: POMEGBERRY
- 171: KELPSYBERRY
- 172: QUALOTBERRY
- 173: HONDEWBERRY
- 174: GREPABERRY
- 175: TAMATOBERRY
- 176: CORNNBERRY
- 177: MAGOSTBERRY
- 178: RABUTABERRY
- 179: NOMELBERRY
- 180: SPELONBERRY
- 181: PAMTREBERRY
- 182: WATMELBERRY
- 183: DURINBERRY
- 184: BELUEBERRY
- 185: OCCABERRY
- 186: PASSHOBERRY
- 187: WACANBERRY
- 188: RINDOBERRY
- 189: YACHEBERRY
- 190: CHOPLEBERRY
- 191: KEBIABERRY
- 192: SHUCABERRY
- 193: COBABERRY
- 194: PAYAPABERRY
- 195: TANGABERRY
- 196: CHARTIBERRY
- 197: KASIBBERRY
- 198: HABANBERRY
- 199: COLBURBERRY
- 200: BABIRIBERRY
- 201: CHILANBERRY
- 202: LIECHIBERRY
- 203: GANLONBERRY
- 204: SALACBERRY
- 205: PETAYABERRY
- 206: APICOTBERRY
- 207: LANSATBERRY
- 208: STARFBERRY
- 209: ENIGMABERRY
- 210: MICLEBERRY
- 211: CUSTAPBERRY
- 212: JABOCABERRY
- 213: ROWAPBERRY
- 214: BRIGHTPOWDER
- 215: WHITEHERB
- 216: MACHOBRACE
- 218: QUICKCLAW
- 220: MENTALHERB
- 221: CHOICEBAND
- 222: KINGSROCK
- 223: SILVERPOWDER
- 226: SOULDEW
- 227: DEEPSEATOOTH
- 228: DEEPSEASCALE
- 231: FOCUSBAND
- 233: SCOPELENS
- 234: METALCOAT
- 235: LEFTOVERS
- 236: DRAGONSCALE
- 237: LIGHTBALL
- 238: SOFTSAND
- 239: HARDSTONE
- 240: MIRACLESEED
- 241: BLACKGLASSES
- 242: BLACKBELT
- 243: MAGNET
- 244: MYSTICWATER
- 245: SHARPBEAK
- 246: POISONBARB
- 247: NEVERMELTICE
- 248: SPELLTAG
- 249: TWISTEDSPOON
- 250: CHARCOAL
- 251: DRAGONFANG
- 252: SILKSCARF
- 252: PINKBOW
- 252: POLKADOTBOW
- 253: UPGRADE
- 254: SHELLBELL
- 255: SEAINCENSE
- 256: LAXINCENSE
- 257: LUCKYPUNCH
- 258: METALPOWDER
- 259: THICKCLUB
- 260: LEEK
- 260: STICK
- 266: WIDELENS
- 267: MUSCLEBAND
- 268: WISEGLASSES
- 269: EXPERTBELT
- 270: LIGHTCLAY
- 271: LIFEORB
- 272: POWERHERB
- 273: TOXICORB
- 274: FLAMEORB
- 275: QUICKPOWDER
- 276: FOCUSSASH
- 277: ZOOMLENS
- 278: METRONOME
- 279: IRONBALL
- 280: LAGGINGTAIL
- 281: DESTINYKNOT
- 282: BLACKSLUDGE
- 283: ICYROCK
- 284: SMOOTHROCK
- 285: HEATROCK
- 286: DAMPROCK
- 287: GRIPCLAW
- 288: CHOICESCARF
- 289: STICKYBARB
- 290: POWERBRACER
- 291: POWERBELT
- 292: POWERLENS
- 293: POWERBAND
- 294: POWERANKLET
- 295: POWERWEIGHT
- 296: SHEDSHELL
- 297: BIGROOT
- 298: CHOICESPECS
- 299: FLAMEPLATE
- 300: SPLASHPLATE
- 301: ZAPPLATE
- 302: MEADOWPLATE
- 303: ICICLEPLATE
- 304: FISTPLATE
- 305: TOXICPLATE
- 306: EARTHPLATE
- 307: SKYPLATE
- 308: MINDPLATE
- 309: INSECTPLATE
- 310: STONEPLATE
- 311: SPOOKYPLATE
- 312: DRACOPLATE
- 313: DREADPLATE
- 314: IRONPLATE
- 315: ODDINCENSE
- 316: ROCKINCENSE
- 317: FULLINCENSE
- 318: WAVEINCENSE
- 319: ROSEINCENSE
- 322: PROTECTOR
- 323: ELECTIRIZER
- 324: MAGMARIZER
- 325: DUBIOUSDISC
- 326: REAPERCLOTH
- 327: RAZORCLAW
- 328: RAZORFANG
- 493: FASTBALL
- 494: LEVELBALL
- 495: LUREBALL
- 496: HEAVYBALL
- 497: LOVEBALL
- 498: FRIENDBALL
- 499: MOONBALL
- 500: SPORTBALL
- 501: PARKBALL
- 535: REDORB
- 536: BLUEORB
- 538: PRISMSCALE
- 539: EVIOLITE
- 540: FLOATSTONE
- 541: ROCKYHELMET
- 542: AIRBALLOON
- 543: REDCARD
- 544: RINGTARGET
- 545: BINDINGBAND
- 546: ABSORBBULB
- 547: CELLBATTERY
- 548: EJECTBUTTON
- 549: FIREGEM
- 550: WATERGEM
- 551: ELECTRICGEM
- 552: GRASSGEM
- 553: ICEGEM
- 554: FIGHTINGGEM
- 555: POISONGEM
- 556: GROUNDGEM
- 557: FLYINGGEM
- 558: PSYCHICGEM
- 559: BUGGEM
- 560: ROCKGEM
- 561: GHOSTGEM
- 562: DRAGONGEM
- 563: DARKGEM
- 564: STEELGEM
- 565: NORMALGEM
- 573: COVERFOSSIL
- 574: PLUMEFOSSIL
- 577: DREAMBALL
- 582: BIGNUGGET
- 640: WEAKNESSPOLICY
- 641: ASSAULTVEST
- 645: PIXIEPLATE
- 647: WHIPPEDDREAM
- 648: SACHET
- 649: LUMINOUSMOSS
- 650: SNOWBALL
- 651: SAFETYGOGGLES
- 657: GENGARITE
- 658: GARDEVOIRITE
- 659: AMPHAROSITE
- 660: VENUSAURITE
- 661: CHARIZARDITEX
- 662: BLASTOISINITE
- 663: MEWTWONITEX
- 664: MEWTWONITEY
- 665: BLAZIKENITE
- 666: MEDICHAMITE
- 667: HOUNDOOMINITE
- 668: AGGRONITE
- 669: BANETTITE
- 670: TYRANITARITE
- 671: SCIZORITE
- 672: PINSIRITE
- 673: AERODACTYLITE
- 674: LUCARIONITE
- 675: ABOMASITE
- 676: KANGASKHANITE
- 677: GYARADOSITE
- 678: ABSOLITE
- 679: CHARIZARDITEY
- 680: ALAKAZITE
- 681: HERACRONITE
- 682: MAWILITE
- 683: MANECTITE
- 684: GARCHOMPITE
- 685: LATIASITE
- 686: LATIOSITE
- 687: ROSELIBERRY
- 688: KEEBERRY
- 689: MARANGABERRY
- 711: JAWFOSSIL
- 712: SAILFOSSIL
- 716: FAIRYGEM
- 753: SWAMPERTITE
- 754: SCEPTILITE
- 755: SABLENITE
- 756: ALTARIANITE
- 757: GALLADITE
- 758: AUDINITE
- 759: METAGROSSITE
- 760: SHARPEDONITE
- 761: SLOWBRONITE
- 762: STEELIXITE
- 763: PIDGEOTITE
- 764: GLALITITE
- 765: DIANCITE
- 768: CAMERUPTITE
- 769: LOPUNNITE
- 770: SALAMENCITE
- 771: BEEDRILLITE
- 777: NORMALIUMZ
- 778: FIRIUMZ
- 779: WATERIUMZ
- 780: ELECTRIUMZ
- 781: GRASSIUMZ
- 782: ICIUMZ
- 783: FIGHTINIUMZ
- 784: POISONIUMZ
- 785: GROUNDIUMZ
- 786: FLYINIUMZ
- 787: PSYCHIUMZ
- 788: BUGINIUMZ
- 789: ROCKIUMZ
- 790: GHOSTIUMZ
- 791: DRAGONIUMZ
- 792: DARKINIUMZ
- 793: STEELIUMZ
- 794: FAIRIUMZ
- 795: PIKANIUMZ
- 796: BOTTLECAP
- 797: GOLDBOTTLECAP
- 799: DECIDIUMZ
- 800: INCINIUMZ
- 801: PRIMARIUMZ
- 802: TAPUNIUMZ
- 803: MARSHADIUMZ
- 804: ALORAICHIUMZ
- 805: SNORLIUMZ
- 806: EEVIUMZ
- 807: MEWNIUMZ
- 837: PIKASHUNIUMZ
- 847: ADRENALINEORB
- 850: ICESTONE
- 852: BEASTBALL
- 880: TERRAINEXTENDER
- 881: PROTECTIVEPADS
- 882: ELECTRICSEED
- 883: PSYCHICSEED
- 884: MISTYSEED
- 885: GRASSYSEED
- 905: FIGHTINGMEMORY
- 906: FLYINGMEMORY
- 907: POISONMEMORY
- 908: GROUNDMEMORY
- 909: ROCKMEMORY
- 910: BUGMEMORY
- 911: GHOSTMEMORY
- 912: STEELMEMORY
- 913: FIREMEMORY
- 914: WATERMEMORY
- 915: GRASSMEMORY
- 916: ELECTRICMEMORY
- 917: PSYCHICMEMORY
- 918: ICEMEMORY
- 919: DRAGONMEMORY
- 920: DARKMEMORY
- 921: FAIRYMEMORY
- 922: SOLGANIUMZ
- 923: LUNALIUMZ
- 924: ULTRANECROZIUMZ
- 925: MIMIKIUMZ
- 926: LYCANIUMZ
- 927: KOMMONIUMZ
- 1104: RUSTEDSWORD
- 1105: RUSTEDSHIELD
- 1106: FOSSILIZEDBIRD
- 1107: FOSSILIZEDFISH
- 1108: FOSSILIZEDDRAKE
- 1109: FOSSILIZEDDINO
- 1110: STRAWBERRYSWEET
- 1111: LOVESWEET
- 1112: BERRYSWEET
- 1113: CLOVERSWEET
- 1114: FLOWERSWEET
- 1115: STARSWEET
- 1116: RIBBONSWEET
- 1117: SWEETAPPLE
- 1118: TARTAPPLE
- 1119: THROATSPRAY
- 1120: EJECTPACK
- 1121: HEAVYDUTYBOOTS
- 1122: BLUNDERPOLICY
- 1123: ROOMSERVICE
- 1124: UTILITYUMBRELLA
- 1131: TR00
- 1132: TR01
- 1133: TR02
- 1134: TR03
- 1135: TR04
- 1136: TR05
- 1137: TR06
- 1138: TR07
- 1139: TR08
- 1140: TR09
- 1141: TR10
- 1142: TR11
- 1143: TR12
- 1144: TR13
- 1145: TR14
- 1146: TR15
- 1147: TR16
- 1148: TR17
- 1149: TR18
- 1150: TR19
- 1151: TR20
- 1152: TR21
- 1153: TR22
- 1154: TR23
- 1155: TR24
- 1156: TR25
- 1157: TR26
- 1158: TR27
- 1159: TR28
- 1160: TR29
- 1161: TR30
- 1162: TR31
- 1163: TR32
- 1164: TR33
- 1165: TR34
- 1166: TR35
- 1167: TR36
- 1168: TR37
- 1169: TR38
- 1170: TR39
- 1171: TR40
- 1172: TR41
- 1173: TR42
- 1174: TR43
- 1175: TR44
- 1176: TR45
- 1177: TR46
- 1178: TR47
- 1179: TR48
- 1180: TR49
- 1181: TR50
- 1182: TR51
- 1183: TR52
- 1184: TR53
- 1185: TR54
- 1186: TR55
- 1187: TR56
- 1188: TR57
- 1189: TR58
- 1190: TR59
- 1191: TR60
- 1192: TR61
- 1193: TR62
- 1194: TR63
- 1195: TR64
- 1196: TR65
- 1197: TR66
- 1198: TR67
- 1199: TR68
- 1200: TR69
- 1201: TR70
- 1202: TR71
- 1203: TR72
- 1204: TR73
- 1205: TR74
- 1206: TR75
- 1207: TR76
- 1208: TR77
- 1209: TR78
- 1210: TR79
- 1211: TR80
- 1212: TR81
- 1213: TR82
- 1214: TR83
- 1215: TR84
- 1216: TR85
- 1217: TR86
- 1218: TR87
- 1219: TR88
- 1220: TR89
- 1221: TR90
- 1222: TR91
- 1223: TR92
- 1224: TR93
- 1225: TR94
- 1226: TR95
- 1227: TR96
- 1228: TR97
- 1229: TR98
- 1230: TR99
- 1254: CRACKEDPOT
- 1255: CHIPPEDPOT
- 1583: GALARICACUFF
- 1593: GALARICAWREATH
- 1778: ADAMANTCRYSTAL
- 1779: LUSTROUSGLOBE
- 1780: GRISEOUSCORE
- 1786: STRANGEBALL
- 1862: MALICIOUSARMOR
- 1881: BOOSTERENERGY
- 1882: ABILITYSHIELD
- 1883: CLEARAMULET
- 1884: MIRRORHERB
- 1885: PUNCHINGGLOVE
- 1886: COVERTCLOAK
- 1887: LOADEDDICE
- 2345: AUSPICIOUSARMOR
- 2402: FAIRYFEATHER
- 2403: SYRUPYAPPLE
- 2404: UNREMARKABLETEACUP
- 2405: MASTERPIECETEACUP
- 2407: CORNERSTONEMASK
- 2408: WELLSPRINGMASK
- 2409: HEARTHFLAMEMASK
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexStatus","title":"DexStatus
","text":"Represents possible Statuss
Options:
- 1: FNT
- 2: BRN
- 3: PAR
- 4: SLP
- 5: FRZ
- 6: PSN
- 7: TOX
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexWeather","title":"DexWeather
","text":"Represents possible Weathers
Options:
- 1: NONE
- 2: RAINDANCE
- 3: PRIMORDIALSEA
- 4: SUNNYDAY
- 5: DESOLATELAND
- 6: SANDSTORM
- 7: HAIL
- 8: SNOW
- 9: DELTASTREAM
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexCondition","title":"DexCondition
","text":"Represents possible Conditions
Options:
- 1: CONFUSION
- 2: FLINCH
- 3: TRAPPED
- 4: TRAPPER
- 5: PARTIALLYTRAPPED
- 6: LOCKEDMOVE
- 7: TWOTURNMOVE
- 8: CHOICELOCK
- 9: MUSTRECHARGE
- 10: FUTUREMOVE
- 11: HEALREPLACEMENT
- 12: STALL
- 13: GEM
- 14: DYNAMAX
- 15: COMMANDED
- 16: COMMANDING
- 17: ARCEUS
- 18: SILVALLY
- 19: ROLLOUTSTORAGE
"},{"location":"dex/reference/dex-classes/#poketypes.dex.dexdata_pb2.DexAbility","title":"DexAbility
","text":"Represents possible Abilitys
Options:
- 100: NOABILITY
- 200: STENCH
- 300: DRIZZLE
- 400: SPEEDBOOST
- 500: BATTLEARMOR
- 600: STURDY
- 700: DAMP
- 800: LIMBER
- 900: SANDVEIL
- 1000: STATIC
- 1100: VOLTABSORB
- 1200: WATERABSORB
- 1300: OBLIVIOUS
- 1400: CLOUDNINE
- 1500: COMPOUNDEYES
- 1600: INSOMNIA
- 1700: COLORCHANGE
- 1800: IMMUNITY
- 1900: FLASHFIRE
- 2000: SHIELDDUST
- 2100: OWNTEMPO
- 2200: SUCTIONCUPS
- 2300: INTIMIDATE
- 2400: SHADOWTAG
- 2500: ROUGHSKIN
- 2600: WONDERGUARD
- 2700: LEVITATE
- 2800: EFFECTSPORE
- 2900: SYNCHRONIZE
- 3000: CLEARBODY
- 3100: NATURALCURE
- 3200: LIGHTNINGROD
- 3300: SERENEGRACE
- 3400: SWIFTSWIM
- 3500: CHLOROPHYLL
- 3600: ILLUMINATE
- 3700: TRACE
- 3800: HUGEPOWER
- 3900: POISONPOINT
- 4000: INNERFOCUS
- 4100: MAGMAARMOR
- 4200: WATERVEIL
- 4300: MAGNETPULL
- 4400: SOUNDPROOF
- 4500: RAINDISH
- 4600: SANDSTREAM
- 4700: PRESSURE
- 4800: THICKFAT
- 4900: EARLYBIRD
- 5000: FLAMEBODY
- 5100: RUNAWAY
- 5200: KEENEYE
- 5300: HYPERCUTTER
- 5400: PICKUP
- 5500: TRUANT
- 5600: HUSTLE
- 5700: CUTECHARM
- 5800: PLUS
- 5900: MINUS
- 6000: FORECAST
- 6100: STICKYHOLD
- 6200: SHEDSKIN
- 6300: GUTS
- 6400: MARVELSCALE
- 6500: LIQUIDOOZE
- 6600: OVERGROW
- 6700: BLAZE
- 6800: TORRENT
- 6900: SWARM
- 7000: ROCKHEAD
- 7100: DROUGHT
- 7200: ARENATRAP
- 7300: VITALSPIRIT
- 7400: WHITESMOKE
- 7500: PUREPOWER
- 7600: SHELLARMOR
- 7700: AIRLOCK
- 7800: TANGLEDFEET
- 7900: MOTORDRIVE
- 8000: RIVALRY
- 8100: STEADFAST
- 8200: SNOWCLOAK
- 8300: GLUTTONY
- 8400: ANGERPOINT
- 8500: UNBURDEN
- 8600: HEATPROOF
- 8700: SIMPLE
- 8800: DRYSKIN
- 8900: DOWNLOAD
- 9000: IRONFIST
- 9100: POISONHEAL
- 9200: ADAPTABILITY
- 9300: SKILLLINK
- 9400: HYDRATION
- 9500: SOLARPOWER
- 9600: QUICKFEET
- 9700: NORMALIZE
- 9800: SNIPER
- 9900: MAGICGUARD
- 10000: NOGUARD
- 10100: STALL
- 10200: TECHNICIAN
- 10300: LEAFGUARD
- 10400: KLUTZ
- 10500: MOLDBREAKER
- 10600: SUPERLUCK
- 10700: AFTERMATH
- 10800: ANTICIPATION
- 10900: FOREWARN
- 11000: UNAWARE
- 11100: TINTEDLENS
- 11200: FILTER
- 11300: SLOWSTART
- 11400: SCRAPPY
- 11500: STORMDRAIN
- 11600: ICEBODY
- 11700: SOLIDROCK
- 11800: SNOWWARNING
- 11900: HONEYGATHER
- 12000: FRISK
- 12100: RECKLESS
- 12200: MULTITYPE
- 12300: FLOWERGIFT
- 12400: BADDREAMS
- 12500: PICKPOCKET
- 12600: SHEERFORCE
- 12700: CONTRARY
- 12800: UNNERVE
- 12900: DEFIANT
- 13000: DEFEATIST
- 13100: CURSEDBODY
- 13200: HEALER
- 13300: FRIENDGUARD
- 13400: WEAKARMOR
- 13500: HEAVYMETAL
- 13600: LIGHTMETAL
- 13700: MULTISCALE
- 13800: TOXICBOOST
- 13900: FLAREBOOST
- 14000: HARVEST
- 14100: TELEPATHY
- 14200: MOODY
- 14300: OVERCOAT
- 14400: POISONTOUCH
- 14500: REGENERATOR
- 14600: BIGPECKS
- 14700: SANDRUSH
- 14800: WONDERSKIN
- 14900: ANALYTIC
- 15000: ILLUSION
- 15100: IMPOSTER
- 15200: INFILTRATOR
- 15300: MUMMY
- 15400: MOXIE
- 15500: JUSTIFIED
- 15600: RATTLED
- 15700: MAGICBOUNCE
- 15800: SAPSIPPER
- 15900: PRANKSTER
- 16000: SANDFORCE
- 16100: IRONBARBS
- 16200: ZENMODE
- 16300: VICTORYSTAR
- 16400: TURBOBLAZE
- 16500: TERAVOLT
- 16600: AROMAVEIL
- 16700: FLOWERVEIL
- 16800: CHEEKPOUCH
- 16900: PROTEAN
- 17000: FURCOAT
- 17100: MAGICIAN
- 17200: BULLETPROOF
- 17300: COMPETITIVE
- 17400: STRONGJAW
- 17500: REFRIGERATE
- 17600: SWEETVEIL
- 17700: STANCECHANGE
- 17800: GALEWINGS
- 17900: MEGALAUNCHER
- 18000: GRASSPELT
- 18100: SYMBIOSIS
- 18200: TOUGHCLAWS
- 18300: PIXILATE
- 18400: GOOEY
- 18500: AERILATE
- 18600: PARENTALBOND
- 18700: DARKAURA
- 18800: FAIRYAURA
- 18900: AURABREAK
- 19000: PRIMORDIALSEA
- 19100: DESOLATELAND
- 19200: DELTASTREAM
- 19300: STAMINA
- 19400: WIMPOUT
- 19500: EMERGENCYEXIT
- 19600: WATERCOMPACTION
- 19700: MERCILESS
- 19800: SHIELDSDOWN
- 19900: STAKEOUT
- 20000: WATERBUBBLE
- 20100: STEELWORKER
- 20200: BERSERK
- 20300: SLUSHRUSH
- 20400: LONGREACH
- 20500: LIQUIDVOICE
- 20600: TRIAGE
- 20700: GALVANIZE
- 20800: SURGESURFER
- 20900: SCHOOLING
- 21000: DISGUISE
- 21100: BATTLEBOND
- 21200: POWERCONSTRUCT
- 21300: CORROSION
- 21400: COMATOSE
- 21500: QUEENLYMAJESTY
- 21600: INNARDSOUT
- 21700: DANCER
- 21800: BATTERY
- 21900: FLUFFY
- 22000: DAZZLING
- 22100: SOULHEART
- 22200: TANGLINGHAIR
- 22300: RECEIVER
- 22400: POWEROFALCHEMY
- 22500: BEASTBOOST
- 22600: RKSSYSTEM
- 22700: ELECTRICSURGE
- 22800: PSYCHICSURGE
- 22900: MISTYSURGE
- 23000: GRASSYSURGE
- 23100: FULLMETALBODY
- 23200: SHADOWSHIELD
- 23300: PRISMARMOR
- 23400: NEUROFORCE
- 23500: INTREPIDSWORD
- 23600: DAUNTLESSSHIELD
- 23700: LIBERO
- 23800: BALLFETCH
- 23900: COTTONDOWN
- 24000: PROPELLERTAIL
- 24100: MIRRORARMOR
- 24200: GULPMISSILE
- 24300: STALWART
- 24400: STEAMENGINE
- 24500: PUNKROCK
- 24600: SANDSPIT
- 24700: ICESCALES
- 24800: RIPEN
- 24900: ICEFACE
- 25000: POWERSPOT
- 25100: MIMICRY
- 25200: SCREENCLEANER
- 25300: STEELYSPIRIT
- 25400: PERISHBODY
- 25500: WANDERINGSPIRIT
- 25600: GORILLATACTICS
- 25700: NEUTRALIZINGGAS
- 25800: PASTELVEIL
- 25900: HUNGERSWITCH
- 26000: QUICKDRAW
- 26100: UNSEENFIST
- 26200: CURIOUSMEDICINE
- 26300: TRANSISTOR
- 26400: DRAGONSMAW
- 26500: CHILLINGNEIGH
- 26600: GRIMNEIGH
- 26700: ASONE
- 26701: ASONEGLASTRIER
- 26702: ASONESPECTRIER
- 26900: LINGERINGAROMA
- 27000: SEEDSOWER
- 27100: THERMALEXCHANGE
- 27200: ANGERSHELL
- 27300: PURIFYINGSALT
- 27400: WELLBAKEDBODY
- 27500: WINDRIDER
- 27600: GUARDDOG
- 27700: ROCKYPAYLOAD
- 27800: WINDPOWER
- 27900: ZEROTOHERO
- 28000: COMMANDER
- 28100: ELECTROMORPHOSIS
- 28200: PROTOSYNTHESIS
- 28300: QUARKDRIVE
- 28400: GOODASGOLD
- 28500: VESSELOFRUIN
- 28501: TABLETSOFRUIN
- 28502: BEADSOFRUIN
- 28600: SWORDOFRUIN
- 28900: ORICHALCUMPULSE
- 29000: HADRONENGINE
- 29100: OPPORTUNIST
- 29200: CUDCHEW
- 29300: SHARPNESS
- 29400: SUPREMEOVERLORD
- 29500: COSTAR
- 29600: TOXICDEBRIS
- 29700: ARMORTAIL
- 29800: EARTHEATER
- 29900: MYCELIUMMIGHT
- 30000: HOSPITALITY
- 30100: MINDSEYE
- 30200: EMBODYASPECTTEAL
- 30300: EMBODYASPECTWELLSPRING
- 30400: EMBODYASPECTHEARTHFLAME
- 30500: EMBODYASPECTCORNERSTONE
- 30600: TOXICCHAIN
- 30700: SUPERSWEETSYRUP
"},{"location":"dex/reference/pokedex-classes/","title":"The PokedexClass","text":"poketypes.dex.pokedex
OR directly import from poketypes.dex
"},{"location":"dex/reference/pokedex-classes/#basics","title":"Basics","text":"Each PokedexClass is a pydantic BaseModel, holding every possibly-useful attribute sourced directly from pokemon showdown typescript files as the ground truth.
"},{"location":"dex/reference/pokedex-classes/#reference","title":"Reference","text":"Provides BaseModels for accessing real information about specific items/pokemon/moves/etc.
All Pokedex{NAME} classes are defined in this module, though you can also import these directly from poketypes.dex.
"},{"location":"dex/reference/pokedex-classes/#poketypes.dex.pokedex.PokedexMove","title":"PokedexMove
","text":"Pokedex class for Move information.
ATTRIBUTE DESCRIPTION name
The friendly string name of this move
TYPE: str
id
The DexMove ID of this move
TYPE: DexMove.ValueType
base_power
The base power of the move
TYPE: int
pp
The pp of this move
TYPE: int
priority
The priority of the move
TYPE: int
crit_ratio
The crit ratio of the move (e.g. 2 = twice the chance to crit)
TYPE: int
category
The move category as a DexMoveCategory
TYPE: DexMoveCategory.ValueType
target
The target type of this move
TYPE: DexMoveTarget.ValueType
mtype
The type of the move
TYPE: DexType.ValueType
breaks_protect
Whether the move breaks target protect
TYPE: bool
ignore_ability
Whether the move ignores target ability
TYPE: bool
ignore_defensive
Whether the move ignores target defensive boosts
TYPE: bool
ignore_evasion
Whether the move ignores target evasion boosts
TYPE: bool
ignore_immunity
Whether the move ignores target immunity to this move type
TYPE: bool
multiaccuracy
Whether the multihit move is all or nothing
TYPE: bool
ohko
Whether the move is a one-hit-ko
TYPE: bool
stalling_move
Whether the move is considered a stalling move
TYPE: bool
will_crit
Whether the move will 100% crit if it lands
TYPE: bool
has_crash_damage
Whether the move does damage to its user on failure
TYPE: bool
has_sheer_force
The move is always boosted by sheer-force without losing benefit
TYPE: bool
selfdestruct_always
Whether this move always causes the user to faint
TYPE: bool
selfdestruct_ifhit
Whether the move causes the user to faint if and only if it hits
TYPE: bool
steals_boosts
Whether the move steals the targets boosts
TYPE: bool
level_damage
Whether the move does damage based on the level of the user
TYPE: bool
force_switch
Whether the move forces the target to switch out
TYPE: bool
mindblown_recoil
Whether the move has special 'Mind Blown' style recoil
TYPE: bool
struggle_recoil
Whether the move has special 'Struggle' style recoil
TYPE: bool
smart_target
Whether the move uses smart targetting
TYPE: bool
thaws_target
Whether the move thaws target as a special effect
TYPE: bool
tracks_target
Whether the move ignores draw-in
move/abilities.
TYPE: bool
selfswitch_standard
Whether the move is a typical self-switching move. Teleport/U-Turn/etc
TYPE: bool
selfswitch_volatile
Whether the move is a volatile-keeping self-switching move. Baton Pass
TYPE: bool
selfswitch_shedtail
Whether the move is a substitue creating self-switching move. Shed Tail
TYPE: bool
sleep_usable
Whether the move can be used when sleeping
TYPE: bool
no_metronome
Whether the move can NOT be used as a result of metronome
TYPE: bool
no_sketch
Whether the move can NOT be copied as a result of sketch
TYPE: bool
no_ppboosts
Whether the move can NOT have its pp boosted beyond default
TYPE: bool
accuracy
The accuracy of this move. Optional if the move bypasses accuracy
TYPE: Optional[int]
multihit
The move hits multiple times from slot0 - slot1 times inclusive. Optional
TYPE: Optional[Tuple[int, int]]
drain
The move drains hp: (slot0 / slot1) times damage dealt. Optional
TYPE: Optional[Tuple[int, int]]
heal
The move directly heals hp: (slot0 / slot1) times maximum health. Optional
TYPE: Optional[Tuple[int, int]]
recoil
The move recoils back hp: (slot0 / slot1) times damage dealt. Optional
TYPE: Optional[Tuple[int, int]]
boosts
Any boosts for the target this move provides (100%). Optional
TYPE: Optional[Dict[DexStat.ValueType, int]]
direct_damage
An integer exact amount of damage the move does. Optional
TYPE: Optional[int]
weather
The weather started by this move. Optional
TYPE: Optional[DexWeather.ValueType]
flag_allyanim
MOVE FLAG: allyanim
TYPE: bool
flag_bite
MOVE FLAG: bite
TYPE: bool
flag_bullet
MOVE FLAG: bullet
TYPE: bool
flag_bypasssub
MOVE FLAG: bypasssub
TYPE: bool
flag_cantusetwice
MOVE FLAG: cantusetwice
TYPE: bool
flag_charge
MOVE FLAG: charge
TYPE: bool
flag_contact
MOVE FLAG: contact
TYPE: bool
flag_dance
MOVE FLAG: dance
TYPE: bool
flag_defrost
MOVE FLAG: defrost
TYPE: bool
flag_distance
MOVE FLAG: distance
TYPE: bool
flag_failcopycat
MOVE FLAG: failcopycat
TYPE: bool
flag_failencore
MOVE FLAG: failencore
TYPE: bool
flag_failinstruct
MOVE FLAG: failinstruct
TYPE: bool
flag_failmefirst
MOVE FLAG: failmefirst
TYPE: bool
flag_failmimic
MOVE FLAG: failmimic
TYPE: bool
flag_futuremove
MOVE FLAG: futuremove
TYPE: bool
flag_gravity
MOVE FLAG: gravity
TYPE: bool
flag_heal
MOVE FLAG: heal
TYPE: bool
flag_mirror
MOVE FLAG: mirror
TYPE: bool
flag_mustpressure
MOVE FLAG: mustpressure
TYPE: bool
flag_noassist
MOVE FLAG: noassist
TYPE: bool
flag_nonsky
MOVE FLAG: nonsky
TYPE: bool
flag_noparentalbond
MOVE FLAG: noparentalbond
TYPE: bool
flag_nosleeptalk
MOVE FLAG: nosleeptalk
TYPE: bool
flag_pledgecombo
MOVE FLAG: pledgecombo
TYPE: bool
flag_powder
MOVE FLAG: powder
TYPE: bool
flag_protect
MOVE FLAG: protect
TYPE: bool
flag_pulse
MOVE FLAG: pulse
TYPE: bool
flag_punch
MOVE FLAG: punch
TYPE: bool
flag_recharge
MOVE FLAG: recharge
TYPE: bool
flag_reflectable
MOVE FLAG: reflectable
TYPE: bool
flag_slicing
MOVE FLAG: slicing
TYPE: bool
flag_snatch
MOVE FLAG: snatch
TYPE: bool
flag_sound
MOVE FLAG: sound
TYPE: bool
flag_wind
MOVE FLAG: wind
TYPE: bool
"},{"location":"dex/reference/pokedex-classes/#poketypes.dex.pokedex.PokedexItem","title":"PokedexItem
","text":"Pokedex class for Item information.
ATTRIBUTE DESCRIPTION name
The friendly string name of this item
TYPE: str
id
The DexItem ID of this item
TYPE: DexItem.ValueType
is_gem
Whether the item is a gem or not
TYPE: bool
is_berry
Whether the item is a berry
TYPE: bool
naturalgift_base_power
If this item is usable with Natural Gift, what is the base power
TYPE: Optional[int]
naturalgift_type
If this item is usable with Natural Gift, what is the type
TYPE: Optional[DexType.ValueType]
item_users
A list of intended holders of this item
TYPE: List[DexPokemon.ValueType]
zmove_to
What move this zmove transforms the move into
TYPE: Optional[DexMove.ValueType]
zmove_from
What special move this zmove transforms
TYPE: Optional[DexMove.ValueType]
mega_evolves
Which base-forme pokemon this megastone evolves from. Optional
TYPE: Optional[DexPokemon.ValueType]
mega_forme
Which mega-forme pokemon this megastone evolves into. Optional
TYPE: Optional[DexPokemon.ValueType]
ignore_klutz
Whether the item ignores klutz
TYPE: bool
fling_basepower
The basepower of fling when flinging this item. None if n/a
TYPE: Optional[int]
"},{"location":"dex/reference/pokedex-classes/#poketypes.dex.pokedex.StatBlock","title":"StatBlock
","text":"Helper object for containing base stats information.
ATTRIBUTE DESCRIPTION hp_stat
The base hp of the pokemon
TYPE: int
atk_stat
The base attack of the pokemon
TYPE: int
def_stat
The base defence of the pokemon
TYPE: int
spa_stat
The base special attack of the pokemon
TYPE: int
spd_stat
The base special defence of the pokemon
TYPE: int
spe_stat
The base speed of the pokemon
TYPE: int
"},{"location":"dex/reference/pokedex-classes/#poketypes.dex.pokedex.PokedexPokemon","title":"PokedexPokemon
","text":"Pokedex class for Pokemon information.
ATTRIBUTE DESCRIPTION name
The friendly string name of this pokemon
TYPE: str
id
The DexPokemon ID of this pokemon
TYPE: DexPokemon.ValueType
base_name
The friendly string name of this pokemon's base forme
TYPE: str
base_id
The DexPokemon ID of this pokemon's base forme
TYPE: DexPokemon.ValueType
types
The types of this pokemon
TYPE: List[DexType.ValueType]
base_stats
The base stat block of this pokemon
TYPE: StatBlock
abilities
The list of abilities this pokemon can have
TYPE: List[DexAbility.ValueType]
"},{"location":"dex/reference/utilities/","title":"Utilities","text":"There are also a few utility functions provided to help the user convert typical string names to the relevant ID for their corresponding Dex Class.
"},{"location":"dex/reference/utilities/#dex-data-utilities","title":"Dex Data Utilities:","text":"Provides tools for cleaning Dex IDs back and forth from strings, as well as other utility functions.
"},{"location":"dex/reference/utilities/#poketypes.dex.dexdata.cast2dex","title":"cast2dex(name, dex_class)
","text":"Clean and cast name to the corresponding entry in the given dex_class.
EX: Magikarp -> Cleaned to: MAGIKARP -> DexPokemon.POKEMON_MAGIKARP (Which is secretly the int 129000)
EX: Scizor-Mega -> Cleaned to: SCIZORMEGA -> DexPokemon.POKEMON_SCIZORMEGA (Which is secretly the int 208001)
Parameters:
Name Type Description Default name
str
The name of the entry.
required dex_class
AnyDex
Which Dex Enum to use in labeling. Must be a valid Dex{NAME} class.
required Returns:
Name Type Description int
int
The corresponding value for this cleaned entry.
Source code in poketypes\\dex\\dexdata.py
def cast2dex(name: str, dex_class: AnyDex) -> int:\n \"\"\"Clean and cast name to the corresponding entry in the given dex_class.\n\n EX:\n Magikarp -> Cleaned to: MAGIKARP -> DexPokemon.POKEMON_MAGIKARP (Which is secretly the int 129000)\n\n EX:\n Scizor-Mega -> Cleaned to: SCIZORMEGA -> DexPokemon.POKEMON_SCIZORMEGA (Which is secretly the int 208001)\n\n Args:\n name (str): The name of the entry.\n dex_class (AnyDex): Which Dex Enum to use in labeling. Must be a valid Dex{NAME} class.\n\n Returns:\n int: The corresponding value for this cleaned entry.\n \"\"\"\n clean_id = clean_name(name)\n\n if clean_id is None:\n return clean_id\n\n if dex_class == DexAbility:\n return DexAbility.Value(f\"ABILITY_{clean_id}\")\n elif dex_class == DexCondition:\n return DexCondition.Value(f\"CONDITION_{clean_id}\")\n elif dex_class == DexGen:\n return DexGen.Value(f\"GEN_{clean_id}\")\n elif dex_class == DexItem:\n return DexItem.Value(f\"ITEM_{clean_id}\")\n elif dex_class == DexMove:\n return DexMove.Value(f\"MOVE_{clean_id}\")\n elif dex_class == DexMoveCategory:\n return DexMoveCategory.Value(f\"MOVECATEGORY_{clean_id}\")\n elif dex_class == DexMoveTarget:\n return DexMoveTarget.Value(f\"MOVETARGET_{clean_id}\")\n elif dex_class == DexNature:\n return DexNature.Value(f\"NATURE_{clean_id}\")\n elif dex_class == DexPokemon:\n return DexPokemon.Value(f\"POKEMON_{clean_id}\")\n elif dex_class == DexStat:\n return DexStat.Value(f\"STAT_{clean_id}\")\n elif dex_class == DexStatus:\n return DexStatus.Value(f\"STATUS_{clean_id}\")\n elif dex_class == DexType:\n return DexType.Value(f\"TYPE_{clean_id}\")\n elif dex_class == DexWeather:\n return DexWeather.Value(f\"WEATHER_{clean_id}\")\n
"},{"location":"dex/reference/utilities/#poketypes.dex.dexdata.clean_forme","title":"clean_forme(species)
","text":"Transform a pokemon species (DexPokemon) into the string name of it's base forme.
Makes use of the fact that DexPokemon are of the form {dex_number}{3-digit forme number}, and that the base forme is always forme-number 000
. If this changes, this function will no longer work.
Parameters:
Name Type Description Default species
ValueType
The input species to clean to base forme.
required Returns:
Type Description ValueType
DexPokemon.ValueType: The corresponding ID of the base forme species.
Source code in poketypes\\dex\\dexdata.py
def clean_forme(species: DexPokemon.ValueType) -> DexPokemon.ValueType:\n \"\"\"Transform a pokemon species (DexPokemon) into the string name of it's base forme.\n\n Makes use of the fact that DexPokemon are of the form {dex_number}{3-digit forme number},\n and that the base forme is always forme-number `000`.\n If this changes, this function will no longer work.\n\n Args:\n species (DexPokemon.ValueType): The input species to clean to base forme.\n\n Returns:\n DexPokemon.ValueType: The corresponding ID of the base forme species.\n \"\"\"\n clean_species = (species // 1000) * 1000\n return clean_species\n
"},{"location":"dex/reference/utilities/#poketypes.dex.dexdata.clean_name","title":"clean_name(name)
","text":"Format a given uncleaned string name as the format needed for searching the corresponding Enum.
Parameters:
Name Type Description Default name
Optional[str]
An optional name to clean. If None is given, we immediately return None.
required Returns:
Type Description Optional[str]
Optional[str]: The clean-form of the input name, if it wasn't None or blank.
Source code in poketypes\\dex\\dexdata.py
def clean_name(name: Optional[str]) -> Optional[str]:\n \"\"\"Format a given uncleaned string name as the format needed for searching the corresponding Enum.\n\n Args:\n name (Optional[str]): An optional name to clean. If None is given, we immediately return None.\n\n Returns:\n Optional[str]: The clean-form of the input name, if it wasn't None or blank.\n \"\"\"\n if name is None or name == \"\":\n return None\n\n clean_id = (\n unicodedata.normalize(\n \"NFKD\",\n name.upper()\n .replace(\"-\", \"\")\n .replace(\"\u2019\", \"\")\n .replace(\"'\", \"\")\n .replace(\" \", \"\")\n .replace(\"*\", \"\")\n .replace(\":\", \"\")\n .replace(\"%\", \"\")\n .replace(\".\", \"\")\n .replace(\")\", \"\")\n .replace(\"(\", \"\"),\n )\n .encode(\"ASCII\", \"ignore\")\n .decode(\"ASCII\")\n )\n return clean_id\n
"},{"location":"showdown/","title":"Showdown Intro","text":""},{"location":"showdown/#5-minute-summary","title":"5-Minute Summary","text":"In the poketypes
package, we include the module showdown
, which contains pydantic BaseModel
subclasses for General and Battle Message formats. This allows for a smoother communication process with Pokemon Showdown, as rather than needing to build a message parser yourself, relying on relatively limited documentation from Showdown directly, you can instead build logic to take as input either Message
or BattleMessage
objects, which will come pre-parsed, with full type-hinting and data validation built in.
To start, you can import both from the module showdown
like so:
from poketypes.showdown import Message, BattleMessage\n
Both Message
and BattleMessage
are subclasses of pydantic.BaseModel
, and both also have an additional function called from_message
, which takes as input a string, and returns an initialized and parsed object from the input string message.
message = BattleMessage.from_string(\"|poke|p1|Metagross, L80|item\")\n
At this point, message
will automatically be identified as a poke
battle message, and will be an instance of the class poketypes.showdown.battlemessage.BattleMessage_poke
. Rather than checking with isinstance
, however, we recommend instead checking the message.BMTYPE
(or message.MTYPE
for general messages), which is of the type poketypes.showdown.BMType
, an Enum of all the different battle message types you can receive. For type hinting purposes, such as in the signature of a function that would process a given BattleMessage
subclass, you would do the following:
def process_bm_poke(message: poketypes.showdown.battlemessage.BattleMessage_poke):\n
This will ensure that your IDE will have type hinting support as you process the message, and in the specific example of BattleMessage_poke
, will give support in directly accessing the data fields like message.PLAYER
that are unique to this BattleMessage
subclass.
Check out the Guides in this section for some common use-cases of this module, eith step-by-step instructions on each part of the process. Or if you prefer to learn by reading docs, check out the Reference links below or on the sidebar to familiarize yourself with some of the different categories of messages.
"},{"location":"showdown/#reference-links","title":"Reference Links","text":"For details on all the different kinds of Message
subclasses, see the reference page here
For details on all the different kinds of BattleMessage
subclasses, see the reference page here
"},{"location":"showdown/explanations/","title":"Why Two Classes?","text":"Once you've started using the showdown message classes, you might start wondering why there is even a split between Message
and BattleMessage
classes at all, why not just have one class called Message
which works for both?
The answer is really from a convenience standpoint, rather than any technical limitation.
In theory, we could absolutely just have one larger Message
class that encompasses both of our current message classes, however in practice we don't use the two that we have today in the same way at all. With Pokemon Showdown's webclient, battle messages are actually a special type of room-message, sent with a chunk formatting that looks something like:
\"\"\">battle-BATTLEID\n|init|battle\n|title|colress-gpt-test1 vs. colress-gpt-test2\n|j|\u2606colress-gpt-test1\n\"\"\"\n
Already, in order to process this in a parser, we will need special handling to identify that a certain message chunk is related to some specific room/battle, and then process each remaining line in the chunk as a message pertaining to that room. Since we're already checking for room information with the \">\" at the start, we may as well just check for \">battle\" instead, and parse everything that follows as though it is specific to a battle.
It is theoretically possible that in the future we may decide that simplifying our two class structure into just a single Message
class may make sense, but considering that other than some benefits in terms of code organization, there really isn't much reason to do so either. The Message
and BattleMessage
classes are complex enough as they are now, so if we tried to merge them into one we would really need to consider a different file formatting structure for writing subclasses, compared to our current solution of one file for Message
and one file for BattleMessage
.
"},{"location":"showdown/guides/basic-parser/","title":"Building a Replay Log Parser","text":""},{"location":"showdown/guides/basic-parser/#introduction","title":"Introduction","text":"This tutorial will guide usage of poketypes.showdown
to create a simple replay log parser, which can read any arbitrary Pokemon Showdown replay file, and turn it into a list of BattleMessage
subclass objects, that you could then proceed to do some sort of analysis or transformation on.
Since we'll be processing a Replay log in this example, we will only be using poketypes.showdown.BattleMessage
, but similar concepts can be applied for processing any message sent by showdown, so long as you make the distinction between general messages and message chunks that target a specific battle.
"},{"location":"showdown/guides/basic-parser/#prerequisites","title":"Prerequisites","text":"Make sure that you have poketypes
installed to your virtual environment, which you can do with:
pip install poketypes\n
Additionally, go ahead and download the replay file here. If you click the Download button on this page, it should download a .html file called 'OUMonotype-2014-01-29-kdarewolf-onox.html', which we will use as an example, but any replay file should work.
"},{"location":"showdown/guides/basic-parser/#step-1-extracting-the-battle-log","title":"Step 1: Extracting the Battle Log","text":"Replay files are stored in html files, which means we need to extract the text log that we want to parse first.
To do that, since we only need very basic html extraction, we can
"},{"location":"showdown/reference/battle-messages/","title":"The Showdown Battle Message","text":""},{"location":"showdown/reference/battle-messages/#the-battlemessage-object","title":"The BattleMessage object","text":"The base class for all specific BattleMessage subclasses to be built from.
When parsing a string battle message, you should directly use this class's from_message
function, which will auto-identify which subclass (if any) the given string belongs to.
Across all BattleMessages, you will be able to access both BMTYPE and BATTLE_MESSAGE, though you shouldn't need to access BATTLE_MESSAGE directly. (If you do, then we must be missing some data that exists in the raw string)
ATTRIBUTE DESCRIPTION BMTYPE
The message type of this battle message. Must be a vaild showdown battle message.
TYPE: BMType
BATTLE_MESSAGE
The raw message line as sent from showdown. Shouldn't need to be used but worth keeping.
TYPE: str
ERR_STATE
The error type of this battle message if it failed to parse
TYPE: Optional[Literal['UNKNOWN_BMTYPE', 'MISSING_DICT_CLASS', 'IMPLEMENTATION_NOT_READY', 'PARSE_ERROR']]
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage.from_message","title":"from_message(battle_message)
staticmethod
","text":"Create a specific BattleMessage object from a raw message.
For example, given a message '|faint|p2a: Umbreon', this will create a new BattleMessage_faint with fields extracted from the text properly.
"},{"location":"showdown/reference/battle-messages/#battlemessage-subclasses","title":"BattleMessage Subclasses","text":"Contains BaseModels for BattleMessage parsing and processing.
Remember to use BattleMessage.from_message directly, unless you are building test cases where you want to assert that a given message leads to a certain subclass of BattleMessage. from_message
will auto-detect which BMType the given message corresponds to, and return the associated subclass (or an error detailing what went wrong) for you.
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_player","title":"BattleMessage_player
","text":"Message containing player information.
ATTRIBUTE DESCRIPTION PLAYER
The player id of this player
TYPE: str
USERNAME
The username of the player
TYPE: str
AVATAR
Either a number id of the user's avatar or a custom value
TYPE: Union[int, str]
RATING
The elo of the player in the current format, if applicable
TYPE: Optional[int]
Use Case(s) - To communicate player username/avatar/rating information.
Message Format(s) - |player|PLAYER|USERNAME|AVATAR|RATING
Input Example(s) - |player|p1|colress-gpt-test1|colress|1520
- |player|p2|colress-gpt-test2|265|1229
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_teamsize","title":"BattleMessage_teamsize
","text":"Message containing teamsize information.
ATTRIBUTE DESCRIPTION PLAYER
The player id of this player
TYPE: str
NUMBER
The number of pokemon your opponent has.
TYPE: int
Use Case(s) - To communicate player team size.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_gametype","title":"BattleMessage_gametype
","text":"Message containing gametype information.
ATTRIBUTE DESCRIPTION GAMETYPE
The gametype of this format
TYPE: Literal['singles', 'doubles', 'triples', 'multi', 'freeforall']
Use Case(s) - To communicate the game type (singles, doubles, triples, etc.)
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_gen","title":"BattleMessage_gen
","text":"Message containing gen information.
ATTRIBUTE DESCRIPTION GENNUM
The integer generation number of this format
TYPE: DexGen.ValueType
Use Case(s) - To communicate the generation number.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_tier","title":"BattleMessage_tier
","text":"Message containing format information.
ATTRIBUTE DESCRIPTION FORMATNAME
The game format of this match
TYPE: str
Use Case(s) - To communicate the format of this battle.
Message Format(s) Input Example(s) - |tier|[Gen 5] Random Battle
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_rated","title":"BattleMessage_rated
","text":"Message containing rating information.
ATTRIBUTE DESCRIPTION MESSAGE
An optional message used in tournaments
TYPE: Optional[str]
Use Case(s) - To communicate any extra rules/clauses for this format.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_rule","title":"BattleMessage_rule
","text":"Message containing extra rule information.
ATTRIBUTE DESCRIPTION RULE
The name of the rule
TYPE: str
DESCRIPTION
A description of this rule
TYPE: str
Use Case(s) - To communicate any extra rules/clauses for this format.
Message Format(s) Input Example(s) - |rule|HP Percentage Mod: HP is shown in percentages
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_clearpoke","title":"BattleMessage_clearpoke
","text":"Message containing a clearpoke notification.
Use Case(s) - To signal that teampreview is starting.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_poke","title":"BattleMessage_poke
","text":"Message containing base-forme-only information about a pokemon, presented in teampreview.
ATTRIBUTE DESCRIPTION PLAYER
The player id of this player
TYPE: str
SPECIES
The forme-less species for this pokemon
TYPE: DexPokemon.ValueType
LEVEL
The level of this pokemon
TYPE: int
GENDER
The gender of this pokemon
TYPE: Optional[Literal['M', 'F']]
SHINY
Whether the pokemon is shiny or not
TYPE: bool
TERA
If this pokemon is teratyped, the string type of the new type. Else None.
TYPE: Optional[DexType.ValueType]
HAS_ITEM
Whether or not the pokemon is holding an item
TYPE: bool
Use Case(s) - To communicate base-forme, simple pokemon information for teampreview
Message Format(s) - |poke|PLAYER|DETAILS|ITEM
Input Example(s) - |poke|p1|Metagross, L80|item
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_start","title":"BattleMessage_start
","text":"Message signaling the start of a battle.
Use Case(s) - To communicate that the battle has started (teampreview is over)
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_teampreview","title":"BattleMessage_teampreview
","text":"Message signaling to make a teampreview team-order decision.
Use Case(s) - To communicate that the user needs to select a team-order.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_empty","title":"BattleMessage_empty
","text":"Completely blank message.
Use Case(s) - To separate sections in a battle log
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_request","title":"BattleMessage_request
","text":"Message communicating options the user has in an upcoming choice.
ATTRIBUTE DESCRIPTION REQUEST_TYPE
Which type of request this request is between TEAMPREVIEW, ACTIVE, and FORCESWITCH
TYPE: Literal['TEAMPREVIEW', 'ACTIVE', 'FORCESWITCH', 'WAIT']
USERNAME
The player's username
TYPE: str
PLAYER
The player id of this player
TYPE: str
RQID
The id number of this request, for the purpose of an undo function
TYPE: Optional[int]
POKEMON
The pokemon details for each pokemon in this player's side
TYPE: List[RequestPoke]
ACTIVE_OPTIONS
A list of actions available for each active pokemon. Will be None if switch/teampreview
TYPE: Optional[List[ActiveOption]]
FORCESWITCH_SLOTS
A list of bool for each slot whether they are being forced to switch
TYPE: Optional[List[bool]]
Use Case(s) - To inform the user about their team so that a team-order decision can be made.
- To inform the user about their available moves/switches so that a standard decision can be made.
- To request the user to switch out a Pokemon due to a forced operation (fainted/forced out).
- To inform the user that their opponent is making a decision and that the user has to wait for them.
Message Format(s) Input Example(s) - See logs for examples, there are a lot of variations.
Tips This does not necessarily mean it is time for the user to respond to a choice, as teampreview and move requests are sent before the details of the previous turn are sent, and thus you should wait until it is the correct time to send your decision.
For FORCESWITCH requests, however, a decision should be sent once you receive this message.
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_inactive","title":"BattleMessage_inactive
","text":"Message communicating that the inactivity timer has been set.
ATTRIBUTE DESCRIPTION MESSAGE
A message related to the battle timer notification
TYPE: str
Use Case(s) - To signal that there is a time-limit for descisions to be made.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_inactiveoff","title":"BattleMessage_inactiveoff
","text":"Message communicating that the inactivity timer has been turned off.
ATTRIBUTE DESCRIPTION MESSAGE
A message related to the battle timer notification
TYPE: str
Use Case(s) - To signal that there is no longer a time-limit for descisions to be made.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_upkeep","title":"BattleMessage_upkeep
","text":"Message communicating upkeep notice.
Use Case(s) - To signal that the upkeep stage has happened
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_turn","title":"BattleMessage_turn
","text":"Message communicating that a turn has begun, and that move choices should be made.
ATTRIBUTE DESCRIPTION NUMBER
The current turn number
TYPE: int
Use Case(s) - To signal to the players to make a move.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_win","title":"BattleMessage_win
","text":"Message communicating that a player has won the battle.
ATTRIBUTE DESCRIPTION USERNAME
The username of the winning player
TYPE: str
Use Case(s) - To signal which player has won.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_tie","title":"BattleMessage_tie
","text":"Message communicating that neither player has won the battle.
Use Case(s) - To signal the battle has ended in a tie
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_expire","title":"BattleMessage_expire
","text":"Message communicating that the battle has ended due to mutual inactivity.
Use Case(s) - To signal the battle has ended due to mutual inactivity
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_t","title":"BattleMessage_t
","text":"Message communicating the current timestamp.
ATTRIBUTE DESCRIPTION TIMESTAMP
The time of this turn as a datetime (conv from unix seconds)
TYPE: datetime
Use Case(s) - Gives current timestamp of this set of messages
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_move","title":"BattleMessage_move
","text":"Message communicating that a pokemon successfully used a move.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon using the move
TYPE: PokemonIdentifier
MOVE
The name of the move used
TYPE: DexMove.ValueType
TARGET
The primary target of this move. This can be None when applicable
TYPE: Optional[PokemonIdentifier]
EFFECT
An optional effect that the move is taken from (Magic bounce, Sleep Talk, etc)
TYPE: Optional[Effect]
Use Case(s) - Communicating which move was used, including source/target information.
Message Format(s) - |move|POKEMON|MOVE|TARGET
- |move|POKEMON|MOVE|TARGET|[from]
- TODO: Add more
Input Example(s) - |move|p1a: Sceptile|Acrobatics|p2a: Espeon
- |move|p1a: Kangaskhan|Fake Out||[still]
- TODO: Add more
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_switch","title":"BattleMessage_switch
","text":"Message communicating that a pokemon has switched in.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon swapping in, potentially replacing the slot
TYPE: PokemonIdentifier
SPECIES
The species for this pokemon, including forme
TYPE: DexPokemon.ValueType
LEVEL
The level of this pokemon
TYPE: int
GENDER
The gender of this pokemon
TYPE: Optional[Literal['M', 'F']]
SHINY
Whether the pokemon is shiny or not
TYPE: bool
TERA
If this pokemon is teratyped, the string type of the new type. Else None.
TYPE: Optional[str]
CUR_HP
The current HP of the pokemon
TYPE: int
MAX_HP
The maximum HP of the pokemon
TYPE: int
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
Use Case(s) - Communicating which pokemon switched in, as well as info about the pokemon.
Message Format(s) - |switch|POKEMON|DETAILS|HP STATUS
Input Example(s) - |switch|p2a: Toxicroak|Toxicroak, L81, F|100/100
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_drag","title":"BattleMessage_drag
","text":"Message communicating that a pokemon has switched in.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon being dragged in
TYPE: PokemonIdentifier
SPECIES
The species for this pokemon, including forme
TYPE: DexPokemon.ValueType
LEVEL
The level of this pokemon
TYPE: int
GENDER
The gender of this pokemon
TYPE: Optional[Literal['M', 'F']]
SHINY
Whether the pokemon is shiny or not
TYPE: bool
TERA
If this pokemon is teratyped, the string type of the new type. Else None.
TYPE: Optional[str]
CUR_HP
The current HP of the pokemon
TYPE: int
MAX_HP
The maximum HP of the pokemon
TYPE: int
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
Use Case(s) - Communicating which pokemon was dragged in, as well as info about the pokemon.
Message Format(s) - |drag|POKEMON|DETAILS|HP STATUS
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_detailschange","title":"BattleMessage_detailschange
","text":"Message communicating that a pokemon has changed formes in a permanent way.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon changing formes
TYPE: PokemonIdentifier
SPECIES
The species for this pokemon, including forme
TYPE: DexPokemon.ValueType
LEVEL
The level of this pokemon
TYPE: int
GENDER
The gender of this pokemon
TYPE: Optional[Literal['M', 'F']]
SHINY
Whether the pokemon is shiny or not
TYPE: bool
TERA
If this pokemon is teratyped, the string type of the new type. Else None.
TYPE: Optional[str]
CUR_HP
The current HP of the pokemon
TYPE: Optional[str]
MAX_HP
The maximum HP of the pokemon
TYPE: Optional[str]
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
Use Case(s) - Communicating that a certain pokemon changed forme.
Message Format(s) - |detailschange|POKEMON|DETAILS
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_replace","title":"BattleMessage_replace
","text":"Message communicating that a pokemon has been replaced (Zoroark illusion ability).
ATTRIBUTE DESCRIPTION POKEMON
The pokemon being revealed (Zoroark)
TYPE: PokemonIdentifier
SPECIES
The species for this pokemon, including forme
TYPE: DexPokemon.ValueType
LEVEL
The level of this pokemon
TYPE: int
GENDER
The gender of this pokemon
TYPE: Optional[Literal['M', 'F']]
SHINY
Whether the pokemon is shiny or not
TYPE: bool
TERA
If this pokemon is teratyped, the string type of the new type. Else None.
TYPE: Optional[str]
CUR_HP
The current HP of the pokemon
TYPE: Optional[str]
MAX_HP
The maximum HP of the pokemon
TYPE: Optional[str]
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
Use Case(s) - Communicating that a certain pokemon has been replaced.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_swap","title":"BattleMessage_swap
","text":"Message communicating that a certain active slot has had its pokemon swapped with another.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon being swapped before
swapping
TYPE: PokemonIdentifier
POSITION
The slot that this Pokemon is being swapped to, as an integer
TYPE: int
EFFECT
An optional effect explaining what caused the swapping
TYPE: Optional[Effect]
Use Case(s) - Communicating that two pokemon have swapped active slots.
Message Format(s) - |swap|POKEMON|POSITION
- |swap|POKEMON|POSITION|[from]
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_cant","title":"BattleMessage_cant
","text":"Message communicating that a pokemon was unable to do something.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that was unable to act
TYPE: PokemonIdentifier
REASON
The reason that the pokemon was unable to do what it was trying to do
TYPE: str
MOVE
The move being used that was unable to be used. None if not applicable
TYPE: Optional[str]
Use Case(s) - Communicating that a pokemon failed to do something, with the reason it failed.
Message Format(s) - |cant|POKEMON|REASON|MOVE
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_faint","title":"BattleMessage_faint
","text":"Message communicating that a pokemon has fainted.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that fainted
TYPE: PokemonIdentifier
Use Case(s) - Communicating that a pokemon fainted.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_fail","title":"BattleMessage_fail
","text":"Message communicating that a pokemon has failed to do something.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that failed to do something
TYPE: PokemonIdentifier
EFFECT
The effect causing/explaining the fail. Is Optional since sometimes it fails with no explanation
TYPE: Optional[Effect]
Use Case(s) - Communicating that a pokemon failed to do something
- Communicate what effect caused the failure
- Communicate if a status caused the failure.
Message Format(s) - |-fail|POKEMON
- |-fail|POKEMON|EFFECT
- |-fail|POKEMON|STATUS
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_block","title":"BattleMessage_block
","text":"Message communicating that a pokemon has blocked an opposing action.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that was targeted but blocked something
TYPE: PokemonIdentifier
EFFECT
The reason this was able to be blocked
TYPE: Effect
Use Case(s) - Communicating that a pokemon was able to block some other action.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_notarget","title":"BattleMessage_notarget
","text":"Message communicating that no target was available at move-use time.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that had no target available.
TYPE: Optional[PokemonIdentifier]
Use Case(s) - Communicating that a pokemon had no target available.
Message Format(s) - |-notarget|POKEMON
- |-notarget
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_miss","title":"BattleMessage_miss
","text":"Message communicating that a given source pokemon missed its action.
ATTRIBUTE DESCRIPTION SOURCE
The pokemon missing the attack
TYPE: PokemonIdentifier
TARGET
The pokemon evading (If applicable, can be None)
TYPE: Optional[PokemonIdentifier]
Use Case(s) - Communicating that a pokemon missed.
- Communicating which pokemon was targeted but avoided the action.
Message Format(s) - |-miss|SOURCE
- |-miss|SOURCE|TARGET
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_damage","title":"BattleMessage_damage
","text":"Message communicating that a pokemon has taken damage.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon being hurt
TYPE: PokemonIdentifier
CUR_HP
The current HP of the pokemon
TYPE: int
MAX_HP
The maximum HP of the pokemon. None if the pokemon is fainted
TYPE: Optional[int]
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
EFFECT
The reason this damage was dealt, if not from a move
TYPE: Optional[Effect]
Use Case(s) - Communicating that a pokemon took damage in some way.
Message Format(s) - |-damage|POKEMON|HP STATUS
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_heal","title":"BattleMessage_heal
","text":"Message communicating that a pokemon has healed some health.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon being healed
TYPE: PokemonIdentifier
CUR_HP
The current HP of the pokemon
TYPE: int
MAX_HP
The maximum HP of the pokemon
TYPE: int
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
EFFECT
The reason this health was healed, if not from a move
TYPE: Optional[Effect]
Use Case(s) - Communicating that a pokemon healed in some way.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_sethp","title":"BattleMessage_sethp
","text":"Message communicating that a pokemon has an exact hp amount.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon getting the HP set
TYPE: PokemonIdentifier
CUR_HP
The current HP of the pokemon
TYPE: int
MAX_HP
The maximum HP of the pokemon
TYPE: int
STATUS
The status of the pokemon. Can be None if there is no status
TYPE: Optional[str]
EFFECT
The reason this health was healed
TYPE: Optional[Effect]
Use Case(s) - Communicating that a pokemon had its health directly set.
Message Format(s) - |-sethp|POKEMON|HP STATUS|EFFECT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_status","title":"BattleMessage_status
","text":"Message communicating that a pokemon has gained a status.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon gaining the status
TYPE: PokemonIdentifier
STATUS
The status being gained
TYPE: DexStatus.ValueType
Use Case(s) - Communicating that a pokemon has gained a status condition.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_curestatus","title":"BattleMessage_curestatus
","text":"Message communicating that a pokemon has lost a status.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon losing the status
TYPE: PokemonIdentifier
STATUS
The status being lost
TYPE: DexStatus.ValueType
Use Case(s) - Communicating that a pokemon has lost a status condition.
Message Format(s) - |-curestatus|POKEMON|STATUS
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_cureteam","title":"BattleMessage_cureteam
","text":"Message communicating that a team has been cured of all status conditions.
ATTRIBUTE DESCRIPTION EFFECT
The effect causing the team to be healed
TYPE: Effect
Use Case(s) - Communicating that all pokemon have been cured.
Message Format(s) - |-cureteam|POKEMON|EFFECT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_boost","title":"BattleMessage_boost
","text":"Message communicating that a pokemon has gained some stat boost.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon getting the boost
TYPE: PokemonIdentifier
STAT
Which stat is being boosted
TYPE: PokeStat
AMOUNT
By how much this stat is being boosted, as an integer. Can be 0 if at cap
TYPE: int
Use Case(s) - Communicating that a pokemon received a single stat boost.
Message Format(s) - |-boost|POKEMON|STAT|AMOUNT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_unboost","title":"BattleMessage_unboost
","text":"Message communicating that a pokemon has had some stat lowered.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon getting the boost
TYPE: PokemonIdentifier
STAT
Which stat is being boosted
TYPE: PokeStat
AMOUNT
By how much this stat is being unboosted, as an integer. Can be 0 if at cap
TYPE: int
Use Case(s) - Communicating that a pokemon received a single stat unboost.
Message Format(s) - |-unboost|POKEMON|STAT|AMOUNT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_setboost","title":"BattleMessage_setboost
","text":"Message communicating that a pokemon has had some stat set to a certain boost value.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon getting the boost
TYPE: PokemonIdentifier
STAT
Which stat is being boosted
TYPE: PokeStat
AMOUNT
The new value being assigned for this stat boost
TYPE: int
Use Case(s) - Communicating that a pokemon received a set stat boost value.
Message Format(s) - |-setboost|POKEMON|STAT|AMOUNT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_swapboost","title":"BattleMessage_swapboost
","text":"Message communicating that two specific pokemon have had their stat boosts switched.
Warning Not yet implemented!
ATTRIBUTE DESCRIPTION POKEMON
The pokemon getting the boost
TYPE: str
Use Case(s) - Communicating that two pokemon have had their respective stat boosts swapped.
Message Format(s) - |-swapboost|SOURCE|TARGET|STATS
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_invertboost","title":"BattleMessage_invertboost
","text":"Message communicating that a pokemon has had its stat boosts inverted.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon getting the boost inverted
TYPE: PokemonIdentifier
Use Case(s) - Communicating that a pokemon has had its stat boosts inverted.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_clearboost","title":"BattleMessage_clearboost
","text":"Message communicating that a pokemon has had its stat boosts cleared.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that had its stat boosts cleared.
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has had its stat boosts cleared.
Message Format(s): Input Example(s) - |-clearboost|p1a: Pikachu
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_clearallboost","title":"BattleMessage_clearallboost
","text":"Message communicating that all pokemon have had their stat boosts cleared.
Use Case(s): - Communicating that all pokemon have had their stat boosts cleared.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_clearpositiveboost","title":"BattleMessage_clearpositiveboost
","text":"Message communicating that a pokemon has had its positive stat boosts cleared.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that had its positive stat boosts cleared.
TYPE: PokemonIdentifier
EFFECT
The effect causing this positive boost clearance
TYPE: Effect
Use Case(s): - Communicating that a pokemon has had its positive stat boosts cleared.
Message Format(s): - |-clearpositiveboost|TARGET|EFF_SOURCE|EFFECT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_clearnegativeboost","title":"BattleMessage_clearnegativeboost
","text":"Message communicating that a pokemon has had its negative stat boosts cleared.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that had its negative stat boosts cleared.
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has had its negative stat boosts cleared.
Message Format(s): - |-clearnegativeboost|POKEMON
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_copyboost","title":"BattleMessage_copyboost
","text":"Message communicating that a pokemon has had its stat boosts copied.
Warning Not yet implemented!
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that had its stat boosts copied.
TYPE: str
Use Case(s): - Communicating that a pokemon has had its stat boosts copied.
Message Format(s): - |-copyboost|SOURCE|TARGET
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_weather","title":"BattleMessage_weather
","text":"Message communicating that the weather has changed.
ATTRIBUTE DESCRIPTION WEATHER
The weather being set
TYPE: DexWeather.ValueType
Use Case(s): - Communicating that the weather has changed.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_fieldstart","title":"BattleMessage_fieldstart
","text":"Message communicating that a field condition has started.
ATTRIBUTE DESCRIPTION EFFECT
The effect starting for the field.
TYPE: Effect
Use Case(s): - Communicating that a field condition has started.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_fieldend","title":"BattleMessage_fieldend
","text":"Message communicating that a field condition has ended.
ATTRIBUTE DESCRIPTION EFFECT
The effect ending for the field.
TYPE: Effect
Use Case(s): - Communicating that a field condition has ended.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_sidestart","title":"BattleMessage_sidestart
","text":"Message communicating that a side condition has started.
ATTRIBUTE DESCRIPTION PLAYER
The player id of the impacted player
TYPE: str
CONDITION
The field condition starting
TYPE: str
Use Case(s): - Communicating that a side condition has started.
Message Format(s): - |-sidestart|SIDE|CONDITION
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_sideend","title":"BattleMessage_sideend
","text":"Message communicating that a side condition has ended.
ATTRIBUTE DESCRIPTION PLAYER
The player id of the impacted player
TYPE: str
CONDITION
The field condition starting
TYPE: str
EFFECT
The effect that is causing the conditon to end
TYPE: Optional[Effect]
Use Case(s): - Communicating that a side condition has ended.
Message Format(s): - |-sideend|SIDE|CONDITION
- |-sideend|SIDE|CONDITION|[from]
- |-sideend|SIDE|CONDITION|[of]
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_swapsideconditions","title":"BattleMessage_swapsideconditions
","text":"Message communicating that a side condition has been swapped.
Use Case(s): - Communicating that a side condition has been swapped.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_volstart","title":"BattleMessage_volstart
","text":"Message communicating that a volatile effect has started.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon this volatile effect is started for
TYPE: PokemonIdentifier
EFFECT
The effect that caused this volatile status
TYPE: Optional[Effect]
Use Case(s): - Communicating that a volatile effect has started.
Message Format(s): - |-start|POKEMON|VOLATILE
- |-start|POKEMON|MOVE
- |-start|POKEMON|MOVE|MOVE
- |-start|POKEMON|MOVE|[from]
- |-start|POKEMON|MOVE|[from]|[of]
- |-start|POKEMON|typechange|TYPE
- |-start|POKEMON|typechange|TYPE|[from]
- |-start|POKEMON|typechange|TYPE|[from]|[of]
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_volend","title":"BattleMessage_volend
","text":"Message communicating that a volatile effect has ended.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon this volatile effect is ended for
TYPE: PokemonIdentifier
EFFECT
The effect that caused this volatile status
TYPE: Effect
SILENT
Whether this message is silent or not
TYPE: bool
Use Case(s): - Communicating that a volatile effect has ended.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_crit","title":"BattleMessage_crit
","text":"Message communicating that a pokemon has had a critical hit.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that had a critical hit
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has had a critical hit.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_supereffective","title":"BattleMessage_supereffective
","text":"Message communicating that a pokemon has been hit super effectively.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that was hit super effectively
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has been hit super effectively.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_resisted","title":"BattleMessage_resisted
","text":"Message communicating that a pokemon has resisted an attack.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that resisted the attack
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has resisted an attack.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_immune","title":"BattleMessage_immune
","text":"Message communicating that a pokemon has been immune to an attack.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that was immune to the attack
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has been immune to an attack.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_item","title":"BattleMessage_item
","text":"Message communicating that a pokemon has had its item revealed.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon whose item is revealed
TYPE: PokemonIdentifier
ITEM
The item being revealed
TYPE: DexItem.ValueType
EFFECT
The effect that revealed the item, if applicable. Not used when auto-revealed (air balloon)
TYPE: Optional[Effect]
Use Case(s): - Communicating that a pokemon has had its item revealed.
Message Format(s): - |-item|POKEMON|ITEM
- |-item|POKEMON|ITEM|[from]EFFECT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_enditem","title":"BattleMessage_enditem
","text":"Message communicating that a pokemon has had its item destroyed.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon whose item is destroyed
TYPE: PokemonIdentifier
ITEM
The item being destroyed
TYPE: DexItem.ValueType
EFFECT
The effect that destroyed the item, if applicable.
TYPE: Optional[Effect]
Use Case(s): - Communicating that a pokemon has had its item destroyed.
Message Format(s): - |-enditem|POKEMON|ITEM
- |-enditem|POKEMON|ITEM|[from]EFFECT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_ability","title":"BattleMessage_ability
","text":"Message communicating that a pokemon has had its ability revealed.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon whose ability is revealed
TYPE: PokemonIdentifier
ABILITY
The ability being revealed
TYPE: DexAbility.ValueType
EFFECT
The effect that revealed the ability, if applicable.
TYPE: Optional[Effect]
Use Case(s): - Communicating that a pokemon has had its ability revealed.
Message Format(s): - |-ability|POKEMON|ABILITY
- |-ability|POKEMON|ABILITY|[from] EFFECT
- |-ability|POKEMON|ABILITY|[from] EFFECT|[of] POKEMON
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_endability","title":"BattleMessage_endability
","text":"Message communicating that a pokemon has had its ability suppressed.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon whose ability is suppressed
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has had its ability suppressed.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_transform","title":"BattleMessage_transform
","text":"Message communicating that a pokemon has transformed into another pokemon.
ATTRIBUTE DESCRIPTION SOURCE
The pokemon transforming
TYPE: PokemonIdentifier
TARGET
The pokemon it's transforming into
TYPE: PokemonIdentifier
EFFECT
The optional effect explaining the transformation
TYPE: Optional[Effect]
Use Case(s): - Communicating that a pokemon has transformed into another pokemon.
Message Format(s): - |-transform|SOURCE|TARGET|
- |-transform|SOURCE|TARGET|[from]
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_mega","title":"BattleMessage_mega
","text":"Message communicating that a pokemon has mega evolved.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that mega evolved
TYPE: PokemonIdentifier
BASE_SPECIES
The base species of the pokemon that is mega evolving
TYPE: DexPokemon.ValueType
MEGA_STONE
The mega stone that is being used
TYPE: DexItem.ValueType
Use Case(s): - Communicating that a pokemon has mega evolved.
Message Format(s): - |-mega|POKEMON|BASE_SPECIES|MEGASTONE
Input Example(s) - |-mega|p1a: Absol|Absol|Absolite
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_primal","title":"BattleMessage_primal
","text":"Message communicating that a pokemon has gone primal.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon going primal
TYPE: PokemonIdentifier
ITEM
The held item that is being used
TYPE: DexItem.ValueType
Use Case(s): - Communicating that a pokemon has gone primal.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_burst","title":"BattleMessage_burst
","text":"Message communicating that a pokemon has burst.
Warning Not implemented yet.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that burst
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has burst.
Message Format(s): - |-burst|POKEMON|SPECIES|ITEM
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_zpower","title":"BattleMessage_zpower
","text":"Message communicating that a pokemon has used a Z move.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon using the Z move
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon has used a Z move.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_zbroken","title":"BattleMessage_zbroken
","text":"Message communicating that a pokemon's Z move is over.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon whose Z move is over
TYPE: PokemonIdentifier
Use Case(s): - Communicating that a pokemon's Z move is over.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_activate","title":"BattleMessage_activate
","text":"Message communicating that a pokemon has activated an effect.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon activating the effect
TYPE: PokemonIdentifier
EFFECT
The effect being activated
TYPE: Effect
Use Case(s): - Communicating that a pokemon has activated an effect.
Message Format(s): - |-activate|POKEMON|EFFECT
- |-activate|POKEMON|VOLATILE
- |-activate|POKEMON|MOVE|EFFECT
- |-activate|POKEMON|ABILITY|EFFECT
- |-activate|POKEMON|ITEM|EFFECT
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_hint","title":"BattleMessage_hint
","text":"Message communicating that a hint has been sent to the player.
ATTRIBUTE DESCRIPTION MESSAGE
The message sent to you as a hint
TYPE: str
Use Case(s): - Communicating that a hint has been sent to the player.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_center","title":"BattleMessage_center
","text":"Message communicating that the pokemon in a triple battle have been centered.
Use Case(s): - Communicating that the pokemon in a triple battle have been centered.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_message","title":"BattleMessage_message
","text":"Message communicating that a message has been sent.
ATTRIBUTE DESCRIPTION MESSAGE
The message sent as part of this notification
TYPE: str
Use Case(s): - Communicating that a message has been sent.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_combine","title":"BattleMessage_combine
","text":"Message communicating that two moves have been combined.
Use Case(s): - Communicating that two moves have been combined.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_waiting","title":"BattleMessage_waiting
","text":"Message communicating that a pokemon is waiting for the target.
Warning Not implemented yet.
ATTRIBUTE DESCRIPTION POKEMON
The main pokemon identifier relevant
TYPE: str
Use Case(s): - Communicating that a pokemon is waiting for the target.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_prepare","title":"BattleMessage_prepare
","text":"Message communicating that a pokemon is preparing a move.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon preparing the move
TYPE: PokemonIdentifier
MOVE
The move being prepared
TYPE: DexMove.ValueType
Use Case(s): - Communicating that a pokemon is preparing a move.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_mustrecharge","title":"BattleMessage_mustrecharge
","text":"Message communicating that a pokemon must recharge.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon that must recharge
TYPE: str
Use Case(s): - Communicating that a pokemon must recharge.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_nothing","title":"BattleMessage_nothing
","text":"Message communicating that nothing happened.
Use Case(s): - Communicating that nothing happened.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_hitcount","title":"BattleMessage_hitcount
","text":"Message communicating that a pokemon has been hit multiple times.
ATTRIBUTE DESCRIPTION POKEMON
The Pokemon being hit multiple times. Can be slotless
TYPE: PokemonIdentifier
NUM
The number of hits as an integer
TYPE: int
Use Case(s): - Communicating that a pokemon has been hit multiple times.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_singlemove","title":"BattleMessage_singlemove
","text":"Message communicating that a pokemon has used a single move.
ATTRIBUTE DESCRIPTION POKEMON
The Pokemon using this single move
TYPE: PokemonIdentifier
MOVE
The move being used
TYPE: DexMove.ValueType
Use Case(s): Message Format(s): - |-singlemove|POKEMON|MOVE
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_singleturn","title":"BattleMessage_singleturn
","text":"Message communicating that a pokemon has used a single turn move.
ATTRIBUTE DESCRIPTION POKEMON
The Pokemon using this single move
TYPE: PokemonIdentifier
MOVE
The move being used
TYPE: DexMove.ValueType
Use Case(s): - Communicating that a pokemon has used a single turn move.
Message Format(s): - |-singleturn|POKEMON|MOVE
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_formechange","title":"BattleMessage_formechange
","text":"Message communicating that a pokemon has changed formes.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon changing formes in some temporary way
TYPE: PokemonIdentifier
SPECIES
The species for this pokemon, including forme
TYPE: DexPokemon.ValueType
EFFECT
Optionally, what caused the formechange
TYPE: Optional[Effect]
Use Case(s): - Communicating that a pokemon has changed formes.
Message Format(s): - |-formechange|POKEMON|SPECIES
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_terastallize","title":"BattleMessage_terastallize
","text":"Message communicating that a pokemon has terastallized.
ATTRIBUTE DESCRIPTION POKEMON
The pokemon doing the terastallization
TYPE: PokemonIdentifier
TYPE
The type being terastallized
TYPE: DexType.ValueType
Use Case(s): - Communicating that a pokemon has terastallized.
Message Format(s): - |terastallize|POKEMON|TYPE
Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_fieldactivate","title":"BattleMessage_fieldactivate
","text":"Message communicating that a field effect has been activated.
ATTRIBUTE DESCRIPTION EFFECT
The effect causing the field activation
TYPE: Effect
Use Case(s): - Communicating that a field effect has been activated.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_error","title":"BattleMessage_error
","text":"Message communicating that an error has occurred.
ATTRIBUTE DESCRIPTION MESSAGE
The error message sent by showdown
TYPE: str
Use Case(s): - Communicating that an error has occurred.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_bigerror","title":"BattleMessage_bigerror
","text":"Message communicating that a big error has occurred.
ATTRIBUTE DESCRIPTION MESSAGE
The error message sent by showdown
TYPE: str
Use Case(s): - Communicating that a big error has occurred.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_init","title":"BattleMessage_init
","text":"Message communicating that a battle has been initialized.
Use Case(s): - Communicating that a battle has been initialized.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_deinit","title":"BattleMessage_deinit
","text":"Message communicating that a battle has been deinitialized.
Use Case(s): - Communicating that a battle has been deinitialized.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_title","title":"BattleMessage_title
","text":"Message communicating that a title has been sent for this battle.
ATTRIBUTE DESCRIPTION TITLE
The title of this match as shown on pokemon showdown
TYPE: str
Use Case(s): - Communicating that a title has been sent for this battle.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_join","title":"BattleMessage_join
","text":"Message communicating that a player has joined the battle.
ATTRIBUTE DESCRIPTION USERNAME
The username of the joining player
TYPE: str
Use Case(s): - Communicating that a player has joined the battle.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_leave","title":"BattleMessage_leave
","text":"Message communicating that a player has left the battle.
ATTRIBUTE DESCRIPTION USERNAME
The username of the leaving player
TYPE: str
Use Case(s): - Communicating that a player has left the battle.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_raw","title":"BattleMessage_raw
","text":"Message communicating that a raw message has been sent.
ATTRIBUTE DESCRIPTION MESSAGE
The raw message from Showdown. Typically used for rating changes.
TYPE: str
Use Case(s): - Communicating that a raw message has been sent.
Message Format(s): Input Example(s) "},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BattleMessage_anim","title":"BattleMessage_anim
","text":"Message communicating that an override animation has been sent.
Warning This has not been fully implemented / tested on large data yet.
ATTRIBUTE DESCRIPTION SOURCE
The pokemon using the move
TYPE: PokemonIdentifier
TARGET
The pokemon being targeted by the move. If there is no target then this will instead be slotless
TYPE: PokemonIdentifier
MOVE
The move being used
TYPE: DexMove.ValueType
NO_TARGET
Whether the move is labeled as notarget or not
TYPE: bool
Use Case(s): - Communicating that a move should use a different animation from typical.
Message Format(s): - |-anim|SOURCE|MOVE|TARGET|[notarget]
Input Example(s) "},{"location":"showdown/reference/battle-messages/#message-utility-classes","title":"Message Utility Classes","text":"Contains BaseModels for BattleMessage parsing and processing.
Remember to use BattleMessage.from_message directly, unless you are building test cases where you want to assert that a given message leads to a certain subclass of BattleMessage. from_message
will auto-detect which BMType the given message corresponds to, and return the associated subclass (or an error detailing what went wrong) for you.
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.BMType","title":"BMType
","text":"String-Enum for holding all unique categories of Showdown Battle Messages.
See https://github.com/smogon/pokemon-showdown/blob/master/sim/SIM-PROTOCOL.md for the full list of battle messages
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.PokeStat","title":"PokeStat
","text":"Helper enum for identifying valid stats.
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.PokemonIdentifier","title":"PokemonIdentifier
","text":"A BaseModel giving details about which Pokemon is being talked about.
Attributes:
Name Type Description IDENTITY
str
The unique identifier for a pokemon. Looks like ARCANINE
if the input is p1: Arcanine
PLAYER
str
The player this pokemon belongs to
SLOT
Optional[str]
Optionally, the slot this pokemon is in. Will be None if slot info isn't given in the message
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.PokemonIdentifier.from_ident_string","title":"from_ident_string(ident)
staticmethod
","text":"Create a new PokemonIdentifier from an identifier string without slot information.
Parameters:
Name Type Description Default ident
str
An input string to extract field information from. Looks like \"p1: Arcanine\"
required Returns:
Name Type Description PokemonIdentifier
PokemonIdentifier
A newly created PokemonIdentifier object from this string
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.PokemonIdentifier.from_slot_string","title":"from_slot_string(slot)
staticmethod
","text":"Create a new PokemonIdentifier from an identifier string with slot information.
Parameters:
Name Type Description Default slot
str
An input string to extract field information from. Looks like \"p1a: Arcanine\"
required Returns:
Name Type Description PokemonIdentifier
PokemonIdentifier
A newly created PokemonIdentifier object from this string
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.PokemonIdentifier.from_string","title":"from_string(string)
staticmethod
","text":"Auto-Create a new PokemonIdentifier based on which type of identity string is given.
Parameters:
Name Type Description Default string
str
An input string to extract field information from. Looks like \"p1a: Arcanine\"
required Returns:
Name Type Description PokemonIdentifier
PokemonIdentifier
A newly created PokemonIdentifier object from this string
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.EffectType","title":"EffectType
","text":"Helper class to identify which category of effect is being activated.
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.Effect","title":"Effect
","text":"A helper class for many Battle Message types that rely on something happening to cause the message effect.
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.RequestPoke","title":"RequestPoke
","text":"A helper class to contain details about a pokemon held in the side
data of a request.
Attributes:
Name Type Description IDENT
PokemonIdentifier
The string pokemon identifier (without slot information)
SPECIES
DexPokemon.ValueType
The species for this pokemon, including forme
LEVEL
int
The level of this pokemon
GENDER
Optional[Literal['M', 'F']]
The gender of this pokemon
SHINY
bool
Whether the pokemon is shiny or not
TERA
Optional[DexType.ValueType]
If this pokemon is teratyped, the DexType of the new type. Else None.
CUR_HP
int
The current HP of the pokemon
MAX_HP
Optional[int]
The maximum HP of the pokemon, None if the pokemon is fainted
STATUS
Optional[DexStatus.ValueType]
The status of the pokemon. Can be None if there is no status
ACTIVE
bool
Whether the pokemon is active or not
STATS
Dict[PokeStat, int]
A dictionary of stat->values for each stat of this pokemon (before modifiers)
MOVES
List[DexMove.ValueType]
The list of moves this pokemon knows, without pp information
BASE_ABILITY
DexAbility.ValueType
The base ability of this pokemon, ignoring any ability switching shenanigans
ABILITY
Optional[DexAbility.ValueType]
The current ability of this pokemon. Only used in certain gens, can be None
ITEM
Optional[DexItem.ValueType]
The held item of this pokemon. None if no item is held
POKEBALL
str
Which pokeball this pokemon is contained in
COMMANDING
Optional[bool]
Tatsugiri commander mechanic. True if active, false if not, None if older gen
REVIVING
Optional[bool]
Revival Blessing flag (I think?)
TERATYPE
Optional[DexType.ValueType]
The type that this pokemon can teratype into
TERASTALLIZED
Optional[DexType.ValueType]
The type that this pokemon is teratyped into. None if not applicable
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.MoveData","title":"MoveData
","text":"A helper class to contain details about a move held in the active data for a request.
Attributes:
Name Type Description NAME
str
The friendly name of the move
ID
DexMove.ValueType
The id of the move
CUR_PP
Optional[int]
The integer amount of times this move can still be used. None if Trapped
MAX_PP
Optional[int]
The integer amount of times this move can ever be used. None if Trapped
TARGET
Optional[DexMoveTarget.ValueType]
The targetting type of this move. None if Trapped
DISABLED
Optional[bool]
Whether this move is disabled or not. None if Trapped
"},{"location":"showdown/reference/battle-messages/#poketypes.showdown.battlemessage.ActiveOption","title":"ActiveOption
","text":"A helper class to contain details about all moves available for an active pokemon in a request.
Attributes:
Name Type Description MOVES
List[MoveData]
A list of available moves for this slot
CAN_MEGA
bool
Whether the pokemon can mega evolve
CAN_ZMOVE
bool
Whether the pokemon can zmove
CAN_DYNA
bool
Whether the pokemon can dynamax
CAN_TERA
bool
Whether the pokemon can teratype
TRAPPED
bool
Whether the user is trapped
"},{"location":"showdown/reference/standard-messages/","title":"The Standard Showdown Message","text":""},{"location":"showdown/reference/standard-messages/#the-message-object","title":"The Message object","text":"The base class for all specific Message subclasses to be built from.
When parsing a string message, you should directly use this class's from_message
function, which will auto-identify which subclass (if any) the given string belongs to.
Across all Messages, you will be able to access both MTYPE and MESSAGE, though you shouldn't need to access MESSAGE directly. (If you do, then we must be missing some data that exists in the raw string)
ATTRIBUTE DESCRIPTION MTYPE
The message type of this message. Must be a vaild showdown general message.
TYPE: MType
MESSAGE
The raw message line as sent from showdown. Shouldn't need to be used but worth keeping.
TYPE: str
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message.from_message","title":"from_message(message)
staticmethod
","text":"Create a specific Message object from a raw string message.
This is used for general Showdown Messages, compared to the BattleMessage class meant for battle details.
PARAMETER DESCRIPTION message
The newline-stripped single string message as sent by the server.
TYPE: str
RETURNS DESCRIPTION Message
An initialized subclass of Message
, for the corresponding class for this message type.
TYPE: 'Message'
"},{"location":"showdown/reference/standard-messages/#message-subclasses","title":"Message Subclasses","text":"Contains BaseModels for Message parsing and processing.
Remember to use Message.from_message directly, unless you are building test cases where you want to assert that a given message leads to a certain subclass of Message. from_message
will auto-detect which MType the given message corresponds to, and return the associated subclass (or an error detailing what went wrong) for you.
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_challstr","title":"Message_challstr
","text":"Message containing a login challenge string.
ATTRIBUTE DESCRIPTION CHALLSTR
The string challenge string
TYPE: str
Use Case(s) - Gives the user a challenge string to submit to the login server to get a token
Message Format(s) Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_customgroups","title":"Message_customgroups
","text":"Message containing info about server custom groups.
ATTRIBUTE DESCRIPTION CUSTOM_GROUPS
The list of custom groups
TYPE: List[CustomGroup]
Use Case(s) - To communicate all usergroups
Message Format(s) - |customgroups|CUSTOMGROUPS
Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_formats","title":"Message_formats
","text":"Message containing info about server enabled formats.
ATTRIBUTE DESCRIPTION FORMATS
The list of formats
TYPE: List[str]
Use Case(s) - To communicate all available formats the user can play
Message Format(s) Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_init","title":"Message_init
","text":"Message notifying about a battle starting.
Use Case(s) - To communicate battle initialization notice.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_join","title":"Message_join
","text":"Message containing info about a joining user.
ATTRIBUTE DESCRIPTION USERNAME
The username of the joining player
TYPE: str
Use Case(s) - To communicate player room user entry.
Message Format(s) Input Example(s) - |j|\u2606colress-gpt-test1
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_leave","title":"Message_leave
","text":"Message containing info about a leaving user.
ATTRIBUTE DESCRIPTION USERNAME
The username of the leaving player
TYPE: str
Use Case(s) - To communicate player room user exit.
Message Format(s) - |leave|USERNAME
- |l|USERNAME
Input Example(s) - |l|\u2606colress-gpt-test1
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_pm","title":"Message_pm
","text":"Message containing a PM to/from the user.
ATTRIBUTE DESCRIPTION SOURCE
The username of the user who sent the pm
TYPE: str
TARGET
The username of the user who received the pm
TYPE: str
PM
The message. Newlines are denoted with |
TYPE: str
IS_CHALLENGE
Whether this PM is a challenge to a battle
TYPE: bool
CHALLENGE_FORMAT
The format of the challenge if it is a challenge
TYPE: Optional[str]
Use Case(s) - Notify the user about a PM received.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_title","title":"Message_title
","text":"Message notifying about the title of a room.
ATTRIBUTE DESCRIPTION TITLE
The title of this match as shown on pokemon showdown
TYPE: str
Use Case(s) - To communicate room title info.
Message Format(s) Input Example(s) - |title|colress-gpt-test1 vs. colress-gpt-test2
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_updatechallenges","title":"Message_updatechallenges
","text":"Message containing a current challenge searches, if any.
ATTRIBUTE DESCRIPTION OUTGOING
A dictionary of username->format for each outgoing challenge
TYPE: Dict[str, str]
INCOMING
A dictionary of username->format for each incoming challenge
TYPE: Dict[str, str]
Use Case(s) - Gives the user an update about all of their current battle challenge requests.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_updatesearch","title":"Message_updatesearch
","text":"Message containing a current ladder searches, if any.
ATTRIBUTE DESCRIPTION SEARCHING
A list of formats currently searching for a ladder match
TYPE: List[str]
GAMES
A optional dictionary of game-id->format of currently ongoing games
TYPE: Optional[Dict[str, str]]
Use Case(s) - Gives the user an update about all of their current battle search requests.
Message Format(s) Input Example(s) "},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.Message_updateuser","title":"Message_updateuser
","text":"Message containing info about your user settings / login information.
ATTRIBUTE DESCRIPTION USERNAME
The username of your current login
TYPE: str
NAMED
Whether you are currently logged in or not
TYPE: bool
AVATAR
Either a number id of the user's avatar or a custom value
TYPE: Union[int, str]
SETTINGS
The user settings for your current user session
TYPE: UserSettings
Use Case(s) - To communicate any changes to your login / user session.
Message Format(s) - |updateuser|USER|NAMED|AVATAR|SETTINGS
Input Example(s) "},{"location":"showdown/reference/standard-messages/#message-utility-classes","title":"Message Utility Classes","text":"Contains BaseModels for Message parsing and processing.
Remember to use Message.from_message directly, unless you are building test cases where you want to assert that a given message leads to a certain subclass of Message. from_message
will auto-detect which MType the given message corresponds to, and return the associated subclass (or an error detailing what went wrong) for you.
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.CustomGroup","title":"CustomGroup
","text":"A helper class to contain information about server custom groups.
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.MType","title":"MType
","text":"String-Enum for holding all unique categories of Showdown Generic Messages.
See https://github.com/smogon/pokemon-showdown/blob/master/PROTOCOL.md for the (partial) list of message types
"},{"location":"showdown/reference/standard-messages/#poketypes.showdown.showdownmessage.UserSettings","title":"UserSettings
","text":"A helper class to contain information about user settings.
Attributes:
Name Type Description BLOCK_CHALLENGES
bool
Whether you are currently blocking challenges
BLOCK_PMS
bool
Whether you are currently blocking PMs
IGNORE_TICKETS
bool
Whether you are currently ignoring tickets
HIDE_BATTLES
bool
Whether you are currently hiding battles on your trainer card
BLOCK_INVITES
bool
Whether you are currently blocking invites
DO_NOT_DISTURB
bool
Your current do not disturb setting
BLOCK_FRIEND_REQUESTS
bool
Whether you are currently blocking friend requests
ALLOW_FRIEND_NOTIFICATIONS
bool
Whether you are currently allowing friend notifications
DISPLAY_BATTLES
bool
Whether you are currently displaying battles to friends
HIDE_LOGINS
bool
Whether you are currently hiding logins
HIDDEN_NEXT_BATTLE
bool
Whether you are hiding your next battle or not
INVITE_ONLY_NEXT_BATTLE
bool
Whether you are limiting your next battle to invite only or not
LANGUAGE
Optional[str]
The language set by your user
"}]}
\ No newline at end of file
diff --git a/showdown/reference/battle-messages/index.html b/showdown/reference/battle-messages/index.html
index 2b97551..77186b7 100755
--- a/showdown/reference/battle-messages/index.html
+++ b/showdown/reference/battle-messages/index.html
@@ -4951,7 +4951,7 @@
TYPE:
- str
+ DexMove.ValueType
@@ -6345,12 +6345,12 @@
-
The pokemon that had no target available
+
The pokemon that had no target available.
TYPE:
- PokemonIdentifier
+ Optional[PokemonIdentifier]
@@ -6368,6 +6368,7 @@ Not implemented yet.
-
@@ -9738,6 +9735,34 @@
+
+
The base species of the pokemon that is mega evolving
+
+
+
+ TYPE:
+ DexPokemon.ValueType
+
+
+
+
+
+ MEGA_STONE |
+
+
+ The mega stone that is being used
+
+
+
+ TYPE:
+ DexItem.ValueType
+
+
+ |
+
@@ -9750,13 +9775,13 @@
Message Format(s):
-- |-mega|POKEMON|MEGASTONE
+- |-mega|POKEMON|BASE_SPECIES|MEGASTONE
Input Example(s)
-- TODO
+- |-mega|p1a: Absol|Absol|Absolite
@@ -9830,7 +9855,7 @@
TYPE:
- str
+ DexItem.ValueType
@@ -10646,7 +10671,7 @@
TYPE:
- str
+ DexMove.ValueType
diff --git a/sitemap.xml.gz b/sitemap.xml.gz
index 9c6ffa5..853b4ed 100755
Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ