RotomLabs uses a powerful token system for complex queries. Filter Pokémon, moves, and abilities using simple prefixes and logical operators.
Words without a prefix search by name.
Standard words look for partial name matches.
pikachu - Finds anything with "pikachu" in the name (e.g., Pikachu, Alolan Pikachu, etc.).charizard blastoise - Finds Pokémon matching both names (AND). Unlikely to provide results, but still available. More powerful with the OR operator (see below).!pikachu - Excludes Pokémon with "pikachu" in their name.Use the = operator for a strict match. This requires the item's slug (lowercase with hyphens, used with site URLs). This is perfect for avoiding unwanted variants or partial matches.
p=pikachu - Matches only The Pikachu species exactly (includes form variants).f=mega-y - Matches the exact form slug mega-y.move=earthquake - Matches the exact move slug earthquake.a=sturdy - Matches the exact ability slug sturdy.A slug is a unique identifier: lowercase, no spaces, and hyphens for special characters. Site URLs use these slugs as well.
Examples: Great Tusk = great-tusk | Extreme Speed = extreme-speed | Farfetch'd = farfetch-d.
Filter by National ID, elemental types, and abilities.
| Field | Prefixes | Operators | Example |
|---|---|---|---|
| National ID | #, national | : = > < >= <= != | #25 or national>151 |
| Type (Any) | t:, type: | : = != | t:fire |
| Primary Type | pt:, type1: | : = != | pt:grass |
| Secondary Type | st:, type2: | : = != | st:poison |
| Ability (Any) | a:, ability: | : = != | a:sturdy |
Secondary and Hidden abilities only support the = operator.
Search by base stats or the Effort Values (EVs) granted when defeated.
RotomLabs can estimate stats at any level. By default, it assumes Level 50.
Assumes 31 IV, 252 EV, and a beneficial nature.
| Stat | Prefix | Example |
|---|---|---|
| Max HP | maxhp | maxhp>200 |
| Max Attack | maxatk | maxatk>150 |
| Max Defense | maxdef | maxdef>150 |
| Max Sp. Atk | maxspatk | maxspatk>150 |
| Max Sp. Def | maxspdef | maxspdef>150 |
| Max Speed | maxspd | maxspd>200 |
Assumes 0 IV, 0 EV, and a hindering nature.
Add [level] to any prefix to calculate at that level.
Example: maxspd[100]>400 (Top speed at level 100).
For competitive "Champions" data, calculations always assume 31 IVs, regardless of whether you search for min or max stats.
Find Pokémon based on what they can learn and how they learn it.
| Method | Prefix / Operator | Example |
|---|---|---|
| Any Method | move: (fuzzy)move= (exact) | move:earthquakemove=earthquake |
| Level Up | move[level]:move[level]= | move[level]:"thunder punch"move[level]="thunder-punch" |
| Egg Move | move[egg]:move[egg]= | move[egg]:"dragon dance"move[egg]="dragon-dance" |
| TM / HM | move[tm]:move[tm]= | move[tm]:toxicmove[tm]=toxic |
| Tutor | move[tutor]: | move[tutor]:"draco meteor" |
By default, : matches any move containing that text (e.g., move:thunder matches Thunderbolt). Use = with a slug for a strict match (e.g., move=thunder).
Target specific matchups, traits, and formats.
| Filter | Keywords | Example |
|---|---|---|
| Matchups | weak:, resist:, immune: | weak:fire |
| Extreme Matchups | 4xweak:, 4xresist: | 4xweak:water |
| Move Types (Physical/Special) | has_phys:, has_spec: | has_spec:fire |
| Trait Tags | is: | is:legendary, is:baby, is:final |
| Entries From Region | region:, r: | r:sinnoh (DPP & BDSP) |
The weak:, resist:, and immune: tags will match any Pokémon that may have an ability that affects immunity. For example, immune:ground will include Pokémon that could have levitate (e.g.immune:ground rotom will show Rotom).
Combine filters with simple logic.
and. t:fire weight>100or or commas. t:fire or t:water | t:fire,water( ) to nest logic. (t:fire or t:water) and is:final!= or !:. t:fire and pt!=ground (does not include Primal Groudon)