Nutritional adds a diet system to Minecraft. The food you eat counts toward five food groups, and keeping them in balance makes you stronger, while living on a single food works against you. It is a NeoForge 1.21.1 rewrite of WesCook's Nutrition.
Everything in the mod is built to be retuned by pack makers without writing code. See For pack makers and developers below.
Every food belongs to one or more of five groups: dairy, fruit, grain, protein, and vegetable. Eating raises the groups that food belongs to, and each group slowly drops over time as you get hungry. The goal is to keep all five reasonably topped up rather than spamming one food.
Your overall balance is graded into a diet tier, from worst to best:
starving, malnourished, surviving, nourished, gourmand
A poor diet leaves you in a low tier with penalties. A varied, well-fed diet pushes you into a high tier that grants bonuses to things like max health, movement speed, and armor. Eating well also makes future meals more nourishing and slows how fast your groups drop, so good habits build on themselves.
On top of the tiers:
The mod ships a small advancement tree for eating from each food group, eating a varied diet, and reaching the higher diet tiers and rewards.
Most behavior can be changed in two config files:
nutritional-client.toml for personal display options like the tooltip, the HUD widget, and the diet screen button.nutritional-server.toml for world rules like how fast groups drain, the death penalty, and overall difficulty multipliers.Pack makers can change far more than this through datapacks, covered next.
Nutritional is data-driven. Food groups, the items in them, diet tiers, status-effect rules, rewards, and per-dimension difficulty are all defined in datapacks, so they can be added, rebalanced, or removed without touching Java.
Six first-class datapack registries:
| Registry | Path |
|---|---|
nutritional:nutrient |
data/<pack>/nutritional/nutrient/<id>.json |
nutritional:effect |
data/<pack>/nutritional/effect/<id>.json |
nutritional:food_hint |
data/<pack>/nutritional/food_hint/<id>.json |
nutritional:diet_tier |
data/<pack>/nutritional/diet_tier/<id>.json |
nutritional:sustained_reward |
data/<pack>/nutritional/sustained_reward/<id>.json |
nutritional:dimension_modifier |
data/<pack>/nutritional/dimension_modifier/<dim_namespace>/<dim_path>.json |
Effects support four detection modes: any, average, all, and cumulative. The nourished, malnourished, and toughness mob effects ship by default.
Which group an item belongs to comes from tags (#nutritional:nutrient/<id>). Per-item scale overrides come from a NeoForge DataMap (nutritional:nutrient_scales on the minecraft:item registry). Most foods need only a tag entry.
Two attributes are added and can be modified by equipment, mob effects, and other mods:
nutritional:nutrient_absorption, how much food gives. Higher means meals are more nourishing.nutritional:nutrient_decay_rate, how fast groups drop. Lower means they drain slower./nutritional get|set|add|subtract|reset <player> <nutrient> [<value>]/nutritional reload reloads datapacks/nutritional-food prints the nutrient yield for the held itemTwo custom criterion triggers, nutritional:tier_reached and nutritional:reward_earned, are available for datapacks to build their own advancement trees against.