Applied Energistics 2

Applied Energistics 2

137M Downloads

Custom Recipes for Inscriber breaks JEI integration

davqvist opened this issue ยท 19 comments

commented

JEI 3.14.3.403
AE2 rv4-alpha11
Forge 12.18.3.2221
Minecraft 1.10.2

I added custom recipes for the inscriber with the config option in changing recipes. This worked fine for a long time, but now a recent update of JEI breaks the JEI integration, not only the changed recipes are not shown, all inscriber recipes don't show up in JEI anymore. With JEI 3.14.3.401 it still works for example. I posted already on the JEI github as its update broke it, but mezz told me to report here.

mezz/JustEnoughItems#715

It would be nice if you could contact mezz (in the linked issue) and figure out what changed and broke it. If you need more info from me, let me know.

commented

Works just fine with JEI 3.14.3.403 for me.

commented

Okay so this is the weirdest thing ever. I can't figure out what's going on. I've spent now several hours on this. Let me explain in detail, maybe you know what's going on.

I tried to isolate the problem by creating a new instance with only JEI, AE2 and Forestry (because it's needed for the changed recipes) and suddenly custom recipes weren't working at all anymore. I've noticed that the recipes weren't exported to the generated folder even though I've told it in the config. I've tried to export the recipes folder from the jar manually, but on start the generated folder was just emptied. I've read in the README that it might be a rights issue, but I haven't changed anything and toying with rights didn't change anything. In the end it turns out that I named the profile in Curse "AE2+JEI" and it creates a folder with the same name and the "+" in the path messes AE2 up (I'm on windows btw). Creating a new profile without special characters solved the issue (should I create a new bug on github for this?)

After finally getting this work. it turned out even with the new JEI the recipes were showing up in JEI perfectly fine. I tried to add some mods that are in my modpack that could be the problem like JER, EnderIO because of the silicon, ModTweaker and such, still working. I copied the JEI and AE2 configs from my modpack, still working. I then deleted the generated AE2 recipes from my modpack to regenerate them, still not working.

Now it gets confusing. I copied my modpack and reverted to JEI 401 again and it's not working there now either, so that isn't the problem at all. To make the confusion complete the player that tests the modpack I'm working on on the development server contacted me the recipes were working later and now they aren't again anymore, but I haven't changed anything on the server at all in between.

I'm running now out of ideas what to do as it's seemingly random. Only facts are: Recipes were working 2 versions of my modpack ago (I can confirm if I import the backup into Curse again) and suddenly they are not. I didn't change anything in AE2 since then and the only things I changed in the config in JEI was adding items to the hiding blacklist) other than that I of course updated JEI. It seems to me that another mod is messing things up but other than going through one mod one at a time I have no idea what to do.

So if you have any idea after that description or can give me any idea what I should try or any info I can give you to figure it out, let me know, because I'm confused.

commented

"+" is not really a special character, it is pretty much the same category as "-" and I use that pretty frequently as part of a profile. I also changed one of my profiles to contain a "+" and it worked fine (vanilla launcher).

Enableing the debug logging inside our config and posting the full log might be useful. It should log the exception in case it was unable to extract. Under the assumption that curse itself does not fuck up. The vanilla launcher updated recently and as far as I know, the curse one just wraps it. So maybe it is actually a bug with curse. Not that I would be surprised about it.

Custom recipes and the built in ones are exactly the same. There is nearly no difference between them (except prefering the user over generated folder when loading each file). Therefore missing them in JEI is actually just an indication that they are missing completely and even the machines will not work.

commented

Oh yeah true, "+" isn't a special character, but it was the problem because creating a "AE2" profile then worked. It gets more confusing.

Here is the log with debug on: https://gist.github.com/davqvist/45315fa3197bd88cfea632df8b8b9228

Regarding your last sentence, I like to reiterate that all Inscriber recipes can't be shown in JEI not only the custom ones that I changed when it's bugged, but the recipes still work.

commented

I do not see anything obvious in the log. Also it should be the minimal setup and a fresh instance. Just to prevent curse being an issue, using the vanilla launcher might be wise.

Pretty strange with the JEI recipe. Is it only limited to the inscriber? Or also the Grindstone and normal shaped/shapeless recipes?

Modtweaker could also be a candidate for issue. Under some conditions it reloads the JEI list, but also removes recipes from it while doing so. IIRC it has some issues when mods use recipe wrappers (which we do).

commented

Hours passed again, and I think I have figured it out and the result is ... weird.

I added mods to a new instance with Forge 2221 like 10 at a time to find which mod breaks it and broke it down that whenever I added TechReborn to the pack it didn't work anymore, so then I created a new instance with only the neeed mods (JEI, AE2, Forestry and TechReborn) and it unexpectly still worked. Well then it has to be a three way interaction: Forge + TechReborn + ?

I left TechReborn in the big pack and removed mods until it worked again. After removing the first mod, Advanced Solar Panels it worked and putting it back in broke it again. Well then I added IC2 and Advanced Solar Panels to my new instance with the few mods and ... it worked. No way this is 4 way interaction. And then it dawned to me. It has to be size related not mod related. I took the big pack again, put Advanced Solar Panels in, and removed one of the biggest mods, Immersive Engineering. And sure enough it worked again. Not sure if it's related to the size of the mods or the number of the mods, but one of the 2 it has to be because whenever my pack reaches a specific size it breaks. Currently I have 48 mods and 48 MB and it works, adding Immersive Engineering (4 MB) breaks it.

I know this result is weird, but I can't explain it otherwise. So is this a JEI bug, an AE2 bug or a Forge bug, that is the question?

commented

Okay I found something out. I imported the modpack version 2 versions ago when it still worked and gradually changed things to match the current modpack version. This means 4 folders, the mods folder, the scripts folder for modtweaker, the config folder and the resource folder for the custom main menu and the FTBU guide. And still it was working. Then I finally updated Forge from 12.18.3.2215 to 12.18.2.2221 and then it broke. Reverting it back to 12.18.3.2215 made it work again. The other instance though with 12.18.2.2221 Forge and only a few other mods it works though, so it has to be Forge + something other.
I will now test which of the 3 version of Forge breaks it and trying to figure out what the other thing is and report back.

commented

Oh I missed your previous answer. So Inscriber and Quartz Grindstone are broken, normal recipes and info tabs like on Fluix works fine.

Sure if I keep Curse being the issue in mind, if in need I try to switch to Vanilla Launcher. But I figured already out that the issue starts from Forge 2217. Forge Changelog says: "Fix some resources that are never closed, close in a finally block (#3637)" Not sure how that could be the issue though.

commented

Maybe you could try adjusting initial memory and max memory for java as well as upsize the permgen space. I say this because the behavior seems related both to the number of mods and to later changes in Forge about memory allocation/free of some objects.

commented

Ok, this is extremely strange. With this behaviour, I pretty much rule out anything caused by AE2 itself or any other mod.

It might be a forge bug, but I would highly doubt it.

Is there any chance that you can run it on a completely different PC or maybe inside a VM?
Not that some quota does mess with it. Or something else.

commented

I know this is strange, but I can't come to a different conclusion.
Well I run the modpack on a server and everybody is having the problem, so I doubt it's just me.
What should we do now to figure it out? What I will do is more tests when I have time to confirm that Forge 2217 introduced this issue.

commented

@leagris I will do.
@Ommina It's because I setup custome inscriber recipes and it's also breaking Grindstone recipes. I think if disable the custom recipes all is fine.

I probably won't have time until Monday, will report back then.

commented

There is no such thing as permgen and would the heap space run out during loading, you will certainly be unable to load a world without triggering an OOM.

@davqvist Is there a possibility to provide a archive with all the mods? Ideally something along the line of a "mods" folder with just enough mods to not trigger it and another folder with some mods for "pick one to trigger it". If there is a reliable way to reproduce it.

commented

What I don't get about this, and the proposed cause, is why the inscriber recipes specifically?

If the pack is running into some sort of memory constraint, surely it would additionally manifest itself in any number of other ways, not just "fail to display items for one machine from one mod in JEI" and then behave fine.

Which isn't to say I have a better explanation, sadly.

commented

Okay I just confirmed it. The following archive with Forge 2221 doesn't work, but removing a mod (for example Immersive Engineering) or changing to Forge 2215 does work. https://drive.google.com/file/d/0BzovnuYeeSkiVDFNdEVVdnRxek0/view?usp=sharing
This is the custom recipe file I'm using (under recipes/user/materials): http://pastebin.com/mnsRpS0m

Let's see if you can replicate this.

commented

It seems that it cannot lookup the forestry items at all.

But due to whatever Forge, FML or ForgeGradle bug, I cannot run most mods indev. Thus it cannot be fixed for now.

commented

I have tried to figure more out in the mean time. One modpack dev tester switched his PC (from desktop to laptop or vice versa, can't remember) and on his new computer he can see the Inscriber recipes in the modpack (which means newest Forge and lots of mods) while on the old one he can't with the same modpack. We started trying figuring out the differences and adjusting things, but haven't finished, but it has of course the same config, both using Curse and so on. He has the newest Java version on his new PC but I updated my Java as well to the newest without luck. We played around with adjusting allocated memory without luck either. I'm running now out of things to test. He also insists to be sure that a couple of days back on his new computer he wasn't able to view the same recipes although it works now. He hasn't changed anything though. It really seems to be kind of random and it doesn't make any sense. Also I found now out that in my modpack the JEI recipes of the Molecular Transformer from Advanced Solars now stopped working as well and I can't seem to figure out the cause either. Not sure if this is related or not.

commented

So after the Molecular Transformer recipes from Advances Solars now broke as well, I have heard about a different case that seems similar. Draconic Evolution JEI integration was also broken. I think it was assumed that Crafttweaker/Modtweaker was the issue, but Jared found out that it was JEI loading order, changing the JEI loading order after Immersive Engineering seemingly fixed the issue. See Draconic-Inc/Draconic-Evolution#602

So looking back and knowing that, removing the 3 "random" mods from the pack where this seemingly fixed it, I now notice that all the 3 mods have custome JEI integration and this means it could be the same issue that is due to JEI integration loading order. It's a shame that you can't run most mods indev but that's how Jared found out that this is the issue. Not sure how to do it otherwise, I probably should talk to mezz again.

commented

The issue is fixed. Apparently it was Immersive Engineering having a bugged JEI recipe and dependant on the loading order of the JEI recipes it broke other recipes.