Mods / TentBag

Category: #Cheat #Crafting #QoL #Storage
Author: BillyGalbreath
Side: Both
Created: Jan 24th at 2:09 AM
Last modified: Mar 29th at 2:47 PM
Downloads: 3908
Follow Unfollow 69

Latest file for Various v1.19.x: 1-click install

I took the tentbag from jakecool19's Useful Stuff and made it better.




Changes I've made:

  • changed the model to the unused bag-roll item instead of a linen sack
  • changed the recipe so it does not conflict with Useful Stuff's version (check handbook, you can have both installed at same time)
  • option of requiring solid ground/floor or not
  • replacing plants and rocks instead of having to clear out an area
  • placing the tentbag back into your inventory after use so you dont end up forgetting to pick it back up and it despawns into the abyss
  • moved all operations to server side to prevent client-prediction desyncs
  • various other code optimizations




Config options in %appdata%/VintagestoryData/ModConfig/tentbag.yml

Radius: 3
Height: 7
BuildEffort: 100
RequireFloor: false
ReplacePlantsAndRocks: true
PutTentInInventoryOnUse: true

The mod will automagically reload the config when you save the modified file.




So what even is a tentbag?

Seems some people are not familiar with this mechanism, so I'll try to explain. A tentbag is an item that can hold a player made structure (within reason, illegal blocks listed below). The default config allows for a 3 block radius and a 7 block high area to be used, which makes a max of 7x7x7 in the world that is centered on the block clicked as the floor. The floor is not included.

I don't think my description does it justice, so here's a short video of me unpacking and packing one of my tentbags (this one is mostly full of trunks to collect stuff while exploring ruins).




Here is the list of illegal blocks that cannot be packed into a tentbag.

  • game:log-grown-*
  • game:log-resin-*
  • game:log-resinharvested-*
  • game:statictranslocator-*
  • game:teleporterbase
  • game:crop-*
  • game:herb-*
  • game:mushroom-*
  • game:smallberrybush-*
  • game:bigberrybush-*
  • game:water-*
  • game:lava-*
  • game:farmland-*
  • game:rawclay-*
  • game:peat-*
  • game:rock-*
  • game:ore-*
  • game:crock-burned-*
  • game:bowl-meal
  • game:claypot-cooked
  • game:anvil-*
  • game:forge

This is the banned list from the original mod. I have no idea if there is a technical reason for them to be illegal. I do plan to make this list configurable, eventually.




Remember, I build these mods for myself and my family. Not you. I owe you nothing. I just like sharing what I've built with others for free. You will receive minimal to no support when using any of my mods.



Version For Game version Downloads Release date Changelog Download 1-click mod install*
v1.1.2 1296 Mar 29th at 2:47 PM Show Install now
v1.1.1 1264 Feb 16th at 9:48 AM Show Install now
v1.1.0 435 Feb 7th at 10:50 PM Show Install now
v1.0.3 417 Jan 29th at 11:44 PM Show Install now
v1.0.2 332 Jan 24th at 6:53 PM Show Install now
v1.0.1 71 Jan 24th at 4:52 PM Show Install now
v1.0.0 93 Jan 24th at 2:13 AM Show Install now

19 Comments (oldest first | newest first)

💬 actuallyasriel, May 15th at 2:23 PM

I am not immune to advertising by shitty pun.

💬 Cursd, Apr 19th at 7:49 PM

im not entirely sure if its just this mod doing this, but thought id bring it to your attention. the doors arent stopping creatures from entering. tried all doors on home base and works fine. but when its on a structure i place with the tent bag. it acts like its there but not there. they do have a bit of pushback, but eventually phase thru it. also tried replacing doors after placing to see if it wasnt recognizing it and still creatures walk thru. again not entirely sure if its just this mod causing this. Great mod! great job!

💬 Daniel86268, Apr 19th at 2:16 PM

I love the idea of having the options of a portable base like this, at least until we get boats/airships/wagons to use as a portable base.

However I got this error on my client first time trying to log in after installing tentbag onto my dedicated server (and my client).

Running on 64 bit Windows 10.0.22631.0 with 32644 MB RAM
Game Version: v1.19.7 (Stable)
19.04.2024 16:10:49: Critical error occurred
Loaded Mods: bushmeat_meals@1.0.7, viescraftmachines@2.3.1, volumetricshadingreupdated@0.7.5, game@1.19.7, zoombuttonreborn@1.6.0, blocksoverlay@3.2.1, levelup@1.1.3, spawnhighlight@1.2.0, creative@1.19.7, survival@1.19.7
System.Exception: Don't know how to instantiate item of class 'TentBag' did you forget to register a mapping?
at Vintagestory.Common.ClassRegistry.CreateItem(String itemClass) in VintagestoryLib\Common\ClassRegistry.cs:line 274
at Vintagestory.Common.ItemTypeNet.ReadItemTypePacket(Packet_ItemType packet, IWorldAccessor world, ClassRegistry registry) in VintagestoryLib\Common\Network\ItemTypeNet.cs:line 18
at Vintagestory.Client.NoObf.ClientSystemStartup.PopulateItems(List`1 items, Int32 listSize) in VintagestoryLib\Client\Systems\Startup.cs:line 587
at Vintagestory.Client.NoObf.ClientSystemStartup.LoadItemTypes() in VintagestoryLib\Client\Systems\Startup.cs:line 399
at Vintagestory.Client.NoObf.ClientSystemStartup.HandleServerAssets_Step1() in VintagestoryLib\Client\Systems\Startup.cs:line 341
at Vintagestory.API.Common.TyronThreadPool.<>c__DisplayClass12_0.<QueueTask>b__0(Object a) in VintagestoryApi\Common\TyronThreadPool.cs:line 120
at System.Threading.QueueUserWorkItemCallback.Execute()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()

I did install this mod into an existing world, if that helps/causes any issues.

💬 CKitt, Mar 29th at 10:47 PM


No worries at all about the delay! I read and understood your disclaimer at the bottom. 

For what it's worth, the error is gone and the mod is once again working. Thank you very much!

💬 BillyGalbreathAuthor, Mar 29th at 2:57 PM

CKitt, sorry for the late reply. That is indeed an odd error. Its stating that the client side is trying to reload the mod's config file, which it shouldn't be doing even in single player. I went ahead and just applied the recommendation the error is suggesting, but i feel there might be some deeper issue going on.

💬 CKitt, Mar 20th at 11:58 PM


I had been successfully using this mod for a while, and it abruptly stopped working properly. Now, when I attempt to pick up a tent, I get the following crash:

Running on 64 bit Windows 10.0.19045.0 with 130848 MB RAM
Game Version: v1.19.4 (Stable)
3/20/2024 5:55:40 PM: Critical error occurred in the following mod: tentbag@1.1.1
Loaded Mods: game@1.19.4, tentbag@1.1.1, creative@1.19.4, survival@1.19.4
System.InvalidOperationException: Cannot call this method outside the main thread. Not thread safe to do so. You can use the thread safe method .EnqueueMainThreadTask() to queue up the register on the main thread instead.
at Vintagestory.Client.NoObf.ClientEventAPI.RegisterCallback(Action`1 OnTimePassed, Int32 millisecondDelay) in VintagestoryLib\Client\API\ClientEventAPI.cs:line 542
at TentBag.Configuration.FileWatcher.QueueReload(Nullable`1 change) in C:\Users\Billy\RiderProjects\TentBag\src\Configuration\FileWatcher.cs:line 48
at TentBag.Configuration.FileWatcher.Changed(Object sender, FileSystemEventArgs e) in C:\Users\Billy\RiderProjects\TentBag\src\Configuration\FileWatcher.cs:line 26
at System.IO.FileSystemWatcher.NotifyFileSystemEventArgs(WatcherChangeTypes changeType, ReadOnlySpan`1 name)
at System.IO.FileSystemWatcher.ParseEventBufferAndNotifyForEach(ReadOnlySpan`1 buffer)
at System.IO.FileSystemWatcher.ReadDirectoryChangesCallback(UInt32 errorCode, UInt32 numBytes, AsyncReadState state)
at System.IO.FileSystemWatcher.<>c.b__85_0(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* overlappedPointer)
at System.Threading.PortableThreadPool.IOCompletionPoller.Callback.Invoke(Event e)
at System.Threading.ThreadPoolTypedWorkItemQueue`2.System.Threading.IThreadPoolWorkItem.Execute()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()

I figured you'd want to know that it was crashing with no other mods enabled whatsoever.

💬 DJLinder, Feb 28th at 6:33 AM

I'm loving the use of it, one quick suggestion came to mind. 

Can you automate a waypoint creation at the centerpoint of the tentbag during the unpack, and label it "Tentbag" or "Tent" or "Camp" etc?.  (Even better, pin the created waypoint so we can't easily forget it!)

You could also automate the removal of the waypoint during the packing operation.

💬 ScantLobster, Feb 18th at 12:28 PM

I've been trying to use this mod for the past couple days, I'm still running 1.18.15 and when I download it doesn't want to add to the game. The file is in the mods folder but no config file is loading. I've tried all the versions that are supported for 1.18. Am I doing something wrong or missing a step? I have the useful mod and that is working for me fine. Any advice would be appreciated. :)

💬 Mendall, Feb 4th at 12:15 AM

Thanks for the answer the food spoiling thing will not affect me, I used the original tent bag to allow me to travel long distances for a long period of time (like a full in game year or more) while I find the perfect place to build. Plus, I just kinda like the nomad lifestyle. When moving every day like that, all you need to do is forage. So I never store food any way. The best thing about this mod is not having to clear a spot of all grass. Thing is, I can't give up the chiseling bench and trader welcome mat from useful stuff, so will probably be running both. Hopefully your tent bag is more stable as well, that was my only gripe b4 it crashed the game a lot when packing your tent up again.

💬 DarkThoughts, Feb 3rd at 3:01 PM

Mendall Yes, you can use chiseled blocks. The mod is affected by a bug which I think is VS related in that insulated rooms turn into greenhouses instead of cellars when placed down again (I could replicate this with the worldedit move tool too). This will consequently cause food items to spoil much quicker. So right now I'd treat this more of a quick & dirty way to quickly plonk down something to sleep, not something to camp out in for a while in a region.


💬 Mendall, Feb 2nd at 3:27 AM

I used the original mod and was able to turn off the limitation on storage, keeping its inventory in the config files as well as making it a little larger. In short, my chests could keep storage.

I didn't have a food vessel, though, so cant say if it would have been possible.

The original tent bag was a bit unstable if a small animal was inside when you tried to pack it up the game would crash, if grass had grown to close outside when you packed it the game would crash. ECT.... but over all it made for a fun play style just wandering around setting up a tent for the night.

One question, can you use chiseled blocks in this version?

I play single player world.

💬 DarkThoughts, Jan 31st at 4:30 PM

I second the storage issue. I'd kinda like to have a storage vessel inside for better spoilage time but not if it keeps its items. Like, worst case we ban all storage containers (might be hard with modded ones?) and carry one extra that we plonk down inside of it. But dropping a 7x7 area full of trunks seems bonkers and cheaty.

💬 UA_Shaman, Jan 30th at 4:31 PM

When I download the world gives the following error:
30.1.2024 18:28:55 [Error] [configlib] An exception was thrown when trying to load assembly:
30.1.2024 18:28:55 [Error] [configlib] Exception: Assembly with same name is already loaded
at System.Runtime.Loader.AssemblyLoadContext.g____PInvoke|5_0(IntPtr ptrNativeAssemblyBinder, UInt16* ilPath, UInt16* niPath, ObjectHandleOnStack retAssembly)
at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
at System.Reflection.Assembly.LoadFrom(String assemblyFile)
at Vintagestory.Common.ModAssemblyLoader.LoadFrom(String path) in VintagestoryLib\Common\API\ModAssemblyLoader.cs:line 34
at Vintagestory.Common.ModContainer.<>c__DisplayClass35_0.b__0(String path) in VintagestoryLib\Common\API\ModContainer.cs:line 449
at System.Linq.Enumerable.SelectListIterator`2.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.ToList()
at Vintagestory.Common.ModContainer.LoadAssembly(ModCompilationContext compilationContext, ModAssemblyLoader loader) in VintagestoryLib\Common\API\ModContainer.cs:line 448

Before that, I tested the Still Usefull Staff mod

💬 Adler1011, Jan 30th at 4:16 AM

I think the banned list is to prevent people from making portable farms, or using tent bags as a quick way to excavate large areas. Just my 2 cents.

💬 bringitonwimps, Jan 29th at 11:54 PM

is it possible to make it so firews and chests can not either be part of the tent or at least they can not hold items?.. notice if we pick up ternt with fire even lit not only does the wood remain in it also the fire is still lit when we place it again.  I ask because i know if i use this mod on my server people will turn t into one giant chest.  Just asking, if not no huge issue.  thanks

💬 DarkThoughts, Jan 29th at 2:29 PM

So you could have like a max 5x5x2 type of interior, excluding chiseled half spaces of course, right? Assuming you use the entire space for a "tent". VS really needs wool blocks or something though.

💬 BillyGalbreathAuthor, Jan 27th at 8:41 PM


I got you, fam. ^_^

💬 ChadStevens, Jan 27th at 2:26 PM

Needs screenshots

💬 DrBubba, Jan 24th at 5:44 PM

Love this idea.  Thanks for sharing the mod.

(edit comment delete)