Hi! I built a core generator that provides a set of Pokémon pairings (or a set of "cores" using the term loosely) that satisfy a list of comma-separated preferences (constraints) supplied by the user. Examples of constraints are "Pokémon should resist types X Y Z" or "Pokémon should have type X". Constraints are satisfied by individual Pokémon in a core. In a core, each constraint supplied by the user must be satisfied by at least one of the included Pokémon for the pairing to be considered satisfactory.
The tool is available to anyone and hosted through a client on pokebrow.se/cores along with a description of supported configuration & types of constraints. The server can also be queried directly by visiting https://pokebrowse-api.herokuapp.com/api/v1/cores.
Possible use case: You are building and testing a team from scratch. You form a core using some basic constraints. You build a team and start testing. Then, you find a pretty clear problem with the team. You describe that problem as a constraint, add it to your existing constraints (and perhaps revise the existing constraints), and generate a new core. Repeat as long as it helps.
Example from the client:
Looking at the second pairing/"core", it satisfies the constraints because Tapu Fini resists Water+Fighting, Garchomp is immune to electric and Rotom-Wash resists Steel+Ground+Ice.
Some notes:
- TIMELINE/UPDATES -
2022-12-20
The tool is available to anyone and hosted through a client on pokebrow.se/cores along with a description of supported configuration & types of constraints. The server can also be queried directly by visiting https://pokebrowse-api.herokuapp.com/api/v1/cores.
Possible use case: You are building and testing a team from scratch. You form a core using some basic constraints. You build a team and start testing. Then, you find a pretty clear problem with the team. You describe that problem as a constraint, add it to your existing constraints (and perhaps revise the existing constraints), and generate a new core. Repeat as long as it helps.
Example from the client:
Looking at the second pairing/"core", it satisfies the constraints because Tapu Fini resists Water+Fighting, Garchomp is immune to electric and Rotom-Wash resists Steel+Ground+Ice.
Some notes:
- The generated cores are guided by usage-statistics.
- The generator will provide at least one core that satisfies all constraints if one exists.
- The generator currently does not enumerate all possible cores, but provides a solid number of them.
- Resubmitting the same constraints twice can yield different cores.
- The generator generally creates both "more compressed" and "less compressed" cores.
- Users are currently specify at most 6 constraints. This can increase in the future if desired.
- Sets are not suggested, only Pokémon pairings.
- Support for more (gen > 2) generations & formats. Allowing this option would be a matter of adding more formats into a list of supported formats, so it is not a lot of work; however a limiting factor is memory if lots of formats are to be supported. But in theory the generator could be applied to past & current generation VGC, UU, LC - anything with usage-statistics.
- Add more types of constraints. The code is pretty well-equipped to add types constraints if needed, it is mainly a matter of implementing what we want them to do. I'm open to any requests for new constraints!
- TIMELINE/UPDATES -
2022-12-20
- Added core generator functionality
- Added support for Gen 8 OU
- Added support for Gen 9 OU
- Added monthly fetch of usage statistics & ban information
- Ensure that banned Pokémon are not included in cores, even if included in the most recent usage statistics (e.g Flutter Mane, Palafin)
- Made some improvements to the client, that should hopefully help when writing constraints
- Added an option called "allow rare pairings". By default, the generator guarantees that each Pokémon in the core must have at least one other "common partner" in the core, as dictated by usage statistics. Ticking the checkbox "allow rare pairings" removes this restriction.
Last edited: