Mods / Pyrogenesis

Tags: #Cosmetics #QoL #Tweak
Author: petrichor
Side: Server
Created: Apr 19th at 3:27 AM
Last modified: Apr 24th at 6:10 AM
Downloads: 2573
Follow Unfollow 167

Latest release (for Vintage Story 1.20.7, outdated):
Pyrogenesis-1.0.3.zip  1-click install


Pyrogenesis brings a dynamic and immersive twist to Vintage Story’s fire mechanics, transforming how fires interact with the environment. Inspired by real-world ecological processes, this mod allows fires to enrich the soil, enhancing fertility and creating fertile Terra Preta, while also clearing grassy and forest floor blocks to create barren landscapes. Whether you’re a survivalist tending crops or a server admin shaping a living world, Pyrogenesis adds depth to fire-based land management, making every blaze a chance to enrich your terrain.
 
When a fire burns over grassy soil or forest floor blocks, Pyrogenesis triggers a series of natural transformations:
  • Soil Fertility Enhancement: Grassy soil blocks are processed, removing grass and potentially increasing fertility from very low to low, medium, high (compost), or even the coveted Terra Preta. The probability of each upgrade is configurable, allowing you to fine-tune the balance of fertility outcomes. The removal of the grassy trait permits the regeneration of grass tufts after a fire.  No more bald green patches!
  • Forest Floor Reversion: Forest floor blocks are converted to medium fertility soil, simulating the clearing of organic material by fire. This creates a clean slate for regrowth or new landscaping.
  • Natural Fire Spread: Fires burn and spread naturally before processing begins, ensuring realistic fire behavior and preventing premature block changes. The mod uses a delayed processing system to preserve the game’s fire dynamics.
Pyrogenesis is lightweight, server-side, and designed for seamless integration into both single-player and multiplayer worlds. With extensive configuration options, you can tailor the mod’s behavior to suit your playstyle, from subtle environmental changes to dramatic landscape transformations.  More mechanics and enhancements are planned.  Currently, just clearing of the grassy trait and soil fertility enrichment are in place.

This is my first mod, and in fact, my first C# program.  If you note any bugs, please let me know and I will try to be responsive as I am using this as a learning opportunity.  If you have ideas for further enhancements, please feel free to leave them below.  I'm not responsible if you intentionally set fire to something which then results in you unintentionally burning your stuff to the ground... fire commands respect. :)

Planned enhancements:
  • Probability of generating flora similar to nearby flora entities... i.e. maybe mushrooms will sprout up after a fire... maybe some new trees.

 

 

Changelog for 1.0.3

  • Updated tree burning mechanics
    • Canopy-pruning event triggers when fire contacts a tree
      • CanopyPruningDelaySeconds is configurable to delay the pruning event
      • pruning event creates canopy separation between neighboring trees to limit widescale forest fires
      • pruning event causes trees to drop seeds and sticks. 
      • seeds can auto-plant via the Dana Tweaks mod if it is installed
    • Better detection algorithm to avoid floating leaf/log blocks
  • Updated soil mechanics
    • Soil can still be stripped of grass with the torch
    • Soil no longer can be upgraded in fertility unless it is fully "grassy" beforehand.

 

Mod Version For Game version Downloads Released Changelog Download 1-click mod install*
1.0.3 1718 Apr 24th at 6:10 AM Pyrogenesis-1.0.3.zip 1-click install

Changelog for 1.0.3

  • Updated tree burning mechanics
    • Canopy-pruning event triggers when fire contacts a tree
      • CanopyPruningDelaySeconds is configurable to delay the pruning event
      • pruning event creates canopy separation between neighboring trees to limit widescale forest fires
      • pruning event causes trees to drop seeds and sticks. 
      • seeds can auto-plant via the Dana Tweaks mod if it is installed
    • Better detection algorithm to avoid floating leaf/log blocks
  • Updated soil mechanics
    • Soil can still be stripped of grass with the torch
    • Soil no longer can be upgraded in fertility unless it is fully "grassy" beforehand.

 

 

Explanation of tree mechanics can be found here:

1.0.2 458 Apr 21st at 12:40 AM Pyrogenesis-1.0.2.zip 1-click install

Updated tree mechanics.  Should run on 1.20.8, but I have not tested it yet.

New configuration options.  You may need to delete the pyrogenesis.json file from your ModConfig directory if it isn't updated automagically.

1.0.1 342 Apr 19th at 8:02 AM Pyrogenesis-1.0.1.zip 1-click install

Complete rewrite to avoid scanning for fire.  Instead, I am using Harmony to extend the fire's entity block behavior.  The result is that the mod now has effect at very large distances and performance is greatly improved.

Added handler for Cob type soil blocks as this was omitted in 1.0.0

1.0.0 55 Apr 19th at 3:32 AM Pyrogenesis.zip 1-click install
Initial release!

54 Comments (oldest first | newest first)

💬 iupiter, Nov 11th at 9:32 AM

Happy to report that this still works just fine, despite the outdated notifications

💬 Kurisu_, Nov 10th at 11:51 PM

Please update :)  Thanks!

💬 DatVegan, Oct 31st at 2:03 PM

Hoping for an update. Want to live the native seasonal farmer lifestyle with controlled fire regimes instead of sedintary homesteadon in the first years. 

💬 ModernScience, Oct 30th at 3:50 AM

I hope that you would consider modifying this slightly to account for barren soil. In polar regions the soil is mostly barren. You can burn stuff, and you get server side messages saying it converted, but it doesn't actually do that. I think it's because the barren soil only ever gets sparse grass. Seems a simple change

💬 Damonicus1986, Oct 26th at 4:40 PM

PLS update this is amazing mod 

💬 TeaTurret, Oct 15th at 7:40 AM

Sadly no longer works for 1.21.1, causes large lag issues and doesn't work as intended.

💬 Hydromancerx, Oct 1st at 7:01 PM

Dosen't seem to be working anymore for v1.21.1 Please update!

💬 LeshyKing, Sep 23rd at 5:45 PM

Jargon I'm an environmental scientist and I agree! Controlled burns are so good for the environment in real life so I love that I can make use of it in VS :D
It's also helped immensely in my arctic playthroughs too

💬 Jargon, Sep 16th at 3:07 AM

Love this mod so much. I'm a history / anthropology / agricultural science guy at heart and having the utility this mod offers brings me great satisfaction; so dope to roleplay something akin to the real-world Amazonian nomadic agroforesters. Really hope to see an update when the time comes. Also maybe I just got lucky when I was last running this but my pit kilns surrounded by grass gave me almsot immediate terra preta lol, I'll have to adjust the difficulty next go!

💬 Bigblock0118, May 23rd at 11:45 PM

@rhino1998 my issue would be related to working classes as well, I wasn't able to figure that out myself, ultimately had to remove this mod because lightning causing trees to burn would cause the error to spam until the server crashed. Only way to fix was keep restarting and loading in until fire finished burning.

💬 rhino1998, May 23rd at 10:44 PM

The tree felling/null player breaks a block bug also occurs with The Working Classes. I think this happens because that mod includes a trait which modifies the block drops for tree-related blocks and GetDrops checks if the player has such a stat.

23.5.2025 18:36:19 [Error] Exception: Object reference not set to an instance of an object.
   at Vintagestory.API.Common.Block.GetDrops(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 1255
   at Vintagestory.API.Common.Block.OnBlockBroken(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 1073
   at Vintagestory.Common.BlockAccessorBase.BreakBlock(BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in VintagestoryLib\Common\API\BlockAccessorBase.cs:line 553
   at Pyrogenesis.TreeMechanics.<>c__DisplayClass28_0.b__0(Single dt) in C:\Users\Arrow\Documents\VintageStoryMods\Pyrogenesis\Pyrogenesis\TreeMechanics.cs:line 367
   at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Common\EventManager.cs:line 174
   at Vintagestory.Server.ServerMain.Process() in VintagestoryLib\Server\ServerMain.cs:line 932
 
(after a quick round if ilSpy on 1.20.11-rc.1)
There is a use of byPlayer that is unguarded for dropped items that are modified by a stat.

if (dstack.DropModbyStat != null)
{
      extraMul = byPlayer.Entity.Stats.GetBlended(dstack.DropModbyStat);
}

Afaict, this is actually a bug in the vanilla code that just isn't triggered by any of the vanilla assets so I've reported it upstream as well.
💬 metasynthie, May 22nd at 7:14 PM

petrichor Any news on patching the Herbarium "null player breaks a block" crash? I posted to encourage the Herbarium mod but it seems like it may not get patched anytime soon. And in the meantime I miss awesome fires spreading! (And running to make a firebreak in the grass.)

💬 Bigblock0118, May 22nd at 12:09 AM

Whenever trees catch fire we get this error spammed until server crashes

 

21.5.2025 23:53:03 [Server Error] Exception: Object reference not set to an instance of an object.
at Vintagestory.API.Common.Block.GetDrops(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 1228
at Vintagestory.API.Common.Block.OnBlockBroken(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 1050
at Pyrogenesis.TreeMechanics.<>c__DisplayClass28_0.<TryFellTree>b__0(Single dt) in C:\Users\Arrow\Documents\VintageStoryMods\Pyrogenesis\Pyrogenesis\TreeMechanics.cs:line 350
at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Common\EventManager.cs:line 170
at Vintagestory.Server.CoreServerEventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Server\ServerEventManager.cs:line 142
at Vintagestory.Server.ServerMain.Process() in VintagestoryLib\Server\ServerMain.cs:line 914
21.5.2025 23:53:03 [Server Notification] Client 3 disconnected: Server shutting down - Too many errors detected. See server-main.log file
21.5.2025 23:53:03 [Server Notification] Last player disconnected, compacting large object heap...

💬 TaimatCompany, May 13th at 3:27 PM

DilanRona this was my experience as well. I set like nine things on fire in a forest and could not get the fire to spread more than a few feet before it went out, nor did any of the the terrain change. Super bummed. I had planned on clearing out a large section of forest but i can't seem to start a forest fire.

💬 DilanRona, May 1st at 8:13 PM

I'm setting fire to the tall grass, but I am not reliably getting it to change from low to medium, and medium to high. Fails more often than not to convert the grass blocks to dirt.

💬 SQUO, Apr 27th at 5:04 AM

Fantastic ill let the server owner know. Herbarium seems to effect a larger portion of all the vanilla foliage as well so I imagine it might be somewhat annoying. I also feel like its probly something that should be dealt with on Herbariums' end anyhow. but i just wanted to let ya know. Thanks for checkin.

💬 petrichor , Apr 27th at 2:18 AM

SQUO Thank you for the log snippet.

It looks like an incompatibility with the Herbarium mod.

The Herbarium mod’s BlockLeavesDropCanes class is likely not designed to handle programmatic block breaking (i.e., byPlayer = null) or certain edge cases (e.g., missing block attributes).  As my mod effectively calls a block breaking method, setting player to null since it is the environment acting upon the object, there is an incompatibility.  I do not play with this mod, but I will try installing it to get details and I will likely need to exclude the implicated plants/trees from my mod's handling.  It shouldn't be too difficult to address.
💬 SQUO, Apr 27th at 1:27 AM

The Logs are extremely long because of the errors, but theyre made up almost entirely of a couple of errors, notably;

These

Spoiler text.

26.4.2025 23:22:40 [Server Error] Exception: Object reference not set to an instance of an object.
at Vintagestory.API.Common.Block.GetDrops(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 1255
at herbarium.BlockLeavesDropCanes.GetDrops(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in D:\VSMods\Herbarium\Herbarium\src\Block\BlockLeavesDropCanes.cs:line 11
at Vintagestory.API.Common.Block.OnBlockBroken(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 1073
at Vintagestory.Common.BlockAccessorBase.BreakBlock(BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in VintagestoryLib\Common\API\BlockAccessorBase.cs:line 550
at Pyrogenesis.TreeMechanics.<>c__DisplayClass28_0.<TryFellTree>b__0(Single dt) in C:\Users\Arrow\Documents\VintageStoryMods\Pyrogenesis\Pyrogenesis\TreeMechanics.cs:line 367
at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Common\EventManager.cs:line 170
at Vintagestory.Server.CoreServerEventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Server\ServerEventManager.cs:line 142

26.4.2025 23:22:41 [Server Error] Exception: Object reference not set to an instance of an object.
at Vintagestory.API.Common.Block.GetDrops(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 1228
at Pyrogenesis.TreeMechanics.<>c__DisplayClass28_0.<TryFellTree>b__0(Single dt) in C:\Users\Arrow\Documents\VintageStoryMods\Pyrogenesis\Pyrogenesis\TreeMechanics.cs:line 531
at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Common\EventManager.cs:line 170
at Vintagestory.Server.CoreServerEventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Server\ServerEventManager.cs:line 142
at Vintagestory.Server.ServerMain.Process() in VintagestoryLib\Server\ServerMain.cs:line 914

26.4.2025 23:27:51 [Server Error] Exception: Object reference not set to an instance of an object.
at Vintagestory.API.Common.Block.GetDrops(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 1228
at Vintagestory.API.Common.Block.OnBlockBroken(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 1050
at Vintagestory.Common.BlockAccessorBase.BreakBlock(BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in VintagestoryLib\Common\API\BlockAccessorBase.cs:line 550
at Pyrogenesis.PyrogenesisModSystem.OnGlobalTick(Single dt) in C:\Users\Arrow\Documents\VintageStoryMods\Pyrogenesis\Pyrogenesis\PyrogenesisModSystem.cs:line 325
at Vintagestory.Common.GameTickListener.OnTriggered(Int64 ellapsedMilliseconds) in VintagestoryLib\Common\Model\GameTickListener.cs:line 31
at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Common\EventManager.cs:line 170
at Vintagestory.Server.CoreServerEventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Server\ServerEventManager.cs:line 142
at Vintagestory.Server.ServerMain.Process() in VintagestoryLib\Server\ServerMain.cs:line 914

26.4.2025 23:28:10 [Server Event] Player SQUO got removed. Reason: Server shutting down - Too many errors detected. See server-main.log file
26.4.2025 23:28:10 [Server Notification] Server stop requested, begin shutdown sequence. Stop reason: Too many errors detected. See server-main.log file

26.4.2025 23:28:11 [Server Error] More then 100000 errors detected. Shutting down now. Threshold can be changed in serverconfig.json "DieAboveErrorCount"

I'll work on getting a mod list.

 

 

 

💬 petrichor , Apr 27th at 12:57 AM

SQUO i can try to replicate.  Can you post your modlist and maybe a snippet from the logs?  Or, perhaps, post the logs on pastbin or something and link here and I will take a look.

I don't make changes to how fire actually propagates or ignites, only what happens when it is detected with respect to soil and trees.  If something is generating enough load, it could cause the server to time out.

💬 SQUO, Apr 27th at 12:53 AM

Just seemed to get a bug with pyrogenisis on server where attempting to light certain foliage on fire while it was raining would cause a spam of errors, ultimately closing the server due to too many errors. I have some logs available to look at if you need. What it looks like is that the fire is being extinguished too quickly when the lighting action is being done, and the mod is attempting to resolve each time it extinguishes, at a guess.

 

💬 Victim, Apr 26th at 5:58 AM

Furthering the ash idea, if you wanted to give it a use, could make it a light fertilizer. Something like K 10% P 1-2%. Also, while its likely out of the scope of the mod, someone could make a compatability patch to use the ash in pottery/glazing in other mods or if soapmaking ever comes about, wood ash was used in producing soap with many materials already in the game.

💬 Caliess, Apr 26th at 4:36 AM

The updated firestarters from Extreme Firestarters don't work on the grass/plants/trees that your mod makes flammable. would be nice to have it work, but it also might not be your problem to fix

 

Also, would it be possible to have farmland get upgraded if you let grass and horsetail grow on it, then burn it?

💬 Victim, Apr 25th at 12:14 PM

Haven't given the mod a shot yet, but you made this at the perfect time for me lol. Was just hunting for something like this to make wildfires less permanently debilitating to a world so I could leave lightning fires on. 

💬 DecaByte, Apr 24th at 11:01 PM

petrichor
Hey, it's your mod & you do what you think is best. I just appreciate you even considered my idea. Thanks.

💬 petrichor , Apr 24th at 9:32 PM

Tels that might be the case for trees placed by worldgen,  but i don't think it is the case when it comes to placed trees.  Also, not sure what they mean by "slight ahead or behind", because there are identifers like `leaves-grown6-oak` and `leaves-grown7-oak`.  While these CAN be used to differentiate between two trees, I have seen plenty of cases where two neighboring trees share the same code. Because of that, I would have to perform the pruning operation that I am already doing, and then it just becomes a lot of additional logic for minimal gain. Having each tree with a uniq ID, perhaps a hash of its coordinates, would be a much better way to go about it.  That's something for the VS devs though, and i'm not sure it is important enough to warrant the work.

DecaByte i was thinking ash was already in the game for some reason.  I could certainly add an ash layer, much like snow, but grey and non-melting, but i don't know what the implications would be if someone used the mod, had ash on the ground, and then disabled the mod.  It might make a mess of things, which is why i have been hesitant to add new blocks and entities to the game.  I might play around with it and see if there is a good way to do it though.


💬 Tels, Apr 24th at 7:43 PM

petrichor I've found it in the changelog:

`Tweak: Tree foliage fine tuning. Each individual tree is now slightly ahead or behind the season tinting, and chopping a tree is now more likely to only fell the targeted tree`

 

From 1.18.0 https://www.vintagestory.at/blog.html/news/v1180-lore-update-the-resonance-archives-stable-release-r352/

 

 

💬 petrichor , Apr 24th at 7:42 PM

DecaByte i can look into the ash mechanic. 

Damonicus1986 i think that there are a few different mechanics that one can use to fight the fire, but I would like to avoid putting new items in the game with this mod because i don't want there to be an issue with removing the mod if someone chooses to do so.  Maybe a separate firefighting mod would be good... perhaps armor that helps with fire damage... the ability to stomp out fires... perhaps a trenching tool that you can use to strip burnable material and create a firebreak

💬 petrichor , Apr 24th at 7:35 PM

Tels if the trees had a uniq ID, and all of their blocks were tracked, that would greatly simplify things.  That certainly does not appear to be the case in creative or survival though.

The blocks all have a felling code, but the code will be the same if the two trees are of the same type.  The felling code in that sense is almost pointless since one can surmise it from the block's name.  It does trivialize the case when two trees have overlap but are not of the same species, otherwise, not much of a help.


💬 Tels, Apr 24th at 6:23 PM

petrichor You mention in your video, that the game will "prune" a sphere around the tree your are chopping down with your axe, damaging the tree next to it. This is a "missing feature aka bug" that was supposed to be fixed a long time ago in VS, where each tree has a unique nr or identified on the blocks and when you  chop down a tree, it is supposed to cull only this tree (and if I remember correctly, even when the same species is next to each). Maybe this isn't working properly in creative mode? Or maybe the feature no longer works?

 

Great work on your mod - hopefully it inspires Tyron to put better fire spread and performance into the base game :) (Plus it's kinda unfortunate that pitkilns spread fire, but firepits don't, not even to the block right above them...)

 

💬 Damonicus1986, Apr 24th at 9:16 AM

siince i tried it first time and ggot epic moment where fire came oout of underground mine spreading across the valley and me running for 2 in game days tryiing too save what i can i cannot play without it anymore :D  well done, could use some tool to extinguish fire tho :D

💬 DecaByte, Apr 24th at 8:03 AM

petrichor
Looks like the mod is coming along nicely! Great job! Very excited in using this mod!
How about instead of upgrading the soil on burn, instead leaves a layer ash where the organic material was burned & after a set of time (or on next rain) the ash would disappear to leave a upgraded soil?

💬 Kudamas, Apr 21st at 11:48 PM

I love this mod! I settled in a beautiful open grassy area, but the soil is awful. I had to travel pretty far to find any medium fertility soil for my farm. This mod fixes that and helps to clear all the unwanted brush in a very entertaining way. Thank you!

💬 KnapTheStones, Apr 21st at 11:22 PM

slash-and-burn agriculture in Vintage Story seems cool

 

💬 petrichor , Apr 21st at 12:46 AM

Vigilance from my testing, impact is minimal.  It might actually help server-side to some extent.

One of the issues with stock fire propagation is that entire forests could burn down rather easily, especially in cases where tree canopies overlap.  One of the features of the 1.0.2 version of this mod is a canopy-pruning event which trims the outermost leaves after a set duration once the tree has been exposed to fire.  This helps to create some separation between the trees while leaving the tree in an aesthetically pleasing state should it survive the fire.  As such, this should reduce server-side load by limiting runaway fires. Fires will still spread via groundcover, so forest management becomes relevant.

Other than that, i've made a lot of improvements since the first release of the mod, which was more or less a proof-of-concept.  The initial release used a resource-hungry scanning method to look for fires, but the new mod is event driven.  No permanent changes are made by the mod though, so if you find that it causes you grief, you can remove it without fear.


💬 Vigilance, Apr 20th at 8:48 PM

What are the performance impacts of this mod? I'd imagine it's mostly stuff on the server's CPU side, as far as performance load goes? I'm currently battling a (life-long) fight against RAM consumption, and I love this as a concept but am scared of making it any worse haha.

💬 MagnaFM, Apr 20th at 8:35 PM

Very glad to have this for my server, even just clearing the grassy trait will make this mod a great addition.

💬 DilanRona, Apr 20th at 5:58 PM

Had the same problem with both just Astria Porta active, and when I disabled all the mods; the same error message was still there (both cases were new maps generated). Eventually the error message dissapeared So I figured it was something on the vanilla side that had a stuck dll somewhere. So when I put mods that was battle tested back (no errors), and then the mods currently being tested (no errors), I figured problem solved. So I reloaded my normal map, and I got flooded with errors again. So something on the map itself was broken, and not any of the mods.

💬 petrichor , Apr 20th at 4:19 PM

DilanRona No need to apologize.  Some of us enjoy solving problems more than coding. :)   I've thought plenty of times that a particular mod was responsible for a problem when it turned out that the mod in question was just fine, but it exacerbated or otherwise revealed an issue with a completely different mod. 

💬 RowanSkie, Apr 20th at 2:12 PM

This is actually a fast way to get fertile soil. I love it, considering I live in a very grassy low fert soil area.

💬 DilanRona, Apr 20th at 9:44 AM

Ok, your mod is not responsible for the duplication bug. will have to look at the other mods I have installed, starting with the most receint ones. Sorry for having giving you an unnessesary headache

 

💬 DilanRona, Apr 20th at 6:59 AM

Mod list as of today.

 

'ACulinaryArtillery 1.2.5.zip'
Aged1.0.8.zip
AgingBarrels-1.0.0.zip
AlloyCalculator-v1.0.0.zip
AncientTools_V1.5.24.zip
animalcages_v3.2.1.zip
AutoPanning-v1.0.1.zip
axleinblocks_1.20.1-rc.5.zip
barstotemporal.zip
bedspawnv2_1.4.0.zip
BetterBloomery-1.0.5.zip
BetterChisel-1.0.0-rc.4.zip
BetterFirepit-1.1.5.zip
BetterJonasDevices-Fixed-v.2.0.2.zip
betterloot1.1.1.zip
BetterProspecting_1.7.0.zip
BetterRuinsv0.4.10.zip
BigNailMold-1.0.5.zip
blockoverlay-4.3.1.zip
butchering_1.8.2.zip
'butchering_cowstyle 1.0.2.zip'
ButcheringPatch_1.0.4.zip
CarryOn-1.20.0-pre_v1.8.0-pre.1.zip
ChuteableQuern.dll
chuteblockplacer_1.0.4.zip
chutemod_1.0.0.zip
clayprocessing_1_to_4_1.0.3.zip
CommonLib_VS1.20.0-rc.1_net7_v2.6.1.zip
Composter-v1.2.1.zip
configlib_1.5.1.zip
coolinbarrel_0.5.3.zip
craftableJonasParts_v1.0.0.zip
CraftableMetalParts_1.0.0.zip
craftablerocks.zip
CraftableTemporalGears-1.1.0.zip
Debugging
domesticanimaltrader1.1.0.zip
DryableGroundStorage.zip
'EasyFruitTrees 1.0.1.zip'
'ExpandedFoods 1.7.4.zip'
ExtraInfo-v1.9.7.zip
ExtraOverlays_VS1.20.1_net7_v1.5.0.zip
farmlanddropswithnutrients_1.2.1.zip
fixcratemod_0.1.0.zip
FlexibleTools-3.4.0.zip
Foundry_v1.0.0.zip
FromGoldenCombs-1.20-v1.8.11-rc.7.zip
GrassierGrass_v1.0.0.zip
icyexc.zip
ImprovedHandbookRecipes_1.1.3.zip
instantTemporalmobdrops_v1.0.1.zip
Knapster_v2.14.3.zip
largercrock_v1.0.2.zip
LimestoneSpeleothems-1.1.0.zip
medievalexpansionpatch-1.0.1.zip
MetalPartstoMetalScraps.zip
'Molds v0.1.7.zip'
MonsterDropsv1.0.0.zip
morecalcinedflint.zip
MoreTreesMoreSeeds_v1.0.0.zip
mushroomtrader1.0.5.zip
ndlvillagers_1.3.2.zip
ndlwoodentorchholder_1.3.3.zip
Normalizer-1.0.1.zip
PanCassiterite.zip
PaperLanternRecipe_v0.2.1.zip
PlayerCorpse_VS1.20.0-rc.1_net7_v1.11.0.zip
potashboneashfertilizer1.2.zip
primitivesurvival_3.7.6.zip
PrimitiveTools.zip
propagatingreeds.zip
reedbuff.zip
remotetradercheckmod_0.2.3.zip
resregrow2-1.0.0.zip
rifteye_0.4.2.zip
R.Meat_v0.0.4.zip
rockchisel_1.0.1.zip
RustYourGears1.1.1.zip
SeaLevelFix_1.0.5.zip
smithingplus_1.5.7.zip
SpearsPlus_v1.1.0.zip
SticksFromFirewood-1.1.0.zip
StickyMouseButtons-1.1.1.zip
StirlingAge-0.10.0.zip
stonebakeoven_1.1.6.zip
StoneQuarry_VS1.20.1_net7_v3.4.3.zip
substrate_1.1.2.zip
SuperFuelResume-v2.1.4.zip
tablet_v0.2.0.zip
'temporal_gears_stack v1.zip'
titaniumtools_1.0.3.zip
toolsmith_1.0.13.zip
traderssellborax.zip
tradie_1.0.2.zip
translocatorengineeringredux_1.5.6
translocatorrelocator_1.0.1
treetapper_v1.0.0.zip
tulepropagation.zip
undergroundmines_1.0.4.zip
usefultraders-v2.2.0.zip
viescraftmachines_2.4.0.zip
VSCreativeMod.dll
VSCreativeMod.pdb
VSEssentials.dll
VSEssentials.pdb
vsimgui_1.1.7.zip
VSSurvivalMod.dll
VSSurvivalMod.pdb
wildanimalstrader1.0.8.zip
wildfarmingrevival_1.3.6.zip
workbench-expansion-patch-1.0.0.zip
advancedchests_v0.2.4.zip
aloysiasearlyinkandquill1.0.0.zip
astriaporta_0.0.2.zip
foodshelves_1.6.1.zip
FotSA-Pantherinae-v1.1.25.zip
HarvestableInventorySize-v1.0.0.zip
'harvestice v1.0.0.zip'
linkerrequirestinkerer_0.0.1
PassThruChutes_V1.0.2.zip
RecipeSelector_VS1.19.8_net7_v1.0.1.zip
'Re-Smeltables Light_ v1.1.2.zip'
TentBag-2.2.0.zip
tibojrecipes-1.2.2.zip
translocpart.zip
'Unpack Dirt.zip'
Autorotor1.1.2.zip
ClaimRadars-1.1.0.zip
HammerCrushed-1.0.0.zip
MastodonTrunk_v1.0.1.zip
MoveLikeKaji_0.0.6.zip
Xcore-0.0.5.zip

 

I can send the logs to you via forums if you want to take a look.

💬 FamiliarFeline, Apr 20th at 2:54 AM

petrichor Thank you for checking on that, I'm not sure what my problem is because it sounds like others are working fine, looking in the mod zip I find a modicon, modinfo, deps.json, .dll, and .pdb file, is there meant to be more than that?

It's not generating a modconfig either or even being detected by VS, which is deeply confusing to me, but it may not even be a you issue depending on what's going on here.

Edit: I actually determined this was an issue unrelated to the mod and relating to a client config issue, it was pointing to an old mods folder that I couldn't find. I apologize for the wasted time.

💬 petrichor , Apr 19th at 7:33 PM

DilanRona

Could you provide me with a list of mods that you are running?

💬 DilanRona, Apr 19th at 5:23 PM

Basically setting fire to grass. As for the item duplication, running the game for a few min with the mod active usually triggers it.

💬 petrichor , Apr 19th at 4:31 PM

Felniir The forestfloor block has 8 levels of "green".  in game, they are called forestfloor-0 (barren) up to forestfloor-7 (most green).  All I am doing currently is converting the underlying forestfloor-* to forestfloor-0 every time a fire takes place.  In retrospect, this might not be the best because I never tested whether or not forestfloor blocks progressively become more green over time like most soil blocks do.  If they don't, I might need to change it to generate low or medium fertility soil. 

 

I don't know enough about the forestfloor block to know if it has any importance or significance to guide my decision to potentially replace it like that, but I'll certainly take suggestions, and maybe make it a toggle so that those blocks can be converted to medium-fertility soil or something.


In looking at this more in depth, i understand the intent of Forest Floor blocks was to provide less-green soil around trees, which would deprive the underlying soil of light and limit undergrowth.  That, in conjunction with the fact that the forest floor blocks do not "green up" over time, means that it is probably a poor choice for me to revert them to a non-green state (i.e. forestfloor-0).  I can add a toggle to convert them to medium soil, but that would result in a permanent increase in undergrowth and "green stuff" in potentially very dense forests, which might seem unrealistic to some people.

What I could do is defer the choice... if the tree(s) that prompted the generation of Forest Floor blocks have been burned down as a result of the fire, then it makes sense to replace the forest floor blocks with regular soil. A more realistic approach, and probably something outside the abilities of this mod, would be to have medium fertility soil replace the forest floor blocks, but use light probes or tree proximity to later degrade medium soils back to forest floor.  This, I feel, would be better suited to a dedicated forest mod, or maybe core game mechanics.

I'll make my github repo public and allow people to start opening bugs there in addition to here, as well as offer suggestions on how to handle things.  I've got a few ideas, i just don't want to make an overly bloated mod that tries to do too much. :)

💬 petrichor , Apr 19th at 4:24 PM

DilanRona

Can you provide me with replication steps.  I am not certain i understand exactly what you are referring to.  I'll certainly look for the log entries that you reference.

The second version was a complete rewrite in the mechanics, so it is quite unlikely that the two versions triggered that same sort of error, but seeing as i am a bit of a novice when it comes to C#, anything is possible, up and including having the mod accidentally turn the game into counterstrike or something :D

The mod does currently generate debugging entries in the logs, but this was left in place just for troubleshooting the initial builds without having to spin a debugging release for everyone every time something comes up.  I'll add an option to enable/disable debug logging in a future release. 

My guess is that it might be an interaction with other mods, not an issue with the mod standalone, but I will certainly try to figure it out.

💬 DilanRona, Apr 19th at 2:30 PM

Duplication bug still present. Affects everything from picking up dead animals (butchering mod) infinately, to picking items dropped from mining, chopping wood, cutting grass, dropping from inventory and picking up again. Will definately be installing this one, but it needs some more time in the proverbial oven to bake some more.

💬 DilanRona, Apr 19th at 1:08 PM

Thanks for the update. I found a very severe duplication bug on the prev version that I was about to report, but the last update allready fixed that.

Did find this though being spammed in my logs with every tick update when there is a fire. 7-12 times per second, that is being spawned. And I noticed it is only there when your mod is active :-/

19.4.2025 15:07:15 [Server Error] Exception: Object reference not set to an instance of an object.
at Vintagestory.GameContent.EntityBehaviorAttachable.OnEntityDespawn(EntityDespawnData despawn) in VSSurvivalMod\Entity\Behavior\BehaviorAttachable.cs:line 403
at Vintagestory.API.Common.Entities.Entity.OnEntityDespawn(EntityDespawnData despawn) in VintagestoryApi\Common\Entity\Entity.cs:line 1397
at Vintagestory.API.Common.EntityAgent.OnEntityDespawn(EntityDespawnData despawn) in VintagestoryApi\Common\Entity\EntityAgent.cs:line 296
at Vintagestory.Server.ServerMain.DespawnEntity(Entity entity, EntityDespawnData despawnData) in VintagestoryLib\Server\ServerMain.cs:line 2501
at Vintagestory.Server.ServerSystemEntitySimulation.TickEntities(Single dt) in VintagestoryLib\Server\Systems\World\EntitySimulation.cs:line 334
at Vintagestory.Server.ServerSystemEntitySimulation.OnServerTick(Single dt) in VintagestoryLib\Server\Systems\World\EntitySimulation.cs:line 174
at Vintagestory.Server.ServerMain.Process() in VintagestoryLib\Server\ServerMain.cs:line 914

💬 Felniir, Apr 19th at 10:46 AM

Can you make the forest floor burnable like the vanilla peat block but instead of destroying the block it replaces it with low/medium fertility soil,I think it makes sense that the forest floor block

to be more burnable than the normal soil block sinse it has increased organic material,because I tried with your mod to clear a whole forest but only the trees got burned, 10-15% of the soil changed.

Also I can't wait for the floating leaves block fix!

 

Cheers m8!

💬 HaraiseTenshi, Apr 19th at 9:18 AM

So to understand this correctly?

Like in the video I just set fire to a gassy patch of low fet soild and might end up with medium fert or even a few blocks of high fert?

THATS AWESOME

💬 DecaByte, Apr 19th at 8:35 AM

I'm looking forward to your work on the, "Elimination of floating leaf blocks following a fire."

💬 petrichor , Apr 19th at 8:04 AM

FamiliarFeline  The prior method for detecting fire was a poor choice.  I was scanning around the player because I couldn't figure out which API method to use since 1.20 has changed quite a bit.  I have since figured it out and have moved to using Harmony Lib to extend the fire's entity block behavior.  Please try the 1.0.1 release and let me know. 


The mod SHOULD create a .json in the ModConfig directory if it isn't already present, and it allows you to set the probabilities for various fertility upgrades. You should be able to set Terra Preta's value to zero.

Here is the .json format, you might need to delete an existing one since it has changed a bit since the previous version.  Just deleting it should cause the new version to drop in the correct file.

{
// Probability of very low fertility soil upgrading to low
"VeryLowToLow": 0.9,
// Probability of low fertility soil upgrading to medium
"LowToMedium": 0.9,
// Probability of medium fertility soil upgrading to compost (high)
"MediumToHigh": 0.7,
// Probability of compost (high) fertility soil upgrading to terra preta
"HighToTerraPreta": 0.4,
// Modifier for multi-tier fertility upgrades (e.g., very low to medium)
"MultiTierModifier": 0.1
}

The "MultiTierModifier" is what controls the ability to jump 2 tiers.  For instance, Low to Medium has a 90% chance of happening.  Low to High is 90% * 70% * 10% or 6.3%   

I hope that helps!

💬 FamiliarFeline, Apr 19th at 4:12 AM

After some testing, it seems like the mod doesn't currently work, I checked the zip file and it doesn't actually have any interactions included in it that I could find, it's possible it wasn't built properly? Please take a look, I really appreciate the concept and would love to see it in action.

💬 FamiliarFeline, Apr 19th at 3:58 AM

This seems like a neat mod, I personally appreciate the concept of being able to make high fertility soil(Tera Preta is a bit busted tho), as high fert is hard to come by but medium is decently common. I'll probably add this and then greatly reduce the yield/chances of conversion, remove the Tera preta conversion, and I'll be in good shape. I appreciate all the configurability you've added, seems great!

 

 (edit comment delete)
Основной веб-сайт | Почтовый сервер | FTP сервер | Административная панель | API интерфейс | Content Delivery Network | Статические файлы | Ресурсы сайта | Изображения | Файловое хранилище | Блог | Интернет-магазин | Техническая поддержка | Справочная система | Документация | Форум | Новости | Загрузки | Демонстрация | Тестовая среда | Приложение | Медиа контент | Разработка | Промежуточная среда | Бета версия | Безопасная зона | Вход в систему | Панель управления | Портал | Система управления контентом