Food is a core aspect of survival Minecraft, so when creating edible items you have to consider the food's usage with other edible items.
Unless you're making a mod with overpowered items, you should consider:
- How much hunger your edible item adds or removes.
- What potion effect(s) does it grant?
- Is it early-game or endgame accessible?
Adding the Food Component
To add a food component to an item, we can pass it to the Item.Settings instance:
java
new Item.Settings().food(new FoodComponent.Builder().build())1
Right now, this just makes the item edible and nothing more.
The FoodComponent.Builder class has many methods that allow you to modify what happens when a player eats your item:
| Method | Description |
|---|---|
nutrition | Sets the amount of hunger points your item will replenish. |
saturationModifier | Sets the amount of saturation points your item will add. |
alwaysEdible | Allows your item to be eaten regardless of hunger level. |
snack | Declares your item as a snack. |
statusEffect | Adds a status effect when you eat your item. Usually a status effect instance and chance is passed to this method, where chance is a decimal percentage (1f = 100%) |
When you've modified the builder to your liking, you can call the build() method to get the FoodComponent.
java
public static final FoodComponent POISON_FOOD_COMPONENT = new FoodComponent.Builder()
.alwaysEdible()
.snack()
// The duration is in ticks, 20 ticks = 1 second
.statusEffect(new StatusEffectInstance(StatusEffects.POISON, 6 * 20, 1), 1.0f)
.build();1
2
3
4
5
6
2
3
4
5
6
Similar to the example in the Creating Your First Item page, I'll be using the above component:
java
public static final Item POISONOUS_APPLE = register(
new Item(new Item.Settings().food(POISON_FOOD_COMPONENT)),
"poisonous_apple"
);1
2
3
4
2
3
4
This makes the item:
- Always edible, it can be eaten regardless of hunger level.
- A "snack".
- Always give Poison II for 6 seconds when eaten.

