Mods / Tungsten

Tags: #Other #Tweak
Author: Zaldaryon
Side: Server
Created: Nov 9th 2025 at 12:00 AM
Last modified: 3 days ago
Downloads: 3786
Follow Unfollow 254

Recommended download (for Vintage Story 1.21.5 - 1.21.6):
Tungsten.zip  1-click install


Server-side only performance optimization mod for Vintage Story. The base game is already very much optimized, this is my attempt to speed up what's possible.

 

This can also benefit players in a singleplayer world, although much more limited.

 

⚠️ Beta Phase: This mod is currently in beta phase. Real performance gains may vary depending on your server configuration and game setup.

 

This is serverside only - if you want to improve your performance clientside, try OptiTime.

 

I follow RERO (Release Early, Release Often) philosophy.

What it does

  • Less lag - 30-40% reduction in garbage collection pauses
  • Better performance - Especially with more players online
  • Lower memory usage - Saves ~15 MB per minute
  • No gameplay changes - Same game, just smoother

Performance gains

  • 5 players: 20-30% improvement
  • 10 players: 30-40% improvement
  • 20+ players: 40-50%+ improvement

The more active your server, the better it works.

What gets optimized

Tungsten currently ships with 19 optimizations:

  • Entity list reuse
  • Block list reuse
  • Send chunks list reuse
  • Get drops list reuse
  • Event manager list reuse
  • Chunk loading optimization
  • Chunk unloading optimization
  • Entity simulation optimization
  • Cooking container optimization
  • Container optimization
  • Grid recipe optimization
  • Deposit generator optimization
  • Send player entity deaths optimization
  • Physics manager list optimization
  • Physics manager method list optimization
  • ServerMain LINQ optimization
  • Placeholder optimization (suggestion by tehtelev)
  • Wildcard fastMatch optimization (suggestion by tehtelev)
  • Registry resolve experimental optimization (suggestion by tehtelev)

Commands

All commands require admin privileges:

  • /tungsten - Show status
  • /tungsten stats - Show performance statistics
  • /tungsten stats on/off - Enable/disable detailed monitoring with CSV export (off by default)
  • /tungsten all on/off - Enable/disable all optimizations
  • /tungsten <name> on/off - Toggle individual optimization:
    • blocklistreuse - Block Operations
    • chunkloadingoptimization - Chunk Loading
    • chunkunloadingoptimization - Chunk Unloading
    • containeroptimization - Inventory
    • cookingcontaineroptimization - Cooking
    • depositgeneratoroptimization - Prospecting
    • entitylistreuse - Entity Spawning
    • entitysimulationoptimization - Entity Ticking
    • eventmanagerlistreuse - Event System
    • getdropslistreuse - Block Breaking
    • gridrecipeoptimization - Crafting
    • physicsmanagerlistoptimization - Physics Tick
    • physicsmanagermethodlistoptimization - Physics Tick
    • sendchunkslistreuse - Chunk Sending
    • sendplayerentitydeathsoptimization - Player Deaths
    • servermainlinqoptimization - Player Queries
    • placeholderoptimization (suggestion by tehtelev)
    • wildcardfastmatchoptimization (suggestion by tehtelev)
    • registryresolveexperimentaloptimization (suggestion by tehtelev)
    • threadlocallifecyclereset
    • reusablecollectionpoolconcurrentoptimization
    • reusablecollectionpoolconstructorcacheoptimization
    • unifiedruntimecircuitbreaker
    • ilsignaturemanifestvalidation
    • benchmarkharness

Note: Changes require server restart.

Compatibility

Works with almost all mods. Safe with:

  • Content mods (blocks, items, recipes)
  • Gameplay mods
  • World generation mods
  • All client-side mods

Known Issues

Rustbound Magic - Riftbloom tea may conflict with Container Optimization. If you experience issues, set EnableContainerOptimization to false in ModConfig/tungsten.json and restart the server.

Troubleshooting

 

Server won't start?

  • Check server logs for errors
  • Try /tungsten all off to disable optimizations, then enable one by one to check which one causes it
  • Report the issue with logs
 

Performance worse?

  • Unlikely, but you can disable specific optimizations
  • Use /tungsten stats to monitor. You can turn it on/off to save measurements into a file with one, some, all or no optimizations enabled to have real numbers. You can send me these so I can investigate as well, the data is anonymized in the logs!
 

Mod conflicts?

  • Disable conflicting optimizations if needed

 

 

Clarification: This mod has some AI-assistance since my knowledge of C# is limited. But I am a developer of 10+ years experience irl.

License

 

Copyright (c) 2025 Zaldaryon - All Rights Reserved

 

 

 

Tungsten - Making Vintage Story servers run faster, one algorithm at a time. Performance matters.

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
1.2.0 tungsten
1.21.5 - 1.21.6
271 3 days ago Tungsten.zip 1-click install

- Added new server optimizations for faster loading and lower overhead in large mod setups.
- Introduced smarter placeholder processing for registry content (faster string resolution).
- Added a new optimized wildcard matcher to reduce expensive pattern-matching work.
- Added an experimental registry resolve path for heavy modpacks, with strict safety guards.
- Added stronger automatic fallback behavior: if something goes wrong, Tungsten safely falls back to vanilla behavior.
- Added runtime circuit-breaker protection to isolate failing optimization paths automatically.
- Added IL signature validation to avoid applying risky patches on incompatible game internals.
- Added benchmark harness support (A/B style) for reproducible performance testing.
- Expanded runtime controls and admin commands for new optimization and safety options.

1.1.1 tungsten
1.21.5 - 1.21.6
475 Feb 1st at 11:00 AM Tungsten.zip 1-click install
  • Fixed ThreadLocal disposal crash in GridRecipeOptimization during crafting updates
1.1.0 tungsten
1.21.5 - 1.21.6
97 Feb 1st at 1:23 AM Tungsten.zip 1-click install
  • Physics Packet List Reuse optimization has been removed
  • Grid Recipe Optimization now properly cleans up on early returns
  • Added safety mechanism to prevent memory leaks in edge cases
  • More robust handling of recipe matching failures
  • Container Optimization trimming confirmed working correctly
  • Verified memory management is functioning as intended
  • Obfuscation disabled by default for better compatibility and debugging
  • Reduced from 17 to 16 active optimizations
  • All optimizations now verified working on live servers
1.0.8 tungsten
1.21.5 - 1.21.6
13 Dec 14th 2025 at 10:42 PM Release Retracted

Retraction Reason:

it breaks configs and the patch to rustbound breaks the mod

Changelog:

I added a Tungsten compatibility hotfix for RustboundMagic’s buff broadcasts. When RustboundMagic is present, Tungsten now patches its buff-send method on the server to avoid the
IPlayer[] -> IServerPlayer[] cast crash and safely sends the buff update to connected server players. If RustboundMagic isn’t installed, nothing changes.

1.0.7 tungsten
1.21.5 - 1.21.6-rc.1
1404 Dec 12th 2025 at 7:53 PM Tungsten-1.0.7.zip 1-click install

- Fixed frame-profiler null crashes and added defensive enable/disable logging.
- Reworked chat command parsing to stop sticky “Usage” spam; /tungsten and subcommands parse cleanly.
- Advanced monitoring interval shortened to 10s; CSV/log writes ensure target directory exists and message reflects the new cadence.

1.0.6 tungsten
1.21.5 - 1.21.6-rc.1
Dec 12th 2025 at 6:04 PM Release Retracted

Retraction Reason:

I did because I couldn't change the file. I'll release a new version. I sent message to Rennorb on discord about it.

Changelog:

Hardened frame-profiler activation to avoid null crashes

1.0.5 tungsten
1.21.5 - 1.21.6-rc.1
213 Dec 9th 2025 at 11:59 PM Tungsten-1.0.5.zip 1-click install
  • Rustbound Magic Compatibility - Fixed crashes when using Rustbound Magic mod (specifically with Riftbloom Tea and other liquid containers). The issue was caused by how Tungsten optimized player arrays and container operations.
  • Player Array Type Fix - Corrected an internal type mismatch that could cause "Unable to cast object" errors when other mods tried to access the player list.
1.0.4 tungsten
1.21.5 - 1.21.6-rc.1
83 Dec 9th 2025 at 8:07 PM Tungsten-1.0.4.zip 1-click install

- New /tungsten frameprofiler [on|off] [thresholdMs] command to enable/disable profiling live and set the slow-tick threshold; status is shown in /tungsten output.

1.0.3 tungsten
1.21.5 - 1.21.6-rc.1
406 Dec 2nd 2025 at 5:48 PM Tungsten-1.0.3.zip 1-click install

Prevents potential API access issues with obfuscated entry points

1.0.2 tungsten 356 Nov 28th 2025 at 1:20 AM Tungsten-1.0.2.zip 1-click install

Fixed ObjectDisposedException crash in ChunkUnloadingOptimizer when chunk thread accessed disposed ThreadLocal instances during server shutdown.

1.0.1 tungsten 189 Nov 27th 2025 at 10:09 AM Tungsten-1.0.1.zip 1-click install
  • Fixed ObjectDisposedException during server shutdown
  • Fixed optimization count display (19/19)
  • Added disposal tracking to ThreadLocalHelper
  • Improved shutdown safety for background threads
1.0.0 tungsten 249 Nov 25th 2025 at 11:15 PM Tungsten-1.0.0.zip 1-click install

Initial release


56 Comments (oldest first | newest first)

Zaldaryon , 14 hours ago (modified 14 hours ago)

hey KarmaAvec1C, which version were you using? If it was only on 1.2.0, you could disable the 3 new optimizations from thetelev suggestion.

without any more info or server logs (you can send me via DM on Discord, for more confidentiality of the content) I can analyze that.

 

if it was before 1.2.0, try disable servermainlinqoptimization  and gridrecipeoptimization.

KarmaAvec1C, 14 hours ago (modified 14 hours ago)

Hello, I'm administrating a somewhat big server and using this for performance, and all players across the server noticed SEVERE freezes when crafting, both with the crafting optimization on AND off. We're not sure what else can cause this. It's the second itteration of this server, and it did not have this issue before we started using Tungsten.

Edit: For now untill the mod improves we've decided to disable Tungsten and go back to vanilla performance.

Kyokui, 1 day ago

Noticed your past few releases all have the same file name, would be nice if you put the mod version in the zip file's name so its easy to tell them apart

Zaldaryon , Feb 3rd at 12:07 PM
Ashleyyy33, Feb 3rd at 2:27 AM

Holy hell this fixed so many of my lag issues thank you so much lol

Zaldaryon , Feb 2nd at 11:50 AM

Architect is you're only hosting, no clientside mods will work, so, Tungsten. For the players, OptiTime.

Architect, Feb 2nd at 6:06 AM

Quick question, if I'm hosting a multiplayer game on my computer via the 'open to lan' button, would Tungsten be better or would OptiTime be better? 

Zaldaryon , Feb 1st at 11:01 AM

BraniyaKz ok, thx, 1.1.1 should mitigate that crash

BraniyaKz, Feb 1st at 9:05 AM (modified Feb 1st at 9:32 AM)

I got a crash report for you: Edit - After disabling/re-enabling mods, figured out this was actually crashing when the newest biomes mod was enabled. Not sure why.

Crash Report
Running on 64 bit Windows 10.0.26200.0 with 16228 MB RAM
Game Version: v1.21.6 (Stable)
2/1/2026 4:04:31 AM: Critical error occurred
Loaded Mods: walkingstick@1.0.18, barkbeetle@1.0.4, buzzybees@1.1.7, cbr@2.0.1, clicktopick@2.1.3, blocklayeroverhaul@1.0.2, landformoverhaul@1.0.2, diversediets@1.0.3, moonshinejug@1.0.2, expandedmolds@1.2.0, fallingtree@0.4.10, fieldsandplateaus@1.0.9, firestarters@1.4.5, 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, bovinae@0.3.5, fotsatp@1.0.2, caninae@1.1.2, capreolinae@2.0.7, casuariidae@1.1.9, cervinae@0.1.13, chelonioidea@1.0.7, dinornithidae@1.0.22, elephantidae@1.0.17, felinae@0.2.13, iniidae@0.1.6, machairodontinae@1.1.7, manidae@1.0.19, meiolaniidae@0.1.10, pantherinae@1.2.8, rhinocerotidae@1.0.23, sirenia@1.0.26, spheniscidae@1.0.16, thylacinidae@0.1.6, viverridae@1.0.8, vombatidae@0.4.5, geoaddons@1.4.6, icecutterrw@1.0.4, icyexc@1.0.0, immersivechests@0.2.1, immersivelanterns@0.3.2, immersivemining@0.2.18, immersiveorecrush@2.2.4, indappledgroves@2.2.1-rc.1, 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, manualdishes@0.1.1, manualfirestarter@0.1.2, manualquenching@1.0.10, manualscraping@1.3.0, mistsofstability@0.2.0, mycodiversity@1.0.5, plainsandvalleys@1.0.12, plumpkins@1.1.3, primitivesurvival@4.0.3, ruderalis@1.0.2, scrolled@1.1.6, soaplyeandbloom@1.3.6, sprintmomentum@0.2.0, spyglass@0.6.0, stoneharvesting@1.2.1, toolbelt@0.3.4, tulesedgefix@1.0.1, undertangledboughs@1.0.5, game@1.21.6, vsimgui@1.1.16, wilderlandscavessystem@2.0.0, wgroundlayers@1.0.3, windowstorage@1.5.3, zoombuttonreborn@2.0.1, ancienttools@1.6.1, attributerenderinglibrary@2.7.0, betterpoultice2@1.0.11, betterruins@0.5.6, bettertraders@0.1.0, billposting@1.1.0, blacksmithname@1.2.7, bloodtrail@1.1.8, butchering@1.11.0, canjewelry@0.5.19, cannibalism@1.2.3, carryon@1.12.1, cartwrightscaravan@1.8.0, caveinfix@0.8.2, clothierheirloomsmod@1.0.2, commonlib@2.8.0, configlib@1.10.14, coreofartspatch@1.0.5, danatweaks@3.7.1, entangledinnature@1.0.61, entityguard@2.1.1, tackandequipment@1.0.0, extrainfo@1.11.2, farmlanddropswithnutrients@1.2.2, farseer@1.3.3, firepitsshowfuel@1.3.0, foodshelves@2.3.3, footprints@1.1.2, foragersgamble@1.2.6, genelib@2.1.6, handbookdeclutterer@1.0.0, hudclockpatch@1.1.2, hydrateordiedrate@2.3.7, idgaxecompat@1.0.0, immersiverope@1.0.7, improvedsheepupdate@1.0.2, indappedupgroves@1.0.1, insanitylib@1.1.0, interestingoregen@2.2.3, jaunt@2.2.0-rc.2, juicyores@1.0.2, knitting@1.1.1, liquidcontainers@1.3.1, aaloppatch121@0.0.1, lordoftheflies@1.0.0, metaltongs@1.2.4, meteoricexpansion@1.2.6, moreanimals@1.6.6, mountcamerafix@0.2.0, naturalfertilizer@1.3.0, optitime@1.4.0, pickupbabyanimals@1.2.2, placeonslabs@1.0.3, pomshadercache@1.1.3, postsandbeams@1.5.0, primitivebackpacks@1.1.0, purposefulstorage@1.5.1, qualityofbuilding@1.1.0, rebuildablebloomery@1.0.6, riverfish@1.0.3, rivers@4.7.5, rottingstorage@1.0.2, saltandsands@1.1.6, saltpeterproduction@1.1.0, scientificsmithy@0.1.9, smithingplus@1.8.3, spinningwheel@1.1.6, spyglassinfo@1.0.2, substrate@1.1.4, th3dungeon@0.4.5, thievery@1.2.6, toolsmith@1.2.14, trailmodupdated@1.3.6, unofficialbugfix@0.0.6, vanvar@7.1.1, creative@1.21.6, vsroofing@1.2.1, survival@1.21.6, waterfall@1.0.0, wildgrass@1.3.8, alternativegliderimplementationreforged@1.0.1, artofcookingpatch@1.0.4, artofgrowingpatch@1.1.8, autoconfiglib@2.0.9, brainfreeze@1.3.5, cookingtweaks@1.2.3, danacancook@1.0.1, detailedanimals@0.7.4, draconis@1.2.0, drkssling@1.1.5, elkjaunt@1.3.0, equus@1.2.0, hydraulicsredone@1.0.1, immersiveinventoryspoilage@1.2.3, mechanicalwoodsplitter@1.1.2, monoceros@1.3.1, mycoboost@0.0.1, pegasus@1.0.3, playercorpse@1.12.0, seasonalbreeding@1.1.0, shearlib@1.2.0, terrainslabs@1.0.11, th3dungeontopentrance@0.4.2, vanillavariantsridingequipment@2.2.0, vintagechihuahua@0.1.0, toolsmithgeologypatch@1.0.0, wearandtear@1.5.17, wildtrails@1.0.0, aogbreedingaddonpatch@1.1.2, artofwildgrass@1.1.0, drakeextension@1.0.0, growingwildgrass@1.0.1, terrainslabstrailmodcompatibility@1.0.3, wool@1.8.2
Involved Harmony IDs: com.tungsten.optimizations, com.zaldaryon.optitime
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Threading.ThreadLocal`1[[System.Collections.Generic.List`1[[System.Collections.Generic.KeyValuePair`2[[Vintagestory.API.Common.ItemStack, VintagestoryAPI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[Vintagestory.API.Common.CraftingRecipeIngredient, VintagestoryAPI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'.
at System.Threading.ThreadLocal`1.GetValueSlow()
at Tungsten.GridRecipeOptimizer.MatchesShapeLess_Prefix()
at Vintagestory.API.Common.GridRecipe.MatchesShapeLess_Patch1(GridRecipe this, ItemSlot[] suppliedSlots, Int32 gridWidth)
at Vintagestory.API.Common.GridRecipe.Matches_Patch1(GridRecipe this, IPlayer forPlayer, ItemSlot[] ingredients, Int32 gridWidth)
at Vintagestory.Common.InventoryCraftingGrid.FindMatchingRecipe() in VintagestoryLib\Common\GameContent\Inventory\InventoryCraftingGrid.cs:line 178
at Vintagestory.Common.CraftingInventoryNetworkUtil.UpdateFromPacket(IWorldAccessor resolver, Packet_InventoryContents packet) in VintagestoryLib\Common\GameContent\Inventory\InventoryCraftingGrid.cs:line 25
at Vintagestory.Client.NoObf.ClientPlayer.AddOrUpdateInventory(ClientMain game, Packet_InventoryContents packet) in VintagestoryLib\Client\Model\ClientPlayer.cs:line 139
at Vintagestory.Client.NoObf.ClientPlayer.UpdateFromPacket(ClientMain game, Packet_PlayerData packet) in VintagestoryLib\Client\Model\ClientPlayer.cs:line 161
at Vintagestory.Client.NoObf.GeneralPacketHandler.HandlePlayerData(Packet_Server packet) in VintagestoryLib\Client\Systems\GeneralPacketHandler.cs:line 261
at Vintagestory.Client.NoObf.ClientMain.ExecuteMainThreadTasks(Single deltaTime) in VintagestoryLib\Client\ClientMain.cs:line 786
at Vintagestory.Client.GuiScreenConnectingToServer.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenConnectingToServer.cs:line 298
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 760
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 663
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 112
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 347
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 131
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 95
Shinji170981, Jan 21st at 8:31 PM

Okay, i will give it a try and let you know :)

Zaldaryon , Jan 21st at 11:39 AM

Shinji170981 if you change the modinfo.json inside of the zip and change the dependencies of the game to 1.21.0 you probably can run in 1.21.0. I can't guarantee no crash, though

Shinji170981, Jan 21st at 11:16 AM

Zaldaryon I get the general issue, when a mod isn't compatible:
21.1.2026 12:14:56 [Error] [tungsten] Could not resolve some dependencies:
21.1.2026 12:14:56 [Error] [tungsten] game@1.21.5 - Version mismatch (has 1.21.0)

I don't want to ask for something impossible, so if it's not possible, please disregard my request. :)

Zaldaryon , Jan 20th at 11:56 PM

Shinji170981 did you try yet? did it crash? if so, please provide the server-*.log so I can fix some specific bug... considering my free time is limited, specific points are easier to fix.

Shinji170981, Jan 20th at 9:19 PM

Zaldaryon at the risk of sounding stupid, but do you think, it would be possible to make the mod backwards compatible to 1.21.0?
I am no programmer, so i have no idea, how difficult it would be, understanding enough to know that as a non programmer, i am not seeing everything what makes the code dependent in different versions.
If it's not possible, at least it was worth a try in asking. :)

Zaldaryon , Jan 14th at 1:29 AM

Portokalis it should be, yes. it should return the same funcionality as vanilla does.

Portokalis, Jan 14th at 12:29 AM

Is this safe to add and remove to an already running server?

Zaldaryon , Jan 8th at 12:02 PM

DeeTales nope, this doesn't touch what rubberbandaid mod does. Nor it touches the garbage collection methods as you said. They should both work fine with the mod.

DeeTales, Jan 8th at 11:33 AM

I've been running this on a heavily modded personal server (and optitime) on the client, without issue. Seems to have smoothed things out some, but it's hard to be sure. 

 

Does this (or optitime) make the rubberbandaid mod redundant? And does it have any interaction with explicitly setting .NET's garbage collection methods to to gcServer enabled="true", gcConcurrent enabled="true" via an app.config file in the VS program directory? I'm using both. 

Zaldaryon , Dec 16th 2025 at 2:18 PM

Bone_D nope.

Bone_D, Dec 16th 2025 at 2:18 PM

would this interfere with mods that increase the global despawn timer? (not dropped on death)

Zaldaryon , Dec 14th 2025 at 10:45 PM (modified Dec 14th 2025 at 10:45 PM)

Volixia669 thanks for your input. Sadly, moving things from RAM to any strorage (even a SSD, for instance) is very costly and it would cause slowness, for sure, much more than RAM usage. Sadly playing with lots of mods, it has this constraint. Nothing the mod could help, only some overhaul in the base game.

Volixia669, Dec 14th 2025 at 3:44 AM

Zaldaryon , Kyokui Oh hey, I'm one of those people with a ridiculous number of mods. I'm running 130, on a laptop with 16gb of RAM, SSD, and is a dual boot type system. I've played on both Linux and windows with said laptop, current run is via MX Linux with KDE Plasma for the desktop stuff.

 

I play using the VS Launcher to help with modding and all that, so when I'm in game, there's only the launcher, vintage story, and whatever background processes KDE has going on. Windows I weirdly had less trouble with laptop heating up, but it was also the 1.20 version about...A year ago? Something like that.

 

Playing with tungsten and optifine has helped a touch. Laptop still really heats up, but vintage story at least seems to stay around 10 to 12gb of RAM usage. Still some hitches, and glancing at the known conflicts, it does make me wonder if the container optimization is part of why ever since I added a mod that adds obnoxious amounts of inventory, there's been an issue of items in inventory turning into reed baskets, sometimes temporarily, sometimes permanently? It's appropriately named "Ludicrous Backpack Capacity". Didn't notice any particular changes to gameplay beyond that bug so it could be a conflict or it could be a more isolated bug. (Also I probably wouldn't reccomend using that on a multiplayer server. That's just asking for trouble.)

 

That said, it's just me, and there's still a LOT of RAM usage due to how the game allegedly loads and runs mods. (I've seen it described as everything is frontloaded into the RAM which...I guess means things are more swiftly accessed, but you pay for that access in that how many mods you can run depends on how much RAM you have, and how efficient your OS is with prioritizing RAM usage. It just makes it tricky from a modding perspective because you would have to literally change how the game accesses data. I saw someone made a caching mod, so it just might be possible to cache on to the hard disk/SSD, but still. There's also a matter of what can be cached, and is it worth it to bother caching them?) 

 

I don't play with any fancy effects, pretty low on the graphics settings, and I had to nix expanded foods/culinary matters as they were having WAY too many bugs to let the game even start up.

 

ANyways, hopefully there's some useful info in all that rambling lol. If desired, I can test with/without the performance mods, as well as provide a full mod list!

 

ividyon, Dec 13th 2025 at 12:25 PM

Thanks, your last post fixed the last issue.

 

Now a friend is crashing when drinking Riftbloom Tea with the Rustbound Magic mod:

 

Crash Report
vsserver  | 13.12.2025 12:18:43 [Server Event] Player Stakhanov got removed. Reason: Threw an exception at the server
vsserver | 13.12.2025 12:18:43 [Server Error] Exception: Unable to cast object of type 'Vintagestory.API.Common.IPlayer[]' to type 'Vintagestory.API.Server.IServerPlayer[]'.
vsserver | at rustboundmagic.src.system.effects.StatusEffects.AttemptBuffListRemoveAndAdd(Entity effectedEntityIn, String effectIdIn, Single durationIn) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\system\effects\StatusEffects.cs:line 1043
vsserver | at rustboundmagic.src.system.effects.StatusEffects.TryToApplyStats(Single duration) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\system\effects\StatusEffects.cs:line 505
vsserver | at rustboundmagic.src.system.effects.StatusEffects.TemporaryEntityPlayerStats(Entity entity, Dictionary`2 effectList, String code, Single duration, String id) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\system\effects\StatusEffects.cs:line 479
vsserver | at rustboundmagic.src.system.spells.global.RiftbloomTea1.OnCastStop(Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel, Boolean isspellscrollIn, Boolean inprismofmagnificationIn, Boolean inprismofduplicationIn, Single durationleftafterlogoutIn) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\system\spells\global\RiftbloomTea1.cs:line 39
vsserver | at rustboundmagic.src.common.collectiblebehavior.CollectibleBehaviorRecoverManaRM.OnHeldInteractStop(Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel, EnumHandling& handling) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\common\collectiblebehavior\CollectibleBehaviorRecoverManaRM.cs:line 175
vsserver | at Vintagestory.API.Common.CollectibleObject.OnHeldInteractStop(Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel) in VintagestoryApi\Common\Collectible\Collectible.cs:line 1437
vsserver | at Vintagestory.Server.ServerSystemInventory.HandleHandInteraction(Packet_Client packet, ConnectedClient client) in VintagestoryLib\Server\Systems\Inventory.cs:line 258
vsserver | at Vintagestory.Server.ServerMain.HandleClientPacket_mainthread(ReceivedClientPacket cpk) in VintagestoryLib\Server\ServerMainNetworking.cs:line 280
vsserver | at Vintagestory.Server.ServerMain.ProcessMain() in VintagestoryLib\Server\ServerMain.cs:line 934

 

Looks to be the exact same issue as below. The problem is that, due to that post, I already disabled the container optimization before my friend even joined, and yet the crash still occurs.

Disabling cooking container optimization didn't help either. I've had to remove Tungsten once again.

Zaldaryon , Dec 12th 2025 at 7:54 PM

EnderMelody ok I tested all possible common situations and now the commands should be fixed in 1.0.7. The moddata wasn't created because of the command bug. it should be doing now.

EnderMelody, Dec 12th 2025 at 6:37 PM

didnt see any outputs in the moddata folder even with just this mod. im on linux so potentially something there is breaking.
the chat output also still breaks with only this mod which locks the chat to having "Usage: tungsten [" displayed forever. image 
the "test" text is a chat message that i sent after using the command and it displays the last message sent (not commands) in chat. only way to fix chat seems to be reloading the world (singleplayer, i havent tested in mutiplayer)

Zaldaryon , Dec 12th 2025 at 6:05 PM (modified Dec 12th 2025 at 7:54 PM)

ividyon I hardened the null check in 1.0.7, try it pls

ividyon, Dec 12th 2025 at 4:49 PM
Crash Report
vsserver  | 12.12.2025 16:46:43 [Server Error] [tungsten] An exception was thrown when trying to start the mod:
vsserver | 12.12.2025 16:46:43 [Server Error] [tungsten] Exception: Object reference not set to an instance of an object.
vsserver | at Tungsten.FrameProfilerController.Enable(Nullable`1 threshold)
vsserver | at Tungsten.TungstenMod.StartServerSide_Patch0(TungstenMod this, ICoreServerAPI api)
vsserver | at Vintagestory.Common.ModLoader.TryRunModPhase(Mod mod, ModSystem system, ICoreAPI api, ModRunPhase phase) in VintagestoryLib\Common\API\ModLoader.cs:line 679
vsserver | 12.12.2025 16:46:43 [Server Error] Failed to start system Tungsten.TungstenMod
Zaldaryon , Dec 11th 2025 at 1:04 PM

EnderMelody it creates some csv values in the ModData folder inside your VintageStoryData folder.

Zaldaryon , Dec 11th 2025 at 9:17 AM

Kyokui I have no reports of it so far, at least they didn't reach to me

Kyokui, Dec 11th 2025 at 5:01 AM

Has this mod been tested in highly modded environments, 80-120+ mods? I'd love to use this for my server since its creeping up on 20 active average players, but am not sure its been tried and tested enough

EnderMelody, Dec 11th 2025 at 4:22 AM

im trying to get the profiler (stats command) but when i type the command in chat it freezes chat from updating further till the stats off command is run. i also dont see anywhere obvious an output file for it. is there more documentation on this command? am i using this right or misunderstanding what this command does?

Zaldaryon , Dec 10th 2025 at 9:58 AM

FilamentCat sigh. It's better to keep that optimization off for now then when using rustbound magic mod.

FilamentCat, Dec 10th 2025 at 4:34 AM

Zaldaryon Still no luck.

Crash Report

10.12.2025 04:31:59 [Server Event] Player Melkin1990 got removed. Reason: Threw an exception at the server
10.12.2025 04:31:59 [Server Error] Exception: Unable to cast object of type 'Vintagestory.API.Common.IPlayer[]' to type 'Vintagestory.API.Server.IServerPlayer[]'.
at rustboundmagic.src.system.effects.StatusEffects.AttemptBuffListRemoveAndAdd(Entity effectedEntityIn, String effectIdIn, Single durationIn) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\system\effects\StatusEffects.cs:line 1043
at rustboundmagic.src.system.effects.StatusEffects.TryToApplyStats(Single duration) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\system\effects\StatusEffects.cs:line 505
at rustboundmagic.src.system.effects.StatusEffects.TemporaryEntityPlayerStats(Entity entity, Dictionary`2 effectList, String code, Single duration, String id) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\system\effects\StatusEffects.cs:line 479
at rustboundmagic.src.system.spells.global.RiftbloomTea1.OnCastStop(Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel, Boolean isspellscrollIn, Boolean inprismofmagnificationIn, Boolean inprismofduplicationIn, Single durationleftafterlogoutIn) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\system\spells\global\RiftbloomTea1.cs:line 39
at rustboundmagic.src.common.collectiblebehavior.CollectibleBehaviorRecoverManaRM.OnHeldInteractStop(Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel, EnumHandling& handling) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\common\collectiblebehavior\CollectibleBehaviorRecoverManaRM.cs:line 175
at Vintagestory.API.Common.CollectibleObject.OnHeldInteractStop(Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel) in VintagestoryApi\Common\Collectible\Collectible.cs:line 1437
at Vintagestory.Server.ServerSystemInventory.HandleHandInteraction(Packet_Client packet, ConnectedClient client) in VintagestoryLib\Server\Systems\Inventory.cs:line 258
at Vintagestory.Server.ServerMain.HandleClientPacket_mainthread(ReceivedClientPacket cpk) in VintagestoryLib\Server\ServerMainNetworking.cs:line 280
at Vintagestory.Server.ServerMain.ProcessMain() in VintagestoryLib\Server\ServerMain.cs:line 934
10.12.2025 04:31:59 [Server Event] Client 3 disconnected.

Zaldaryon , Dec 9th 2025 at 11:59 PM

FilamentCat try 1.0.5 and enable the optimization again. It might work now.

FilamentCat, Dec 9th 2025 at 11:02 PM

Sure. Crash logs are server side only:

Crash Report
9.12.2025 23:00:41 [Server Warning] Exception at client 45. Disconnecting client.
9.12.2025 23:00:41 [Server Notification] Client 45 disconnected: An action you (or your client) did caused an unhandled exception
9.12.2025 23:00:41 [Server Notification] UDP: client disconnected FilamentCat
9.12.2025 23:00:41 [Server Event] Player FilamentCat got removed. Reason: Threw an exception at the server
9.12.2025 23:00:41 [Server Error] Exception: Unable to cast object of type 'System.Object[]' to type 'Vintagestory.API.Server.IServerPlayer[]'.
at rustboundmagic.src.system.effects.StatusEffects.AttemptBuffListRemoveAndAdd(Entity effectedEntityIn, String effectIdIn, Single durationIn) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\system\effects\StatusEffects.cs:line 1043
at rustboundmagic.src.system.effects.StatusEffects.TryToApplyStats(Single duration) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\system\effects\StatusEffects.cs:line 505
at rustboundmagic.src.system.effects.StatusEffects.TemporaryEntityPlayerStats(Entity entity, Dictionary`2 effectList, String code, Single duration, String id) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\system\effects\StatusEffects.cs:line 479
at rustboundmagic.src.system.spells.global.RiftbloomTea1.OnCastStop(Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel, Boolean isspellscrollIn, Boolean inprismofmagnificationIn, Boolean inprismofduplicationIn, Single durationleftafterlogoutIn) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\system\spells\global\RiftbloomTea1.cs:line 39
at rustboundmagic.src.common.collectiblebehavior.CollectibleBehaviorRecoverManaRM.OnHeldInteractStop(Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel, EnumHandling& handling) in C:\Users\Vies\Documents\GitHub\Mods-VintageStoryNet7\Mod-RustboundMagic\rustboundmagic\src\common\collectiblebehavior\CollectibleBehaviorRecoverManaRM.cs:line 175
at Vintagestory.API.Common.CollectibleObject.OnHeldInteractStop(Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel) in VintagestoryApi\Common\Collectible\Collectible.cs:line 1435
at Vintagestory.Server.ServerSystemInventory.HandleHandInteraction(Packet_Client packet, ConnectedClient client) in VintagestoryLib\Server\Systems\Inventory.cs:line 258
at Vintagestory.Server.ServerMain.HandleClientPacket_mainthread(ReceivedClientPacket cpk) in VintagestoryLib\Server\ServerMainNetworking.cs:line 280
at Vintagestory.Server.ServerMain.ProcessMain() in VintagestoryLib\Server\ServerMain.cs:line 934
9.12.2025 23:00:41 [Server Event] Client 45 disconnected.
Zaldaryon , Dec 9th 2025 at 8:24 PM

FilamentCat can you provide the crash log so I can see if there's any way I could contour that?

FilamentCat, Dec 9th 2025 at 8:11 PM

I ran into a crash that occurs when using Tungsten alongside Rustbound Magic. Specifically, the game crashes when drinking Riftbloom tea from any container. The tea uses the vanilla BlockLiquidContainerTopOpened class.

After some digging, I found that disabling EnableContainerOptimization in the Tungsten config fixes the issue. My guess is that the GetContentStacks transpiler optimization (the list reuse pattern) might be conflicting with how Rustbound handles the liquid container during consumption.

Not sure if this is something that can be addressed on the Tungsten side or if Rustbound needs to adjust their code, but figured I'd report it in case others run into the same thing or if there's a known workaround beyond disabling the optimization entirely.

Versions:

  • Tungsten: 1.0.3
  • Rustbound Magic: 3.1.9
  • Vintage Story: 1.21.x

Workaround: Set EnableContainerOptimization to false in ModConfig/Tungsten.json

Zaldaryon , Dec 3rd 2025 at 5:59 PM

Hello smt923. I investigated and this is not caused by Tungsten. 

Most likely suspects:
- BetterRuinsv0.5.4.zip - Modifies worldgen structures
- th3dungeon_0.4.4.zip - Adds dungeon generation
- undergroundmines_1.0.5.zip - Modifies underground worldgen
- giantlilies-1.0.1.zip - Adds worldgen features

 

The mod that causes it looks like triggers a vanilla bug - the vanilla code at LerpedWeightedIndex2DMap.cs:line 227 doesn't properly validate array bounds before accessing elements. This is a Vintage Story bug, not a mod issue - the mods just happen to
trigger the conditions that expose it.

smt923, Dec 3rd 2025 at 4:38 PM (modified Dec 3rd 2025 at 4:47 PM)

installed this mod on our server to test and started getting some worldgen errors that i wasn't getting without it, we have a lot of mods so it might be some sort of conflict but i figure i'd post it just incase it's something obvious or something i can disable to fix, because otherwise this + optitime really seemed to help with the framerate and small stutters on our server

 

as far as actual terrain worldgen mods go we only have terra prety, im not sure if it would be anything else, but the full modlist is below

 

Crash Report
 3.12.2025 16:22:56 [Worldgen] An error was thrown in pass Terrain when generating chunk column X=16061,Z=15955 in world 'A new world' with seed 313185556
Exception System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Vintagestory.ServerMods.LerpedWeightedIndex2DMap.HalfBiLerp(WeightedIndex[] left, WeightedIndex[] right, Single lerp, Single[] output, Single overallweight) in C:\Users\Tyron\Documents\vintagestory\game\VSSurvivalMod\Systems\WorldGen\Standard\Datastructures\LerpedWeightedIndex2DMap.cs:line 227
at Vintagestory.ServerMods.LerpedWeightedIndex2DMap.WeightsAt(Single x, Single z, Single[] output) in C:\Users\Tyron\Documents\vintagestory\game\VSSurvivalMod\Systems\WorldGen\Standard\Datastructures\LerpedWeightedIndex2DMap.cs:line 115
at Vintagestory.ServerMods.GenTerra.generate(IServerChunk[] chunks, Int32 chunkX, Int32 chunkZ, Boolean requiresChunkBorderSmoothing) in C:\Users\Tyron\Documents\vintagestory\game\VSSurvivalMod\Systems\WorldGen\Standard\ChunkGen\1.GenTerra\GenTerra.cs:line 335
at Vintagestory.ServerMods.GenTerra.OnChunkColumnGen(IChunkColumnGenerateRequest request) in C:\Users\Tyron\Documents\vintagestory\game\VSSurvivalMod\Systems\WorldGen\Standard\ChunkGen\1.GenTerra\GenTerra.cs:line 174
at Vintagestory.Server.ServerSystemSupplyChunks.runGenerators(ChunkColumnLoadRequest chunkRequest, Int32 forPass) in C:\Users\Tyron\Documents\vintagestory\game\VintagestoryLib\Server\Systems\World\LoadThread\SupplyChunks.cs:line 1936

 

Modlist
modorigin@/server/assets/creative/
modorigin@/server/assets/survival/
mod@AmericanFrontiersmanWesternWear_1.8.5.zip
mod@AngelBelt-1.20-1.6.0.zip
mod@canoemod+1.21.zip
mod@canoemodcircuitspatch_2.0.0.zip
mod@CaveSymphony_1.2.1.zip
mod@ChiseledBlockRetention-2.0.0.zip
mod@chiseltools1.15.4.zip
mod@ClickUpTorches.zip
mod@CompostTweak_1.3.0.zip
mod@DecorBazaar_v1.3.1.zip
mod@DodgeMaster_1.2.3.zip
mod@drbraziers_1.1.2.zip
mod@Froghat.zip
mod@ImmersiveLanterns_0.3.1.zip
mod@Light_Level_One_2.0.zip
mod@MechanicalBlockRetention-1.0.0.zip
mod@millwright_1.3.1.zip
mod@MoreSaddleBlankets_v0.1.5.zip
mod@MoreTorchHolders_1.0.1.zip
mod@NoBearJetpacks_1.0.2.zip
mod@NoMoreDrifterThrowingRedux1.0.5.zip
mod@overhaullib_1.15.5.zip
mod@playermodellib_1.7.0.zip
mod@primitivesurvival_4.0.2.zip
mod@ProspectTogether-2.1.2.zip
mod@scrollrackable.1.4.0.zip
mod@SeasonedFirewood1.2.5.zip
mod@shelfobsessed_v1.9.1.zip
mod@SoapLyeandBloomV1.3.6.zip
mod@TankardsandGoblets_v1.3.4.zip
mod@temporal_gears_stack+v1.zip
mod@vsimgui_1.1.16.zip
mod@wildfarmingrevival_1.4.2.zip
mod@ABCSRedux_v2.0.5.zip
mod@ACulinaryArtillery 2.0.0-dev.10.zip
mod@airthermomod_0.3.0.zip
mod@alchemy_1.7.21.zip
mod@animalcages_v4.0.2.zip
mod@anthrowolfrace_0.1.2.zip
mod@apelanterns-v1.21.1-1.3.5.zip
mod@Auto Map Markers 4.0.3 - Vintagestory 1.21-rc.zip
mod@BeastsOfMen.zip
mod@bedspawnv2_1.6.4.zip
mod@betterloot2.0.1.zip
mod@BetterRuinsv0.5.4.zip
mod@BetterTradersv0.1.0.zip
mod@BloodTrail-v1.1.8.zip
mod@canjewelry_0.5.15.zip
mod@CarryOn-1.21.0_v1.12.1.zip
mod@CartwrightsCaravan_1.8.0.zip
mod@cheaperterrapreta.zip
mod@combatoverhaul_0.10.19.zip
mod@DanaTweaks-v3.6.0.zip
mod@equusTackAndEquipment_1.0.0.zip
mod@fanciersigns_1.1.1.zip
mod@farseer_1.3.2.zip
mod@foodshelves_2.3.3.zip
mod@Footprints-v1.1.1.zip
mod@FromGoldenCombs-1.21-v1.9.4.zip
mod@genelib_2.1.6.zip
mod@giantlilies-1.0.1.zip
mod@gimmeoneseedplz_1.1.0.zip
mod@globalplayermapmarker_1.2.1.zip
mod@hydrateordiedrate_2.3.2.zip
mod@jaunt_2.1.1.zip
mod@jopainting_1.5.0.zip
mod@kevinsfurniture_1.7.5.zip
mod@Knapster_v3.0.2.zip
mod@lichen1.8.3.zip
mod@lupinerace_0.1.2.zip
mod@maketeaforked_0.7.1.zip
mod@maltiezcrossbows_1.6.8.zip
mod@maltiezfirearms_1.5.3.zip
mod@Mannequin-Stand-v1.0.7.zip
mod@MeteoricExpansion_V1.2.6.zip
mod@MorePiles-v2.2.0.zip
mod@naturescall_1.3.5.zip
mod@nbcartographer_2.2.1.zip
mod@pelaguswinds_1.2.2.zip
mod@petai_v4.0.3.zip
mod@PingMarkers_1.1.1.zip
mod@PlaceEveryItem-v2.3.0.zip
mod@purposefulstorage_1.5.1.zip
mod@rebuildablebloomery_1.0.6.zip
mod@rustboundmagic_3.1.8.zip
mod@scaffolding_1.2.5.zip
mod@SimpleFootStepsRedux-1.0.4.zip
mod@slowtox_4.0.1.zip
mod@smithingplus_1.8.3.zip
mod@stonebakeoven_1.2.0.zip
mod@TerraPrety_7.0.9.zip
mod@th3dungeon_0.4.4.zip
mod@The_Critters_Pack_v1-3-4.zip
mod@toolsanimations_1.3.0.zip
mod@torchholderplaceontop_1.0.1.zip
mod@undergroundmines_1.0.5.zip
mod@usefulstuff17_1.5.0.zip
mod@vanillamoremolds_1.1.2.zip
mod@Vanity-2.4.6.zip
mod@Verticality_0.3.1.zip
mod@vsinstrumentsbase_2.0.6.zip
mod@xlib_v0.9.0-pre.2.zip
mod@armory_1.6.2.zip
mod@BoMCOArmory.zip
mod@cats_v4.0.0_petai_v4.0._.zip
mod@draconis_1.1.4.zip
mod@elkjaunt_1.3.0.zip
mod@equus_1.2.0.zip
mod@ExpandedFoods 2.0.0-dev.5.zip
mod@expanded_matter-3.4.0.zip
mod@foxtaming-1.7.2.zip
mod@morearrows_1.1.2.zip
mod@pastoralism-1.0.2.zip
mod@PlayerCorpse_VS1.21.1_net8_v1.12.0.zip
mod@quiversandsheaths_0.6.3.zip
mod@rustboundmagic_easy_0.1.0.zip
mod@shearlib-1.2.0.zip
mod@StoneQuarry_VS1.21.1_net8_v3.5.1.zip
mod@TabletopGames-v3.0.2.zip
mod@VanillaVariants-RidingEquipment-v2.1.0.zip
mod@vsinstruments_quackpack_1.0.2.zip
mod@wolftaming_v4.1.4_petai_v4.0._.zip
mod@xinvtweaks_v1.8.1.zip
mod@xskills_v0.9.0-pre.2.zip
mod@zrustdrops-2.0.0.zip
mod@ArrowBreakPatch.zip
mod@bricklayers-3.1.4.zip
mod@exoskeletons_0.4.3.zip
mod@rustboundmagicxskillsfix.zip
mod@tailors_delight-2.1.2.zip
mod@wool-1.8.1.zip
mod@xSkillsGilded_1.3.5.zip
mod@xskillsnewclassesexp-fix.zip
mod@dressmakers-1.7.4.zip
themepack@betterbookshelfbacking_1.0.1.zip

 

 

 
Fenvar, Dec 3rd 2025 at 8:01 AM

Your a Wizard. I really appreciate the time you've taken to create this mod and (hopefully) the time you take to continue it. Thank you.

Zaldaryon , Dec 2nd 2025 at 5:49 PM

BraniyaKz should be fixed in 1.0.3

BraniyaKz, Dec 2nd 2025 at 4:28 PM (modified Dec 2nd 2025 at 4:29 PM)

Zaldaryon

On version 1.0.2, in Singleplayer, I keep getting this error in the startup log:

Error Report
2.12.2025 11:20:47 [Error] [tungsten] An exception was thrown when trying to start the mod:
2.12.2025 11:20:47 [Error] [tungsten] Exception: Entry point was not found.
at Vintagestory.API.Common.ICoreAPI.get_Logger()
at Tungsten.TungstenMod.StartServerSide_Patch0(TungstenMod this, ICoreServerAPI api)
at Vintagestory.Common.ModLoader.TryRunModPhase(Mod mod, ModSystem system, ICoreAPI api, ModRunPhase phase) in VintagestoryLib\Common\API\ModLoader.cs:line 679
2.12.2025 11:20:47 [Error] Failed to start system Tungsten.TungstenMod
Yoldovahkriid, Nov 29th 2025 at 7:24 PM

This might be coincidence but since install of this mod on my server the server has indefinitly not responded 2 or 3 times in the last 24hrs which it never did before. More weirdly there hasn't been an error or warning in the console just nothing no new entries etc..
Perhaps someone knows whats going on?

 

Loginvvvvv, Nov 28th 2025 at 4:20 AM

I hope this helps with stutters I've been having

Zaldaryon , Nov 27th 2025 at 3:29 PM

Eurielle if that mod changes some vanilla behavior, yes, it might cause a crash. You can disable the only setting it affects, though. This mod here was made considering the vanilla mechanics per se.

 

Dagurmawth if you provide me the crash log against Rustbound Magic, I can try to fix it on Tungsten's end.

Eurielle, Nov 27th 2025 at 3:24 PM

According to a post on the Rustbound Magic mod it seems this mod and that one don't like each other. It appears to be related to Rustbound Magic's self-buffs but IDK exactly what the issue is as I haven't tested it myself. Just thought I'd give you the headsup on the present incompatibility though!

Zaldaryon , Nov 27th 2025 at 12:38 PM

EthelVril handbook is clientside only. For that you can use the OptiTime mod that I made.

EthelVril, Nov 27th 2025 at 12:24 PM

From my experience, the laggiest part of a modded playthrough is the handbook x.x

Zaldaryon , Nov 27th 2025 at 10:11 AM

BraniyaKz and prototype464 try version 1.0.1 and tell me if it's fixed pls, it should.

Zaldaryon , Nov 27th 2025 at 10:10 AM

WatermelonFrogy yes, I'm @zaldaryon on VS official discord.

WatermelonFrogy, Nov 27th 2025 at 10:02 AM

This is awesome! We might test this out on Age of Seraphs once we update to 1.21! We currently average 50-60 on weekdays and 60-80 on weekends, 100+ during major events. Do you have a discord we could contact you directly on if we come across any problems?

BraniyaKz, Nov 27th 2025 at 1:27 AM

Testing this on my singleplayer, and this exception keeps showing up in the server log:

Error Report
26.11.2025 19:43:39 [Error] [tungsten] An exception was thrown when trying to start the mod:
26.11.2025 19:43:39 [Error] [tungsten] Exception: Entry point was not found.
at Vintagestory.API.Common.ICoreAPI.get_Logger()
at Tungsten.TungstenMod.StartServerSide_Patch0(TungstenMod this, ICoreServerAPI api)
at Vintagestory.Common.ModLoader.TryRunModPhase(Mod mod, ModSystem system, ICoreAPI api, ModRunPhase phase) in VintagestoryLib\Common\API\ModLoader.cs:line 679
26.11.2025 19:43:39 [Error] Failed to start system Tungsten.TungstenMod
prototype464, Nov 27th 2025 at 12:56 AM (modified Nov 27th 2025 at 1:17 AM)

Loaded into a world by mistake, left, then went to load into another world and it sh*t itself upon trying to load, lemme know if you need more logs

Edit: Update, we found out Immersive Lanterns was throwing an OutOfMemory error because there were a lot of lanterns, I'm unsure if that caused this issue here.

Crash Report
26.11.2025 19:54:02 [Error] Exception: Cannot access a disposed object.
Object name: 'System.Threading.ThreadLocal`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'.
at System.Threading.ThreadLocal`1.GetValueSlow()
at Tungsten.SendPlayerEntityDeathsOptimizer.GetReusableList(IEnumerable`1 source)
at Vintagestory.Server.ServerSystemEntitySimulation.SendPlayerEntityDeaths_Patch0(ServerSystemEntitySimulation this)
at Vintagestory.Server.ServerMain.Process() in VintagestoryLib\Server\ServerMain.cs:line 854
26.11.2025 19:54:02 [Notification] All clients disconnected, pausing game calendar.
26.11.2025 19:54:02 [Error] Exception: Cannot access a disposed object.
Object name: 'System.Threading.ThreadLocal`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'.
at System.Threading.ThreadLocal`1.GetValueSlow()
at Tungsten.SendPlayerEntityDeathsOptimizer.GetReusableList(IEnumerable`1 source)
at Vintagestory.Server.ServerSystemEntitySimulation.SendPlayerEntityDeaths_Patch0(ServerSystemEntitySimulation this)
at Vintagestory.Server.ServerMain.Process() in VintagestoryLib\Server\ServerMain.cs:line 854
26.11.2025 19:54:02 [Fatal] Caught unhandled exception in thread 'chunkdbthread'. Shutting down server.
26.11.2025 19:54:02 [Error] Exception: Cannot access a disposed object.
Object name: 'System.Threading.ThreadLocal`1[[System.Collections.Generic.List`1[[System.Int64, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'.
at System.Threading.ThreadLocal`1.GetValueSlow()
at Tungsten.ThreadLocalHelper.GetAndClear[T](ThreadLocal`1 threadLocal)
at Vintagestory.Server.ServerSystemSupplyChunks.moveRequestsToGeneratingQueue_Patch0(ServerSystemSupplyChunks this)
at Vintagestory.Server.ServerSystemSupplyChunks.OnSeparateThreadTick() in VintagestoryLib\Server\Systems\World\LoadThread\SupplyChunks.cs:line 454
at Vintagestory.Server.ServerThread.Update() in VintagestoryLib\Server\ServerThread.cs:line 125
at Vintagestory.Server.ServerThread.Process() in VintagestoryLib\Server\ServerThread.cs:line 55
26.11.2025 19:54:02 [Error] Exception: Cannot access a disposed object.
Object name: 'System.Threading.ThreadLocal`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'.
at System.Threading.ThreadLocal`1.GetValueSlow()
at Tungsten.SendPlayerEntityDeathsOptimizer.GetReusableList(IEnumerable`1 source)
at Vintagestory.Server.ServerSystemEntitySimulation.SendPlayerEntityDeaths_Patch0(ServerSystemEntitySimulation this)
at Vintagestory.Server.ServerMain.Process() in VintagestoryLib\Server\ServerMain.cs:line 854
Zaldaryon , Nov 26th 2025 at 11:45 AM

Anthonyg1479, they're completely different mods, and you can use them together, yes, but the benefits of this mod is mainly for multiplayer servers (as in, for the server itself). 

Anthonyg1479, Nov 26th 2025 at 10:07 AM

Can i use this and your other mod OptiTime at the same time or is this just server side version of that mod?

Ciber, Nov 26th 2025 at 12:39 AM

Trying now! I'm eager to see if this can squish my constant GC pauses in SP (which occure even though I have 32gig ram)