Mods / Advanced Chests

Category: #Storage
Author: Xandu
Side: Both
Created: Oct 10th 2022 at 7:53 PM
Last modified: Jul 23rd at 11:29 AM
Downloads: 2347
Follow Unfollow 41

Latest file for v1.19.8:
advancedchests_v0.2.3.zip 1-click install


This is another mod that adds chests to the game. But instead of adding just fancier and bigger chests this mod adds chests with unique features (and probably bugs, too). So when you encounter some bugs please report them. It's an early version.

Chests

Filter Chest: The Filter Chest is a simple chest with only a few slots. It always tries to keep at least one item in each slot. So the chest can be used to let only specific items pass through it.

Personal Chest: The Personal Chest contains a unique inventory for each player that can be accessed from each Personal Chest across the map.

Coffin: If you have one Coffin in your inventory while you die it will be placed at your current location and all your items will be transferred into it. It is useless when placed by a player and drops nothing when being destroyed. I know there is the player corpse mod that does a similar thing and does it probably better. But I found this idea funny and you can use it to add an item sink to this feature. 

Shared Chest: The Shared Chest is a chest that can share its inventory with other Shared Chests. To link two or more Shared Chests they have to use the same tags in its label. You can add these tags by simply adding an id in square brackets ("[id]") to the text of the label. The id can be an integer between 0 and 99 (configurable).

Sorting Chest: The Sorting Chest has filter and buffer slots. The sides of the chest are colored and are associated to a slot with the same color. You can put filter items into the colored filter slots to define which items can be put into the corresponding buffer slots. If you put no items in a column all items with no filter will be accepted by this buffer slot. Every few seconds the chest tries to push items from the buffer slots into neighboring inventories.

Void Chest: The Void Chest voids items that you put into it. It has by default 4 slots. So it can store up to 3 items before its starts to remove items from the game. This chest is disabled by default.

Infinity Chest: The Infinity Chest stretches time infinitely so that it flows backwards inside of it. So items you put in it will travel back in time. It's probably op and therefore disabled by default.

Configuration

The mod adds a configuration file that allows you to disable the recipe for certain chests so you can only use the chests you like. Additionally you can change the number of shared inventories for shared chests that can be created and the number of slots for shared and personal chests. You can also add inventories that are affected by the coffin here.

Version For Game version Downloads Release date Changelog Download 1-click mod install*
v0.2.3 581 Jul 23rd at 11:29 AM Show advancedchests_v0.2.3.zip Install now
v0.2.2 568 Mar 13th at 4:12 PM Show advancedchests_v0.2.2.zip Install now
v0.2.1 439 Mar 14th 2023 at 2:50 PM Show advancedchests_v0.2.1.zip Install now
v0.2.0 464 Dec 7th 2022 at 10:11 PM Show advancedchests_v0.2.0.zip Install now
v0.1.0 295 Oct 10th 2022 at 8:03 PM Show advancedchests_v0.1.0.zip Install now

24 Comments (oldest first | newest first)

💬 DejFidOFF, Sep 30th at 7:34 PM

Xandu

Hello o/ Where are the information stored what's in the personal chest. I have the mod on the server and need to inspect someone's chest (because of stealing).

💬 SoulReaperz, Aug 15th at 4:57 PM

Xandu

its all good, im still using your mod for the chests, but with default settings is all fine, we have other mods on the server that interact with it so further expand the capabilities of the chests, just was reporting that little issue i had found is all

all i have to say is keep up the good work on this mod, the personal chest is definitly awesome to begin with anyways

 

💬 XanduAuthor, Aug 12th at 11:38 AM

SoulReaperz and DejFidOFF that is the reason why I asked if you are playing on a server. The mod does not synchronize the settings at the moment and you have to make sure that you have the same config file on the server and client side.

💬 DejFidOFF, Jul 31st at 10:27 AM

Xandu

 

Mod did not respect the seversettings at advancedchests.json - when you connect to the server it made local file in ModConfig. So players can set their own size :/

If there is a difference (slot settings) from server and local file it crashes the client 

💬 DejFidOFF, Jul 27th at 8:40 PM

I also playing at the server with some modds. There is BetterCrates_v1.7.1., ExtraChests_v1.8.0., CarryOn 1.7.4. and so on. But those are the mods doing something with chests :D

💬 SoulReaperz, Jul 26th at 9:33 PM

Xandu

ive been playing on my server with the mod

💬 DejFidOFF, Jul 25th at 7:07 PM

Xandu

It happens even in 0.2.2 at old ones. 

 

 

💬 XanduAuthor, Jul 25th at 9:38 AM

DejFidOFF and SoulReaperz Unfortunately I cannot reproduce any of these issues. Does this also happen with newly placed chest or just with old ones? Are you playing on a server or singleplayer?

💬 SoulReaperz, Jul 24th at 9:59 PM

Xandu

crashed just now on version 0.2.3 personal chest

had changed it to size of 8 instead of 16 because size 32 didnt work and the size 8 gave a weird chest layout and when i placed an item in the chest it crashed me, didnt get a report

💬 DejFidOFF, Jul 24th at 9:57 PM

@xandu

sometimes game crash after opening shared chest. ver 0.2.3

24.7.2024 23:54:27 [Event] Hráč DejFidOFF byl odstraněn. Důvod: Threw an exception at the server
24.7.2024 23:54:27 [Error] Exception: Object reference not set to an instance of an object.
at Vintagestory.GameContent.BlockEntityGenericTypedContainer.OnInvOpened(IPlayer player) in VSSurvivalMod\BlockEntity\BEGenericTypedContainer.cs:line 244
at Vintagestory.API.Common.InventoryBase.Open(IPlayer player) in VintagestoryApi\Common\Inventory\InventoryBase.cs:line 823
at Vintagestory.GameContent.BlockEntityGenericTypedContainer.OnPlayerRightClick(IPlayer byPlayer, BlockSelection blockSel) in VSSurvivalMod\BlockEntity\BEGenericTypedContainer.cs:line 294
at Vintagestory.GameContent.BlockEntityLabeledChest.OnPlayerRightClick(IPlayer byPlayer, BlockSelection blockSel) in VSSurvivalMod\BlockEntity\BELabeledChest.cs:line 85
at AdvancedChests.BlockEntitySharedContainer.OnPlayerRightClick(IPlayer byPlayer, BlockSelection blockSel)
at Vintagestory.API.Common.Block.OnBlockInteractStart(IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 1374
at Vintagestory.Server.ServerSystemBlockSimulation.HandleBlockInteract(Packet_Client packet, ConnectedClient client) in VintagestoryLib\Server\Systems\World\BlockSimulation.cs:line 427
at Vintagestory.Server.ServerSystemInventory.HandleHandInteraction(Packet_Client packet, ConnectedClient client) in VintagestoryLib\Server\Systems\Inventory.cs:line 255
at Vintagestory.Server.ServerMain.ProcessNetMessage(NetIncomingMessage msg, NetServer mainSocket) in VintagestoryLib\Server\ServerMainNetworking.cs:line 138

 

💬 XanduAuthor, Jul 24th at 8:28 AM

Noobenwell Hey you can increase the "maxSharedInventoryCount" value in the configuration file to do this.

SoulReaperz The shared chests are meant to be used for cooperative gameplay. If you want to have a chest that can only be accessed by you you should use a Personal Chest.

💬 SoulReaperz, Jul 24th at 2:31 AM

Xandu

the labeling of the shared chests for the purpose of multiplayer needs to be able to have anything typed into for the chest id and not just 0-99, with it just at 0-99 anyone can just figure out or make 100 chests and put each different number in it and check them daily for loot from anyone

the id should be able to have [thisismychest99>] or [storagechest$6999] or [gsadijugha584685ggw?$$er548] as ids instead of only 0-99 so that it will make it virtually nearly impossible to get a chest id of someone using the chest how it was made to be used in multiplayer

 

doesnt need to be super long but i would recommend something like 12 characters/number/symbols long min just to add millions of combinations

the chest id needs to be able to be hidden instead of displayed on the chest aswell

💬 Noobenwell, Jul 24th at 2:07 AM

Xandu please increase the integer to something with more possibilities such as say 9999  or 999999 this would improve the use case as right now someone only has to try 100 times to get into your chest. 

💬 XanduAuthor, Jul 23rd at 11:31 AM

DejFidOFF Thank you for your report. It should be fixed now.

💬 DejFidOFF, Jul 22nd at 9:27 AM

Xandu

Hello when settings is

"sharedChestSize": 16,
"personalChestSize": 4,

Personal chest is correct, but Shared chest ( block info overlay says 16 ) placed down it have only 4 slots like personal.

 

💬 XanduAuthor, Jun 10th at 11:18 AM

Hi DejFidOFF
No this is not possible. It is the same size for every player.

💬 DejFidOFF, Jun 8th at 4:16 PM

Hello o/ Xandu

Is it possible to configure "personalChestSize" to different role at the server?

 

💬 XanduAuthor, Mar 13th at 8:15 PM

@AngryOscar It makes things last longer.

💬 AngryOscar, Mar 13th at 8:11 PM

Confused, what exactly does infinity chest do? 

💬 sdkenny, Feb 4th at 11:19 PM

Nope:

2.2024 15:14:17 [Server Error] [advancedchests] Exception thrown when attempting to retrieve all types of the assembly advancedchests, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null. Will ignore asssembly. Loader exceptions:
4.2.2024 15:14:17 [Server Error] [advancedchests] Exception: Unable to load one or more of the requested types.
Declaration referenced in a method implementation cannot be a final method.  Type: 'AdvancedChests.InventorySorting'.  Assembly: 'advancedchests, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.Assembly.GetTypes()
   at Vintagestory.Common.ModContainer.GetModSystems(Assembly assembly) in VintagestoryLib\Common\API\ModContainer.cs:line 521
4.2.2024 15:14:17 [Server Error] [advancedchests] Exception: Declaration referenced in a method implementation cannot be a final method.  Type: 'AdvancedChests.InventorySorting'.  Assembly: 'advancedchests, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
No stack trace
4.2.2024 15:14:17 [Server Error] [advancedchests] An exception was thrown when trying to load assembly:
4.2.2024 15:14:17 [Server Error] [advancedchests] Exception: Data\Cache\unpack\advancedchests_v0.2.1 (1).zip_ec41120f2308\advancedchests.dll declared as code mod, but there are no .dll files that contain at least one ModSystem or has a ModInfo attribute
   at Vintagestory.Common.ModContainer.LoadAssembly(ModCompilationContext compilationContext, ModAssemblyLoader loader) in VintagestoryLib\Common\API\ModContainer.cs:line 456
💬 sdkenny, Feb 4th at 10:27 PM

Does this work with 1.19?

💬 XanduAuthor, Mar 14th 2023 at 5:11 PM

Craluminum Thank you. Good to know. The focus of the update was to just get it running.

💬 DanaCraluminum, Mar 14th 2023 at 4:09 PM

Xandu Chests can now have one shape since 1.18, thus you don't need duplicate shapes for various types anymore

💬 XanduAuthor, Dec 7th 2022 at 10:14 PM

Hey, 
I updated this mod to version 0.2.0 and added two new chests! Both chests are disabled by default.  So you have to activate them to be able to use them.

(edit comment delete)