Farmer's Delight Bedrock

This add-on is an unofficial port of the Farmer's Delight Mod to Bedrock Edition, meticulously reproduced to match the original as closely as possible.

File Details

FarmersDelightV4.0.0-1.21.90+.mcaddon

  • R
  • Jul 13, 2025
  • 2.33 MB
  • 14.7K
  • 1.21.93+1

File Name

FarmersDelightV4.0.0-1.21.90+.mcaddon

Supported Versions

  • 1.21.93
  • 1.21.90

Non-Technical Updates

Additions

  1. Items in the off-hand can now interact with the cutting board.

  2. The Farmer's Almanac can now be placed into chiseled bookshelves.

  3. The display order of items on the stove now varies based on the stove’s facing direction.

  4. The stove’s lit state is now consistent with the vanilla furnace and is no longer affected by ambient lighting.

  5. Some items can now be placed in the off-hand.

  6. Wild crops can now be broken and drop items when destroyed by flowing water.

  7. Wild crops can now drop items when destroyed by explosions.

Changes

  1. The model for full blocks has been changed from geometry.block to the vanilla minecraft:geometry.full_block.

  2. Block and item format versions have been upgraded to 1.21.90.

  3. Stove cooking time is now stored as dynamic entity properties instead of scoreboard values, and cooked items are stored in the stove entity’s inventory.

  4. Skillet data storage has been changed from scoreboard values to dynamic entity properties.


Technical Updates

Removals (Breaking Changes)

  1. Removed item tag-based registration for cutting board recipes.

  2. Removed item tag-based registration for stove/skillet recipes.

  3. Removed the farmersdelight:is_knife tag’s function for increasing production.

  4. Removed the function where fertile soil accelerates crops based on block tags.

  5. Removed the farmersdelight:cabinet tag-based registration for cabinets.

Additions

Blocks

  1. Added farmersdelight:cabinet component to register cabinets.

<figure class="md-table-fig table-figure">
Key Type Required Description
  string Yes Specifies the ID of the cabinet entity to bind to. Must exactly match the entity ID defined in the behavior pack.
</figure>
  1. Added farmersdelight:crop component for registering crops. This is also used by fertile soil to accelerate growth.

<figure class="md-table-fig table-figure">
Key Type Required Default Description
loot string Yes The loot table ID used on harvest.
state object Yes See structure below.
</figure>

State structure:

<figure class="md-table-fig table-figure">
Key Type Required Default Description
name string Yes Name of the block state used for growth.
age number Yes Age value when mature.
age_after_harvest number No 0 Age value after harvest.
</figure>
  1. Added farmersdelight:wild_crop component. Can be silk-touched with shears. Has no parameters.


Items

  1. Added farmersdelight:cookable component for registering stove/skillet recipes.

<figure class="md-table-fig table-figure">
Key Type Required Default Description
result string Yes Result item ID.
time int No 200 Cooking time in ticks (1s = 20).
</figure>

⚠️ This component only handles recipe logic. Rendering particles must be registered separately.

Particle Template Examples

  • Stove particle effect: ID must follow namespace:stove_identifier pattern.

{
 "format_version": "1.10.0",
 "particle_effect": {
   "components": {
     "minecraft:emitter_lifetime_once": { "active_time": 0.12 },
     "minecraft:emitter_rate_steady": { "max_particles": 60, "spawn_rate": 1250 },
     "minecraft:emitter_shape_box": {
       "direction": "outwards",
       "half_dimensions": [0, 0.009375, 0],
       "offset": [0, 0.009375, 0]
    },
     "minecraft:particle_appearance_billboard": {
       "facing_camera_mode": "emitter_transform_xz",
       "size": [0.15, 0.15],
       "uv": {
         "texture_height": 16,
         "texture_width": 16,
         "uv": [0, 0],
         "uv_size": [16, 16]
      }
    },
     "minecraft:particle_initial_speed": 0,
     "minecraft:particle_lifetime_expression": { "max_lifetime": 0.05 },
     "minecraft:particle_motion_dynamic": {},
     "minecraft:particle_appearance_lighting": {}
  },
   "description": {
     "basic_render_parameters": {
       "material": "particles_alpha",
       "texture": "textures/items/minced_beef"
    },
     "identifier": "farmersdelight:stove_minced_beef"
  }
}
}
  • Skillet particle effect: ID must follow namespace:skillet_identifier.

{
 "format_version": "1.10.0",
 "particle_effect": {
   "components": {
     "minecraft:emitter_lifetime_once": { "active_time": 0.12 },
     "minecraft:emitter_rate_steady": { "max_particles": 60, "spawn_rate": 1250 },
     "minecraft:emitter_shape_box": {
       "offset": [0, 0.01563, 0],
       "half_dimensions": [0, 0.01563, 0],
       "direction": "outwards"
    },
     "minecraft:particle_appearance_billboard": {
       "facing_camera_mode": "emitter_transform_xz",
       "size": [0.25, 0.25],
       "uv": {
         "texture_height": 16,
         "texture_width": 16,
         "uv": [0, 0],
         "uv_size": [16, 16]
      }
    },
     "minecraft:particle_initial_speed": 0,
     "minecraft:particle_lifetime_expression": { "max_lifetime": 0.05 },
     "minecraft:particle_motion_dynamic": {},
     "minecraft:particle_appearance_lighting": {}
  },
   "description": {
     "basic_render_parameters": {
       "material": "particles_alpha",
       "texture": "textures/items/chicken_cuts"
    },
     "identifier": "farmersdelight:skillet_chicken_cuts"
  }
}
}
  1. Added farmersdelight:increase_production component for loot multiplication. No parameters.

  2. Added farmersdelight:seed component to place blocks on top of fertile soil.

<figure class="md-table-fig table-figure">
Key Type Required Description
  string Yes Block ID to place on fertile soil.
</figure>
  1. Added farmersdelight:cutting_board component to define cutting board recipes.

<figure class="md-table-fig table-figure">
Key Type Required Default Description
loot array Yes Array of LootItem results.
is_block boolean No false If true, uses block rendering; otherwise uses item particles.
tool object Yes Tool requirement (by tag or item ID).
</figure>

LootItem Structure:

LootItem = [string id, number amount, number? chance]
<figure class="md-table-fig table-figure">
Index Type Required Default Description
[0] string Yes Dropped item ID.
[1] number Yes Amount dropped.
[2] number No 1 Drop chance (0–1).
</figure>

Tool Object:

<figure class="md-table-fig table-figure">
Key Type Required Description
type "tag" | "item" Yes Whether name is a tag or item ID.
name string Yes The tag or item name.
</figure>

Item Particle Template: ID must match the item ID.

{
 "format_version": "1.10.0",
 "particle_effect": {
   "components": {
     "minecraft:emitter_lifetime_once": { "active_time": 0.12 },
     "minecraft:emitter_rate_steady": { "max_particles": 250, "spawn_rate": 1250 },
     "minecraft:emitter_shape_box": {
       "offset": [0, 0.01563, 0],
       "half_dimensions": [0, 0.01563, 0],
       "direction": "outwards"
    },
     "minecraft:particle_appearance_billboard": {
       "facing_camera_mode": "emitter_transform_xz",
       "size": [0.25, 0.25],
       "uv": {
         "texture_height": 16,
         "texture_width": 16,
         "uv": [0, 0],
         "uv_size": [16, 16]
      }
    },
     "minecraft:particle_initial_speed": 0,
     "minecraft:particle_lifetime_expression": { "max_lifetime": 0.05 },
     "minecraft:particle_motion_dynamic": {},
     "minecraft:particle_appearance_lighting": {}
  },
   "description": {
     "basic_render_parameters": {
       "material": "particles_alpha",
       "texture": "textures/items/apple_pie"
    },
     "identifier": "farmersdelight:apple_pie"
  }
}
}
  • The loot array can include multiple LootItems.

  • You can define bulk loot directly in the JSON like:

"loot": [
["minecraft:beef", 1, 0.25],
["minecraft:leather", 1]
]