MCreator 2025.2 - The biggest update to date

Published by Klemen on
Minecraft mod maker MCreator 2025.2 adding custom block animations, GUI sync, vibrations to blocks and entities and more

The largest MCreator update in history has just dropped. This update is packed with so many new features, so make sure to check it out!

Block animations and Java models

This update adds support for using custom Java models on your blocks. This includes fixed basic animations defined during the model import. But it does not stop there, read more below.

Custom Minecraft block animations in game made using MCreator Minecraft mod maker

This update also adds the same animation system for custom animations as for living entities. You can apply the same animations you designed in e.g., Blockbench to your custom blocks. See an example of playing a custom block animation when the block is placed below.

Custom Minecraft block animations designed in Blockbench and imported into Minecraft mod maker

GUI client to server sync

This update fixes a year-old problem. How to use data entered in text fields and checkboxes for server-side action procedures. Data entered in custom GUIs made with this mod-making software will now automatically be synced, meaning one can query the value of input fields in GUIs from any side desired. The old guistate dependency was also replaced with entity dependency requirement, allowing one to check the GUI input fields' state from any procedure trigger that provides the entity dependency.

Example of syncing of the client-side data in the GUI to the Minecraft server

Custom Minecraft banners

MCreator 2025.2 makes it possible to make custom Minecraft banners using the new banner mod element. You can customize the banner and banner-on-shield texture, and also specify pattern items to unlock the pattern if desired. MCreator also generates the banner pattern preview in the mod element editor for convenience!

Custom Minecraft banners made using MCreator mod maker

Minecraft vibrations/game events system support

This MCreator update introduces support for vibration/game event sensitivity to both custom Minecraft blocks and custom Minecraft entities. Below, you can see what the configuration looks like in the block editor, but a similar system is present for entities. This allows one to detect game events such as walking, explosions, eating, drinking, vibrations, sound plays, and more in a very efficient and streamlined way.

Custom Minecraft block detecting explosions and teleport events

To demonstrate the capabilities of this new system, we have created a custom living entity that explodes when a goat horn is played by detecting the "goat horn play" game event/vibration. The system is built into the game, so it is very efficient and also cross-mod compatible.

Custom Minecraft living entity reacting to the goat horn play

We did not only care about sensing, but also about emitting the vibrations. We have added a procedure block that allows you to trigger vibrational events at a given location, optionally also specifying the entity that caused the vibration.

Custom procedure block to trigger Minecraft vibrations in MCreator Minecraft mod maker version 2025.2

Custom Minecraft item Java models

We not only added support for Java models to blocks, but also to items. See the creeper Java model being used as a handheld item in the example below!

Custom Minecraft items with Java creeper model

Alternative item GUI textures

With the custom Minecraft Java models, but also JSON and OBJ models, there is sometimes a need to render an alternative representation in the inventory slots. This is especially needed for large models that otherwise stick out of the slots. This is now possible without any custom JSON codes!

Alternative item representation for inventory render in Minecraft

Minecraft entity attack animations

The custom Minecraft entity animations system added in MCreator 2025.2 has also been improved. We have added a new procedure block that allows one to trigger animations on swing attacks. Just make sure to use monster behavior type, as creatures can't do swing attacks!

Custom Minecraft entity attack swing animations

Custom recipe unlock items

One can now define recipe unlock items, and MCreator will handle the rest for you. MCreator also automatically handles unlock items of simpler recipes such as smelting.

Defining custom Minecraft recipe unlock items with a convenience of a right click in MCreator

Legacy Material system removal

MCreator 2025.2 now fully removes the material system. It has not existed in Minecraft for a while now, and our system was just handling some of the parameters internally for you. Now, instead of doing this behind the scenes, you can manually define a note block instrument and whether a block is ignited by lava without depending on the preset list of legacy materials.

Defining not block instrument sound for custom Minecraft blocks added in a Minecraft mod

Custom block item properties

This is a big one! Custom blocks and plants can now define the item representation parameters, such as max stack size, rarity, fire immunity, and most importantly, if the block has item form at all. If this is disabled, the block will not be obtainable in inventory or via commands and can only be placed in the world by worldgen or procedures, similar to, e.g, Minecraft portal blocks.

An option to disable item representation of custom Minecraft blocks in modded Minecraft

Stack size up to 99

Speaking of item parameters, the stack size of all custom items and slots in MCreator now go up to 99, which is also the new limit of the game itself for a few releases now. Following the standards!

Custom items made with Minecraft mod maker having a stack size of 99

Projectiles without gravity

We have added a new parameter to the custom projectile mod element, allowing one to disable the gravity for them, meaning they will fly in a straight line. Just be careful, this means if fired in the air, the projectile will fly, well, in a straight line, theoretically infinitely :D Realistically, they will despawn after a while, but still good to keep that in mind! ;)

One can now make custom Minecraft projectiles that are no affedcted by the gravity

Villager model item renderer

Built-in Minecraft villager model got item renderer, meaning custom Minecraft living entities using this model will now render the item held in the main-hand automatically.

Custom Minecraft living entity made with MCreator rendering main-hand item

Procedure improvements

As with almost every update of MCreator, we did not forget to do some MCreator procedure system improvements. After all, this is where all the magic of advanced mods happens!

Global trigger parameters

One of the bigger additions to procedures are new procedure blocks to alter parameters of global triggers, allowing one to intercept things like fall event and set the fall distance to a custom value, or e.g., intercept entity damage event and not only cancel it, but also alter the damage value that should be passed.

New global trigger parameter procedure blocks in MCreator

Spawn entity and get its reference procedure block

This a a very convenient one! One can now spawn the entity and immediately get its reference. The reference would usually then be stored in a local variable for further use inside the procedure. This allows one to do further modifications to the entity immediately after spawning, e.g., setting items in its inventory, changing its NBT data, and more!

A procedure block to spawn the entity and get its reference

Forced decimal division

Until this update, division by MCreator was programmer-like, meaning division of two integers resulted in a rounded-down integer, even if the true result would be a decimal number. As this is confusing for non-programmers, the existing division procedure was renamed to "/ (programmer)" and a new true "/" decimal division operator was added, which always assures the division result is a decimal number. To maintain backwards compatibility, existing division operators in existing procedures will remain the old "/ (programmer)", but the users can replace them with the new division manually if desired. See some examples in the image below.

New improved divison procedure blocks in MCreator 2025.2

Option to skip dependency null checks

This one is a bit more complex, but super useful for advanced procedure writers. To prevent crashes that beginners would not understand, by default, MCreator requires all dependencies that can be null not to be null. One major example is entity dependencies. If the procedure uses, e.g., both source and target entity dependencies, both need to be non-null for the procedure to run.

However, this may not always be the case, and in those cases, the procedure would currently not run. One can now disable those null checks, but this requires them to then manually check if the entity is not null. Therefore, this is an advanced feature that only experienced procedure users should use.

Example of how the code changes if one disables the dependency null check in MCreator mod maker

New null check procedure blocks

Now, to the null checks we mentioned above. Previously, one had to do is same entity as a check, but now we have universal null and not null checks in MCreator. See some examples below.

New null check procedure blocks in MCreator 2025.2

File watching system

MCreator 2025.2 will monitor workspace files for external changes for both mod-making and resource pack-making editors. When an external change to textures is detected, MCreator will automatically reload the textures and clear the old texture caches. You no longer have to restart MCreator to wipe the preview cache to prevent being stuck on old textures :)

MCreator detecting external file changes on the fly

Image editor improvements

The Minecraft image editor has received some improvements, too. One of the more notable ones is single-key tool shortcuts, allowing one to have a Photoshop-like experience when switching between tools.

Improved image editor keyboard shortcuts

Image editor layer storage system

This one is a very important one. MCreator will now, by default, store image layers and selection information of the images you are editing, allowing you to pick up the texture editing session later down the line and alter the texture layer by layer, as if it were just created. How convenient!

Layer storage system

Mod element editor parameter search

The searching system has some improvements too. Anywhere in the software, pressing the Shift key twice, the relevant search utility will focus or open.

A new search system has also been added to all multi-page mod element editors, allowing one to quickly find the page where the parameter you are looking for is located. The parameter will also be highlighted for you. Check out the example below to see how convenient that is!

A convenient system to quickly search for parameters in the Minecraft mod element editors

Custom files in the mod Java package

Last but not least, a huge one for the users who combine custom Minecraft mod code with MCreator's generated code. MCreator no longer removes user-provided files from the mod Java package. This means one can effectively combine custom files written in an IDE with generated files in the same folder without any negative consequences.

One can now put custom mod files in the default mod Java package without the code generator removing them

Minecraft Forge 1.20.1

As with MCreator 2025.1, there is no built-in support for Minecraft Forge 1.20.1 anymore. However, we are currently still maintaining the plugin for Minecraft Forge 1.20.1. Check the plugin page for more information on the development progress and when 2025.2 support will be complete. Consider donating if you want to help us port faster and port more of the new features to this plugin!

MCreator for Minecraft Forge 1.20.1

Release notes

  • The existing number division procedure operator was renamed to "/ (programmer)" and does not convert to a decimal number if both inputs are integers. If you want to avoid custom workarounds for this problem, remove them where needed and use the new decimal division math operator "/" instead.
  • Custom animal baby entity models are now scaled the same as the bounding box automatically. Any custom workarounds for this bug should be removed by the user.
  • Removed guistate dependency. It is now implicitly obtained from entity dependency. Existing procedures will be converted automatically.
  • The block legacy material setting was removed. Material will be automatically converted to other parameters.
  • Duplicate and stale block and item list entries were removed. Manual replacement is needed if these are still in use.
  • [Plugins] Custom variable types can now specify required_apis that they depend on

Important bug fixes

Many bugs were fixed in this update. All the bug fixes are listed in the list below, but more notable bug fixes are:

  • [Bugfix, NF 1.21.4] Stonecutting recipes with tags as an ingredient did not work
  • [Bugfix, NF 1.21.1] Disabling armor parts with a custom model caused build errors
  • [Bugfix, NF 1.21.4] Fluids with light opacity set to 0 caused build errors
  • [Bugfix, NF 1.21.1] Item mod element failed to generate in some cases
  • [Bugfix, NF 1.21.4] Drink animation for custom foods did not work correctly
  • [Bugfix] Setting entity attack target to null using procedures didn't work
  • [Bugfix] Armor item glow parameter did not work
  • [Bugfix] Custom item disappeared when dropped using keyboard shortcut with an inventory GUI open
  • [Bugfix] Hoppers ignored the take restriction of custom blocks with inventory on newer versions of NeoForge
  • [Bugfix] Custom dimension portal use conditions were ignored
  • [Bugfix] MCreator mods in combination with Terrablender broke worlds after they were loaded 512 times
  • [Bugfix] Custom animal baby entity models were not scaled proportionally with the bounding box
  • [Bugfix] When enabling external plugin APIs such as MCreator Link, classes were not found in some cases
  • [Bugfix] Custom waterloggable double plants crashed the game when placed in some cases
  • [Bugfix] Player right-click global procedure triggers fired inconsistently in some cases
  • [Bugfix] One could add custom block state enum properties with a single value that crashed the game
  • [Bugfix] Custom GUI buttons did not reappear after visibility state changes
  • [Bugfix] Custom entities with biped model had incorrect mount offset when riding other entities
  • [Bugfix] Big custom projectiles did not detect block collisions correctly
  • [Bugfix] MCreator did unnecessary entry order changes in the workspace files

Other improvements

You can see the full list in the full changelog of this release here (some more notable features not mentioned before are highlighted with bold text):

  • Updated bundled Java to version OpenJDK 21.0.7
  • Updated NeoForge for 1.21.4 to 21.4.137
  • Updated NeoForge for 1.21.1 to 21.1.176
  • Increased font size of some components that were hard to read on certain screen resolutions
  • Added search parameter functionality to the mod element editors
  • Double-clicking the shift key focuses a relevant search bar if a tab containing a search is currently active
  • Image editor layer and selection information now persist with the saved texture
  • Added an option to specify animations for custom blocks that are conditionally executed by procedures
  • Increased the stack size parameter limit to 99 in most places across the interface
  • Minor UX improvements and standardizations
  • Simplified image editor shortcuts and added some new ones
  • Improved the UX of the user input dialogs so they reopen after showing the error message
  • Added support for Java models for custom block mod element
  • Added support for basic animations for blocks with Java models
  • Added color indicator to the block map color selector
  • Added new mod element type: banner patterns
  • Added an option for custom blocks to detect vibration events and trigger procedures on them
  • Added new parameters to blocks: is ignited by lava, note block instrument, block set type for block bases
  • Added a new parameter to items: banner patterns that this item provides
  • Custom living entities with a villager or witch vanilla model now render the main hand item
  • Increased the maximal stack size of the item mod element to 99
  • External and tag entries in custom tags are now optional, making soft mod dependencies possible
  • Code regeneration no longer removes user-provided files from the mod Java package
  • Improved generated code style and reduced code redundancy of several mod element types
  • Improved robustness and automated handling of missing references of deleted mod elements
  • Added external texture change detection that refreshes the texture in the workspace tab
  • Resource pack editor now detects external file changes and refreshes the editor automatically
  • Moved some parameters in the custom block mod element editor to more suitable locations/pages
  • Added an option for custom living entities to detect vibration events and trigger procedures on them
  • Improved wood pack maker: it now tags elements with the correct tags, simplifies recipes, and more
  • Added support for Java models for custom item mod element
  • Added a new decimal division math operator to procedures that makes sure the result is not an integer
  • The "has player item in inventory" procedure block no longer checks for a data component match
  • Added new plant and fluid parameter: is ignited by lava
  • Added a new custom recipe parameter: items that unlock this recipe
  • Added procedure dependency amount to the "taken from GUI slot" procedure trigger
  • Added a new procedure block that allows one to modify numerical and logic parameters of global triggers
  • Added new world procedure blocks: spawn entity and get its server-side reference
  • Added global trigger numerical parameters: incoming damage, fall distance, fall damage multiplier, critical hit damage multiplier, attacked entity invulnerability ticks, and dropped experience number
  • Added global trigger logic parameters: disable sweep, is hit critical, grief result, and shield block result
  • Added a new procedure block to check if a certain value is or is not null
  • Added a new parameter to the projectile mod element to disable the gravity effect on them
  • Added an advanced parameter for procedures to skip the null dependency check when enabled
  • Added an option to disable the block item of custom blocks and plants
  • Added some new block and plant item parameters: rarity, immune to fire, and stack size
  • Custom items and tools can now specify an alternative inventory/item frame/dropped display texture
  • GUI text field and checkbox value procedures now work on both client- and server-side
  • GUI text field and checkbox procedures now operate in any context where entity dependency is available
  • Added new loot table type: archaeology
  • Added support for using tags for the "can be placed on" parameter of custom plants
  • Added new entity procedure block: is entity attack swinging
  • Added new world management procedure block: trigger game event
  • [NF 1.21.1] Added support for basic animations for projectiles with custom Java models
  • [Bugfix, NF 1.21.4] Stonecutting recipes with tags as an ingredient did not work
  • [Bugfix, NF 1.21.1] Disabling armor parts with a custom model caused build errors
  • [Bugfix, NF 1.21.4] Fluids with light opacity set to 0 caused build errors
  • [Bugfix, NF 1.21.1] Item mod element failed to generate in some cases
  • [Bugfix, NF 1.21.4] Drink animation for custom foods did not work correctly
  • [Bugfix] Setting entity attack target to null using procedures didn't work
  • [Bugfix] Armor item glow parameter did not work
  • [Bugfix] Custom fluids were missing the translation key for mods such as JEI or Mekanism
  • [Bugfix] Custom item disappeared when dropped using keyboard shortcut with an inventory GUI open
  • [Bugfix] Hoppers ignored the take restriction of custom blocks with inventory on newer versions of NeoForge
  • [Bugfix] Custom dimension portal use conditions were ignored
  • [Bugfix] Configured features did not have a default mapping value specified
  • [Bugfix] MCreator mods in combination with Terrablender broke worlds after they were loaded 512 times
  • [Bugfix] MCreator did unnecessary entry order changes in the workspace files
  • [Bugfix] Custom animal baby entity models were not scaled proportionally with the bounding box
  • [Bugfix] When enabling external plugin APIs such as MCreator Link, classes were not found in some cases
  • [Bugfix] Custom tooltips over GUI slots caused vanilla and custom tooltips to be shown one over another
  • [Bugfix] Custom waterloggable double plants crashed the game when placed in some cases
  • [Bugfix] In some cases, tag entries added by mod elements were not correctly removed
  • [Bugfix] Software frames had rendering problems in some cases with certain GPUs on Windows
  • [Bugfix] UI had some rendering issues on certain Linux X11 configurations
  • [Bugfix] Player right-click global procedure triggers fired inconsistently in some cases
  • [Bugfix] One could add custom block state enum properties with a single value that crashed the game
  • [Bugfix] Has entity attribute procedure block did not work correctly in some cases
  • [Bugfix] Custom GUI buttons did not reappear after visibility state changes
  • [Bugfix] Custom entities with biped model had incorrect mount offset when riding other entities
  • [Bugfix] Removed duplicate and stale block and item list entries
  • [Bugfix] Procedure external trigger dependency check did not work in some cases
  • [Bugfix] Big custom projectiles did not detect block collisions correctly
  • [Bugfix] Some other minor fixes and improvements

Let us know what your favorite feature of the update is in the comments! All other feedback is very welcome, too. We are already looking forward to all the new creative mods using all the new features. If you like what we do, consider donating to help us keep this project going.

Share this:

Comments

Holy. Ive been coding in a few of these features manually. this is gonna be awesome!

Was it fixed that some projectiles were missing from procedures like wind charges?

Villager model item renderer, that's what i'm talking about, you are so close, in the next update please add the same thing to blocks, so it will be visible if item is stored in that block, basically like vanilla frames work, we need this feature, please 🙏, similarly to this tutorial https://www.youtube.com/watch?v=biMf8DblvjQ

When you'll be able to define paintings rarity item too?
Every painting in the game is in rarity uncommon (yellow), but when you create one in Mcreator, it makes the rarity of the item common, and the author is in white text instead of gray text.

Neat! I’ll install the update now on my Mac and try it out. 😊☺️

I really appreciate the work that you guys do! Thank you so much!!



Donate to MCreator

By donating to developers you can speed up development, as with more resources, we can dedicate more time to MCreator. It is a free project made by developers working on it in their free time.