Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Forge 12.18.1 Minecraft 1.10.2


Recommended Posts

Forge Version: 1.10.2-

Minecraft Version: 1.10.2



1.10.2 is out, stable, and ready to go.

It is 99.9999% binary compatible with 1.9.4 so there is NO excuse NOT to update.

Coremods may break or do weird things but modders shouldnt be making coremods because thats BAD!

So lets get to it!


Minecraft Forge 12.18.1 Changelog:



  • Make 1.9.4 mods load! Thanks to compiling for SRG names this means most 1.9.4 mods will work on 1.10/.2!!
  • New Simple implementation of a Open/Close container event
  • Added Big warning for recipe types found without being registered, it turns out this is pretty severe, modders need to fix it.
  • Added loading of mod lists from jsons in the mods folder.
  • New throwable impact event
  • New event that allows to modify the looting level based on damage source


Bug Fix:

  • Fixed keys with KeyModifier failing to load
  • Fixed item pickup dupe bugs.
  • Fixed issue with mipmaps when users use a debug flag.
  • Fixed Missing blocks/items/registries prompt often getting stuck.
  • Fixed comparison stability of the Recipe Sorter with unknown recipes
  • Fixed FluidContainerRegistry handling potions as water bottles
  • Fixed milk bucket is fillable with water or lava when milk is unregistered
  • Fixed legacy handling for ItemBucket subclasses and non-universal buckets
  • Fixed mob-spawners crashing for non-living entities
  • Fixed villages generating to high when using a cusom sea level.
  • Restore buggy behavior of vanilla BlockPistonMoving and ignore drop chance
  • Fixed FPS graph and new debug lines not being rendered in Debug screen.
  • Fixed hopper extract behavior being broken on edge cases due to IItemHandler capability.



Forge has now officually change it's license from the homebew 'Minecraft Forge License' that we have used into the past to the industry standard LGPL v2.1.

You can see a full copy of the license here: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt

FML has always been licensed as LGPL, this just extends it to cover the rest of Forge.

We have also enacted a CLA for anyone who submits code to Forge that better protects us when we accept the code.

The basic TLDR of the new license is that you guys can do exactly the same things you were doing before.

Use Forge however you wish, just don't claim as your own, give credit where credit is due.


Mod List JSON:

Forge, for a long time has had support for providing a JSON file that tells it what mods to load.

The intention is to have mods installed in one central place and not have to have them copied eveywhere.

Forge has expanded this to automatically read the 'mod_list.json' file in the mods folder, and the mods/MCVERSION folder.

You can read the specs on the JSON format here: https://github.com/MinecraftForge/FML/wiki/New-JSON-Modlist-format

One modification is that if the reporitoryRoot starts with 'absolute:' then the path is NOT relative to the MC directory.

This allows you to have on central repo for your entire system!

People who write mod pack installers should use this system to save MASSIVE amounts of space on the users computer and to make the mods folder far more orginized!


I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Patreon: http://www.patreon.com/lexmanos
Paypal: http://paypal.me/LexManos

BitCoin: 1Q8rWvUNMM2T1ZfDaFeeYQyVXtYoeT6tTn

Link to comment
Share on other sites

This topic is now closed to further replies.

  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • You have invtweaks which is a mod for minecraft 1.16 and you have the version of jade for minecraft 1.18. Neither of these mods will work with minecraft 1.19   The 1.19 version of jade can be found here: https://www.curseforge.com/minecraft/mc-mods/jade/files/all?filter-game-version=1738749986%3a73407  
    • my ForgeSlider can't drag , it can only be click ,I'm not sure if I'm doing something wrong this is my Screen code public class MannequinScreen extends AbstractContainerScreen<MannequinMenu> { private EditBox NameBox; private final MannequinEntity mannequin; public final MannequinMenu menu; private ForgeSlider xRotationSlider; private ForgeSlider yRotationSlider; private ForgeSlider zRotationSlider; private ForgeSlider scaleSlider; private CycleButton<Part> partButton; private Part nowPart; private Rotations rotations; private float xMouse; private float yMouse; private static final ResourceLocation TEXTURE = new ResourceLocation(KpRandomThing.MODID, "textures/gui/mannequin.png"); public MannequinScreen(MannequinMenu container, Inventory inventory, Component text) { super(container, inventory, text); this.imageWidth = 176; this.imageHeight = 210; this.mannequin = container.mannequin; this.menu = container; } @Override public void render(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks) { this.renderBackground(matrixStack); super.render(matrixStack, mouseX, mouseY, partialTicks); this.renderTooltip(matrixStack, mouseX, mouseY); this.xMouse = mouseX; this.yMouse = mouseY; } @Override protected void renderBg(PoseStack matrixStack, float partialTicks, int gx, int gy) { RenderSystem.setShaderColor(1, 1, 1, 1); RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.setShaderTexture(0, TEXTURE); GuiComponent.blit(matrixStack, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight, this.imageWidth, this.imageHeight); RenderSystem.disableBlend(); int width = (this.width - this.imageWidth) / 2; int height = (this.height - this.imageHeight) / 2; InventoryScreen.renderEntityInInventory(width + 46, height + 106, 30, (float) (width + 51) - this.xMouse, (float) (height + 75 - 50) - this.yMouse, this.mannequin); } @Override public void init() { super.init(); this.minecraft.keyboardHandler.setSendRepeatsToGui(true); NameBox = new EditBox(this.font, this.leftPos + 6, this.topPos + 4, 99, 20, new TextComponent("name")); NameBox.setMaxLength(60); this.addRenderableWidget(NameBox); Button rename = new Button(this.leftPos + 114, this.topPos + 4, 54, 20, new TextComponent("Rename"), onPress -> { if (!NameBox.getValue().isEmpty()) { KpRandomThing.INSTANCE.sendToServer( new MessagePacket(1, new TextComponent(NameBox.getValue()))); } }); this.addRenderableWidget(rename); int sliderX = this.leftPos + 92; int sliderY = this.topPos + 5; this.partButton = createPartButton(sliderX, sliderY + 80); this.addRenderableWidget(partButton); rotations = this.partButton.getValue().getPose(mannequin); this.xRotationSlider = createAngleSlider(sliderX, sliderY + 20, 74, 20, "X:", rotations.getX()); this.yRotationSlider = createAngleSlider(sliderX, sliderY + 40, 74, 20, "Y:", rotations.getY()); this.zRotationSlider = createAngleSlider(sliderX, sliderY + 60, 74, 20, "Z:", rotations.getZ()); this.scaleSlider = new ForgeSlider(sliderX, sliderY + 100, 74, 20, new TranslatableComponent("button.kp_random_thing.scale"), TextComponent.EMPTY, 0.1, 2, mannequin.getScale(), 0, 2, true); this.addRenderableWidget(xRotationSlider); this.addRenderableWidget(yRotationSlider); this.addRenderableWidget(zRotationSlider); this.addRenderableWidget(scaleSlider); } @Override protected void renderLabels(PoseStack poseStack, int mouseX, int mouseY) { } @Override public boolean mouseReleased(double xMouse, double yMouse, int id) { updata(); return super.mouseReleased(xMouse, yMouse, id); } @Override public boolean keyPressed(int key, int b, int c) { if (key == 256) { this.minecraft.player.closeContainer(); return true; } return super.keyPressed(key, b, c); } private void updata() { if (nowPart != partButton.getValue()) switchPart(); String name = partButton.getValue().name; double x = xRotationSlider.getValue(); double y = yRotationSlider.getValue(); double z = zRotationSlider.getValue(); double scale = scaleSlider.getValue(); KpRandomThing.INSTANCE.sendToServer(new MessagePacket(0, x, y, z, scale, new TextComponent(name))); } private void switchPart() { Rotations rotations = partButton.getValue().getPose(mannequin); this.xRotationSlider.setValue(rotations.getX()); this.yRotationSlider.setValue(rotations.getY()); this.zRotationSlider.setValue(rotations.getZ()); this.nowPart = partButton.getValue(); } private CycleButton<Part> createPartButton(int width, int height) { CycleButton<Part> button = CycleButton.builder(Part::getName).withValues(Part.values()).create(width, height, 80, 20, new TranslatableComponent("button.kp_random_thing.part")); return button; } private ForgeSlider createAngleSlider(int x, int y, int width, int height, String prefix, double currentValue) { return new ForgeSlider(x, y, width, height, new TextComponent(prefix), TextComponent.EMPTY, -180D, 180D, currentValue, 0, 2, true); } public enum Part { HEAD(MannequinEntity.DATA_HEAD_POSE, MannequinEntity.HEAD), BODY(MannequinEntity.DATA_BODY_POSE, MannequinEntity.BODY), LEFT_ARM(MannequinEntity.DATA_LEFT_ARM_POSE, MannequinEntity.LEFT_ARM), RIGHT_ARM(MannequinEntity.DATA_RIGHT_ARM_POSE, MannequinEntity.RIGHT_ARM), LEFT_LEG(MannequinEntity.DATA_LEFT_LEG_POSE, MannequinEntity.LEFT_LEG), RIGHT_LEG(MannequinEntity.DATA_RIGHT_LEG_POSE, MannequinEntity.RIGHT_LEG); final EntityDataAccessor<Rotations> dataPose; final String name; Part(EntityDataAccessor<Rotations> dataPose, String name) { this.dataPose = dataPose; this.name = name; } public Rotations getPose(ArmorStand entity) { if (entity == null) { return new Rotations(0, 0, 0); } return entity.getEntityData().get(dataPose); } public Component getName() { return new TranslatableComponent("button.kp_random_thing.part." + name); } } }  
    • Hello, I am trying to install client-side mods, to better my minecraft experience on servers, but I run into a few issues with some dependencies missing, so I would like if someone would be able to help me.  Here are the following errors: Error loading mods 3 errors have occurred during loading --------------------------------------- InventoryTweaksRenewed(invtweaks) has failed to load correctly java.lang.NoClassDefFoundError:net/minecraft/client/gui/widget/Widget Jade(jade) has failed to load correctly java.lang.NoClassDefFoundError:net/minecraftforge/event/entity/EntityJoinWorldEvent Waila(Jade)(waila)has failed to load correctly java.lang.NoClassDefFoundError:net/minecraftforge/client/event/ClientPlayerNetworkEvent$LoggedOutEvent Here is a pastebin of the crash report: https://pastebin.com/uMxfcUP3
    • You don't show the error, or minecraft version or any other useful information. "It keeps on crashing and I can't get it to load" is useless.   The github project you posted is incomplete. It has no build.gradle, etc. so we can't build it ourselves to find out the problem you have.   GUESSING: I can see a number of obvious problems with your code:   1) https://github.com/Tucky143/Buzz/blob/a03ffc801f439a095e9c272dff6510970543f0e2/src/main/java/com/example/examplemod/villager/ModVillagers.java#L29 Here you are doing instance equality tests for a Holder<PoiType> with a PoiType. This will never be true.   2) https://github.com/Tucky143/Buzz/blob/a03ffc801f439a095e9c272dff6510970543f0e2/src/main/java/com/example/examplemod/villager/ModVillagers.java#L36 That reflection code does nothing. Look at the method you are calling. Although I suspect you can't find it. The signature of the method you are using is for 1.18.x while the above methods you are using in (1) above are the signatures of methods in 1.19.x    
  • Topics

  • Create New...

Important Information

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