Skip to content

Creating items

The simplest way

content.createItem(String name).register()

Simple right? Let's break it up:

  • content is a global variable.
  • createItem(String name) creates an item and returns it. The name is the registry name and must only consist of lower case letters and _.
  • register() registers the item. Without this the item will not appear in game.

Registering an item

The example above creates a simple item for you, but you can also create items yourself (to create custom behaviour). Use the following methods to register custom items.

content.registerItem(String name, Item item)


Minecraft's items need a texture (or multiple) and a model file which describes how the textures are rendered. If groovy can't find a model file it will generate a default file at .minecraft/groovy/assets/[pack id]/models/item/[item name].json. It will point to a texture you will need to place at .minecraft/groovy/assets/[pack id]/textures/items/[item name].png.

Translating the items name

By default, the items name will show up as item.[pack id].[item name].name. To change that you need add an entry to the lang file. GroovyScript generates a default lang file at .minecraft/groovy/assets/[pack id]/lang/en_us.lang.


First create an item


Let's assume that the pack id is nomifactory so that the item id will be nomifactory:heart_of_the_universe. Insert this line into the lang file.

mclang of the universe

( is the default generated translation key. You can change to anything you want.)
Finally, put a texture at .minecraft/groovy/assets/nomifactory/textures/items/heart_of_the_universe.png

© 2024 CleanroomMC. All Rights Reserved.