Forge Version: 1.12-14.21.1.2387
Minecraft Version: 1.12
Downloads:
Changelog (Direct)
Windows Installer (AdLink) (Direct)
Other Installer (AdLink) (Direct)
MDK (AdLink) (Direct)
Universal (AdLink) (Direct)
Minecraft 1.12 has been released! And we have finally gotten the big breaking changes in and Forge should be in a fairly stable state!
1.12 has brought a lot of changes, most notably the new Json based recipe system. This was a major hurdle to get over as we had to expand this system to support modded recipes. And to support the many different ways modders interact with crafting. We also had to re-write a large section of internal Forge code due to how Mojang implemented the new crafting guide book. Mojang also is now forcing Java 8 in the vanilla client. Which broke quite a few things related to how we decompile Minecraft itself. Which required me to re-write large portions of the decompiler we use. Overall there was a lot of things changed and due to this there are no doubt still issues in these systems. However I am wanting to push out this release so that we can switch the official development to 1.12 versions. This is also a signal to modders who have already adopted 1.12 {There are a lot of you, this is very encouraging!} that we have stabilized our API. Which means no more intentionally breaking everyone's mods <3
So I hope you guys will stick with us, and I apologize for the delay in getting this first build out.
The Recipe System:
1.12 introduced a new JSON based recipe system. Like all systems Forge has had to expand this to support the things that modders want to do. To that extent if you are a modder please read this gist. That is my initial comments and design ideas for the JSON based system. My intention is that someone from the community who is better at writing documentation then I am will come along and convert that to proper docs in our documentation repo. *Hint Hint*
Registry Rewrite:
One of the core feature of Forge has been the Block/Item registry system. This is what has allowed us to internally manage the ids, world saves, all that stuff. This system has expanded from it's original implementation of just Blocks/Items to a lot of things. Biomes, Entities, Potions, Enchantments, and now Recipes. This is the system that has allowed users and mod pack creators to not need to care about ID conflicts anymore. With recipes being added to this system it has required a MAJOR rewrite of how it works. However this re-write is for the better as it fleshes out and fixes some features that were not fully supported in the older version. There are however things people need to know.
Users: Due to the re-write being a great time to delete old complicated, sadly we have had to remove support for updating <1.10 worlds. It is recommended that you load the world using 1.11.2 Forge so it can do the legacy upgrade and THEN load it with 1.12. And as always with anything related to updating worlds between Minecraft versions, we recommend that you make backups of your world before hand!
Modders: It is now recommended and HIGHLY encouraged that you use the RegistryEvent.Register<T> functions when creating your block, items, potions, recipes, etc... These events have changed to being fired after pre-init. If you use these events you will better suited for the future when we introduce reloading mods dynamically at runtime. Basically.. use these events!
Modders: Substitutions and @ObjectHolders have got a major enhancement, things should be a lot simpler to use now!
Minecraft Forge 14.21.1 Changelog:
============================================================================
New:
MAJOR rewrite of the Registry system
Dropped world loading support for <1.10 worlds. Load them in 1.11.2 before updating to 1.12.
New JSON recipe loading system enhancements.
Added support to vanilla JSONS to specify NBT data in output.
MissingMappingEvent is now fired for ALL registries
@ObjectHolders and overriding should now be supported on ALL registries.
Added AnimalTameEvent for Parrots.
Forced Block/Item.getSubItems method to be available on the server side.
Bug Fix:
Fixed crash related to player names
Fix NPE in config menu with custom keybinds.
Fixed exception in ShapedOreRecipe.checkMatch for recipes that don't fill entire crafting grid
Fixed bug SPacketLoginSuccess when in development environments.
Fixed exception related to vanilla clients connecting to a Forge server.
Fixed NoteBlockEvent not supporting new vanilla instruments.
Fixed Universal bucket handling for Fluids with NBT
Just wanted to reiterate this again, BACKUP your worlds! And to properly report any issues you run into. This means including your fml log!