Mods / Configurable Room Size

Tags:
Utility QoL Tweak Simplification
Authors:
dstronaut, BiggBenn
Side:
Both
Created:
Jul 5th 2025 at 3:09 PM
Last modified:
May 5th at 11:23 PM
Downloads:
10750
Latest release (for Vintage Story 1.22.0-pre.1 - 1.22.2, potentially outdated):
configurableRoomSize_1.3.2.zip  1-click install

Vintage Story - Configurable Room Size Mod

This mod allows you to configure maximum room sizes in Vintage Story, so you can create larger interiors and still be warm.

How to use:

Launch the game/server with the mod to generate config files.
Then edit ConfigurableRoomSize.json in ModConfig folder in respective client/server game files (server needs restarting).
When playing online config is synchronized with the server.

{
"MaxRoomSize": 24,
"MaxCellarSize": 7,
"AltMaxCellarSize": 9,
"AltMaxCellarVolume": 150
}

That's all!

PERFORMANCE NOTE:

The performance impact is approximately the cube of the increase in room size, from the vanilla default of 14. Small table of performance cost for reference:

Room Size Factor on Vanilla Performance impact
14 1 1x
28 2 8x
42 3 27x
56 4 64x
70 5 125x
84 6 216x

 

I (BiggBenn) have a really good PC, and I personally use these values:

{
"MaxRoomSize": 28,
"MaxCellarSize": 14,
"AltMaxCellarSize": 18,
"AltMaxCellarVolume": 300
}

I won't stop you from going to insane values, but you best have a NASA supercomputer to match... Sorry that this mod isn't more efficient.

 

How to Contribute

Fork the project on github and make pull request with your changes.

Acknowledgments

Thanks to BiggBenn for updating the mod to 1.21 and providing multiplayer sync.

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
1.3.2 configurableroomsize
1.22.0-pre.1 - 1.22.2
2038 May 5th at 11:23 PM configurableRoomSize_1.3.2.zip 1-click install

Just recompiled for 1.22
works on my end :)

1.3.1 configurableroomsize 4926 Oct 5th 2025 at 11:56 AM configurableRoomSize_1.3.1.zip 1-click install

Minor change for compatibility/parity with 1.21.2 of VS

specifically only added dimension to two lines of RoomRegistry, see this commit on the official VS repo

1.3.0 configurableroomsize 431 Oct 4th 2025 at 12:25 AM ConfigurableRoomSize_1.3.0.zip 1-click install

Fixed rooms larger than vanilla not working
Under the hood it was a bit complicated, but as long as you keep your rooms at a reasonable size, it should work. If not please comment!

-Benn

1.2.0 configurableroomsize 795 Sep 23rd 2025 at 1:27 PM configurableroomsize_1.2.0.zip 1-click install

Multiplayer config sync added by BiggBenn

1.1.0 configurableroomsize 1289 Sep 13th 2025 at 6:39 AM configurableroomsize_1.1.0.zip 1-click install

Update to 1.21 thanks to BiggBenn

1.0.0 configurableroomsize 1271 Jul 5th 2025 at 3:11 PM configurableroomsize_1.0.0.zip 1-click install

Initial release


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

JokoJose, Jul 7th at 3:08 AM

Hey guys, as I was using this mod and reading the comments on how hard it is on performance, I came up with an idea. This mod is amazing because it lets us increase room size, but the vanilla system makes it so that a bigger room size requires more processing power, affecting performance. What if, instead of "making room bigger," we could keep vanilla values and add an "invisible" block that can be used as an invisible wall that the player can walk through? In that way, instead of changing configurations to the room size itself, we just merge 2 different size rooms using only an invisible wall between the rooms. This should, in theory, be more friendly on performance. 

What do you guys think? I bring it up because I do not know programming and have no idea how to make a mod. If I attempt this myself, I would have to rely heavily on AI and would probably make a half-trash mod instead. 

You guys think something like this is possible BiggBenn

MadSeraph, Jul 4th at 1:52 AM

I don't know if this mod has anything to do with this, or if it's just caught in the middle, but I have an issue involving From Golden Combs ceramic hibes, VS Roofing, and this mod:

Crash Report
3.7.2026 20:29:51 [Error] Exception thrown when initializing a block entity with classname beceramichive:
3.7.2026 20:29:51 [Error] Exception: Object reference not set to an instance of an object.
at VSRoofing.AutoRoofEntity.GetRetention(BlockFacing facing, EnumRetentionType type) in /home/danielt/Documents/vsroofing/vsroofing/src/blockentities/autoroof.cs:line 5301
at VSRoofing.RoofBlock.GetRetention(BlockPos pos, BlockFacing facing, EnumRetentionType type) in /home/danielt/Documents/vsroofing/vsroofing/src/blocks/RoofBlock.cs:line 694
at ConfigurableRoomSize.Patches.Patch_FindRoomForPosition.CustomFindRoomForPosition(RoomRegistry self, BlockPos pos, ChunkRooms otherRooms) in G:\vinmodding\ConfigurableRoomSize\ConfigurableRoomSize\Patch_FindRoomForPosition.cs:line 29
at Vintagestory.GameContent.RoomRegistry.FindRoomForPosition_Patch2(RoomRegistry this, BlockPos pos, ChunkRooms otherRooms)
at Vintagestory.GameContent.RoomRegistry.GetRoomForPosition(BlockPos pos) in VSEssentials\Systems\RoomRegistry.cs:line 391
at FromGoldenCombs.BlockEntities.BECeramicBroodPot.Initialize(ICoreAPI api) in C:\Users\vinte\source\repos\FromGoldenCombs\FromGoldenCombs\BlockEntities\BECeramicBroodPot.cs:line 112
at Vintagestory.Client.NoObf.ClientChunk.InitBlockEntitiesFromPacket(ClientMain game) in VintagestoryLib\Client\Model\ClientChunk.cs:line 362
3.7.2026 20:29:51 [Error] Exception thrown when initializing a block entity with classname beceramichive:
3.7.2026 20:29:51 [Error] Exception: Object reference not set to an instance of an object.
at VSRoofing.AutoRoofEntity.GetRetention(BlockFacing facing, EnumRetentionType type) in /home/danielt/Documents/vsroofing/vsroofing/src/blockentities/autoroof.cs:line 5301
at VSRoofing.RoofBlock.GetRetention(BlockPos pos, BlockFacing facing, EnumRetentionType type) in /home/danielt/Documents/vsroofing/vsroofing/src/blocks/RoofBlock.cs:line 694
at ConfigurableRoomSize.Patches.Patch_FindRoomForPosition.CustomFindRoomForPosition(RoomRegistry self, BlockPos pos, ChunkRooms otherRooms) in G:\vinmodding\ConfigurableRoomSize\ConfigurableRoomSize\Patch_FindRoomForPosition.cs:line 29
at Vintagestory.GameContent.RoomRegistry.FindRoomForPosition_Patch2(RoomRegistry this, BlockPos pos, ChunkRooms otherRooms)
at Vintagestory.GameContent.RoomRegistry.GetRoomForPosition(BlockPos pos) in VSEssentials\Systems\RoomRegistry.cs:line 382
at FromGoldenCombs.BlockEntities.BECeramicBroodPot.Initialize(ICoreAPI api) in C:\Users\vinte\source\repos\FromGoldenCombs\FromGoldenCombs\BlockEntities\BECeramicBroodPot.cs:line 112
at Vintagestory.Client.NoObf.ClientChunk.InitBlockEntitiesFromPacket(ClientMain game) in VintagestoryLib\Client\Model\ClientChunk.cs:line 362
3.7.2026 20:29:51 [Error] Exception thrown when initializing a block entity with classname beceramichive:
3.7.2026 20:29:51 [Error] Exception: Object reference not set to an instance of an object.
at VSRoofing.AutoRoofEntity.GetRetention(BlockFacing facing, EnumRetentionType type) in /home/danielt/Documents/vsroofing/vsroofing/src/blockentities/autoroof.cs:line 5301
at VSRoofing.RoofBlock.GetRetention(BlockPos pos, BlockFacing facing, EnumRetentionType type) in /home/danielt/Documents/vsroofing/vsroofing/src/blocks/RoofBlock.cs:line 694
at ConfigurableRoomSize.Patches.Patch_FindRoomForPosition.CustomFindRoomForPosition(RoomRegistry self, BlockPos pos, ChunkRooms otherRooms) in G:\vinmodding\ConfigurableRoomSize\ConfigurableRoomSize\Patch_FindRoomForPosition.cs:line 29
at Vintagestory.GameContent.RoomRegistry.FindRoomForPosition_Patch2(RoomRegistry this, BlockPos pos, ChunkRooms otherRooms)
at Vintagestory.GameContent.RoomRegistry.GetRoomForPosition(BlockPos pos) in VSEssentials\Systems\RoomRegistry.cs:line 382
at FromGoldenCombs.BlockEntities.BECeramicBroodPot.Initialize(ICoreAPI api) in C:\Users\vinte\source\repos\FromGoldenCombs\FromGoldenCombs\BlockEntities\BECeramicBroodPot.cs:line 112
at Vintagestory.Client.NoObf.ClientChunk.InitBlockEntitiesFromPacket(ClientMain game) in VintagestoryLib\Client\Model\ClientChunk.cs:line 362
MadSeraph, Jul 4th at 9:24 PM (modified Jul 4th at 9:24 PM)
@MadSeraph: I don't know if this mod has anything to do with this, or if it's just caught in the middle, but I have an issue involving From Golden Combs ceramic hibes, VS Roofing, and this mod: Crash Report 3.7.2026 20:29:51 [Error] Exception thrown when initializing

ya I'm pretty much convinced this mod has nothing to do with the issue, but while investigating I did notice you're doing a lot of unnecessary repeated reflection in your prefix. You could probably gain a significant amount of performance hoisting and caching the MethodInfo objects or even better using UnsafeAccessors where possible.

IWillSoonReturn, Jul 3rd at 2:13 AM

I just cranked roomsize to 87 and my pc is dookie am I cooked chat

Randompug, Jul 2nd at 11:35 PM

Was trying to figure out why I was still freezing even after making a wall between the two sections of my house that would split it up evenly only to discover that my house was fucking 15 blocks wide. Thank you for saving me!

WeSmokeDabs420, Jun 30th at 10:00 AM

does this work with greenhouses?

SpacePerson, Jun 21st at 7:58 PM

For some reason this mod makes chiseled slabs invalid that otherwise would work fine in vanilla, so rooms that were previously sealed no longer stay sealed 

James1983, Jun 21st at 1:11 PM

As of June 21, when I launch game it dosent generate ConfigurableRoomSize.json in ModConfig folder for me.

ItsMeJoe, Jun 14th at 10:28 AM

Any possibility of compatibility with the Shadehouse mod? Currently with this mod installed it classes shadeshouses as greenhouses which is pretty funny but the complete opposite of how its supposed to work.
Great mod otherwise

hexlight, May 28th at 4:42 AM (modified May 28th at 4:44 AM)

Definitely curious - why hasn't a mod been made that allows players to manually define a room with no automatic calculations involved? Theoretically no performance loss since the room definitions would be stationary unless manually edited by a player, and players get to really flex their creativity without the extremely restrictive room size limits.

Sure this could easily be abused, however that's why it'd be great as a mod. I'd personally love something like that for my own builds. I am not familar with the details of modding VS though so maybe this is impossible for one reason or another.

ZenithDaWuff, Jun 5th at 7:11 PM
@hexlight: Definitely curious - why hasn't a mod been made that allows players to manually define a room with no automatic calculations involved? Theoretically no performance loss since the room definitions would be stationary unless manually edited by a player, and

Yes, agreed! I like making big, open buildings but can't really do that with this mod and have to put in separators. A mod that would let the player simply define an enclosed space as a room without the need for constant calculations would be so much more useful.

GotoFinal, May 18th at 8:56 AM

any option to make this not affect greenhouses?

MayaPapaya, May 31st at 6:25 PM
@GotoFinal: any option to make this not affect greenhouses?

I think if you just leave AltMaxCellarSize and AltMaxCellarVolume alone then greenhouses are unaffected. 

MayaPapaya, Jun 10th at 5:04 PM
@ZenithDaWuff: Are greenhouses considered cellars by the game's logic?

I think they are a cellar made of glass that require sunlight, where cellars need to be made of stone or dirt and require no sunlight

Flossimoth, Jun 14th at 8:04 AM
@MayaPapaya: I think they are a cellar made of glass that require sunlight, where cellars need to be made of stone or dirt and require no sunlight

I don't think that's right, as a greenhouse's max size is the same as a room's max size, not a cellar's max size. in vanilla a greenhouse can be up to 14 x 14 x 14, and needs at least 50% of the roof to be glass blocks or slabs. and from experience, changing the room size config in this mod changed the greenhouse size too (I have it set to 16 x 16 x 16, so I can have a 15 x 15 plot of farmland and a 1 x 15 strip at the front for chests, tools, etc)

JokoJose, May 9th at 1:29 PM

Thanks BiggBenn will download now :)

BiggBenn, May 7th at 8:55 PM

NagiPantsu your understanding would appear to be correct.
Ideally, this mod would just change some variables and let the game functions run unpatched, but there's more fundamental changes to private variables and constants that can't just be done by patching the variables (maybe if you use the IL transpiler in Harmony, but I'm not fluent in that, and it would be more sensitive to minor changes in the RoomRegistry.cs file).

So the way it works is that ConfigurableRoomSize patches the entire "FindRoomForPosition" method, overriding it with a slightly modified version to handle bigger rooms. So if your ice block mod overrides that function (which really, it shouldn't, it could just override the GetRetention method of the relevant blocks), I'm pretty sure that's incompatible.
But like I said, in all likelihood that mod doesn't override FindRoomForPosition, so it should be fine. 
If you link me the mod, I can check for you (if I have time over the next few days) :)

NagiPantsu, May 8th at 4:28 AM (modified May 8th at 4:29 AM)
@BiggBenn: NagiPantsu your understanding would appear to be correct.Ideally, this mod would just change some variables and let the game functions run unpatched, but there's more fundamental changes to private variables and constants that can't just be done by patchi

BiggBenn Is this mod. Mod is overriding BlockBehavior.GetRetention so it returns -1 during RoomRegistry for blocks with BlockBehaviorIceCooling attached and then working with whatever Room values are for spoilage rates. Thanks for taking your time to respond it helps me to learn.

NagiPantsu, May 7th at 1:15 AM

So I am a bit new to VS modding but as I understand:

1. Game starts.
2. ConfigurableRoomSize loads its config and applies its Harmony patch to the room-size logic.
3. Then RoomRegistry checks a room and patches logic uses the custom limits.
4. ?????
5. Profit.

I'm asking because I have a mod that applies a bonus to a cellar made of +50%  ice cooling blocks. It should work but I want to make sure I'm getting how this works.

BiggBenn, May 5th at 11:24 PM

JokoJose 1.22 version is uploaded, only really needed a recompile as they haven't changed the RoomRegistry System much!

esen, Apr 18th at 8:22 PM

@BiggBenn I'm extremely late but thanks for the reply! (:

BiggBenn, Apr 18th at 10:01 AM

JokoJose absolutely no need to apologize :) I'll try to get a 1.22 version out once that's stable

JokoJose, Apr 11th at 5:06 PM

hey BiggBenn
sorry i had taken a break from gaming. i am back now but i am on 1.22 version of the game. I will try it out once the 1.22 update is done, which I understand many modders prefer to update once versions are stable.

SizzleCorndog, Apr 10th at 7:44 PM

Ah yeah it was the microblocks on some chiseled windows. Thx for the heads up

BiggBenn, Apr 8th at 12:19 AM

SizzleCorndog "Slabs are counted as solid on the side that is flush with other blocks, but not on any others" https://wiki.vintagestory.at/Room it can be a bit finnicky. Once I had a room not recognized because the doors were over stone path, and that block is like 1 or 2 microblocks shorter than a full one. I hope you'll figure it out :)

Waos only slightly. Afaik a mod injecting a different method at runtime will always cause a minor performance impact, but if you don't increase the MaxRoomSize variable from the vanilla 14, the impact should be minimal. 

Waos, Apr 3rd at 3:54 AM

If i just change the value for the cellar, would the performance still be affected?

SizzleCorndog, Apr 3rd at 12:18 AM

This feels more like a general rooms question, but why are slabs not valid? I increased the roomsize then went to check a room where my ceiling is made of normal slabs that are flush with the second floor. For some reason the room check command instead draws a red box around the entire building rather than just the room. What am I doing wrong here?

BiggBenn, Feb 21st at 9:04 PM

TiredRabbit yes! My greenhouse is definitely larger than 14 blocks, and still counts.

Chrish124 Dragonchampion I think the performance impact is isolated to the server. In testing, when using insane numbers in a singleplayer game, the client usually remains responsive. You can walk around and open the menu etc, just any interaction that would require the server (opening doors, placing/removing blocks, basically anything that makes this a game rather than just a walking simulator) is impacted by the lag. However, I have not stress tested it in multiplayer, maybe there's some mechanism I'm unaware of that degrades performance for connected players.

Dragonchampion, Feb 21st at 9:46 AM

I would like to second Chrish124's question. Client or Server lag when playing on a server?

Chrish124, Feb 21st at 5:08 AM

If running on a server would the perfomance impact be on the client , the server or both ?

TiredRabbit, Feb 21st at 2:15 AM

Hello, does this work for greenhouse size as well?

BiggBenn, Feb 14th at 1:19 AM

Inglourious been testing a bit with my values, can't reproduce your problem, sadly...
Maybe it's a dumb idea, but did you change the values during runtime? As in while the game was running? Perhaps try restarting the game between changes in config. It shouldn't be the problem, but god knows :D

BiggBenn, Feb 11th at 9:52 PM

No need to be sorry, languages are hard :)
That it didn't recognize your room is odd. I'll try to find the energy to poke around the code a bit more after work tomorrow.

Inglourious, Feb 11th at 5:56 PM

@biggbenn I meant that I tried increasing up to 75. So I started out with 14, went to 28 etc- but my game didnt recognize it as a room (with the /debug rooms hi command) no matter how much I increased it :) Sorry for the confusion, English isnt my first language. I really appreciate you and this mod 

BiggBenn, Feb 9th at 5:23 PM

I have updated the description to warn of the performance impact high values can have :)

BiggBenn, Feb 9th at 5:08 PM

Inglourious I have a really strong computer, and I have it set to this:
{
"MaxRoomSize": 28,
"MaxCellarSize": 14,
"AltMaxCellarSize": 18,
"AltMaxCellarVolume": 300
}

The computation required increases CUBICALLY, that is to say, you increased the RoomSize from 14 (vanilla default) to 75, that's a factor of 5.36. Cubed, that's a factor of 154 more computation, not including inefficiencies added by patching functions via harmony in runtime.
I strongly suggest not going that high. I won't stop you from doing that, but since it will cause room calculations to be up to/around 154 times slower, it will very likely cause the "server" that vintage story runs in the background when playing single player to seize up.
Add to that that the game calls the function to try and find the room very liberally (often), because in vanilla the performance impact is capped by the small max room size, this can quickly get out of hand...

I'm sorry if you have a need for rooms that big. This simple mod just patches the original vanilla function, to make it efficient enough to run room sizes that large it would need a full rewrite, possibly some added blocks, and I currently don't have the time or knowhow to do that... Code is available on GitHub, both ours and the vintage story codebase, so if anyone e lse feels up to it, go for it!

Inglourious, Feb 7th at 1:44 PM

Add: I got ahold of the /debug rooms hi command. Without editing the room sizes, but the mod enabled, I had no lag. I tweaked the settings up to 75 room size, but the /debug rooms hi command did not register it as a room. Above 35 I started getting the stuttering. By adding walls I could confirm with /debug rooms hi that vanilla settings still applied.

 

image

Inglourious, Feb 7th at 1:20 PM

BiggBenn Sorry, English isnt my first language. Massive performance problems. 

image

This pops up every now and then (singleplayer). It causes massive stuttering/micro freezes to the point where I cannot do anything in came. It does however increase the room size! 

BiggBenn, Feb 2nd at 1:34 AM

Inglourious does it not work or does it cause massive performance problems?
Even if you set the values to match vanilla, the nature of using harmony to patch the relevant functions at runtime probably causes a loss in performance.
Some other mods (like immersive Lanterns, recently removed that from my local server for that reason) call the relevant functions every single frame, exponentially worsening the performance loss in using this mod.
As mentioned before, I am looking into trying to reduce the performance impact, but that's more complicated than simply overriding the vanilla functions with dynamic values (the dynamic nature also decreases performance. Probably why the values are set in stone in the base game.)

Inglourious, Feb 1st at 9:09 AM

Does not work on 1.21.6 sadly. Would love an update.

 

I got horrible stuttering and lag when I used it. I tried to adjust the room sizes to see if I had made them too big. It was to the point that if I placed down a chest I placed 3 and opened them all.

BiggBenn, Jan 21st at 8:40 AM

esen current version works on 1.21.5 as far as I am aware :) I just didn't add every minor version to it, but it works on 1.21.6, the version I currently use.

esen, Jan 20th at 5:15 PM (modified Jan 20th at 5:43 PM)

Hello! Is there any chance this is getting a 1.21.5 update? I accidentally built my greenhouses as a 15x15 and am crying rn. ;w;

Cykaima, Jan 10th at 8:58 PM (modified Jan 10th at 8:58 PM)

YOU ARE A HERO <3

BiggBenn, Jan 6th at 8:18 AM

Hey THEHummingBeard, I could've sworn I replied to you, but I must've forgot to hit send in the christmas chaos.

It's an interesting idea that I also considered in a different context (heating a greenhouse), but it would require a more fundamental overhaul of the RoomRegistry and Room System to include an index of what special blocks are inside the room.
That is to say, I'll see if I can make it work in my free time, but no promises ;)
It would lessen the strain on the PC, theoretically. I'm not exactly sure how much performance the harmony library eats of any such improvements, but it could help. Though scanning a would-be room for those special blocks during the check if the room even qualifies could also be performance intensive. Only way to know is to implement it and test.
Lord only knows if I'll have the time before 1.22 releases...

THEHummingBeard, Dec 22nd 2025 at 1:12 AM
Spoiler

why not make a mod that adds a block that, when place inside of what is considered a room, up to a max size limit, it forces that room to be either a normal Room, a Cellar or a Greenhouse.

that would allow a larger room to be a Cellar or even just a big room retaining heat without the need of a special code to change the allowed size.

it would also most likely cut down on lag spikes and FPS drops. at least, i THINK it would lessen the strain all in all on the PC. i COULD be wrong tho, but you wont know until you try it.

 

ChatGPT says it is possible, and would lessen the impact on the PC by quite a bit as it would only have to check that this block exists, find the room it is in and then check the statistics on that room and force the conversion IF the block is there.

havinga safety limit is of course a must so that if it is place outside it wont convert the entire world into a walkaround Fridge and most likely crash the game and corrupt the save. i am no coder, so i would leave that to those that know how this works. but i know it is possible, and would lead to FAR less strain on the PC and the game world as a whole not having to calculate the new rules in ALL rooms across the ENTIRE world. using a block to force one room into a Cellar, Normal Room or a Greenhouse would be an ideal replacement of this mod in it's entirety for pretty much all reasons, since it would involve building it, meaning you need the materials for it, making it balanced gameplay wise as well. could even add multiple blocks that do the same, but at different Room Size Impacts.

for example, one Air Duct Block that forces a room into a Cellar could be 14x14x14, another 18x18x18 and the biggest one 22x22x22. of course, the changes would have to be tested properly first. i would be glad to do so, as long as the mod will be made lol.

ErikaVenice, Nov 30th 2025 at 5:51 PM

i installed the mod and the game lags a lot every few seconds, is there a fix?

ZenithDaWuff, Nov 26th 2025 at 12:36 AM (modified Nov 26th 2025 at 12:58 AM)

Using the latest version for 1.21.1 (waiting for a whole number release to update everything) and I'm getting the consistent lag spikes with this mod installed and a very reasonable increased room size value of 28. I also have my server MaxThreads values both set at 1. I am not using any mod that changes the hud in a noticable way, as far as I know.

My Mod list and lag spike photo

Lag spike pic

My Mod list
bettercrates, coldstorage, copperandgrain, extrachests, feverstonewilds, flexibletools, swfreqsharks, glassdoor, immersivelanterns, kemonoskins, lanternpost, longtermhusbandry, magellan2k, millwright, moreiconscs, morestorage, mutihometp, shroomies, overhaullib, satup, shelfobsessed, simplepaperlanternrecipe, sortablestorage, usefulshears, game, vsimgui, wildfarmingrevival, abcsredux, accessibilitytweaks, aculinaryartillery, aged, agingbarrels, allclasses, animalcages, apelanterns, attributerenderinglibrary, egocaribautomapmarkers, awearablelight, bedspawnv2, beesmoker, betterfirepit, betterruins, bettertraders, biomes, bloodtrail, chiselwiz, chutemod, commonlib, composter, configlib, configurableroomsize, configureeverything, crosscomme, danatweaks, expandedstomach, extended-sleep-time, fieldsofsalt, floatingfish, foodshelves, footprints, freedomunits, fromgoldencombs, handbookdeclutterer, handytweaks, herbarium, jaunt, jopainting, kemono, kevinsfurniture, knapster, lcupdated, levelup, lootablebloomery, maltiezfirearms, medievalexpansionpatch, millwrightvawtaddon, morepiles, ndlwoodentorchholder, noholdfruitpress, pelaguswinds, petai, purposefulstorage, recipepatcher, repairmepatch, rivers, saltpeterproduction, thecritterpack, trashmod, universalhusbandry, usefulstuff17, vanillaarmory, vanvar, Verticality, creative, vsquest, survival, waterunderfarmland, waterweathersimulationredux, woodenfortifications, autoconfiglib, cats, compatlayer, draconis, expandedfoods, em, foxtaming, fruitintroughs, petbackback, playercorpse, stonequarry, tpnetpatched, wkfa, wildcraftfruit, wildcrafttree, wolftaming, xinvtweaks, bricklayers, dragonfarm, tailorsdelight, ashes

Has anyone else come up with any different solutions to this?

BiggBenn, Nov 25th 2025 at 11:51 PM

Nyxara thank you for the crash report... Can you tell me what your config settings are? Can you reproduce the crash?
I don't think it's necessarily a bad interaction with the bee mod, more than likely the completed "langstroth" just checks if it is in a room, calling the GetRoomForPosition function, triggering a room calculation centered on it.

I can't really determine what array is out of bounds, sadly :( Only a vague hunch of a possible culprit.

Nyxara, Nov 25th 2025 at 10:18 PM (modified Nov 25th 2025 at 10:27 PM)

My game crashed while I was trying to build a langstroth from "From Golden Combs" mod. It crashed when I tried to put the final piece on. Nevermind the bee mod, I thing my games server just overloaded.

Crash Report

Running on 64 bit Windows 10.0.26200.0 with 65374 MB RAM
Game Version: v1.21.5 (Stable)
25/11/2025 23:12:52: Critical error occurred in the following mod: configurableroomsize@1.3.1
Loaded Mods: walkingstick@1.0.4, alextweaks1@, ancientarmory@1.1.8, betterforest@0.1.1, birdseye@0.1.3, butcheringboneconverter@1.0.0, buzzybees@1.1.7, canoemode@1.0.4, chandeliercraft@2.0.0, cbr@2.0.0, chiseltools@1.15.3, rlldtco0001@1.2.4, craftablecompanion@1.4.1, creativegrassrecipe@1.0.0, decopottery@1.1.0, diversediets@1.0.3, figurines@0.1.6, floralzonescaperegion@1.0.28, floralzonescaribbeanregion@1.0.23, floralzonescentralaustralianregion@1.0.20, floralzonescosmopolitanregion@1.0.11, floralzoneseastasiaticregion@1.0.19, floralzonesmediterraneanregion@1.0.19, floralzonesneozeylandicregion@1.0.19, fadynasties@1.2.5, fagothic@1.3.1, fagreenwich@1.4.2, fahussar@1.1.3, falandsknecht@1.2.2, fatemplar@1.4.3, faviking@1.0.0, bovinae@0.3.4, caninae@1.0.35, capreolinae@2.0.4, casuariidae@1.1.8, cervinae@0.1.11, chelonioidea@1.0.6, dinornithidae@1.0.21, elephantidae@1.0.16, felinae@0.2.12, iniidae@0.1.5, machairodontinae@1.1.1, manidae@1.0.18, meiolaniidae@0.1.8, pantherinae@1.2.5, rhinocerotidae@1.0.22, sirenia@1.0.25, spheniscidae@1.0.14, thylacinidae@0.1.5, viverridae@1.0.7, vombatidae@0.4.4, froghats@1.1.1, geodesandgemstonesforked@1.0.0, geoaddons@1.4.4, glowtorns@1.0.1, hangingoillamps@1.0.5, flowercirclet@1.1.0, juicyores@1.0.1, kyuubs@1.1.1, ezwolfsandbears@3.1.0, abelisauridae@1.0.11, ankylosauria@1.0.19, carcharodontosauridae@1.0.7, ceratopsidae@1.2.1, dromaeosauridae@1.0.18, hadrosauroidea@1.0.12, macronaria@1.0.21, mosasauridae@1.0.14, ornithomimosauria@1.0.4, pachycephalosauria@1.0.10, spinosauridae@1.1.0, stegosauria@1.0.2, therizinosauridae@1.0.2, tyrannosauridae@1.4.2, mbr@1.0.0, metalleaf@1.2.1, millwright@1.3.0, molds@0.2.7, morebanners@1.3.0, moremeadoptions@2.0.1, overhaullib@1.13.13, particlesplus@2.3.1, playermodellib@1.6.3, plumpkins@1.1.3, primitivesurvival@4.0.1, prospecttogether@2.1.1, shelfobsessed@1.9.1, soaplyeandbloom@1.3.6, spyglass@0.6.0, tankardsandgoblets@1.3.4, temporalsymphony@2.2.2, temporalweapons@1.1.1, unchisel@1.1.6, usefulshears@1.0.0, game@1.21.5, vsimgui@1.1.16, wallpaperblocks@2.0.1, wildfarmingrevival@1.4.2, woodproc@1.0.0, alchemy@1.7.20, animalcages@4.0.2, antlershorns@1.3.6, apebeams@1.1.1, apeflowerpots@1.3.1, apegrapes@1.3.1, apelanterns@1.3.4, apewindows@1.4.0, wrenchroof@1.3.0, arrowbarrels@1.4.0, attributerenderinglibrary@2.4.0, egocaribautomapmarkers@4.0.3, bettererprospecting@1.4.0, betterjonasdevicesfixed@2.1.4, betterruins@0.5.4, betterstonepath@1.0.4, bettertraders@0.1.0, bloodtrail@1.1.8, bradyblocktransmutation@0.2.5, butchering@1.10.11, butteflydisplay@1.1.0, carryon@1.12.1, cartwrightscaravan@1.8.0, cheaperlanternlining@1.0.0, colorfulcandles@1.2.5, combatoverhaul@0.10.17, commonlib@2.8.0, composter@1.2.1, configlib@1.10.11, configurableroomsize@1.3.1, coolergreens@1.0.0, doorvariants@1.0.0, dreamcatchers@1.0.2, entitycolortint@2.1.3, tackandequipment@1.0.0, extendedcreation@1.1.7, extrainfo@1.10.1, farmlanddropswithnutrients@1.2.2, farseer@1.3.2, foodshelves@2.3.3, footprints@1.1.1, fromgoldencombs@1.9.4, genelib@2.1.5, geologymap@1.0.1, spawngiantwaterlilies@1.0.1, goblinears@2.3.3, handbookbookmarkbutton@0.1.2, handbookdeclutterer@0.6.0, hazjackalope@1.0.5, hazmonitors@1.0.2, herbarium@1.4.1-rc.1, hieronymusreptiles@1.1.3, hydrateordiedrate@2.2.26, itempickuphighlighter@1.2.2, itempickupnotifier@1.9.1, jaunt@2.1.1, kevinsfurniture@1.7.5, krpgenchantment@1.2.22, krpgwands@0.6.1, aaloppatch121@0.0.1, maltiezfirearms@1.5.2, mannequinstand@1.0.7, materialneeds@1.1.4, medievalexpansionpatch@1.3.4, metalpots@1.6.1, meteoricsteel@1.0.6, mobsradar@2.1.12, moreanimals@1.6.6, morepiles@2.2.0, mountcamerafix@0.2.0, mythiclegends@1.0.0, ndlchiselpick@3.1.1, ndlwoodentorchholder@2.0.3, oneroof@1.11.0, opdoorpack@0.0.1, petai@4.0.3, purposefulstorage@1.5.1, recyclingtools@1.4.4, rustboundmagic@3.1.5, saltpeterproduction@1.1.0, scaffolding@1.2.5, scarecrow@1.7.1, simpleentityhealthbar@0.0.7, sprinklersmod@1.0.2, spyglassinfo@1.0.2, statushudcont@4.0.2, stepupadvanced@1.2.3, temperaturemonitor@0.9.9, terraprety@7.0.8, th3dungeon@0.4.4, thecritterpack@1.3.4, titanarum@1.0.0, toolsmith@1.2.14, torchholderplaceontop@1.0.1, torchholdersmithingplus@1.0.2, translocatorrelocator@1.0.3, vanvar@7.1.0, creative@1.21.5, survival@1.21.5, windchimes@1.4.1, winterswallpaper@2.0.0, woodenshuttersandmore@1.2.31, xlib@0.9.0-pre.2, zippyscattailstew@1.1.0, zippysreseedingreeds@2.1.0, apanserbjornstory@0.10.2, armory@1.6.1, bearparts@1.0.2, bettersmelting@0.2.1, cats@4.0.0, danacancook@1.0.0, draconis@1.1.4, elkjaunt@1.3.0, equus@1.2.0, em@3.4.0, mannyextrafirearms@0.5.6, fastbreeding@0.0.26, foxtaming@1.7.2, fueledwearablelights@1.1.0, harepet@1.3.1, heraldry@1.0.1, meteoricsteelcompat@1.1.3, monoceros@1.3.1, nobonearrows@1.0.1, pegasus@1.0.2, playercorpse@1.12.0, quiversandsheaths@0.5.4, shearlib@1.2.0, shiverpet@1.0.0, stonequarry@3.5.1, tabards@0.2.1, tameablelocusts@1.0.3, vanillavariantsridingequipment@2.1.0, wildcraftfruit@1.4.3, wildcrafttree@1.3.3, wolftaming@4.1.4, xskills@0.9.0-pre.2, zrustdrops@2.0.0, blingasus@0.3.0, bricklayers@3.1.4, ecwildcrafttree@1.0.2, heraldrybanners@1.0.0, rustboundmagicxskillsfix@0.2.2, tailorsdelight@2.1.1, wildcrafttreesoneroof@0.8.1, wool@1.8.1, xskillsgilded@1.3.5, dressmakers@1.7.4
Involved Harmony IDs: configurableroomsize
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at ConfigurableRoomSize.Patches.Patch_FindRoomForPosition.CustomFindRoomForPosition(RoomRegistry self, BlockPos pos, ChunkRooms otherRooms) in G:\vinmodding\ConfigurableRoomSize\ConfigurableRoomSize\Patch_FindRoomForPosition.cs:line 29
at Vintagestory.GameContent.RoomRegistry.FindRoomForPosition_Patch2(RoomRegistry this, BlockPos pos, ChunkRooms otherRooms)
at Vintagestory.GameContent.RoomRegistry.GetRoomForPosition(BlockPos pos) in VSEssentials\Systems\RoomRegistry.cs:line 391
at Vintagestory.GameContent.EntityParticleInsect.playsound()
at Vintagestory.GameContent.EntityParticleInsect.doSlowTick(ParticlePhysics physicsSim, Single dt) in VSEssentials\Systems\ParticleEntity\EntityParticleInsect.cs:line 75
at Vintagestory.GameContent.EntityParticle.TickNow(Single dt, Single physicsdt, ICoreClientAPI api, ParticlePhysics physicsSim) in VSEssentials\Systems\ParticleEntity\EntityParticle.cs:line 50
at Vintagestory.GameContent.EntityParticleSystem.OnNewFrameOffThread(Single dt, Vec3d cameraPos) in VSEssentials\Systems\ParticleEntity\EntityParticleSystem.cs:line 425
at Vintagestory.GameContent.EntityParticleSystem.onThreadStart() in VSEssentials\Systems\ParticleEntity\EntityParticleSystem.cs:line 213

Event Log entries for Vintagestory.exe, the latest 2
==================================
{ TimeGenerated = 16/11/2025 12:48:15, Site = , Source = Application Error, Message = Fehlerhafter Anwendungsname: Vintagestory.exe, Version: 1.21.5.0, Zeitstempel: 0x67fe0000
Fehlerhafter Modulname: KERNELBASE.dll, Version: 10.0.26100.7171, Zeitstempel: 0xb1a43a46
Ausnahmecode: 0xe0434352
Fehleroffset: 0x00000000000c80da
Fehlerhafte Prozess-ID: 0xbd4
Fehlerhafte Anwendungsstartzeit: 0x1dc56edda164fdf
Fehlerhafter Anwendungspfad: C:\Users\User\AppData\Roaming\Vintagestory\Vintagestory.exe
Fehlerhafter Modulpfad: C:\WINDOWS\System32\KERNELBASE.dll
Berichts-ID: 2d38697d-799a-47d0-aef3-e5ad8b06d19a
Vollständiger Name des fehlerhaften Pakets:
Fehlerhafte paketbezogene Anwendungs-ID: }
--------------
{ TimeGenerated = 10/11/2025 22:03:19, Site = , Source = Application Error, Message = Fehlerhafter Anwendungsname: Vintagestory.exe, Version: 1.21.5.0, Zeitstempel: 0x67fe0000
Fehlerhafter Modulname: KERNELBASE.dll, Version: 10.0.26100.6899, Zeitstempel: 0x761b8f73
Ausnahmecode: 0xe0434352
Fehleroffset: 0x00000000000c804a
Fehlerhafte Prozess-ID: 0x1d58
Fehlerhafte Anwendungsstartzeit: 0x1dc52834c410708
Fehlerhafter Anwendungspfad: C:\Users\User\AppData\Roaming\Vintagestory\Vintagestory.exe
Fehlerhafter Modulpfad: C:\WINDOWS\System32\KERNELBASE.dll
Berichts-ID: b445c810-1265-401b-86fb-79c770784529
Vollständiger Name des fehlerhaften Pakets:
Fehlerhafte paketbezogene Anwendungs-ID: }

BiggBenn, Nov 24th 2025 at 2:16 PM

EmperorPingu https://wiki.vintagestory.at/Room

Basically, the game checks rooms to see if they are over MaxCellarSize in any direction, but that doesn't immediately disqualify the room from being a cellar.
It then also checks if the total volume of the rooms is below AltMaxCellarVolume AND if the room is not larger than AltMaxCellarSize in any direction.
With the values in the mod description above, that would mean a 8x5x3 (volume 120) room could be a valid cellar, despite being over 7 in one direction.
As far as I understand in the base game, this is to make long narrow cellars possible, when they would not pass the initial size restriction.

EmperorPingu, Nov 24th 2025 at 5:49 AM

What does the "AltMaxCellarSize" and "AltMaxCellarVolume" configs do?

BiggBenn, Nov 20th 2025 at 10:50 AM

Eurielle anywhere from almost 0 to "oh god every tick takes 10 minutes to compute", depending on how high you set the room size limit.
I haven't done a detailed performance comparison, but generally, if you set the value low-ish (i.e. going low multiples of original room size, personally I'm using 2x so "MaxRoomSize": 28) you should be fine.
That said, keep in mind that the computation amount per room can increase up to the cube of the multiplier, i.e. 2x room size => up to 8x computation for the FindRoom logic.
If you collect good data on the actual measurable performance impact, I'd be curious to hear it :)

Eurielle, Nov 19th 2025 at 5:33 PM

What is the performance impact of this mod?

BiggBenn, Nov 10th 2025 at 11:43 PM

RusticFox It works on my machine, my oversized greenhouse and oversized cellar both work exactly as expected.

RoomTools seems to behave inconsistently in combination with this mod (still looking into that, but from my testing the actual functionality of this mod is unaffected), some people have encountered a freeze/crash that I haven't been able to reproduce on my end, some workarounds helped, and that error has been observed at least once without this mod, so really I have no idea.

Other than it works. Don't go too crazy on the room sizes if you value performance (like, hundreds might be a bit much, but I'm not stopping you either :) )

RusticFox, Nov 10th 2025 at 10:24 PM

Is this working correctly as of the current version?

BiggBenn, Oct 30th 2025 at 9:04 PM

Do the rooms themselves actually not work? I.e. change spoilage rates or give the greenhouse buff?NastyFlytrap Sailaway
Because that is the main goal of this mod.
I had been using RoomTools myself, and although it was a bit inconsistent it worked on my end... I'll poke around their source code a bit, to maybe figure out what their logic does differently.

NastyFlytrap, Oct 29th 2025 at 11:34 PM (modified Oct 29th 2025 at 11:43 PM)

Same problem as Sailaway

I turn on highlighting and it displays the entire room/building as wrong. Every wall and ceiling block, without exception. It says the room has exists. I'd get if it had problems with chiseled blocks but even just debarked logs is a problem somehow.

 

Its irrelevant how big i set the size, even if the red box is bigger than the room or the house it doesnt care. It doesnt even work on my cellar which is just a plain 8x6x3 rectangle with some shelves and jars. I dont get it.

 

Edit: Even weirder, before this i had a big greenhouse, and it didnt even recognize it as a room despite the mod being set to a much higher number than the greenhouse, i wrote this, and now its being recognized. I havent even reloaded the world or anything. On top of this, its only being recognized if i fly up to the inside of its ceiling in creative. Standing on the ground it still wont recognize it, like at all. How the fuck does this stupid mechanic work?!

 

Edit 2: After writing this comment it'll only recognize the greenhouse on the ground, not at the top anymore. Still havent changed anything. Wtf is this mechanic... House and cellar still dont work. Like in any form.

Sailaway, Oct 22nd 2025 at 8:35 PM

vs version 1.21.1
only mods installed are room tools and room size
https://mods.vintagestory.at/show/mod/26102
https://mods.vintagestory.at/roomtools

room tools is reporting bad room.
highlights the max size not the actual room

room tools works fine after removing resize

seems to somehow be removing room tools ability to detect the room.

ElTioGaara, Oct 14th 2025 at 9:39 PM

BiggBenn Thanks for taking your time and replying. I’ve been testing and moving settings and I haven’t been able to get it to work, maybe the important detail is that I play under Kubuntu Linux, I don’t have the HUD status mod, and I really don’t know what they refer to, my configuration was not beyond 10x10 I wasn’t that crazy, I just wanted to be able to make the roomsize slightly large enough to build a kitchen, now I went back to vanilla because I can’t get the mod to work, maybe in some future update it will be fixed and I won’t even know what happened, I will be on the lookout for subsequent updates, you have excellent work, thanks.

BiggBenn, Oct 12th 2025 at 10:18 PM

Alhef How often does this happen? Every tick? What is your config? As I mentioned in other comments, the computation required increases with the cube of the room size.
If your config is set to a reasonable size, try the fix from ShaeTsu: "After some testing, it seems the issue is caused by having one of MaxPhysicsThreads or MaxWorldgenThreads set higher than default. I had them both set to 4, changing them back to 1 causes the lagspikes to disappear."
If that does not help, in talking with TerrorBite he figured out that the amount of calls to the modified function is increased massively if you have Status Hud, because it always asks the server if the player is in a room. He encountered a similar bug once even without this mod, so my working theory is that it's a vanilla bug, albeit one that almost never occurs. This mod increases the amount of time that FindRoomForPosition runs, and status hud increases the frequency that the function is called. Maybe it's a threading issue, I haven't been able to reproduce it.
Anyway, in this case, try removing status hud, at least to test, and see if it reoccurs.

I hope either one of these things helps, or that we can figure out what exactly causes this :)

ElTioGaara, Oct 12th 2025 at 9:11 PM

hi... i had this message after update your mod; 12.10.2025 15:06:58 [Server Warning] Server overloaded. A tick took 26862ms to complete. I've already tested it and when I remove it from the mods folder everything loads perfectly, but if I put it back in, it gives that error. I'm on version 1.21.4 stable on the client side. .... i can't play without you mod bro U.U My perfect kitchen depends on your mod U.U D:

TerrorBite, Oct 6th 2025 at 2:13 PM

BiggBenn I've posted the room settings that were used in the GitHub issue.

 

 

dstronaut , Oct 5th 2025 at 2:25 PM

As everone have probably seen, BiggBenn contributed a lot since game version 1.21. I also personally don't have a lot of spare time now. Therefore he's been granted full write access for this mod page and its github repository.

BiggBenn, Oct 5th 2025 at 10:57 AM

Hey TerrorBite what are your config settings? How big is MaxRoomSize?
Regarding the bfsQueue, it's supposed to grow for a while. From how I understand it (which might be incorrect), it starts from the block position that called GetRoomForPosition, and if it doesn't find an existing room there, it essentially flood fills in every (open) direction from that position. Recursively. It keeps adding new blocks to check to the queue, until it reaches either a wall or the bounding box. If it hits the bounding box, that means it's not enclosed, if the queue finishes hitting only walls, then it's a room.
The bounding box is initially sized at (2*MaxRoomSize)+1, and it's a cube. So if you quadruple MaxRoomSize from vanilla, computation can increase by up to 64 times. This is by necessity, and I'm not smart enough to improve on the vanilla room detection system :)

If the MaxRoomSize is already at a reasonable value, maybe try the workaround from ShaeTsu, "After some testing, it seems the issue is caused by having one of MaxPhysicsThreads or MaxWorldgenThreads set higher than default. I had them both set to 4, changing them back to 1 causes the lagspikes to disappear."

TerrorBite, Oct 5th 2025 at 8:46 AM (modified Oct 5th 2025 at 12:42 PM)

My client has got stuck in an infinite loop in Patch_FindRoomForPosition.CustomFindRoomForPosition(). Game didn't crash, just hung, I attached a debugger to find out that it was endlessly searching in this function. This has occurred a couple of times while connected to a server. Version 1.2.0 of the mod.

Edit: so bfsQueue has a Count of 0x043DB633 and counting... it is adding to the queue faster than it is working through it!

Edit: opened an issue on Github

BiggBenn, Oct 4th 2025 at 5:26 PM

ShaeTsu previous versions did not correctly allow you to increase the room size beyond vanilla values, they still only checked a default sized bounding box (but tried finding a volume larger than said bounding box inside it). That's part of why increasing the size beyond 14 didn't work reliably. 
With 1.3.0 the bounding box that is considered for room validity is actually increased to make larger rooms possible, but to make that possible, a lot more volume has to be checked.
So previous versions would not have had the same performance impact that it has now. 
Glad you fixed it with lowering the thread counts though! 

FYI increasing only the MaxCellarSize/AltMaxCellarSize/AltMaxCellarVolume should have a negligiable performance impact compared to vanilla. Increasing MaxRoomSize however would incur that cubic-scaling penalty i mentioned before. 

ShaeTsu, Oct 4th 2025 at 5:17 PM

BiggBenn This isn't a specs issue, I did not have this problem on previous versions.

After some testing, it seems the issue is caused by having one of MaxPhysicsThreads or MaxWorldgenThreads set higher than default. I had them both set to 4, changing them back to 1 causes the lagspikes to disappear. 

BiggBenn, Oct 4th 2025 at 1:10 PM

ShaeTsu EthelVril Hey, I'm having trouble reproducing this. What are your system specs and (more importantly) room size settings? Computation increases with the cube of room size. I.e. going from 14 (default) to 28 (x2) causes 8 times as many calculations to be necessary. This mod by necessity of how it functions is a bit performance intensive, but your lagspikes seem extraordinarily large, I would love to help :)

EthelVril, Oct 4th 2025 at 11:34 AM

Same issue as ShaeTsu

DUCATISLO, Oct 4th 2025 at 10:37 AM

gg

ShaeTsu, Oct 4th 2025 at 4:35 AM

This mod is currently causing insane framerate drops anytime a block is placed or broken.

 

Paradoxal, Oct 4th 2025 at 1:13 AM

McBubbernuckins Go to you your VintagestoryData folder, should be called exactly that. You should see Modconfig, ModData and Mods, click on Modconfig (this is where a lot of mod config files are actually hiding at), now find ConfigurableRoomSize.json, open it with whatever you use, usually Notepad. 

 

In there is the four config texts you can alter, where you can change the room size and cellar size. Save it and you are good to go, just be careful not to delete or replace any of the other text other than the numbers.

BiggBenn, Sep 29th 2025 at 5:49 PM

MailMan1001 thank you for testing!

MailMan1001, Sep 29th 2025 at 2:42 PM

BiggBenn tested your verson and it seems to have worked now! 

McBubbernuckins, Sep 29th 2025 at 2:26 AM

im not understanding at all how im supposed to activate this mod i dont see in the json file where im supposed to edit can someone upload a tutorial or just a few pictures?

BiggBenn, Sep 28th 2025 at 9:12 PM

Ikkus thank you for the feedback! PR is up :)

Ikkus, Sep 28th 2025 at 5:22 AM

BiggBenn Your new version fixed the issue I was having where it would recognized most of the room, but not the edges. My whole large room is working now. Thanks.

BiggBenn, Sep 28th 2025 at 12:48 AM

If I get confirmation that it doesn't just work on my system, I'll add a PR to the repo, so it will get to the main mod soon :) But I gotta be sure it fixes the problem

BiggBenn, Sep 28th 2025 at 12:34 AM

HEY JokoJosethink I may have fixed the whole "game doesn't recognize bigger rooms" thing. As it definitely needs testing, I've uploaded it to the temporary page I had here: https://mods.vintagestory.at/show/mod/29242
Would love if you could test it and give me feedback :)
Tagging some of the recent people commenting about that issue: Eclipsse MailMan1001

BiggBenn, Sep 26th 2025 at 7:53 PM

Ok so, status update:
the largest room I've been able to get working is 22x23, and 3 blocks high. 23x23 didn't work, 22x24 also didn't work.
What I can definitely say is that the /debug rooms command is very unhappy with rooms that big, and only recognized the room in some spots.

However, I noticed only the farm plots under this red line. No correlation I can see to chunks.

Built another test greenhouse, the plots which benefit from the +5°C bonus are seemingly random. 
So, confirmed not working properly. I'll dig into the VS code to see why this would happen. I have a very bad suspicion that I hope is incorrect :D

JokoJose, Sep 25th 2025 at 7:25 PM

Ah, I understand now BiggBenn, seeing from that point of view, i get why its frustrating. Yeah, ChatGpt is not really good when it comes to things like this, i tried using it to make a mod myself recently and gave up as it constantly changes its own code promissing "this time it will work" 

I spent days trying to get a simple item in-game to work using ChatGPT as my "aid" to "teach" me how to code lol

So, i get it now, it just makes you go around in circles without any real help.

BiggBenn, Sep 25th 2025 at 1:21 PM

JokoJose it's like going up to a mason laying down brick and saying "I don't know anything about masonry, but I asked a psychic medium and this is what they said", and then the lengthy advice is half obvious basics and half "you should only do masonry when the moon is visible in the sky" type stuff.
The fact that you meant to help is why I'm not mad at you (hence the "no offense", meant sincerely), but spending almost an hour trying to follow up what your chatbot said and coming to that percentage conclusion I gave was annoying. I did that because I wanted to give it a fair shot. After all, if we eventually actually create an AI that could be helpful with this, that would be an entirely different story.
For what it's worth, I'll poke around the code a bit more to see if I can figure out what could be causing the mod to not work for larger rooms. I personally only really use this mod for larger cellars, but I'll still try :)

NastyFlytrap, Sep 24th 2025 at 4:01 PM (modified Sep 24th 2025 at 4:05 PM)

OH HELL YEAH!

 

This is what i have been wanting to do myself and failed to figure out how to do it. Thanks!

 

Is there any chance your mod could support config lib?

 

Edit: Is there a chance this could include greenhouses? I want to build bigger greenhouses and the basegame's version is just a tad too small for what i have planned

Eclipsse, Sep 24th 2025 at 6:25 AM

can confirm, still 100% broken after the recent update. Its a sad day in my basement :(

JokoJose, Sep 23rd 2025 at 11:48 PM (modified Sep 23rd 2025 at 11:53 PM)

No offense taken, i am just trying to figure out why it does not work for me, even when i use it alone without any mod and with cashe clear. now "publick source code vs dll", you speaking chinese to me lol all I did was drag the mod file to chatgpt and ask why it was not working for me lol 

The cellar changes work, but only up to 16x16 and sometimes one part of the room is considered cellar while other part is considered house and then another piece is nether a cellar or a house lol. But i can see on the comments that I am not the only one having issues. 

If i knew anything about codding, i would try to figure it out myself, but i dont even know where to beging to learn codding, thats why i tried chatgpt which i can see now is not much of a help either way lol

Also, i dont see how me checking with a tool will infuriate you, we all have different skills, we all rely on some sorth of technology. I used the one tool i have at my disposal to try to find a solution to a problem with the intention of help, not the intention of disrespect your work. After all, we all looking for the same, to enjoy the game and the mod :)

Gevidahn, Sep 23rd 2025 at 9:57 PM

JokoJose Yeah I would definitely not trust ChatGPT with coding.  While it can technically do it for general purposes, SOMETIMES, it's something where you have to check it multiple times and it's almost always an inefficient mess. ChatGPT coding causes a lot of issues in general. I only am ok with it for very basic stuff and with someone who already knows coding to check it... especially with a game like Vintage Story that is already not the most stable thing.

BiggBenn, Sep 23rd 2025 at 9:47 PM

JokoJose no offense, but "I know nothing and let chatgpt look at it" is infuriating.
Also if you're gonna do that, at least run it on the (publicly available) source code rather than the compiled DLL.
From what I can tell, about 50% of the AI proposed "fixes" are already how this mod is implemented, 40% are straight up wrong, and 10% are so obtuse, I can't even figure out how to check them.

JokoJose, Sep 23rd 2025 at 6:48 PM

I hope that helps somehow, like i said, i know nothing of modding, so, I cannot confirm if what chatgpt says is 100% accurate or correct. But truth remains that the mods still dont change thr oom sizes on my server :(

JokoJose, Sep 23rd 2025 at 6:40 PM (modified Sep 23rd 2025 at 6:46 PM)

I dont know anything about modding, but i did a quick ChatGPT on this file and this is what its telling me

Spoiler

I unpacked your configurableroomsize_1.2.0.zip and checked its contents. Here’s what’s going on:

1. The Mod Structure

The zip only contains:

  • modinfo.json

  • configurableroomsize.dll

There are no JSON patches or assets that directly override Vintage Story’s internal room size logic. That means the mod relies entirely on the C# DLL to hook into the game.

2. The Code Problem

Inside the DLL, the code is supposed to patch RoomRegistry or RoomUtil (Vintage Story’s classes that calculate room sizes).
But in this build:

  • The DLL doesn’t actually inject or replace the game’s maxRoomSize constant.

  • It registers itself but never attaches to the calculation loop.

  • So the game keeps using the default hardcoded values (room size limits stay the same).

3. Why Nothing Changes

Because of the above, when you install this mod:

  • It loads without errors.

  • But the parameter you set (room size in the config) never gets read or applied.

  • That’s why you see no difference in room sizes.

4. How to Fix

You’d need to:

  • Recompile the DLL with a Harmony patch or direct hook into RoomRegistry.AddRoom() (that’s where the room size limit is checked).

  • Or add a JSON patch (if the limit were exposed in a .json, which it isn’t by default).

  • In short: this version is incomplete. It sets up config but never uses it.

    Spoiler

    Alright Joko — I cracked open your ZIP and peered inside the DLL. Here’s the straight truth, no fluff.

    What’s actually in the mod

    • Files:
      modinfo.json, ConfigurableRoomSize.dll, ConfigurableRoomSize.pdb, ConfigurableRoomSize.deps.json, modicon.png, and a tiny lang file.

    • Symbols (from the PDB/DLL strings) show this structure:

      • ConfigurableRoomSizeModSystem (loads/stores config)

      • RoomSizeConfigData with fields like MaxRoomSize, AltMaxCellarSize, AltMaxCellarVolume

      • Harmony bits: HarmonyLib, HarmonyPatch, PatchAll

      • Patch class names like Patch_FindRoomForPosition, CustomFindRoomForPosition

      • Targets mention Vintagestory.GameContent.RoomRegistry.FindRoomForPosition

    Why it doesn’t change room sizes (the root cause)

    Your patch targets RoomRegistry.FindRoomForPosition but it’s wired to an old assembly location. I’m seeing the target recorded as:

     
    "jVintagestory.GameContent.RoomRegistry, VSEssentials, Version=1.0.0.0, ..."

    Two big red flags:

    1. There’s a stray “j” prefix before Vintagestory in the stored type name (likely a string/layout artifact from build tooling, but it means the reflective lookup may not resolve cleanly).

    2. The assembly name VSEssentials is not where RoomRegistry lives in Vintage Story 1.21.x. (It moved around across versions; in modern builds the GameContent classes are not in VSEssentials.)
      Result: Harmony can’t find the target method, so your patch never applies. The mod loads, config saves, but the game keeps the vanilla max room constraints.

    Secondary gotchas I see

    • Your code appears to rely on Harmony attribute patches, but I don’t see a clear new Harmony("...").PatchAll() call string. If that call is missing or gated behind the wrong Start* entrypoint, patches won’t activate. (The string “PatchAll” exists, so it’s probably there — but if it runs only client-side, server-side room calc won’t change.)

    • Even if the patch were found, FindRoomForPosition’s signature changed across versions. If your attribute signature doesn’t match exactly, Harmony will silently skip.


    How to fix it (concrete steps)

    1) Point Harmony at the right type at runtime (don’t bake the assembly string)

    Use AccessTools to resolve the type by namespace + type (not hardcoded assembly string), then patch that MethodInfo. That insulates you from assembly renames.

     
    using HarmonyLib; using System; using System.Reflection; using Vintagestory.API.Common; public class ConfigurableRoomSizeModSystem : ModSystem { internal static RoomSizeConfigData Config; public override void Start(ICoreAPI api) { // Load or create config Config = api.LoadModConfig<RoomSizeConfigData>("configurableroomsize.json") ?? new RoomSizeConfigData(); api.StoreModConfig(Config, "configurableroomsize.json"); var harmony = new Harmony("joko.configurableroomsize"); // Resolve type without hardcoding assembly name var roomRegistryType = AccessTools.TypeByName("Vintagestory.GameContent.RoomRegistry"); if (roomRegistryType == null) { api.Logger.Error("[ConfigurableRoomSize] Could not resolve RoomRegistry type. Game version mismatch?"); return; } var target = AccessTools.Method(roomRegistryType, "FindRoomForPosition"); if (target == null) { api.Logger.Error("[ConfigurableRoomSize] Could not resolve FindRoomForPosition. Signature changed?"); return; } // If you have a Prefix that replaces the whole method: var prefix = new HarmonyMethod(typeof(Patch_FindRoomForPosition).GetMethod(nameof(Patch_FindRoomForPosition.Prefix))); harmony.Patch(target, prefix: prefix); } }

    2) Replace the constant/limit safely (two options)

    Option A – full replacement (Prefix returning false):
    If you’ve already written CustomFindRoomForPosition (your DLL references suggest you did), you can short-circuit the original and run your own logic that uses Config.MaxRoomSize.

     
    // NOTE: You MUST match the current game signature exactly. // Below is illustrative; adjust parameters to match the game version! public static class Patch_FindRoomForPosition { public static bool Prefix(/* RoomRegistry __instance, params..., out sizex, out sizey, out sizez, ... */) { // Call your CustomFindRoomForPosition here, using ConfigurableRoomSizeModSystem.Config.MaxRoomSize // Set out params and return false to skip original return false; } }

    Option B – transpile the hardcoded cap:
    If the vanilla method uses a hardcoded ldc.i4 like 24 (size) or has a constant volume cap, replace that instruction:

     
    using System.Collections.Generic; using System.Linq; using System.Reflection.Emit; [HarmonyPatch] public static class Patch_FindRoomForPosition { static MethodBase TargetMethod() { var t = AccessTools.TypeByName("Vintagestory.GameContent.RoomRegistry"); return AccessTools.Method(t, "FindRoomForPosition"); } static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions) { var list = instructions.ToList(); for (int i = 0; i < list.Count; i++) { var ins = list[i]; // Example: replace '24' with config value. Adjust the match to the real IL you see. if (ins.opcode == OpCodes.Ldc_I4 && (int)ins.operand == 24) { ins.operand = ConfigurableRoomSizeModSystem.Config.MaxRoomSize; } yield return ins; } } }

    Why I recommend this: it avoids hardcoding an assembly name and survives most “moved class” changes; if the namespace stays stable, you’re good. If the signature changes in a future update, you’ll log an error instead of silently failing.

    3) Make sure you patch on both sides that compute rooms

    Call harmony.Patch(...) in Start(ICoreAPI api) (which runs for both client and server). If you only call in StartClientSide, the server/world calc may never see it.

    4) Ship a clear config

    Your DLL supports configurableroomsize.json. Include defaults that are visibly different from vanilla (e.g., MaxRoomSize: 48) so users can tell it’s working.


    TL;DR

    • Your DLL is trying to patch an old location for RoomRegistry (VSEssentials), so Harmony can’t find the method and no patch is applied — that’s why room sizes don’t change.

    • Fix by resolving the type at runtime with AccessTools.TypeByName("Vintagestory.GameContent.RoomRegistry") and patching that method, or by transpiling the constant.

    • Ensure the patch runs from Start(ICoreAPI api) and matches the current method signature.

MailMan1001, Sep 17th 2025 at 10:11 AM

JokoJose same issue here, even if i make the room value larger it still wont count a "room" as insulated.

JokoJose, Sep 17th 2025 at 12:21 AM

do you know of any mod conflict? in the picture of the mod you have room size 69, every time i try it, the biggest i can make the room is 15 and sometimes 16... Anything beyound that, is not recognized as a room. I am trying to get it at least size 50 for the house i am trying to build :(

Leanna, Sep 13th 2025 at 9:47 PM

Thanks Benn and Dstronaut for the update!!! I can finally play Vintage Story!!!

dstronaut , Sep 13th 2025 at 5:07 PM

animatiV Yes, it works for greenhouses. They are just rooms with skylight.

animatiV, Sep 13th 2025 at 10:38 AM

Does this work for greenhouses?

dstronaut , Sep 13th 2025 at 6:55 AM

Hello, sorry for not responding for some time, but I am back now. I've merged the work of BiggBenn leading to updating the mod to game version 1.21.1.  I've also invited him to work on the mod together. 

Ikkus, Sep 7th 2025 at 8:54 PM

Someone else updated it for 1.21 and I just wanna thank you for making it.

Kaiotdee, Sep 6th 2025 at 10:40 AM

Can we please get an update this mod? It maybe simple but it's awesome.

BiggBenn, Sep 2nd 2025 at 1:13 PM

I would also love an update to 1.21
Either way, thank you so much for this mod!

AldrnariTivar, Aug 26th 2025 at 4:00 PM

This mod no longer works for 1.20.12. I tried to validate a large room on a build Im working on, and no matter what I change in the config the best result I can get is the red box floating above my base, so I cant even tell if its actually valid or not anymore...

Leanna, Aug 26th 2025 at 2:44 PM (modified Aug 26th 2025 at 2:44 PM)

Jenpai It does!

 

Please, please, please update the mod to 1.21, it curently crashes the game.

Jenpai, Aug 25th 2025 at 3:40 AM

Does this effect greenhouses?

Ryilo, Aug 21st 2025 at 7:53 PM

Just a heads-up: in 1.21.rc7 when loading the game from inside a (small) cellar, it crashes the game. 

Works fine in 1.21.rc6

BiggBenn, Aug 15th 2025 at 2:20 PM

Mod works great! Only small issue, that I think may be related to this mod.
Context: I host a small server for my friends via the "open to LAN" and "open to Internet" buttons from singleplayer
We have some apples in our (large) cellar, the time to spoil correctly adjusts on my end.
But my friends who connect to my server, they seem to see the apple's spoil timer to be as if the container was not in a cellar.
think that it's only a cosmetic problem, but still thought I'd mention it!
Thank you very much for your work on this mod :)

FDRsWheelchair, Aug 12th 2025 at 10:04 AM

Having some problems with the rooms in my base, Ive got the max room size set to 50 and the room is only 19x21x4, its fully enclosed with a solid door leading to a stair case, only a few chiseled blocks on some pillars, nothing that should impact insulation . Using the room highlight mode it shows it as red with the box cutting off before the end of the room.

Parloien, Aug 10th 2025 at 12:34 AM

Doesnt work with 1.20.12 for me as my base isnt considered a house even though I set the setting to 100 :(

 

Mudz00, Jul 26th 2025 at 12:35 PM

Works like a charm! 
Thank you so much for your mod!! <3

racsumsar, Jul 16th 2025 at 1:45 PM

dstronaut thanks for the explanation

dstronaut , Jul 13th 2025 at 9:52 AM

racsumsar "MaxRoomSize" is a maxiumum single dimension, so your room must be enclosed in imaginary cube of dimensions 14x14x14 (assuming default room size value of 14). 

And yes, when the room is small enough it is considered a cellar and if it has direct sky view (glass roof) it will be considered a greenhouse.

dstronaut , Jul 13th 2025 at 9:48 AM

Grr_Ghur I ment the config file ConfigurableRoomSize.json mentioned in "How to" section. That's the only thing you want to edit.

Grr_Ghur, Jul 11th 2025 at 11:17 AM

dstronaut How do I do that?

 

racsumsar, Jul 11th 2025 at 11:15 AM

dstronaut my building had a glass roof and I guess it thinking it's a greenhouse might be the problem? I have another fairly large building that works fine.

on a side note, can you explain what the "maxRoomsize" value actualy is, is it volume or floor area or?

dstronaut , Jul 11th 2025 at 6:48 AM

Grr_Ghur In the note about Status Hud, I meant that even when you are playing online, the Status Hud mod uses client side logic to display if you are in the room. So, you would have to also configure my mod per client, not the Status Hud mod.

dstronaut , Jul 11th 2025 at 6:44 AM

racsumsar What room size are you using? My mod is a simple patch that replaces in-game constant with value from config. There may be some other engine limitations when the size is significantly larger.

Grr_Ghur, Jul 11th 2025 at 5:16 AM

How do I configure Status Hud?

racsumsar, Jul 9th 2025 at 3:20 PM

it doesn't work properly for me, the room is properly sealed and I've tried different room size values but half of the room is always considered outside

Maro992, Jul 6th 2025 at 9:24 PM

thx mate, everything works fine 

Ototinho, Jul 6th 2025 at 5:33 PM

dstronaut oh, i see now! thanks a bunch!

dstronaut , Jul 6th 2025 at 4:23 PM

Ototinho In the game source, when room has higher dimensions than the MaxCellarSize, there is a second check if maybe it has small enough volume. If the volume is smaller than AltMaxCellarVolume, it checks the dimensions for AltMaxCellarSize. So, with default settings a very thin room (below 150m^3) of length 8m still counts as cellar, but only up to 9m on any dimension. I thought, it will be nice to also expose this variable for configuration. 

werkasmerka, Jul 6th 2025 at 1:13 PM

Thanks!

Poqsa, Jul 6th 2025 at 6:45 AM

Ewerythink works 🔥

Ototinho, Jul 6th 2025 at 3:05 AM

what altmax and the volume means?

Habbinal, Jul 6th 2025 at 1:05 AM

🔥

berryland, Jul 5th 2025 at 7:43 PM

I was literally just wishing for a simple mod like this over the past few days. Happy to report that it works perfectly. 

Thank you!