Every attack has a type, and every Pokémon one or two. An attack does 2× damage to a type it's strong against, ½ to one that resists it, and nothing to one that's immune. Against a Pokémon with two types, both count: 2 × 2 is 4×.
Pokémon also hit harder with moves of their own types.
| Attack ↓ / Defends → | Normal | Fire | Water | Electric | Grass | Ice | Fighting | Poison | Ground | Flying | Psychic | Bug | Rock | Ghost | Dragon | Dark | Steel | Fairy |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| normal | ½ | 0 | ½ | |||||||||||||||
| fire | ½ | ½ | 2 | 2 | 2 | ½ | ½ | 2 | ||||||||||
| water | 2 | ½ | ½ | 2 | 2 | ½ | ||||||||||||
| electric | 2 | ½ | ½ | 0 | 2 | ½ | ||||||||||||
| grass | ½ | 2 | ½ | ½ | 2 | ½ | ½ | 2 | ½ | ½ | ||||||||
| ice | ½ | ½ | 2 | ½ | 2 | 2 | 2 | ½ | ||||||||||
| fighting | 2 | 2 | ½ | ½ | ½ | ½ | 2 | 0 | 2 | 2 | ½ | |||||||
| poison | 2 | ½ | ½ | ½ | ½ | 0 | 2 | |||||||||||
| ground | 2 | 2 | ½ | 2 | 0 | ½ | 2 | 2 | ||||||||||
| flying | ½ | 2 | 2 | 2 | ½ | ½ | ||||||||||||
| psychic | 2 | 2 | ½ | 0 | ½ | |||||||||||||
| bug | ½ | 2 | ½ | ½ | ½ | 2 | ½ | 2 | ½ | ½ | ||||||||
| rock | 2 | 2 | ½ | ½ | 2 | 2 | ½ | |||||||||||
| ghost | 0 | 2 | 2 | ½ | ||||||||||||||
| dragon | 2 | ½ | 0 | |||||||||||||||
| dark | ½ | 2 | 2 | ½ | ½ | |||||||||||||
| steel | ½ | ½ | ½ | 2 | 2 | ½ | 2 | |||||||||||
| fairy | ½ | 2 | ½ | 2 | 2 | ½ |
Each Pokémon's Pokédex page lists exactly what it is weak to, resists and is immune to.