Mods / Smooth Digestion

Tags: #Food
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.

 

---

 

 

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
1.20.5 - 1.20.6
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
1.20.5 - 1.20.6
44 Mar 24th at 5:26 AM smoothdigestion_1.0.0.zip 1-click install

Initial release


10 Comments (oldest first | newest first)

💬 Misteyes , Sep 21st at 6:57 PM

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.

💬 ChimMAG, Aug 28th at 7:16 AM

Will there be an update to the new version? Or have the developers fixed all these bugs in the new versions of the game?

💬 Misteyes , Apr 9th at 7:59 PM

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.

💬 Sidfu, Apr 2nd at 1:14 AM

just fyi this is  partialy incomp with hydrate or die. it breaks its food mechanic

he updated to fix the incomp parts

 

💬 Streetwind, Apr 1st at 3:44 PM

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.

💬 Streetwind, Mar 25th at 4:00 PM

Thank you, the errors are gone now. :)

💬 Misteyes , Mar 24th at 10:17 PM

Should be fixed in 1.0.1. Let me know if it still repros.

💬 Misteyes , Mar 24th at 10:10 PM

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.

💬 Streetwind, Mar 24th at 9:39 AM

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'.

💬 Streetwind, Mar 24th at 9:13 AM

Awesome! These hunger bugs may be subtle, but once you notice them they become very annoying.

 (edit comment delete)
Основной веб-сайт | Почтовый сервер | FTP сервер | Административная панель | API интерфейс | Content Delivery Network | Статические файлы | Ресурсы сайта | Изображения | Файловое хранилище | Блог | Интернет-магазин | Техническая поддержка | Справочная система | Документация | Форум | Новости | Загрузки | Демонстрация | Тестовая среда | Приложение | Медиа контент | Разработка | Промежуточная среда | Бета версия | Безопасная зона | Вход в систему | Панель управления | Портал | Система управления контентом