The current HM/TM/TR System is very daunting and contains many issues that aren't seen in the main games, such as Pokemon only being able to learn Kanto TMs instead of Galar TMs, or not being able to learn the HM Waterfall, only the TR Waterfall. Generation 9 doesn't make this any better, since they completely scrapped TRs and Infinite use TMs, and went back to Single-Use. It also boasts an insane 171 TMs, much more than any previous generation of Pokemon. I feel that the current system isn't the most effective and future-proof, so I have the following proposition:
Suggestion:
1. Combine all of the HMs/TMs/TRs into a single system instead of sorting by generation.
2. Create 19 different types of TMs which can have their NBTs edited. 18 of these would represent each type, and one would represent the Blank TM.
3. Number all of them based on their appearances throughout the Generations.
4. Make them “data-packable”, which will allow individuals to select what TMs they wish to use and add TMs that don’t currently exist.
5. Have a config option for whether or not TMs are infinite-use or one-time-use.
Examples:
By #3, an example is the following:
Currently, Bubble Beam's ID is pixelmon:tm_gen1{tms:11s}. With a Type-Based System, Bubble Beam would be:
pixelmon:tm_water{tms:1s} since it was the first ever Water-type TM introduced way back in Gen 1.
Following this format, Hydro Cannon would be:
pixelmon:tm_water{tms:Xs} since it was the most recent Water-type TM introduced to Pokemon in Generation 9. I didn't count how many Water-type TMs there are, so X is a placeholder.
Reasonings:
Having a single system would massively reduce the amount of TM items that exist, and would reduce confusion on usage. There really is no need for there to be 7 versions of Sludge Bomb in Pixelmon!
Having the TMs be organized by type can help future-proof the TM System, since all that would have to be done is keep adding to the type list in chronological order, and if a new type is introduced, the new type could be easily accommodated for.
It wouldn’t be ideal to try to follow the numbering that the Games have, since many TMs have had their numbers changed throughout the generations. An example of this is Thunder Wave, which had its number changed five times!
Generation 1: TM 45
Generation 4: TM 73
Generation 7: TM 16
Generation 8: TM 14
Generation 9: TM 082
The “blankimprintrate.json” already exists, and I feel it would fit perfectly in a TMs data folder. It also allows for more customization, similar to how Poke Balls were updated.