Hot loading manifests rules are changing!

[Update]

So, continuing my mod, one thing that was missing is that I created a different type of Smokehouse for the Rayya’s Children (that better fits their architecture) and needed to put it in the game should the player play with them. I decided to do that by creating a mixinto to the rayyas_children manifest.

Once again the “mod load order” became an issue. Trying it out with the mod named “trapper_plus” didn’t work, but changing it to “_trapper_plus” solved the issue.
Not having to arrange a load order is something good and I support it, it makes things much easier for the end user, encouraging mod usage;

On the other hand, modders should be given some form of control/bypass this without really having to rely on mod naming.
If is there one API/mod support change/etc that I could already request before 1.0/1.1 is this :merry:

How to do it is something I’m not sure of - I can come up with a couple of ways but I’m pretty sure proper engineers could figure out something;

my solutions would be:

  • Either some sort of flag in the manifest that signals this mod needs to be loaded first; That is, mods with that flag will be run immediately after radiant mod, just like stonehearth is. Something like this:
{
   "info": {
      "name": "Mod",
      "namespace": "mod",
      "version": 3
   },
   "default_locale": "en",
   "priority": true,

Should two or more mods have this flag, then the default alphabetical order should prevail but considering that this is mostly useful for very specific cases or core/base mods, it is supposedly something that shouldn’t be so frequent.

  • Create some sort of ‘array’ that could point out manifests that your mod require to be re-loaded. Such requirement should, of course, disregard itself (and just reload aliases, mixintos, etc…) to avoid possible loops and exceptions. But basically just an array that could be used to say “hey, my mod modifies this and that, so they should probably be reloaded”

Something like this:

{
   "info": {
      "name": "Mod",
      "namespace": "mod",
      "version": 3
   },
   "default_locale": "en",
   "force_reload": [
      "rayyas_children", "archipelago_biome"
   ]

Then again, these feel like very… makeshift solutions :joy:
As I mentioned, they’re mostly simple ideas regarding something far more complex and I’m pretty sure proper engineers can think of better and more elegant solutions. I mostly just wanted to transmit the idea and the necessity of this;

Of course, for now I can just name my mod _trapper_plus and deal with this; But this could be useful in the future for a variety of reasons.

Thanks!