nickrobson / skillmmo

A Fabric mod for Minecraft that adds unlockable skills to the game
MIT License
5 stars 1 forks source link

Some modded / data pack recipes appear to not be coming back on after unlocking their relevant skill #6

Open Necrofiend13 opened 1 year ago

Necrofiend13 commented 1 year ago

Hey, really enjoyed using this mod for a short while, until I tried it out in my modpack with modded items.

For some reason, some modded and datapack recipes that are initially locked by the mod are not able to be crafted in new worlds after the skill level has been reached / unlocked

I'm trying to craft a bone dagger from TheGraveyard mod, and weapons from SimplySwords mod, as well. I locked the former behind combat1, and it cannot be crafted at all anymore. I'm having the same problem now that I have Combat7 for Arrows. I can now craft vanilla recipe arrows, but my custom recipe for arrows in datapack are still disabled.

Setting Gamerule doLimitedCrafting false will enable them, but not prevent lockout for other skills not attained yet. setting to true is locking even those that should be unlocked by the skill.

Using /recipe give is effectively working but very tedious to do for each recipe, every level, per player, manually. xD

Is there something I can do about it?

Thank you for making the mod, I really enjoy the concept, and Good luck with your updates!

nickrobson commented 1 year ago

Hey @Necrofiend13 ! Sorry for the late reply here. I haven't checked if this is it, but the most likely cause is that the recipe for that item hasn't been added to your recipe book by the game/mod (which means you can't craft it, because of the doLimitedCrafting game rule that's enabled by default by SkillMMO, assuming you have the enableDoLimitedCraftingGameruleInAllNewWorlds config option enabled (enabled by default))

It may be the case that that mod doesn't have advancements set up to automatically give the player the recipe when they acquire one of the ingredients. From SkillMMO's side, there's not a lot it can do in this case, as it doesn't have any knowledge of how you acquire a recipe, it only assumes that you will acquire it when you can create it (which is usually when you acquire one or more of the ingredients), and waits until the recipe is unlocked to allow crafting (via the doLimitedCrafting game rule).

My recommendation is to disable the doLimitedCrafting game rule (and probably also disable that config option). This will allow you to craft any items/blocks without needing to have unlocked them first (unfortunately can't do this more granularly). Optionally (I don't think it would be required in this case but worth a try if needed), you could also disable the lockRecipesUntilIngredientsAndOutputAreUnlocked config option which governs recipes showing in the recipe book (does not affect crafting - only the doLimitedCrafting game rule does).

nickrobson commented 1 year ago

Just had a look at The Graveyard's codebase, looks like that is indeed the cause for it at least. With the way I've made SkillMMO, I unfortunately can't do anything about this sort of thing. If I find time, I'll try to explore other ways I can do this / if I can provide some sort of tool to identify this (and maybe to generate recipe-unlock advancement datapacks for mods so an improvement can be contributed back to the mods that don't have it 😅)