Skip to content

Mutation Data

Enabling Mutations


hasMutation (Required)

Block Mutation is an optional feature for bees. It is the modded version of vanilla pollination effects. Rather than a bee potentially applying a growth tick to a flower it flies over, a bee can instead "mutate" a block into another block. To give a bee a mutation hasMutation must be set to true and mutationType must be set. Mutation Types are covered below.



Mutation Types


mutationType is a REQUIRED field when giving a bee a mutation.

NONE

This is used when a bee has no mutation.

Example

"mutationType": "NONE"

FLUID_TO_FLUID

This is used when a bee mutates a fluid block into another fluid block.

Example

"mutationType": "FLUID_TO_FLUID"

BLOCK_TO_FLUID

This is used when a bee mutates a normal block into a fluid block.

Example

"mutationType": "BLOCK_TO_FLUID"

FLUID_TO_BLOCK

This is used when a bee mutates a fluid block into a normal block.

Example

"mutationType": "FLUID_TO_BLOCK"

BLOCK_TO_BLOCK

This is used when a bee mutates a normal block into another normal block.

Example

"mutationType": "BLOCK_TO_BLOCK"

BLOCK_TO_ITEM

This is used when a bee mutates a normal block into a dropped item.

Example

"mutationType": "BLOCK_TO_ITEM"

ENTITY_TO_ENTITY

This is used when a bee mutates an entity into another entity.

Example

"mutationType": "ENTITY_TO_ENTITY"

Mutation Inputs and Outputs


The mutationInput represents the block or blocks to be mutated and the mutationOutput represents the final form. For example, a bee could mutate simple stone blocks into coal ore blocks or cobblestone into lava. The mutationInput has the option of accepting tags, however the mutationOutput does not.

Note

Entity to Entity mutation is also supported by using the entity: prefix. Entity tags are not supported.

Note

In a future update we will support multiple weighted outputs. This page will be updated when they are implemented.

Example

In this example the bee will mutate a stone block into a coal ore block.

"MutationData": {
    "hasMutation": true,
    "mutationType": "BLOCK_TO_BLOCK",
    "mutationInput": "minecraft:stone",
    "mutationOutput": "minecraft:coal_ore"
}


Example

In this example the bee will mutate any block tagged as stone into a coal ore block.

"MutationData": {
    "hasMutation": true,
    "mutationType": "BLOCK_TO_BLOCK",
    "mutationInput": "tag:forge:stone",
    "mutationOutput": "minecraft:coal_ore"
}


Example

In this example, the bee will mutate lava into obsidian.

"MutationData": {
    "hasMutation": true,
    "mutationType": "FLUID_TO_BLOCK",
    "mutationInput": "minecraft:lava",
    "mutationOutput": "minecraft:obsidian"
}


Example

In this example, the bee will mutate cobblestone into lava.

"MutationData": {
    "hasMutation": true,
    "mutationType": "BLOCK_TO_FLUID",
    "mutationInput": "minecraft:cobblestone",
    "mutationOutput": "minecraft:lava"
}


Example

In this example, the bee will mutate cow into a bat.

"MutationData": {
    "hasMutation": true,
    "mutationType": "ENTITY_TO_ENTITY",
    "mutationInput": "entity:minecraft:cow",
    "mutationOutput": "entity:minecraft:bat"
}


Note

Mutation Input and Mutation Output are not limited to just Minecraft blocks. Any block from any mod can be used as long as it has a resource location in the form of namespace:ID. In addition, when using fluids, only fluids that have a block variant can be used.



mutationCount

Use mutationCount when you want to specify how many blocks a bee can mutate before it must visit a hive and collect nectar again. By default a bee will mutate ten blocks before the process must be reset.

Example

"MutationData": {
    "hasMutation": true,
    "mutationType": "BLOCK_TO_BLOCK",
    "mutationInput": "minecraft:stone",
    "mutationOutput": "minecraft:coal_ore",
    "mutationCount": 5
}



Multi Mutate (Optional)

A completely new way to register mutations, this system allows you to register as many mutations for a single bee as you want.

type

This is where you put the type of mutation you want to add.

Examples

"type": "BLOCK_TO_BLOCK"
"type": "BLOCK_TO_ITEM"
"type": "ENTITY_TO_ENTITY"

inputID

This is the id of the thing you want to mutate from

Note

if you want to mutate a tag, you need to prefix with tag:, if you want to mutate an entity you need to prefix with entity:

Examples

"inputID": "minecraft:stone"
"inputID": "tag:forge:stone"
"inputID": "entity:minecraft:pig"

chance (optional)

This will set the default weight that you will succeed in a mutation if you do not specify a chance in the outputs.

Examples

"chance": 1
"chance": 0.5

Default : 1

outputs

This is where you specify the outputs for your mutations, you can have as many different outputs as you want.

outputID
this is where you specify the output id of your mutation.

Note

If your output is an entity, you need to prefix it with entity:

weight (optional)
This is where you set the individual weight for your mutation outputs

Default: 1

nbtData (optional)
NBT data, yes NBT data, this is where you can now set the nbt data for your mutation outputs

Effects
- Entity tags for ENTITY_TO_ENTITY Mutations
- Item tags for BLOCK_TO_ITEM Mutations
- Tile entity tags for BLOCK_TO_BLOCK and FLUID_TO_BLOCK Mutations

Examples

"outputs":[
    {"outputID": "minecraft:stone", "weight": 10},
    {"outputID": "minecraft:diamond", "weight": 1}
]
"outputs":[
    {
        "outputID": "entity:minecraft:mooshroom",
        "nbtData": {
            "Type": "brown"
        }
    },
    {
        "outputID": "entity:minecraft:mooshroom"
    }
]

Mutations

You can use the new multi mutate by adding the new mutations parameter.

Examples

"MutationData": {
  "hasMutation": true,
  "mutationType": "BLOCK_TO_BLOCK",
  "mutationInput": "minecraft:stone",
  "mutationOutput": "minecraft:coal_ore",
  "mutationCount": 5,
  "mutations": [
    {
      "type": "BLOCK_TO_BLOCK",
      "inputID": "tag:forge:stone",
      "chance": 0.5,
      "outputs": [
        {"outputID": "minecraft:redstone_ore", "weight": 1}
        {"outputID": "minecraft:lapis_ore", "weight": 3}
      ]
    },
    {
      "type": "BLOCK_TO_BLOCK",
      "inputID": "minecraft:honey_block",
      "chance": 0.5,
      "outputs": [
        {"outputID": "minecraft:glass"}
      ]
    },
    {
      "type": "BLOCK_TO_ITEM",
      "inputID": "tag:forge:ores/diamond",
      "outputs": [
        {
          "outputID": "minecraft:potion",
          "nbtData": {
            "Potion": "resourcefulbees:calming"
          }
        }
      ]
    },
    {
      "type": "ENTITY_TO_ENTITY",
      "inputID": "entity:cow",
      "outputs": [
        {
          "outputID": "entity:mooshroom",
          "nbtData": {
            "Type": "brown"
          }
        }
      ]
    }
  ]
}




Template

Here is a blank template showing all configurable fields in the Mutation Data object:

"MutationData": {
    "hasMutation": false,
    "mutationType": "NONE",
    "mutationInput": "",
    "mutationOutput": "",
    "mutationCount": 10,
    "mutations": [
        {
            "type": "NONE",
            "outputID": "",
            "cdefaultChance": 1,
            "defaultWeight": 1,
            "outputs": [
                {"outputID": "", "chance": 1, "weight": 1, "nbtData":{}}
            ]
        }
    ]
}