Mods / C&N Mailbox

Tags:
Utility
Author:
KenigVovan
Side:
Both
Created:
Feb 25th 2025 at 7:30 PM
Last modified:
May 14th at 4:12 PM
Downloads:
35958
Follow Unfollow 119
Latest release (for Vintage Story 1.22.2, potentially outdated):
canmailbox_1.2.2.zip  1-click install

Block is not protected by itself, place into your claim. Two upper slots can be accessed by anyone, by button you can send them into closed slots which are available only for owner.
If there is something in mailbox flag will be up. If you hover over button there should be owner's name.

Shift click doesn't work, right works as it instead.

Additional functionality addition will need Mudwall Senators' decision.

Models provided by Morgen and Ragolution.

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
1.2.2 canmailbox 2763 May 14th at 4:12 PM canmailbox_1.2.2.zip 1-click install
  • recipe crash fix
1.2.1 canmailbox 666 Apr 6th at 10:11 AM Empty canmailbox_1.2.1.zip 1-click install
1.2.0 canmailbox 145 Feb 22nd at 9:48 AM canmailbox_1.2.0.zip 1-click install
1.1.8 canmailbox 1443 Feb 24th at 5:16 PM canmailbox_1.1.8.zip 1-click install
  • rebuild for net8
1.1.7 canmailbox 76 Feb 22nd at 9:53 AM canmailbox_1.1.7.zip 1-click install
1.1.6 canmailbox Dec 28th 2025 at 8:31 AM 1-click install
  • missing owl mailbox added in creative tab to be shown in recipe list
1.1.5 canmailbox 3489 Dec 25th 2025 at 11:51 AM canmailbox_1.1.5.zip 1-click install
  • owl shape on 1.place fixed
1.1.4 canmailbox 3667 Nov 20th 2025 at 4:02 PM canmailbox_1.1.4.zip 1-click install
  • block types added into creative tab, so recipes are visible
1.1.3 canmailbox 396 Nov 15th 2025 at 11:57 PM canmailbox_1.1.3.zip 1-click install
  • owl mailbox shape/texture fix
1.1.2 canmailbox 961 Nov 5th 2025 at 7:32 PM canmailbox_1.1.2.zip 1-click install
  • different metal/wood type for wallmounted mail boxes
1.1.1 canmailbox 8455 Aug 27th 2025 at 9:02 PM canmailbox_1.1.1.zip 1-click install
  • closelid animation call
1.1.0 canmailbox 55 Aug 27th 2025 at 3:42 PM canmailbox_1.1.0.zip 1-click install
  • rebuild
1.0.6 canmailbox 6195 Mar 15th 2025 at 3:22 PM canmailbox_1.0.6.zip 1-click install
  • es-es.json by C4BR3R4
1.0.5 canmailbox 4107 Mar 3rd 2025 at 5:40 PM canmailbox_1.0.5.zip 1-click install
  • additional type of mail box
1.0.4 canmailbox 157 Mar 2nd 2025 at 9:52 AM canmailbox_1.0.4.zip 1-click install
  • now inventory can be open in every claim
  • updates of slots now should be sent to all players
1.0.3 canmailbox 213 Feb 25th 2025 at 8:27 PM canmailbox_1.0.3.zip 1-click install
  • init

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

AgeofSeraphs, May 13th at 9:21 PM

KenigVovan See comment below, we were able to replicate the issue.  See crash log below.

Crash Report
Running on 64 bit Windows 10.0.19045.0 with 32688 MB RAM
Game Version: v1.22.2 (Stable)
5/13/2026 2:19:38 PM: Critical error occurred in the following mod: canmailbox@1.2.1
Loaded Mods: jonasworkshop@1.2.1, game@1.22.2, antiqueharmony@1.11.0, canmailbox@1.2.1, geologymap@1.1.0, gimap@1.7.0, creative@1.22.2, survival@1.22.2
System.Exception: Error while rendering item in slot Vintagestory.API.Common.DummySlot (1x Block Id 14092, Code canmailbox:canmailbox-east)
 ---> System.ArgumentNullException: Value cannot be null. (Parameter 'Unable to find a texture for texture code 'inside' in mailbox. Giving up. Sorry.')
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElement(Int32 indexForLogging, MeshData meshdata, ShapeElement element, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 500
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 377
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShape(Shape shapeBase, MeshData& modeldata, Vec3f wholeMeshRotation, Vec3f wholeMeshOffset, Single wholeMeshScale, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 291
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShape(String typeForLogging, Shape shapeBase, MeshData& modeldata, ITexPositionSource texSource, Vec3f wholeMeshRotation, Int32 generalGlowLevel, Byte climateColorMapId, Byte seasonColorMapId, Nullable`1 quantityElements, String[] selectiveElements) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 212
   at canmailbox.src.block.CANBlockGenericTypedContainer.GenMesh(ICoreClientAPI capi, Shape shape, ITesselatorAPI tesselator, ITexPositionSource textureSource, String part, Vec3f rotationDeg) in C:\Users\koeni\source\repos\CAN_Mailbox\canmailbox\src\block\CANBlockGenericTypedContainer.cs:line 428
   at canmailbox.src.block.CANBlockGenericTypedContainer.<>c__DisplayClass38_0.<OnBeforeRender>b__0() in C:\Users\koeni\source\repos\CAN_Mailbox\canmailbox\src\block\CANBlockGenericTypedContainer.cs:line 344
   at Vintagestory.API.Util.ObjectCacheUtil.GetOrCreate[T](ICoreAPI api, String key, CreateCachableObjectDelegate`1 onRequireCreate) in VintagestoryApi\Util\ObjectCacheUtil.cs:line 23
   at canmailbox.src.block.CANBlockGenericTypedContainer.OnBeforeRender(ICoreClientAPI capi, ItemStack itemstack, EnumItemRenderTarget target, ItemRenderInfo& renderinfo) in C:\Users\koeni\source\repos\CAN_Mailbox\canmailbox\src\block\CANBlockGenericTypedContainer.cs:line 321
   at Vintagestory.Client.NoObf.InventoryItemRenderer.GetItemStackRenderInfo(ClientMain game, ItemSlot inSlot, EnumItemRenderTarget target, Single dt) in VintagestoryLib\Client\Render\InventoryItemRenderer.cs:line 496
   at Vintagestory.Client.NoObf.InventoryItemRenderer.RenderItemstackToGui(ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Single dt, Boolean shading, Boolean origRotate, Boolean showStackSize) in VintagestoryLib\Client\Render\InventoryItemRenderer.cs:line 286
   --- End of inner exception stack trace ---
   at Vintagestory.Client.NoObf.InventoryItemRenderer.RenderItemstackToGui(ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Single dt, Boolean shading, Boolean origRotate, Boolean showStackSize) in VintagestoryLib\Client\Render\InventoryItemRenderer.cs:line 410
   at Vintagestory.Client.NoObf.InventoryItemRenderer.RenderItemstackToGui(ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Boolean shading, Boolean origRotate, Boolean showStackSize) in VintagestoryLib\Client\Render\InventoryItemRenderer.cs:line 278
   at Vintagestory.Client.NoObf.RenderAPIGame.RenderItemstackToGui(ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Boolean shading, Boolean rotate, Boolean showStacksize) in VintagestoryLib\Client\API\RenderAPIGame.cs:line 282
   at Vintagestory.API.Client.SlideshowItemstackTextComponent.RenderInteractiveElements(Single deltaTime, Double renderX, Double renderY, Double renderZ) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\Richtext\SlideshowItemstackTextComponent.cs:line 232
   at Vintagestory.API.Client.GuiElementRichtext.RenderInteractiveElements(Single deltaTime) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\GuiElementRichtext.cs:line 476
   at Vintagestory.API.Client.GuiComposer.Render(Single deltaTime) in VintagestoryApi\Client\UI\GuiComposer.cs:line 737
   at Vintagestory.API.Client.GuiDialog.OnRenderGUI(Single deltaTime) in VintagestoryApi\Client\UI\Dialog\GuiDialog.cs:line 396
   at Vintagestory.GameContent.GuiDialogHandbook.OnRenderGUI(Single deltaTime) in VSSurvivalMod\Systems\Handbook\Gui\GuiDialogHandbook.cs:line 562
   at Vintagestory.Client.NoObf.GuiManager.OnRenderFrameGUI(Single deltaTime) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 309
   at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 1048
   at Vintagestory.Client.GuiScreenRunningGame.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 251
   at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 783
   at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 686
   at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 112
   at OpenTK.Windowing.Desktop.GameWindow.Run()
   at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 354
   at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 131
   at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 95
System.ArgumentNullException: Value cannot be null. (Parameter 'Unable to find a texture for texture code 'inside' in mailbox. Giving up. Sorry.')
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElement(Int32 indexForLogging, MeshData meshdata, ShapeElement element, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 500
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShapeElements(MeshData meshdata, ShapeElement[] elements, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 377
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShape(Shape shapeBase, MeshData& modeldata, Vec3f wholeMeshRotation, Vec3f wholeMeshOffset, Single wholeMeshScale, TesselationMetaData meta) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 291
   at Vintagestory.Client.NoObf.ShapeTesselator.TesselateShape(String typeForLogging, Shape shapeBase, MeshData& modeldata, ITexPositionSource texSource, Vec3f wholeMeshRotation, Int32 generalGlowLevel, Byte climateColorMapId, Byte seasonColorMapId, Nullable`1 quantityElements, String[] selectiveElements) in VintagestoryLib\Client\Render\Tesselation\ShapeTesselator.cs:line 212
   at canmailbox.src.block.CANBlockGenericTypedContainer.GenMesh(ICoreClientAPI capi, Shape shape, ITesselatorAPI tesselator, ITexPositionSource textureSource, String part, Vec3f rotationDeg) in C:\Users\koeni\source\repos\CAN_Mailbox\canmailbox\src\block\CANBlockGenericTypedContainer.cs:line 428
   at canmailbox.src.block.CANBlockGenericTypedContainer.<>c__DisplayClass38_0.<OnBeforeRender>b__0() in C:\Users\koeni\source\repos\CAN_Mailbox\canmailbox\src\block\CANBlockGenericTypedContainer.cs:line 344
   at Vintagestory.API.Util.ObjectCacheUtil.GetOrCreate[T](ICoreAPI api, String key, CreateCachableObjectDelegate`1 onRequireCreate) in VintagestoryApi\Util\ObjectCacheUtil.cs:line 23
   at canmailbox.src.block.CANBlockGenericTypedContainer.OnBeforeRender(ICoreClientAPI capi, ItemStack itemstack, EnumItemRenderTarget target, ItemRenderInfo& renderinfo) in C:\Users\koeni\source\repos\CAN_Mailbox\canmailbox\src\block\CANBlockGenericTypedContainer.cs:line 321
   at Vintagestory.Client.NoObf.InventoryItemRenderer.GetItemStackRenderInfo(ClientMain game, ItemSlot inSlot, EnumItemRenderTarget target, Single dt) in VintagestoryLib\Client\Render\InventoryItemRenderer.cs:line 496
   at Vintagestory.Client.NoObf.InventoryItemRenderer.RenderItemstackToGui(ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Single dt, Boolean shading, Boolean origRotate, Boolean showStackSize) in VintagestoryLib\Client\Render\InventoryItemRenderer.cs:line 286

Event Log entries for Vintagestory.exe, the latest 3
==================================
{ TimeGenerated = 5/12/2026 1:14:10 PM, Site = , Source = Application Error, Message = Faulting application name: Vintagestory.exe, version: 1.22.2.0, time stamp: 0x693c0000
Faulting module name: openal32.dll, version: 1.23.0.0, time stamp: 0x63dd31ad
Exception code: 0x40000015
Fault offset: 0x00000000000df046
Faulting process id: 0x9700
Faulting application start time: 0x01dce2319ad54ba6
Faulting application path: C:\Users\death\AppData\Roaming\Vintagestory2\Vintagestory.exe
Faulting module path: C:\Users\death\AppData\Roaming\Vintagestory2\Lib\openal32.dll
Report Id: 16536a0f-6d96-4a18-8ba4-b3c6898d5815
Faulting package full name: 
Faulting package-relative application ID:  }
--------------
{ TimeGenerated = 5/12/2026 1:13:56 PM, Site = , Source = Application Error, Message = Faulting application name: Vintagestory.exe, version: 1.22.2.0, time stamp: 0x693c0000
Faulting module name: KERNELBASE.dll, version: 10.0.19041.7181, time stamp: 0x09103ac8
Exception code: 0xe0434352
Fault offset: 0x0000000000025369
Faulting process id: 0x9700
Faulting application start time: 0x01dce2319ad54ba6
Faulting application path: C:\Users\death\AppData\Roaming\Vintagestory2\Vintagestory.exe
Faulting module path: C:\Windows\System32\KERNELBASE.dll
Report Id: ee5a29bf-0ef3-48d5-9c37-b4a878871d46
Faulting package full name: 
Faulting package-relative application ID:  }
--------------
{ TimeGenerated = 5/7/2026 10:10:10 AM, Site = , Source = Application Error, Message = Faulting application name: Vintagestory.exe, version: 1.22.2.0, time stamp: 0x693c0000
Faulting module name: KERNELBASE.dll, version: 10.0.19041.7181, time stamp: 0x09103ac8
Exception code: 0xe0434352
Fault offset: 0x0000000000025369
Faulting process id: 0x573c
Faulting application start time: 0x01dcde3d0ff74ae9
Faulting application path: C:\Users\death\AppData\Roaming\Vintagestory2\Vintagestory.exe
Faulting module path: C:\Windows\System32\KERNELBASE.dll
Report Id: 18e8dc57-6b75-4eab-bb0d-bbdd11fb3b7b
Faulting package full name: 
Faulting package-relative application ID:  }
Kunling, May 7th at 9:16 PM

KenigVovan
Just an FYI that your mod causes a crash whenever you try to look up the recipe for nails and strips in 1.22.2.

captanredbeard, Feb 24th at 2:58 AM (modified Feb 24th at 3:08 AM)

KenigVovan I made a mistake!!!!!!!

The version I sent you was for ONLY 1.22, because it uses .NET 10. I have a version that uses .NET 8 that will work for people with my changes.

 

check my fork for the changes, I can't really marge it easily.

 

captanredbeard, Jan 23rd at 2:24 AM

some logspam from the generic mailbox I think

Spoiler
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/trunk/sides.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/trunk/lid.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/trunk/accessories.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/trunk/aged-sides.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/trunk/aged-lid.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/trunk/aged-accessories.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/chest/golden/top.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/chest/golden/sides2.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/chest/golden/sides1.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/chest/golden/inside.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/chest/golden-aged/top.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/chest/golden-aged/sides2.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/chest/golden-aged/sides1.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/chest/golden-aged/inside.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/chest/owl-aged/top.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/chest/owl-aged/sides2.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/chest/owl-aged/sides1.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
22.1.2026 20:19:31 [Client Warning] Texture asset 'canmailbox:textures/block/wood/chest/owl-aged/inside.png' not found (defined in Baked variant of block canmailbox:canmailbox-north).
Zoraknom, Dec 27th 2025 at 12:31 PM (modified Dec 27th 2025 at 12:32 PM)

I don't seem to be able to find the smaller Mailboxes in my server. At least they don't show in the Creative inventory nor the recipe book.
I am using the latest version 1.1.5

KenigVovan , Dec 25th 2025 at 11:51 AM

No7e

fixed

No7e, Dec 24th 2025 at 7:46 PM

Hi! For some reason we can't figure out why other players see the small mailbox, while the owner sees the big one. Is this a bug?

nobu_, Dec 3rd 2025 at 7:02 AM

I'm very late but thank you, i'll update my server!

KenigVovan , Nov 20th 2025 at 4:02 PM

nobu_

should be visible now in 1.1.4

nobu_, Nov 20th 2025 at 10:28 AM

How do you craft the alternate appearances (wood types and such)? They don't seem to have a recipe in the book at all, just the base variant.

Nachi, Nov 16th 2025 at 4:36 PM

KenigVovan Ah, okay; I see. Thank you for telling me, anyway :)

KenigVovan , Nov 16th 2025 at 3:38 PM

Nachi

No, this mod doesn't provide such functionality, even with different players somebody would need to travel to a mailbox and put a parcel there

Nachi, Nov 16th 2025 at 3:03 PM

Are you able to send to yourself? Ex: if I have one mailbox at a base up north and another way down south (which are placed by the same person), then can that person send items from their southern ase to the northern one and vice versa? Trying to figure out if I could use this on a solo server.

FatherSarge, Aug 27th 2025 at 4:02 PM

Thx for the update KenigVovan

Small bug... the small mailbox won't close when you x out the inventory window

DUCATISLO, Mar 15th 2025 at 3:22 PM

gg

Ragolution, Mar 2nd 2025 at 5:05 AM

Unfortunately, I can't seem to access another player's mailbox inside of their claim.

Works perfectly now.