Mods / Normalizer

Tags: #Crafting #QoL #Simplification
Author: Hellaeh
Side: Server
Created: Dec 2nd 2023 at 4:46 PM
Last modified: Aug 31st at 1:37 PM
Downloads: 1448
Follow Unfollow 56

Latest release (for Vintage Story 1.21.0, potentially outdated):
Normalizer-2.0.1.zip  1-click install


Same functionality as Disassemble Chiseled Block, but does not require any tools.

Also you can clearly see output in craft window.

Balancing the game is not the goal of this mod.

Usage: Put chiseled block into crafting grid, get the output.

2.0.0 - Disables multiblock chiseled grid recipe - use in-world craft instead.

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
2.0.1 helnormalizer 161 Aug 31st at 1:37 PM Normalizer-2.0.1.zip 1-click install

 added additional null check (blame cattails)

2.0.0 helnormalizer 541 Sep 25th 2024 at 10:13 PM Normalizer-2.0.0.zip 1-click install
  • Disable multiblock chiseled recipe
  • Change: refund each material type only once
  • Fix grid recipe class restrictions not working
1.0.1 helnormalizer 482 Dec 25th 2023 at 1:11 PM Normalizer-1.0.1.zip 1-click install

1.19 ready

1.0.0 helnormalizer 264 Dec 2nd 2023 at 4:51 PM Empty Normalizer-1.0.0.zip 1-click install

22 Comments (oldest first | newest first)

💬 Hellaeh , Sep 25th at 6:07 PM (modified Sep 25th at 6:11 PM)

If i remember correctly, this has to be fixed on the game side (unless it's already fixed, idk). TimmyChips

Edit: the bug is in the crafting itself. I've got a clip

💬 TimmyChips, Sep 22nd at 6:37 PM (modified Sep 22nd at 6:40 PM)

Really love the mod! Very convenient since sometimes I decide I don't want a block chiseled and saves resources.

My only wish is that the chiseled multiblock recipe in 2.0.0 wasn't fully removed, as normally you can combine different axis-facing chiseled blocks for more complex chiseling. The problem is that you can't do this in the in-world chisel tool menu, only in the crafting recipe. I'm not sure if it's possible to keep the multiblock chisel recipe if there's more than 2 blocks in the crafting grid, and the normalizer recipe will work if it's just 1 chiseled block.

I do see in the repository that the multiblock chisel causes a duping issue. Hopefully the fix is pretty easy!

Great work on the mod!

💬 NylonCat, Sep 1st at 12:58 AM

Tried it, and it does prevent the clients from being kicked and allows crafting with cattail! :D

Everything else still works as intended. You're a damn wizard! Thank you so much for looking into it and finding a fix, even if you couldn't reproduce it with the limited testing i was able to perform. My friends and I appreciate it immensely!

💬 Hellaeh , Aug 31st at 1:40 PM (modified Aug 31st at 1:40 PM)

I have no idea why cattails specifically behave like that for you (i could not replicate it), but i added additional null check in 2.0.1, it should prevent the crash at least. Try it out, NylonCat

💬 NylonCat, Aug 30th at 5:25 PM

Hellaeh
I've done some further testing. This time Normalizer was only on the server, not the client.
It still worked as expected, but the client disconnect issue persists. Weirdly, it seems to ONLY affect cattail and ONLY happens when trying to take a stack of it and using Left-CTRL to drag the stack over the crafting grid. Upon rejoining, the cattail will be left in the crafting grid permanently until removed by the player.
No other item we tried caused the same problem - not planks, not papyrus, not clay...

This is a really minor issue as a result, but i've had two other players on the same server replicate it without fail. Unfortunately we cannot test it with only Normalizer installed due to how the server is set up.
The only other mods that either add any kind of custom item or recipe to the game or interact with the user interface would BetterRuins with its dependencies imGUI and configLib. None of the other mods mess with the crafting process or anything related from what i can tell.

Apologies if this information is insufficient, and no worries if you deem this too niche to look into further! I'm glad the mod still works regardless as we wouldn't want to play without it! :)

💬 Hellaeh , Aug 30th at 4:08 PM

I did a brief test on local dedicated server, and i couldn't replicate this issue. I did made baskets with cattails and unchiseled some blocks via crafting - no kicking/crashes. Were there any other mods aside from this one? Did you test with this mod only? Also, technically this mod is server side only, so players don't need it. NylonCat.

💬 NylonCat, Aug 30th at 2:33 AM

Sorry for posting this here as i do not have a github account to use the issue tracker, but i did end up finding an issue.

On a multiplayer server, with both server & client running the mod, dragging any stack of items over the crafting grid (we tried with cattail to make baskets) will kick the player with the following error:
Removing the mod from the server fixes this issue, but obviously prevents clients from normalizing chiseled blocks while connected.

In singleplayer, all works as expected.

Crash Report
29.8.2025 21:17:21 [Error] Exception: Object reference not set to an instance of an object.
at HelNormalizer.Patch.Event_MatchesGridRecipePrefix(IPlayer player, GridRecipe recipe, ItemSlot[] ingredients, Int32 gridWidth, Boolean& __result) in D:\VSDev\Normalizer\src\patch.cs:line 70
at Vintagestory.GameContent.CharacterSystem.Event_MatchesGridRecipe_Patch1(CharacterSystem this, IPlayer player, GridRecipe recipe, ItemSlot[] ingredients, Int32 gridWidth)
at Vintagestory.Common.InventoryCraftingGrid.FindMatchingRecipe() in VintagestoryLib\Common\GameContent\Inventory\InventoryCraftingGrid.cs:line 168
at Vintagestory.Common.InventoryCraftingGrid.OnItemSlotModified(ItemSlot slot) in VintagestoryLib\Common\GameContent\Inventory\InventoryCraftingGrid.cs:line 141
at Vintagestory.API.Common.InventoryBase.DidModifyItemSlot(ItemSlot slot, ItemStack extractedStack) in VintagestoryApi\Common\Inventory\InventoryBase.cs:line 492
at Vintagestory.Common.InventoryCraftingGrid.DidModifyItemSlot(ItemSlot slot, ItemStack extractedStack) in VintagestoryLib\Common\GameContent\Inventory\InventoryCraftingGrid.cs:line 146
at Vintagestory.API.Common.ItemSlot.OnItemSlotModified(ItemStack sinkStack) in VintagestoryApi\Common\Inventory\ItemSlot.cs:line 427
at Vintagestory.API.Common.ItemSlot.ActivateSlotRightClick(ItemSlot sourceSlot, ItemStackMoveOperation& op) in VintagestoryApi\Common\Inventory\ItemSlot.cs:line 396
at Vintagestory.API.Common.ItemSlot.ActivateSlot(ItemSlot sourceSlot, ItemStackMoveOperation& op) in VintagestoryApi\Common\Inventory\ItemSlot.cs:line 300
at Vintagestory.API.Common.InventoryBase.ActivateSlot(Int32 slotId, ItemSlot sourceSlot, ItemStackMoveOperation& op) in VintagestoryApi\Common\Inventory\InventoryBase.cs:line 461
at Vintagestory.Common.InventoryCraftingGrid.ActivateSlot(Int32 slotId, ItemSlot sourceSlot, ItemStackMoveOperation& op) in VintagestoryLib\Common\GameContent\Inventory\InventoryCraftingGrid.cs:line 129
at Vintagestory.Common.InventoryNetworkUtil.HandleClientPacket(IPlayer byPlayer, Int32 packetId, Packet_Client packet) in VintagestoryLib\Common\GameContent\Inventory\InventoryNetworkUtil.cs:line 134
at Vintagestory.Server.ServerSystemInventory.HandleActivateInventorySlot(Packet_Client packet, ConnectedClient client) in VintagestoryLib\Server\Systems\Inventory.cs:line 491
at Vintagestory.Server.ServerMain.HandleClientPacket_mainthread(ReceivedClientPacket cpk) in VintagestoryLib\Server\ServerMainNetworking.cs:line 280
at Vintagestory.Server.ServerMain.ProcessMain() in VintagestoryLib\Server\ServerMain.cs:line 934
💬 Hellaeh , Aug 26th at 8:06 PM

Thanks, NylonCat. Updated.

💬 NylonCat, Aug 26th at 6:51 PM

I've tested the 2.0.0 version on the latest stable 1.21 release and the mod seems to work without issues.
Messed around a bit, including with the new (now chisel-able) clinker bricks and the new ceramic materials, and it worked as usual.

💬 LivCi, Jul 12th at 11:30 AM

Can confirm that it works on 1.20.12

💬 Rhapsody, Jul 8th at 5:28 AM

Thank you for the update! This is one of my favourite mods

💬 DilanRona, Jul 7th at 7:20 PM

Its not a mod conflict per se, as even vanilla blocks gets lost. Its the changes that was made to 2.0 (and I saw the comment about multiblock chiseled grid recipe being disabled). To my knowledge there is no in-world craft method to seperate multiblock chiseled blocks. Tbh, never ran into a problem with recipes not respecting class restrictions. And I am using 1.1

💬 Hellaeh , Jul 7th at 5:11 PM

There was a major change, where instead of handling ingame event, i switched to harmony patch to control the original method execution. I don't remember exactly why i did it, but probably something about class crafting restrictions not being respected. But hey, if 1.1 works for you - just use it? If you were to find the conflicting mod - i'm willing to look at it and see what's wrong. DilanRona

💬 DilanRona, Jul 7th at 4:40 PM

Fair point regarding compatibility I guess. Except that when using version 1.1 and unchiselling the blocks from say Simple Concrete, I get all the blocks used back. Version 2 fails that task, and only returns the primary block. With the rest thrown away. Same thing happens with vanilla resourses only (granite rock, and med fert soil for example). 1.1 returns all the blocks, and version 2.0 only returns the primary block (granite in this instance).

So there is something broken in version 2, that 1.1 is doing better.

💬 Hellaeh , Jul 7th at 11:47 AM

DilanRona, i just tested in creative and it seems to work. Which means it's a compatibility issue or "works-on-my-machine" curse. I do maintain my mods, but i'm a lazy guy and since i don't actually play the game there's little to no motivation for me to go out and reply to "it does not work" issues.

Edit: tested on 1.20.7 btw

💬 DilanRona, Jul 6th at 7:20 PM

Is this mod still maintained? @Hellaeh

💬 DilanRona, Apr 6th at 11:59 PM

multiblock chiseled blocks when trying to uncraft results in some of the items being not being returned (the original material), with everything else being duplicated, including the original multiblock chiseled block, that is returned intact.

 

💬 Hellaeh , Sep 9th 2024 at 2:39 PM

ShikiTochi, Hey. I'll postpone the fix for now, cuz there's a duping bug in vanilla (i think).

💬 ShikiTochi, Sep 8th 2024 at 6:59 AM

Not sure if you are still working on this mod but there is one bug i have come across, it completely removes the class exclusive recipie barrier. even as a commoner i can craft crude arrows from hunter and the sling from malefactor as well as fertilizers/seeds from the farmers traits. Normalizer is the only mod i have installed so its nothing with conflicting mods.

💬 Hellaeh , Dec 25th 2023 at 6:30 PM

No. No bugs so far, if you encounter some - let me know.

Mantoron

💬 Mantoron, Dec 25th 2023 at 5:06 PM

Does it have the same bug as well with the game:air block?

💬 Bughaw, Dec 3rd 2023 at 3:00 AM

I've always wanted this.  Thanks!

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