Type Effectiveness
When a move hits a Pokémon, the damage is multiplied by how effective the move's type is against the defender's type(s). If the defender has two types, the multipliers multiply (e.g. 2× × 2× = 4×).

| Multiplier | Meaning | Damage number colour |
|---|---|---|
| 0× | immune (takes no damage) | no number |
| ¼× | very resistant | 123 dark grey-blue |
| ½× | resistant | 123 grey-blue |
| 1× | normal damage | 123 white |
| 2× | super effective | 123 gold |
| 4× | double super effective | 123 orange |
Effectiveness and critical numbers carry a caption above them: Super! (2×), 4x! (4×), Resisted (½× and ¼×) or CRIT!.
Beyond effectiveness, the number also tells you what happened: 123 critical hit (light gold, never merges with another number), +123 heal (green is for heals only) and Miss miss (the move failed or the target dodged).
The chart below is generated straight from the server's table
(pokemon_types.lua). Row = attacking type, column = defending type.
| ATK ↓ · DEF → | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | ½ | ½ | ||||||||||||||||
| ½ | 2× | 2× | ½ | 2× | ½ | ½ | 2× | |||||||||||
| ½ | ½ | 2× | ½ | 2× | ½ | ½ | ½ | 2× | ½ | |||||||||
| ½ | ½ | 0 | 2× | ½ | 2× | |||||||||||||
| 2× | ½ | 2× | ½ | 2× | 0 | 2× | 2× | |||||||||||
| ½ | 2× | 2× | ½ | ½ | ½ | ½ | ½ | 2× | ½ | |||||||||
| ½ | 2× | 2× | 0 | ½ | ||||||||||||||
| 2× | ½ | 2× | ½ | ½ | 2× | |||||||||||||
| ½ | 2× | 2× | ½ | ½ | 2× | 2× | ½ | |||||||||||
| ½ | ½ | 2× | 2× | 2× | ½ | |||||||||||||
| 0 | 2× | 2× | ½ | |||||||||||||||
| 2× | ½ | 2× | ½ | ½ | ½ | 0 | ||||||||||||
| 0 | 2× | ½ | ||||||||||||||||
| 2× | ½ | ½ | 2× | ½ | 0 | ½ | ½ | 2× | 2× | 2× | ||||||||
| 2× | ½ | 2× | 2× | ½ | ½ | |||||||||||||
| 2× | ½ | 2× | 2× | ½ | 2× | ½ | ||||||||||||
| 2× | ½ | 2× | ½ | ½ | ||||||||||||||
| ½ | ½ | ½ | 2× | 2× | 2× | ½ |
Legend: blank = 1× (neutral) · 2× super effective · 4× doubly effective · ½ resisted · ¼ strongly resisted · 0 immune