![MCreator 2020.4 - The big summer update](/sites/default/files/styles/article_picture/public/2020-08/website.png?itok=UemGVH97)
The big 2020.4 update is out! It adds a lot of important new features such as enchantments, conditions, entity inventories, and much more, including many big bug-fixes. Read on!
Enchantments
The top-voted feature in the tracker in the time of 2020.4 development is here. Enchantments. Define new enchantments and use them as modifiers for your procedures.
Conditions
A new mechanic was added to procedures. Conditions. Use procedures that return values to conditionally spawn structures, ores, entities, use portals and ranged items, and more.
One of the uses for conditions is AI tasks of custom living entities too. Use conditions to conditionally start or continue execution of specific AI tasks.
FE energy and fluid-tank support
Another important new feature is FE energy support. Make custom blocks energy containers and use many new procedures to manage energy of custom blocks and blocks of other mods. Compatible with other mods too. Fluid-tank support for blocks and procedures for this system were added too.
Dimension improvements
Duplicating portals and portals not working properly bugs were fixed. Now portals support teleportation of any entity in 1.15.2 and are much much faster. Check the video below for a demonstration.
Block bases
Two new block bases were added: doors and fence gates. If you want your doors to have iron-doors like logic, set their material to iron.
Entities with inventory
Another feature added in this release is entities with inventory support. One can now bind custom GUIs to entities and the items from GUI slots are bound to the internal inventory of your custom entity. Procedures to manage slots at specific IDs of the entity were added too. They support vanilla entities as well.
The entity in range procedure
Another important addition to MCreator with this update is support to get the nearest entity of selected type in a given range or test for its presence. You can convert entities to items now too, which is demonstrated below in the example below.
Player variables
Entity NBT is not synced to clients so player NBT could not be used in overlays. To overcome this problem, we added player variables that are synced to clients properly so you can use this new variable type to add things like custom hunger, mana or other properties to the players.
Biome entity spawning editor
Biome entity spawning editor now supports much more than just listing entities. Set spawning type, weight, and group sizes with the new improved editor.
Damaging items in crafting table
Custom items can now not just be set to stay in the crafting grid when crafting but can be specified to damage themselves when used in the crafting recipes too.
Light-emissive blocks
Option to enable light-emissive block rendering was added. Now you can make blocks that visually glow in the dark similar to the magma blocks in Minecraft.
UI improvements
UI received some refreshing changes. A new list view mode was added to the workspace browser. Biomes and living entites now have representative previews based on their colors in the mod elements list.
New previews were added to many drop-down selectors such as advancement selector, texture selectors for living entities, armor textures, bullet textures, and more were added.
Release notes
- Existing custom biomes might need to have custom colors cleared to use default colors
- Global variables are now only synced from server-side to client-side and not the other way around to prevent malicious forging of data by sending packets with altered data from client-side to server-side
- Overlay and particle spawning conditions need to be redefined using the new condition system
- [Plugins] Data lists (eg. block and items list) can now be extended (eg. with elements from other mods), using plugins
- [Plugins] Plugins can now add texture maker, animation maker, procedure, and AI task templates
- [Plugins] Added option to define custom APIs, libraries, and support mods similar to how MCreator Link is implemented (APIs get automatically installed when enabled) and make procedures, triggers and AI tasks that require specific API enabled to work
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 commands did not work in contexts without a player (eg. command blocks and some procedures)
- [Bugfix, B 1.14.x] Changing add-on modid/namespace corrupted workspace
- [Bugfix] Custom OBJ model textures did not work in some cases
- [Bugfix #61924, FG 1.15.2] Player spawned outside custom dimension portal sometimes, portals could duplicate
- [Bugfix #61951] Custom ranged entities did not stop shooting under some conditions
- [Bugfix #61686] Custom ranged items did not inherit some parameters when used with custom living entities
- [Bugfix #63146] Custom dimensions could have more and more caves in some cases
- [Bugfix #63601, FG 1.15.2] Custom dimension portals did not work in exported mods
- [Bugfix #64199] Custom slab blocks did not render properly when in double variant
- [Bugfix #63629] Custom structures could cause worldgen lag in some cases
- [Bugfix #63642] Overlay base texture size was not updated in the code properly in some cases
- [Bugfix #64396] Items with inventory could crash the game in some cases
Other improvements
The article would be too long if we described all the changes and bug fixes in-depth, so you can see the full list in the full changelog of this release here (some important features that were not mentioned previously are highlighted with bold text):
- Improved navigation of mod element editor
- The special tool tool-type now acts as a hand when breaking incompatible blocks
- Added "convert item entity to itemstack" procedure
- Added list view to the workspace mod elements browser
- Improved texture editor performance
- Entity x, y, and z dependencies are now passed with floating-point accuracy
- Added new global triggers: sapling grows, entity struck by lightning, player fishes item, entity healed
- Improved font rendering and font handling with characters of specific non-English languages
- Added support for Git branches to remote workspace system
- Added many new plugin features (check release notes)
- Added breed AI task for breedable living entities
- Added doors block base
- Added in-app help tips support to procedure selectors
- Biome air, water, and grass colors can now be selected separately while others can be left at default values
- Added many new in-app UI tips (big thanks to Goldorion)
- Added texture preview to armor and other type texture selectors
- Added fence gate block base
- Improved previews of element selectors and mod elements list
- Added Spigot generator flavor support for community plugins
- Added YAML file support to the code editor
- [#55702] Added new player lifetime and player persistent variables that are synced with client-side
- [#61280] Added keyboard shortcuts to the integrated image editor
- [#47617] Added "get entity in range" procedure block
- [#61741] Added "when an entity jumps" global procedure trigger
- [#61503] Added "before entity hurt" global procedure trigger
- [#51650] Added tameable entity support
- [#53075] Added option to specify inventory item texture for custom blocks
- [#42538] Added FE energy support to blocks and procedures
- [#50757] Added fluid tanks support to blocks and procedures
- [#58891] Improved biome entity spawn list editor
- [#59113] Added option to damage custom items in crafting recipes instead of consuming them
- [#61928] Added option to export deobfuscated mods
- [#43839] Added enchantment mod element type
- [#51470] Added option to specify inventory of a custom entity and bind GUI to it
- [#62332] Added entity inventory slot set/get procedures
- [#49202] Added option for procedures to return a value
- [#49202] Added "call procedure and get return value" procedure blocks
- [#49202] Added support for conditions: block, structure, entity, and plant spawning, dimension portal use, and placement, should ranged item fire condition
- [#49202] Added support for conditions in entity AI builder for AI tasks and goals
- [#55403] Custom armor models now support specifying body armor arm parts
- [#63401] Added option to add a new folder to resources folders from the project file browser
- [#61677] Custom blocks and plants can now use emissive rendering for a glowing effect
- [#62204] Added special info (description) fields to armor
- [#61934] Custom blocks can now specify beacon beam color modifier
- [#61361] Global variables can now be shown in labels in integer format
- [#56963] Added tile entity support to plants
- [#62187] Added "place portal for a dimension if properly shaped" procedure block
- [#60909] Custom GUIs can now pause the game if specified
- [#57806] Added attack amount dependency to entity attacked global trigger
- [#56008] Added biome dictionary biome check procedure
- [#61241] Added option to specify entity step sound
- [#62571] Added "on item broken" global procedure trigger
- [#61135] Added "when a player swings with item" item procedure trigger
- [#54959] Added potion level and duration getters procedure blocks
- [#64020] Added "is entity tamed" and "is entity tamed by" procedure blocks
- [#64020] Added entity tamed global procedure trigger
- [#62775] Added entity width, height, and submerged height getters procedure blocks
- [#63575] Added "get entity target entity" procedure block for aggressive entities
- [#55394] Custom plants can now be set to generate the same way as vanilla tall grass does
- [#62413] Added option to specify which GUI slots to drop items and which not for unbound GUIs
- [#62296] Custom commands can now specify the execution permission level
- [#52780] Custom items can now use tool-like rendering
- [Bugfix] Right-click and left-click global triggers triggered twice
- [Bugfix] Pressing E key while text field was in focus closed custom GUIs
- [Bugfix] Shoot ranged item procedure caused build errors with the floating-point speed in some cases
- [Bugfix] Custom commands did not work in contexts without a player (eg. command blocks and some procedures)
- [Bugfix] Source code of mod elements with locked code was reformatted on code regeneration
- [Bugfix] Custom OBJ model textures did not work in some cases
- [Bugfix] Set variable procedure block could cause build errors in combination with the player and local variables
- [Bugfix] Entity spawning was not properly synced to clients in some cases
- [Bugfix] On initial mob spawn procedure trigger could freeze world generation
- [Bugfix] Conditions checking or altering the world for block, plant, structure, or entity spawning could freeze world generation
- [Bugfix] Play sound procedure block did not work properly on client-side
- [Bugfix] Block and item selector did not update previews properly
- [Bugfix, B 1.14.x] Changing add-on modid/namespace corrupted workspace
- [Bugfix #63642] Overlay base texture size was not updated in the code properly in some cases
- [Bugfix #63629] Custom structures could cause worldgen lag in some cases
- [Bugfix #63778] Ranged items ignored off-hand inventory
- [Bugfix #63794] Entity display name procedure did not work with player names
- [Bugfix #63971] Swing main/off hand procedure block did not work with players in some cases
- [Bugfix #63996] Entity in range procedure blocks generated faulty code in case range had non-constant value
- [Bugfix #63973] Custom armor arms were not properly applied to the player model
- [Bugfix #64199] Custom slab blocks did not render properly when in double variant
- [Bugfix #64291] Test draining fluid tank procedure block caused build errors
- [Bugfix #63146] Custom dimensions could have more and more caves in some cases
- [Bugfix #63262] Custom doors dropped twice
- [Bugfix #63320] Backspace key did not work in text fields of custom GUIs
- [Bugfix #61686] Custom ranged items did not inherit some parameters when used with custom living entities
- [Bugfix #61897] Eating particles of food with custom model had broken texture
- [Bugfix #61951] Custom ranged entities did not stop shooting under some conditions
- [Bugfix #62307] Custom creature mobs did not spawn on custom grass material blocks
- [Bugfix #62504] Mobs spawned with procedures did not receive on initial spawn event
- [Bugfix #64689] Use of play sound procedure block could crash dedicated servers or cause build errors
- [Bugfix #64396] Items with inventory could crash the game in some cases
- [Bugfix #64585] Performing world modifications on structure generated trigger could crash the game
- [Bugfix #64739] Entity in range procedure blocks could cause build errors in some cases
- [Bugfix #64251, FG 1.14.4] "Before entity is hurt" global trigger caused build errors
- [Bugfix #63601, FG 1.15.2] Custom dimension portals did not work in exported mods
- [Bugfix #61924, FG 1.15.2] Player spawned outside custom dimension portal sometimes, portals could duplicate
- [Bugfix] Some other minor fixes and improvements
Explore plugins website section
There have been quite some plugins made for MCreator already, including Fabric modding API support and Spigot plugin generator. Therefore we decided to make a new website section dedicated to plugin sharing. Check out the plugins page.
Feature overview video
If you would like to see all the most important features of the 2020.4 update collected in a video, check it out below.
Tell us what you think about the update (and what your favorite new feature or bug fix is) in the comments! If you like what we do, consider donating to help us keep this project up.
UPDATE: We have released a patch update to fix two bugs found in 2020.4:
2020.4.32115:
- [Bugfix #64811] Help tips were not loaded in UTF-8 encoding
- [Bugfix #64826] Custom armor broke recipes and advancements referencing it
To install the patch, re-download 2020.4 and install it again.
Comments
This plugin is open-source so anyone can contribute. So the answer would be when someone adds it, be it you or someone else ;) I don't really work on it anymore as I focus on new features in my limited time I can dedicate to MCreator. It is my hobby and a project I do for free after all.
On the creating a generator tutorial, for my 1.7.10 generator plugin, what should I change the gradle wrapper thing to and by "Do not reuse mcreator's code" does that mean I have to create whole new files that are all different from the ones official gens? and if yes to second question, then what files should i change? sorry for 3 questions in one comment its kinda hard to have conversations here...
How did you make a bar that filled up in the FE energy preview? Could you provide a workspace?