[ACE] Pre-Release 0.9.2 - Out now!

I think @Pawel_Malecki has solved a similar issue in his LostEms. It requires a bit of simple LUA.

1 Like

LUA… my worst enemy hahaha

This is actually magic I no longer have control over, my solution doesn’t work with new games with the unstable ACE branch, I can totally get it to work with saves but not from the beginning, and it wasn’t me but @BrunoSupremo who wrote which events to listen to, I just wrote the functions.

1 Like

“sometimes” depends on what over mods you have. i just havent found a better way to do it but i try to dodge it as much as i can also i dont do overrides with it, just mixins.

I suppose it comes down to the question that was raised a while back, “Should I update my mod to be compatible with ‘insert_name’ or should that Creator update their mod to be compatible with mine?”

It’s something people were saying, like should I make something in their mod work with mine? Is that up to me to update, what if they ask the other modder first and they make my mod work with theirs?

For the most part in the past when people have commented on my mod post, I’ll look at the other mod and usually do a mixinto where it’s needed. Sometimes even, as with the auto_harvest mod, I’d have a mixinto of their file mixing into mine. I didn’t feel comfortable asking the creator to update their end to be compatible with mine so I did it on my end. But that’s one I feel like should have been on their end simply for the way it was done. (not sure if I can explain it in text as well as I could verbally)

I wouldn’t - personally - mind adding some compatibility support in ACE. The first thing we could do, entity-wise, is create mixintos for whatever we can create mixintos - for example. This would already fix several possible issues, since base mixintos can be easily used by modders. For example, our next version will include mixintos for all weapon and armor types (compatible with ACE); so you just need to add that as a “mixin” in the start of your entity json and if ACE is present, your weapon/armor will be ACE-fied. But that doesn’t solve all the issues… Unfortunately, due to some late-discovered issues with mod loading, manifests, etc… Modding in SH isn’t as compatible as we once hoped. And honestly, I don’t think the SH modding scene is huge enough for that kind of support to even be a problem.

It could easily be done by adding a folder where mods would add the files they want/need inside of ACE - Not touching ACE’s manifest but calling these files in their own manifests (as mixintos/overrides to their own files); if ACE is not present, the files wouldn’t be found and all would be good. It wouldn’t affect ACE at all except for a little increase in download size (but irrelevant, honestly).

A few issues can stem from that, however.

  • What if the mod owner really needs to update their “compatibility files” but ACE has no upcoming (at least not anytime soon) update?
  • Who would manage/control this modder-ACE relationship? (I can guess - me :smiley: )
  • What kind of rules would be necessary for it to not become a burden o ACE’s end? Maximum number of files or file sizes? Etc…?
  • How to prevent it being abused? (ie: compatibility that could easily be done through other means being done like that for “laziness”?)
  • What if something breaks/etc, is ACE’s fault? Could ACE remove a modder’s compatibility patch to preserve its own stability/integrity?

Of course these are issues that can be fixed, but issues nonetheless.

Like I said, I wouldn’t mind. Yes, I understand that part of team (me included) believes that compatibility issues should always be solved on the other mod’s end and ACE itself should not contain this sort of mod-specific fix; but that opinion is also founded on the hypothetical scenario that any compatibility issue can be fixed on either side… Which is not the case.

We do want the more people possible playing ACE, and a measure like this would definitely be great for modders - especially because it could even be used to “patch” things out of ACE if a mod desires or modify ACE itself, etc…

But for it to be viable, it requires some thinking, discussion and most importantly - it shouldn’t hinder development time of ACE itself; so the modders themselves would be responsible for creating all the files and such - we’d basically just have them inside our mod folder to be called by their manifests.
For example, the ACE folder could have a new folder called “compatibility_patches” and contain a folder for each mod (with their mod’s namespace) that their owners provide.

So, this is an idea to think about. Is it ideal and perfect? No – but I do believe that at this point, with the Radiant ship already sailing to the elven lands, we should prioritize realism and practical solutions rather than being sorry for certain systems that don’t work as we hoped for :slight_smile:

and if we ever find better solutions, then we’ll kindly remove your patches and make you all work with these :heart: :smiley:
(just kidding – kinda)

1 Like

I could totally provide a folder with the files I need changed within my mod when ACE is active. right now it’s legit 4 files.

OK, so today I found a JSON way to do that which works for both new and saved games. Call it a tandem injection because it was inspired by a tandem chromatography method I was studying for my exam :grin:

"mixintos": {
   "your_mod/file/to/be/altered": "supported_mod/unused/path"
},
"overrides": {
   "supported_mod/unused/path": "your_mod/file/to/be/applied"
}

This abuses the fact overrides can be done only for namespaces of loaded mods, so if a mod isn’t loaded paths for such mixintos are not created and they are ignored; if supported mod is loaded then mixintos work. Tested that with LostEms, next version won’t require Lua to support ACE.

It also seems to be the only way to alter recipes for both new and saved games due to the way they are cached.

8 Likes

ooh! just did a test on my end. I only need to override one of my files when ACE is active for the recipe to work.



if this is something ACE is willing to do, let me know when you want the folder

EDIT I’ll try what @Pawel_Malecki mentioned first.

1 Like

OMG! That’s a sneaky way of getting around it. I guess I don’t need ACE to do anything then, you helped me to do it on my end. :wink: good looking out.

I mean, from what I can understand - planting the files with overrides and mixing them all through your own manifest… This is amazing, it can be used for a lot of compatibility matters - more than just recipes. It’s a damn good discovery, @Pawel_Malecki

1 Like

yes! I think the things I saw in @BrunoSupremo & @Wouter_Sikkema 's mod might even be able to use this! Awesome trick!

1 Like

Nice! Gonna try it and bookmarked it, you clever fox! @Pawel_Malecki

1 Like

doesnt seem to work for me?
i tried

"mixintos": {
   "nordlingmod/jobs/blacksmith/recipes/recipes.json" : "stonehearth_ace/nordlingmod/jobs/blacksmith/recipes/recipes_ace_compatabillity.json": "stonehearth_ace/nordlingmod/jobs/blacksmith/recipes/recipes_ace_compatabillity.json" : "nordlingmod/jobs/blacksmith/recipes/recipes_ace_compatabillity.json"
},
"overrides": {
  "stonehearth_ace/nordlingmod/jobs/blacksmith/recipes/recipes_ace_compatabillity.json" : "nordlingmod/jobs/blacksmith/recipes/recipes_ace_compatabillity.json"
}

and it doesnt seem to work? or should ace be added as a dependency for this type of magic to work?

Your mixintos seems to be a bit messed up? You repeat the stonehearth_ace file like 2 times and then your own again :smiley:

Github is a bit behind the times as I forgot to push before fiddling with it…

"mixintos": {
         "box_o_vox/jobs/necromancer/recipes/recipes.json": "stonehearth_ace/box_o_vox/necromancer/ace_recipes.json"
    },
"overrides": {
         "stonehearth_ace/box_o_vox/necromancer/ace_recipes.json": "file(jobs/necromancer/recipes/ace_recipes.json)"
    }

@Wouter_Sikkema did you get it to work? mine works fine.

[EDIT] Not sure why this comment replied to Pawel

1 Like

Yeah had a stupid typo, pawel spotted it and fixed it so it works fine, it works like a charm :slight_smile:

1 Like

awesome! so excited that it works! I might be able to “wrap” things up with my mod and slow down on updates. Working with Owl this weekend to get some of the split mods back in order for those who don’t like my complete mod(it adds so much, I get it) We want the most amount of people to play with the Necromancer so…