MCreator 1.7.9 - Procedure system, many improvements

Published by Klemen on
MCreator 1.7.9 - Procedure system, many improvements

We are finally releasing MCreator 1.7.9. The update that introduces the most advanced event system ever seen in a mod maker with editing support. And much more!

The best way to overview this possibly the largest update in the history of MCreator in terms of how many bugs were fixed and how many important new features were added is to split it into sections. Let's begin with the most important addition - the all-new procedure system.

Procedure system

Procedure system is the replacement for old event system and also for the global events. The procedure is a new mod element that can be triggered both by global events or by calling them from events of specific mod elements.

New procedure system in action

Each procedure is stored as a separate mod element and can be edited as any other mod element. No actual code is stored, which means that procedures will be seamlessly updatable with new Minecraft versions. This is possible as procedure system is using new generator system which still has to be implemented for many mod element types, but the procedure is one of these which already support it.

Procedure system has many new condition options and event results that were not possible before. Many of existing event results now have more options and are more multiplayer compatible. MCreator takes care of dependencies too, so you can always choose from safe to use procedures. Another addition compared to event system is the support for local variables that can store the data for the time of the event and separately for each event.

Selection of procedure

On the above gif, we can see how MCreator displays the data that is used by a procedure and how it is matched with the data provided by the event trigger.

Overlay condition builder

Similar to procedure system we created new overlay condition builder. Before, only a basic set of conditions was supported and they were not properly loaded when editing the overlay. Now one can very specifically define when the overlay is shown and when not.

New overlay condition builder

Same blocks as for procedure system are supported by this builder. The whole code block system was made to be very adaptable so support for plugins and additional block packs is planned for future MCreator releases.

AI builder

AI builder had a revamp too. Whole mod creation wizard is now arranged in a better way and the new AI builder uses block system too. New AI tasks were added and existing tasks can now be more precisely defined.

AI builder

Variable list

Variable list received a big revamp too. Now already defined variables can be edited and variable name, type and value validation was much more improved.

Improved variable list

Improved mod element list

Mod element list was improved too. Data is now refreshed in the background so the UI is not blocked. We added support to select between small and large icons which can also be changed using Ctrl + Scroll action. Small icons are quite useful for big mods with a lot of mod elements.

Switching between small and large icons in MCreator

Where did the recipes go?

After much discussion on forums regarding this topic, we have finally decided to remove the recipe option from all mod elements. Now recipes can only be defined using recipe mod element.

This way, the workspace is more organized. The block mod element is a block, a tool is a tool only, etc. This approach is called objective design where each element is a separate object. This is considered a good practice in programming world so we decided to adopt it.

Existing recipes inside mod elements will automatically be moved into separate recipe elements. This change also improves the performance of MCreator in some areas as in many mod element cases, all blocks and items don't have to be loaded as the recipe creator was removed from them.

Big workspace improvements

Another change in MCreator is that we implemented some improvements for big workspaces. MCreator now runs faster with big workspaces compared to the performance of same-sized workspaces in previous versions. In some cases, multiple CPU cores are utilized to improve the performance. However, there is still much room for improvements which will be released in next upcoming versions. Keep in mind that workspace import of older workspaces will be a bit slower than before as MCreator needs to perform a lot of conversions.

New MCreator Gradle build options

New options were added to the Gradle build system to make builds faster in case of big workspaces. One of these options is the daemon mode which can be enabled in the preferences. When daemon mode is turned on, MCreator will reuse the same build data for multiple builds and a daemon process will run in the background that will wait for build requests. On slower computers with small workspaces, this option can slow down the build, so use it only if you have a big workspace and you see a performance improvement when using it.

Another Gradle option is to run build on multiple cores. This can speed up the build on more powerful computers in case of many files and complicated code but is an experimental feature of Gradle, so if you enable it and get any kind of strange errors, try to disable it and see it the multiple core build caused them.

Important bug fixes

This update fixes a lot of important bugs too. All of the bug fixes can be seen in the changelog, but the most important ones are listed here:

  • Custom gun sounds not working,
  • In some cases, exported mod had broken textures when tested in actual Minecraft,
  • Custom JSON model texture for blocks and items did not work, the first selected texture was used for all model elements,
  • GUI editor did not validate for empty element names,
  • Print text and print text to chat events didn't work, it printed to Gradle console instead
  • Custom GUIs crashed when shift click was used. Now shift-click works and supports stack splitting and all other stack features from vanilla GUIs,
  • Biome base height did not accept negative values so underwater biome creation was not possible,
  • Order of armor damage values was swapped so it was hard to define proper armor damage values.

All of the bugs listed above alongside with many other were fixed in this update.

Other improvements

The full changelog of this release:

  • Replaced event system and global events with the new trigger and procedure system
  • Improved overlay condition builder with new blocks system
  • Improved mob AI tasks builder with new blocks system
  • Added many new event results (now called procedure blocks)
  • Downgraded bundled Java to version 8u152 as there are some JVM bugs in 8u162 that cause some rare issues
  • Improved mod name validation (reserved Java words check, better name standards check)
  • Improved variable list UI and moved it to a custom tab in the workspace
  • Improved MCreator startup speed for big workspaces
  • Improved general performance of MCreator for medium and big workspaces
  • Added keyboard mnemonics to the new mod element window
  • Item holders now show the name of the element in them when hovered
  • Achievement and fuel mod elements were not immediately added to the mod list after the creation
  • Removed recipe option form all mod elements, existing recipes will be migrated to recipe mod element
  • Improved icons of mod elements and some other minor UI improvements
  • Improved structure/schematic system with references to structures inside biome, dimension and procedure creation
  • Added option to choose small or large icons in mod element list and Ctrl + Scroll to zoom
  • [#41184] Added new mob events: when this mob kills another one, mob tick update, when the player collides this mob
  • [#41421] Added option to select multiple entities to spawn in biome at once
  • [#41265] Renamed gun mod element to "ranged item"
  • [#41012] Added new event results disable fall damage and enable flying
  • [#40989] Added option to select amount of gravel and big mushrooms in custom biomes
  • [#41000] Added option to make custom items glow with glow effect
  • [Bugfix] Shoot arrow entity event result did not shoot in the proper direction
  • [Bugifx] Can block provide power checkbox did nothing
  • [Bugfix #41079] In some cases MCreator said that mod name already exists when creating new one even if it didn't
  • [Bugfix #41140] MCreator can get stuck when switching workspace to an empty one and doesn't work even after restarting
  • [Bugfix #41061] Gun custom sound not working when using imported sounds
  • [Bugfix #41158] Mob attacked event was triggering at mob death, fixed this and improved event naming
  • [Bugfix #41264] Custom class files in default Java package were removed upon recompilation
  • [Bugfix #41233] In rare cases, MCreator exported mod with textures that were broken in the actual Minecraft
  • [Bugfix #41187] Custom JSON model texture selection didn't work - the first texture was used for all of them
  • [Bugfix #41314] Variable list did not check for empty variable names
  • [Bugfix #41317] GUI editor did not validate for empty element names, improved field validation
  • [Bugfix #41599] Execute command, print text and similar events did not properly escape strings for Java
  • [Bugfix #41600] Print text and print text to chat events didn't work
  • [Bugfix #41737] It was not possible to delete variables from global variables list
  • [Bugfix #40982] Custom GUIs crash if user shift-clicks on items
  • [Bugfix #40990] Global events were not stored per-workspace
  • [Bugifx #41831] Bad wording for mob type in the mob element creator
  • [Bugfix #40992] Biome min and max height were named improperly
  • [Bugfix #40993] Biome base height did not accept negative values
  • [Bugifx #41486] Order or armor damage values were swapped

MCreator 2?

With procedure system, another step from the stage 1 of MCreator 2 roadmap is complete. The next two steps are planned for MCreator 1.8.0. We have some other interesting new features in the plan for 1.8.0 too. Can you guess what it could be?

MCreator 2 progress

Leave a comment below and tell us what is your favorite feature and/or bug fix in MCreator 1.7.9.

UPDATE (5.5 20:50 CEST):

If you have problems with importing your workspace (it gets stuck in the middle of import), getting errors with structures, have problems with setting global variables using procedures or problems with custom global variables of type text, redownload MCreator 1.7.9 as we have patched these issues.

UPDATE (6.5 9:10 CEST)

If GUI button or slot was defined without event, it caused recompilation errors. If you are having issues with this, redownload MCreator.

UPDATE (7.5 21:45 CEST)

We got the reply back from the Avast antivirus false positive team. They have verified MCreator and without surprise on our side, it was clean so they whitelisted it. Now you will no more get virus warnings with MCreator 1.7.9 from Avast antivirus software.

Share this on:

Comments

THE BEST MCREATOR UPDATE IS FINALLY RELEASED! Yes! Yes! Yes!... (Another 5284629271919 yes...)
Anyways really good work, I love this update, this is what some of us where waiting from a long time...

Its About Time Too, Been Waiting A While, But I Know It Takes Time To Make Things Like This So I Appreciate It All The Same



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.