The last update of the year 2023 is here, and we have made sure the year will end with a blast. Possibly the biggest feature update in the history of MCreator is here. Check it out!
Tree features
This update finally adds what people have been asking for since we have added the biome mod element - support for custom and multiple different trees in a biome. This is now possible as the feature mod element now supports trees. You can define any type of tree and specify it to generate in any of the vanilla or custom biomes you want.
In the picture below, you can see how a custom variant of the mega jungle tree is built. Once can define as many decorators as they want, use weighted random block providers, tree root placers, and more. Placements can also be completely customized, meaning one can now make trees that work in nether or end-like dimensions too, or even cave trees if desired.
Workspace element usages system
This update is introducing a system to search for workspace element usages. We have written a whole article about the new element references system if you want to get more into the details. The most important part of this feature is its ability to detect where a particular mod element is being used. For example, you have a recipe ABC that as a result gives a block DEF. If you check the usages of block DEF, it will show you recipe ABC, because this recipe uses/references block DEF. If you deleted DEF, recipe ABC would break because it still references the now-deleted block DEF. This system detects such cases and warns you, which helps with making sure to not break the workspace when deleting workspace mod elements. In the video below, you can see this system in action.
You can use this system to check where a certain texture, structure, model, or localization key, or sound is being used too. In the video below, you can see us checking where a group of textures is being used. On deleting the texture, for example, you will also be warned in case you are deleting a texture that is still used by a particular mod element.
Shield tool type
We are introducing a new tool type that you have been asking us for: shields! You can now make custom shields with customized blocking texture, or even custom item model with custom position if desired.
Improved macOS installer
We have improved the macOS MCreator installer so now instead of just opening a DMG, a nice installer that allows you to just drag and drop the MCreator into the Applications folder is shown.
True structure mod element
This update is changing the structure mod element so the structures are true structures and not features that place NBT. In practice, this means that custom Minecraft structures can now be located using the locate command. As MCreator now utilizes the vanilla Minecraft structure system, structures are also supported in the data pack mod types. Additionally, structures can now adapt to the terrain or place additional ground blocks to match the terrain, fixing problems with floating structures. Even more structure mod element goodies are planned for the future too ;)
Below you can see the interface for the structure definition. One can define generation stage and ground detection as before, but can also now define terrain adaptation and terrain projection type. Ignore blocks now also support any block, not just air and structure blocks.
NBT features support
The implementation of the new structure mod element leaves us with one question, though. What will happen with current structures? The answer to this is, that they will be automatically converted to the feature mod element, as all current structures were in-practice features. For this purpose, a new NBT feature was added that allows one to place an NBT structure on the feature location. This extends the options for NBT feature placements with all the placement goodies of the feature mod element, so the options are now limitless.
Custom living entity synced stored data
Did you have problems using living entity NBT because it is not synced to the client-side, and thus has limited uses with visual effects of custom entities? This is no longer a problem as one can now define any number of additional data entries for the entity that are synced between server and client and also stored in the world data and thus recovered when the world is reloaded. Of course, this system comes with complementary procedure blocks to set and get values of those data entries.
Dynamic custom living entity scale
Now to the uses of the entity synced data. The first one is new support for dynamic living entity scale. One can now specify the scale of the model and of the bounding box in the living entity editor. Those two new parameters can have fixed numeric values (e.g. 2.0 for double the scale) or use procedures to provide the desired scale. This procedure can return the value of integer synced entity data entry, for example. Every time this data entry has its value set from the server side, all Minecraft clients connected to that server will receive an update and the entity will scale for all the players.
Living entity model layers
But why stop at scaling the entities? Therefore, more entity procedure-based visual features were added. We are adding living entity model layers. This feature allows one to define additional model layers that can have a different or the same model, and texture, and can optionally glow. Those layers can be applied conditionally, meaning one can make changing textures, glowing, or even entity models with this feature. Great for conditionally showing tools, weapons, armor, textures, damage, mana powers, energy, and more on your custom living entities.
Below you can see one example of the combination of synced entity data that stores glow logic data entry. This entry is toggled on the entity right-clicked trigger using a custom procedure. A glowing living entity model layer is conditionally shown if the data entry holds a "true" value. The result is a glowing entity that you can toggle between off and on state by right-clicking it. How cool is that?
Tag system improvements
We have also improved quite some things related to the tag system. One of those is that one can now define tags in tags. This means you can e.g. make a list of biomes with all nether biomes and some custom biomes. Could be useful for restricting feature spawning per biome that includes all biomes from another tag, for example.
As a part of this, plant and block features are no longer specified on a per-dimension basis as this is not how Minecraft intended this system to be. Instead, biome restrictions with tags should be used when needed. Existing workspaces will be converted for cases of single-dimension restriction. For multiple-dimension restrictions, a new biome tag with biomes or biome tags from these dimensions needs to be manually added. If one wants to add ore to the overworld as before with dimension parameters, a biome tag can be used for this purpose.
Custom overlay component anchors
You will love this one! Any overlay GUI component now specifies to what position it is anchored to. In practice, this means one can now anchor elements e.g. to the center or lower right corner for example, and the component will stick to that point (with specified offset, of course) while resizing the Minecraft game window.
Projectile mod element
The ranged item mod element has been changed to a projectile mod element. Existing ranged items will be converted to pairs of regular item and projectile mod elements. The projectile mod element now takes care of the projectile part only, without a launcher. There were many instances where one only needed a projectile, but not a launching item for it, e.g. for custom ranged entities. Now one just makes a projectile mod element for this purpose.
At the same time, we have added new ranged properties to the item mod element, meaning that any custom item can now be a projectile launcher with the same options as before, but additional custom items can now also launch vanilla projectiles (currently different arrow types) in addition to the custom ones.
Damage type mod element
The projectile mod element is not the only new mod element coming in this update. We are also introducing a new mod element called damage type, that allows one to define custom damage type with custom name, exhaustion amount, sound effect, and different death messages.
Additionally, a new tag type was added for damage types, that allows one to mark custom damage types as freezing, projectile type, or tag what defenses the damage type can bypass, such as armor, effects, shields, and more.
A new procedure block category for damage procedure has also been added. With new procedure blocks in this category, one can deal vanilla or custom damages with sources, check who caused the damage, exhaustion value, and other damage type properties, as well as check if the damage source's type is tagged in a desired tag.
New living entity AI tasks
This update also adds 4 new AI tasks. Those are a task for an entity to look for water if possible, to follow a boat if present, to pathfind and move towards air (e.g. from underwater), and to climb on top of the the powder snow.
Procedure editor sub-categories
The procedure editor has received some improvements too. The most notable ones are sub-categories, which divide procedure categories into a tree-like structure that makes finding the right procedure block easier, as there are fewer categories to choose from directly, but instead one finds the right category with multiple logical sub-category steps.
If you want, you can still of course use procedure search for this purpose. The procedure search has been improved too so you can see the exact path to the desired procedure blocks with categories and sub-categories shown in the search results.
Recipe mod element improvements
The recipe mod element got some improvements too. The most notable is that one can use a middle-click to drag recipe items and "paint" the recipe shape. The same can be done with an empty slot to remove existing item definitions from the slots with the same dragging user action. This should make it much easier to quickly define complex recipe shapes instead of having to select the same item over and over again.
Moreover, smithing recipes have been improved to also include template input for the Minecraft 1.20.1 generator. The input is optional and if not specified, the legacy smithing recipe format is used.
Finally, the generated JSON of the crafting recipes has also been improved so the same item is not defined with multiple keys, but instead, all slots using the same item are optimized into a single item key. This removes the need for a third-party plugin that offers this option currently.
String list inputs, procedural special info, and glow conditions
UI is getting quite some nice quality-of-life improvements too. One of them is string list inputs that allow one to define string entries using a dialog instead of splitting them with commas (used in workspace settings for dependencies and for item special information).
Item special info inputs now also accept procedures, meaning one can define dynamic item tips using procedures that return string/text.
Last but not least, item glow condition fields have been improved to use the new UI component for fixed or procedure-based inputs.
Accessibility improvements
There are also some accessibility improvements coming with this update. You can now set the desired procedure block color brightness and saturation in the MCreator's preferences, allowing people with color vision deficiency to increase the saturation to distinguish between different block types more easily. At the same time, text has been added to some of the blocks indicating the type of the block so the color is not that critical to understand the procedure flow.
Searching select inputs with dropdowns has also been improved. Search is not present in many more of those dropdowns now. A magnifying glass icon is shown in the selector when the dropdown is opened if searching for the element is possible in the current component.
Image editor improvements
The integrated image editor is getting improvements too. Most notable of them is support for square selection, which allows one to cut, copy, and paste parts of the image, and merge those clipboard parts into existing layers or make new layers out of them. Data from and to external clipboards is also supported, meaning one can copy from and to MCreator's image editor into software such as GIMP2, paint.net, and Photoshop. Tools also only operate within the selection when the selection is present, allowing one to e.g. limit the area where the flood fill tool operates.
Release notes
- Custom living entities with a glow texture specified will have this parameter converted to a model layer with a glow
- Existing structure mod elements will be converted to the feature mod element, as old structures are effectively a feature. If the structure uses structure generated procedure trigger, the call of that trigger needs to be manually added to the condition procedure.
- Ranged item mod elements from old workspaces will be automatically converted to projectile and item mod element pairs
- Removed additional generation conditions from blocks and plants. Existing blocks and plants using those conditions will be automatically converted to fully equivalent feature mod elements
- Dimension restriction parameters were removed. Instead, biome restrictions with tags should be used when needed. Existing workspaces will be converted for cases of single-dimension restriction. For multiple-dimension restrictions, a new biome tag with biomes or biome tags from these dimensions needs to be manually added.
- [Plugins] Custom Blockly categories can declare their parent category, supporting a tree-like toolbox
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, A 1.20.x] Ore generation did not work and caused errors to be logged when loading a world
- [Bugfix] Custom dimension fog, lightning, and air color parameters did not work
- [Bugfix] Dimensions with overworld world gen had caves below water level completely flooded with water in some cases
- [Bugfix] Fixed some cases where MCreator would hang or freeze on macOS
- [Bugfix] Ground or underground blocks of certain vanilla biomes did not generate in custom dimensions
- [Bugfix] One could create multiple recipe mod elements with the same registry name, overriding one another
- [Bugfix] Larger workspaces could break in rare cases if one edited mod elements too fast after opening
- [Bugfix] GUI components in custom GUIs could be misaligned or offset ingame in some cases compared to the editor
- [Bugfix] Some entry lists in the UI did not scroll properly when enough content was added
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 17.0.9
- Updated Minecraft Forge for 1.20.1 to recommended build 47.2.0
- Updated Minecraft Forge for 1.19.4 to recommended build 45.2.0
- Improved macOS DMG with an installer with license and applications link
- Restructured procedure blocks into sub-categories for some toolbox categories
- Improved procedure search bar results display to show the sub-categories structure
- UI experience is now much more responsive with large workspaces
- Improved mod element editor page scrolling experience on smaller screens
- More complex mod element editors now open faster
- Added wiki links in the help tips of more mod element editor types
- Improved the layout of the advancement mod element editor
- Added new image editor features: layer merging, added square selection tool, copy/cut/paste support for layers and selections, support for pasting from external clipboard, added new pasted layers, tools now only operate on the selection
- Added support for an optional smithing recipe template slot input
- Added a button to replace a texture in the resources tab with a different texture file
- When exporting mod for distribution, a file name based on the modid and version number is suggested
- Added tag type indication with text and color to the tag selectors
- Tag selectors now list all custom tags as suggestions in the dropdown
- Improved item glow parameter and condition selector
- Added item glow procedural condition support to music disc mod element
- Added Blockly block brightness and saturation settings to help users with color deficiency
- Improved texts of some procedure blocks to improve UI accessibility
- Special information parameters of item-like mod elements can now be provided with a text return value procedure
- Tag mod element of type block, item, entity, or biome can now reference other tags to be part of the new tag
- Improved general compile and runtime performance of block ore and plant features (see release notes)
- Living entity model shaking and transparency conditions now accept fixed values
- Added new AI tasks: find and move towards the air, climb on top of powder snow, follow the boat, try and find water
- Added support for undecorated custom GUI buttons
- Added immediate source entity dependency to some living entity procedure triggers
- Added support to cancel damage caused to a custom entity with procedure return value
- Replaced structure dropdowns in Blockly editor with selector dialogs
- Added new feature block: feature from NBT structure definition
- Added basic tree, fancy oak, (mega) pine, and (mega) spruce feature support to the feature mod element
- Added support for tree decorators and root placers for tree feature
- Added biome tags support to block ores feature and plant feature biome restrictions parameter
- Added biome tags support to the structure and feature mod element biome restrictions parameter
- Added biome tags support to the entity spawn biomes parameter
- Added a new string list field and applied it to the mod dependencies parameters in the workspace settings
- Added new living entity parameters with optional logic procedure input: can breathe underwater, is pushed by fluids
- Redesigned structure mod element to be a true structure (see release notes)
- Added new music disc mod element parameter: item rarity
- Crafting grid in custom recipe mod element now supports block dragging and deletion with middle-click
- Generated JSON for crafting recipes now only defines the key once per ingredient type
- Improved dialog that shows mod elements that cause build errors
- Added new mod element type: damage type
- Added new tag type: damage type
- Added a procedure block to check if the current damage source type is tagged in a certain damage type tag
- Living entity mod element can now define additional model layers that can have a different model, texture, glow, and optional display conditions
- Added support for synced and stored data for custom living entities of type: logic, integer, string
- Added procedures to set and get entity synced data of type: logic, integer, string
- Added new living entity parameters that can have fixed or procedure-specified values: model scale, bounding box scale
- The structure mod element can now define any block or list of blocks that are excluded when generating the structure
- Improved internal mod element reference-finding system
- Added a system to visually display in a list by what other mod elements a mod element, texture, model, sound, structure, variable, or localization key is being used
- A warning dialog is now shown when deleting a mod element that is still used by other mod elements
- Added search functionality to more dropdowns in mod element editors and improved it
- Custom structures can now be located using the locate command
- Added support to create a key binding without a default trigger key specified
- Added new tool mod element type: shields
- Split ranged item to projectile and item mod elements
- Custom item mod element can now define ranged action with either custom or vanilla projectiles
- Added support for specifying anchor points of GUI components in custom overlays
- Added support for tags in breedable items parameter of custom living entities
- Added support for custom multiplayer or singleplayer only commands, and for client-side commands
- Added new armor parameter to make it neutral to piglins
- Added new damage procedures toolbox category
- Added new damage-related procedures: damage source of type with cause (direct or indirect), damage source entity (direct or indirect) accessors, getters for damage type parameters
- Added new entity procedure blocks: can the entity be attacked, is the entity underwater, get frozen percentage of the entity, get entity UUID, set entity invisibility, is entity left/right-handed, get item entity is using, get number of ticks the entity is using an item for
- Added new item procedure blocks: is the item on cooldown for a given entity, get the remaining item cooldown percentage
- Added new scoreboard procedure blocks: add the entity to the team, create/delete team, get the team of entity, is friendly fire enabled for a team, remove the entity from a team, enable/disable friendly fire for a team
- [Bugfix, FG 1.20.1] Custom music disc special information parameter did not work
- [Bugfix, A 1.20.x] Some mod element editor inputs were disabled but should be not
- [Bugfix, A 1.20.x] Ore generation did not work and caused errors to be logged when loading a world
- [Bugfix] Custom dimension fog, lightning, and air color parameters did not work
- [Bugfix] Dimensions with overworld world gen had caves below water level completely flooded with water in some cases
- [Bugfix] In some rare cases some mod elements were not properly updated for the new workspace format
- [Bugfix] It was not possible to move the workspace file browser split line in some cases
- [Bugfix] Fixed some cases where MCreator would hang or freeze on macOS
- [Bugfix] Some key bindings did not work properly with the command key on macOS
- [Bugfix] Generated code preview did not update properly in some cases
- [Bugfix] Ground or underground blocks of certain vanilla biomes did not generate in custom dimensions
- [Bugfix] Dependencies of a procedure being called by another procedure were not correctly recursively updated
- [Bugfix] One could create multiple recipe mod elements with the same registry name, overriding one another
- [Bugfix] Larger workspaces could break in rare cases if one edited mod elements too fast after opening
- [Bugfix] Keyboard shortcuts did not display key icons properly on macOS
- [Bugfix] MCreator menu entry was shown twice on the native macOS menu bar
- [Bugfix] Certain procedure templates did not work
- [Bugfix] GUI components in custom GUIs could be misaligned or offset ingame in some cases compared to the editor
- [Bugfix] It was not possible to use air blocks in loot table entries
- [Bugfix] Some entry lists in the UI did not scroll properly when enough content was added
- [Bugfix] Some entry lists did not update the data when mod elements were added or removed
- [Bugfix] Some other minor fixes and improvements
Patch update 1
We have released a patch update to fix some bugs found in the 2023.4 release:
2023.4.51615:
- [Bugfix] Global workspace Java files were not correctly imported in some cases
- [Bugfix] Java plugins could not use the mapping system in some cases
- [Bugfix] Reference finding system did not work with Java plugins in some cases
- [Bugfix] Some other minor fixes and improvements
To install the patch, re-download 2023.4 and install it again. Make sure to uninstall the current version first.
Patch update 2
We have released another patch update to fix some more bugs found in the 2023.4 release:
2023.4.52316:
- [Bugfix, A 1.20.x] Item and tool glow parameters did not work correctly
- [Bugfix] Unsupported fields in the mod element editor have in some cases hidden some fields that should be visible
- [Bugfix] Tag mod element could reference itself directly or via wildcard items causing game crashes
- [Bugfix] Certain mod elements in workspaces from previous MCreator versions could not be edited
- [Bugfix] Entities were not spawning inside the NBT feature type
- [Bugfix] Workspace settings window close button did not work
- [Bugfix] Some other minor fixes and improvements
To install the patch, re-download 2023.4 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
Hey there,
so I made a new shield with the new tool type but I cant quite understand how the blocking works.
WHen I block with my custom shield the animation only displays in third person but from first person perspective the shield blocking doesnt change so its hard to tell If one is blocking or not. Is this a bug or is there a way to set a nother custom blocking animation. I tried changing the [shield blocking model] but it doesnt change anything.
If you told me 5 years ago how big mcreator would get, and the shear amount of features that would be added to it, I'd recommend you to get a few air-holes drilled in your skull. This is absolutely incredible, and I'm forever grateful that you've kept this going, and that you don't charge a dime for it!
It's has been quite a while since I first discovered MCreator, a lot of time has passed (I did not release a single mod though) ever since, at some point I dropped MCreator to go over to a real programming language, but I always was checking in here every once in a while. It's truly amazing how far you guys got by now, all of those features I could have only dreamed of in the past one can now easily implement into their mod without problems.
I just wanted to show my appreciation for your passion to continue this project, it's crazy for how long you have been at it. Also wanted to thank you, Klemen, for showing me the path into coding! :)