
Mods / Smooth Digestion
Author: Misteyes
Side: Server
Created: Mar 24th at 5:25 AM
Last modified: Mar 24th at 10:13 PM
Downloads: 230
Follow Unfollow 26
Latest release (for Vintage Story 1.20.4 and 1.20.5 - 1.20.6, outdated):
smoothdigestion_1.0.1.zip
1-click install
This mod is not actively supported. It should continue to limp along for a while, but consider installing Hunger Patcher instead.
---
- Fixes three bugs that caused hunger to pause or be consumed unpredictably:
- Eating a flax grain after taking starvation damage pauses hunger for a whole day · Issue #5516 · anegostudios/VintageStory-Issues
- Server hunger modifiers are applied twice. · Issue #5518 · anegostudios/VintageStory-Issues
- Sprinting consumes less satiety while damaged than at full health · Issue #5519 · anegostudios/VintageStory-Issues
- Adds a server command to set a player's maximum satiety (/sd setmaxsatiety <player> <value>)
- Note: Maximum satiety is tied to maximum nutrition - so setting maximum satiety to 3000 also increases the nutrition levels to 3000. Nutrition consumption scales with current nutrition value, so a higher maximum satiety makes it harder to maintain high nutrition.
- Adds additional configuration values that allow server admins to tweak the hunger system (for example, changing the amount that sprinting increases hunger, or how quickly nutrition is gained/used relative to satiety).
Under default settings, this mod applies bug fixes and nothing else. However, those bugs were causing people to require significantly less food, so it is likely that an unconfigured installation will result in everyone suddenly being hungry all the time. I highly recommend changing the parameters of the system to mitigate this. These values can be changed using `/sd configf <value>` for floats and `/sd configb <value>` for booleans. Changes take effect on the next hunger tick (within 10 seconds).
The configurable parameters are:
- FixSensuBean (bool, default true): Fixes issue 5516
- FixWoundedSprint (bool, default true): Fixes issue 5519
- StandingStillConsumption (float, default 0.25): Satiety consumption multiplier while idle (standing still and taking no actions)
- NonSprintingConsumption (float, default 0.96): Satiety consumption multiplier while active, but not sprinting.
- SprintingConsumption (float, default 3.36f): Satiety consumption multiplier while sprinting.
- ConsumeSatietyOverTimeRate (float, default 1.0f): Multiplier on baseline satiety consumption (e.g. not applied to health regeneration or combat)
- ConsumeNutritionRate (float, default 0.25f): How much of satiety consumption applies to each nutrition bar. Increasing this makes it harder for people to maintain high nutrition.
- ConsumeSatietyRate (float, default 1.0f): How much satiety consumption applies to the satiety bar (not affecting the nutrition bar).
- GainNutritionRate (float, default 0.4f): How much of a consumed food's satiety value is added to the nutrition bar.
- GainSatietyRate (float, default 1.0f): How much of a consumed food's value is added to the satiety bar.
Source code for the modified hunger system is included in the v.1.0.0 download, under the "src" folder.
Mod Version | For Game version | Downloads | Released | Changelog | Download | 1-click mod install* |
---|---|---|---|---|---|---|
1.0.1 | 186 | Mar 24th at 10:13 PM | smoothdigestion_1.0.1.zip | 1-click install | ||
Recompiled a version of the mod which does not include source code, since the game was reacting to the presence of the source. | ||||||
1.0.0 | 44 | Mar 24th at 5:26 AM | smoothdigestion_1.0.0.zip | 1-click install | ||
Initial release |
ChimMAG - The hunger system hasn't changed, so this mod is still necessary (but also still works, though you may get a version warning or something). I don't play VS anymore, so I haven't been keeping this mod up to date. However, someone else has stepped up to fix the same bugs. If Smooth Digestion isn't working for your needs, consider Hunger Patcher.
Will there be an update to the new version? Or have the developers fixed all these bugs in the new versions of the game?
This mod replaces the built-in hunger system with a fixed copy, so unfortunately I expect it will be incompatible with most things that mess with hunger.
I'm not good enough with Harmony transpilers to make a version that patches the hunger system in-place, but it's theoretically doable. If someone wants to give it a try, the full source code for this mod is available as part of the 1.0.0 version's download file.
just fyi this is partialy incomp with hydrate or die. it breaks its food mechanic
he updated to fix the incomp parts
I've now played with this for a week, and I'm so pleased with it. I've not had a single instance of my food bar getting stuck since!
I've also set the maximum satiety to 2000, up from 1500. Just a little bit more leeway to not constantly have to babysit the food bar, while still requiring the same food intake over time. Balanced by making it a little bit harder to maintain nutrition levels. Still quite doable though.
In using that feature, I noticed that the food bar would on rare occasions reset to the default 1500 for a few seconds before "remembering" the change and going back up. For example when waking up from the bed. It's only a visual thing, and you probably can't do much about it, but I wanted to bring it up just in case.
Thank you, the errors are gone now. :)
Should be fixed in 1.0.1. Let me know if it still repros.
Those look like compile errors, not runtime errors, which is unexpected. Most likely this is caused by packing the source code into the mod archive. I will post a new version clean of source code and move the source code to a separate download.
I just gave this a try with 1.20.4. Installed via 1-Click Install feature, then loaded into an existing creative superflat world to generate the config file. I got some hefty errors in the log. Is there perhaps a dependency that's not mentioned in the description?
24.3.2025 10:31:32 [Error] [smoothdigestion] CS0246: The type or namespace name 'HarmonyLib' could not be found (are you missing a using directive or an assembly reference?)
24.3.2025 10:31:32 [Error] [smoothdigestion] CS0246: The type or namespace name 'HarmonyLib' could not be found (are you missing a using directive or an assembly reference?)
24.3.2025 10:31:32 [Error] [smoothdigestion] CS0246: The type or namespace name 'HarmonyLib' could not be found (are you missing a using directive or an assembly reference?)
24.3.2025 10:31:32 [Error] [smoothdigestion] CS1061: 'Type' does not contain a definition for 'Field' and no accessible extension method 'Field' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)
24.3.2025 10:31:32 [Error] [smoothdigestion] CS0012: The type 'List<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Collections, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
24.3.2025 10:31:32 [Error] [smoothdigestion] CS1061: 'PlayerUidName[]' does not contain a definition for 'Select' and no accessible extension method 'Select' accepting a first argument of type 'PlayerUidName[]' could be found (are you missing a using directive or an assembly reference?)
24.3.2025 10:31:32 [Error] [smoothdigestion] CS0012: The type 'List<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Collections, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
24.3.2025 10:31:32 [Error] [smoothdigestion] CS1061: 'IServerPlayer[]' does not contain a definition for 'FirstOrDefault' and no accessible extension method 'FirstOrDefault' accepting a first argument of type 'IServerPlayer[]' could be found (are you missing a using directive or an assembly reference?)
24.3.2025 10:31:32 [Error] [smoothdigestion] CS0012: The type 'List<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Collections, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
24.3.2025 10:31:32 [Error] [smoothdigestion] CS1061: 'Type' does not contain a definition for 'Field' and no accessible extension method 'Field' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?)
24.3.2025 10:31:32 [Error] [smoothdigestion] CS0012: The type 'List<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Collections, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
24.3.2025 10:31:32 [Error] [smoothdigestion] CS1503: Argument 1: cannot convert from 'method group' to 'scoped System.ReadOnlySpan'
24.3.2025 10:31:32 [Error] [smoothdigestion] CS0012: The type 'List<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Collections, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Awesome! These hunger bugs may be subtle, but once you notice them they become very annoying.