Project MakeMyTeam - Optimized Team Generator and Building Help [Complete!]

Status
Not open for further replies.
(edit: 5/6/2018, fixed a dumb bug so this can now use the most recent usage stats. It also doesn't break when a Pokemon set disappears from usage.)
MakeMyTeam
Optimized Team Generation, Pokemon Suggestions, and much more.

MakeMyTeam (mkmt) is a comprehensive Computer Teambuilding System. It is a tool to help build Pokemon teams.

Currently, only the OU tier is supported. The name is a pun off of "BreakMyTeam", which is the name of Orda's weakness checker, and also originates from Zarel's SweeperCalc.

Functions
  • brmt (Weakness Checker)
  • Metagame Coverage Rankings List
  • Pokemon (Coverage) Data
  • Partner Finder
  • Core Builder
  • Team Generator
  • Team Completer
  • Replacement Suggestor
  • Custom Generator
  • Counterteam Generator
  • Team Comparer
  • 2-Team Check Map
  • Usage Stats By Set
Basic Explanation

The program uses the checks compendium to create a map of the coverage of every Pokemon in the metagame (what every Pokemon checks and counters, and what checks and counters those Pokemon). It also uses the usage stats, moveset usage stats, and heuristics which map the checks compendium to the moveset usage stats to find the usage of each individual Pokemon set. From there, it's possible to see what percent of the metagame any individual Pokemon can cover, and more importantly, the percent of the metagame covered by any team, which serves as a form of rating. From there, the generator can sort teams by metagame coverage, and output the highest rated teams.

Please note: OK, I'll be honest. The generation turned out to be a lot worse than I had hoped for, but I gave myself an impossible task to begin with. Don't expect great results from this program. This is just some project I worked on to learn to code, and I figured some of you would be interested in checking it out, even if it's not used for real teambuilding.

However, the one thing I believe the program does reasonably well is counterteam offensive pokemon.

Downloads/Links/Versions

The complete webapp version is now out! (This may not work properly on Safari)

Link: https://mkmt.herokuapp.com/

(It may take a minute to load if the server is sleeping)

github: https://github.com/UberPyro/MakeMyTeam

Note: all of these run in a command shell. Also, these may have to have their stats updated (read the documentation in each one to know how).
mkmt 3.0 (this is mostly the same as the webapp but I think the counterteamer is bugged).
mkmt 2.0 (inferior version but I'll leave it here if you want... the way the generator works is a bit different)
(version 1.x is just a massively inferior 2.0)

Some Other Info

Thorough explanations of how to use the program and how it works are on the website itself.

Note: The program is able to generate entire teams by itself. Those teams are bad. It is actually very difficult to rate teams using the checks compendium due to its nature of having a lot of missing data (and there's no real way to fix that). The program will generate better teams the more you give it guidance. You have to work with the program. Have it generate smaller groups of Pokemon at a time, give it good Pokemon to start with, consider all the options it asks for, and consider all the teams it generates.

Where this is headed: I plan on making a better version of this someday (because let's be honest, the team generation is pretty bad in this one). I think the next step is to be able to chose a role for each Pokemon it generates, which would significantly reduce the time complexity and give it a lot more guidance in its selections. Additionally, I want to come up with a better way to measure metagame coverage, perhaps using the damage calc to replace/patch up the checks compendium, and also taking into account movesets like if a Pokemon can recover stall another another, or if a Pokemon needs to set up to be able to check another.

If you have any questions, comments, suggestions, fixes, or anything, then you can contact me on PS! or Smogon. I don't have much time to work on this at the moment, but I'll take care of bugs and things like that.
 
Last edited:
This is completed, now that it has a text-based interface and is deployed on a web app server. However, it's likely to have many bugs. Like I said in the main post, if you have any fixes/suggestions/anything, be sure to let me know.

Edit: To make something confusing even more confusing, my explanation for interpreting what kind of teams will be generated was all flip-flopped. That's fixed now.
 
Last edited:

Leo

after hours
is a Site Content Manager Alumnusis a Forum Moderator Alumnusis a Community Contributor Alumnusis a Tiering Contributor Alumnusis a Contributor Alumnusis a Smogon Media Contributor Alumnus
MPL Champion
Hey, nice tool, good job man! I got a team with 2 zmove users when using the cteam function, idk if theres a chance of getting that with the regular team generator but make sure to check whats wrong with the zmove users limit, thanks
 
Hey, nice tool, good job man! I got a team with 2 zmove users when using the cteam function, idk if theres a chance of getting that with the regular team generator but make sure to check whats wrong with the zmove users limit, thanks
Good catch! I've now added z-move users to the dupe filter.

(sorry for accidentally killing the server for 15 minutes in the process).
 
I have been looking and it seems perfect for people who are just starting out or just getting away. It has many options as c team although I have similar teams. Overall it's interesting.
 
Great tool, but it seems to have a bit of a CM Blissey fetish...
It tends to have a lot of random fetishes. Behavior like this derives from using the checks compendium to describe the coverage of every Pokemon: there's missing data among other things, and to make a long story short, it thinks some Pokemon are really good when there aren't. For example, Charizard-Mega-Y seems to have an oddly high amount of 'GSI to' data, and this causes it to be put on stall (a place where it really doesn't belong). In the case of Blissey, the teambuilder probably likes it since it can counter certain Pokemon which have very few counters (listed, if not in reality), for example Gengar|Scarf has [GSI: Muk-Alola|av, Blissey|cm] as its only GSI data, and the teambuilder will try to GSI as many Pokemon as possible when generating stall. These fetishes are probably always going to exist and that's why there's a blacklist option. But I've heard that some players are working on a new checks compendium, and hopefully that will hammer out its suggestions a bit more while also updating it for the current metagame. And I warned against generating teams of 6, didn't I now? This tends to be less of an issue when generating smaller numbers and especially when completing teams.
 
I keep getting server error 500
It works for me right now. Maybe the server was restarting or something when you tried it. Is it still given you there error? If it is then its probably due to some incompatibility that can't fix :/

EDIT: Actually it wouldn't give you a server error 500 if the server is down, so perhaps it was due to an invalid input, like what Red Metal said below.


10/10/2017 - Bigger Edit: This is has now been updated to use an up-to-date checks compendium!
This may have broke some things.

Edit: Indeed some things were broke: I fixed a bug with trailing commas.
I found a bug with the checks map but its too complicated for me to care about atm :/
 
Last edited:
I know that you a Server Error (500) if I try to use the Core Builder with Blacklist/Whitelist Mode set to Whitelist and you have fewer pokemon whitelisted than the size of your core.
 
Hey UBERPYRO the builder does not seem to support mega diance. That's all for now.
Mega Diancie is not in the new checks compendium, so it is what it is for now unfortunately. I might ask around and try to get that added into the comp.

Edit: So the recent update to the new compendium seems to make the program want to put stall pokemon on offense. Well, that's a little unfortunate. If you guys want to absolutely force the mkmt to only use offensive Pokemon, you could change the weighting to something like [1.0, .5, -.5], although this may also interfere with some bulky offensive Pokemon. (Use custom generator to generate full teams with custom weightings, if you care).
 
Last edited:
Status
Not open for further replies.

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

Top