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":{}}
]
}
]
}