Trainer Battles are upon us, bringing a new set of energy and cooldown mechanics. In this article, we will explore the following mechanics in Pokemon GO PvP: how energy is generated and spent, how moves deal damage, how PvP cooldowns work, how charge up actually works, which Pokemon are allowed and banned to be used in PvP and what limits each league imposes on the battles.
General Combat settings
The following settings were discovered in the Game Master file on 12/13/2018. Niantic has made it possible to change Trainer battle on the fly by simply modifying the settings which control the duration and tempo of the battle:
Setting | Value |
---|---|
Round duration | 240s |
Turn duration | 0.5s |
Max Energy | 100 |
Swap Pokemon duration | 12s |
Swap Pokemon cooldown | 60s |
Charge up duration | 4s |
Charge up bonus base multiplier | 0.0001x |
Charge up bonus max multiplier | 1x |
STAB multiplier | 1.2x |
Fast attack bonus multiplier | 1.3x |
Charge attack bonus multiplier | 1.3x |
Defense bonus multiplier | 1x |
Defender mini game multiplier | 1x |
As listed above, a Trainer Battle can last only 240 seconds (four minutes). Once the timer runs out, the winner is determined by the number of Pokemon which are not fainted and by their remaining HP percentage. Trainer Battles always have a winner and a loser, although both players get a reward.
All damage dealt during the battle is modified by the Fast Attack and Charge Attack bonus multipliers (1.3x), and right now the theory is that it improves battling speed and promotes faster battles. STAB multiplier has the same value like the rest of the game (1.2x), but it’s interesting that Niantic has a separate STAB setting for PvP.
Charge up: a dangerous mini game

Once you fill up the move’s energy circle (each charged move has a different energy requirement), you can use the charge move and start the charge up mini game. Charging up should never be skipped, as your move will deal the minimal possible 1 HP Damage if you don’t charge up!
Charging up will unlock the damage of your charge move in three stages (Pokemon gets closer and closer to the camera), going from 1 to full damage if charged up completely. Charge up doesn’t increase the move’s damage beyond 1x multiplier (the max charge up multiplier is 1x).
Although the Game Master file states that the charge up mini game should last 4 seconds, the actual game shows a three second long timer.
Swapping Pokemon in Trainer Battles
Swapping a Pokemon starts a 12 seconds timer – you need to swap before the timer ends. Your current Pokemon will still receive damage during the process of picking a Pokemon to swap with, so be fast and efficient while swapping. Swapping a Pokemon will disable the swap button for 60 seconds.
The timer, like all other timers in PvP, is active all the time, which means it counts through animations, charge up mini games and any other interactions on the screen.
Energy generation and cooldowns
Early PvP game play has revealed that moves generate energy differently in PvP than in Raids or Gym combat. The Game Master has revealed what has changed: the formulas are still the same, but each move has a new PvP specific Energy Delta and Power value and it especially affects two and three bar moves.
Charge moves
BinetCauchy is preparing an in-depth article that covers charge and fast move stats in PvP and I’m not planning to steal his thunder here, but here’s a short preview of how PvP moves function:
{ template_id: "COMBAT_V0277_MOVE_OUTRAGE", combat_move: { unique_id: "OUTRAGE", type: "POKEMON_TYPE_DRAGON", power: "110", vfx_name: "outrage", energy_delta: "-60", } }
Outrage Dragon, which is a well known two bar move, deals the same amount of damage in PvP like in the rest of the game (110), but the energy cost is different: 60 energy in PvP versus 50 energy in normal combat. Of course, Outrage is not the only example and the separation of PvP and normal move versions has created a completely separate meta game for Trainer Battles.
Fast Moves work differently in PvP as well. Each Fast Move has an associated Turn duration, which is a multiple of the Turn duration variable mentioned in the Global Combat settings (0.5s).
Fast Moves
PvP Fast Moves are different from their normal counterparts in the following way:
- different amount of damage dealt
- different amount of energy produced
- different duration (number of turns vs milliseconds)
For example, check this Mud Shot Ground comparison:
MOVE NAME | POWER | ENERGY | DURATION | DPS | EPS |
---|---|---|---|---|---|
Mud shot (normal) | 5 | 7 | 600 ms | 10 | 11.7 |
MOVE NAME | POWER | ENERGY | DURATION | DPT | EPT |
---|---|---|---|---|---|
Mud Shot (PvP) | 3 | 9 | 1 turn | 3 | 9 |
And here’s how the PvP version of Mud Shot looks like in the Game Master file:
{ template_id: "COMBAT_V0216_MOVE_MUD_SHOT_FAST", combat_move: { unique_id: "MUD_SHOT_FAST", type: "POKEMON_TYPE_GROUND", power: "3", vfx_name: "mud_shot_fast", duration_turns: "1", energy_delta: "9", } }
Banned Pokemon
Although Niantic said that only Ditto and Shedinja are banned in PvP, the Game Master reveals that the list is far longer:
League Settings
Each league has a number of settings that define it:
- Name and icon, which are fetched from Niantic’s servers and allow for dynamic creation of Leagues without client side updates.
- A setting that makes the League enabled or disabled, also controlled from the server
- Number of Pokemon allowed in the League is also configurable, but set to 3 for all current Leagues
- Minimum and Maximum CP Limits are specific for each League
- The list of banned Pokemon is also specific to each League, but currently they all share the same list. It’s expected that Leagues will diverge more in the future as the meta re-shapes and specific Pokemon are discovered to be over powered in a CP bracket.
Current CP Limits:
- Great League
- 0 – 1500 CP
- Ultra League
- 1500 – 2500 CP
- Master League
- 2500 – 10000 CP
Attack and defense buffs and debuffs: still mysterious
An entire section of the Game Master is dedicated to a feature that is seemingly not yet active: attack / defense buffs. We have no idea what it will be used for, but apparently it could be used for status effects. Here’s the code in question:
{ template_id: "COMBAT_STAT_STAGE_SETTINGS_KEY", combat_stat_stage_settings: { minimum_stat_stage: "-4", maximum_stat_stage: "4", attack_buff_multiplier: "0.33", attack_buff_multiplier: "0.4", attack_buff_multiplier: "0.5", attack_buff_multiplier: "0.67", attack_buff_multiplier: "1", attack_buff_multiplier: "1.5", attack_buff_multiplier: "2", attack_buff_multiplier: "2.5", attack_buff_multiplier: "3", defense_buff_multiplier: "0.33", defense_buff_multiplier: "0.4", defense_buff_multiplier: "0.5", defense_buff_multiplier: "0.67", defense_buff_multiplier: "1", defense_buff_multiplier: "1.5", defense_buff_multiplier: "2", defense_buff_multiplier: "2.5", defense_buff_multiplier: "3", } }