How the numbers are worked out
The calculator does not guess with random runs. It follows every possible pull history step by step, so the expected pulls, the 90% and 99% points and the chance within N pulls are exact for your rules. The "real rate" is what players actually get over a long time once pity is included. For example, a top tier with a 0.6% base rate, soft pity from pull 74 and hard pity at 90 works out to about 1.6%, one every 62 pulls on average.
Pity, soft pity and 50/50
Hard pity guarantees the top tier at a fixed pull count. Soft pity raises the top tier chance by a few percentage points on every pull after a point, so most players hit it before hard pity. Rate-up means a top tier pull is the featured item with some chance, often 50%. With the guarantee box ticked, missing the featured item once makes the next top tier pull the featured item. A multi-pull guarantee makes sure a 10-pull holds at least one item of a chosen tier.
Odds disclosure rules
Apple's App Store and Google Play both require games that sell loot boxes or gacha pulls to show the odds before purchase. In South Korea, since March 22, 2024, the Game Industry Promotion Act requires the probability of every item in paid random items, shown as a percentage in the game, on the website and in ads. Pity systems and changing rates must be explained too. Games from companies with average yearly sales of 100 million won or less over three years are exempt. The Korean table follows this format, with the per-pull chance during soft pity listed. This is a helper, not legal advice.
Using the same rules in your game
Pro exports your table as JSON together with a Godot script and a Unity C# script. Both read the JSON, keep the pity counter and the 50/50 state, and pull with exactly the rules you see here, so the odds you publish match what the game does. Save the state with the player's data so pity carries over between sessions.
Is anything uploaded?
No. Everything runs in your browser and your table is saved on this device.