Mods / Freshness Overlay

Tags:
Food AI
Author:
ISzing
Side:
Client
Created:
Jul 10th at 9:30 PM
Last modified:
Jul 22nd at 5:53 PM
Downloads:
465
Latest release (for Vintage Story 1.22.3 - 1.22.4, potentially outdated):
freshnessoverlay_0.4.37.zip  1-click install

Shows freshness of food and hides.

Mod made with AI. Config F7

Added crook bars and more config to it.

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
0.4.37 freshnessoverlay
1.22.3 - 1.22.4
102 Jul 22nd at 5:53 PM freshnessoverlay_0.4.37.zip 1-click install

Only durability like bars in config for mr.NateDoesLife 
Z layer for durabilty bars work but it must have 200 to work on some items.

0.4.30 freshnessoverlay
1.22.3 - 1.22.4
26 Jul 22nd at 7:22 AM freshnessoverlay_0.4.30.zip 1-click install

Fast start works now and added curing/dry.

0.4.27 freshnessoverlay
1.22.3 - 1.22.4
30 Jul 21st at 12:54 PM Empty freshnessoverlay_0.4.27.zip 1-click install
0.4.25 freshnessoverlay
1.22.0 - 1.22.3
52 Jul 19th at 6:44 PM freshnessoverlay_0.4.25.zip 1-click install

Added crook bars. 

0.4.3 freshnessoverlay
1.22.0 - 1.22.3
100 Jul 12th at 7:18 AM freshnessoverlay_0.4.3.zip 1-click install

Added compatybility to More Hud Bars and config y

0.4.0 freshnessoverlay
1.22.0 - 1.22.3
65 Jul 11th at 6:04 PM freshnessoverlay_0.4.0.zip 1-click install

Now fully client

0.3.7 freshnessoverlay
1.22.0 - 1.22.3
20 Jul 11th at 4:54 PM Empty freshnessoverlay_0.3.7.zip 1-click install
0.1.3 freshnessoverlay
1.22.0 - 1.22.3
70 Jul 10th at 9:30 PM Empty freshnessoverlay_0.1.3.zip 1-click install

19 Comments (oldest first | newest first) (threaded | flat)

NateDoesLife, Jul 22nd at 4:21 PM

Is it possible to set this up so the entire background is not change but instead the food items use a similar setup to the durability bar tools have?

NateDoesLife, Jul 22nd at 5:27 PM (modified Jul 22nd at 5:27 PM)
@ISzing: Bro.... It is but it really needed?

No it was just asking if it was possible lol. I saw a lot of menu options in your screenshots and was just curious is all.

- Its your mod do as you wish, was in no way requesting or asking you to do anything was just curious if it was possible.

NateDoesLife, Jul 22nd at 5:56 PM
@ISzing: Okey it was not but it is now.

Cool! Thank you and I apologize if my question came off as a request, was not my intention I saw your menu options and was just trying to see if the option was already in the mod or not.

- Appricate you taking the time to add the feature though!

NateDoesLife, Jul 23rd at 4:33 AM
@ISzing: Okey it was not but it is now.

One thing of note with the durability bar setting,
image
When it gets too low the bar is hidden by the number and icon of the food as you can see in the lower 2 items of the screenshot, might be worth putting overtop of them if possible. Just a suggestion, love the feature regardless!

DinoYeOldy, Jul 21st at 11:25 PM

Would it be possible to to add drying and curing proccess? Like for oiled hides or bowstaves?

Livism, Jul 20th at 9:47 PM

Worked last for me in my mods with
Game 1.22.3
Mod 0.4.3

Game 1.22.3
Mod 0.4.25
Fails to work for me

Game 1.22.4
Mod 0.4.25

Error from the log
20.7.2026 23:38:39 [Error] Failed loading bitmap from data. Will default to an empty 1x1 bitmap.
20.7.2026 23:38:39 [Error] Exception: Failed to decode bitmap from data with error: ErrorInInput
   at Vintagestory.API.Common.BitmapExternal.Decode(ReadOnlySpan`1 buffer) in VintagestoryApi\Common\Texture\BitmapExternal.cs:line 144
   at Vintagestory.API.Common.BitmapExternal..ctor(Byte[] data, Int32 dataLength, ILogger logger) in VintagestoryApi\Common\Texture\BitmapExternal.cs:line 116
20.7.2026 23:38:39 [Error] [freshnessoverlay] An exception was thrown when trying to start the mod:
20.7.2026 23:38:39 [Error] [freshnessoverlay] Exception: Object reference not set to an instance of an object.
   at Vintagestory.Client.NoObf.TextureAtlasManager.AllocateTextureSpace(Int32 width, Int32 height, Int32& textureSubId, TextureAtlasPosition& texPos, AssetLocationAndSource loc) in VintagestoryLib\Client\Render\Atlas\TextureAtlasManager.cs:line 459
   at Vintagestory.Client.NoObf.TextureAtlasManager.InsertTexture(IBitmap bmp, Int32& textureSubId, TextureAtlasPosition& texPos, Single alphaTest) in VintagestoryLib\Client\Render\Atlas\TextureAtlasManager.cs:line 330
   at Vintagestory.Client.NoObf.TextureAtlasManager.InsertTexture(Byte[] bytes, Int32& textureSubId, TextureAtlasPosition& texPos, Single alphaTest) in VintagestoryLib\Client\Render\Atlas\TextureAtlasManager.cs:line 1047
   at FreshnessOverlay.FreshnessOverlayPatches.EnsureBlockWhiteTexture(ICoreClientAPI capi)
   at FreshnessOverlay.FreshnessOverlayPatches.CreateTextures(ICoreClientAPI capi, FreshnessOverlayConfig config)
   at FreshnessOverlay.FreshnessOverlayModSystem.StartClientSide(ICoreClientAPI capi)
   at Vintagestory.Common.ModLoader.TryRunModPhase(Mod mod, ModSystem system, ICoreAPI api, ModRunPhase phase) in VintagestoryLib\Common\API\ModLoader.cs:line 676
20.7.2026 23:38:39 [Error] Failed to start system FreshnessOverlay.FreshnessOverlayModSystem
Livism, Jul 21st at 9:06 PM (modified Jul 21st at 9:46 PM)
@ISzing: Try now.

I have a flax dough in my inventory

All
Game 1.22.3
Mod 0.4.27

Game 1.22.4
Mod 0.4.27

Game 1.22.5
Mod 0.4.27
Now changed to this

Spoiler!
21.7.2026 23:00:33 [Error] [freshnessoverlay] An exception was thrown when trying to start the mod:
21.7.2026 23:00:33 [Error] [freshnessoverlay] Exception: Object reference not set to an instance of an object.
   at Vintagestory.Client.NoObf.TextureAtlasManager.AllocateTextureSpace(Int32 width, Int32 height, Int32& textureSubId, TextureAtlasPosition& texPos, AssetLocationAndSource loc) in VintagestoryLib\Client\Render\Atlas\TextureAtlasManager.cs:line 459
   at Vintagestory.Client.NoObf.TextureAtlasManager.InsertTexture(IBitmap bmp, Int32& textureSubId, TextureAtlasPosition& texPos, Single alphaTest) in VintagestoryLib\Client\Render\Atlas\TextureAtlasManager.cs:line 330
   at Vintagestory.Client.NoObf.TextureAtlasManager.InsertTexture(Byte[] bytes, Int32& textureSubId, TextureAtlasPosition& texPos, Single alphaTest) in VintagestoryLib\Client\Render\Atlas\TextureAtlasManager.cs:line 1047
   at FreshnessOverlay.FreshnessOverlayPatches.EnsureBlockWhiteTexture(ICoreClientAPI capi)
   at FreshnessOverlay.FreshnessOverlayPatches.CreateTextures(ICoreClientAPI capi, FreshnessOverlayConfig config)
   at FreshnessOverlay.FreshnessOverlayModSystem.StartClientSide(ICoreClientAPI capi)
   at Vintagestory.Common.ModLoader.TryRunModPhase(Mod mod, ModSystem system, ICoreAPI api, ModRunPhase phase) in VintagestoryLib\Common\API\ModLoader.cs:line 676
21.7.2026 23:00:33 [Error] Failed to start system FreshnessOverlay.FreshnessOverlayModSystem

Still client soft crash

Spoiler!
21.7.2026 23:00:49 [Fatal] Caught unhandled exception in BlockTextureCollection thread. Exiting game.
21.7.2026 23:00:49 [Error] Exception: Index was outside the bounds of the array.
   at Vintagestory.Client.NoObf.TextureAtlasManager.LoadBitmaps(BakedBitmap[] bitmaps) in VintagestoryLib\Client\Render\Atlas\TextureAtlasManager.cs:line 548
   at Vintagestory.Client.NoObf.TextureAtlasManager.PopulateTextureAtlassesFromTextures() in VintagestoryLib\Client\Render\Atlas\TextureAtlasManager.cs:line 505
   at Vintagestory.Client.NoObf.ClientSystemStartup.loadBlockAtlasManagerAsync(IList`1 blocks) in VintagestoryLib\Client\Systems\Startup.cs:line 565
21.7.2026 23:02:30 [Notification] Destroying game session, waiting up to 200ms for client threads to exit
Livism, Jul 23rd at 3:08 PM (modified Jul 23rd at 3:08 PM)
@ISzing: It should works now. This crash was bc you have "Slightly faster startup time" option turn on but now it should work.

Sadly i have to disappoint i don't have the experimental option on. But it works now.

Fefa, Jul 11th at 7:59 PM

love the mod, but the last two updates disable More Hud Bars features, no idea why :(. Is there a possibility to make it compatible since the first release was not affecting the bars from More Hud Bars. This mod should be vanilla lol

JokoJose, Jul 11th at 5:01 PM

Love the mod! is so useful to track what to cook first :)