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

Forge 14.23.4 Minecraft 1.12.2

Recommended Posts

Forge Version: 1.12.2-

Minecraft Version: 1.12.2



1.13 prep is still moving along, I've been spending a lot of time working on the backend tools to make decompiling and working with 1.13 a bit easier. Cpw is still working on the re-write of FML for Java9+ and 1.13. 

However, development on 1.12 has not stopped, we've gone through and cleaned up a lot of things, as well as properly introduced a better library management system. So, it's about time for a new release.



For a long time Forge has supported the ability to have multiple jar files extracted at startup from mods. Allowing modders to distribute required dependencies in a single download for end user convince. However, this feature has not been used often. After getting some modder feedback I have re-written the majority of this system. We need volunteers to write full documentation for this feature, however here is a quick rundown.

Mods will now be extracted to a central maven style libraries directory. Forge will attempt to find this using the normal launcher layout, however the path can be overridden using "-Dforge.lib_folder={LibraryFolder}"

Mods CAN be automatically moved to this libraies folder by Forge, however this is disabled by default due to people thinking it'll be confusing to users. Enable it using  "-Dforge.enable_auto_mod_movement=true"

To define a contained dependency modders must add the "ContainedDeps" entry to their MANIFEST file. This is a space separated list of files in the mod jar to be extracted. The files can be located under the jar root, or META-INF/libraries/.

Libraries can specify a maven style artifact identifier in their MANIFEST file, and it will be extracted to the correct library folder. Example: Maven-Artifact: net.minecraftforge:forge:1.12.2-

If two mods contain a dependency on the same maven artifact, the highest version will be loaded. This fixes issues where two mods ship a API, and one crashes because the older version was used.

For 3rd party dependancies that do not have the Maven-Artifact manifest entry, you may specify a custom MANIFEST by adding a {FullJarNameIncluding.jar}.meta file next the original file.

More information and examples should be forthcoming as modders start working with this feature. So don't be afraid to ask.



Minecraft Forge 14.23.4 Changelog:



  • JSON based annotation caching. To help speed up load time. Disabled by default due to lack of modder feedback. Enable with -Dfml.enableJsonAnnotations=true
  • Removal of Mercurius, failed experiment. It has been disabled for months.
  • Added function to BufferBuilder to directly insert byte data.
  • Improve the "Mod rejections" error message when connecting to a server
  • Added hook to allow specifying specific modids for sub-blocks and items.
  • New hook to allow better management of rendering special items in inventories.
  • Added fences and fence gates to the ore dict.
  • Improved memory performance of rotated models.
  • New hook to allow sleeping in custom dimensions that don't allow respawning.
  • New hook to control specific mob greifing rules.
  • New performance hook to unload unused worlds.
  • New function to list biome types.
  • Added ability to send packets to everyone around a point in the world.
  • New ITeleporter interface allowing easier control of inter-dimension teleportation.
  • New feature in World Workers allowing delaying without finishing.
  • Improved missing mod dependency error screen.
  • New library/contained dependency management system.
  • Added protection against BungeeCord servers sending invalid data to the client.
  • Enhanced startup error handling and displaying.
  • Added supports for redirects when doing mod version checks.
  • Added original ChunkPos to decoration events.
  • Added ability for custom models to have per-state lighting.
  • Added an event to control nether portal formation.
  • Added formatting support for status messages.
  • Improved memory usage of multipart models.
  • Moved dedicated server's EULA check to be called earlier.

Bug Fix:

  • Fixed non-deterministic order in deserialised Forge blockstates
  • Fixed culling of generated item models with non-default transforms 
  • Fixed incorrect dimension ID being used for maps
  • Fixed vanilla crash classes not being preloaded.
  • Fixed ForgeChunkManager performance issue by moving writing off thread.
  • Fixed various vanilla blocks loading unloaded chunks.
  • Fixed issues with smooth lighting code and translucent blocks.
  • Fixed serverside startup failure when checking for vanilla acceptance.
  • Fixed error caused by FakePlayers using commands.
  • Fixed client hang on internal server crash.
  • Fixed performance issue related to blockstate lighting.
  • Fixed lookupFluidForBlock not working for flowing water and lava.
  • Fixed log4j config for mojang launcher changes.
  • Fixed various issues related to unclosed resources.
  • Fixed NBT data loss when shift-clicking stacked items in the enchantment table (MC-17431).
  • Fixed sound engine crash when stopping streaming sounds.
  • Fixed entities sometimes not rendering when above/below the world.
  • Fixed issue causing players to be lost from chunk tracking during teleportation.
  • Fixed performance issue in ItemStack.
  • Fixed exit logger printing wrong stack elements.
  • Fixed fences and walls sometimes not connecting to vanilla blocks.
  • Fixed cryptic error caused by server watchdog.
  • Fixed players not hearing pickup sound when given via machines.
  • Fixed Spectator mode particles and sounds computed from where you have been before (MC-46445).
  • Fixed EntityPlayer firing LivingAttackEvent twice for the same attack.
  • Fixed the warning logged for cascading world gen.
  • Fixed armor bar dissappearing when moving dimensions. (MC-88179)
  • Fixed vanilla duplication exploit.
  • Fixed Forge's world gen command overloading the save thread. (Slowed it down so the save thread could keep up)
  • Fixed FluidUtil.getFluidHandler skipping some fluid tile entities.
  • Fixed events firing when the game has already crashed during loading.
  • Fixed dragon fight not initialising correctly under some circumstances.
  • Fixed overrides typo in saving registry data.
  • Fixed MC-123363: Stop rendering removed tile entities
  • Fixed client world memory leak.
  • Fixed activator rails incorrectly powering wrong vanilla rails.
  • Fixed typo in validation of vanilla registry wrappers
  • Fixed vanilla performance issue in lighting code.
  • Fixed race condition causing dedicated server block mappings to shift.
  • Fixed runtime deobfusction issue related to modified classes.
  • Fixed various Particles glitchy movement (MC-12269).
  • Fixed possible NPE when calling Loader.getIndexedModList
  • Fixed some light-emitting blocks letting light through (MC-119932).
  • Fixed farmer villagers not re-planting modded crops when they harvested them.
  • Fixed memory leaks in EnchantmentHelper (MC-128547).
  • Fixed parameter inconsistency in IFieldWrapper
  • Fixed language parsing for creating the java locale.
  • Fix Forge bucket not declaring all texture dependencies.
  • Thanks 1

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 post
Share on other sites
This topic is now closed to further replies.

  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Maybe recheck the code a couple of times? Im just a random guy who found this post  
    • world stops loading at 53%2021-04-18-1.log.gz
    • Try to swich versions of the game, if that dest work try to install the game again.
    • Hello There! Yes I know it's been a while and there are reasons that I explain in this video! But in this video talk about some pretty cool updates and announcements to the channel that I am super excited to share with you guys! Also yes this was filmed on the Hive about a day before it shut down! I hope you all enjoy this video and if you did don't forget to like and sub for more!  
    • Hi, I'm trying to create an entity based of a minecart but the entity appears to be invisible and unable to be interacted with. I'm not seeing any errors in the debug log. I have included my entity and renderer. I have not added any attributes to this entity as I don't think there is any way to add them to minecarts. I added a message during ticks that appears when its alive but the minecart itself does not. public class TrainEntity extends AbstractMinecartEntity { public TrainEntity(EntityType<?> p_i50126_1_, World p_i50126_2_) { super(p_i50126_1_, p_i50126_2_); } public TrainEntity(World p_i1723_1_, double p_i1723_2_, double p_i1723_4_, double p_i1723_6_) { super(EntityRegister.TRAINENTITY.get(), p_i1723_1_, p_i1723_2_, p_i1723_4_, p_i1723_6_); } public static final String REG = "train_entity"; @Override public Type getMinecartType() { return AbstractMinecartEntity.Type.RIDEABLE; } public ActionResultType interact(PlayerEntity p_184230_1_, Hand p_184230_2_) { ActionResultType ret = super.interact(p_184230_1_, p_184230_2_); if (ret.consumesAction()) return ret; if (p_184230_1_.isSecondaryUseActive()) { return ActionResultType.PASS; } else if (this.isVehicle()) { return ActionResultType.PASS; } else if (!this.level.isClientSide) { return p_184230_1_.startRiding(this) ? ActionResultType.CONSUME : ActionResultType.PASS; } else { return ActionResultType.SUCCESS; } } @Override public void tick() { super.tick(); STAR.LOGGER.debug("STAR - Training Hard"); } public class TrainEntityRender<T extends TrainEntity> extends EntityRenderer<T> { protected final EntityModel<T> model = new CreeperModel<>(); public TrainEntityRender(EntityRendererManager p_i46155_1_) { super(p_i46155_1_); this.shadowRadius = 0.7F; } @Override public ResourceLocation getTextureLocation(TrainEntity p_110775_1_) { return new ResourceLocation(STAR.MODID, "textures/entity/purple_thing.png"); } @Override public void render(T p_225623_1_, float p_225623_2_, float p_225623_3_, MatrixStack p_225623_4_, IRenderTypeBuffer p_225623_5_, int p_225623_6_) { super.render(p_225623_1_, p_225623_2_, p_225623_3_, p_225623_4_, p_225623_5_, p_225623_6_); //Bunch of other stuff copied from the MinecartRenderer p_225623_4_.scale(-1.0F, -1.0F, 1.0F); this.model.setupAnim(p_225623_1_, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F); IVertexBuilder ivertexbuilder = p_225623_5_.getBuffer(this.model.renderType(this.getTextureLocation(p_225623_1_))); this.model.renderToBuffer(p_225623_4_, ivertexbuilder, p_225623_6_, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F); p_225623_4_.popPose(); STAR.LOGGER.debug("STAR - RENDER"); } protected void renderMinecartContents(T p_225630_1_, float p_225630_2_, BlockState p_225630_3_, MatrixStack p_225630_4_, IRenderTypeBuffer p_225630_5_, int p_225630_6_) { Minecraft.getInstance().getBlockRenderer().renderSingleBlock(p_225630_3_, p_225630_4_, p_225630_5_, p_225630_6_, OverlayTexture.NO_OVERLAY); } } Event Register: @SubscribeEvent public static void onClientSetupEvent(FMLClientSetupEvent event) { LOGGER.info("STAR - Client Setup"); //Other renderers RenderingRegistry.registerEntityRenderingHandler(EntityRegister.TRAINENTITY.get(), TrainEntityRender::new); } Any help would be greatly appreciated. 
  • Topics

  • Who's Online (See full list)

  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.