Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details

I got sick of Minecraft's food system, so I built Nourished a nutrition mod for NeoForge 1.21.1 that tracks five food groups, rewards a varied diet, and applies balance buffs and neglect penalties when you neglect them.
Eat a balanced diet, watch your bars on the HUD, open the diet screen for the full picture, and tune every module for your server or modpack.
πΎ Interfaces
Mini HUD

Press your configured Keybind in-game to enter edit mode. Drag the HUD anywhere, resize it, and anchor it to any corner. Zero-value bars hide automatically so the HUD never feels cluttered.
Five color-coded bars sit on screen while you play, so you always know where you stand without opening another screen.
Old UI

The Old UI is Nourished's legacy interface system used by earlier versions of the mod. It provides the original HUD and Diet Screen interaction and layout functionality from before the introduction of the modular dynamic UI system.
The system relies on the original interaction-based controls for configuring UI elements and is retained primarily for compatibility with older implementations.
Features:
- Legacy Nourished HUD interface
- Original Diet Screen layout system
- Interaction-based UI controls
- Original UI positioning and sizing functionality
- Compatibility with older Nourished implementations
The Old UI is maintained as a legacy system and is gradually being replaced by the more flexible Dynamic UI framework.
Press your configured Keybind in-game to enter edit mode. Drag elements anywhere and resize them as needed.
Dynamic UI

The image above shows the new UI introduced in 0.2.7-beta.1.
Dynamic UI is Nourished's modular interface system, designed to make the HUD and diet screen highly configurable without relying on hardcoded layouts.
UI elements are organized into independent modules that can be customized individually, including their position, size, colors, and other visual properties. This allows the interface to be adjusted to fit different screen resolutions, UI layouts, and player preferences.
The system is designed to be extensible, making it possible to add new UI modules and customization options without rebuilding the entire interface.
Features:
- Modular UI components
- Movable UI elements
- Adjustable module sizes
- Configurable colors
- Independent module configuration
- Reusable UI architecture
- Designed for future customization options
- Used by both the Nourished HUD and Diet Screen
Dynamic UI replaces Nourished's older interaction-based UI controls with a proper modular editing system, providing a cleaner foundation for expanding UI customization over time.
πΈ Screenshots were taken with the PureBDCraft resource pack. The UI works with vanilla textures, but will appear in the default Minecraft style.
Diet Screen
| What you see | What it means |
|---|---|
| Trend arrows | Whether each group is rising or falling |
| Balance score | How evenly distributed your nutrition is |
| Active effects | What your current diet is doing to you |
| Calorie tracking | Daily calorie intake at a glance |
| Recently eaten | What you've eaten recently |
| Neglected categories | What you should probably eat next |
π Milestones & Achievements
Eating consistently pays off over time. Nourished tracks cumulative intake for each food group and grants milestone rewards as you build healthy habits.

Each food group has its own three-tier progression:
- Beginner
- Journeyman
- Master
There is also a hidden Perfectly Balanced milestone for maintaining all five food groups at once.
Milestones grant temporary buffs and unlock entries in your Advancements tab.
Milestone goals, reward effects, and durations are fully configurable. Modpack authors can also register entirely custom milestones through datapacks.
β€οΈ What You Gain
When all five food groups are above 75%, you receive:
- Health Boost I: passively while balanced
- Regeneration I: passively while balanced
Let any single group drop below 25%, and a neglect penalty kicks in:
| Group | Neglect Penalty |
|---|---|
| πΎ Grains | Weakness I |
| π₯¦ Vegetables | Slowness I |
| π₯© Proteins | Mining Fatigue I |
| π Fruits | Unluck I |
| π₯ Dairy | β |
Dairy has no penalty effect by default. It is still tracked and contributes to your overall balance score.
This behavior is configurable, and a Sugars group is planned for a future update.
π Activity-Driven Nutrients
At the moment, the Activity and Calorie HUD screens may overlap when you first install the new version. You can easily adjust their positions using the keybind.
The next release will be a follow-up focused on further UI improvements.
Your body doesn't just burn energy from being hungry; it burns energy from doing things now.
Nourished tracks your actual activity and factors it into your nutrient needs.
Activity Costs
- Sprinting & swimming drain nutrients faster the longer you keep them up.
- Mining costs a small amount of nutrients per block broken.
- Combat costs nutrients per kill.
- Starvation applies a one-time penalty when a nutrient drops into a critical range.
Every activity module is independently toggleable. Turn off combat costs, disable starvation penalties, or run the entire system; it's up to you.
Each module's cost and HUD color are configurable.
Everything is backed by real per-player tracking:
- Distance sprinted
- Distance swum
- Blocks mined
- Kills
- Starvation events
Activity data is recorded day-by-day rather than simply estimated.
Activity Log HUD
The Activity Log HUD is a draggable and resizable overlay showing your recent activity at a glance.
Each statistic includes a live bar relative to your own personal best.
Milestones can also be set on activity trackers through datapacks or KubeJS, allowing modpack authors to reward goals such as the following:
- Sprint 10,000 blocks
- Swim 5,000 blocks
- Mine 10,000 blocks
- Land 500 kills
This option can be turned off in the configs.
π₯ Calories
Calories are the backbone of Nourished's nutrition system.
Every food you eat adds to or subtracts from your daily calorie total, and staying within your calorie goal matters alongside hitting your nutrient targets.
Live Tracking
Your calorie total updates in real time and persists across sessions, with complete history retained for previous days.
Calorie HUD Panel
A compact, draggable overlay displays the following:
- Today
- Yesterday
- Previous days
Each day is shown as a percentage of your calorie goal, with the display changing once you go over your target.
Eat-Food Notifications
Eating something that changes your calorie total now produces a quick on-screen notification showing the food's name and calorie change.
You can see exactly what just happened without opening a menu.
Diet Screen Integration
The diet screen ties everything together with:
- Full calorie breakdown
- Recent meals
- Daily calorie balance
- Foods you may want to eat to round out your diet
Every panel can be independently repositioned, resized, and scaled.
Like everything else in Nourished, calorie goals and thresholds are configurable, and the system is datapack- and KubeJS-friendly for modpack authors who want to tune it further. This option can also be turned off in the configs.
π½οΈ Variety Is Always Rewarded
Eating the same food repeatedly becomes less effective over time, so rotating what you eat always pays off.
Nourished uses a memory system that naturally fades over time. Foods you've avoided recover their full nutritional value as your food memory fades.
The result is simple:
The more varied your diet, the more effective it becomes.
π½οΈ Eating at Full Saturation
Vanilla Minecraft prevents you from eating when your hunger and saturation are already full.
Nourished allows you to continue eating for nutritional purposes even when your saturation bar is full.
Light foods such as berries and snacks can be eaten for their nutrients without restoring saturation, while heavier meals follow vanilla eating rules by default.
Both behaviors are configurable through:
enableBlockHeavySourcesenableBlockLightSource
Server administrators have full control over how these eating restrictions behave.
π₯© Raw Food & Gut Health
Eating raw or undercooked food has consequences.
Nourished tracks a gut health value for every player. Gut health degrades when you eat raw food and recovers over time through cooked food and dietary variety.
Raw Food Tiers
Raw foods are classified into four tiers:
| Tier | Effect |
|---|---|
| Fine | No penalty |
| Mild | Minor debuff, short duration |
| Medium | Moderate debuff, longer duration |
| Severe | Strong debuff, extended duration |
Eating the same raw food repeatedly within its memory window increases your sensitivity to it. The more you repeatedly eat the same raw food, the worse the penalty becomes.
Gut health recovers passively and recovers faster when you:
- Eat cooked food
- Maintain dietary diversity
Resistance can also be built over time, reducing the scale of raw-food penalties.
Everything is configurable, including:
- Raw-food tiers
- Effect durations
- Nutrient penalties
- Recovery rates
- Resistance
- Module behavior
Configuration is handled through:
config/nourished/raw_food.json
π€ Mod Compatibility
Nourished works with modded food items that use vanilla FoodProperties.
You do not need to write integration code for basic nutrition tracking.
Bundled compatibility data helps foods from popular farming and cooking mods appear on your nutrient bars out of the box.
For edge cases, server owners can adjust behavior through configuration files and tags.
| Mod | Status |
|---|---|
| Farmer's Delight | β Supported |
| Pam's HarvestCraft 2 | β Supported |
| Create: Food | β Supported |
| Croptopia | β Supported |
| Farmer's Croptopia | β Supported |
| Croptopia Delight | β Supported |
| Farm & Charm | β Supported |
| Ender's Delight | β Supported |
| L_Ender's Delight | β Supported |
| Ars Delight | β Supported |
| Autochef's Delight | β Supported |
| KubeJS | β Scripting hooks |
| JEI / REI / EMI | β Tooltips in recipe viewers |
| Other mods with edible food items | β Works with standard food items |
π§ Configurable for Your Server
Everything ships with sensible defaults.
Server owners and modpack authors can tune Nourished without touching Java.
Module Controls
- Toggle individual modules on or off
- Enable or disable the HUD
- Configure nutrient decay
- Configure activity-driven costs
- Enable or disable effects
- Enable or disable gut health
Nutrient Configuration
- Adjust decay rates
- Adjust thresholds
- Configure critical values
- Configure low and excess thresholds
Effects
Add, remove, or replace effects through:
config/nourished/effects.json
Eating Rules
Configure:
enableBlockHeavySourcesenableBlockLightSource
Data & Overrides
Customize:
- Food values
- Food overrides
- Nutrient colors
- Scanner specifications
- Compatibility settings
- Presets
- Module locks
All configuration lives under:
config/nourished/
Config Sharing
Save and share complete configuration snapshots using a single share code.
π The Food Scanner
Use:
/nourished scan_analysis
to analyze all loaded food items and generate classification reports under the following:
config/nourished/scanner_analysis/
Scanner Output
The scanner produces:
multi_value_recommendations.json: foods confidently assigned to one or more nutrient groupsunassigned_sources.txt: foods that could not be classified automatically and need manual reviewscanner_metrics.txt: summary statistics across the full item registry
Recommended tag entries can be copied into your datapack to make classifications permanent.
Unassigned items can be manually tagged using the example below.
π Data & Overrides
Most customization happens inside:
config/nourished/
after the first launch.
This includes:
- Effects
- Food values
- Food overrides
- Colors
- Presets
- Module locks
- Scanner configuration
- Compatibility settings
Nourished also ships bundled defaults under:
data/nourished/
These include nutrient tags, compatibility entries, and presets.
Advanced pack authors can override supported data through datapacks where applicable. Configuration files remain the primary method for server-side tuning.
The in-game food scanner can help inspect and assign foods in singleplayer and write generated tag files into the world's datapack folder for manual review.
Example: Adding a Food to a Nutrient Tag
Create the following file inside your datapack:
your_datapack/
βββ data/
βββ nourished/
βββ tags/
βββ item/
βββ nutrients/
βββ vegetables.json
{
"replace": false,
"values": [
{
"id": "pamhc2foodextended:honeyglazedcarrotsitem",
"required": false
}
]
}
"replace": false means your entries are merged with Nourished's defaults rather than replacing them.
π KubeJS Support
Nourished provides optional KubeJS integration for modpack authors.
KubeJS must be installed separately.
Scripts go in:
kubejs/server_scripts/
kubejs/startup_scripts/
KubeJS support is split across two layers:
- MarieLib provides generic value-tracking events through
MarieEvents.*. - Nourished provides nutrition-specific aliases through
NourishedEvents.*.
Server Scripts: Nutrition Events
NourishedEvents.nutrientChanged(event => {
if (event.nutrientKey === 'proteins' && event.newValue < 0.25) {
event.player.tell('Eat some protein!')
}
})
NourishedEvents.nutrientModifier(event => {
if (event.nutrientKey === 'vegetables') {
event.amount *= 2
}
})
NourishedEvents.foodEaten(event => {
event.nutrientDeltas.forEach((value, key) => {
console.log(key + ': ' + value)
})
})
Also available:
nutrientCriticalnutrientExcessrawFoodPenaltygutHealthChanged
Important:
sourceConsumedis a generic MarieLib event and does not exposenutrientKeyornewValue. UsenutrientChangedwhen you need nutrition-specific information.
Server Scripts: Generic MarieLib Events
MarieEvents.valueChanged(event => {
console.log(event.playerId + ' ' + event.valueKey + ': ' + event.newValue)
})
MarieEvents.valueDeltaModifier(event => {
if (event.valueKey === 'proteins') {
event.amount *= 1.5
}
})
Also available:
valueCriticalvalueExcesssourceConsumeddecayTickplayerSynced
Startup Scripts: Register Custom Nutrients
NourishedAPI.registerNutrient({
id: 'omega3',
displayName: 'Omega-3',
color: 0x4AA3FF,
decayRate: 0.0012,
critical: 0.12,
low: 0.30,
excess: 0.90
})
See API.md on GitHub for the full event and binding reference.
βοΈ Requirements
| Requirement | Version |
|---|---|
| Minecraft | 1.21.1 |
| NeoForge | 21.1.x |
| Marie's Lib | v0.1.0-beta.4+ |
| Cloth Config | Required at runtime |
| Patchouli | Optional β in-game guide |
| Java | 21 |
Important: Marie's Lib is now a required dependency. See the dependency note above for details.
π οΈ Support & Feedback
Found a bug, have a suggestion, or need help?
- GitHub Issues: report bugs and feature requests
- Discord: support and development updates
Please include logs, screenshots, or reproduction steps when reporting an issue.
π License
MIT License
Nourished is free to use in modpacks, forks, and addons.


