Common Questions

Q1: How to use vanilla farmland as pot

Now you have to make a choose between plugin's watering system(①) and vanilla moisture system(②).

① If you want to use plugin's watering & fertilizer system. It's necessary to disable vanilla moisture in config.yml to prevent conflicts

  # Vanilla farmland settings
  vanilla-farmland:
    # Disable vanilla farmland moisture mechanics
    # This option exists because some users prefer to use the vanilla farmland but the water system conflicts with the vanilla one
    disable-moisture-mechanic: true

Then edit the default.yml at /contents/pots folder

default:
  # Maximum water storage capacity
  max-water-storage: 7
  # The most basic settings
  base:
    # Pot models
    dry: minecraft:farmland[moisture=0]
    wet: minecraft:farmland[moisture=7]
  # Does the pot absorb raindrop
  absorb-rainwater: true
  # Does nearby water make the pot wet
  absorb-nearby-water: true

② If you prefer the vanilla farmland mechanics, you can just disable all the watering mechanics in CustomCrops.

What you need to do is to edit the default.yml under /contents/pots folder.

default:
  vanilla-farmland: true

Then, you have to make changes on each crop's grow-conditions otherwise they won't grow on vanilla farmlands because water-more-than checks the water provided by the plugin while moisture-more-than checks the moisture of vanilla farmland block data.

water_condition:
  type: water-more-than
  value: 0
----->
moisture_condition:
  type: moisture-more-than
  value: 0

Q2: I can't use any of the plugin's functions

Make sure that your world is not in the blacklist / Make sure that your world is in whitelist

# World settings
worlds:
  # This is designed for servers that using an independent folder for worlds
  # Especially for realm systems
  absolute-world-folder-path: ''
  # A list of worlds that would decide where the plugin mechanisms take effect
  # Mode: whitelist/blacklist
  mode: blacklist
  list:
    - blacklist_world

Q3: How to make watering-cans damageable

Let's take ItemsAdder as example, what you need to do is to set the material to a damageable item for instance "WOODEN_SWORD". CustomCrops would handle the durability system for you so you don't need to do anything else!

items:
  watering_can_1:
    display_name: display-name-watering_can_1
    resource:
      generate: false
      material: WOODEN_SWORD
      model_path: item/wateringcans/watering_can_1
    item_flags:
    - HIDE_ATTRIBUTES

Q4: I want to use items from other plugins for seeds/drops

Firstly, add the plugin's name in config.yml. You can get all the compatible plugins on page:

  item-detection-order:
    - MMOItems

Then you can use MMOItems anywhere for instance

  # Seed of the crop
  seed: MMOItems:MATERIAL:TOMATO_SEEDS
  # Drop items
  quality_crop_action:
    type: quality-crops
    value:
      min: 1
      max: 4
      items:
        1: MMOItems:MATERIAL:TOMATO
        2: MMOItems:MATERIAL:TOMATO_SILVER_STAR
        3: MMOItems:MATERIAL:TOMATO_GOLDEN_STAR

Q5: How to apply leveler's level to the drop amount of crops? / How can I get exp for the leveler from harvesting the crops? / How can I set level requirements for planting a crop?

Firstly check if that plugin is compatible on Supported levelers

Then register that placeholder into CustomCrops

  placeholder-register:
    '{skill-level}': '%levelplugin_farming%'

Now you are able to use the placeholder and expression in the amount of drops

  # Drop items
  quality_crop_action:
    type: quality-crops
    value:
      min: "1 + {skill-level} * 0.1"
      max: "4 + {skill-level} * 0.1"
      ...

To receive exp from harvesting, you have to add an action in break/interact event section

  action_exp:
    type: plugin-exp
    value:
      plugin: AureliumSkills
      target: FARMING  # The target is decided by the leveler you are using
      exp: 100
    chance: 1

To use the level requirements for planting, you can follow this example

  requirements:
    plant:
      requirement_0:
        type: plugin-level
        value:
          plugin: AureliumSkills
          target: FARMING  # The target is decided by the leveler you are using
          level: 10
        not-met-actions:
          message_action:
            type: message
            value: "This seeds require 10+ farming skill levels"
      requirement_1:
        type: season
        value:
          - Spring
          - Autumn
        not-met-actions:
          message_action:
            type: message
            value: "It's not a good season to plant tomato"

Q6: How does "protect-original-lore" work?

You can find this option if you check the config.yml carefully

  # Whether to protect the original lore of the item
  # This uses the scoreboard component to identify the plugin's lore,
  # which may conflict with some plugins that still use SpigotAPI#ItemMeta.
  protect-original-lore: false

Take ItemsAdder as example

items:
  watering_can_1:
    display_name: display-name-watering_can_1
    resource:
      generate: false
      material: WOODEN_SWORD
      model_path: item/wateringcans/watering_can_1
    item_flags:
    - HIDE_ATTRIBUTES
    lore:
      - '1111111111'
      - '2222'
      - '333333'
protect-original-lore: true
protect-original-lore: false

Q7: I can't plant crops

Situation1: I can hear the sound of planting and seed is consumed

If you are using ItemsAdder and FURNITURE mode, open ItemsAdder's config.yml and set this value higher

entities:
  max-furniture-vehicles-per-chunk: 30

If you are using ItemsAdder and BLOCK mode, open ItemsAdder's config.yml and set

# IA 3.6
disable-REAL_WIRE: false
# IA 4.0+
wire: true

Situation2: Nothing happened and you have already planted a lot of crops

Open CustomCrops' config.yml

# Set it to a higher value or -1
max-per-chunk: 150

Q8: How to notify players if they can't plant more crops?

In pot/crop/sprinkler's configs, there's an event type called reach_limit where you can add custom actions.

events:
  reach_limit:
    actionbar_action:
      type: actionbar
      value: '<red><bold>[X] You are not allowed to plant more crops'

Q9: How to disable bone meal for crops?

Remove the custom-bone-meal section from the crop configs for instance

  # Custom settings for bone meal use
  custom-bone-meal: {}

Q10: How to use vanilla crops on pots?

Firstly you have to disable vanilla mechanics for a certain crop by adding the block type in config.yml. This would prevent the vanilla crop from being ticked and dropping items.

# Specify block types that should be overridden by the plugin
# Some common crops: WHEAT/CARROTS/POTATOES/BEETROOTS/SWEET_BERRY_BUSH
override-vanilla-blocks:
  - WHEAT

Then create a new file under /contents/crops/ folder for instance wheat.yml

# Unique identifier for the crop
wheat:
  # Type of the item
  type: BLOCK
  # Specifies which pots the crop can be planted on
  pot-whitelist:
    - default
  # The seed item used to plant the crop
  seed: WHEAT_SEEDS
  # Event settings for actions like planting and breaking
  events:
    plant:
      # Plays a hand-swing animation when planting
      swing_hand_action:
        type: swing-hand
        value: true
      # Plays a sound when planting the crop
      sound_action:
        type: sound
        value:
          source: player
          key: minecraft:item.hoe.till
          volume: 1
          pitch: 1
    break:
      # Plays a sound when breaking the crop
      sound_action:
        type: sound
        value:
          source: player
          key: minecraft:block.crop.break
          volume: 1
          pitch: 1
  # Maximum growth stage for the crop
  max-points: 7
  # Actions and settings for each growth stage of the crop
  points:
    0:
      model: minecraft:wheat[age=0]
      events:
        break:
          action_1:
            type: drop-item
            value:
              ignore-fertilizer: true
              item: WHEAT_SEEDS
              min: 1
              max: 1
    1:
      model: minecraft:wheat[age=1]
      events:
        break:
          action_1:
            type: drop-item
            value:
              ignore-fertilizer: true
              item: WHEAT_SEEDS
              min: 1
              max: 1
    2:
      model: minecraft:wheat[age=2]
      events:
        break:
          action_1:
            type: drop-item
            value:
              ignore-fertilizer: true
              item: WHEAT_SEEDS
              min: 1
              max: 1
    3:
      model: minecraft:wheat[age=3]
      events:
        break:
          action_1:
            type: drop-item
            value:
              ignore-fertilizer: true
              item: WHEAT_SEEDS
              min: 1
              max: 1
    4:
      model: minecraft:wheat[age=4]
      events:
        break:
          action_1:
            type: drop-item
            value:
              ignore-fertilizer: true
              item: WHEAT_SEEDS
              min: 1
              max: 1
    5:
      model: minecraft:wheat[age=5]
      events:
        break:
          action_1:
            type: drop-item
            value:
              ignore-fertilizer: true
              item: WHEAT_SEEDS
              min: 1
              max: 1
    6:
      model: minecraft:wheat[age=6]
      events:
        break:
          action_1:
            type: drop-item
            value:
              ignore-fertilizer: true
              item: WHEAT_SEEDS
              min: 1
              max: 1
    7:
      model: minecraft:wheat[age=7]
      events:
        break:
          action_1:
            type: drop-item
            value:
              ignore-fertilizer: true
              item: WHEAT_SEEDS
              min: 1
              max: 2
          action_2:
            type: drop-item
            value:
              ignore-fertilizer: true
              item: WHEAT
              min: 1
              max: 1
  grow-conditions: {}
  death-conditions: {}
  custom-bone-meal:
    bone_meal_1:
      item: BONE_MEAL
      dispenser: true
      chance:
        2: 0.5
        1: 1
      actions:
        swing_action:
          type: swing-hand
          value: true
        particle_action:
          type: particle
          value:
            particle: VILLAGER_HAPPY
            x: 0.5
            y: 0.5
            z: 0.5
            count: 5
            offset-x: 0.3
            offset-y: 0.3
            offset-z: 0.3
        sound_action:
          type: sound
          value:
            source: player
            key: minecraft:item.bone_meal.use
            volume: 1
            pitch: 1

Q11: How to use vanilla items as drops/seeds?

Just use capital letter for instance "APPLE"

seed: APPLE

Q12: How to use other vanilla blocks as pots?

To continue using the plugin's water and fertilizer mechanics, configure it as follows:

# Unique identifier for the pot
default:
  # Maximum capacity for storing water in the pot
  max-water-storage: 5
  # Basic settings for pot appearance and behavior
  base:
    # Models for the pot's appearance
    dry: minecraft:xxx[xxx=xxx]  # Model ID when the pot is dry
    wet: minecraft:xxx[xxx=xxx]  # Model ID when the pot is wet

To disable the plugin's mechanisms, simply configure it as follows:

# Unique identifier for the pot
grass_pot:
  vanilla-blocks:
    - minecraft:grass_block[snowy=false]

Q13: How to let different pots have different tick modes

Firstly set the tick mode to ALL in config.yml

pot:
  # RANDOM_TICK / SCHEDULED_TICK / ALL
  mode: ALL

Then configure the detailed mode for specific pots in their own configs which can be found on

Last updated