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

but can you make so that you can also make forge mods for 1.20.4 instead of just neoforge?

as the notes and other announcements were made, the direction is to move to NeoForge. 1.20.1 (I believe) will be the last Forge update that will be supported. It's in all our best interest to move to NeoForge anyway. Many developers outside of MCreator are doing the same. It's just going to take time for everyone to adopt it.

great update love the ui changes and it's great that you can now make mods for 1.20.4

I only know the barebone reasons why NeoForge is better to use, but I know that it should be better for modding in the long run :)

just need a bunch of mods to fulfill the space

Where can i report a bug? I cant open this new version, gets stuck on loading and freezing there.

We collect bugs at https://github.com/MCreator/MCreator/issues. However, before making a bug report, first make sure you have the latest patch installed (redownload and reinstall MCreator), and that you don't have any plugins installed/present in plugins folder

Oh yeah, and could you add the ability to change model and hitbox scale via procedures? Saying such, one could shrink the player as well. Another feature request is a procedure that states true if the x y z is in a cave and false if not? Finally, perhaps detecting whether an entity is looking at other said entity?
Thanks! Excited for 2024.2!

A note, in the MCreator files, I discovered the mods folder. Seemingly, one could place mods into their dev session. However, when I attempted to load the True Darkness, Sound Physics, and Tough as Nails mods (all tested separately), the dev session would not start. I don't know the reason of why, and I'd like to note this bug. Although most mods are not compatible, True Darkness and Sound Physics don't affect the game in a way that would mess with MCreator. I was on the recent version of 2024.1.15821.

No, this is not a bug. This is how Minecraft Forge was designed to handle mods. If you put a mod with deobfuscated code there, it will work. Or you can use linked plugin to do that for you

Is there a way to have structures trigger procedures when they generate, or is that just not possible anymore?

I cant seem to find a way to make it work. What im trying to do is have custom trees that are made with procedures generate, and I used to do that with structures before, but seeing as the advanced properties tab for structures is gone now, it isnt possible. Sadly, i can find a way for features to trigger the procedures aswell, so im kinda stuck rn.

All functionality of the old structure mod element (from 2023.3) was moved to the feature mod element.

You can trigger procedure with feature mod element by using additional condition that always returns true at the end of procedure, but putting custom procedure blocks to run before the "return true" procedure blocks.

Since this is support question and also not for 2024.1, I recommend moving the conversation to a forum topic.

I can't help but notice that the bat file was removed, how do you now debug issues with the software itself?

MCreator puts logs into <user home>/.mcreator/logs, where it also stores a history of them in case you want to investigate some issue from the past.

If you are looking to develop MCreator or MCreator plugins and want to debug issues, we recommend adopting MCreator's Gradle project structure and running MCreator from there.

BAT file was removed for security reasons together with mcreator.jar which is now part of exe to strengthen software integrity protection.

In the current version of MCreator (game version 1.20.1, in my case), based on my tests, structures cause freezes when generating the world. In some cases, the world freezes during its creation, in some cases it freezes after a while already in the generated world when it loads chunks. This problem did not exist in the previous version of MCreator and only appeared in the current one. The only plugins I use are Geckolib. Adding a mod to a modpack causes the world to freeze almost instantly; removing structures from the mod solves this problem.

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.



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.