Technical changelog

When we work on an update, we often need to make technical changes to improve the code or allow impossible features, such as plugin features. This page lists most of those changes for each version since MCreator 2021.2.

MCreator 2021.3


  • Updated the bundled JDK to Java 16.
  • MCreator now scales to 2.7k screens
  • Removed following base types: KEYBIND, OVERLAY, PROCEDURE, STRUCTURE
  • Added new base type: BLOCKENTITY, FEATURE
  • Changed the base type of the key binding, overlay and procedure to the OTHER Base type
  • Changed the structure mod element base type for FEATURE
  • Mod elements can now have more than one base type
  • Blocks and plants now have the FEATURE (if generated in the world) and the BLOCKENTITY (it has an inventory) base types
  • Added new parameters for custom variables: returnTypeOnly
  • Added option to use hex colors for procedure categories and variables
  • Print block can now use a code template
  • Added the mob spawn types data list
  • Each inner class is now an independent class
  • Improved code format using Eclipse code formatter
  • Plugins can now register custom Blockly JavaScript files
  • Data list code has been updated to support custom data lists.


  • MCreator now automatically detects the mod element coverage using excludes/includes lists
  • Removed the `partial_support` field inside the generator.yaml
  • Added a new parameter to check the Java model type
  • New general conditions: hasCreativeTabs(), hasVariables(), hasJavaModels(), hasSounds(), ${FTL EXPRESSION}, isCustomModel()
  • New general methods: getResourceLocationForModElement(mod element.getModElement())
  • Using "@REGISTRYNAME" and "@NAME" now returns the registry name and the name of the mod element lowercased.
  • Support for global templates
  • Support for common definition files using base types
  • Possibility to get all elements using the mod element id + s (e.g. "blocks")
  • New FreeMarker methods: getRegistryNameUpper(), w.hasElementsOfType(modElementId), w.hasToolsOfType('tooltype'), w.hasBlocksMineableWith('toolType')
  • New code optimizer for procedure blocks: "opt." + removeParentheses, toInt(value), toFloat(value)
  • Armor: hasCustomArmorModel()
  • Biome: hasFruits(), hasVines()
  • Block, fluid and plant: doesGenerateInWorld()
  • GUI: hasButtonEvents(), hasSlotEvents()
  • Item: hasInventory()
  • Potion effect: hasCustomRenderer()
  • Improved code format using Eclipse code formatter

MCreator 2021.2

  • Updated the bundled JDK to Java 11
  • Updated Blockly to 2021 Q2
  • Removed support for 32 bits computers
  • Taskbar support
  • JavaDoc support
  • Plugin update checker using an external JSON file
  • Move default entity animations to plugins
  • Removed hardcoded yes/no option dialogs
  • (Forge 1.15.2) Code no longer use mod element system
  • (Forge 1.16.5) Code, structure, painting, particle, and potion mod elements no longer use the mod element system
  • Parallelized some parts of generators
  • New resource loading system allowing themes in plugins
  • New color scheme system to allow custom schemes in themes
  • Added field exclusions for definition files
  • New (optimized) variable system allowing custom local and global variables
  • Added 2 procedure block extensions: the variable list (type + _variables), the procedure list of the procedure return value (procedure_retval_ +type )
  • Help tips arguments
  • Improved import formatter performance drastically
  • New procedure selector system
  • Dynamic variable block loading for procedures
  • Changed the way code is regenerated
  • "Is custom loop" extension for procedure blocks
  • Added "side" field for global triggers
  • New mod element type system (first step for custom mod elements)
  • Refactor mob to livingentity internally
  • Refactor gun to rangeditem internally

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.