Skip to content

Pre 1.16 How to Use: Users

TheIllusiveC4 edited this page Jul 1, 2020 · 1 revision

Creating a New Curio Type

Mods should be registering their own curio types, but sometimes you may want to register your own.

Go into the config folder and open the curios-common.toml file. Edit the createCurios value by adding unique identifiers for each curio type you want to create (e.g. "ring"). When Minecraft loads, the identifiers listed here will automatically generate curio types with default settings. At the moment, there is no way to adjust the default settings through this method.

Language Keys

The default Curio GUI has hovered tooltips that identify the slots using lang file entries. The key format is curios.identifier.<name>. If you are not using one of the common curio identifiers included in Curios, you will likely want to make sure that you create a resource pack with the appropriate language key entry in order to format the tooltip correctly.

Marking Items with Curio Types

Curio item classification relies on the vanilla tag system, customizable by users with data packs. Read more about tags here and data packs here. Make sure you are using item tags, and not block tags or any others. In addition, make sure you use the curios namespace. So your file's path will look like data/curios/tags/items. The tag itself must be the same as the identifier of the curio type you want to classify it to. For instance, ring.json if the identifier is ring.

Guided Walkthrough

Let's go through the process step-by-step in order to understand how to make a new Curio slot and assign an item to that slot. For this walkthrough, we're going to make an "Eggs" slot and assign the egg item to that slot.

1. Open the config file

Go into the config folder and open the curios-common.toml file. If you do not have this file, you likely have not run Minecraft yet so just run it once so that the config can generate. The file should look like this:

[common]
	#List of curio types to create
	createCurios = []
	#List of curio types to disable by default
	disabledCurios = []

2. Add the identifier for the slot

Think of a unique identifier for your slot, which should represent the types of items that are expected to be in there. In this case, we'll use "eggs". Type this identifier into the createCurios array, surrounded by quotes. And that's pretty much it for making slots, Curios will take care of the rest. The updated config file should look like this now:

[common]
	#List of curio types to create
	createCurios = ["eggs"]
	#List of curio types to disable by default
	disabledCurios = []

If you want to add multiple, remember to separate them by commas. Like so:

[common]
	#List of curio types to create
	createCurios = ["eggs", "someotherslot"]
	#List of curio types to disable by default
	disabledCurios = []

You can verify that you've successfully added the slot by going into the game and checking your curio slots.

3. Create a data pack

In order to actually use the new slot, we need to assign items to them. For that, since we're not modding anything directly, we'll need to create a data pack. Navigate to the world save in your Minecraft root folder, probably at .minecraft/saves/(world-name) and then navigate to the datapacks folder (or create one if it's not already there). If you're not using any data packs, this folder will be empty. Create a new folder for your data pack, call it anything you want. Then go into that folder, so you should be in .minecraft/saves/(world-name)/datapacks/(datapack-name).

Once you're inside, create a pack.mcmeta file, named exactly like that. Open the file and fill it with this:

{
  "pack": {
    "pack_format": 4,
    "description": "put a description here, or not"
  }
}

Once you're done, save it. You should be back at the data pack's root folder at .minecraft/saves/(world-name)/datapacks/(datapack-name). Now we're going to build out a few nested folders. Create a new folder in here named data, then another folder in data called curios, then another folder in curios called tags, then another in tags called items.

By this point, you should be in the .minecraft/saves/(world-name)/datapacks/(datapack-name)/data/curios/tags/items folder. That's it for the folder structure.

4. Create a tag file.

Now create a new file here called (your-slot-name-here).json. In our eggs slot example, we would name it eggs.json. It's very important that the name matches the name you chose in step 2.

In this file, type this:

{
  "replace": "false",
  "values": []
}

This is the basic structure for a tag file. replace dictates whether or not you're just adding tags or completely overriding tags. I recommend leaving this at false unless you know what you're doing. values is the property we're most interested in. This is where you list alllll of the items that you want to be able to accept into your curio slot. In our example, we'd like to put eggs in the slot. Therefore, we find the registry name of the item, which is minecraft:egg for the egg item, and we type it into the values array. Like so:

{
  "replace": "false",
  "values": ["minecraft:egg"]
}

Remember, like in step 2, we can put as many values as we want here but they must all be comma separated inside of the brackets. Like so:

{
  "replace": "false",
  "values": ["minecraft:egg", "minecraft:someotheritem"]
}

If you do not know the registry name of the item you want to add, you can see it in-game by using F3+H to activate advanced tooltips and hovering over the item.

You can verify that you've added the item in properly by looking at the item's tooltip because all curio items will have a golden orange tooltip that states their curio type(s).

And that's it! If you've reached this point, you now have a new curio slot and a new item that can go into that slot. If you have any questions or need help troubleshooting, please feel free to contact the developer directly.