Nutritional

Nutritional adds a diet system where every food counts toward five groups: dairy, fruit, grain, protein, and vegetable. Keep them balanced to climb diet tiers and earn health, speed, and armor bonuses. Eat poorly and pay for it. Datapack-driven.

File Details

nutritional 26.1.2-1.0.0

  • R
  • Jun 18, 2026
  • 196.61 KB
  • 13
  • 26.1.2
  • NeoForge

File Name

nutritional-26.1.2-1.0.0.jar

Supported Versions

  • 26.1.2

Curse Maven Snippet

NeoForge

implementation "curse.maven:nutritional-1579319:8272492"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

1.0.0

First release of Nutritional for Minecraft 26.1.2 on NeoForge. A from-scratch rewrite of the original Nutrition by Wes Cook, redesigned around modern data attachments, datapack registries, NeoForge DataMaps, and the modern attribute-modifier system. None of the legacy 1.12 source carries over — every subsystem was re-implemented against the modern NeoForge API.

Gameplay

  • Five default nutrients — dairy, fruit, grain, protein, vegetable. Each shipped with a translated name, an icon, a color, and an item tag covering vanilla foods.
  • Hunger-driven decay — losing food bar drains nutrients proportionally. Per-nutrient and global multipliers; affected by the new nutritional:nutrient_decay_rate attribute.
  • Multi-nutrient yield penalty — eating food that satisfies many nutrients at once distributes the yield across all of them, configurable per-server.
  • Death penalty — each nutrient drops by a configurable amount on death, with a floor value.
  • Five default diet tiersstarvingmalnourishedsurvivingnourishedgourmand. The active tier is graded from the player's overall nutrient profile and attaches a curated bundle of attribute modifiers. Tier thresholds and modifier bundles are fully datapack-defined.
  • Sustained-reward streaks — stay in a qualifying tier for N consecutive Minecraft days to earn permanent attribute bonuses. Lost on death by default, or on dropping below a configurable floor tier.
  • Per-dimension scaling — datapack-driven yield and decay multipliers per dimension. The Nether and the End ship with stiffer decay and reduced yield out of the box.
  • Two custom player attributesnutritional:nutrient_absorption (eating well multiplies food yield) and nutritional:nutrient_decay_rate (eating well slows the drain). First-class NeoForge attributes, modifiable by equipment, mob effects, or other mods.

Client UX

  • Food tooltips list applicable nutrients and per-item scales, grouped by yield.
  • Top-right HUD widget shows the current diet tier with its themed color and icon. Toggleable on/off via a button on the nutrition screen.
  • Default keybind N opens a nutrition screen with bars for every visible nutrient plus the active tier label.

Mob effects

Three legacy effects ship as Java-registered MobEffects (so datapack effect entries can target them):

  • nutritional:nourished+1 max_health per amplifier.
  • nutritional:malnourished-1 max_health per amplifier.
  • nutritional:toughness+4 max_health, +2 armor_toughness, +0.1 attack_speed per amplifier.

Datapack-driven content

Six first-class datapack registries:

Registry What it carries
nutritional:nutrient Nutrient metadata: icon, color, decay rate, starting value, visibility
nutritional:effect Threshold → mob-effect mappings with optional attribute modifiers; four detection modes (any, average, all, cumulative)
nutritional:food_hint Per-item or per-tag healing-amount and application-phase overrides
nutritional:diet_tier Tier conditions, priority, attribute bundle, display info, enter/exit messages
nutritional:sustained_reward Streak threshold, qualifying tier, attribute bundle, loss conditions
nutritional:dimension_modifier Per-dimension yield and decay multipliers

Item membership uses tags (#nutritional:nutrient/<id>). Per-item scale overrides use a NeoForge DataMap (nutritional:nutrient_scales).

Commands

  • /nutritional get|set|add|subtract|reset <player> <nutrient> [<value>]
  • /nutritional reload
  • /nutritional-food — show nutrients on the held food

Advancements

Ten advancements under nutritional:diet/*:

  • Root + five "eat from each group" tasks.
  • varied_diet goal (eat from every group).
  • reach_nourished goal.
  • reach_gourmand challenge (200 XP).
  • earn_reward challenge (100 XP).

Two custom criterion triggers — nutritional:tier_reached and nutritional:reward_earned — are available for downstream datapacks to author their own advancement trees.

Integrations

  • JEI 19.21+ (optional) — every nutrient-mapped food gets an info-pane entry listing its nutrient categories and scales.

For mod developers

A separate nutritional-<version>-api.jar carries only the public surface (codecs, registry keys, attribute holders, mob effect holders, criterion triggers, InvertedNutrientIndex accessor). Compile against the api classifier, run against the full mod. The api jar is published to the BreakInBlocks Maven alongside the main artifact.

Performance

Hot-path tick handlers are wrapped with vanilla profiler labels (nutritional:decay, nutritional:evaluate.{effects,tier,reward}) so Spark and the F3 profiler attribute load correctly.

Compatibility

This is not a port of the 1.12 mod. This is a complete rewrite with no code reuse at all. the Java package moved from ca.wescook.nutrition to com.breakinblocks.nutritional. Any 1.12 mod that compiled against the legacy API will not link; it needs to be re-ported. The datapack namespace also changed: nutrition:*nutritional:*. Old 1.12 datapack content does not transfer; the modern system is JSON-driven and packs are expected to be re-authored against the new schemas.

The legacy 1.12 source tree is preserved on the 1.12 branch for historical reference only.

Credits

  • WesCook — original Nutrition author. The 1.12 mod's design (nutrient categories, threshold-driven effects, hunger-tied decay) provided the conceptual foundation that this rewrite builds on.
  • Original 1.12 contributors listed in the 1.12 branch's git history.