CraftTweaker

CraftTweaker

151M Downloads

[1.12] Priority preprocessor adding/removing recipes in an unintuitive (wrong?) order

MojiRS opened this issue ยท 3 comments

commented

Issue Description:

Script loading doesn't appear to follow the expected/proper priority loading order.

What happens:

In Conduits.zs (priority 100), I add two machine recipes. In Compat\AppliedEnergistics2.zs (priority 99), if AE2 is loaded, I remove and replace those recipes. In-game, the Conduits.zs recipes are present, and I get a warning that the recipes I tried to remove in AE2.zs were not present (implying AE2.zs loaded before Conduits.zs). The especially strange part is the recipes added by AE2.zs are not present, since they should exist regardless of the order the scripts load in.

If I change AE2.zs to priority 101, only the AE2.zs recipes show up in-game (implying Conduits.zs loaded before AE2.zs), and I still get a warning that AE2.zs couldn't find the recipes to remove (even though it presumably did remove those recipes).

What you expected to happen:

When AE2.zs is priority 99, Conduits.zs would load first, then AE2.zs would later remove its recipes and replace them with alternate recipes.

Scripts used

https://pastebin.com/7Hg1PcRm (lines 56 and 104)
https://pastebin.com/a2Nm0UR5

crafttweaker.log file

https://pastebin.com/PiZ1YQNE (AE2.zs priority 99)
https://pastebin.com/31RkEkDY (AE2.zs priority 101)


Affected Versions

  • Minecraft: 1.12.2
  • Forge: 14.23.5.2854
  • Crafttweaker: 4.1.20.574
  • Using a server: No
commented

in 1.12 additions and removals are staged, removals ALWAYS happen before additions, regardless of priority (keep in mind, we store the actions till postinit before we apply them), so it is impossible to remove a recipe you added, you should just not add the recipe to begin with.

All other versions of CraftTweaker aren't like this though, since they don't need to be staged at all.

commented

Ah, I see. Thanks for the quick response! In that case, might I suggest adding a note about that to the documentation? (Unless, of course, there already is one, and I just totally missed it.)

commented

I don't believe it is mentioned in the docs, but you are maybe one of five people who have ran into an issue with it (not saying that it doesn't need to be mentioned in the docs, just saying that it hasn't been a big issue so far)