FullBelly
All forms of movement now consume hunger, making food a fully utilized resource and turning every action into a meaningful part of survival.
FullBelly
FullBelly - Comprehensive Action Hunger System
Introduction
FullBelly is a Minecraft NeoForge mod (1.21.1) that adds a comprehensive action-based hunger consumption system. The mod tracks various player behaviors and automatically deducts corresponding hunger, making survival mode more challenging.
---
Features
- Server-side Processing: Tracks 24 different types of player behaviors - Server-side Processing: Based on vanilla exhaustion mechanism, consistent with native behaviors like jumping - Server-side Processing: Console outputs detailed consumption information (requires debug logging enabled) - Server-side Processing: Executes only on server side, no impact on client performance
---
Action Types & Consumption Values
Movement (8 types)
| Action | Base Cost | Description | |--------|-----------|-------------| | 🚶 Walking | 0.01/tick | Ground movement | | 🏃 Sprinting | 0.1/tick | Sprinting (vanilla standard) | | 🕵️ Sneaking | 0.01/tick | Crouching movement | | 🏊 Swimming | 0.015/tick | Water movement (vanilla standard) | | 🤿 Underwater Swimming | 0.02/tick | Holding breath (higher cost) | | 🧗 Climbing | 0.05/tick | Ladders/vines | | 🪽 Elytra Flight | 0.08/tick | Gliding | | 🐴 Vehicle Riding | 0.01/tick | Horses/boats/etc. |
Instant Actions (3 types)
| Action | Base Cost | Description | |--------|-----------|-------------| | ⬆️ Jumping | 0.05/time | Takeoff (vanilla standard) | | ⚔️ Melee Attack | 0.01/time | Hit entity | | 💥 Critical Hit | 0.01/time | Falling critical hit |
Tool Behaviors (4 types)
| Action | Base Cost | Description | |--------|-----------|-------------| | ⛏️ Mining | 0.005/block | Breaking blocks (lowest cost) | | 📦 Placing | 0.01/time | Placing blocks | | 🎣 Fishing Cast | 0.01/time | Casting fishing rod | | 🎣 Fishing Reel | 0.01/time | Reeling in |
Combat Behaviors (8 types)
| Action | Base Cost | Description | |--------|-----------|-------------| | 💔 Damage Taken | 0.01/time | Any damage source | | 🛡️ Block Success | 0.01/time | Shield successful block | | 🛡️ Shield Holding | 0.01/tick | Continuous shield holding | | 🏹 Bow Charging | 0.01/tick | Bow charging | | 🏹 Bow Shot | 0.01/time | Bow firing | | 🔫 Crossbow Load | 0.01/tick | Crossbow loading | | 🔫 Crossbow Fire | 0.01/time | Crossbow firing | | 🔱 Trident Charge | 0.015/tick | Trident charging | | 🔱 Trident Throw | 0.03/time | Trident throwing |
Other (1 type)
| Action | Base Cost | Description | |--------|-----------|-------------| | 💥 Fall Impact | 0.01/time | Landing from height |
---
Usage Guide
Installation
1. Ensure NeoForge 21.1.227+ is installed (Minecraft 1.21.1) 2. Place `fullbelly-1.0.1.jar` into `.minecraft/mods` folder 3. Launch the game
Debug Mode
The mod includes a built-in debug mode that displays detailed exhaustion information in the chat box.
In-game Commands: ```text /fullbelly debug - Check current debug mode status /fullbelly debug true - Enable debug mode /fullbelly debug false - Disable debug mode ```
When enabled, you'll see messages like: ``` [FullBelly] 行走: -0.010 exhaustion | 饱食度: 20→20, 饱和度: 5.00→4.99 [FullBelly] 奔跑: -0.100 exhaustion | 饱食度: 20→19, 饱和度: 4.89→4.79 [FullBelly] 三叉戟投掷: -0.030 exhaustion | 饱食度: 19→19, 饱和度: 4.76→4.73 ```
Configuration File: You can also edit `.minecraft/config/fullbelly-common.toml`: ```toml debug_mode = true ```
Note: Debug mode is disabled by default for optimal performance.
Adjust Difficulty
Modify base values in `FatigueProcessor.java`: - Lower values = Easy mode - Higher values = Hard mode
---
Technical Implementation
Core Components
- PlayerMixin: Enum defining 24 action types - PlayerMixin: Core processor, applies exhaustion to FoodData - PlayerMixin: Detects player movement using position tracking - PlayerMixin: Captures block break/place events - PlayerMixin: Detects various behaviors through Mixin injection
How It Works
1. Detect player behaviors through Mixin and event system 2. Call `FatigueProcessor.dispatch()` to process consumption 3. Apply consumption using vanilla `FoodData.addExhaustion()` method 4. When exhaustion accumulates to 4.0, automatically deducts 1 food point
---
Compatibility
- ✅ NeoForge 21.1.229 - ✅ Minecraft 1.21.1 - ✅ Runs on both server/client - ✅ No conflicts with other mods
---
License
This project is open-sourced under the MIT License.
---
Last Updated: 1.0.1 Last Updated: 1.21.1 Last Updated: 21.1.227+ Last Updated: 2026-05-14
---
Changelog
See CHANGELOG.md for detailed version history.