Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create ore crushing uses tag inputs for different stone variants. #51

Closed
MrFastZombie opened this issue May 11, 2023 · 4 comments
Closed

Comments

@MrFastZombie
Copy link

MrFastZombie commented May 11, 2023

Version

1.18.2-0.3.10

Describe the bug!

Using Gold as an example: Almost Unified uses forge:ores/gold as the input for create:crushing/nether_gold_ore. It also does this in the normal ore recipe and the deepslate ore recipes, meaning that normal ore could use the deepslate recipe and deepslate ore could use the normal recipe.
javaw_JXhRDOz8LY

This issue also seems to happen with some other crushing recipes.
Pictured below are create:crushing/emerald_ore & create:crushing/deepslate_emerald_ore.
image

EDIT: Here's my ignored recipe list, showing all the affected recipes I could find besides the ones I already modified (All the vanilla metals & Create Zinc).
["create:crushing/deepslate_emerald_ore", "create:crushing/emerald_ore", "create:crushing/nether_gold_ore", "create:crushing/coal_ore", "create:crushing/deepslate_coal_ore", "create:crushing/diamond_ore", "create:crushing/deepslate_diamond_ore", "create:crushing/lapis_ore", "create:crushing/deepslate_lapis_ore"]

Crash Report

No response

Log

No response

Additional Context

Yes

Modifications

I have replaced the other crushing recipes using KubeJS & KubeJS Create, such as create:crushing/raw_gold, create:crushing/raw_gold_block, create:crushing/deepslate_gold_ore, and create:crushing/gold_ore. I have not modified any of the special ore recipes, other than for deepslate iron, gold, copper, and zinc.

Full mod list

[✔] almostunified-forge-1.18.2-0.3.10
[✔] architectury-4.11.93-forge
[✔] AttributeFix-Forge-1.18.2-14.0.2
[✔] AutoRegLib-1.7-53
[✔] balm-3.2.6
[✔] BetterModsButton-v3.2.3-1.18.2-Forge
[✔] canary-mc1.18.2-0.1.7
[✔] catalogue-1.6.2-1.18.2
[✔] citadel-1.11.3-1.18.2
[✔] cloth-config-6.4.90-forge
[✔] Clumps-forge-1.18.2-8.0.0+17
[✔] cofh_core-1.18.2-9.2.1.39
[✔] configured-2.0.1-1.18.2
[✔] Continents_1.18.2_v1.1.2
[✔] Controlling-forge-1.18.2-9.0+22
[✔] CraftTweaker-forge-1.18.2-9.1.207
[✔] create-1.18.2-0.5.0.i
[✔] CreateTweaker-1.18.2-2.0.0.18
[✔] CreativeCore_FORGE_v2.6.16_mc1.18.2
[✔] Ding-1.18.2-Forge-1.4.0
[✔] DistantHorizons-1.6.5a-1.18.2
[✔] dtterralith-1.18.2-Alpha3
[✔] dynamiccrosshair-5.1+1.18.2-forge
[✔] DynamicTrees-1.18.2-1.0.2
[✔] entityculling-forge-1.6.1-mc1.18.2
[✔] ferritecore-4.2.2-forge
[✔] flywheel-forge-1.18.2-0.6.8.a
[✔] ftb-industrial-contraptions-1802.1.6-build.220
[✔] ftb-library-forge-1802.3.11-build.177
[✔] Hyle-forge-1.18.2-0.1.0
[✔] iceandfire-2.1.12-1.18.2-beta2
[✔] ImmersiveEngineering-1.18.2-8.4.0-161
[✔] ImmersivePetroleum-1.18.2-4.1.0-19
[✔] Jade-1.18.2-forge-5.2.6
[✔] JAOPCA-1.18.2-4.1.15.28
[✔] jei-1.18.2-forge-10.2.1.1004
[✔] JustEnoughResources-1.18.2-0.14.2.206
[✔] kubejs-create-forge-1802.2.2-build.28
[✔] kubejs-forge-1802.5.5-build.569
[✔] kubejs-thermal-1802.1.5-build.16
[✔] lazydfu-1.0-1.18+
[✔] Mantle-1.18.2-1.9.45
[✔] modernfix-mc1.18.2-forge-2.5.1
[✔] MouseTweaks-forge-mc1.18-2.21
[✔] Placebo-1.18.2-6.6.7
[✔] pluto-mc1.18.2-0.0.6
[✔] rhino-forge-1802.2.1-build.255
[✔] rubidium-0.5.6
[✔] saturn-mc1.18.2-0.0.4
[✔] seaborgium-mc1.18.2-0.1.3b
[✔] selene-1.18.2-1.17.9
[✔] shutupexperimentalsettings-1.0.5
[✔] smoothchunk-1.18.2-1.9
[✔] spark-1.10.38-forge
[✔] Terralith_v2.2.3
[✔] The_Undergarden-1.18.2-0.7.1
[✔] thermal_cultivation-1.18.2-9.2.0.16
[✔] thermal_dynamics-1.18.2-9.2.1b.13
[✔] thermal_expansion-1.18.2-9.2.0.20
[✔] thermal_foundation-1.18.2-9.2.0.46
[✔] thermal_innovation-1.18.2-9.2.0.17
[✔] thermal_integration-1.18.2-9.2.0.16
[✔] thermal_locomotion-1.18.2-9.2.0.13
[✔] TreeChop-forge-1.18.2-0.17.7
[✔] TreeChop-Jade-1.18.2-forge-0.1.1
[✔] Unearthed-forge-1.18.2-2.3.3-slim
[✔] Visuality-0.6+forge-mc1.18.2
[✔] Xaeros_Minimap_23.4.1_Forge_1.18.2
[✔] XaerosWorldMap_1.30.1_Forge_1.18.2

Did the issue happen in singleplayer or on a server?

Both

@rlnt
Copy link
Member

rlnt commented May 12, 2023

Thank you for the in-depth issue submission.

The Create crushing recipes are a somewhat special case. It's one of the only recipe types using ores as inputs and outputs with chances depending on the stone strata. We had this issue reported in the past on our Discord server and I actually tried to fix that but that opens up new challenges.

Right now, what Almost Unified does, is it replaces the inputs with their respective tags and the outputs with the preferred item of the tag the output has. And that results in the replacement of the different input ores in the crushing recipe. Deepslate Gold and Stone Gold recipes will have the same input, the gold ore tag. However, they will still have different outputs which means that Almost Unified will not detect them as duplicates and remove one of them so you keep both and it looks like in your case.

My initial fix was to prevent AU from replacing the input with tags when the input item is detected as a stone strata from your unify.json config. That way, it no longer replaced the Gold Ores with their tag and left the recipes as they are. However, that caused a lot of duplicate recipes.

Think about mod A and mod B adding their own Tin Ores; deepslate and stone variant so you have 4 ores. Both mods add compat recipes to the Create crushing wheels so their Tin Ores can be crushed into Tin Dust.
With the previous fix I implemented, Almost Unified would leave the inputs alone but modify the outputs of these recipes to either only use the Tin Dust from mod A or mod B depending on your configuration. This will result in 4 recipes with 4 different Tin Ores as inputs and always the same Tin Dust as output. Since both mods have deepslate and stone Tin Ore, the logical step would be to remove 2 of the recipes because they are duplicates but that is no longer possible to detect because all 4 inputs are different. And now think about the number of mods adding such recipes.

We discussed this problem internally with a lot of pack developers on our Discord. Pack devs of the large modpacks like ATM, Enigmatica, All of Fabric, etc. and all agreed that some niche cases are okay and should be handled by pack devs.

I know this is a bit annoying and it also bothers me but that's the current state. I'd like to give this another try in the future because this issue comes up quite often but for now, you have to fix these recipes yourself. Either by removing them and then adding them yourself (like you did) or just using the ignore list. Sorry for the inconvenience.

I'm gonna mark this as closed for now but I will definitely give this another try in the future. Maybe I can come up with a solution. Suggestions are welcome.

@rlnt rlnt closed this as not planned Won't fix, can't repro, duplicate, stale May 12, 2023
@rlnt rlnt pinned this issue May 12, 2023
@rlnt rlnt changed the title Normal ores are included in special Create ore crushing recipes. Create ore crushing uses tag inputs for different stone variants. May 12, 2023
@Enterprise12nx01
Copy link

Enterprise12nx01 commented Sep 26, 2024

would you be able to share these files so i can apply it to my pack? i would give you all the credit in file and my update log, i have no idea how to use kubejs and fix this issue :(

@MrFastZombie
Copy link
Author

MrFastZombie commented Sep 26, 2024

would you be able to share these files so i can apply it to my pack? i would give you all the credit in file and my update log, i have no idea how to use kubejs and fix this issue :(

EDIT: See my comment below if you want a simpler solution to just use the normal create recipes.

https://gist.github.com/MrFastZombie/940f82b41c50dbf28d335a9a52123961 This is the script I wrote for KubeJS & KubeJS Create on 1.20.1. Keep in mind, I did also re-balance the outputs of the grinding wheel. The balance changes are basically chances for ore doubling, and iirc I gave boosts for XP if you grind full ores or blocks of raw ore.

The script also covers Silver, Tin, Lead, Aluminum, Nickel, Uranium, Platinum, Osmium, and Quicksilver with the caveat that those specific materials don't have their deepslate ore balance changes. It's been a while since I touched this, and I don't remember if the extra materials that are not in the current pack cause the script to error, so you may have to remove materials from the otherModMats array if it errors out.

Finally, the script also affects materials from the following mods: Better End, Better Nether (Both loaded through Sinytra connector), Majrusz's Progressive Difficulty, and The Undergarden. These have checks for if these mods are loaded, so not having these mods shouldn't cause issues.

I wrote this for my pack, so it might not be 100% drag 'n drop. If you encounter issues, you can leave a comment on my Gist so we don't fill up this issue with extra comments.

Gist
A KubeJS & KubeJS Create script that I use in my modpack that rebalances the outputs as well as alleviates this issue: https://github.com//issues/51 - crushing_ores.js

@MrFastZombie
Copy link
Author

MrFastZombie commented Sep 29, 2024

After familiarizing myself with this issue again, I realized I overlooked something for people that want a workaround but just want to use Create's normal recipes for crushing. You can just populate ignoredRecipes in unify.json like so:

"ignoredRecipes": ["create:crushing/deepslate_emerald_ore", "create:crushing/emerald_ore", "create:crushing/nether_gold_ore", "create:crushing/coal_ore", "create:crushing/deepslate_coal_ore", "create:crushing/diamond_ore", "create:crushing/deepslate_diamond_ore", "create:crushing/lapis_ore", "create:crushing/deepslate_lapis_ore", "create:crushing/deepslate_iron_ore", "create:crushing/iron_ore", "create:crushing/deepslate_gold_ore", "create:crushing/gold_ore", "create:crushing/deepslate_copper_ore", "create:crushing/copper_ore"],

and this will make it use the vanilla crushing recipes for the vanilla ores. If you have any modded ores with that issue you should be able to use F3 + H to activate advanced tooltips and find the recipe ID in REI or JEI to add to this setting. Anyways, sorry I forgot about this simpler way of doing it. I only recommend using my script above if you agree with my balance changes and/or can adapt it to work on your pack.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants