The first release of the year 2023 is here. And it is big and packed with features such as feature mod element, image buttons, and much more. Read on!
Feature mod element
The biggest new feature in this update is most likely the new feature mod element. With this mod element, one can completely alter the way existing or custom biomes are generated. This does not affect the surface only, features can generate in the sky, below the surface in caves, underwater, ... practically anywhere you specify. This will allow for control of biome generation in granular ways one could not imagine before.
In the image below, you can see an example setup of a feature to generate pumpkins in the world. One can define the feature and its parameters and then define the placement conditions that define where the feature can and should generate.
Image buttons
For some, this feature could be even more important. After many updates of wait, image buttons in custom GUIs are finally there. With this feature, one can define buttons of any shape that change appearance on hover. There is of course an on-click procedure trigger, and also an optional visibility condition procedure.
Biome parameters
The next important feature in this update is improved biome parameters. The new biome parameters system is compatible with Minecraft 1.18+ biome definitions that define value ranges that the biome will generate in. MCreator also estimates surface coverage for the overworld based on the provided parameter ranges and provides useful help tips to help users decide the range to use. We have also prepared a wiki page explaining new biome parameters.
Tokens system replaced with procedures
MCreator 2023.1 is replacing the old tokens system to print values in GUIs with new string procedure providers. This way, any value or string that can be generated in procedures can be shown on labels, offering practically unlimited flexibility. Due to the somewhat complex nature of tokens, there is no automatic conversion, so this will need to be manually converted. Existing tokens will show as plain text in the update.
Translatable GUI components
It does not stop there with GUIs. Labels, buttons, text fields, and checkboxes can now be translated. MCreator will automatically extract texts from UI elements and provide them in the translations list for the translation. All existing components will be converted to translatable automatically and all of their texts will be visible on the localization tab of the workspace browser.
Rendered entity model GUI component
This update does not add one, but two new GUI components. The other one is rendered entity model GUI component. Using this component, one can render any entity the procedures can provide in the GUI with desired scale and optional tracking of the mouse cursor. Procedures can provide player models, models of nearby entities, or any other entity generated by the procedure. The component also features an optional visibility condition procedure.
New GUI slot parameters
The Slot GUI component is also getting some improvements. Stack input can now be limited to items tagged in a particular item tag, not only for one specific item. There are now optional procedure-provided conditions to disable item pickup or placement too. This way, the removal of an item in a slot can be locked by a procedure, resulting in eg. a locker GUI where one GUI slot needs to be filled with a key, for example, to unlock pickup from another GUI slot.
Armor item models
Armor can now define custom item models, not just the entity model of rendered armor when equipped. This means the items used for armor and shown in inventory and in hand can now have custom JSON or OBJ models.
Bone meal properties
Custom blocks and plants can now specify how they react to being fertilized with the bone meal. They can provide conditions for use, whether its use is successful, and action when the bone meal is used successfully. This will allow users to make arbitrarily complex bone meal logic for custom blocks and plants.
Ranged attack entity properties
Ranged attacks of custom entities now have a parameter of attack interval and radius. Those parameters define how often the entity will execute ranged attacks, and how far the target can be for the entity to still perform ranged attacks to it.
New custom item references
This feature may not be immediately noticed, but it is very important. Custom dimension portal blocks and more importantly, spawn eggs, are now shown in item selectors. This means that procedures can now place custom dimension blocks, or for example, custom entity spawn eggs can be used in recipes.
New procedure blocks
We did not forget to add some new procedure blocks either. One of the cool new procedure block sets is procedure blocks to check whether a mod with a certain ID is loaded, and procedure blocks to convert block or item registry names to a block or item instance that can be used in procedures. In practice, this means MCreator mods can now check if a certain mod is loaded and if it is, use blocks or items from any other mod in procedures. This means one could make a custom crafting GUI that also works with other mod items, or make certain procedure spawn gems of items from another mod.
Another new useful procedure block is a procedure block to set the attack target of an entity to another entity. Keep in mind this procedure may be overridden by other entity AI tasks, so calling of target setter may be needed by the entity tick update trigger or from conditions of AI tasks, for example.
Another useful procedure block is the procedure block to make an entity pathfind a path to a specified location and move there with a defined speed. A similar warning applies to this block too. Request for pathfinding may be overridden by other entity AI tasks, so the call of the procedure block may be needed to be executed by the entity tick update trigger or from conditions of AI tasks, for example.
We also added three loot-table-related procedure blocks that will probably make a lot of people happy. One can now get and iterate all items provided by the loot table, with optional location or entity context for more accurate loot roles.
Is an item of tool type procedure block has been extended so a check for any tool type group can now be performed, meaning that one can check if an item is eg. any type of boat, bow, armor, and so on.
Plugin changes
This one is also very important, but does not have a picture as plugin features don't really show in the UI when one opens up MCreator, but are equally important for all the plugins that follow after the release. On this front, the most important change is list support in multiple places. Code generators can now generate files based on the list data source. Blockly blocks now support blocks that provide lists of inputs, fields, or statements. New event types with documentation were added for Java Plugins. We have also improved generator templates, so some parameters are no longer needed as they are determined automagically.
Release notes
- Migrated biome generation system to the new biome parameter point ranges system. Existing biomes will be converted automatically.
- Labels using tokens in custom GUIs and overlays will no longer replace tokens with values but show raw tokens instead. This system was replaced by string return value procedures that can be used as a text source for labels. Manual conversion will be needed.
- Particle parameters were removed from the custom block and living entity mod elements. Procedures should be used instead. Existing particle spawning parameters need to be manually converted to procedures.
- Custom fluid element generation was moved to the feature mod element. Existing generation setups will be converted automatically.
- Using the MCREATOR_HOME environment variable, one can specify an alternative folder location for data storage
- [Plugins] Added support for list templates, which allows generating similar templates for a list of data from the mod element
- [Plugins] Generator template parameter exclude has been removed and should be replaced with conditions, deleteWhenConditionFalse parameter is now ignored and handled automatically instead
- [Plugins] Added support for list inputs. statements and fields, making custom Blockly mutators possible
- [Plugins] Java plugins can now declare and use custom Blockly editors
- [Plugins] Custom template sections for the preferences dialog can now be added using Java plugins
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, FG 1.19.2] The wait procedure block sometimes crashed the game
- [Bugfix, A 1.19.x] Loot tables editor did not work properly
- [Bugfix] Certain incompatible plugins could cause the software to stop loading on the splash screen
- [Bugfix] Requires correct tool for drops block parameter was not properly restricting the tool type
- [Bugfix] Custom item damage vs mob/animal parameter did not work
- [Bugfix] Some animated textures could break the block/item selector
- [Bugfix] Biomes did not register to the overworld dimension properly in some cases
- [Bugfix] Melee attack AI task had too big of an attack range in some cases
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.5
- Updated 1.19.2 Minecraft Forge version to 43.2.0
- Updated Blockly to v9.2.0
- Improved splash screen rendering
- The default particles setting is now All in the test Minecraft environment
- Improved workspace selector window with some new features
- Added Chinese help tips for most of the UI elements
- Improved code generator system internals
- Updated some icons in the Midnight theme
- Added a dialog that informs the users of a plugin load failure and the reason for it
- Improved biome generation parameters system
- Added some new buttons to the toolbar for easier action access
- Custom GUI and overlay texts are now included in localization system and can be translated
- Removed GUI and overlay label tokens and replaced them with string return procedures system
- Pressing the delete key on the workspace panel lists deletes the selected elements
- Pressing enter key on the workspace panel lists edits the selected elements
- Added custom entity spawn eggs and custom dimension portal blocks to the block/item selector
- Added new entity with ranged attacks parameters: ranged attack interval and radius
- Added option to define custom GUI input slot limits using item tags
- Added a parameter with an optional procedure to make custom living entity bounding box solid
- Split player procedures into player management and player data procedure categories
- Added image buttons to the custom GUI mod element
- Added rendered entity models to the custom GUI mod element
- Added option to separately specify slot pickup and placement parameters with conditional procedure support
- Added an option to define bone meal conditions and action procedures for custom blocks and plants
- Added support for custom armor item JSON and OBJ models
- Added feature mod element
- Added feature types: simple block, lake, huge red mushroom, huge brown mushroom, block pile, huge fungus, forest rock, underwater coral tree, underwater coral claw, and underwater coral mushroom, seagrass, bamboo, delta, replace block, column, random patch
- Added feature placements: on heightmap, with random XZ within a chunk, with a chance, within a biome, on surface water depth, based on block survival, offset on xz and y, heightmap relative threshold, carving mask placement, repeated N times, repeated N times on every layer, (repeated) noise-based count
- Added feature height placements: at height, with uniform distribution, with triangular distribution, n blocks above world bottom or below world top, with trapezoid distribution, biased to bottom height, very biased to bottom height
- Added feature conditions: if any of the conditions are met, if all of the conditions are met, is block in block list or tag, is block solid, inside world bounds, is block with sturdy face, is air, is air or water, is block replaceable, would block survive on position, condition negation
- Added new feature integer providers: constant, random integer, biased random integer, random integer with normal distribution, clamp integer
- Added scan blocks up or down until condition is met feature placement block
- Added block list and block tag feature blocks
- Added entity procedure blocks: get the first passenger
- Added a new procedure block to create entity instances to be used with rendered entity models in GUIs
- Added new item procedure blocks: get item harvest level, get max stack size, is stackable, is damaged, is damageable
- Added call loot table procedure blocks with world, location, and entity contexts
- Added entity procedure blocks: attempt to make entity find a path and move to a location, stop navigation, set attack target, set entity frozen for a number of ticks, get number of ticks entity was frozen, make entity stop riding an entity
- Added a new player procedure: has specific GUI open
- Added mod compatibility procedures: is mod loaded, convert registry name to item, convert registry name to block
- Added procedure blocks to get block, item, and entity registry names
- Added custom code snippet procedure blocks to the AI builder
- Changed is item of tool type procedure block to more general is item of item type procedure block
- [Bugfix, FG 1.19.2] The wait procedure block sometimes crashed the game
- [Bugfix, A 1.19.x] Loot tables editor did not work properly
- [Bugfix] Some procedure blocks added entity dependency when they shouldn't
- [Bugfix] GUI textures with the registry name of the GUI mod element could be unexpectedly deleted in some cases
- [Bugfix] When using Chinese Simplified or Chinese Traditional language, certain procedure categories failed to load
- [Bugfix] Certain incompatible plugins could cause the software to stop loading on the splash screen
- [Bugfix] Requires correct tool for drops block parameter was not properly restricting the tool type
- [Bugfix] Custom item damage vs mob/animal parameter did not work
- [Bugfix] Some animated textures could break the block/item selector
- [Bugfix] Java model coverage was not shown properly in certain cases for plugin generators in the generator selector
- [Bugfix] In some cases, certain mod files were not deleted by the generator when they should be
- [Bugfix] Biomes did not register to the overworld dimension properly in some cases
- [Bugfix] Melee attack AI task had too big of an attack range in some cases
- [Bugfix] Using break and continue Blockly blocks outside the loops caused build errors
- [Bugfix] Some other minor fixes and improvements
Big thanks to the contributors
I would like to thank all the contributors and maintainers that helped to shape this huge feature-focused update. You are the people behind those ingenious features. You listened to the community's ideas and decided to take up the job and implement many of those nice new features. I would also like to welcome all new contributors that joined during the development of MCreator 2023.1, especially NerdyPuzzle who decided to not only be one of the biggest plugin makers in the community, but to also help with the development of MCreator's core and developed quite some of the features listed in the changelog and also helped with the issue triage and resolving the bugs.
Tell us what you think about the update in the comments! 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.
UPDATE: We have released a patch update to fix some bugs found in the 2023.1 release:
2023.1.10219:
- [Bugfix] Interface could completely freeze/hang in some cases on macOS
- [Bugfix] Some other minor fixes and improvements
To install the patch, re-download 2023.1 and install it again. Make sure to uninstall the current version first.
UPDATE: We have released another patch update to fix some more bugs found in the 2023.1 release:
2023.1.10610:
- [Bugfix] Forge 1.19.2 workspaces ported from earlier versions with fluid generation crash the game
- [Bugfix] Repeating fields and inputs were not validated properly if they were empty
- [Bugfix] Some other minor fixes and improvements
To install the patch, re-download 2023.1 and install it again. Make sure to uninstall the current version first.
It already started 👀