MCreator 2024.1 - A Refreshing Update

Published by Klemen on
MCreator 2024.1 - A Refreshing Update - UI refresh, debugger, NeoForge, Minecraft 1.20.4, jigsaw, and much more!

The first MCreator Minecraft mod maker release of the year is here! It is packed with big and refreshing changes so make sure to check it out. You won't regret it!

Minecraft 1.20.4 and NeoForge

One of the biggest changes in this release is support for a new modding API - NeoForge. This support comes together with support for Minecraft 1.20.4.

Why the change to NeoForge? In the past few months, a significant part of the Minecraft Forge team forked into a NeoForged project and they are now working on a new system that we have decided to adopt based on the public pointers regarding future adoption plans of other modders and Minecraft mod users, and on the improvements the project aims to introduce into the API. Support for Minecraft Forge for 1.20.1 remains. In the future, we will go with the modding API that will show more promising development and adoption, while other modding APIs are still fully supported as plugins.

Minecraft 1.20.4 and NeoForge modding API support

UI refresh

It has been a while since the last UI refresh of MCreator, so it was about time to make one. We are presenting the new look and feel of MCreator, which is now flatter, more modern, accessible, and performant. The new UI greatly improves compatibility with HiDPI screens (especially with screen scales such as 125% and 175%) and macOS/Apple Retina screens. The new UI also supports SVG vector icons that scale in a non-pixelated way on higher pixel density screens.

New UI for the workspace selector

Below you can see another screenshot of the new UI in action with the new refreshed main workspace window and panels. You can also see the new unified title bar and menubar of the FlatLaf in action.

New look of the main Minecraft IDE window

Themes can now use SVG or PNG for their icons. They can now specify all properties of the FlatLaf such as border style, font sizes, component spacing, and more. This allows for customization beyond the current color scheme options present in the old system. Additionally, themes can import IntelliJ-based JSON themes too.

Improved tag management

Minecraft is putting more and more importance on the tags system. Therefore, we concluded tags no longer fit as a mod element, but more as a separate panel. Existing tag mod elements will be converted for you. This new workspace tab allows you to add, edit, and delete tags and tag entries in a centralized way with an easy way of having an overview of all tags present in the mod.

Additionally, MCreator will now generate certain tags for your convenience and automatically add them to the list of tags.

Improved Minecraft tag management with new dedicated panel

In the image below, you can see a detailed look at how editing of entries of a certain tag looks like. When clicking on the entry list of the selected tag, the editor will open and you can quickly add elements or sub-tags to it, as well as delete selected or all entries. In case you want to delete a managed tag entry, MCreator will warn you, but still allow deletion if needed.

New inline Minecraft tag editor in MCreator Minecraft mod maker

Debugger system

This update introduces a system that allows a mod developer to monitor the execution of the mod, stop it on breakpoints, check how many times something executed, see running threads, and more. One component of the debugger is procedure markers. This system helps one to determine if, where, and how many times a certain procedure section is executed.

Minecraft procedure debugger in MCreator Minecraft mod maker

This update also adds a standard Java debugger that utilizes Java DBI to function. Debugger allows Minecraft mod developer to view threads of the JVM and their status, put breakpoints, view stack frames on a breakpoint hit, and step into/out/over when stepping execution in a breakpoint mode.

IDE-like Java debugger for debugging source code of your Minecraft mods

Jigsaw structures support

Another big addition to this update is support for jigsaw structures. With this system, one can specify structure generation that generates structures that grow from the main centerpiece into all directions based on the definition of the user. This allows one to generate large randomized structures, similar to e.g. how villages are generated in vanilla Minecraft.

Support for Minecraft jigsaw structures in Minecraft mod maker MCreator

In the picture below, you can see how the jigsaw structures are defined in the interface of MCreator. One can define as many pools and pool entries as they want and make structure as randomized as needed.

Minecraft structure jigsaw editor in MCreator

User code blocks

This is a big one for people who code manually using MCreator. Alongside new debugger functionality, this update also adds user code blocks, that replace the old system for locking base mod files. Instead of locking base mod files, one can now add code within those custom user blocks and the code between those placeholder sections in the code will persist across builds, and if another generator specifies the same user code blocks, even across Minecraft versions, and even across modding APIs when possible.

Custom user code blocks inside code generated by MCreator

Multiple advancement triggers/criteria

In this version of MCreator, you can specify multiple advancement triggers/criteria thal all need to be matched before an advancement is granted. You can see in the screenshot below how this looks in practice.

One can now define multiple criterions for custom Minecraft advancements possible in Minecraft mod maker MCreator

Missing plugin or generator features detection

This update introduces a system to detect when there are mod elements, variables, or APIs in use that a given version of MCreator, plugin, and generator combination are not supported. In case, for example, you update the MCreator version and the plugin that adds a certain mod element type does not support this version yet, and you then open a workspace requiring this mod element type, instead of this workspace breaking, MCreator will detect missing features and warn the user about the requirements that need to be met for the workspace to be safely opened.

MCreator now detects if workspace requires features the current setup can't provide

More tree features

We are introducing even more tree types in this update, including azalea, cherry, and mangrove tree feature types, mangrove root placer, and attached-to-leaves tree decorator. See them in action in the picture below!

New Minecraft tree features supported in MCreator Minecraft mod maker

In the screenshot below, you can also see some of the new tree feature blocks in the Blockly editor for the feature mod element.

Some of the new tree features supported in MCreator in the Blockly feature editor

Procedure improvements

Typed procedure blocks such as return, get, and set variable procedure blocks and "call procedure with return type" got type strings alongside the current color indicator, which should help with accessibility and ease of use of those blocks.

Improved procedure block naming in MCreator Blockly editor for Minecraft mod procedures

Datapack features

Feature mod element type is now also supported for data packs, meaning you can now make custom data packs that don't require any mod loader and work with vanilla Minecraft systems that add new worldgen features.

Minecraft data pack maker in MCreator now also supports making custom features

macOS native file chooser

This is great news for all macOS users. MCreator will now user the native system file chooser by default. If you prefer the old file chooser, you can still opt-out and use the old style file chooser by going to the preferences.

MCreator now supports native file chooser on macOS

Gradle console improvements

The Gradle console has been improved to better parse the output of different modding APIs and Gradle versions. Color highlighting has been improved and streamlined. The performance of the Gradle console, when a lot of text is being printed consecutively, has also been improved.

Improved Gradle console coloring and performance in Minecraft mod maker MCreator

UX improvements

This update does not only come with UI refresh, but also with many small but great UX improvements that fall under the QOL category, but are nevertheless very important.

One of them is an option where one can now change the target folder of newly created or duplicated mod element right from the creation dialog using a small breadcrumb component included in the interface.

Improved folder selection when creating a new mod element in MCreator Minecraft mod maker

Another one that we wanted to showcase explicitly is an improved entity list selector, such as the block/item list selector. One can now middle-click entries to quickly delete them from the list, or double-click the entry to open its editor.

Improved handling of entries in the entry lists such as Minecraft block and item entry lists in MCreator Minecraft mod maker

Improved performance

This one is not something you will notice visually when looking at the newly updated software, but something you will notice with time. We have done significant amounts of work to improve performance when generating the code of the workspaces and when saving mod elements. Those changes can in some cases improve the speed of the generator for multiple folds of the current performance, so this is a big one, especially for large projects made with MCreator Minecraft mod maker.

Release notes

  • MCreator now uses FlatLaf for its look and feel. Themes can now specify all properties of the FlatLaf such as border style, font sizes, component spacing, and more. Themes can also import IntelliJ-based JSON themes.
  • Mod base files locking system was replaced with custom user code blocks. Existing code will have to be manually migrated to code blocks.
  • Themes can now define images in either SVG (recommended for HiDPI and Retina screens) or PNG format. GIF format is no longer supported. Some icons were renamed and/or removed.
  • Tags are now managed in a workspace tab. Existing tag mod elements will be converted to tag entries automatically.
  • Deal custom damage procedure block was removed. Existing procedures will be converted to deal a generic-type damage. Custom damage types should be now used to provide custom damage messages.
  • MCreator now requires plugins to specify the exact versions of the software they work with. Plugins need to specify the array of versions they support.
  • Attack damage value was adjusted so UI and in-game values match for item and tool (sword, hoe, special, multitool) mod elements. Manual adjustments may be needed.
  • [Plugins] Generators can now exclude specific folders from an imported generator

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] "When ranged item used" procedure trigger provided incorrect itemstack dependency
  • [Bugfix] Certain procedure blocks did not work correctly with the additional placement condition of the feature mod element
  • [Bugfix] Custom biome mod element trees did not rotate vines and fruits properly
  • [Bugfix] Some slot manipulation procedure blocks altered value of the original item stack passed when they shouldn't
  • [Bugfix] Wait procedure block executed twice if present in a procedure triggered from both the server-side and client-side
  • [Bugfix] Attack damage value could be offset in some cases for item and tool mod elements
  • [Bugfix] Changes to the workspace settings do not apply to the mod files until the workspace is re-opened
  • [Bugfix] Server-side only mod workspace setting did not work
  • [Bugfix] Opening mod element editor that contains Blockly editor crashed MCreator on macOS 11
  • [Bugfix] Using world or itemstack dependency in the block special info text provider procedure caused build errors
  • [Bugfix] Using ranged item built-in item model caused models and textures of item properties not to work

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.10
  • Added support for native file chooser on macOS
  • Refreshed UI with a new look and feel and new theme plugin features
  • Improved HiDPI and macOS Retina screen support
  • Improved UX, usability, and accessibility of many UI components across the software
  • Added type strings to more procedure blocks for better accessibility
  • Added an option to change the target folder when creating or duplicating a mod element
  • Added support for Java Debug Interface with thread view, breakpoints, and stack frames view
  • Added a system to put breakpoints in the code editor and run code execution in steps
  • Added a system to debug procedure assemblies using debug markers
  • Added custom user code blocks system that persists custom code in workspace files between code regenerations
  • Added a new workspace tab for improved managing of Minecraft tags
  • Added a new system for generating tags automatically when mod elements need them
  • Significantly improved the performance of the code generation system
  • MCreator now detects if a workspace and/or generator requires features or plugins that are not present/installed or failed to load and warns the user when opening the workspace
  • Minecraft Java Edition data pack generators now support feature mod element
  • Added support for handling ZIP files created on Windows on some non-English locales
  • Build errors dialog now takes significantly less time to parse build errors and become visible in large workspaces
  • The code editor for mod files now opens much faster in large workspaces
  • Added support for requiring multiple triggers for the advancement to be granted
  • Added base support for NeoForge 1.20.4
  • Added Minecraft data pack generator for 1.20.4
  • [NF 1.20.4] Added support for: custom code, key binding, sounds, variables, damage types, functions, potion items, commands, paintings, tags, structures, recipes, enchantments, GUIs, loot tables, particles, potion effects, game rules, music discs, creative tabs, JSON models, Java models, OBJ models, armor, villager trades, biomes, dimensions, advancements, features, item extensions, items, projectiles, villager professions, global triggers, blocks, tools, fluids, overlays, plants, living entities, procedures, AI tasks
  • [DP 1.20.4] Added support for: damage types, functions, structures, recipes, loot tables, biomes, dimensions, advancements, features
  • Added support for jigsaw pools to the structure mod element
  • Improved generated code for block and plant drops logic to use vanilla loot tables
  • Added custom dimension portal igniter item rarity parameter
  • Added tree features: azalea tree, cherry tree, mangrove tree
  • Added tree feature decorators: attached to leaves decorator
  • Added tree root placers: mangrove roots
  • [Bugfix] Loop flow control procedure block could be used within the wait procedure block
  • [Bugfix] Jump to class declaration ctrl+click tool did not work when clicking on class names in imports
  • [Bugfix] "When ranged item used" procedure trigger provided incorrect itemstack dependency
  • [Bugfix] Certain procedure blocks did not work correctly with the additional placement condition of the feature mod element
  • [Bugfix] Custom biome mod element trees did not rotate vines and fruits properly
  • [Bugfix] Mod element generated code viewer would not update the code in real-time in some cases
  • [Bugfix] "Player uses hoe" global trigger crashed the game when non-player entities used the hoe
  • [Bugfix] Importing of animated GIF files in animation maker imported only the first frame or frames merged in some cases
  • [Bugfix] Saving procedure that is called by other procedures could freeze the interface in some recursive-call cases
  • [Bugfix] Some slot manipulation procedure blocks altered value of the original item stack passed when they shouldn't
  • [Bugfix] Wait procedure block executed twice if present in a procedure triggered from both the server-side and client-side
  • [Bugfix] Some tool and armor values were incorrect relative to the iron material pack in pack maker tools
  • [Bugfix] Running test server could fail with file access errors in some cases
  • [Bugfix] In some cases, items that were not enabled were shown in the tab element order editor
  • [Bugfix] Projectile mod element could not be properly used in entity tags
  • [Bugfix] Attack damage value could be offset in some cases for item and tool mod elements
  • [Bugfix] Changes to the workspace settings do not apply to the mod files until the workspace is re-opened
  • [Bugfix] Server-side only mod workspace setting did not work
  • [Bugfix] Opening mod element editor that contains Blockly editor crashed MCreator on macOS 11
  • [Bugfix] Living entity model layers were not affected by surrounding lighting
  • [Bugfix] Tag entries with the same name as the registry name of the tag were not present in the generated tag JSON code
  • [Bugfix] Using world or itemstack dependency in the block special info text provider procedure caused build errors
  • [Bugfix] Using ranged item built-in item model caused models and textures of item properties not to work
  • [Bugfix] Shoot arrow projectile procedure block could get broken if vanilla arrows were used
  • [Bugfix] Some other minor fixes and improvements

 

Patch update 1

We have released a patch update to fix some bugs found in the 2024.1 release:

2024.1.15821:

  • [Bugfix, NF 1.20.4] Pressing the E key when a text field in custom GUI is focused closes it
  • [Bugfix] Tag namespace "mod" was not converted to mod ID in cases such as recipes
  • [Bugfix] Certain startup notifications could appear behind the splash screen
  • [Bugfix] Some other minor fixes and improvements

To install the patch, re-download 2024.1 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.

Share this on:

Comments

Update to my previous comment: Just tested on ver 2023 and everything works fine no issues in the Blockly editor. Is anyone else having this issue? I really wanna use some of these plugins on 2024.1 but the blockly editor bugging out makes it impossible to work with.

You may need to do some changes to the plugins to make them work correctly. You can check https://mcreator.net/plugins for collection of updated plugins where Blockly seems to work fine for the baseline

The blockly editor is broken when using old plugins(I updated them to 1.20.4). Saving an procedure will sometimes lead to it being empty when opened again(all code is still there and works in game), giving an "Exception while compiling blocks: Could not find start block" when putting a block in. The plugins work fine but the blockly editor becomes corrupt for some reason?

Good afternoon
is it planned to had a block in procedures and recipes to simulate a external modded element, from third party mods?

Such as using “Create:brass_ingot”
In procedures or in recipes just by specifying it

Instead of having to use locked code for the whole procedure/recipe

Do you think you could add a built-in trade GUI to use for custom mobs and fix the generation of custom ocean biomes? I'm sure you have many things to work on already, but if you ever have the time to do this, it would be greatly appreciated.

Hi, quick question, with the custom damage types block being removed, it states:

"Deal custom damage procedure block was removed. Existing procedures will be converted to deal a generic-type damage. Custom damage types should be now used to provide custom damage messages."

How would one now get the custom death messages to appear? I can't quite understand this change and it's tempting me to backtrack to 2023.4 again :(

Hello! While I recommend asking such extended questions on our forums (you can find them at https://mcreator.net/forum), let me try to briefly explain here.

Now, you need to make a custom damage-type mod element. In this mod element, define your custom death message. You can also define other parameters there too.

Then in procedures, use the "deal damage" procedure block, and for the damage type, select the custom damage type you have created earlier. This will result in a custom damage type message being shown on the death reason.

I would advise trying to learn new features over using the old version due to the need to explore and learn new features.

Hello, I have a problem with the missing elements detector, when I want to open a mod made with the previous version of mcreator (2023.4) for the first time in order to update it, it tells me that I have elements that are missing support:
"Mod element types: item, tab, achievement, potioneffect, recipe, damagetype, gui, particle, fluid, procedure, command"
It may be correct or it may be a mistake because the only plugin I use also updates it (Nerdy's GeckoLib).
And normal things are mentioned that are not part of the plugin

Hey! What generator type and Minecraft version do you use, if I may ask? If it is a type provided by an external generator, this generator may not support this version yet.

If it is a built-in generator, the best course of action would be to open an issue at our GitHub issue tracker (https://github.com/MCreator/MCreator/issues). Please attach your workspace too, but make sure to remove any plugin dependencies as we can't offer support for plugins on our official issue tracker.

Bear in mind the best course of action usually is to try out the pre-release and report any found bugs at that point, as this way, you can ensure your workspace will be stable in the full release.

After installing the update most of my blocks have compilation errors, how to fix it :<<

I recommend checking out https://mcreator.net/support/knowledgebase. If none of the solutions work, the best course of action would be to open an issue at our GitHub issue tracker (https://github.com/MCreator/MCreator/issues).

Bear in mind the best course of action usually is to try out the pre-release and report any found bugs at that point, as this way, you can assure your workspace will be stable in the full release.



Donate to MCreator

By donating to developers you can speed up development, as with more resources, we can dedicate more time to MCreator. It is a free project made by developers working on it in their free time.