FAQ: Website Percent Pull Rate Explanation (Attempt)

Hey everyone! :wave:

Got a question about those pull rates on the website? :thinking: You’re not alone! :sweat_smile: We’ve been seeing this pop up a lot, so I wanted to clear things up once and for all! :rocket:

Huge thanks to Marcel! :pray: He shared the code with us, and I’ve tried my best to break it down below. :nerd_face: It’s a bit technical, so bear with me! :sweat_smile:

Basically, those percentages you see are calculated based on… :bar_chart:

. :bar_chart:

If anyone’s got a super-simple way to explain this, please jump in! :star_struck: I’d love to update this post so we can finally put this question to rest! :sleeping: Let’s keep the forum clean and focused on those epic deck builds! :crossed_swords::shield:

Thanks, and happy pulling! :tada::black_joker:

Let me break down how the card pull probabilities work in this game’s code in a way that’s easy to understand.

:black_joker: Basic Card Structure

The game has several card expansions (like “Genetic Apex”, “Mythical Island”, etc.), each with different booster packs. Cards have different rarity levels represented by diamond symbols (◊) and star symbols (☆).

:1234: How Pull Probabilities Work

The code calculates two main things:

  1. Your chance to get any new card you don’t own yet from a pack
  2. Your chance to get a specific card from a pack

:bar_chart: Rarity Probability Tables

There are three probability tables based on how many cards you draw:

  1. First 3 cards in a pack (probabilityPerRarity1_3):
  • Only common cards (◊) at 100% chance
  • All other rarities: 0%
  1. 4th card (probabilityPerRarity4):
  • ◊◊ (Uncommon): 90%
  • ◊◊◊ (Rare): 5%
  • ◊◊◊◊ (Super Rare): 1.666%
  • ☆ (Holo Rare): 2.572%
  • ☆☆ (Ultra Rare): 0.5%
  • ☆☆☆ (Secret Rare): 0.222%
  • Crown Rare: 0.04%
  1. 5th card (probabilityPerRarity5):
  • Higher chances for rare cards
  • ◊◊: 60%
  • ◊◊◊: 20%
  • ◊◊◊◊: 6.664%
  • ☆: 10.288%
  • ☆☆: 2%
  • ☆☆☆: 0.888%
  • Crown Rare: 0.16%

:abacus: The Calculation Process

When you open a pack, here’s what happens:

  1. First 3 cards: Always common cards (◊)
  2. 4th card: Rolls against the probabilityPerRarity4 table
  3. 5th card: Rolls against the probabilityPerRarity5 table

For each rarity tier, the chance is divided by how many cards exist in that rarity. For example, if there are 10 ◊◊◊ cards, each has a 5%/10 = 0.5% chance in the 4th slot.

:bulb: Key Functions Explained

  1. pullRate() - Calculates your chance to get any new card you don’t own:
  • Checks which cards you’re missing from the pack
  • For each missing card, calculates its probability based on rarity and how many cards share that rarity
  • Combines the probabilities across all 5 card slots
  1. pullRateForSpecificCard() - Calculates chance for one particular card:
  • Looks at the card’s rarity
  • Divides the rarity probability by number of cards with same rarity
  • Combines probabilities across all 5 card slots

:star2: Example Scenario

Let’s say you want a specific ☆☆ (Ultra Rare) card:

  • There are 5 ☆☆ cards in the pack
  • 4th slot chance: 0.5% total for ☆☆, so 0.5%/5 = 0.1% per card
  • 5th slot chance: 2% total for ☆☆, so 2%/5 = 0.4% per card
  • Total chance = 0.1% + 0.4% - 0.1% × 0.4% = 0,4996% = 1 - (1-0.001) × (1-0.004) per pack as @user484 corrected below.

:mag: Things to Note

  • The “everypack” contains cards available in all packs of that expansion
  • Some cards are “promo” and have different rules
  • Certain rare cards can’t be traded or sold
  • The system accounts for cards you already own when calculating your chances

Hey there!
Not sure this is the best way to send a suggestion, but I would love an option that consider “play mode” when counting duplicates.
Like for example, normal dialga ex + inmersive one are considered as the same card, 2 copies.
Thank you!

I am not a moderator of the site, and I really have no clue what do you mean with this.

Please open a new thread under Site Suggestions or Site Feedback, I am a regular user just as yourself.

the admin will most likely read your suggestion if you make a new thread, here it will be probably ignored as it is not related to the main topic.

But thanks for bumping my thread)

Hello. I do not understand this formula, i.e. why the cube in (1-0.001)³.

The probability to get a specific ☆☆-card is the probability to get it as the fourth card plus the probability to get it as the fifth card minus the probability to get it both as the fourth and fifth cards, that is 0.1% + 0.4% - 0.1% × 0.4% = 0,4996% = 1 - (1-0.001) × (1-0.004) if thinking about the chance to not get the specific card. So no cube.

The code indeed uses the formula which I mentioned for a ☆☆-card.

The formula used in the code is: const chanceToGetNewCard = 1 - (1 - chanceToGetThisCard1_3) ** 3 * (1 - chanceToGetThisCard4) * (1 - chanceToGetThisCard5). For a ☆☆-card, chanceToGetThisCard1_3 is equal to 0 so it indeed becomes 1 - (1-0.001) × (1-0.004) = 0,4996%.

The formula is only an approximation for ☆-cards and above (because it does not include the probability of god packs), and maybe for Old Amber (which appears in both Mewtwo and Mythical Island).

Thank you so much, how should I modify the post so that it is correct?

I would happily modify anything so that it is better explained and clearer, or correct if it is incorrect, I did not went trough this very carefully, but thank you for doing so.

Do I understand that I need to replace your quote with

That right?

1 Like

That’s right indeed.

1 Like

Thank you very much for your correction and scrutiny!