Integrated Dynamics

Integrated Dynamics

63M Downloads

Crash caused by feature cycle

tobi1449 opened this issue Β· 15 comments

commented

Issue type:

  • πŸ› Bug

Short description:

When my server tries to generate a specific chunk, it crashes with com.alcatrazescapee.cyanide.codec.FeatureCycleDetector$FeatureCycleException: A feature cycle was found.

Steps to reproduce the problem:

  1. No idea how to reproduce this outside of my server :(

Expected behaviour:


Versions:

  • This mod: 1.23.1
  • Minecraft: 1.20.1
  • Forge: 47.2.20

Log file:

Cycle:
At step 9
Feature 'integrateddynamics:tree_menril_general'
  must be before 'twigs:patch_seashell_land' (defined in 'minecraft:deep_cold_ocean' at index 11, 12 and 16 others)
  must be before 'botania:mystical_flowers' (defined in 'minecraft:river' at index 11, 13 and 16 others)
  must be before 'botania:mystical_mushrooms' (defined in 'terralith:lush_valley' at index 16, 17 and 202 others)
  must be before 'twigs:patch_seashell_water' (defined in 'minecraft:deep_cold_ocean' at index 14, 15 and 16 others)
  must be before 'naturesaura:aura_bloom' (defined in 'minecraft:river' at index 19, 21 and 16 others)
  must be before 'waystones:waystone' (defined in 'terralith:lush_valley' at index 26, 27 and 192 others)
  must be before '[Inline feature: Placed Direct{Configured: org.violetmoon.zeta.world.DeferredFeature@7f132fd5: net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration@c0bce26}]' (defined in 'terralith:lush_valley' at index 27, 28 and 195 others)
  must be before 'miners_delight:patch_cave_carrots' (defined in 'terralith:lush_valley' at index 28, 29 and 206 others)
  must be before 'ars_elemental:flashing_archwood' (defined in 'terralith:lush_valley' at index 29, 32 and 205 others)
  must be before 'fruitsdelight:tree/hawberry_tree' (defined in 'biomesoplenty:snowblossom_grove' at index 14, 15 and 22 others)
  must be before 'cyclic:flower_lime' (defined in 'terralith:snowy_cherry_grove' at index 25, 26)
  must be before 'integrateddynamics:tree_menril_general' (defined in 'minecraft:river' at index 9, 10 and 23 others)
commented

Its pretty hard to test/identify the excat cause without testing, can you provide the following it will help a lot :)

  • Upload somewhere your mods folder
  • Explain how to reproduce the issue

If you want to play yourself by editing some of the mods biome files, here is a brief breakdown:


FOC issues arise when the order in which features (like trees, grass, mushrooms, etc.) are listed in the JSON configuration files of different biomes isn’t consistent. Minecraft expects the same features to be listed in the same order across various biome files. If one biome configuration file lists a particular set of features in one order and another biome lists them differently, this inconsistency can confuse the game's engine, leading to crashes.

For example, if biome A has the feature order "trees before mushrooms" and biome B has "mushrooms before trees," this inconsistency can cause the game to crash when it tries to load these biomes. The game's engine struggles with handling these discrepancies, especially when features are interdependent or when their loading sequence affects gameplay mechanics.

To resolve these issues, all biome configurations must have their features ordered consistently. If a feature appears before another in one biome, the same order should be maintained in all other biomes. This ensures stability and prevents the game from crashing due to order inconsistencies.


You can find all the default biome files with orders inside the minecraft jar at data/minecraft/worldgen/biome

commented

Thanks for your explanation regarding the FOCs, that was really helpful.
I've managed to find the culprit, turns out it was an error in cyclic 🀦 (see Lothrazar/Cyclic#2421)
Sorry for the effort this has caused you :(

commented

Thanks for the update! Glad to hear the source of the problem is found :-)

commented

Thanks @F0x06! Do let me know if you need anything from my end.

commented

Thanks for reporting!

commented

According to @F0x06, this should be working now thanks to #1373.

I don't know this com.alcatrazescapee.cyanide.codec mod, so I wouldn't know what's up with this error.
Happy to make changes on my end if you have concrete suggestions.

(As an idea, you could try overriding the integrateddynamics datapack and try out different feature orders)

commented

I've had a closer look at this, and the integrateddynamics:tree_menril_general feature is not even defined in our meneglin.json biome, only in the add_feature_menril_overwolf.json Forge biome modifier. Since this goes through the Forge pipeline, I don't think this is an issue on our end (but I'm open to be proven wrong).

In any case, disabling add_feature_menril_overwolf.json will probably fix the issue, but will stop Menril trees from spawning in the overworld.

commented

According to @F0x06, this should be working now thanks to #1373.

I don't know this com.alcatrazescapee.cyanide.codec mod, so I wouldn't know what's up with this error. Happy to make changes on my end if you have concrete suggestions.

(As an idea, you could try overriding the integrateddynamics datapack and try out different feature orders)

Cyanide (https://www.curseforge.com/minecraft/mc-mods/cyanide) is an helper mod to identify FOC's

I'll try later if I can help to resolve the issue, the goal is to make sure vanilla order is followed, probably something inside tree_menril_general definition

CurseForge
Reduces data pack world generation pain by providing useful, informative error messages. 76.4K Downloads | Mods
commented

How to disable that option? Sorry, I'm not that good at modding, I have the same problem.

commented

I'll try later if I can help to resolve the issue, the goal is to make sure vanilla order is followed, probably something inside tree_menril_general definition

Based on my (limited) understanding of these cycles, we should be following vanilla's order now (thanks to your PR).

But since tree_menril_general is a placed feature, and not a biome, I don't see how this could be a problem.

commented

I'll try later if I can help to resolve the issue, the goal is to make sure vanilla order is followed, probably something inside tree_menril_general definition

Based on my (limited) understanding of these cycles, we should be following vanilla's order now (thanks to your PR).

But since tree_menril_general is a placed feature, and not a biome, I don't see how this could be a problem.

Yes you are correct, I need to experiment to see what's the root cause

commented

@tobi1449 Can you please upload your full crash log to https://mclo.gs ?

Easily paste your Minecraft logs to share and analyse them.
commented

@tobi1449 Can you please upload your full crash log to https://mclo.gs ?

**mclo.gs - Paste, share & analyse your Minecraft logs**Easily paste your Minecraft logs to share and analyse them.

Thanks for looking into this!

This is the crash log for the chunk I've created this report for: https://mclo.gs/mNQhI1m
Since then I've found another crash: https://mclo.gs/iylKV7g (Also caused by the menril feature, but in a cherry_grove instead of a river)

I can replicate these crashes easily, so if there's anything you want me to test, I can of course do that.

Easily paste your Minecraft logs to share and analyse them.
mclo.gs
848 lines
mclo.gs
848 lines
commented

@tobi1449 Can you please upload your full crash log to https://mclo.gs ?

**mclo.gs - Paste, share & analyse your Minecraft logs**Easily paste your Minecraft logs to share and analyse them.

Thanks for looking into this!

This is the crash log for the chunk I've created this report for: https://mclo.gs/mNQhI1m Since then I've found another crash: https://mclo.gs/iylKV7g (Also caused by the menril feature, but in a cherry_grove instead of a river)

I can replicate these crashes easily, so if there's anything you want me to test, I can of course do that.

**mclo.gs - Paste, share & analyse your Minecraft logs**Easily paste your Minecraft logs to share and analyse them.

mclo.gs**Forge 1.20.1 Crash Report [#mNQhI1m]**848 lines

mclo.gs**Forge 1.20.1 Crash Report [#iylKV7g]**848 lines

Thanks! I'll look at it when I can, which mod pack did you use, a custom one?

Easily paste your Minecraft logs to share and analyse them.
mclo.gs
848 lines
mclo.gs
848 lines
commented

Semi-custom, the base was ATM9, but I've added quite a few mods.