Topic category: Troubleshooting, bugs, and solutions
I followed through the tutorial video on how to use tags and done it exactly like the video says except I tried to use Forge because i want to share tag group with my other mods im making and other peoples mods. Whenever I try to use Forge or Mod as a namespace when creating a tag group ( im very sure i made names match correctly ) the console throws up the following error and recipe fails to work. I only worked when I use minecraft as a namespace. Looking at the console I found that the namespace is ALWAYS "minecraft" even after selecting Forge or Mod. Here is the error the console is showing:
1;31:41.15 [Server thread/ERROR] [minecraft/RecipeManager]: Parsing error loading recipe meatcromancer:soulnecklacerecipe
com.google.gson.JsonSyntaxException: Unknown item tag 'minecraft:soulgroup'
at net.minecraft.item.crafting.Ingredient.deserializeItemList(Ingredient.java:221) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.item.crafting.Ingredient.deserializeItemList(Ingredient.java:221) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraftforge.common.crafting.VanillaIngredientSerializer.parse(VanillaIngredientSerializer.java:41) ~[?:?] {re:classloading}
at net.minecraftforge.common.crafting.VanillaIngredientSerializer.parse(VanillaIngredientSerializer.java:41) ~[?:?] {re:classloading}
at net.minecraftforge.common.crafting.CraftingHelper.getIngredient(CraftingHelper.java:155) ~[?:?] {re:classloading}
at net.minecraftforge.common.crafting.CraftingHelper.getIngredient(CraftingHelper.java:155) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.Ingredient.deserialize(Ingredient.java:187) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.item.crafting.Ingredient.deserialize(Ingredient.java:187) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.item.crafting.ShapedRecipe.deserializeKey(ShapedRecipe.java:270) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.ShapedRecipe.deserializeKey(ShapedRecipe.java:270) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.ShapedRecipe.access$000(ShapedRecipe.java:24) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.ShapedRecipe.access$000(ShapedRecipe.java:24) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.ShapedRecipe$Serializer.read(ShapedRecipe.java:294) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.ShapedRecipe$Serializer.read(ShapedRecipe.java:294) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.ShapedRecipe$Serializer.read(ShapedRecipe.java:290) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.ShapedRecipe$Serializer.read(ShapedRecipe.java:290) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.RecipeManager.deserializeRecipe(RecipeManager.java:140) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.RecipeManager.deserializeRecipe(RecipeManager.java:140) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.RecipeManager.apply(RecipeManager.java:60) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.RecipeManager.apply(RecipeManager.java:60) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.RecipeManager.apply(RecipeManager.java:37) ~[?:?] {re:classloading}
at net.minecraft.item.crafting.RecipeManager.apply(RecipeManager.java:37) ~[?:?] {re:classloading}
at net.minecraft.client.resources.ReloadListener.lambda$reload$1(ReloadListener.java:14) ~[?:?] {re:classloading}
at net.minecraft.client.resources.ReloadListener.lambda$reload$1(ReloadListener.java:14) ~[?:?] {re:classloading}
at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:670) ~[?:1.8.0_232] {}
at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:670) ~[?:1.8.0_232] {}
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:646) ~[?:1.8.0_232] {}
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:646) ~[?:1.8.0_232] {}
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:456) ~[?:1.8.0_232] {}
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:456) ~[?:1.8.0_232] {}
at net.minecraft.resources.AsyncReloader.lambda$null$3(AsyncReloader.java:66) ~[?:?] {re:classloading}
at net.minecraft.resources.AsyncReloader.lambda$null$3(AsyncReloader.java:66) ~[?:?] {re:classloading}
at net.minecraft.util.concurrent.TickDelayedTask.run(TickDelayedTask.java:20) [?:?] {re:classloading}
at net.minecraft.util.concurrent.TickDelayedTask.run(TickDelayedTask.java:20) [?:?] {re:classloading}
at net.minecraft.util.concurrent.ThreadTaskExecutor.run(ThreadTaskExecutor.java:140) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.util.concurrent.ThreadTaskExecutor.run(ThreadTaskExecutor.java:140) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.util.concurrent.RecursiveEventLoop.run(RecursiveEventLoop.java:22) [?:?] {re:classloading}
at net.minecraft.util.concurrent.RecursiveEventLoop.run(RecursiveEventLoop.java:22) [?:?] {re:classloading}
at net.minecraft.util.concurrent.ThreadTaskExecutor.driveOne(ThreadTaskExecutor.java:110) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.util.concurrent.ThreadTaskExecutor.driveOne(ThreadTaskExecutor.java:110) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.func_213205_aW(MinecraftServer.java:726) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.func_213205_aW(MinecraftServer.java:726) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.driveOne(MinecraftServer.java:720) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.driveOne(MinecraftServer.java:720) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.util.concurrent.ThreadTaskExecutor.driveUntil(ThreadTaskExecutor.java:123) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.util.concurrent.ThreadTaskExecutor.driveUntil(ThreadTaskExecutor.java:123) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.loadDataPacks(MinecraftServer.java:1550) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.loadDataPacks(MinecraftServer.java:1550) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.loadDataPacks(MinecraftServer.java:442) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.loadDataPacks(MinecraftServer.java:442) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.integrated.IntegratedServer.loadAllWorlds(IntegratedServer.java:75) [?:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.server.integrated.IntegratedServer.loadAllWorlds(IntegratedServer.java:75) [?:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.server.integrated.IntegratedServer.init(IntegratedServer.java:97) [?:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.server.integrated.IntegratedServer.init(IntegratedServer.java:97) [?:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:622) [?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:622) [?:?] {re:classloading,pl:accesstransformer:B}
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232] {}
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232] {}
I have tested making forge tag in 1.14.4 and it was forge tag, it did not switch to Minecraft namespace as you suggested.
This indicates recipe uses tag from minecraft:soulgroup, is this tag in fact defined?
Avoid adding new tags to the minecraft namespace, this namespace is meant for overriding, not adding.
yes the soulgroup was defined already by default, also im I forgot to mention that im using the latest version of 2020.2 1.14.4
Also the namespace was supposed to be forge:soulgroup when selecting Forge so the tag could be used between mods.
I think i found the culprit. I tried to use Forge as a namespace again and took a look at the code of the recipe mcreator generated and found that it did not add the namespace at all. so i played around with the code in the recipe by changing "soulgroup" to "forge:soulgroup" and the error went away and the recipe works.
before edit:
after edit and it works:
This is code for recipes, did you add the namespace in the tag when adding to the recipe?
When you add a tag, you need to enter it in namespace:name format
I tried it again like you suggested and it worked. Somehow I thought it would do that automatically. Maybe in future can there be an option to pull up a list of tags, select, and automatically enter the namespace tag? Anyways, thanks for helping me on resolving that problem.