arrow-left

Only this pageAll pages
gitbookPowered by GitBook
1 of 18

Custom Bees

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Trait Data

A unique feature to Resourceful Bees. traits group together:

  • Particle Effects

  • Damage and Potion Immunities

  • Damage Types and Potion Effects

  • Special Abilities

  • and Auras

Traits enable users to breathe life into infinite variations of bees that can be godly, pesky, helpful, or just downright evil.

hashtag
Identifier


The root JSON of the trait customization component looks like this:

The identifier of the component is as such:

hashtag
Customization Options


hashtag
auraRange

The range within which players would be affected by the aura. This value is the number of blocks.


circle-info

Name: Aura Range

Key: auraRange

Type: Integer

Range: 3 - 20

chevron-rightExamplehashtag

hashtag
traits

The list of traits given to the bee.


circle-info

Name: Traits List

Key: traits

Type: String[]

Default: Optional/Empty

chevron-rightExamplehashtag

hashtag

Mutation Data

Mutations are the repurposing of a vanilla mechanic: pollination effect. When a bee pollinates a flower and is returning to a hive, any flower it flies over has a chance to be fertilized (have a growth tick applied to it). It can do this up to 10 times before it needs to visit a hive to reset the counter.

Mutations reuse the vanilla mechanic by allowing bees to transform one object into another. The bee would simply fly over a target item|block|fluid|entity and the target would be transformed into different item|block|fluid|entity.

The mutation customization component simply contains the recipe ID for the mutations which the bee can perform and the mutation limit.

Potion Effect

hashtag
Customization Options


hashtag

Default: 10
hashtag
Identifier

The root JSON of the mutation customization component looks like this:

The identifier of the component is as such:

hashtag
Customization Options


hashtag
count

The number of mutations that can be performed before the bee needs to visit a hive to reset the counter.


circle-info

Name: Mutation Count

Key: count

Type: Integer

Default: 10

chevron-rightExamplehashtag

hashtag
mutation

The ID for the mutation recipe. The format is that of a ResourceLocationarrow-up-right.


circle-info

Name: Mutation

Key: mutation

Type: ResourceLocationarrow-up-right

Default: No Mutation

chevron-rightExamplehashtag

Template:
"resourcefulbees:trait/v1": {
  "auraRange": 20,
  "traits": ["nether", "wither"]
}
"resourcefulbees:trait/v1": {
    ...
}
resourcefulbees:trait/v1
"resourcefulbees:trait/v1": {
  "auraRange": 20
}
"resourcefulbees:trait/v1": {
  "traits": ["nether", "wither"]
}
"resourcefulbees:mutation/v1": {
  "count": 5,
  "mutation": "resourcefulbees:mutations/template"
}
"resourcefulbees:mutation/v1": {
  "mutation": "resourcefulbees:mutations/template"
}
Template:
"resourcefulbees:mutation/v1": {
  "count": 5,
  "mutation": "resourcefulbees:mutations/template"
}
"resourcefulbees:mutation/v1": {
    ...
}
resourcefulbees:mutation/v1
effect

The ResourceLocation for any registered MobEffect, including modded ones.


circle-info

Name: Effect

Key: effect

Type: ResourceLocation

Default: minecraft:luck

chevron-rightExamplehashtag
{
  "auras": [
    {

hashtag
strength

The strength of the potion effect.


circle-info

Name: Strength

Key: strength

Type: Integer

Range: 0 - 4

Default: 1

chevron-rightExamplehashtag

Color Data

The color customization component handles the Bee Jar and Spawn Egg colors.

hashtag
Customization Options


hashtag
spawnEggPrimaryColor

Sets the primary color used on the spawn egg item.


circle-info

Name: Primary Spawn Egg Color

Key: spawnEggPrimaryColor

Type: Color

Default: No Color

hashtag
spawnEggSecondaryColor

Sets the secondary color used on the spawn egg item.


circle-info

Name: Secondary Spawn Egg Color

Key: spawnEggSecondaryColor

Type: Color

Default: No Color

hashtag
jarColor

The color used on the jar when the bee is in the bee jar.


circle-info

Name: Bee Jar Color

Key: jarColor

Type: Color

Default: No Color

Creating A Custom Bee

Resourceful Bees more modern, codec-driven API, enables pack developers and players to create custom bees varying in degree of complexity easily. Bee creation can feel overwhelming at first, but luckily for creators, a vast majority of available customization options are optional and most options have some kind of default value available, with vanilla-matching values provided where necessary.

circle-info

When the default value for an available option is desired, it is acceptable to omit the entry from the JSON.

hashtag
Fundamental Overview


At the most basic, high-level view, the creation of a custom bee requires a minimal number of key components to come to life. Below we will highlight the absolute bare minimum required to make a bee as well as additional customizations:

hashtag
Minimum Requirements

Simply placing a properly structured JSON file in the right location will create a bee. However, the bee may not have the right appearance, create honeycombs, spawn, breed, etc without some additional context.

hashtag
Additional Customizations

In addition to the bee JSON, a player or pack developer may want to provide custom textures, translations, models, animations, traits, mutations, honeys and honeycombs, various recipes, and more:

  • Custom textures, models, and animations will all affect the appearance of the bee.

  • Translations make any text associated with the bee display in the proper language.

  • Honeys and honeycombs can be created independently from bees so that more than one bee can utilize a honey or honeycomb.

hashtag
File Structure


Traits, bees, honeys, and honeycombs are all customized in the resourcefulbees config folder. They can also be customized via the datapack data folder as well. The datapack location is useful for supporting mods which may want to add their own custom bees when loaded alongside Resourceful Bees, however the config folder is a better location for pack developers and players due to the caveats associated with how bees, honeys, and combs are registered to the game.

The bee_traits folder is where all custom traits should go.

<pack instance>/config/resourcefulbees/bee_traits

The bees folder is where all custom bees should go.

<pack instance>/config/resourcefulbees/bees

hashtag
Language Files


Language files allow text displayed in game to be displayed in various languages. Not providing an entry in a language file will cause names to appear something like this:

item.resourcefulbees.blaze_honeycomb

circle-info

For new mod installs, run the game at least once so all necessary config files and folders can be generated

hashtag
Creating a Language File


  1. Locate the resourcefulbees config folder inside the main config folder.

  2. Before we begin the process of adding a language file we need to verify that specific resource and data pack files have been generated:

  3. Inside the resourcefulbees folder there should be another folder labeled resources

circle-exclamation

You do not need multiple language files. You only need one with new lines added for each custom bee:

hashtag
Custom Bee Caveats

Mutation Recipe

triangle-exclamation

todo: move this to a separate recipes category

Mutations utilize the recipe system to make them more data pack friendly. One benefit of using the recipe system is that a mutation can be created once and shared among many different bees.

hashtag
Recipe Type


Every recipe JSON is required to have a type. For mutations the type is resourcefulbees:mutation

hashtag
Customization Options


hashtag
input

The item/block/fluid/entity being transformed.


circle-info

Name: Mutation Input

Key: input

Type:

Default:

chevron-rightExamplehashtag

hashtag
outputs

A list of possible transformation results, which can be an item, block, fluid, or entity.


circle-info

Name: Mutation Outputs

Key: outputs

Type:

Default:

chevron-rightExamplehashtag

Damage Effect

hashtag
Customization Options


hashtag
source

The ResourceLocation for any registered MobEffect, including modded ones.


circle-info

Name: Damage Source

Key: source

Type: ResourceLocation

Default: minecraft:cactus

chevron-rightExamplehashtag

hashtag
hasEntity

If the damage source is sourced from an entity, this should be marked as true. This allows for the death messages to be displayed correctly in the event the target entity dies.


circle-info

Name: Has Entity Source

Key: hasEntity

Type: Boolean

Default: false

chevron-rightExamplehashtag

hashtag
strength

The strength of the damage effect.


circle-info

Name: Strength

Key: strength

Type: Integer

Range: 0 - 20

chevron-rightExamplehashtag

{
  "auras": [
    {
      "aura": "POTION",
      "potionEffect": {
        "effect": "minecraft:hunger",
        "strength": 2
      }
    }
  ]
}
Template:
"resourcefulbees:rendering/v1": {
  "ColorData": {
    "spawnEggPrimaryColor": 16444375,
    "spawnEggSecondaryColor": 13789470,
    "jarColor": 6266528
  }
}
Template:
{
  "type": "resourcefulbees:mutation",
  "mutations" : [
    {
      "input": {
        "type": "block",
        "block": {
          "id": "minecraft:stone"
        },
        "chance": 0.5
      },
      "outputs" : [
        {
          "type": "block",
          "block": {
            "id": "minecraft:end_stone"
          }
        }
      ]
    }
  ]
}
"aura": "POTION",
"potionEffect": {
"effect": "minecraft:blindness"
}
}
]
}
This value is required or the recipe won't load!
This value is required or the recipe won't load!
MutationType
MutationType[]
Default: 0
{
  "auras": [
    {
      "aura": "DAMAGING",
      "damageEffect": {
        "source": "minecraft:in_fire"
      }
    }
  ]
}
"resourcefulbees:rendering/v1": {
  "ColorData": {
    "spawnEggPrimaryColor": 16444375
  }
}
"resourcefulbees:rendering/v1": {
  "ColorData": {
    "spawnEggPrimaryColor": "red"
  }
}
"resourcefulbees:rendering/v1": {
  "ColorData": {
    "spawnEggPrimaryColor": "#FF0000"
  }
}
"resourcefulbees:rendering/v1": {
  "ColorData": {
    "spawnEggSecondaryColor": 16444375
  }
}
"resourcefulbees:rendering/v1": {
  "ColorData": {
    "spawnEggSecondaryColor": "red"
  }
}
"resourcefulbees:rendering/v1": {
  "ColorData": {
    "spawnEggSecondaryColor": "#FF0000"
  }
}
"resourcefulbees:rendering/v1": {
  "ColorData": {
    "jarColor": 16444375
  }
}
"resourcefulbees:rendering/v1": {
  "ColorData": {
    "jarColor": "red"
  }
}
"resourcefulbees:rendering/v1": {
  "ColorData": {
    "jarColor": "#FF0000"
  }
}
{
    "type": "resourcefulbees:mutation",
    ...
}
"input": {
  "type": "block",
  "block": {
    "id": "minecraft:stone"
  },
  "chance": 0.5
}
"outputs" : [
  {
    "type": "block",
    "block": {
      "id": "minecraft:end_stone"
    }
  }
]
{
  "auras": [
    {
      "aura": "DAMAGING",
      "damageEffect": {
        "source": "minecraft:thorns",
        "hasEntity": true
      }
    }
  ]
}
{
  "auras": [
    {
      "aura": "DAMAGING",
      "potionEffect": {
        "effect": "minecraft:wither",
        "strength": 5
      }
    }
  ]
}
Traits and mutations can also be created independently so as to be reusable.
  • Various supporting recipes can be created for blocks such as the centrifuge, solidifier, flow hive, breeder, etc.

  • The honey folder is where all custom honeys should go.

    <pack instance>/config/resourcefulbees/honey

    The honeycombs folder is where all custom honeycombs should go.

    <pack instance>/config/resourcefulbees/honeycombs

    The resources folder functions as any normal resource pack resources folder would.

    <pack instance>/config/resourcefulbees/resources

  • Open this folder and verify there is a file inside called pack.mcmeta

    1. This file is needed for the loading of the language files.

    2. If you do not see this file then reload the mod/pack to generate it.

  • Inside the resources folder we need to add the following nested folders: assets/resourcefulbees/lang

  • The structure should appear as the following image:

  • Inside the lang folder, creating a file called en_us.json will create an English US language file.

  • You can specify a different language using any one of the language codes found herearrow-up-right under the Available languages section.

  • Every custom bee added should have language entries similar to the Blaze example below:

  • You can either restart the game or use F3+T to reload assets and have the language file take effect.

  • An example of what the config folder might look like after a first run of the mod.

    Damage Type

    hashtag
    Customization Options


    hashtag
    damageType

    Currently, there are only two acceptable choices:

    When the bee attacks, the targeted entity explodes.

    When the bee attacks, the target entity is set on fire.


    circle-info

    Name: Damage Type

    Key: damageType

    Type: String

    Default: Empty String

    chevron-rightExamplehashtag

    hashtag
    amplifier

    The strength of the damage effect.


    circle-info

    Name: Amplifier

    Key: amplifier

    Type: Integer

    Range: ≥0

    chevron-rightExamplehashtag

    Bee Family

    A bee family consists of four key pieces of information necessary for breeding a bee:

    • The first parent required

    • The second parent required

    Core Data

    The core customization component is responsible for defining four key aspects of nearly every bee imaginable:

    • the flower(s) which a bee uses for pollination

    • the base amount of time the bee spends in the hive

    {
       "block.resourcefulbees.blaze_honeycomb_block": "Blaze Honeycomb Block",
       "item.resourcefulbees.blaze_honeycomb": "Blaze Honeycomb",
       "item.resourcefulbees.blaze_spawn_egg": "Blaze Bee Spawn Egg",
       "entity.resourcefulbees.blaze_bee": "Blaze Bee"
    }
    {
       "block.resourcefulbees.blaze_honeycomb_block": "Blaze Honeycomb Block",
       "item.resourcefulbees.blaze_honeycomb": "Blaze Honeycomb",
       "item.resourcefulbees.blaze_spawn_egg": "Blaze Bee Spawn Egg",
       "entity.resourcefulbees.blaze_bee": "Blaze Bee",
       "block.resourcefulbees.pig_honeycomb_block": "Pig Honeycomb Block",
       "item.resourcefulbees.pig_honeycomb": "Pig Honeycomb",
       "item.resourcefulbees.pig_spawn_egg": "Pig Bee Spawn Egg",
       "entity.resourcefulbees.pig_bee": "Pig Bee"
    }
    Default: 0
    {
      "damageTypes": [
        {
          "damageType": "explosive",
          "amplifier": 3
        },
        {
          "damageType": "setOnFire",
          "amplifier": 4
        }
      ]
    }
    The weighting of how likely the child is to be selected among potential candidates
  • The chance the child is created if selected

  • hashtag
    Customization Options


    hashtag
    weight

    For all possible children these two parents can create how likely is it this one will be picked? Weight affects the result distribution among potential outcomes.

    chevron-rightCalculating Weight Distributions:hashtag

    A pair of parents has five different child options.

    The weights are as follows:

    The chances each child has of being selected are as follows:

    To calculate the chance:

    1. Add up all the weights

    2. Divide the weight you wish to check by the total in step 1


    circle-info

    Name: Weight

    Key: weight

    Type: Double

    Range: ≥0.0

    Default: 10

    chevron-rightExamplehashtag

    hashtag
    chance

    Once this child has been chosen as the result type, what is the chance that it will be created?

    circle-check

    Note: The value has a range of 0.0 - 1.0.

    A value of 0.5 = a 50% chance of the child being created.


    circle-info

    Name: Chance

    Key: chance

    Type: Double

    Range: 0.0 - 1.0

    Default: 1

    chevron-rightExamplehashtag

    hashtag
    parent1

    The ID of the first parent.

    triangle-exclamation

    If not provided family will be ignored!


    circle-info

    Name: Parent 1

    Key: parent1

    Type: String

    Default: 1

    Required: If not provided family will be ignored.

    chevron-rightExamplehashtag

    hashtag
    parent2

    The ID of the second parent.

    triangle-exclamation

    If not provided family will be ignored!


    circle-info

    Name: Parent 2

    Key: parent2

    Type: String

    Default: 1

    Required: If not provided family will be ignored.

    chevron-rightExamplehashtag

    associated lore
  • the honeycombs produced, if any

  • hashtag
    Identifier


    The root JSON of the core customization component looks like this:

    The identifier of the component is as such:

    hashtag
    Customization Options


    hashtag
    honeycombVariation

    The identifier of the honeycomb variation produced by the bee. More information about honeycomb variation can be found in the Custom Honeycombs section.


    circle-info

    Name: Honeycomb Variation

    Key: honeycombVariation

    Type: String

    Default: No Honeycomb

    chevron-rightExamplehashtag

    hashtag
    flower

    Specifies what flower(s) the bee can pollinate. With the use of Miscellaneous, the syntax will vary based on the definition. The flower can be defined as a tag, a list of blocks, or a single block. See the examples below for further understanding.


    circle-info

    Name: Flower

    Key: flower

    Type: HolderSet<Block>

    Default: minecraft:poppy

    hashtag
    entityFlower

    When the flower a bee can pollinate is an entity, entityflower must be used instead. The syntax used remains the same as blocks. See the examples below for further understanding.


    circle-info

    Name: Entity Flower

    Key: entityFlower

    Type: HolderSet<Entity>

    Default: Empty Set

    hashtag
    maxTimeInHive

    The base amount of time a bee spends in a hive. This value is modified based on the hive tier.


    circle-info

    Name: Max Time in Hive

    Key: maxTimeInHive

    Type: Integer

    Range: ≥600

    Default: 2400

    chevron-rightExamplehashtag

    hashtag
    lore

    Lore is cosmetic text displayed in JEI tooltips when hovering over the bee with the cursor. It can be extremely useful for providing players with hints on how to obtain the bee or it can be useful for memes and credits.


    circle-info

    Name: Lore

    Key: lore

    Type: Component[]arrow-up-right

    Default: Empty List

    chevron-rightExamplehashtag

    {
      "damageTypes": [
        {
          "damageType": "explosive",
          "amplifier": 3
        }
      ]
    }
    Child 1: 20
    Child 2: 10
    Child 3: 30
    Child 4: 60    
    Child 5: 80
    Child 1: 10%
    Child 2: 5%
    Child 3: 15%
    Child 4: 30%
    Child 5: 40%
    "resourcefulbees:breeding/v1": {
      "parents": [
        {
          "parent1": "diamond",
          "parent2": "coal",
          "weight": 75.0
        }
      ]
    }
    "resourcefulbees:breeding/v1": {
      "parents": [
        {
          "parent1": "diamond",
          "parent2": "coal",
          "chance": 0.67
        }
      ]
    }
    "resourcefulbees:breeding/v1": {
      "parents": [
        {
          "parent1": "diamond",
          "parent2": "coal"
        }
      ]
    }
    "resourcefulbees:breeding/v1": {
      "parents": [
        {
          "parent1": "diamond",
          "parent2": "coal"
        }
      ]
    }
    Template:
    "resourcefulbees:breeding/v1": {
      "parents": [
        {
          "parent1": "diamond",
          "parent2": "coal",
          "weight": 75.0,
          "chance": 0.67
        }
      ]
    }
    "resourcefulbees:core/v1": {
        "honeycombVariation": "diamond"
    }
    "resourcefulbees:core/v1": {
      "flower": "#minecraft:flowers"
    }
    "resourcefulbees:core/v1": {
      "flower": [
        "minecraft:diamond_block",
        "minecraft:emerald_block"
      ]
    }
    "resourcefulbees:core/v1": {
      "flower": "minecraft:diamond_block"
    }
    "resourcefulbees:core/v1": {
      "entityFlower": "#minecraft:raiders"
    }
    "resourcefulbees:core/v1": {
      "entityFlower": [
        "minecraft:pig",
        "minecraft:cow"
      ]
    }
    "resourcefulbees:core/v1": {
      "entityFlower": "minecraft:cow"
    }
    "resourcefulbees:core/v1": {
      "maxTimeInHive": 1200
    }
    "resourcefulbees:core/v1": {
        "lore": [
          {
            "text":"A Delicious Bee.",
            "color": "aqua"
          },
          {
            "translate":"tooltip.resourcefulbees.bee.creator",
            "with": ["§6Epic_Oreo"]
          }
        ]
      }
    Template:
    "resourcefulbees:core/v1": {
      "entityFlower": [
        "minecraft:cow",
        "minecraft:sheep"
      ],
      "maxTimeInHive": 4000,
      "lore": [
        {
          "text": "This bee is a dummy and does not exist"
        },
        {
          "text": "Bee happy...--``-..-``---."
        }
      ],
      "honeycombVariation": "dummy_honeycomb",
      "flower": [
        "minecraft:diamond_block",
        "minecraft:emerald_block"
      ]
    }
    "resourcefulbees:core/v1": {
        ...
    }
    resourcefulbees:core/v1

    Render Data

    The render customization component is responsible for defining how the bee looks. The data is only used on the client. There are several visual aspects of a bee that can be modified:

    • Size

    • Model

    • Animations

    • Textures/Layers

    • UI Colors

    hashtag
    Identifier


    The root JSON of the rendering customization component looks like this:

    The identifier of the component is as such:

    hashtag
    Customization Options


    hashtag
    layers

    Layers are used to add custom textures on top of the base texture and allow them to have special effects or be enabled by special means.

    circle-exclamation

    Warning: Increasing the number of textures rendered on a bee will impact performance. It is recommended to use the least number of layers necessary!


    circle-info

    Name: Layers

    Key: layers

    Type:

    Default: Empty List

    chevron-rightExamplehashtag

    hashtag
    ColorData

    Color data is used to set the colors for things like jars and spawn eggs.


    circle-info

    Name: Color Data

    Key: ColorData

    Type:

    Default:

    chevron-rightExamplehashtag

    hashtag
    model

    The location where the is stored.

    triangle-exclamation

    Beware: The more complex the model is, the more impact it will have on performance. It is highly recommended to keep custom models as simple as possible!


    circle-info

    Name: Model

    Key: model

    Type:

    Default:

    chevron-rightExamplehashtag

    hashtag
    texture

    The base texture for the bee. Each texture requires two versions to exist: normal and angry. The angry texture should use the same name as the normal texture with the suffix _angry appended to it.

    creeper.png

    creeper_angry.png


    circle-info

    Name: Texture

    Key: texture

    Type: String

    Default: Missing Texture

    chevron-rightExamplehashtag

    hashtag
    animation

    The location where the is stored.


    circle-info

    Name: Texture

    Key: texture

    Type:

    Default:

    chevron-rightExamplehashtag
    circle-exclamation

    Note: Only vanilla bee animations are currently supported!

    hashtag
    sizeModifier

    The scale of the bee when rendered in-game.

    circle-check

    Note: A value of 2.0 would double the size of the bee, while a value of 0.5 would shrink the bee to half its normal size.


    circle-info

    Name: Size Modifier

    Key: sizeModifier

    Type: Float

    Range: 0.5 - 2.0

    chevron-rightExamplehashtag

    Combat Data

    The combat customization component is responsible for defining a bee's survival ability and hostility:

    • Is the bee passive?

    • Does it lose its stinger after attacking?

    • Does it inflict poison?

    • Can it take damage?

    • General attributes of the entity such as:

      • Max health

      • Armor

    hashtag
    Identifier


    The root JSON of the combat customization component looks like this:

    The identifier of the component is as such:

    hashtag
    Customization Options


    hashtag
    isPassive

    When true, the bee will not attack entities back.


    circle-info

    Name: Passive

    Key: isPassive

    Type: Boolean

    Default: false

    chevron-rightExamplehashtag

    hashtag
    removeStingerOnAttack

    When true, the bees stinger will be removed on attack. If a bees stinger is removed, it has a chance of randomly dying a bit after the stinger was removed.


    circle-info

    Name: Remove Stinger

    Key: removeStingerOnAttack

    Type: Boolean

    Default: true

    chevron-rightExamplehashtag

    hashtag
    inflictsPoison

    When true, the targeted entity will be inflicted with poison when attacked.


    circle-info

    Name: Inflict Poison

    Key: inflictsPoison

    Type: Boolean

    Default: true

    chevron-rightExamplehashtag

    hashtag
    isInvulnerable

    When true, the bee will not take any damage.


    circle-info

    Name: Invulnerable

    Key: isInvulnerable

    Type: Boolean

    Default: false

    chevron-rightExamplehashtag

    hashtag
    attributes

    A map of and their values. The keys are the Attribute ID's and the values are the attribute value.


    circle-info

    Name: Invulnerable

    Key: attributes

    Type: Map<, Double>

    Default:

    chevron-rightExamplehashtag

    Bee Aura

    chevron-rightResourceful Bees provides a set number of predefined Auras (with customizable values) out of the box:hashtag

    Burning

    Players within the aura's range are set on fire.

    Potion

    Players within the aura's range have a potion effect applied to them.

    No Colors
    resourcefulbees:geo/base.geo.json
    resourcefulbees:animations/bee.animation.json
    Default: 1.0
    LayerData[]
    ColorData
    GeckoLib geo filearrow-up-right
    ResourceLocationarrow-up-right
    GeckoLib animation filearrow-up-right
    ResourceLocationarrow-up-right
    Attack damage
  • Knockback

  • Any registered attribute vanilla or modded can be customized

  • attributesarrow-up-right
    Attributearrow-up-right
    Template:
    "resourcefulbees:rendering/v1": {
      "layers": [
        {
          "pulseFrequency": 5.0,
          "color": 52020
        },
        {
          "layerEffect": "GLOW",
          "pulseFrequency": 5.0,
          "color": 65535
        }
      ],
      "model": "resourcefulbees:geo/base.geo.json"
      "texture": "/oreo/oreo_bee",
      "animation": "resourcefulbees:animations/bee.animation.json"
      "ColorData": {
        "spawnEggPrimaryColor": "#442920",
        "spawnEggSecondaryColor": "#e1d9b8",
        "jarColor": "#442920"
      },
      "sizeModifier": 1.25
    }
    "resourcefulbees:rendering/v1": {
        ...
    }
    resourcefulbees:rendering/v1
    "resourcefulbees:rendering/v1": {
      "layers": [
        {
          "pulseFrequency": 5.0,
          "color": 52020
        },
        {
          "layerEffect": "GLOW",
          "pulseFrequency": 5.0,
          "color": 65535
        }
      ]
    }
    "resourcefulbees:rendering/v1": {
      "ColorData": {
        "spawnEggPrimaryColor": "#442920",
        "spawnEggSecondaryColor": "#e1d9b8",
        "jarColor": "#442920"
      }
    }
    "resourcefulbees:rendering/v1": {
      "model": "resourcefulbees:geo/base.geo.json"
    }
    "resourcefulbees:rendering/v1": {
      "texture": "/oreo/oreo_bee"
    }
    "resourcefulbees:rendering/v1": {
      "animation": "resourcefulbees:animations/bee.animation.json"
    }
    "resourcefulbees:rendering/v1": {
      "sizeModifier": 1.25
    }
    Template:
    "resourcefulbees:combat/v1": {
      "removeStingerOnAttack": false,
      "inflictsPoison": false,
      "attributes": {
        "generic.attack_damage": 0,
        "generic.max_health": 2,
        "generic.armor": 5,
        "generic.armor_toughness": 10,
        "generic.attack_knockback": 3
      }
    }
    "resourcefulbees:combat/v1": {
        ...
    }
    resourcefulbees:combat/v1
    "resourcefulbees:combat/v1": {
      "isPassive": true
    }
    "resourcefulbees:combat/v1": {
      "removeStingerOnAttack": false
    }
    "resourcefulbees:combat/v1": {
      "inflictsPoison": false
    }
    "resourcefulbees:combat/v1": {
      "attributes": {
        "generic.attack_damage": 0,
        "generic.max_health": 2,
        "generic.armor": 5,
        "generic.armor_toughness": 10,
        "generic.attack_knockback": 3
      }
    }
    "resourcefulbees:combat/v1": {
      "attributes": {
        "generic.attack_damage": 0,
        "generic.max_health": 2,
        "generic.armor": 5,
        "generic.armor_toughness": 10,
        "generic.attack_knockback": 3
      }
    }
    "generic.max_health": 10,
    "generic.flying_speed": 0.6,
    "generic.movement_speed": 0.3,
    "generic.attack_damage": 1,
    "generic.follow_range": 48,
    "generic.armor": 0,
    "generic.armor_toughness": 0,
    "generic.attack_knockback": 0

    Healing

    Players within the aura's range are healed an amount equal to the modifier value.

    Damaging

    Players within the aura's range are damaged using a defined damage source and strength.

    Experience

    Players within the aura's range are given experience equal to the modifier value.

    Experience Drain

    Players within the aura's range are drained of experience equal to the modifier value.

    hashtag
    Customization Options


    hashtag
    aura

    The Aura Type determines the effect that the aura has on the player. It is a required value for the Aura to load properly.


    circle-info

    Name: Aura Type

    Key: aura

    Type: AuraType | Enum

    Default: Value is required.

    circle-info

    Beneficial: false

    Particle: ParticleTypes.FLAME

    Effect: Players within the aura's range are set on fire.

    circle-info

    Beneficial: false

    Particle: ParticleTypes.WITCH

    Effect: Players within the aura's range have the defined potionEffect applied to them.

    circle-info

    Beneficial: true

    Particle: ParticleTypes.HAPPY_VILLAGER

    Effect: Players within the aura's range are healed using the modifier amount.

    circle-info

    Beneficial: false

    Particle: ParticleTypes.CRIT

    Effect: Players within the aura's range are damaged using the damage source and strength values defined in damageEffect.

    circle-info

    Beneficial: true

    Particle: ParticleTypes.ENCHANT

    Effect: Players within the aura's range are given experience equal to the modifier value.

    circle-info

    Beneficial: false

    Particle: ParticleTypes.POOF

    Effect: Players within the aura's range are drained of experience equal to the modifier value.

    hashtag
    damageEffect

    Used when the aura type is DAMAGING The damage source and strength values are defined in the Damage Effect.


    circle-info

    Name: Damage Effect

    Key: damageEffect

    Type: DamageEffect

    Default: DamageEffect.DEFAULT

    chevron-rightExamplehashtag

    hashtag
    potionEffect

    Used when the aura type is POTION The effect and strength values are defined in the Potion Effect.


    circle-info

    Name: Potion Effect

    Key: potionEffect

    Type: PotionEffect

    Default: PotionEffect.DEFAULT

    chevron-rightExamplehashtag

    hashtag
    modifier

    The modifier value is used with the HEALING, EXPERIENCE, and EXPERIENCE_DRAIN aura types.

    When used with the HEALING aura type, the value equals the amount healed.

    When used with the EXPERIENCE aura type, the value equals the amount of experience received.

    When used with the EXPERIENCE_DRAIN aura type, the value equals the amount of experience taken.


    circle-info

    Name: Modifier

    Key: modifier

    Type: Integer

    Range: ≥0

    Default: 0

    chevron-rightExamplehashtag

    hashtag
    calmingDisabled

    The aura can be disabled by the "calming" status effect when this value is set to true.


    circle-info

    Name: Calming Disabled

    Key: calmingDisabled

    Type: Boolean

    Default: false

    chevron-rightExamplehashtag

    The Custom Bee JSON

    Custom Bee Data is the main JSON object comprised of several customization objects which are defined using a "key": { value } syntax.

    {
      "resourcefulbees:core/v1": {
        ...
      },
      "resourcefulbees:rendering/v1": {
        ...
      },
      "resourcefulbees:mutation/v1": {
        ...
      },
      "resourcefulbees:breeding/v1": {
        ...
      },
      "resourcefulbees:trade/v1": {
        ...
      }
    }

    The "key" names act as identifiers under which the data is registered and used and follow the namespace:path format. The path generally follows a type/version format.

    "resourcefulbees:trade/v1"

    This syntax allows for the customizable options to evolve over time with minimal upkeep required since data mappers can be written to upgrade older API versions to newer ones.

    hashtag
    Key Components


    Below is a list of the key customization components provided by the mod. Additional components can be created by other mods via our API.

    Mutation Type

    hashtag
    Customization Options


    hashtag
    type

    {
      "auras": [
        {
          "aura": "BURNING"
        }
      ]
    }
    {
      "auras": [
        {
          "aura": "BURNING",
          "damageEffect": {
            "source": "minecraft:in_fire",
            "hasEntity": false,
            "strength": 0
          }
        }
      ]
    }
    {
      "auras": [
        {
          "aura": "BURNING",
          "potionEffect": {
            "effect": "minecraft:instant_health",
            "strength": 2
          }
        }
      ]
    }
    {
      "auras": [
        {
          "aura": "BURNING",
          "modifier": 3
        }
      ]
    }
    {
      "auras": [
        {
          "aura": "BURNING",
          "calmingDisabled": true
        }
      ]
    }
    Template:
    {
      "auras": [
        {
          "potionEffect": {
            "effect": "minecraft:instant_health",
            "strength": 2
          },
          "modifier": 3,
          "calmingDisabled": true,
          "aura": "EXPERIENCE",
          "damageEffect": {
            "source": "minecraft:in_fire",
            "hasEntity": false,
            "strength": 0
          }
        }
      ]
    }
    Cover

    Core Data

    Key Bee Info

    Cover

    Render Data

    What it looks like

    Cover

    Breed Data

    How to breed

    Cover

    Combat Data

    Friend or foe?

    Cover

    Mutation Data

    Pollination effects

    Cover

    Trait Data

    Uniqueness

    Cover

    Trade Data

    Beekeeper trades

    {
      "auras": [
        {
          "aura": "POTION"
        }
      ]
    }
    {
      "auras": [
        {
          "aura": "HEALING"
        }
      ]
    }
    {
      "auras": [
        {
          "aura": "DAMAGING"
        }
      ]
    }
    {
      "auras": [
        {
          "aura": "EXPERIENCE"
        }
      ]
    }
    {
      "auras": [
        {
          "aura": "EXPERIENCE_DRAIN"
        }
      ]
    }
    A mutation can be one of four different types:

    The type object is used for defining the Mutation Type, associated data, and the likelihood of obtaining, when used as an output option.


    circle-info

    Name: Mutation Type

    Key: type

    Type: String

    Default: This value is required or the recipe won't load!

    hashtag
    item

    The item being transformed or resulted.


    circle-info

    Name: Item

    Key: item

    Type: RestrictedItemPredicate

    Default: This value is required or the recipe won't load!

    chevron-rightExamplehashtag

    hashtag
    chance

    The chance of actually resulting the item when selected as the output from the pool of items.


    circle-info

    Name: Chance

    Key: chance

    Type: Double

    Range: 0.0 - 1.0

    chevron-rightExamplehashtag

    hashtag
    weight

    How likely the item is to be selected among a pool of items.

    chevron-rightCalculating Weight Distributions:hashtag

    A mutation recipe has five different output options.

    The weights are as follows:

    The chances each output has of being selected are as follows:

    To calculate the chance:


    circle-info

    Name: Weight

    Key: weight

    Type: Double

    Range: ≥0.0

    chevron-rightExamplehashtag

    hashtag
    block

    The block being transformed or resulted.


    circle-info

    hashtag
    fluid

    The block being transformed or resulted.


    circle-info

    hashtag
    entity

    The block being transformed or resulted.


    circle-info

    Item | Block | Fluid | Entity
    Default: 1.0
    Add up all the weights
  • Divide the weight you wish to check by the total in step 1

  • Default: 10
    Name: Block

    Key: block

    Type: RestrictedBlockPredicate

    Default: This value is required or the recipe won't load!

    chevron-rightExamplehashtag

    hashtag
    chance

    The chance of actually resulting the block, if selected as the output from the pool of blocks.


    circle-info

    Name: Chance

    Key: chance

    Type: Double

    Range: 0.0 - 1.0

    Default: 1.0

    chevron-rightExamplehashtag

    hashtag
    weight

    How likely the block is to be selected among a pool of blocks.

    chevron-rightCalculating Weight Distributions:hashtag

    A mutation recipe has five different output options.

    The weights are as follows:

    The chances each output has of being selected are as follows:

    To calculate the chance:

    1. Add up all the weights

    2. Divide the weight you wish to check by the total in step 1


    circle-info

    Name: Weight

    Key: weight

    Type: Double

    Range: ≥0.0

    Default: 10

    chevron-rightExamplehashtag
    Name: Fluid

    Key: fluid

    Type: Fluid

    Default: This value is required or the recipe won't load!

    chevron-rightExamplehashtag

    hashtag
    chance

    The chance of actually resulting the fluid, if selected as the output from the pool of fluids.


    circle-info

    Name: Chance

    Key: chance

    Type: Double

    Range: 0.0 - 1.0

    Default: 1.0

    chevron-rightExamplehashtag

    hashtag
    weight

    How likely the fluid is to be selected among a pool of fluids.

    chevron-rightCalculating Weight Distributions:hashtag

    A mutation recipe has five different output options.

    The weights are as follows:

    The chances each output has of being selected are as follows:

    To calculate the chance:

    1. Add up all the weights

    2. Divide the weight you wish to check by the total in step 1


    circle-info

    Name: Weight

    Key: weight

    Type: Double

    Range: ≥0.0

    Default: 10

    chevron-rightExamplehashtag
    Name: Entity

    Key: entity

    Type: RestrictedEntityPredicate

    Default: This value is required or the recipe won't load!

    chevron-rightExamplehashtag

    hashtag
    chance

    The chance of actually resulting the entity, if selected as the output from the pool of entities.


    circle-info

    Name: Chance

    Key: chance

    Type: Double

    Range: 0.0 - 1.0

    Default: 1.0

    chevron-rightExamplehashtag

    hashtag
    weight

    How likely the entity is to be selected among a pool of entities.

    chevron-rightCalculating Weight Distributions:hashtag

    A mutation recipe has five different output options.

    The weights are as follows:

    The chances each output has of being selected are as follows:

    To calculate the chance:

    1. Add up all the weights

    2. Divide the weight you wish to check by the total in step 1


    circle-info

    Name: Weight

    Key: weight

    Type: Double

    Range: ≥0.0

    Default: 10

    chevron-rightExamplehashtag
    {
      "type": "item",
      "item": {
        "id": "minecraft:nether_star"
      }
    }
    {
      "type": "block",
      "block": {
        "id": "minecraft:diamond_block"
      }
    }
    {
      "type": "block",
      "block": {
        "id": "minecraft:diamond_block"
      },
      "chance": 0.5
    }
    Output 1: 20
    Output 2: 10
    Output 3: 30
    Output 4: 60    
    Output 5: 80
    Output 1: 10%
    Output 2: 5%
    Output 3: 15%
    Output 4: 30%
    Output 5: 40%
    {
      "type": "block",
      "block": {
        "id": "minecraft:diamond_block"
      },
      "weight": 69
    }
    {
      "type": "fluid",
      "fluid": {
        "id": "minecraft:water"
      }
    }
    {
      "type": "fluid",
      "fluid": {
        "id": "minecraft:water"
      },
      "chance": 0.5
    }
    Output 1: 20
    Output 2: 10
    Output 3: 30
    Output 4: 60    
    Output 5: 80
    Output 1: 10%
    Output 2: 5%
    Output 3: 15%
    Output 4: 30%
    Output 5: 40%
    {
      "type": "fluid",
      "fluid": {
        "id": "minecraft:water"
      },
      "weight": 69
    }
    {
      "type": "entity",
      "entity": {
        "id": "minecraft:cow"
      }
    }
    {
      "type": "entity",
      "entity": {
        "id": "minecraft:cow"
      },
      "chance": 0.5
    }
    Output 1: 20
    Output 2: 10
    Output 3: 30
    Output 4: 60    
    Output 5: 80
    Output 1: 10%
    Output 2: 5%
    Output 3: 15%
    Output 4: 30%
    Output 5: 40%
    {
      "type": "entity",
      "entity": {
        "id": "minecraft:cow"
      },
      "weight": 69
    }
    {
      "type": "item",
      "item": {
        "id": "minecraft:nether_star"
      },
      "chance": 0.5
    }
    Output 1: 20
    Output 2: 10
    Output 3: 30
    Output 4: 60    
    Output 5: 80
    Output 1: 10%
    Output 2: 5%
    Output 3: 15%
    Output 4: 30%
    Output 5: 40%
    {
      "type": "item",
      "item": {
        "id": "minecraft:nether_star"
      },
      "weight": 69
    }

    Layer Data

    The layer customization component is responsible for defining key aspects of a specific render layer. There are several aspects of a layer that can be modified:

    • Effect

    • Pulse Frequency

    • Color

    • Texture

    • Visibility when carrying pollen

    hashtag
    Customization Options


    hashtag
    color

    The color that will be applied to the layers texture, this should not be set if your texture is not made to be colored.


    circle-info

    Name: Color

    Key: color

    Type: Color

    Default: Optional

    hashtag
    texture

    The texture for the layer. Each texture requires two versions to exist: normal and angry. The angry texture should use the same name as the normal texture with the suffix _angry appended to it.

    creeper.png

    creeper_angry.png


    circle-info

    Name: Texture

    Key: texture

    Type: String

    Default: Missing Texture

    chevron-rightExample:hashtag

    hashtag
    layerEffect

    The effect the layer will have. There are 3 options available:

    This effect does nothing. It is the default option and does not need to be set explicitly.

    This effect applies the enchantment glint effect to the layer.

    This is used to apply a fullbright glow to the texture similar to the flash a creeper makes. This combined with the pulseFrequency field will allow for the same effect as a creeper.


    circle-info

    Name: Layer Effect

    Key: layerEffect

    Type: Enum | LayerEffect

    Default: NONE

    This does not have to be set explicitly. The two examples below do the same thing:

    hashtag
    isPollen

    When true, this layer will only be visible if the bee is carrying pollen.


    circle-info

    Name: Pollen Layer

    Key: isPollen

    Type: Boolean

    Default: false

    chevron-rightExample:hashtag

    hashtag
    pulseFrequency

    Used with the GLOW layerEffect to create a flashing effect.


    circle-info

    Name: Pulse Frequency

    Key: pulsefrequency

    Type: Float

    Range: 5.0 - 100.0

    chevron-rightExample:hashtag

    Trade Data

    The villager trade customization component is reused across several JSON files within Resourceful Bees. It is responsible for defining the costs and rewards of certain trade items depending on which file it is used in. Not including a villager trade customization component prevents the associated items from being added to the pool of trades.

    Below are the JSON files which can have a villager trade customization component and the trades they create.

    When the component is used in a custom bee JSON, a filled bee jar will be added to the Level 5 trade pool.

    When the component is used in a custom honeycomb JSON, the honeycomb and honeycomb block will be added to the Level 3 trade pool.

    Default: 0

    The component can be used in three different sections of a custom honey JSON:

    • When used in the honey bottle section, a honey bottle will be added to the Level 3 trade pool.

    • When used in the honey block section, a honey block will be added to the Level 3 trade pool.

    • When used in the honey fluid section, a honey bucket will be added to the Level 3 trade pool.

    circle-exclamation

    Adding an empty villager trade component will add the trade to the pool using all default values.

    hashtag
    Identifier


    The root JSON of the villager trade customization component looks like this:

    The identifier of the component is as such:

    triangle-exclamation

    In custom honeycomb and honey JSON's the identifier is tradeData:

    hashtag
    Customization Options


    hashtag
    amount

    The max amount of filled bee jars that can potentially be received in a single trade.

    circle-exclamation

    When trades are being populated, the amount actually used is a randomized value between the min and the max, therefore, not all trades will always have this amount.


    circle-info

    Name: Amount

    Key: amount

    Type: UniformInt

    Default: 1, 64

    chevron-rightExamplehashtag

    hashtag
    secondaryItem

    The item needed, when the trade requires a secondary item, in addition to golden flowers.


    circle-info

    Name: Secondary Item

    Key: secondaryItem

    Type: ItemStack

    Default: ItemStack.EMPTY

    chevron-rightExamplehashtag

    hashtag
    secondaryItemCost

    The max base cost for the secondary item.

    circle-exclamation

    When trades are being populated, the amount actually used is a randomized value between the min and the max, therefore, not all trades will always have this amount.


    circle-info

    Name: Secondary Item Cost

    Key: secondaryItemCost

    Type: UniformInt

    Default: 1, 4

    chevron-rightExamplehashtag

    hashtag
    priceMultiplier

    When demand goes up, so does the price. Use this value to scale the price increase.

    circle-exclamation

    Most vanilla trades have a price multiplier of 0.05


    circle-info

    Name: Price Multiplier

    Key: priceMultiplier

    Type: Float

    Range: 0.00 - 1.00

    Default: 0.05

    chevron-rightExamplehashtag

    hashtag
    maxTrades

    The max number of trades that can be performed before a restock is needed.


    circle-info

    Name: Max Trades

    Key: maxTrades

    Type: Integer

    Range: 1 - 64

    Default: 8

    chevron-rightExamplehashtag

    hashtag
    xp

    The XP awarded each trade.


    circle-info

    Name: XP

    Key: xp

    Type: Integer

    Range: 1 - 64

    Default: 3

    chevron-rightExamplehashtag

    Template:
    "resourcefulbees:rendering/v1": {
      "layers": [
        {
          "layerEffect": "GLOW",
          "pulseFrequency": 5.0,
          "color": 65535,
          "texture": "/example/pollen",
          "isPollen": false
        }
      ]
    }
    "resourcefulbees:rendering/v1": {
      "layers": [
        {
          "color": 52020
        }
      ]
    }
    "resourcefulbees:rendering/v1": {
      "layers": [
        {
          "color": "blanchedalmond"
        }
      ]
    }
    "resourcefulbees:rendering/v1": {
      "layers": [
        {
          "color": "#442920"
        }
      ]
    }
    "resourcefulbees:rendering/v1": {
      "layers": [
        {
          "texture": "/example/pollen"
        }
      ]
    }
    Explicit:
    "resourcefulbees:rendering/v1": {
      "layers": [
        {
          "layerEffect": "NONE"
        }
      ]
    }
    Implicit:
    "resourcefulbees:rendering/v1": {
    
    }
    "resourcefulbees:rendering/v1": {
      "layers": [
        {
          "layerEffect": "ENCHANTED"
        }
      ]
    }
    "resourcefulbees:rendering/v1": {
      "layers": [
        {
          "layerEffect": "GLOW"
        }
      ]
    }
    "resourcefulbees:rendering/v1": {
      "layers": [
        {
          "isPollen": true
        }
      ]
    }
    "resourcefulbees:rendering/v1": {
      "layers": [
        {
          "layerEffect": "GLOW",
          "pulseFrequency": 5.0
        }
      ]
    }
    Example
    {
      "resourcefulbees:block/v1": {
        "color": "rainbow",
        "honeyBlockItem": "resourcefulbees:rainbow_honey_block",
        "honeyBlock": "resourcefulbees:rainbow_honey_block",
        "tradeData": {}
      }
    }
    Example
    {
      "resourcefulbees:block/v1": {
        "tradeData": {}    <---- Identifier
      }
    }
    "resourcefulbees:trade/v1": {
      "amount": {
        "min": 1,
        "max": 1
      }
    }
    "resourcefulbees:trade/v1": {
      "secondaryItem": "minecraft:coal_block"
    }
    "resourcefulbees:trade/v1": {
      "secondaryItem": "minecraft:coal_block",
      "secondaryItemCost": {
        "min": 4,
        "max": 8
      }
    }
    "resourcefulbees:trade/v1": {
      "priceMultiplier": 0.4
    }
    "resourcefulbees:trade/v1": {
      "maxTrades": 2
    }
    "resourcefulbees:trade/v1": {
      "xp": 8
    }
    Template:
    "resourcefulbees:trade/v1": {
      "amount": {
        "min": 1,
        "max": 1
      },
      "secondaryItem": "minecraft:coal_block",
      "secondaryItemCost": {
        "min": 4,
        "max": 8
      },
      "priceMultiplier": 0.4,
      "maxTrades": 2,
      "xp": 8
    }
    "resourcefulbees:trade/v1": {
        ...
    }
    resourcefulbees:trade/v1

    Breed Data

    The breeding customization component is responsible for defining relationships between bees. Bees can have many different breeding relationships.

    hashtag
    Identifier


    The root JSON of the breeding customization component looks like this:

    The identifier of the component is as such:

    hashtag
    Customization Options


    hashtag
    parents

    A list of bee pairs that can be used to breed this bee.


    circle-info

    Name: Parents

    Key: parents

    Type:

    Default: Empty List

    chevron-rightExamplehashtag

    hashtag
    feedItem

    The item(s) which can be fed to the bee to trigger its love state.

    circle-exclamation

    Note: This value only applies when this bee is being used to breed another bee


    circle-info

    Name: Feed Item

    Key: feedItem

    Type:

    Default:

    hashtag
    feedReturnItem

    Item returned to the player after the feed item has been consumed. Useful for returning container-like items after consuming the contents.

    circle-exclamation

    Note: This value only applies when this bee is being used to breed another bee


    circle-info

    Name: Feed Return Item

    Key: feedReturnItem

    Type: ItemStack

    Default: Optional

    chevron-rightExamplehashtag

    hashtag
    feedAmount

    The amount of feed items required to be given to the bee to trigger its love state.

    circle-exclamation

    Note: This value only applies when this bee is being used to breed another bee


    circle-info

    Name: Feed Return Item

    Key: feedAmount

    Type: Integer

    Range: ≥1

    chevron-rightExamplehashtag

    hashtag
    childGrowthDelay

    The time in ticks that a baby bee will stay a baby bee.


    circle-info

    Name: Child Growth Delay

    Key: childGrowthDelay

    Type: Integer

    Range: ≤0

    chevron-rightExamplehashtag

    hashtag
    breedDelay

    The time in ticks until the bee's love state can be triggered again.


    circle-info

    Name: Breed Delay

    Key: breedDelay

    Type: Integer

    Range: ≥1

    chevron-rightExamplehashtag

    Template:
    "resourcefulbees:breeding/v1": {
      "feedAmount": 2,
      "childGrowthDelay": -45000,
      "breedDelay": 2400,
      "parents": [
        {
          "parent1": "diamond",
          "parent2": "coal",
          "weight": 75.0,
          "chance": 0.67
        },
        {
          "parent1": "diamond",
          "parent2": "diamond",
          "weight": 24.0,
          "chance": 0.67
        }
      ],
      "feedItem": [
        "minecraft:poppy",
        "minecraft:carrot"
      ],
      "feedReturnItem": {
        "id": "minecraft:bucket",
        "count": 1,
        "nbt": {
          "this_is": "an_nbt_tag"
        }
      }
    }
    "resourcefulbees:breeding/v1": {
        ...
    }
    minecraft:poppy
    Default: 1
    Default: -24000
    Default: 6000
    BeeFamily[]
    resourcefulbees:breeding/v1
    "resourcefulbees:breeding/v1": {
      "parents": [
        {
          "parent1": "diamond",
          "parent2": "coal",
          "weight": 75.0,
          "chance": 0.67
        }
      ]
    }
    "resourcefulbees:breeding/v1": {
      "feedItem": "#minecraft:candles"
    }
    "resourcefulbees:breeding/v1": {
      "feedItem": [
        "minecraft:poppy",
        "minecraft:carrot"
      ]
    }
    "resourcefulbees:breeding/v1": {
      "feedItem": "minecraft:carrot"
    }
    "resourcefulbees:breeding/v1": {
      "feedReturnItem": {
        "id": "minecraft:bucket",
        "count": 1,
        "nbt": {
          "this_is": "an_nbt_tag"
        }
      }
    }
    "resourcefulbees:breeding/v1": {
      "feedAmount": 2
    }
    "resourcefulbees:breeding/v1": {
      "childGrowthDelay": -45000
    }
    "resourcefulbees:breeding/v1": {
      "breedDelay": 2400
    }
    HolderSet<Item>