Data Structure
This page shows an example of the JSON structure for a research file.
This is an in-game example that can be created with the command /researchd example datapack.
This example is for a research that unlocks oak planks after the player consumes 8 dirt and 1 wheat seeds.
{
"type": "researchd:simple",
"parents": [],
"requires_parent": false,
"icon": [
{
"id": "minecraft:oak_log",
"count": 1
}
],
"method": {
"methods": [
{
"item": {
"item": "minecraft:dirt"
},
"count": 8,
"type": "researchd:consume_item"
},
{
"item": {
"item": "minecraft:wheat_seeds"
},
"count": 1,
"type": "researchd:consume_item"
}
],
"type": "researchd:and"
},
"effect": {
"recipes": [
"minecraft:oak_planks"
],
"type": "researchd:unlock_recipe"
}
}
Field Explanations
type
- Description: The type of the research. For now, this should always be
researchd:simple. - Type:
String
parents
- Description: A list of parent researches that must be completed before this research can be started (unless
requires_parentisfalse). - Type:
ArrayofString(Resource Locations) - Example:
"parents": ["researchd:cobblestone"]
requires_parent
- Description: If
true, all parent researches must be completed before this research is unlocked. Iffalse, this research is unlocked at the start. - Type:
Boolean
icon
- Description: The icon to be displayed for this research. It is a list of
ItemStackobjects, which will be cycled through in the UI. - Type:
ArrayofObject - Object Structure:
id: The item's resource location.count: The item's stack size.
method
- Description: The method required to complete the research. This is an object that can be one of several types.
- Type:
Object
Method Types
researchd:consume_item: Requires the player to have a certain amount of an item in their inventory, which will be consumed.item: AnIngredientobject representing the item to consume.count: The number of items to consume.
researchd:check_item_presence: Requires the entire team to collectively hold a certain amount of an item; no items are consumed when the condition is met.item: AnIngredientobject representing the item that must be present.count: The combined number of items the team must have at the same time.
researchd:consume_pack: Requires the player to use a research pack in the Research Lab.packs: A list of research pack resource locations.count: The number of packs to consume.duration: The time in ticks it takes to consume one pack.
researchd:and: A list of methods that all need to be completed.methods: An array ofmethodobjects.
researchd:or: A list of methods where only one needs to be completed.methods: An array ofmethodobjects.
effect
- Description: The effect that occurs when the research is completed.
- Type:
Object
Effect Types
researchd:unlock_recipe: Unlocks one or more recipes.recipes: An array of recipe resource locations.
researchd:unlock_item: Unlocks an item and allows any recipes that produce or consume it.item: The resource location of the item to unlock.
researchd:dimension_unlock: Unlocks a dimension for the player.dimension: The resource location of the dimension to unlock.icon_sprite(optional): The resource location of the icon to display for this effect.
researchd:and: A list of effects that will all be triggered.effects: An array ofeffectobjects.
researchd:empty: No effect.