
Lychee
Define in-world crafting & interactions using JSON recipes. item interaction, burning, touching fluid, anvil, crushing, lightning, exploding...
Автор: Snownee853,6 тыс.108обновлён 17 окт. 2026 г.
Механики игрыБиблиотеки
Описание
Lychee
Lychee is a mod that allows you to define custom interactions using JSON recipes and datapack.
Currently, Lychee has support for the following recipe types (with full JEI/REI support!):
- Use or click on a block with item
- Item entity burning
- Item entity inside a specific block (for instance water)
- Anvil crafting
- Falling block crushing items or block
- Lightning channeling
- Item exploding
- Block exploding
- Random block ticking (No JEI/REI integration)
- Dripstone dripping
- Advanced shaped crafting
- Entity ticking (No JEI/REI integration)
Dependency
Kiwi
Adding recipes
To create a new recipe that works in every world you create, you will need a datapack loader mod, such as OpenLoader.
Or you can add recipes using CraftTweaker or KubeJS.
Contact
Having trouble creating a recipe, or got an idea for Lychee? You can join our Discord, or create a new issue in Lychee's GitHub repository.
Последние версии
Все версии →beta
[NeoForge 26.1.X] 26.0.10
26.0.10+neoforge17 окт. 2026 г.60Minecraft: 26.1, 26.1.1, 26.1.2neoforge
Что нового
## 26.0.10
- fix: correct EntityMixin lightning injection target
- chore: port misc fabric fixes and align dependencies
- feat: custom rv slot layout
- feat: rework block clicking recipes
- feat: rework set_item behavior
- fix: rework crafting recipes
- feat: add ClientSideStrategy for post actions
## 26.0.6
- fix: crafting recipes
- build: jarJar required fabric api
## 26.0.5
- No changelog provided
## 26.0.4
- Merge pull request [#136](https://github.com/Snownee/Lychee/issues/136) from Snownee/feature/neoforge-26.1.2-migration
- feat: bump kiwi
- feat: add sculk_spreading recipe ([#133](https://github.com/Snownee/Lychee/issues/133))
- feat: new action `insert_item` and `extract_item`
- feat: if `type` is not specified, the action will be parsed as `if` part 2
- feat: if `type` is not specified, the action will be parsed as `if`
- fix: `then` and `else` in `if` is not optional
- chore: align code with fabric
- Update build.gradle for 26.1-neoforge
- fix: CustomCondition not working with KubeJS
- fix: restore Kiwi native APIs
- chore: keep the rei plugin the same with fabric
- fix: not load yaml recipes
- fix: missing annotation for rei plugin
- feat(kubejs): restore neoforge compatibility
- feat: migrate to NeoForge 26.1.2
- fix(rei): restore recipe viewer integration
## 26.0.2
- feat: add a way to register 3rd party recipe categories
- fix: biome display name
## 26.0.1
- feat: now you can customize an action's display name
- feat: new `explode` parameters
- chore: prepare to port the REI integration
beta
[Fabric 26.1.X] 26.0.9
26.0.9+fabric17 окт. 2026 г.96Minecraft: 26.1, 26.1.1, 26.1.2fabric, quilt
Что нового
## 26.0.9
- fix: adapt ported crafting/block-clicking code to 26.1 APIs
- refactor: move fabric-only block clicking mixins to mixin.fabric package
- feat: add server-side ABORT and client-side STOP for block clicking recipes
- feat: support STOP and ABORT actions for block clicking recipes on fabric
- feat: add `action` attribute to block clicking recipe
- fix: crafting recipes round 3
- fix: block clicking recipes now only take effect when start clicking the block
- fix: crafting recipes round 2
- refactor: BlockClickingRecipe can_destroy rework
## 26.0.8
- feat: rework set_item behavior
## 26.0.7
- feat: add block_clicking.destroy_block field
- feat: custom rv slot layout
- fix: crafting recipes
## 26.0.4
- fix: more binary incompatibilities
- feat: add sculk_spreading recipe ([#133](https://github.com/Snownee/Lychee/issues/133))
- feat: new action `insert_item` and `extract_item`
- feat: if `type` is not specified, the action will be parsed as `if` part 2
- Merge branch '26.1-fabric' of https://github.com/Snownee/Lychee into 26.1-fabric
- feat: if `type` is not specified, the action will be parsed as `if`
- fix: `then` and `else` in `if` is not optional
- Update build.gradle for 26.1-fabric
- fix(rei): restore recipe viewer integration ([#135](https://github.com/Snownee/Lychee/issues/135))
## 26.0.3
- feat: YAML recipe now reads Fabric resource conditions
- fix: CustomCondition not working with KubeJS
## 26.0.2
- feat: add a way to register 3rd party recipe categories
- fix: biome display name
beta
[NeoForge 1.21.1] 6.7.1
6.7.1+neoforge17 окт. 2026 г.604Minecraft: 1.21.1neoforge
Что нового
## 6.7.1
- feat: implement ClientSideStrategy.ofEntries
- fix(rv): respect set_item air remainder for EMI shaped crafting
- fix(rv): adapt ShapedCraftingRecipe remainders for EMI
- chore: simplify crafting3 example recipe
## 6.7.0
- feat: add `action` attribute to block clicking recipe
- fix: crafting recipes round 3
- fix: block clicking recipes now only take effect when start clicking the block
## 6.6.1
- fix: crafting recipes round 2
- refactor: BlockClickingRecipe can_destroy rework
## 6.6.0
- feat: rework set_item behavior
- feat: add block_clicking.destroy_block field
- feat: custom rv slot layout
## 6.5.4
- fix: crafting recipes
## 6.5.3
- Update build.gradle for 1.21-neoforge
- feat: if `type` is not specified, the action will be parsed as `if`
- fix: `then` and `else` in `if` is not optional
beta
[Fabric 1.21.1] 6.7.1
6.7.1+fabric17 окт. 2026 г.54Minecraft: 1.21.1fabric, quilt
Что нового
## 6.7.1
- feat: implement ClientSideStrategy.ofEntries
- fix(rv): respect set_item air remainder for EMI shaped crafting
- fix(rv): adapt ShapedCraftingRecipe remainders for EMI
- chore: simplify crafting3 example recipe
- refactor: move fabric-only block clicking mixins to mixin.fabric package
- feat: add server-side ABORT and client-side STOP for block clicking recipes
- feat: support STOP and ABORT actions for block clicking recipes on fabric
- fix: restore loom config and adapt spectrum compat for fabric
## 6.7.0
- feat: add `action` attribute to block clicking recipe
- fix: crafting recipes round 3
- fix: block clicking recipes now only take effect when start clicking the block
## 6.6.1
- fix: crafting recipes round 2
- refactor: BlockClickingRecipe can_destroy rework
## 6.6.0
- style: fix indentation in LycheeBuilder
- feat: rework set_item behavior
- feat: add block_clicking.destroy_block field
- feat: custom rv slot layout
## 6.5.2
- fix: crafting recipes
- Update build.gradle for 1.21-fabric
## 6.5.1
- fix: CustomCondition not working with KubeJS
## 6.5.0
- improve: filter incompatible enchantments
- feat: add new actions: copy_component, remove_component and copy_durability
- feat: add item preservation features to AnvilCraftingRecipe ([#131](https://github.com/Snownee/Lychee/issues/131))
## 6.4.3
- fix: target Kiwi latest
- fix: JEI not showing conditions for drop_item actions
## 6.4.2
- fix: DamageItem implementation (close [#128](https://github.com/Snownee/Lychee/issues/128))
beta
[NeoForge 1.21.1] 6.7.0
6.7.0+neoforge6 сент. 2026 г.2 тыс.Minecraft: 1.21.1neoforge
Что нового
## 6.7.0
- feat: add `action` attribute to block clicking recipe
- fix: crafting recipes round 3
- fix: block clicking recipes now only take effect when start clicking the block
## 6.6.1
- fix: crafting recipes round 2
- refactor: BlockClickingRecipe can_destroy rework
## 6.6.0
- feat: rework set_item behavior
- feat: add block_clicking.destroy_block field
- feat: custom rv slot layout
## 6.5.4
- fix: crafting recipes
## 6.5.3
- Update build.gradle for 1.21-neoforge
- feat: if `type` is not specified, the action will be parsed as `if`
- fix: `then` and `else` in `if` is not optional
## 6.5.2
- fix: NeoForge ATs hopefully
beta
[NeoForge 1.21.1] 6.6.1
6.6.1+neoforge4 сент. 2026 г.130Minecraft: 1.21.1neoforge
Что нового
## 6.6.1
- fix: crafting recipes round 2
- refactor: BlockClickingRecipe can_destroy rework
## 6.6.0
- feat: rework set_item behavior
- feat: add block_clicking.destroy_block field
- feat: custom rv slot layout
## 6.5.4
- fix: crafting recipes
## 6.5.3
- Update build.gradle for 1.21-neoforge
- feat: if `type` is not specified, the action will be parsed as `if`
- fix: `then` and `else` in `if` is not optional
## 6.5.2
- fix: NeoForge ATs hopefully
## 6.5.1
- fix: CustomCondition not working with KubeJS
beta
[NeoForge 1.21.1] 6.6.0
6.6.0+neoforge3 сент. 2026 г.102Minecraft: 1.21.1neoforge
Что нового
## 6.6.0
- feat: rework set_item behavior
- feat: add block_clicking.destroy_block field
- feat: custom rv slot layout
## 6.5.4
- fix: crafting recipes
## 6.5.3
- Update build.gradle for 1.21-neoforge
- feat: if `type` is not specified, the action will be parsed as `if`
- fix: `then` and `else` in `if` is not optional
## 6.5.2
- fix: NeoForge ATs hopefully
## 6.5.1
- fix: CustomCondition not working with KubeJS
## 6.5.0
- improve: filter incompatible enchantments
- feat: add new actions: copy_component, remove_component and copy_durability
- feat: add item preservation features to AnvilCraftingRecipe ([#131](https://github.com/Snownee/Lychee/issues/131))
release
[Fabric 26.1.X] 26.0.8
26.0.8+fabric3 сент. 2026 г.276Minecraft: 26.1, 26.1.1, 26.1.2fabric, quilt
Что нового
## 26.0.8
- feat: rework set_item behavior
## 26.0.7
- feat: add block_clicking.destroy_block field
- feat: custom rv slot layout
- fix: crafting recipes
## 26.0.4
- fix: more binary incompatibilities
- feat: add sculk_spreading recipe ([#133](https://github.com/Snownee/Lychee/issues/133))
- feat: new action `insert_item` and `extract_item`
- feat: if `type` is not specified, the action will be parsed as `if` part 2
- Merge branch '26.1-fabric' of https://github.com/Snownee/Lychee into 26.1-fabric
- feat: if `type` is not specified, the action will be parsed as `if`
- fix: `then` and `else` in `if` is not optional
- Update build.gradle for 26.1-fabric
- fix(rei): restore recipe viewer integration ([#135](https://github.com/Snownee/Lychee/issues/135))
## 26.0.3
- feat: YAML recipe now reads Fabric resource conditions
- fix: CustomCondition not working with KubeJS
## 26.0.2
- feat: add a way to register 3rd party recipe categories
- fix: biome display name
## 26.0.1
- feat: now you can customize an action's display name
- feat: new `explode` parameters
- chore: prepare to port the REI integration
release
[Fabric 26.1.X] 26.0.7
26.0.7+fabric2 сент. 2026 г.41Minecraft: 26.1, 26.1.1, 26.1.2fabric, quilt
Что нового
## 26.0.7
- feat: add block_clicking.destroy_block field
- feat: custom rv slot layout
- fix: crafting recipes
## 26.0.4
- fix: more binary incompatibilities
- feat: add sculk_spreading recipe ([#133](https://github.com/Snownee/Lychee/issues/133))
- feat: new action `insert_item` and `extract_item`
- feat: if `type` is not specified, the action will be parsed as `if` part 2
- Merge branch '26.1-fabric' of https://github.com/Snownee/Lychee into 26.1-fabric
- feat: if `type` is not specified, the action will be parsed as `if`
- fix: `then` and `else` in `if` is not optional
- Update build.gradle for 26.1-fabric
- fix(rei): restore recipe viewer integration ([#135](https://github.com/Snownee/Lychee/issues/135))
## 26.0.3
- feat: YAML recipe now reads Fabric resource conditions
- fix: CustomCondition not working with KubeJS
## 26.0.2
- feat: add a way to register 3rd party recipe categories
- fix: biome display name
## 26.0.1
- feat: now you can customize an action's display name
- feat: new `explode` parameters
- chore: prepare to port the REI integration
## 26.0.0
- feat: port to 26.1
- build: bump dependencies
- feat(rv): smaller consume icon
- feat(rv): block crushing shadow expand from center
- feat: fix block crushing recipe rendering
- feat: add "multi" option to place action
- fix: Repeatable recipes behave strangely when delay action is involved (close [#132](https://github.com/Snownee/Lychee/issues/132))
- chore: code cleanup
- port, part 8
- feat: add display_tnt option
- port, part 7
- port, part 6
- port, part 5
- port, part 4
- fix: BlockCrushingRecipe not supporting wildcard falling block
- port, part 3
- port, part 2
- port, part 1
release
[NeoForge 26.1.X] 26.0.6
26.0.6+neoforge20 авг. 2026 г.157Minecraft: 26.1, 26.1.1, 26.1.2neoforge
Что нового
## 26.0.6
- fix: crafting recipes
- build: jarJar required fabric api
## 26.0.5
- No changelog provided
## 26.0.4
- Merge pull request [#136](https://github.com/Snownee/Lychee/issues/136) from Snownee/feature/neoforge-26.1.2-migration
- feat: bump kiwi
- feat: add sculk_spreading recipe ([#133](https://github.com/Snownee/Lychee/issues/133))
- feat: new action `insert_item` and `extract_item`
- feat: if `type` is not specified, the action will be parsed as `if` part 2
- feat: if `type` is not specified, the action will be parsed as `if`
- fix: `then` and `else` in `if` is not optional
- chore: align code with fabric
- Update build.gradle for 26.1-neoforge
- fix: CustomCondition not working with KubeJS
- fix: restore Kiwi native APIs
- chore: keep the rei plugin the same with fabric
- fix: not load yaml recipes
- fix: missing annotation for rei plugin
- feat(kubejs): restore neoforge compatibility
- feat: migrate to NeoForge 26.1.2
- fix(rei): restore recipe viewer integration
## 26.0.2
- feat: add a way to register 3rd party recipe categories
- fix: biome display name
## 26.0.1
- feat: now you can customize an action's display name
- feat: new `explode` parameters
- chore: prepare to port the REI integration
## 26.0.0
- feat: port to 26.1
- build: bump dependencies
- feat(rv): smaller consume icon
- feat(rv): block crushing shadow expand from center
- feat: fix block crushing recipe rendering
- feat: add "multi" option to place action
- fix: Repeatable recipes behave strangely when delay action is involved (close [#132](https://github.com/Snownee/Lychee/issues/132))
- chore: code cleanup
- port, part 8
- feat: add display_tnt option
- port, part 7
- port, part 6
- port, part 5
- port, part 4
- fix: BlockCrushingRecipe not supporting wildcard falling block
- port, part 3
- port, part 2
- port, part 1
