MCreator 2025.3 is out - an update adding Minecraft 1.21.8 support, tons of new features, while improving both mod and UI performance!
Minecraft 1.21.8
One of the most notable changes is support for Minecraft 1.21.8. With the new Minecraft drops release system, it is hard to keep up with all the updates, so we keep the LTS version, which is currently 1.21.1, and then update to the latest version that is also available at the time we start updating to a new version.

Animated items
Now to the new features. Following the animation system for entities and blocks, we have added the same system to custom items too. With this system, items with custom Java models can have custom conditionally triggered animations.

Attribute modifier procedures
This update adds new procedure blocks to add, check, and remove attribute modifiers from/to Minecraft entities. This includes the player. This makes new custom dynamics involving custom or existing entities much more interesting.
An example of the procedure shown above in action, resizing the player using the attribute modifiers.

Custom GUI sliders
A new GUI component has been added - sliders. They have a range of values, an optional prefix and suffix, a procedure when the value changes, as well as procedure blocks to get and set the slider value.
See an example of the slider in action below, where an explosion is summoned with the value of the slider when the slider is moved.

Generated code improvements
This update is all about improving the generated code and performance of your mods. You may not notice those changes, but you will feel them as your Minecraft mod will be faster. MCreator will now group the code of similar procedures if they are placed one after another. More on this at our new guide on how to make faster Minecraft mods on our wiki.
We have also improved the import formatter that now groups classes under the same package under a wildcard import if a user-configurable threshold is passed.
Network synchronization of global variables has also been greatly improved. Large workspaces that update many variables every tick could send 10s, 100s, or even 1000s of network packets every tick. MCreator now groups those changes and sends at most one packet every tick, given that at least one variable is changed every tick.

Advancement improvements
The Minecraft advancement mod element got some new triggers. One can now grant advancement when one or more of the enchantments are applied to the item or if one or more of the selected effects are applied to the player.
A new procedure block has been added that allows one to revoke the advancement from the player, which complements the existing procedure block to add/grant advancements to the player.

Custom flower pot blocks
This update also adds one new block base - custom flower pots. One can make a vanilla Minecraft flower pot turn into a custom pot when the right item right-clicks the pot. Vanilla flower pot model can be used, as well as a totally custom flower pot model.

Custom block and plant XP drops
A new parameter has been added to plant and block mod elements - experience amount. This parameter controls how much experience is dropped when the block is broken by the player.

Custom block and plant stripping
One more parameter that blocks and plants now have is the option to specify into which block they turn when stripped using axe. When making new wood packs using MCreator's wood pack maker, this parameter will be auto-applied to your custom Minecraft wood packs.

Workspace search filter exclusions
One can now define filter exclusions in workspace search, so one can search, e.g., for all mod elements that are not blocks or procedures, and contain stone in their name or registry name, as seen in the example below.

Loot table previews
The loot table mod element editor got a new preview component, which allows one to visualise loot table rolls and also to regenerate the loot table random seed to see different possible variants of the specified loot table definition. Super useful to verify if your loot table works as intended!

Zelos Blockly renderer
Blockly editor in MCreator got a new renderer type - Zelos. This renderer is the same as that used by Scratch 3.0, so if you are looking for a way to make Minecraft mod maker MCreator more similar to the Scratch coding tool, this makes it possible.

Feature editor block search
The search bar of the Blockly editor has been added to more mod elements, including the worldgen feature editor, allowing one to quickly find the feature or the placement they are looking for much faster. MCreator now has a lot of feature blocks, so this should be very handy!

New procedure blocks
This update also introduces many new procedure blocks, including a new Math procedure blocks subcategory for Vector math.
Together with new vector math procedure blocks, providers for vector positions of certain values have been added, which will make calculations of certain things, especially distances and projections much easier.
A new parameter has been added to the copy data components from itemstack to another itemstack that allows one to only copy custom components. When enabled, default components such as damage and enchantments will not be copied to the new itemstack.
The next section of new procedure blocks is super useful for automation mods. One can now check how many slots a certain block's inventory has, how much items can a particular slot hold, and if a specific item can be inserted in a specific slot of a block.
GUIs did not only get sliders and slider-related procedure blocks, but also a procedure block to set the value of a checkbox in a custom GUI.
Last but not least, the send chat to all players procedure block got a new parameter that allows one to specify color (any RGB value) as well as text style.

UI performance improvements
MCreator's UI got several improvements that should make certain parts of the UI much more responsive for large workspaces (even for 10k+ mod elements workspaces). This includes faster tab switching, a much more responsive localization editor, a more snappy code editor for big Java or JSON files, and much faster searching, filtering, and sorting functionality.
Plugin compatibility improvements
This update makes it possible for plugins to define overrides or additions just to a part of YAML definition files that are shared across the MCreator core and plugins. The old way of overriding is no longer recommended and also not possible for the most part. This change will reduce the number of bugs present in plugins, make them more easily portable to new MCreator versions, and, most importantly, make certain plugins that were previously exclusive compatible with each other.
Release notes
- MCreator now tries to group the code of similar procedures together. If you have multiple procedures setting GUI slots, block NBT, or global variables of the same type, or other similar procedure blocks, chain those calls one after another, and only one network sync will be sent for the whole procedure block group.
- [Plugins] If multiple plugins define the same YAML file (generator, mod element definition, variable, ...), the contents of those files will be merged (lists and maps merged, scalar entries loaded first only), considering plugin order based on weight. Plugins should update their YAML files to contain minimal changes to templates, not contain full overrides, as was the practice so far.
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.1] Non-food items with eat or drink animation emitted eating sounds
- [Bugfix] Procedure editor did not load with certain UI languages due to invalid translations
- [Bugfix] Changing the mod ID or package name broke the workspace in some cases
- [Bugfix] "Before entity hurt" global trigger was triggering after the damage was applied
- [Bugfix] Certain procedure blocks did not work in combination with the on GUI opened procedure triggers
- [Bugfix] Autocomplete auto-filled code in some cases when it shouldn't
- [Bugfix] Vanilla entries in custom game event tags did not work correctly
- [Bugfix] Dragging the mouse while placing a new GUI component placed it at the wrong location
- [Bugfix] If the Blockly editor crashed while saving, the block assembly was lost and became invalid
- [Bugfix] Custom GUI image button display condition did not pass world coordinates
- [Bugfix] Quotation marks in living entity text synced data default value caused build errors
- [Bugfix] Structure mod element did not work in data pack workspace types
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.8
- Updated NeoForge for 1.21.1 to 21.1.190
- Improved performance of certain code generator components
- Improved code editor performance when editing large Java or JSON files
- Noticeably improved UI performance on several components for large workspaces
- Significantly improved build performance for workspaces with many Java models or animations
- Imports are now grouped if a configurable number of classes from the same package are present
- Added new Blockly renderer: Zelos (similar to Scratch 3.0)
- Minor UX improvements and standardizations
- Workspace file browser now retains expansion state after search is completed
- Dragging the mouse while placing the component now enters resize mode in the GUI editor
- Added loot result preview to the loot table mod element editor
- Improved the UX of the plant mod element editor
- Improved the UX of the search and replace tools in the code editor
- Improved wood pack maker: it now also generates doors and trapdoors
- Improved wood pack maker: it now also generates stripped wood and log blocks
- Workspace search can now exclude search filters by adding an exclamation mark to the filter start
- Added a new parameter to custom blocks and plants: experience drop amount
- Added new GUI mod element component type: slider
- Added support for basic animations for items with Java models
- Added an option to specify animations for custom items that are conditionally executed by procedures
- Added entity dependency to the custom block Java model animation conditions
- Send chat procedure block now supports text color, bold, italic, and underlined parameters
- Custom blocks with block bases now get automatically added to the correct tags when applicable
- Copy itemstack data components procedure block now supports copying all or only custom components
- Workspaces deleted from the workspace selector now go to the system trash folder when possible
- Improved Blockly block search display for certain categories and for long blocks
- Improved Blockly error/warning display to be ordered better and reduced duplicate entries
- Added Blockly block search to the feature blocks and living entity AI tasks
- Improved the generated code of certain procedure arrangements
- Significantly reduced amount of network packet traffic when syncing many variables often
- If procedure blocks that sync data are placed one after another, sync is optimized to run only once
- Added a new block and plant parameter: the block that it can be stripped into
- Added a new block base: flower pot
- Added a new procedure trigger to blocks and plants: when an entity falls on the block
- Added a new parameter to items: is item piglin currency
- Added new entity procedure blocks: has attribute modifier, add attribute modifier, remove attribute modifier
- Added new GUI procedure block: set checkbox checked state
- Added new advancement triggers: item has one of the enchantments, player has one of the effects
- Added vector procedure blocks: entity look angle, entity look position, entity position, entity delta movement
- Added vector math procedure blocks: compare vectors, vector components, normalized vector, scaled vector, distance between two vectors, binary vector operators, vector length
- Added new global procedure triggers: entity changes equipment, entity switches hand
- Added new item procedure triggers: every tick while using the item, on dropped item entity destroyed
- Added new entity procedure block: revoke advancement
- Added new block inventory procedure blocks: slot count, slot stack limit, can insert itemstack in slot
- Added Minecraft resource pack generator for 1.21.8
- Added base support for NeoForge 1.21.8
- Added Minecraft data pack generator base for 1.21.8
- [A 1.21.x] Added new Minecraft blocks, items, and entities to data lists
- [DP 1.21.8] Added support for: functions, advancements, biomes, damage types, dimensions, enchantments, loot tables, recipes, structures, features
- [NF 1.21.8] Added support for: key bindings, variables, global triggers, banner patterns, damage types, tags, advancements, enchantments, functions, loot tables, recipes, structures, features, commands, custom code, sounds, paintings, potion effects, particles, potion items, attributes, game rules, villager professions, item extensions, armor, OBJ models, JSON models, Java models, creative tabs, projectiles, villager trades, biomes, dimensions, fluids, tools, overlays, GUIs, items, plants, procedures, living entities, blocks
- [Bugfix, NF 1.21.1] Non-food items with eat or drink animation emitted eating sounds
- [Bugfix] Procedure editor did not load with certain UI languages due to invalid translations
- [Bugfix] Changing the mod ID or package name broke the workspace in some cases
- [Bugfix] "Before entity hurt" global trigger was triggering after the damage was applied
- [Bugfix] Certain procedure blocks did not work in combination with the on GUI opened procedure triggers
- [Bugfix] The make portal procedure block allowed selecting dimensions without a portal
- [Bugfix] Autocomplete auto-filled code in some cases when it shouldn't
- [Bugfix] Creating bonemealable blocks with a custom block base was no longer possible
- [Bugfix] Certain parameters of the quick ore pack and wood pack tools were set incorrectly
- [Bugfix] Vanilla entries in custom game event tags did not work correctly
- [Bugfix] Dragging the mouse while placing a new GUI component placed it at the wrong location
- [Bugfix] If the Blockly editor crashed while saving, the block assembly was lost and became invalid
- [Bugfix] Contents of certain selector dialogs did not get updated in all cases
- [Bugfix] Custom GUI image button display condition did not pass world coordinates
- [Bugfix] Quotation marks in living entity text synced data default value caused build errors
- [Bugfix] An exported mod file was generated even if the workspace build failed
- [Bugfix] Workspace file browser did not refresh in some cases
- [Bugfix] Continue/break loop procedure blocks did not work with certain iteration blocks
- [Bugfix] Structure mod element did not work in data pack workspace types
- [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.
Please add more NBT support besides text logic and numbers, I want to make a script to make a written book, but the pages NBT is a list.