Game Error Loop
tkxyooj opened this issue ยท 5 comments
I'm creating a modpack with orestages. Loaded all the mods and configurations without any issues. I create a whole new world and within minutes, I am thrown into a loop where the game becomes unplayable. I can't issue commands, I lose inventory, and hotkeys no longer work. The world does not instantly crash as I can move about in the loaded chunks, but that all I can do. Looking into the the logs, I see that orestages runs into a null exception and goes into a loop. It causes the log file to jump in size up to 100+ MB. I was able to copy up the end of the loop and at the end of copy, the same error is looped through. Not sure what the issue could be. I updated to the latest version of gamestages, bookshelf, and forge and still received the same error. Reverting my versions back to before the update and still the same error. Error can be found at this link.
This is the repository of the scripts being used. There doesn't look to be looping blocks, but I could be wrong.
Can you post the script you are using? This is a case of your script hiding a block as itself, or hiding a block as something else that is hidden by itself.
Re configuring the scripts got to the loops to go away. It was an issue in the script to hide the grass blocks and another line to hide the replacement block. I've come up with a new workaround that fits into the lore of the pack using recipe stages so I took out the line to hide the replacement block. It was odd that this issue only appeared recently, as I was able to use the script up until I decided to update gamestages and orestages. But anyways, the issue is solved.
Thanks for the followup. Could you write me a few lines of script which can be used to reproduce this issue? If I have a way to reproduce the issue I can create some code that will detect these issues and alert the pack maker. I may even be able to write something that allows the hierarchy of restrictions to work as you want.
//grassblock stage
mods.orestages.OreStages.addReplacement("grassblock",minecraft:dirt:0, contenttweaker:driedearth);
//driedearth reversal
mods.orestages.OreStages.addReplacement("driedearth",contenttweaker:driedearth, minecraft:dirt:0);
Those were the conflicting lines of code. The thought process behind the code was to replace dirt with dried earth and when players complete a certain task, they would get grass back, but because the task is gated behind other tasks, they would have been using dried earth for a time. The second line of code would be then to replace all the dried earth that had been used with dirt. I can see that being an issue now with the game trying to loop back on itself to replace both dried earth and dirt at the same time as there is no trigger to say do one line before doing the next.