ExpSqueeze finds the average amount of experience in Pokemon that can be gained from a single wild encounter within an encounter table, along with many other stats. ExpSqueeze works for most mainline Pokemon games except Generation 8+. The data generated by ExpSqueeze can be filtered and manipulated in many different ways to make it easier to find the perfect place to train a pokemon or for other analytical uses.
- Accounting for factors that change encounter tables, like the time of day.
- Ability to filter by the types of pokemon.
- Rematchable trainers.
- Adjusting calculated experience when repels are used.
- Filtering and sorting by EV yields.
- Filter tables by what part of the game you're in.
- And a lot more!
location-area(encounter tables): PokeAPI (fixed up considerably)pokemon(species data, used for type filtering): PokeAPIexp-gain-stats(yield stats): Adapted from Bulbapedia (1, 2)frlgtrainerdataandtrainers(data about trainer rematches): Mostly adapted from pret disassembly projects, some from Bulbapedia.progress(data for progress filtering): Self madeswarm-data(Generation 3 and 5 swarm encounter tables): Adapted from Bulbapedia- UI: Imgui
Encounter tables consist of encounter slots. Every slot has a Pokemon, minimum and maximum level, and % chance value. ExpSqueeze finds the average level given the minimum and maximum level, solves the leftmost fraction of the experience gain formula, and then weighs this according to the slot's % chance. This is done for every slot. When the numbers are added up, you get the encounter table's average experience per encounter.