TerraFirmaCraft

TerraFirmaCraft

2M Downloads

JEI crashes when adding mods that override TFC fluids to an existing world

Omni-MC opened this issue ยท 9 comments

commented

Describe the bug
Make sure to include:

  1. Expected to see the alloy ratios for bronze ingots
  2. Game crashed
  3. latest.log
    3a. Crash report https://paste.ee/p/VIbsr

To Reproduce
Attention to detail is important!

  1. Attempt to view the recipe for a bronze ingot using JEI

Meta Info

  • TFC Version: 0.29.3.118
  • VanillaFix 1.0.10-99 was installed and the log may include that along with many many opengl errors.
  • I assume TFC: Metallum 1.0.2
commented

Further info: This happened using Poetica 0.7.2 https://www.curseforge.com/minecraft/modpacks/poetica/files/2884869

commented

I'm still trying to pinpoint what's the cause (i have a guess tho). But i can tell you this isn't JEI incompatibility or TFC Metallum, some other mod(or maybe a mix, which would be even harder to find) is probably taking our metal property from fluids, which would cause this NullPointerException.

My last test, i installed these mods:

  • FoamFix (0.10.10)
  • Phosphor (0.2.6-build50)
  • RandomPatches (1.21.0.0)
  • Tinker Contruct (2.13.0.179)
  • TexFix (4.0)
  • TFC: Metallum (1.0.2)
  • TFCTech (1.2.6)
    No crashes, JEI pages worked fine.
commented

In theory, we have a fluid wrapper system that is robust enough so that if another mod decides to override or replace our fluids, we can still map it to metal properties. My instinct is that somehow the mold was trying to be rendered with a non-metal fluid, or it got filled somehow with something that TFC didn't recognize as a metal.

commented

Based on an extensive discord discussion + series of tests, I believe we've isolated the problem:

  1. Create a new world, with TFC (+ other mods)
  2. Add a mod that registers fluids with the same name as TFC
  3. Load the existing world. Forge will emit message of "missing minecraft:blocks, tfc:fluid/X"
  4. In this world, despite the messages, the fluid block visible in JEI is TFCs, and viewing it in molds causes a crash because it's not the fluid instance that TFC is expecting.

Notable points:

  • It does not happen in a new world created with TFC + any other mods that add fluids, only when a mod is added, forcing TFC to not register previously added fluid blocks.
  • TFC does conditional fluid block registration, and in almost all cases will default to using another mod's fluid instances if they register them first (highly likely).
  • Fluid / fluid block defaulting, and metal property assignment works as intended with other mods fluids.

Resolution:

  • This is very likely not something that will get fixed on our end. The fix is to not remove mods that duplicate TFC's fluids. And/or just create a new world.
commented

I'd like to add that this issue not only causes the crash with JEI mentioned in 4, but it also breaks the metal handling for the inflicted items. They can not be melted, or cast.

commented

This crash happens not only if you add mods and enter already created world. It happened to me with new world too. Restarting the game fixed that. I don't know if this was stated before, just clarifying.

commented

The issue is still here, it seems. I've just had a crash after installing GregTechCE and looking at a TFC copper ingot recipe.

https://paste.ubuntu.com/p/PBCKn2FRPX/

commented

Remove Nuclearcraft and tell me what happens.

commented

And voila, the problem is gone. Dust to the wind.

Is there a way to fix it without removing nuclearcraft? Or should I post this on their github as well? Because I kinda want to keep playing technodefirmacraft...

Edit: Hmm. The milk texture is broken as well.

Edit 2: The crash persists even after creating a new world.