FullBelly

All forms of movement now consume hunger, making food a fully utilized resource and turning every action into a meaningful part of survival.

10

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.

ADS