We don't track the validation status of a team on the team itself, that would be a bad idea because tech savvy users could edit that themselves. Every time you need to check if a team is valid, we have to run it through the validator.You can run the legality checker during off time whenever a team is modified and you exit the modification pages of the team. You only have to check that team.
We offer the validate button in the team builder so users can check their team's eligibility without starting a battle. Validation is always performed on a team when you try to use it in a battle.“We don't track the validation status of a team on the team itself, that would be a bad idea because tech savvy users could edit that themselves. Every time you need to check if a team is valid, we have to run it through the validator.”
What is the difference between validating a team when you finish modifying it and when you currently validate the team? You have to validate it at some point to determine if it’s playable.
I think you're underestimating the sheer number of validator requests this is. What you're suggesting is that whenever a player makes a change to their team, it checks to see if it is legal in every format. Right now on Showdown, we have well over 150 challengeable formats. Even if this is done in the background, you're now slamming the server with at minimum 150x requests for team validation, the vast majority of which are completely irrelevant to the player. Multiply this by all users editing any team ever.Run the legality checker during off time whenever a team is modified and you exit the modification pages of the team. You only have to check that team.
Teams are stored in your browser, client side. A general rule of thumb for client/server web architecture is to never blindly trust what the client says. We can't just assume any team sent to us by the client with a "validated already" flag is still valid. This is how you get games where people "hack". Its also why all battle calculations/etc are done on the server and never on the client, it prevents hacking/hacking claims.Why does validating the team when you finish modifying it cause the issue you described but your current method of validation doesn't?
What about all the other issues described?Then we don't do validation at all when selecting team based on format, until we decide to play with it.
When "Show all Lower Tier teams" is selected for SV OU, show all SV UU, SV RU, and SV NU teams.
I am suggesting changes based on the problems you described.
In addition, your use case is really niche. Most players don't want to use UU teams in OU or similar. A better option would be to get a sample team for the format to test it out instead.
In addition, if your set on using a valid UU team in OU (or similar situation), why not just change the team's tier to OU or copy the team and make the copy OU? This is probably better as again, your use case is really niche and doesn't apply to the majority of players.
Finally as mentioned, not all UU teams are OU valid (same applies for other situations like UU and RU, RU and NU, etc). One big problem of having invalid teams in the "show valid teams" list is it confuses users and will most likely result in a large number of false bug reports/help room questions.
This isn't an issue persay. It just limits the usefulness of the idea. So it may not be a priority, not that it doesn't work.
Suggestions are not just vetted based on technical feasibility but also design (is this a good thing for the sim and its users? is it useful? will people use it or is it feature bloat/confusing?), and interest of users.
Make a copy of the team you want to use, not all of your teams at once.This would require a copy of every NU team to RU, UU, OU, and Ubers, and similarly for every RU team to every tier above.
I don't want to add a UI element that implies the teams are valid when they aren't even flagged for that tier.We currently have that invalid teams can be selected to play when choosing the format. It would show an error when Battle is selected. This isn't new. Now we would just show all lower tier teams.