User avatar
By SKyTheThunder
#241214 Currently we have various types of drops scattered all over the data files:
  • Pokéloot, Raid rewards & Pokémon drops
  • Boss loot
    bosstiers\ (wrapped into the tier definition)
  • Fishing, Foraging, Headbutt, Rock Smash, etc.
  • Chest loot & Pokéstops

Not only does that spread the same type of data across several (sometimes unintuitive) directories, they also largely use entirely different formats. This is both inconvenient and confusing for anyone trying to check and/or override item drops.

Suggestion: Move the different types of loot into their own sub-folders under 'loot_tables\':
  • Chest loot is already under 'chests\' like in Vanilla MC.
  • Pokéstops are currently under 'special\', but with everything else moving here it might make sense to give them their own 'pokestops\' directory.
  • Pokéloot can be split into a file per tier under 'pokeloot\'.
  • Raid drops would probably be split further, to account for the upcoming Tera Raids. The current ones could go under 'raids\dynamax\type\' and 'raids\dynamax\tier\' respectively, split by Type/Tier.
  • Boss drops can be moved out of the Boss Tier definition to 'bosses\', with the tiers referencing them via their namespaced ID. (for example 'pixelmon:bosses/ultimate')
  • Pokémon drops would also be split per form, under 'pokemon\'. These can then also be referenced via namespaced ID in the respective form definition of the Species files, instead of using the current indirect method of mapping them.
  • Forage, Fishing, etc. might need a bit of a rework due to how complex the conditions are currently, especially for fishing. But if they were broken down into a good number of categories they could be referenced from the Loot spawn file inside their respective folder, for example 'pixelmon:forage/plains/underground'.
    Since Loot Tables can reference each other, generic loot can be included that way. For example the table mentioned above can include 'pixelmon:forage/generic/underground' and then only needs to add the biome-specific drops.

The file tree would end up looking something like this:
Code: Select alldata\pixelmon\loot_tables\
┣━ blocks\...
┣━ bosses\
┃  ┣━ common.json
┃  ┣━ uncommon.json
┃  ┗━ ...
┣━ chests\
┃  ┣━ ultraspace\...
┃  ┗━ ...
┣━ fishing\
┃  ┣━ lava\...
┃  ┗━ water\...
┣━ forage\
┃  ┣━ generic\
┃  ┃  ┣━ land.json
┃  ┃  ┗━ underground.json
┃  ┣━ arid\...
┃  ┣━ forests\...
┃  ┗━ ...
┣━ headbutt\...
┣━ pokeloot\
┃  ┣━ tier_1.json
┃  ┣━ tier_2.json
┃  ┗━ ...
┣━ pokemon\...
┣━ pokestops\...
┣━ raids\
┃  ┗━ dynamax\
┃     ┣━ type\
┃     ┃  ┣━ bug.json
┃     ┃  ┗━ ...
┃     ┗━ tier\
┃        ┣━ 1_star.json
┃        ┗━ ...
┣━ rocksmash\...
┗━ ...