Jump to content

How to publish a forge based library?


jcranky

Recommended Posts

Hi,

 

I'm developing a lib I want to be used by mods. The lib uses forge, and the mods will use forge as well, obviously. Do I have to take any kind of special care when generating the jar file for the lib, or can it be generated with a simple

 

./gradlew build

 

?

 

I'm asking because in my tests some methods are causing crazy NoSuchMethodErrors like the one bellow when used in the 'client' mod, which makes me think that something might be "out of sync" here.

 

[01:35:48] [specs2.env1591740272-2/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: java.lang.NoSuchMethodError: net.minecraft.item.ItemStack.func_82833_r()Ljava/lang/String;
[01:35:48] [specs2.env1591740272-2/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:        at com.easyforger.recipes.package$.toRecipeItemStack(package.scala:12)

 

The package.scala:12 mentioned in the error contains the following:

 

implicit def toRecipeItemStack(itemStack: ItemStack): RecipeItemStack = RecipeItemStack(itemStack, itemStack.getDisplayName.toLowerCase.charAt(0))

 

My guess is that itemStack.getDisplayName is to blame. Makes sense?

 

thank you!

 

[]s,

just you wait! ;)

Link to comment
Share on other sites

Perfect! Worked like a charm, thank you.

 

Now let me just understand what is happening here. I just need the deobfJar task, plus the extra tasks.build.dependsOn definition, right? I see you also defined a sourceJar task. Why? It worked without that for me, but perhaps I'm missing something that I'm just not seeing?

just you wait! ;)

Link to comment
Share on other sites

I was looking at this and couldn't get it to work, as I want to have a deobfuscated package that is only one of my packages.  I've got various sub-mods all using the same build script, and while I did get a deobf version, it was everything, not just my lib.

 

So I'm not sure how to combine that build entry with something like

    from zipTree(jar.outputs.getFiles().getSingleFile()).matching {
        exclude 'com/draco18s/ores/**', 'com/draco18s/hazards/**', 'com/draco18s/wildlife/**', 'mcmod.info'
    }

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Draco18s, that is not a concern for me because I want everything. Perhaps that could be a way for you as well. Separate what is not part of the 'exported' lib in its own project.

 

In my case, I'll have three projects: the lib, a tester, and samples. Its a bit more trouble setting up but everything gets nicely organized. The main down side is having to publish the library 'all the time', which is not that hard if you publish to maven local.

just you wait! ;)

Link to comment
Share on other sites

The source jar is not needed, but I have it so that people who use the library can see e.g. the javadocs and not get decompiled code when looking at the classes in the library. But technically it is not needed.

 

So the main goal is getting the sources jar? I'm already getting that, I thought this was a standard task from gradle, but perhaps that is my publish plugin doing? I don't need sourceJar even here (tasks.build.dependsOn('sourceJar', 'deobfJar')) then?

 

Also, where does the deobf classifier comes from? ForgeGradle plugin?

just you wait! ;)

Link to comment
Share on other sites

Draco18s, that is not a concern for me because I want everything. Perhaps that could be a way for you as well. Separate what is not part of the 'exported' lib in its own project.

 

Yeah, I could probably do that at this point.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

  • 2 weeks later...

So, I've been thinking about this a little. To use the published library, I'm having to do

 

compile 'com.easyforger:easyforger-core:0.1-SNAPSHOT:deobf@jar'

 

Point being: I'm having to specify the classifier. Is that what should happen? Also, is the 'normal' (non deofuscated) jar file of any usage in this scenario?

 

thanks!

just you wait! ;)

Link to comment
Share on other sites

I see. So the deof is for the mod author to compile against my library, but for the client to run that mod, the normal jar will have to be installed in the mods folder. This also means that creating an uber jar is a bit more complex.

 

In that regard, would that be a good idea (the uber jar)?

just you wait! ;)

Link to comment
Share on other sites

Do those dependencies include mods? If so, that's a bad idea.

 

No, I'm mainly concerned with the library itself, that will not contain any mods. I just want to make using the library as seamless as possible. All sample mods using the library are going to be in a separated project.

just you wait! ;)

Link to comment
Share on other sites

Yeah.... that's a very complex problem. Handling libraries manually takes us back 15 years ago, before even maven was around... having to manage libraries, and libraries of libraries.

 

Coming to think of it, this can affect the libraries of my library as well. Which means that, to be really safe, it would be better to avoid any external libraries at all... or am I taking this rationale too far?

just you wait! ;)

Link to comment
Share on other sites

Are you sure you want to create a library, or maybe you just need to publish an API -- i.e. just expose those methods that you are actually interested in providing to other modders?

 

Alternatively, if you're just keen to share useful code maybe just leave it open source and people can copy it and modify it directly if they wish.

 

I feel like publishing a library is a bit grandiose because it implies (at least I only undertake it if it has) a very high degree of general usefulness. What is the functionality this library would provide?

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

Are you sure you want to create a library, or maybe you just need to publish an API -- i.e. just expose those methods that you are actually interested in providing to other modders?

 

And how would the modders use that API? Expose where?

 

Alternatively, if you're just keen to share useful code maybe just leave it open source and people can copy it and modify it directly if they wish.

 

It is open source already. I'm just not promoting it too much because it is just starting and there are lots to be done still. It should be a library because there won't be any reason to change the code of the library. The internals are likely to get complex and easy to break if you don't know what you are doing. Like forge itself, it should be used, not messed with.

 

I feel like publishing a library is a bit grandiose because it implies (at least I only undertake it if it has) a very high degree of general usefulness. What is the functionality this library would provide?

 

Yes, the goal is to be quite comprehensive. I'm writing wrappers and DSLs on top of forge, with Scala. :D

just you wait! ;)

Link to comment
Share on other sites

An API and a library are one and the same, the API being the public interface to the library.

 

Semantics aside, they are used in exactly the same fashion: developers use a deobfuscated jar and everyone else uses the normal jar.

 

My point is more the attitude about how the code is organized and presented. a professional library of course has a well managed API. But a person could create a library where everything is exposed or something and make a mess of it.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

An API and a library are one and the same, the API being the public interface to the library.

 

Semantics aside, they are used in exactly the same fashion: developers use a deobfuscated jar and everyone else uses the normal jar.

 

That's how I see it, and that's why I was a bit confused with jabelar's first statement.

just you wait! ;)

Link to comment
Share on other sites

My point is more the attitude about how the code is organized and presented. a professional library of course has a well managed API. But a person could create a library where everything is exposed or something and make a mess of it.

 

Everything is exposed anyway, unless we use classloaders tricks. So yes, organization and presentation are important. But technically, its all the same and that's where I'm getting at. So I'll have to remember to have both a developer's and a user's guide.

 

Or on a second thought... installing the library seems to actually be part of the mod installing process. Does this make sense?

just you wait! ;)

Link to comment
Share on other sites

An API and a library are one and the same, the API being the public interface to the library.

 

Semantics aside, they are used in exactly the same fashion: developers use a deobfuscated jar and everyone else uses the normal jar.

 

That's how I see it, and that's why I was a bit confused with jabelar's first statement.

 

Sorry for the confusion. Almost everything has an API of course. But I think the attitude is different when creating a library versus "just another mod with an API". When I provide a rudimentary API to mod my mods I wouldn't go as far as calling the result a library.

 

Furthermore, even though the Minecraft decomp source are a referenced library, they are in my opinion not proper libraries because there is public access to all sorts of stuff that isn't really intended as the modding API.

 

Maybe it is just me. To me a library has a high standard of intention behind it, not just any decomp code that you dump into your referenced libraries.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

Maybe it is just me. To me a library has a high standard of intention behind it, not just any decomp code that you dump into your referenced libraries.

 

Well, yes, I can agreed with that. It is different to say that your mod has an API, and that your mod is a library. And that is also why I am calling my thing a library: it is not a mod. It is a set of wrappers and helpers intended to help mod creators.

just you wait! ;)

Link to comment
Share on other sites

So yes, organization and presentation are important. But technically, its all the same and that's where I'm getting at. So I'll have to remember to have both a developer's and a user's guide.

 

That's really my point.

 

I was worried that you're just taking a cool mod that you did and trying to re-purpose it as a "library". Someone just saying "I want to make a library" sounded suspiciously naive. However, you obviously know what it means: you're trying to build up a grounds-up codebase intended for multi-coder use from the start.

 

I'll be quiet now...

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

Sorry for the confusion. Almost everything has an API of course. But I think the attitude is different when creating a library versus "just another mod with an API". When I provide a rudimentary API to mod my mods I wouldn't go as far as calling the result a library.

 

Furthermore, even though the Minecraft decomp source are a referenced library, they are in my opinion not proper libraries because there is public access to all sorts of stuff that isn't really intended as the modding API.

 

Maybe it is just me. To me a library has a high standard of intention behind it, not just any decomp code that you dump into your referenced libraries.

I was just pointing out that any exposed part of a library/mod is an API and that the way to use an API, whether from a mod or a library, is identical.

 

It would of course be silly to call a mod with some exposed methods a library, even though that would be semantically correct :P

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I am running MineOS through docker on Unraid and I am trying to make a forge server but it looks like the server keeps bypassing the mods when I launch it. I have forge installed, i am running the right version of java and Minecraft, I reloaded the world after adding the mods. I am so lost and would love some help.
    • https://shrinkme.ink/cJnL7e WATCH THIS MINECRAFT VIDEO! IS INSANE MIRA ESTE VIDEO DE MINECRAFT! ES UNA LOCURA!
    • The game crashed whilst rendering overlay Error: java.lang.RuntimeException: null New 1.21.1 modpack ---- Minecraft Crash Report ---- // I bet Cylons wouldn't have this problem. Time: 2024-10-08 17:23:39 Description: Rendering overlay java.lang.RuntimeException: null     at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.runTasks(DeferredWorkQueue.java:58) ~[fmlcore-1.21.1-52.0.17.jar:1.0]     at TRANSFORMER/[email protected]/net.minecraftforge.fml.core.ParallelTransition.lambda$finalActivityGenerator$2(ParallelTransition.java:35) ~[forge-1.21.1-52.0.17-universal.jar:?]     at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646) ~[?:?]     at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]     at TRANSFORMER/[email protected]/net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:69) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:162) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:136) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:121) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.runTick(Minecraft.java:1140) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:795) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:228) ~[forge-1.21.1-52.0.17-client.jar:?]     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]     at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]     at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:85) ~[fmlloader-1.21.1-52.0.17.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.lambda$makeService$0(CommonLaunchHandler.java:69) ~[fmlloader-1.21.1-52.0.17.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:77) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:97) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:116) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17) [modlauncher-10.2.2.jar!/:?]     at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188) [bootstrap-2.1.3.jar!/:?]     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]     at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]     at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133) [bootstrap-2.1.3.jar:2.1.3]     at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53) [bootstrap-2.1.3.jar:2.1.3]     at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19) [bootstrap-2.1.3.jar:2.1.3]     Suppressed: java.lang.IllegalStateException: Can not register to a locked registry. Modder should use Forge Register methods.         at TRANSFORMER/[email protected]/net.minecraftforge.registries.NamespacedWrapper.register(NamespacedWrapper.java:73) ~[forge-1.21.1-52.0.17-universal.jar!/:?]         at TRANSFORMER/[email protected]/net.minecraft.core.Registry.register(Registry.java:130) ~[forge-1.21.1-52.0.17-client.jar!/:?]         at TRANSFORMER/[email protected]/net.minecraft.core.Registry.register(Registry.java:126) ~[forge-1.21.1-52.0.17-client.jar!/:?]         at TRANSFORMER/[email protected]/net.blay09.mods.balm.forge.component.ForgeBalmComponents.lambda$registerComponent$0(ForgeBalmComponents.java:37) ~[balm-forge-1.21.1-21.0.19-all.jar!/:21.0.19]         at TRANSFORMER/[email protected]/net.blay09.mods.balm.api.DeferredObject.resolve(DeferredObject.java:37) ~[balm-forge-1.21.1-21.0.19-all.jar!/:21.0.19]         at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[?:?]         at TRANSFORMER/[email protected]/net.blay09.mods.balm.forge.component.ForgeBalmComponents$Registrations.lambda$commonSetup$0(ForgeBalmComponents.java:27) ~[balm-forge-1.21.1-21.0.19-all.jar!/:21.0.19]         at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?]         at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.lambda$makeRunnable$1(DeferredWorkQueue.java:83) ~[fmlcore-1.21.1-52.0.17.jar:1.0]         at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.makeRunnable(DeferredWorkQueue.java:78) ~[fmlcore-1.21.1-52.0.17.jar:1.0]         at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.runTasks(DeferredWorkQueue.java:61) ~[fmlcore-1.21.1-52.0.17.jar:1.0]         at TRANSFORMER/[email protected]/net.minecraftforge.fml.core.ParallelTransition.lambda$finalActivityGenerator$2(ParallelTransition.java:35) ~[forge-1.21.1-52.0.17-universal.jar:?]         at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646) ~[?:?]         at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]         at TRANSFORMER/[email protected]/net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:69) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:162) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:136) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:121) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.runTick(Minecraft.java:1140) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:795) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:228) ~[forge-1.21.1-52.0.17-client.jar:?]         at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]         at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]         at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:85) ~[fmlloader-1.21.1-52.0.17.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.lambda$makeService$0(CommonLaunchHandler.java:69) ~[fmlloader-1.21.1-52.0.17.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:77) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:97) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:116) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17) [modlauncher-10.2.2.jar!/:?]         at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188) [bootstrap-2.1.3.jar!/:?]         at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]         at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]         at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133) [bootstrap-2.1.3.jar:2.1.3]         at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53) [bootstrap-2.1.3.jar:2.1.3]         at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19) [bootstrap-2.1.3.jar:2.1.3]     Suppressed: java.lang.IllegalStateException: Can not register to a locked registry. Modder should use Forge Register methods.         at TRANSFORMER/[email protected]/net.minecraftforge.registries.NamespacedWrapper.register(NamespacedWrapper.java:73) ~[forge-1.21.1-52.0.17-universal.jar!/:?]         at TRANSFORMER/[email protected]/net.minecraft.core.Registry.register(Registry.java:130) ~[forge-1.21.1-52.0.17-client.jar!/:?]         at TRANSFORMER/[email protected]/net.minecraft.core.Registry.register(Registry.java:126) ~[forge-1.21.1-52.0.17-client.jar!/:?]         at TRANSFORMER/[email protected]/net.blay09.mods.balm.forge.component.ForgeBalmComponents.lambda$registerComponent$0(ForgeBalmComponents.java:37) ~[balm-forge-1.21.1-21.0.19-all.jar!/:21.0.19]         at TRANSFORMER/[email protected]/net.blay09.mods.balm.api.DeferredObject.resolve(DeferredObject.java:37) ~[balm-forge-1.21.1-21.0.19-all.jar!/:21.0.19]         at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[?:?]         at TRANSFORMER/[email protected]/net.blay09.mods.balm.forge.component.ForgeBalmComponents$Registrations.lambda$commonSetup$0(ForgeBalmComponents.java:27) ~[balm-forge-1.21.1-21.0.19-all.jar!/:21.0.19]         at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?]         at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.lambda$makeRunnable$1(DeferredWorkQueue.java:83) ~[fmlcore-1.21.1-52.0.17.jar:1.0]         at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.makeRunnable(DeferredWorkQueue.java:78) ~[fmlcore-1.21.1-52.0.17.jar:1.0]         at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.runTasks(DeferredWorkQueue.java:61) ~[fmlcore-1.21.1-52.0.17.jar:1.0]         at TRANSFORMER/[email protected]/net.minecraftforge.fml.core.ParallelTransition.lambda$finalActivityGenerator$2(ParallelTransition.java:35) ~[forge-1.21.1-52.0.17-universal.jar:?]         at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646) ~[?:?]         at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]         at TRANSFORMER/[email protected]/net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:69) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:162) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:136) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:121) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.runTick(Minecraft.java:1140) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:795) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:228) ~[forge-1.21.1-52.0.17-client.jar:?]         at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]         at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]         at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:85) ~[fmlloader-1.21.1-52.0.17.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.lambda$makeService$0(CommonLaunchHandler.java:69) ~[fmlloader-1.21.1-52.0.17.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:77) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:97) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:116) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17) [modlauncher-10.2.2.jar!/:?]         at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188) [bootstrap-2.1.3.jar!/:?]         at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]         at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]         at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133) [bootstrap-2.1.3.jar:2.1.3]         at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53) [bootstrap-2.1.3.jar:2.1.3]         at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19) [bootstrap-2.1.3.jar:2.1.3] Transformer Audit:   java.util.ArrayList     REASON: mixin   net.blay09.mods.balm.api.DeferredObject     REASON: classloading   net.blay09.mods.balm.forge.component.ForgeBalmComponents     REASON: classloading   net.blay09.mods.balm.forge.component.ForgeBalmComponents$Registrations     REASON: classloading     PLUGIN: eventbus:AFTER   net.minecraft.client.Minecraft     REASON: mixin     PLUGIN: accesstransformer:BEFORE     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick_render_call     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraftclient     TRANSFORMER: fml:xaerominimap:xaero_minecraftclient     PLUGIN: runtimedistcleaner:AFTER     REASON: classloading     PLUGIN: accesstransformer:BEFORE     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick_render_call     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraftclient     TRANSFORMER: fml:xaerominimap:xaero_minecraftclient     PLUGIN: mixin:APP:sound_physics_remastered.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:bookshelf.mixins.json:access.client.AccessorMinecraft     PLUGIN: mixin:APP:balm.forge.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:MixinResourceReloadEnd     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:MixinResourceReloadStart     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:accessor.MinecraftClientAccessor     PLUGIN: mixin:APP:entity_texture_features-common.mixins.json:reloading.MixinMinecraftClient     PLUGIN: mixin:APP:entity_texture_features-common.mixins.json:reloading.MixinResourceReload     PLUGIN: mixin:APP:spyglass_improvements.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:monolib.forge.mixins.json:MixinMinecraft     PLUGIN: mixin:APP:fallingleaves.mixins.json:MinecraftClientMixin     PLUGIN: mixin:APP:configuration.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:iceberg.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:xaeroplus.mixins.json:mc.MixinMinecraftClient     PLUGIN: mixin:AFTER     PLUGIN: runtimedistcleaner:AFTER   net.minecraft.client.main.Main     REASON: classloading     PLUGIN: runtimedistcleaner:AFTER   net.minecraft.core.Registry     REASON: mixin     REASON: classloading   net.minecraft.server.packs.resources.SimpleReloadInstance     REASON: classloading   net.minecraft.util.thread.BlockableEventLoop     REASON: computing_frames     PLUGIN: accesstransformer:BEFORE     REASON: mixin     PLUGIN: accesstransformer:BEFORE     REASON: classloading     PLUGIN: accesstransformer:BEFORE   net.minecraft.util.thread.ReentrantBlockableEventLoop     REASON: computing_frames     REASON: mixin     REASON: classloading   net.minecraftforge.fml.core.ParallelTransition     REASON: classloading   net.minecraftforge.registries.NamespacedWrapper     REASON: classloading A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Suspected Mods: NONE Stacktrace:     at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.runTasks(DeferredWorkQueue.java:58) ~[fmlcore-1.21.1-52.0.17.jar!/:1.0]     at TRANSFORMER/[email protected]/net.minecraftforge.fml.core.ParallelTransition.lambda$finalActivityGenerator$2(ParallelTransition.java:35) ~[forge-1.21.1-52.0.17-universal.jar!/:?]     at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646) ~[?:?]     at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]     at TRANSFORMER/[email protected]/net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:69) ~[forge-1.21.1-52.0.17-client.jar!/:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:162) ~[forge-1.21.1-52.0.17-client.jar!/:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[forge-1.21.1-52.0.17-client.jar!/:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:136) ~[forge-1.21.1-52.0.17-client.jar!/:?] Transformer Audit:   net.minecraft.server.packs.resources.SimpleReloadInstance     REASON: classloading   net.minecraft.util.thread.BlockableEventLoop     REASON: computing_frames     PLUGIN: accesstransformer:BEFORE     REASON: mixin     PLUGIN: accesstransformer:BEFORE     REASON: classloading     PLUGIN: accesstransformer:BEFORE   net.minecraft.util.thread.ReentrantBlockableEventLoop     REASON: computing_frames     REASON: mixin     REASON: classloading   net.minecraftforge.fml.core.ParallelTransition     REASON: classloading -- Overlay render details -- Details:     Overlay name: net.minecraftforge.client.loading.ForgeLoadingOverlay Stacktrace:     at TRANSFORMER/[email protected]/net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:885) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.runTick(Minecraft.java:1180) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:795) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:228) ~[forge-1.21.1-52.0.17-client.jar:?]     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]     at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]     at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:85) ~[fmlloader-1.21.1-52.0.17.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.lambda$makeService$0(CommonLaunchHandler.java:69) ~[fmlloader-1.21.1-52.0.17.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:77) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:97) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:116) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17) [modlauncher-10.2.2.jar!/:?]     at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188) [bootstrap-2.1.3.jar!/:?]     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]     at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]     at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133) [bootstrap-2.1.3.jar:2.1.3]     at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53) [bootstrap-2.1.3.jar:2.1.3]     at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19) [bootstrap-2.1.3.jar:2.1.3] Transformer Audit:   net.minecraft.client.Minecraft     REASON: mixin     PLUGIN: accesstransformer:BEFORE     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick_render_call     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraftclient     TRANSFORMER: fml:xaerominimap:xaero_minecraftclient     PLUGIN: runtimedistcleaner:AFTER     REASON: classloading     PLUGIN: accesstransformer:BEFORE     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick_render_call     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraftclient     TRANSFORMER: fml:xaerominimap:xaero_minecraftclient     PLUGIN: mixin:APP:sound_physics_remastered.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:bookshelf.mixins.json:access.client.AccessorMinecraft     PLUGIN: mixin:APP:balm.forge.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:MixinResourceReloadEnd     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:MixinResourceReloadStart     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:accessor.MinecraftClientAccessor     PLUGIN: mixin:APP:entity_texture_features-common.mixins.json:reloading.MixinMinecraftClient     PLUGIN: mixin:APP:entity_texture_features-common.mixins.json:reloading.MixinResourceReload     PLUGIN: mixin:APP:spyglass_improvements.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:monolib.forge.mixins.json:MixinMinecraft     PLUGIN: mixin:APP:fallingleaves.mixins.json:MinecraftClientMixin     PLUGIN: mixin:APP:configuration.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:iceberg.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:xaeroplus.mixins.json:mc.MixinMinecraftClient     PLUGIN: mixin:AFTER     PLUGIN: runtimedistcleaner:AFTER   net.minecraft.client.main.Main     REASON: classloading     PLUGIN: runtimedistcleaner:AFTER   net.minecraft.client.renderer.GameRenderer     REASON: mixin     PLUGIN: accesstransformer:BEFORE     PLUGIN: runtimedistcleaner:AFTER     REASON: classloading     PLUGIN: accesstransformer:BEFORE     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:MixinGameRenderer     PLUGIN: mixin:APP:tombstone.mixins.json:GameRendererMixin     PLUGIN: mixin:AFTER     PLUGIN: runtimedistcleaner:AFTER -- Uptime -- Details:     JVM uptime: 21.546s     Wall uptime: 6.750s     High-res time: 18.114s     Client ticks: 38 ticks / 1.900s -- Last reload -- Details:     Reload number: 1     Reload reason: initial     Finished: No     Packs: vanilla, mod_resources -- System Details -- Details:     Minecraft Version: 1.21.1     Minecraft Version ID: 1.21.1     Operating System: Windows 11 (amd64) version 10.0     Java Version: 21.0.3, Microsoft     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft     Memory: 509429240 bytes (485 MiB) / 1300234240 bytes (1240 MiB) up to 10569646080 bytes (10080 MiB)     CPUs: 12     Processor Vendor: AuthenticAMD     Processor Name: AMD Ryzen 5 3600 6-Core Processor                   Identifier: AuthenticAMD Family 23 Model 113 Stepping 0     Microarchitecture: Zen 2     Frequency (GHz): 3.59     Number of physical packages: 1     Number of physical CPUs: 6     Number of logical CPUs: 12     Graphics card #0 name: NVIDIA GeForce RTX 3060     Graphics card #0 vendor: NVIDIA     Graphics card #0 VRAM (MiB): 12288.00     Graphics card #0 deviceId: VideoController1     Graphics card #0 versionInfo: 31.0.15.5123     Memory slot #0 capacity (MiB): 8192.00     Memory slot #0 clockSpeed (GHz): 3.20     Memory slot #0 type: DDR4     Memory slot #1 capacity (MiB): 8192.00     Memory slot #1 clockSpeed (GHz): 3.20     Memory slot #1 type: DDR4     Virtual memory max (MiB): 32576.43     Virtual memory used (MiB): 15733.25     Swap memory total (MiB): 16288.21     Swap memory used (MiB): 4549.58     Space in storage for jna.tmpdir (MiB): available: 15838.38, total: 953079.06     Space in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): available: 15838.38, total: 953079.06     Space in storage for io.netty.native.workdir (MiB): available: 15838.38, total: 953079.06     Space in storage for java.io.tmpdir (MiB): available: 15838.38, total: 953079.06     Space in storage for workdir (MiB): available: 15838.38, total: 953079.06     JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx10080m -Xms256m     Launched Version: forge-52.0.17     Launcher name: minecraft-launcher     Backend library: LWJGL version 3.3.3+5     Backend API: NVIDIA GeForce RTX 3060/PCIe/SSE2 GL version 4.6.0 NVIDIA 551.23, NVIDIA Corporation     Window size: 1024x768     GFLW Platform: win32     GL Caps: Using framebuffer using OpenGL 3.2     GL debug messages:      Is Modded: Definitely; Client brand changed to 'forge'     Universe: 400921fb54442d18     Type: Client (map_client.txt)     Graphics mode: fancy     Render Distance: 12/12 chunks     Resource Packs: vanilla, mod_resources     Current Language: en_us     Locale: en_US     System encoding: Cp1252     File encoding: UTF-8     CPU: 12x AMD Ryzen 5 3600 6-Core Processor      ModLauncher: 10.2.2     ModLauncher launch target: forge_client     ModLauncher naming: mcp     ModLauncher services:          / slf4jfixer PLUGINSERVICE          / runtimedistcleaner PLUGINSERVICE          / runtime_enum_extender PLUGINSERVICE          / object_holder_definalize PLUGINSERVICE          / capability_token_subclass PLUGINSERVICE          / accesstransformer PLUGINSERVICE          / eventbus PLUGINSERVICE          / mixin PLUGINSERVICE          / fml TRANSFORMATIONSERVICE          / mixin TRANSFORMATIONSERVICE      FML Language Providers:          [email protected]         lowcodefml@52         [email protected]     Mod List:          kuma-api-forge-21.0.5-SNAPSHOT.jar                |KumaAPI                       |kuma_api                      |21.0.5-SNAPSHOT     |SIDED_SETU|Manifest: NOSIGNATURE         supermartijn642configlib-1.1.8-forge-mc1.21.jar   |SuperMartijn642's Config Libra|supermartijn642configlib      |1.1.8               |SIDED_SETU|Manifest: NOSIGNATURE         dynamiclights-1.21.1.1.jar                        |Dynamic Lights                |dynamiclights                 |1.21.1.1            |SIDED_SETU|Manifest: NOSIGNATURE         sound-physics-remastered-forge-1.21.1-1.4.6.jar   |Sound Physics Remastered      |sound_physics_remastered      |1.21.1-1.4.6        |SIDED_SETU|Manifest: NOSIGNATURE         ForgeEndertech-1.21-12.0.0.1-build.0100.jar       |ForgeEndertech                |forgeendertech                |12.0.0.1            |SIDED_SETU|Manifest: NOSIGNATURE         cookingforblockheads-forge-1.21.1-21.1.2.jar      |Cooking for Blockheads        |cookingforblockheads          |21.1.2              |SIDED_SETU|Manifest: NOSIGNATURE         Controlling-forge-1.21.1-19.0.3.jar               |Controlling                   |controlling                   |19.0.3              |SIDED_SETU|Manifest: NOSIGNATURE         mixinextras-forge-0.4.0.jar                       |MixinExtras                   |mixinextras                   |0.4.0               |SIDED_SETU|Manifest: NOSIGNATURE         softerhaybales-1.21.1-3.3.jar                     |Softer Hay Bales              |softerhaybales                |3.3                 |SIDED_SETU|Manifest: NOSIGNATURE         Bookshelf-forge-1.21.1-21.1.7.jar                 |Bookshelf                     |bookshelf                     |21.1.7              |SIDED_SETU|Manifest: NOSIGNATURE         fullturtlearmor-1.10-forge-mc1.21.jar             |Full Turtle Armor             |fullturtlearmor               |1.10                |SIDED_SETU|Manifest: NOSIGNATURE         keepmysoiltilled-1.21.1-2.4.jar                   |Keep My Soil Tilled           |keepmysoiltilled              |2.4                 |SIDED_SETU|Manifest: NOSIGNATURE         balm-forge-1.21.1-21.0.19-all.jar                 |Balm                          |balm                          |21.0.19             |SIDED_SETU|Manifest: NOSIGNATURE         PrickleMC-forge-1.21.1-21.1.4.jar                 |PrickleMC                     |prickle                       |21.1.4              |SIDED_SETU|Manifest: NOSIGNATURE         darktimer-forge-1.21-1.2.2.jar                    |DarkTimer                     |darktimer                     |1.2.2               |SIDED_SETU|Manifest: NOSIGNATURE         carryon-forge-1.21.1-2.2.2.11.jar                 |Carry On                      |carryon                       |2.2.2               |SIDED_SETU|Manifest: NOSIGNATURE         despawningeggshatch-1.21.1-4.4.jar                |Despawning Eggs Hatch         |despawningeggshatch           |4.4                 |SIDED_SETU|Manifest: NOSIGNATURE         darksmithing-forge-1.21-1.1.8.jar                 |DarkSmithing                  |darksmithing                  |1.1.8               |SIDED_SETU|Manifest: NOSIGNATURE         darkglint-forge-1.21-1.1.5.jar                    |DarkGlint                     |darkglint                     |1.1.5               |SIDED_SETU|Manifest: NOSIGNATURE         entity_model_features_forge_1.21-2.2.6.jar        |Entity Model Features         |entity_model_features         |2.2.6               |SIDED_SETU|Manifest: NOSIGNATURE         entity_texture_features_forge_1.21-6.2.5.jar      |Entity Texture Features       |entity_texture_features       |6.2.5               |SIDED_SETU|Manifest: NOSIGNATURE         Explorify v1.6.2 f10-48.jar                       |Explorify                     |explorify                     |1.6.2               |SIDED_SETU|Manifest: NOSIGNATURE         Beekeeper-1.21-1.0.5.jar                          |Beekeeper                     |bk                            |1.0.5               |SIDED_SETU|Manifest: NOSIGNATURE         RapidLeafDecay-1.21.1-2.0.2.jar                   |Rapid Leaf Decay              |rapid_leaf_decay              |2.0.2               |SIDED_SETU|Manifest: NOSIGNATURE         Chunky-1.4.16.jar                                 |Chunky                        |chunky                        |1.4.16              |SIDED_SETU|Manifest: NOSIGNATURE         supermartijn642corelib-1.1.17e-forge-mc1.21.jar   |SuperMartijn642's Core Lib    |supermartijn642corelib        |1.1.17+e            |SIDED_SETU|Manifest: NOSIGNATURE         corail_woodcutter-forge-1.21.1-3.4.3.jar          |Corail Woodcutter             |corail_woodcutter             |3.4.3               |SIDED_SETU|Manifest: NOSIGNATURE         collective-1.21.1-7.84.jar                        |Collective                    |collective                    |7.84                |SIDED_SETU|Manifest: NOSIGNATURE         darkmining-forge-1.21-1.2.4hf2.jar                |DarkMining                    |darkmining                    |1.2.4hf2            |SIDED_SETU|Manifest: NOSIGNATURE         advancednetherite-forge-2.1.6-1.21.1.jar          |Advanced Netherite            |advancednetherite             |2.1.6               |SIDED_SETU|Manifest: NOSIGNATURE         spyglass_improvements-1.5.5+mc1.21+forge.jar      |Spyglass Improvements         |spyglass_improvements         |1.5.5+mc1.21+forge  |SIDED_SETU|Manifest: NOSIGNATURE         Searchables-forge-1.21.1-1.0.1.jar                |Searchables                   |searchables                   |1.0.1               |SIDED_SETU|Manifest: NOSIGNATURE         dungeons-and-taverns-v4.4.4 [Forge].jar           |Dungeons and Taverns          |mr_dungeons_andtaverns        |1-v4.4.4            |SIDED_SETU|Manifest: NOSIGNATURE         tombstone-1.21.1-9.1.1.jar                        |Corail Tombstone              |tombstone                     |9.1.1               |SIDED_SETU|Manifest: NOSIGNATURE         wormhole-1.1.16-forge-mc1.21.jar                  |Wormhole (Portals)            |wormhole                      |1.1.16              |SIDED_SETU|Manifest: NOSIGNATURE         darksmelting-forge-1.21-1.1.6.jar                 |DarkSmelting                  |darksmelting                  |1.1.6               |SIDED_SETU|Manifest: NOSIGNATURE         refurbished_furniture-forge-1.21.1-1.0.6.jar      |MrCrayfish's Furniture Mod: Re|refurbished_furniture         |1.0.6               |SIDED_SETU|Manifest: 0D:78:5F:44:C0:47:0C:8C:E2:63:A3:04:43:D4:12:7D:B0:7C:35:37:DC:40:B1:C1:98:EC:51:EB:3B:3C:45:99         monolib-forge-1.21.1-1.3.0.jar                    |MonoLib                       |monolib                       |1.3.0               |SIDED_SETU|Manifest: NOSIGNATURE         disenchanting_table-forge-1.21-3.0.1.jar          |Dis-Enchanting Table          |disenchanting_table           |3.0.1               |SIDED_SETU|Manifest: NOSIGNATURE         golden_foods-forge-1.21-2.3.0.jar                 |Golden Foods                  |golden_foods                  |2.3.0               |SIDED_SETU|Manifest: NOSIGNATURE         AdChimneys-1.21-11.0.3.0-build.0260.jar           |Advanced Chimneys             |adchimneys                    |11.0.3.0            |SIDED_SETU|Manifest: NOSIGNATURE         framework-forge-1.21.1-0.9.2.jar                  |Framework                     |framework                     |0.9.2               |SIDED_SETU|Manifest: 0D:78:5F:44:C0:47:0C:8C:E2:63:A3:04:43:D4:12:7D:B0:7C:35:37:DC:40:B1:C1:98:EC:51:EB:3B:3C:45:99         smallships-forge-1.21.1-2.0.0-b1.5.jar            |Small Ships                   |smallships                    |2.0.0-b1.5          |SIDED_SETU|Manifest: NOSIGNATURE         PortableCraftingTable-forge-1.21.1-3.2.6.jar      |Portable Crafting Table       |portablecraftingtable         |3.2.6               |SIDED_SETU|Manifest: NOSIGNATURE         collectorsalbum-forge-1.21.1-2.1.3.jar            |Collector's Album             |collectorsalbum               |2.1.3               |SIDED_SETU|Manifest: NOSIGNATURE         randombonemealflowers-1.21.1-4.6.jar              |Random Bone Meal Flowers      |randombonemealflowers         |4.6                 |SIDED_SETU|Manifest: NOSIGNATURE         corail_pillar-6.4.0.jar                           |Corail Pillar                 |corail_pillar                 |6.4.0               |SIDED_SETU|Manifest: NOSIGNATURE         BetterAdvancements-Forge-1.21.1-0.4.2.19.jar      |Better Advancements           |betteradvancements            |0.4.2.19            |SIDED_SETU|Manifest: NOSIGNATURE         doubledoors-1.21.1-5.9.jar                        |Double Doors                  |doubledoors                   |5.9                 |SIDED_SETU|Manifest: NOSIGNATURE         formationsnether-1.0.5-mc1.21+.jar                |Formations Nether             |formationsnether              |1.0.5               |SIDED_SETU|Manifest: NOSIGNATURE         reg-more-foods-1.1.2+1.21+forge.jar               |Reg's More Foods              |rmf                           |1.1.2+1.21+forge    |SIDED_SETU|Manifest: NOSIGNATURE         additionallanterns-1.1.1-forge-mc1.21.jar         |Additional Lanterns           |additionallanterns            |1.1.1               |SIDED_SETU|Manifest: NOSIGNATURE         treeharvester-1.21.1-9.1.jar                      |Tree Harvester                |treeharvester                 |9.1                 |SIDED_SETU|Manifest: NOSIGNATURE         jei-1.21.1-forge-19.8.4.113.jar                   |Just Enough Items             |jei                           |19.8.4.113          |SIDED_SETU|Manifest: NOSIGNATURE         stonesmelting-1.21.1-0-forge.jar                  |StoneSmelting                 |stonesmelting                 |1.21.1-0-forge      |SIDED_SETU|Manifest: NOSIGNATURE         waystones-forge-1.21.1-21.1.4.jar                 |Waystones                     |waystones                     |21.1.4              |SIDED_SETU|Manifest: NOSIGNATURE         fallingleaves-1.21-2.4.0.jar                      |Fallingleaves                 |fallingleaves                 |2.4.0               |SIDED_SETU|Manifest: NOSIGNATURE         mcw-paintings-1.0.5-1.21.1forge.jar               |Macaw's Paintings             |mcwpaintings                  |1.0.5               |SIDED_SETU|Manifest: NOSIGNATURE         Clumps-forge-1.21.1-19.0.0.1.jar                  |Clumps                        |clumps                        |19.0.0.1            |SIDED_SETU|Manifest: NOSIGNATURE         saddlemod-0.0.1.jar                               |Saddle Mod                    |saddlemod                     |0.0.1               |SIDED_SETU|Manifest: NOSIGNATURE         comforts-forge-9.0.2+1.21.1.jar                   |Comforts                      |comforts                      |9.0.2+1.21.1        |SIDED_SETU|Manifest: NOSIGNATURE         NaturesCompass-1.21.1-1.11.7-forge.jar            |Nature's Compass              |naturescompass                |1.21.1-1.11.7-forge |SIDED_SETU|Manifest: NOSIGNATURE         dailyquests-1.21.1-1.8.jar                        |Daily Quests                  |dailyquests                   |1.8                 |SIDED_SETU|Manifest: NOSIGNATURE         additional_lights-1.21-2.1.9.jar                  |Additional Lights             |additional_lights             |2.1.9               |SIDED_SETU|Manifest: NOSIGNATURE         deathquotes-forge-1.21-3.3.jar                    |DeathQuotes                   |deathquotes                   |3.3                 |SIDED_SETU|Manifest: NOSIGNATURE         Terralith_1.21.x_v2.5.5.jar                       |Terralith                     |terralith                     |2.5.5               |SIDED_SETU|Manifest: NOSIGNATURE         fusion-1.1.1-forge-mc1.21.jar                     |Fusion                        |fusion                        |1.1.1               |SIDED_SETU|Manifest: NOSIGNATURE         formations-1.0.2-forge-mc1.21.jar                 |Formations                    |formations                    |1.0.2               |SIDED_SETU|Manifest: NOSIGNATURE         skinlayers3d-forge-1.6.7-mc1.21-all.jar           |3d-Skin-Layers                |skinlayers3d                  |1.6.7               |SIDED_SETU|Manifest: NOSIGNATURE         forge-1.21.1-52.0.17-universal.jar                |Forge                         |forge                         |52.0.17             |SIDED_SETU|Manifest: NOSIGNATURE         mcw-paths-1.0.5-1.21.1forge.jar                   |Macaw's Paths and Pavings     |mcwpaths                      |1.0.5               |SIDED_SETU|Manifest: NOSIGNATURE         forge-1.21.1-52.0.17-client.jar                   |Minecraft                     |minecraft                     |1.21.1              |SIDED_SETU|Manifest: NOSIGNATURE         trade-cycling-forge-1.21.1-1.0.15.jar             |Trade Cycling                 |trade_cycling                 |1.21.1-1.0.15       |SIDED_SETU|Manifest: NOSIGNATURE         EnchantmentDescriptions-forge-1.21.1-21.1.4.jar   |EnchantmentDescriptions       |enchdesc                      |21.1.4              |SIDED_SETU|Manifest: NOSIGNATURE         MouseTweaks-forge-mc1.21-2.26.jar                 |Mouse Tweaks                  |mousetweaks                   |2.26                |SIDED_SETU|Manifest: NOSIGNATURE         configuration-forge-1.21.1-3.1.0.jar              |Configuration                 |configuration                 |3.1.0               |SIDED_SETU|Manifest: NOSIGNATURE         new_slab_variants-forge-1.21.1-3.0.1.jar          |New Slab Variants             |new_slab_variants             |3.0.1               |SIDED_SETU|Manifest: NOSIGNATURE         inventorytotem-1.21.1-3.3.jar                     |Inventory Totem               |inventorytotem                |3.3                 |SIDED_SETU|Manifest: NOSIGNATURE         darkloot-forge-1.21-1.2.9.jar                     |DarkLoot                      |darkloot                      |1.2.9               |SIDED_SETU|Manifest: NOSIGNATURE         spectrelib-forge-0.17.2+1.21.jar                  |SpectreLib                    |spectrelib                    |0.17.2+1.21         |SIDED_SETU|Manifest: NOSIGNATURE         packedup-1.0.30b-forge-mc1.21.jar                 |Packed Up                     |packedup                      |1.0.30+b            |SIDED_SETU|Manifest: NOSIGNATURE         Iceberg-1.21-forge-1.2.5.jar                      |Iceberg                       |iceberg                       |1.2.5               |SIDED_SETU|Manifest: NOSIGNATURE         Highlighter-1.21-forge-1.1.11.jar                 |Highlighter                   |highlighter                   |1.1.11              |SIDED_SETU|Manifest: NOSIGNATURE         MerchantMarkers-1.21-forge-1.3.5.jar              |Merchant Markers              |merchantmarkers               |1.3.5               |SIDED_SETU|Manifest: NOSIGNATURE         Storage Drawers-forge-1.21-13.7.1.jar             |Storage Drawers               |storagedrawers                |13.7.1              |SIDED_SETU|Manifest: NOSIGNATURE         smeltingsand-1.21.1-11-forge.jar                  |SmeltingSand                  |smeltingsand                  |1.21.1-11-forge     |SIDED_SETU|Manifest: NOSIGNATURE         regrowth-1.21.1-52.31.3.jar                       |Regrowth                      |regrowth                      |52.31.3             |SIDED_SETU|Manifest: NOSIGNATURE         inventoryhud.forge.1.21.1-3.4.26.jar              |Inventory HUD+                |inventoryhud                  |3.4.26              |SIDED_SETU|Manifest: NOSIGNATURE         betterarcheology-1.2.1-1.21.1.jar                 |Better Archeology             |betterarcheology              |1.2.1-1.21.1        |SIDED_SETU|Manifest: NOSIGNATURE         modonomicon-1.21.1-forge-1.108.1.jar              |Modonomicon                   |modonomicon                   |1.108.1             |SIDED_SETU|Manifest: NOSIGNATURE         XaeroPlus-2.24.3+forge-1.21-WM1.39.0-MM24.5.0.jar |XaeroPlus                     |xaeroplus                     |2.24.3              |SIDED_SETU|Manifest: NOSIGNATURE         XaerosWorldMap_1.39.0_Forge_1.21.jar              |Xaero's World Map             |xaeroworldmap                 |1.39.0              |SIDED_SETU|Manifest: NOSIGNATURE         Xaeros_Minimap_24.5.0_Forge_1.21.jar              |Xaero's Minimap               |xaerominimap                  |24.5.0              |SIDED_SETU|Manifest: NOSIGNATURE         portabletanks-1.1.7-forge-mc1.21.jar              |Portable Tanks                |portabletanks                 |1.1.7               |SIDED_SETU|Manifest: NOSIGNATURE         connectedglass-1.1.11-forge-mc1.21.jar            |Connected Glass               |connectedglass                |1.1.11              |SIDED_SETU|Manifest: NOSIGNATURE         mvw-2.3.3b_beta.jar                               |MoreVanillaWeapons            |mvw                           |2.3.3b_beta         |SIDED_SETU|Manifest: NOSIGNATURE     Crash Report UUID: 27a54f81-da06-4a1d-ae66-e4bc3ff4b369     FML: 0.0     Forge: net.minecraftforge:52.0.17
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.