Back to mods

Vintage Story Mod DB · Vintage Story mod

BlockBasedTransientBehavior

Replaces the `BlockEntityTransient` grass growth system with Vintage Story's built-in random block tick system. Optionally converts dry grass from Art of Growing Patch. Both the Base game grass and Art of Growing attach a `BlockEntityTransient` (there is a sp

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which BlockBasedTransientBehavior release should I use?

Updated 4 months ago
Latest stable file 1.3.3
Game version 1.21.0-pre.1, 1.21.0-pre.2, 1.21.0-pre.3
Loader Built-in Vintage Story mod system

BlockBasedTransientBehavior 1.3.3 targets 1.21.0-pre.1, 1.21.0-pre.2, 1.21.0-pre.3. It must be installed on the client. Installation on the dedicated server is optional. No extra mods listed for this file.

Where it goes

Is BlockBasedTransientBehavior required on the client, server, or both?

It must be installed on the client. Installation on the dedicated server is optional.

Client Required
Dedicated server Optional
Loader for this release Built-in Vintage Story mod system
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

This release supports both sides, but the source does not require it on the server.

What else does BlockBasedTransientBehavior 1.3.3 need?

1.3.3. Change the file and its required mods may change too.

No extra mods listed for this file

This file does not list any required mods. Do not add a library just because a different file uses it.

This file does not list any required or optional mods.

Before you install it

Add BlockBasedTransientBehavior without breaking your instance.

Built for BlockBasedTransientBehavior 1.3.3. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use 1.3.3. It targets 1.21.0-pre.1, 1.21.0-pre.2, 1.21.0-pre.3; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    This file does not list any required mods. Do not add a library just because a different file uses it.

  3. 03

    Put it on the correct side

    It must be installed on the client. Installation on the dedicated server is optional.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside 1.3.3. It opens that exact file at the source.

About this project

What does BlockBasedTransientBehavior add?

Replaces the `BlockEntityTransient` grass growth system with Vintage Story's built-in random block tick system. Optionally converts dry grass from Art of Growing Patch.
Both the Base game grass and Art of Growing attach a `BlockEntityTransient` (there is a special AOGTransient to handle wetness but it is basically the same logic) to every tallgrass block to drive growth. On large worlds, this results in hundreds of thousands of active tick listeners (about 700k listeners across the loaded chunks in Chronicles of Time server), causing measurable server lag on chunk load and during normal gameplay.
 

This mod eliminates those block entities entirely. Tallgrass now grows and regresses through random block ticks (ShouldReceiveServerGameTicks and OnServerGameTick)
 
Instead of grass taking a set amount of time to grow to the next stage, now a probabilistic approach is taken. On average it should still grow at the same rate, but it is possible that multiple growth stages happen in a short while. That's just the nature of probability and dice rolls.
 
New logic:
- Grass grows through the standard AOG stages (eaten - veryshort - short - mediumshort - medium - tall - verytall) at roughly the same average rate
- Regresses one stage at a time when the temperature drops below 0°C, or when snow-covered, or when the average rainfall of the last RainfallAveragingDays days is under the number defined by RecessionRainfall
- Drops 1-5 dry grass when harvested with a knife or scythe, scaling with height
- On first load of a previously unloaded chunk, simulates the missed growth/regression month by month so long absences are reflected correctly (technically achieved by storing the load time in TotalDays every chunk load)
- On first load, any existing `talldrygrass` blocks (from AOG's drying mechanic) are converted to regular tallgrass. Block entities left over from the old system are cleaned up automatically.
 
The grass growth rate multiplier and some other options can be set in `ModConfig/bbtb.json` on the server:

```json
{
  "GrowthRateMultiplier": 1, // How fast the growth factor is 
  "RecessionTemperature": 0.0, // Under this temperature the grass starts receding
  "GrowthTemperature": 8.0, // Over this temperature the grass starts growing
  "RecessionRainfall": 0.0 // If the average rainfall for the last RainfallAveragingDays days is under this number, the grass will recede (value from 0-1),
  "RainfallAveragingDays": 14 // the amount of days to average the rainfall before the current date
}

```

Project description from Vintage Story Mod DB.

Pick your setup

BlockBasedTransientBehavior releases for each Vintage Story version.

Choose the version and loader you play, then open the matching release.

23 available setups

Showing the newest 12 of 23 game versions. Older files are in the list below.

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

BlockBasedTransientBehavior versions and loaders

7 of 7 releases match

Looking for an older file? The official Vintage Story Mod DB project page is in Resources.