Jirachi Simulation

Not open for further replies.
Jirachi Simulation Thread
Screen Shot 2021-07-06 at 6.01.26 pm.png

Recently, there has been a lot of debate as to whether Jirachi, or its attack iron head, should be banned in DPP, OU. However, much of the debate surrounding this topic has been based on vague impressions stemming from experience playing. While this can be accurate to some degree, it is nowhere near as reliable as actually performing the calculation, and disagreements by experienced players have arisen because of the method of gathering information.

This thread aims to clear up some of the misinformation by simulating the interaction between Jirachi and many of its supposed counters.


A simulation was made for some of Jirachi's counters mentioned in the DPP OU Metagame Discussion Thread. Different natures, and held items were explored for these Pokemon, while Jirachi always held leftovers. The simulation assumed that Jirachi's counters were already paralysed, the justification for which was that in practice, most jirachi will switch out of their counters, except in the cases where some are paralysed. It was also deemed too difficult to decide when to stop body slamming, and start iron heading instead, in the cases where jirachi is acting suicidal. The possibility of Jirachi using fire or ice punch was also not considered.

The simulation itself considered all outcomes, except for pp drain or the presence of a sandstorm, between a Jirachi spamming iron head, and an opponent attacking within the span of each turn. This included:
  • Critical hits.
  • Leftovers recovery.
  • Secondary effects from the opponent.
    • Paralysis.
    • Burn.
  • Skipped turns due to paralysis.
  • Skipped turns due to flinching.
It did not consider:
  • PP drain.
  • The possibility of a sandstorm been present.
  • The possibility of either pokemon starting at less than full health.
  • The possibility of Jirachi using other moves.
  • The possibility of the opponent using something other than its best move.
  • *All* of the Pokemon mentioned in the DPP OU Metagame Discussion Thread.
  • The possibility of Jirachi under speeding any of the Pokemon simulated, even when paralysed by them.
    • For this, only 20 speed EVs are required.

The Code:


Explanation of the code:

First the hit points of both Pokemon are reset to 100%, after which a test is made to determine whether Jirachi is paralysed that turn, where if not it attacks. While doing so it receives a chance to critical hit, or cause the opponent to flinch with iron head. If this does not take effect, then the opponents turn may be skipped instead by paralysis activating. In either of these scenarios, both Pokemon receive leftovers recovery should they possess the item, and burn damage should they have this status effect.

After this event it is the opponents turn, and they attack Jirachi, receiving the same chance to critical hit, and a variable chance to introduce a secondary effect like paralysis or a burn.

At the end of the the entire interaction, a check is made to ensure that neither Pokemon's hit points have exceed 100% due to leftovers recovery, and the next turn comes into effect.
Last edited:
Nota bene: It was assumed that the Pokemon Jirachi faces are already paralysed.

Offensive Jirachi:

Jolly Nature
EVs: 252 Atk / 4 SpD / 252 Spe

EVs: 32 HP / 4 Def / 252 SpA / 220 Spe

EVs: 4 Atk / 252 SpA / 252 Spe

EVs: 240 HP / 252 SpA / 16 Spe

EVs: 240 HP / 216 Def / 52 SpD

EVs: 252 SpA / 4 SpD / 252 Spe

Defensive Jirachi:

Jolly Nature
EVs: 252 HP / 8 Atk / 32 SpD / 216 Spe

EVs: 32 HP / 4 Def / 252 SpA / 220 Spe

EVs: 4 Atk / 252 SpA / 252 Spe

EVs: 240 HP / 252 SpA / 16 Spe

EVs: 240 HP / 216 Def / 52 SpD

EVs: 252 SpA / 4 SpD / 252 Spe
Last edited:

In the DPP OU Metagame Discussion Thread, several replays, counters and calculations regarding Jirachi were mentioned. This post aims to address some of those.

How likely was the replay involving a leftovers Magnezone which wasn't paralysed?


Modifying the simulation so that the opposing Magnezone (which was of a mild nature) never gets paralysed, we see that the probability of the interaction in this replay occurring, after the first attack, was 14%. (Magnezone started at 81% of full health, if it starts at 94% to account for rocks and not the first attack instead, then the probability is only 9.1%). It was assumed that the Jirachi was holding a choice scarf indicated by the fact that it never body slammed, so I did not give Jirachi leftovers recovery.

Are the odds of Magnezone losing in this replay 1.0463794e-11?


Even if you multiply every event in the replay together, which is 0.6^9*0.4*0.6^5*1/16*1/16*1/16 (the chances of a critical hit are 1/16), then you get a number approximately 10 000 times bigger than 1.0463794e-11. I don't know how this was calculated.

Does the nature of Magnezone make a difference here?

As indicated by the analysis in the results section, the nature of Magnezone makes a large difference, particularly if it is holding leftovers.

What if Magnezone uses thunder wave the first turn it gets a chance, then keeps using thunderbolt after that?

Tomahawk suggested on the discord that I calculate this for completeness. I have done so, but in the future I wont be modifying the simulation beyond the simple "already paralysed, keep attacking" scenario. This is because in most of the cases where different moves can be used, the problem of determining when to stop using another move, be it status, a boosting move, or a more accurate one, is not trivial to solve.

If a modest Magnezone (EVs: 32 HP / 4 Def / 252 SpA / 220 Spe) uses thunder wave in the first opportunity it gets, against the offencive Jirachi, then should it be holding leftovers, Magnezone will have a 99.7% chance of winning. If the same Magnezone is not holding leftovers, then it will have an 82% chance of winning.

This illustrates that in practice, Magnezone defeats Jirachi much more often than what is suggested, by the idealised situation in the results section.

How likely was the replay involving a specially offensive Swampert being flinched to death, given that it wasn't paralysed?


Modifying the simulation so that specially offensive Swampert is not paralysed to begin with, and starts at 81% HP (due to a single layer of spikes), and also assuming that the Jirachi was an offensive variant, we find that the probability of this interaction occurring was 45%. This is much higher than I expected, to say the least. If Swampert started at 100% HP, the odds were 37%.

Are there higher odds for a Gengar to obtain a critical hit against Jirachi in a single attack, than for Jirachi to beat specially offensive Swampert?


Does Jirachi have low, but higher than needed odds to win the 1v1 against specially offensive Swampert?

Only if it is paralysed, otherwise the odds are in Swamperts favour (although it's a shaky 67% against defensive Jirachi).

Do defensive Jirachi lack the offensive power to muscle through sturdy checks, such as Heatran?

As indicted in the results section, Heatran without leftovers possess a very high chance to lose against defensive Jirachi, if they happen to be paralysed.

I ran the simulation again in the case where a Heatran without leftovers is not paralysed, and faces off against the defensive Jirachi variant I have been using, and got a win rate of 15% for Jirachi (both Pokemon start at 100% HP, Heatran uses fire blast each turn and may miss).

What if Heatran runs magma storm instead of fire Blast?

If Heatran is already paralysed, not running leftovers, and it has no HP or defensive investment, then it will lose 53% of the time against the defensive Jirachi set. It will lose 30% of the time against the offensive set. Should it possess leftovers the odds of Jirachi winning become negligible again.

Is the enough flexibility to use items other than leftovers on the Pokemon considered?

Only Heatran can get away with this reliably, and its reliability diminishes if it's paralysed.

Is the following a healthy pool of viable options against Jirachi?
Metagross, Empoleon, Heatran, Skarmory, Magnezone, Rotom, Zapdos, Suicune, Swampert, Milotic, Hippowdon, Gliscor.

This is outside the scope of the project. However we can say with certainty that either of Heatran with leftovers or Magnezone with them are good enough on their own, should Jirachi only have access to iron head and paralysis. We can also say that Swampert can be insufficient if it is paralysed, particularly if you are running an offensive varient.

Is the number of games "stolen" by Jirachi inflated in players heads by our negative bias?

This is outside the scope of the project as well. However if I were a betting man, I would bet that the win ratio of Jirachi against the Pokemon outlined here is higher than most people expected.

In practice, are Jirachi's chances of winning much lower than those described in the results section?


Most opposing Pokemon wont begin their turn paralysed. Opponents will also change up their moves, and generally play better than just attacking each turn. Such interactions are much harder to model than these idealised situations however, and are outside the scope of this project.

Have you tested the some of the matchups with real games, to see if the simulation is actually working?

I have run a test of 10 games involving the defensive Jirachi and the Heatran which didn't possess leftovers. The Heatran was paralysed on the first turn, and then attempted to use fire blast on subsequent turns. The results were 2 victories for Jirachi, and 8 for Heatran. Since the simulation can vary from a win ratio of 10% to 40% for sample sizes of only 10, the simulation was consistent with this test.

Greater sample sizes using Smogon's showdown simulator are needed to fully trust the results however. I plan to conduct the same test with a sample size of 100 sometime this week. It might take an hour though, *sigh*.

Ok that's everything, thank you for reading everyone <3
Last edited:


is a Forum Moderatoris a Community Contributor
(Posting for the DPP staff team)

Hi there!

Although the work behind this thread is undeniable, I would like to remind you have to get permission from a moderator before starting a thread. We feel like Jirachi simulation doesn't deserve an entiere thread, and it's not your first time starting a thread without permission. Please pm a staff member before next time! :)

There's also some inaccuracies and misleading assumptions in this simulation:

(corrections by Tomahawk )

- The full paralysis is an assumption that does not hold in practice, and even with a disclaimer that means these probabilities will be misleading. You mention for example that Jirachi can switch out of this is not the case, but that is not true vs Magnezone. In practice, Jirachi would also switch out vs most paralyzed Heatran unless it is desparate for a flinch in which case the paralysis makes no difference.
- Considering infinite Iron Head PPs is also a misleading assumption, since that might make a reasonably impact, especially vs Magnezone.
- Since you're not sampling from the possible rolls but assuming the average always, plus you are working percentages instead of HP, the damage calculation is simplified and thus slightly wrong.
- You ignore the option of fire punch to kill off the Magnezone when it is at 30-40, but obviously this would be done in a real game.

We also found what seems to be some errors in your code:

- Although the code is slightly confusing, you seem to be adding Iron Head damage twice if it flinches or para's, which of course greatly increases Jirachi's chances.
- You forget to half the damage when burned.
- In your simulation a Fire Blast burn is still possible after a miss.
- The 1/3 value in line 18 seems to not correspond with anything, if it's meant to be a full para: that's 1/4

(august asked me to leave him a section in this post, his corrections will come soon)

For all these reasons, I'm locking this thread. Once again, the work and the willingness to contribute behind this thread are appreciated, so I hope you won't take it personnaly.

Have a nice day!
Not open for further replies.

Users Who Are Viewing This Thread (Users: 1, Guests: 0)