Mods / Handy Daub

Tags: #QoL #Simplification #Utility
Author: LivCi
Side: Server
Created: Jun 27th at 5:53 PM
Last modified: Oct 18th at 2:58 PM
Downloads: 544
Follow Unfollow 29

Recommended download (for Vintage Story 1.21.0 and 1.21.5):
handydaub_1.0.2.zip  1-click install


A very simple code mod that looks at your inventory and swaps out daub to your hotbar as you are about to run out. It works for both creating the daub and wattle blocks and filling them with more daub to make them full!

 

It's always the same tedious process: place daub on wattle fences like 6 times, open your inventory, take the next stack to your hotbar, run out again after 6 blocks, rinse and repeat..

 

This mod should work with 1.21 when it comes out too! The amount of daub required to create a daub block goes from 10 to 6 starting with version 1.21.0. Read the changelog and thought this through well! :D

 

Compatible mods:

    • Material Needs - Nephelangelo: it patches the new daub colors directly into the vanilla daub item JSON, so it doesn't need special patching from my mod :D

 

For any issues, you can contact me over on the Vintage Story discord server!

 

 

Feel free to check out my other mods too!

  1. Snowshoes: Travel winter terrain without the slowdown of deep snow
  2. Aluminum from bauxite: Adds aluminum metal to the game, as well as recipes to refine it from bauxite rock
  3. Craftable wattle and daub: Adds a recipe for crafting wattle and daub blocks
  4. Burnable roofs: Allow all flammable roofing to be used as fuel. That's it
  5. Splittable stone paths: Split stone path blocks into stairs, slabs and quarters, or combine them back into full blocks
  6. Fruit in troughs: Allows all fruit types to be placed in troughs

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
1.0.2 handydaub 189 Sep 19th at 5:08 PM handydaub_1.0.2.zip 1-click install

HOT FIX:

  • Added some missing null checks; hopefully no more crashed will happen
1.0.1 handydaub 168 Aug 24th at 6:34 PM handydaub_1.0.1.zip 1-click install
  • Fixed rare client crash caused by DidUseBlock event
1.0.0 handydaub 187 Jun 27th at 5:53 PM Empty handydaub_1.0.0.zip 1-click install

11 Comments (oldest first | newest first)

💬 The_Revisionist, Sep 27th at 6:43 PM

Thanks for the fix. I still get some similar errors every now and then:

Crash Report
25.9.2025 19:49:14 [Error] Mod exception during event DidUseBlock. Will skip to next event
25.9.2025 19:49:14 [Error] Exception: Object reference not set to an instance of an object.
at Handy_Daub.HandyDaubModSystem.<>c__DisplayClass3_0.<StartServerSide>b__0(IServerPlayer byPlayer, BlockSelection blockSel) in D:\development\VintageStory\Handy Daub\Handy Daub\HandyDaubModSystem.cs:line 52
at Vintagestory.Server.ServerEventManager.Trigger[T](Delegate[] delegates, String eventName, Action`1 onDele, Action onException) in VintagestoryLib\Server\ServerEventManager.cs:line 723
💬 LivCi , Sep 19th at 5:09 PM

The_Revisionist fixed! thank you

💬 The_Revisionist, Sep 19th at 12:45 AM (modified Sep 19th at 12:45 AM)

I get a bunch of these error messages in the server log when running the mod. Do you know what might be wrong?

Crash Report

18.9.2025 21:26:53 [Error] Mod exception during event DidUseBlock. Will skip to next event
18.9.2025 21:26:53 [Error] Exception: Object reference not set to an instance of an object.
at Handy_Daub.HandyDaubModSystem.<>c__DisplayClass3_1.b__1(ItemSlot slot) in D:\development\VintageStory\Handy Daub\Handy Daub\HandyDaubModSystem.cs:line 87
at Vintagestory.Common.PlayerInventoryManager.Find(Func`2 matcher) in VintagestoryLib\Common\GameContent\Inventory\PlayerInventoryManager.cs:line 489
at Handy_Daub.HandyDaubModSystem.<>c__DisplayClass3_0.b__0(IServerPlayer byPlayer, BlockSelection blockSel) in D:\development\VintageStory\Handy Daub\Handy Daub\HandyDaubModSystem.cs:line 65
at Vintagestory.Server.ServerEventManager.Trigger[T](Delegate[] delegates, String eventName, Action`1 onDele, Action onException) in VintagestoryLib\Server\ServerEventManager.cs:line 723

18.9.2025 22:29:18 [Error] Mod exception during event DidUseBlock. Will skip to next event
18.9.2025 22:29:18 [Error] Exception: Object reference not set to an instance of an object.
at Handy_Daub.HandyDaubModSystem.<>c__DisplayClass3_0.b__0(IServerPlayer byPlayer, BlockSelection blockSel) in D:\development\VintageStory\Handy Daub\Handy Daub\HandyDaubModSystem.cs:line 50
at Vintagestory.Server.ServerEventManager.Trigger[T](Delegate[] delegates, String eventName, Action`1 onDele, Action onException) in VintagestoryLib\Server\ServerEventManager.cs:line 723

18.9.2025 22:41:29 [Error] Mod exception during event DidUseBlock. Will skip to next event
18.9.2025 22:41:29 [Error] Exception: Object reference not set to an instance of an object.
at Handy_Daub.HandyDaubModSystem.<>c__DisplayClass3_1.b__1(ItemSlot slot) in D:\development\VintageStory\Handy Daub\Handy Daub\HandyDaubModSystem.cs:line 87
at Vintagestory.Common.PlayerInventoryManager.Find(Func`2 matcher) in VintagestoryLib\Common\GameContent\Inventory\PlayerInventoryManager.cs:line 487
at Handy_Daub.HandyDaubModSystem.<>c__DisplayClass3_0.b__0(IServerPlayer byPlayer, BlockSelection blockSel) in D:\development\VintageStory\Handy Daub\Handy Daub\HandyDaubModSystem.cs:line 65
at Vintagestory.Server.ServerEventManager.Trigger[T](Delegate[] delegates, String eventName, Action`1 onDele, Action onException) in VintagestoryLib\Server\ServerEventManager.cs:line 723

18.9.2025 22:41:47 [Error] Mod exception during event DidUseBlock. Will skip to next event
18.9.2025 22:41:47 [Error] Exception: Object reference not set to an instance of an object.
at Handy_Daub.HandyDaubModSystem.<>c__DisplayClass3_1.b__1(ItemSlot slot) in D:\development\VintageStory\Handy Daub\Handy Daub\HandyDaubModSystem.cs:line 87
at Vintagestory.Common.PlayerInventoryManager.Find(Func`2 matcher) in VintagestoryLib\Common\GameContent\Inventory\PlayerInventoryManager.cs:line 487
at Handy_Daub.HandyDaubModSystem.<>c__DisplayClass3_0.b__0(IServerPlayer byPlayer, BlockSelection blockSel) in D:\development\VintageStory\Handy Daub\Handy Daub\HandyDaubModSystem.cs:line 65
at Vintagestory.Server.ServerEventManager.Trigger[T](Delegate[] delegates, String eventName, Action`1 onDele, Action onException) in VintagestoryLib\Server\ServerEventManager.cs:line 723

💬 gdorn, Aug 30th at 10:54 PM

I could see this being useful for any stackables...  Filling up a charcoal pit, for instance, is a lot of moving firewood stacks from inventory to hot bar, and repeating.

 

Any reason it shouldn't just top up any stackable in your hot bar?

 
💬 LivCi , Aug 24th at 6:35 PM

B0YAR Thank you for reporting the error! It should be fixed now

💬 B0YAR, Aug 24th at 12:44 AM (modified Aug 24th at 12:46 AM)

LivCi
Game version: 1.20.12
Mod version 1.0.0
Cashe and mod config cleared.

Sometimes we have crash on player's clients (not server)
Server log give us this message:

Spoiler!
24.8.2025 01:36:47 [Error] Mod exception during event DidUseBlock. Will skip to next event
24.8.2025 01:36:47 [Error] Exception: Object reference not set to an instance of an object.
at Handy_Daub.HandyDaubModSystem.<>c__DisplayClass3_0.b__0(IServerPlayer byPlayer, BlockSelection blockSel)
at Vintagestory.Server.ServerEventManager.Trigger[T](Delegate[] delegates, String eventName, Action`1 onDele, Action onException) in VintagestoryLib\Server\ServerEventManager.cs:line 730

This happening when we try something pickup (our items) from the ground. In last time i crashed to desktop when pick up reed.

💬 LivCi , Jul 12th at 11:16 AM

weathercarl That's a really good question actually, I should update the mod page to say it's for server side only. The code itself only runs on the server side to perform inventory changes and mark them as dirty for all clients to receive the changes anyway

💬 weathercarl, Jul 12th at 1:42 AM

i might be stupid but is this client or server side? i'm not familiar with vs's inventory mechanics

💬 LunaGore, Jul 2nd at 9:05 PM

Ahh gotcha, I thought it was a grid recipe for some reason lol

💬 LivCi , Jul 1st at 8:39 PM

LunaGore I am not sure what you mean exactly, but this mod basically checks the daub in your hand as you place it on wattle blocks and partially done daub blocks. If you run out or have less daub in your hand than you need to keep "filling" the block, the mod fetches more daub from your inventory and moves it to your hand, so you don't have to open it everytime and occasionally merge all the 4 daub leftover stacks that you would usually be left with too, which I found annoying 😅

💬 LunaGore, Jun 30th at 12:15 AM

Does this only allow for the complete daub block or can you do t he other variations of "doneness" too?

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