跳到正文

HungerDial

作者:Navrelis

Makes vanilla hunger drain slower or faster by one config multiplier applied to every exhaustion source: sprinting, mining, combat, damage, and natural regen. Default 35% slower. Optional on clients.

收藏

介绍

中文介绍正在准备中,下面暂时显示原文。

What it does

Vanilla tracks a hidden "exhaustion" counter per player. Sprinting, jumping, mining, attacking,
swimming, taking damage, and regenerating health all add to it; every 4.0 points of exhaustion
costs one saturation point, and once saturation runs out, one half-shank of food.

Hunger Dial multiplies every amount added to that counter by one number you control. In Minecraft
1.21.1, every source of player exhaustion funnels through a single method:

  • Player#causeFoodExhaustion(float) — the entry point vanilla and other mods use for movement,
    combat, mining and damage — forwards straight to FoodData#addExhaustion(float).
  • FoodData#tick(Player) charges the two natural-regeneration costs (saturated healing and the
    slow 80-tick heal) by calling addExhaustion as well.

Hunger Dial scales the argument of FoodData#addExhaustion(float) right at the start of that
method, so every source is scaled exactly once and nothing is scaled twice — including
exhaustion added by other mods
, as long as they go through the vanilla methods above. Zero,
negative and non-finite amounts pass through untouched.

What it does not change:

  • Food items — nutrition and saturation values stay exactly as the pack defines them.
  • The vanilla exhaustion cap (40.0) and the 4.0-per-food-point conversion.
  • Anything a mod does by writing FoodData#setExhaustion(float) directly instead of adding to it
    (see Known limitations below).

Why

Vanilla’s hunger pace is a fixed difficulty knob every player experiences the same way. Some
modpacks make survival much more demanding — more traveling, more combat, more building — without
touching food supply to match, and hunger ends up feeling like a chore rather than a challenge.
Hunger Dial gives the pack (or the server operator) one number to retune that pace, in either
direction, without reworking every food item’s values by hand.

Example values

Multiplier Effect
0.0 never hungry — exhaustion never accumulates
0.5 hunger drains at half speed
0.65 35% less hunger (the shipped default)
1.0 vanilla, unchanged
2.0 hunger drains twice as fast

The allowed range is 0.0–10.0.

Configuration

config/hungerdial.json, created with defaults the first time the mod starts:

{
  "_comment": "1.0 = vanilla, 0.65 = 35% less hunger, 0.5 = half, 0.0 = never hungry, 2.0 = double; range 0.0-10.0; change in game with /hungerdial set <value>",
  "exhaustionMultiplier": 0.65
}

exhaustionMultiplier must be a finite number between 0.0 and 10.0. A value out of range, a
wrong type, or malformed JSON produces exactly one warning in the server log, falls back to
0.65, and leaves the file on disk untouched — a hand-edit is never silently overwritten by a
typo elsewhere in the file. The effective multiplier is also logged once at startup, e.g.
Exhaustion multiplier 0.65 (35% less hunger).

Commands

/hungerdial, permission level 2 (operators), and it also works from the server console.

Command Effect
/hungerdial show the current multiplier
/hungerdial get same
/hungerdial set <0.0-10.0> apply immediately and write it to the config file
/hungerdial reload re-read the config file from disk

set keeps whatever _comment the file already had. All feedback is plain literal text rather
than translation keys, so a client without the mod installed still reads the response correctly
instead of seeing a raw, unresolved translation key.

Server / client requirements

  • Required on the server, and in singleplayer (which runs its own integrated server).
  • Optional on clients — Hunger Dial registers no packets, no registries and no client-side
    code, so a vanilla or unmodded client can join a server running it and will simply see the
    correct, already-scaled food bar.
  • Requires Fabric API (used only for command registration), Fabric Loader >=0.19.1, and
    Java 21.

Compatibility

  • Works with AppleSkin. AppleSkin reads the real, live exhaustion and saturation values from
    FoodData; since Hunger Dial changes those real values rather than only how they’re displayed,
    AppleSkin’s overlay shows accurate, already-scaled numbers with no special integration needed.
  • Scales other mods’ exhaustion too, as long as they add exhaustion the vanilla way — through
    Player#causeFoodExhaustion(float) or FoodData#addExhaustion(float) directly. A mod’s custom
    action (e.g. a special ability that costs hunger) is scaled exactly like a vanilla one would be.
  • Known limitation: a mod that calls FoodData#setExhaustion(float) directly — replacing the
    exhaustion value outright instead of adding to it — bypasses Hunger Dial’s scaling entirely,
    since nothing is added through the scaled method in that case.

FAQ

Does it change food or saturation values?
No. Item nutrition and saturation are untouched; only the rate exhaustion accumulates at is
scaled.

Do players need it installed?
No. It’s optional on clients — only the server (or singleplayer world) needs it, and unmodded
clients can join normally.

Can I make hunger harder instead of easier?
Yes. Set exhaustionMultiplier above 1.0 (up to 10.0) — 2.0 doubles the drain, for example.

Can I change the multiplier without restarting the server?
Yes. /hungerdial set <value> applies instantly and saves to the config file; /hungerdial reload re-reads the file from disk if you’d rather hand-edit it.

Will editing the config file by hand ever get overwritten?
Only if the value you write is invalid (wrong type, malformed JSON, or outside 0.0–10.0). A
valid hand-edit picked up by /hungerdial reload (or the next server start) is respected as-is.

常见问题

HungerDial 支持哪些 Minecraft 版本?

HungerDial 支持 Minecraft Java 版 1.21.1,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。

HungerDial 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

Navrelis 的其他作品

查看全部 →