MCreator 2024.3 is here! It not only adds Minecraft 1.21.1 support, but also plenty of useful features, improvements, and bug fixes. Read on!
Minecraft 1.21.1
This update adds support for Minecraft 1.21.1 for Java-edition mods and data packs. Based on the community vote, we have decided to keep Minecraft version 1.20.1 alongside 1.21.1. Minecraft 1.21.x is now also supported for Bedrock edition add-ons.
Block state properties
One of the biggest additions in this update, but certainly not the only big one, is block state properties. With this feature, one can define persistent client-server synchronized data to blocks that can be altered with debug sticks, commands, and of course, procedure blocks. This is the first step towards full block state support in MCreator. One can define integer, logic, and enum-type (set of allowed strings) block state properties.
Entity attributes
This update adds a new mod element! Attribute. With this mod element, one can add extra attributes to players, specified entities, or optionally to all living entities. Attributes are numeric parameters that have base value and range, but can be additionally scaled or extended by things like enchantments, potions, and more.
With this new mod element, we have also added procedure blocks that one can use to alter and obtain attribute values. One can not only alter custom attributes but also vanilla ones, allowing one to completely modify attributes of existing entities. Global procedure triggers allow one to modify existing vanilla entities in combination with these procedure blocks, for example.
Workspace selector improvements
The workspace selector has got a context menu! With it, one can easily edit the recent workspaces list, open the workspace folder in the browser, or even fully delete the workspace folder (with a warning, of course, this deletion is not reversible).
Faster workspace setup and builds
NeoForge's build toolkit for Minecraft 1.21.1, called Mod Dev Gradle, is very fast. Workspaces can be set up in under 10 seconds, and built in under 100 ms in some cases. It depends on the workspace size, computer specifications, internet speed, and more, but in general, everyone should see a significant improvement when using MCreator with Minecraft 1.21.1 NeoForge generator.
Potion effect cures
Potion effects can now specify items that can cure the potion, allowing one to make e.g. incurable potions, or potions curable in a special way. Due to the game's design, only a limited set of cure options can be defined at this time.
Enchantment changes
Enchantments underwent some changes in Minecraft 1.21.1. Due to those changes, we have altered the UI of the enchantment mod element editor, to be more aligned with the new system. We have also added support for enchantment tags, as those are used in Minecraft 1.21.1 to define certain properties of enchantments.
More entity animations
This update adds more custom Java model animation presets, more specifically, it adds wing animations!
Worldgen feature improvements
Worldgen feature mod element got many improvements. Many new feature blocks were added. One of them is a random feature selector, which allows one to randomly select one of the specified features, which can be either an inline-specified feature or a feature reference. Optionally, the list can be weighted too, giving a greater chance of spawning to select features.
Another new feature added is the layered column feature, allowing one to generate columns conditionally built of ouf specified layers. It is especially useful for cave decorations and complex vegetation types.
This update also adds layered disk features. While the disk feature was already supported before, now one can conditionally define what type of block is present in certain regions of the patch.
Vegetation patch worldgen features were added too. This feature consists of a patch base block, the vegetation feature to grow, and can optionally also be waterlogged. Super useful for vegetation-oriented mods for even more epic landscapes!
Last but not least, a root system feature was added, allowing one to define custom tree features that generate root systems similar to the ones azalea trees generate.
Player mouse click global procedure triggers
This update adds two new global procedure triggers that will be very useful to many mods! One can now detect when the player right-clicks with an empty hand and when a player left-clicks in the air. We can already see new mechanics being added using these two triggers.
No ammo check ranged item option
Since the ranged item system was moved to the item mod element, many struggled to make projectiles without the ammo requirement. While it was possible to do it with procedures, a checkbox is more convenient.
When this checkbox is unticked, MCreator does not check for ammo, but the ranged item use condition is still checked, allowing one to define completely custom ammo requirement dynamics too.
Projectile bounding box size
The projectile mod element got a new parameter too. One can now specify projectile bounding box size, allowing one to make super tiny projectiles that require great skill to use, or humongous projectiles that eradicate everything in their way.
Procedure global trigger search
The procedure editor was improved too. One of the more notable ones is global trigger search. Global triggers are no longer a dropdown, but a clickable selector that opens a popup with all global triggers and a search box, so you can find the trigger you are looking for much faster.
Global fill tool in the image editor
The image editor's flood fill tool got a new checkbox that makes the tool not only operate on the adjacent pixels in the region, but fills all matching colors with the replacement color.
New procedure blocks
This update also adds quite a few new procedure blocks. One of the more popular ones is the new procedure block to convert the selected potion to either potion bottle or lingering potion bottle.
But it does not end here. A procedure block to get potion as splash or lingering potion projectile was added too. See it in the picture below.
Another very useful procedure block added in this update is the procedure block is the chunk at given coordinates exists. This is a very important procedure block for users doing custom world generation in procedures, as any placement during world generation should check if placing at a given location is allowed, which is true when the chunk exists.
Another useful set of procedure blocks are procedure blocks to execute command and get its message/result as a string.
Last but not least, some new string procedure blocks were added. One can now check for the index of a string within a string, check if the string matches a regular expression, and replace all matches of a string or regular expression with another string.
Operator items tab
Last but not least, support for operator items creative tab support was added. This means you can now put custom blocks in the operator items (OP blocks) creative tab that is only visible when the user enables it in the Minecraft game options.
Release notes
- Redesigned enchantment mod element editor to fit modern enchantment definition. Some fields were removed and some will be automatically converted. We recommend manually verifying and correcting existing enchantments in your workspace if necessary.
- The plant type procedure block has been removed. Existing blocks will be converted to logic blocks with the value false. We recommend using custom tags for plant type checks from now on.
- Certain itemstack procedure blocks now require world dependency. It will be automatically added to existing procedures.
- [Plugins] API plugins can now specify additional texture reference sources, allowing modders to reference textures from other mods in their mods
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] Custom loot tables failed game validation in some cases
- [Bugfix] It was possible to select blocks without item representation in item selectors in some cases
- [Bugfix] Custom item use animations did not work in some cases
- [Bugfix] When editing GUI and overlay mod elements, certain changes were saved even if the save button was not pressed
- [Bugfix] Custom GUI buttons with disabled visibility still emitted sound when clicked
- [Bugfix] The Progress dialog window was flickering in some cases on macOS
- [Bugfix] Gradle console search functionality did not work correctly in some cases
- [Bugfix] Certain wildcard blocks and items did not work
- [Bugfix] "For each slot in entity inventory" procedure block caused build errors in some cases
- [Bugfix] Certain parts of the UI could cause the software to crash on macOS 14.4+ in some cases
- [Bugfix] Certain UI parts could be rendered incorrectly on HighDPI screens on Windows
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.4
- Improved Gradle tooling API integration
- Improved Gradle build performance
- Added attribute mod element
- Custom blocks can now define custom integer, enum, and logic block state properties
- The projectile mod element can now specify a custom hitbox size
- Added parameter to the flood fill tool in the image editor to fill the color globally and not only the adjacent pixels
- Added searchable data list selector support to the procedure global trigger selector
- Clicking the delete key in the GUI/overlay editor now deletes the selected component
- Added right-click context menu to the recent workspaces list on the workspace selector
- Added support for enchantment tags
- Added random rotation and mirror option to the place NBT structure procedure block
- Added option to put custom blocks and items into operator items creative tab
- Added option to disable ranged item ammo requirement
- Added an option to reference existing features in the feature mod element
- Added several wing swing Java model animation templates
- Added new parameters to the potion effect mod element to specify what items can cure it
- Added new text procedure blocks: index of string in a string, does text match regex, replace all matches of regex
- Added new item procedure blocks: get the potion as an item
- Added new entity procedure blocks: push entity with velocity, get a result of the command executed by the entity
- Added entity attribute procedure blocks: get attribute base value, set attribute base value, get attribute value, does entity have the attribute
- Added new world procedure blocks: get a result of the command executed at the location
- Added new global procedure triggers: player left clicks in air, player right clicks with empty hand
- Added a procedure block to check if the world has a chunk at given coordinates
- Added procedure block to get potion item as lingering potion projectile or splash potion projectile
- Added new worldgen features: simple disk, disk (with disk rules), underwater magma, block column (with column layers), root system, weighted random selector, vegetation patch, waterlogged vegetation patch
- Added base support for NeoForge 1.21.1
- Added Minecraft data pack generator for 1.21.1
- Updated Minecraft Bedrock Edition add-on generator to version 1.21.x
- [DP 1.21.1] Added support for: functions, tags, recipes, damage types, dimensions, structures, biomes, loot tables, advancements, enchantments, features
- [NF 1.21.1] Added support for: procedure base, custom code, functions, sounds, variables, global procedure triggers, tags, key bindings, commands, creative tabs, JSON models, Java models, OBJ models, armor, potion items, GUIs, potion effects, villager professions, villager trades, particles, game rules, overlays, recipes, paintings, music discs, item extensions, projectiles, items, tools, living entities, AI tasks, fluids, damage types, plants, dimensions, structures, blocks, procedures, biomes, loot tables, advancements, enchantments, features
- [NF 1.21.1] Significantly increased speed of workspace setup and build times
- [Bugfix] Custom loot tables failed game validation in some cases
- [Bugfix] It was possible to select blocks without item representation in item selectors in some cases
- [Bugfix] Custom item use animations did not work in some cases
- [Bugfix] Texture selector dropdown search did not work correctly
- [Bugfix] Data list selectors showed machine entry names instead of readable names in some cases
- [Bugfix] When editing GUI and overlay mod elements, certain changes were saved even if the save button was not pressed
- [Bugfix] Custom GUI buttons with disabled visibility still emitted sound when clicked
- [Bugfix] The Progress dialog window was flickering in some cases on macOS
- [Bugfix] Gradle console search functionality did not work correctly in some cases
- [Bugfix] Certain wildcard blocks and items did not work
- [Bugfix] "For each slot in entity inventory" procedure block caused build errors in some cases
- [Bugfix] Certain parts of the UI could cause the software to crash on macOS 14.4+ in some cases
- [Bugfix] Certain UI parts could be rendered incorrectly on HighDPI screens on Windows
- [Bugfix] Some other minor fixes and improvements
Patch update 1
We have released a patch update to fix some bugs found in the 2024.3 release:
2024.3.42716:
- [Bugfix, NF 1.21.1] Place feature procedure block crashed the game when custom features were used
- [Bugfix] Projectiles with big bounding boxes did not collide with entities correctly
- [Bugfix] Custom food items were always edible even if this parameter was not enabled
- [Bugfix] It was possible to define multiple block state properties with the same name
- [Bugfix] Block OBJ models did not apply transparency type parameter correctly
- [Bugfix] Some other minor fixes and improvements
To install the patch, re-download 2024.3 and install it again. Make sure to uninstall the current version first.
Let us know what is your favorite feature of the update 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 up.
Comments
Yep noticed those blocks which is an amazing step in the right direction, I'm mostly looking for string/registry blocks where ever possible like entities, attributes, damage types essentially anything (dependency objects would probably be easiest to add) that have registry ID's would be ever so convenient to be able to convert in to in-workspace objects! Atm it's only Items and blocks if I'm not mistaken which is good but there could be so much more!
Nice to see Attributes finally becoming apart of the core software, although I would have wished modifiers and modID blocks were included too from the original plugin. Since adding modifiers on to the base value of the modifier feels better then just straight up replacing the default one and might just be me but I really like the modID block way more then any others and in theory don't feel too difficult to add like being able to grab ID's from external mods is always very convenient and useful!
Aside from what I've mentioned before, these are some amazing changes for the future of the software but I reaaally feel like we need more string based blocks for everything as it can allow you to define mod id's of external mods allowing for more compatibility, essentially just tools for higher level of cross mod compatibility and more advanced blocky blocks in general and the fact that we don't have too many string blocks stings a little bit.