Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Creators
Details
This mod makes the forests in TerraFirmaCraft regenerate or spread over time. Trees only spread during fall, as this is when they typically drop their seed-bearing fruits, as such new trees will be ready for the next spring. Which trees that can spread or regenerate is configurable using a data pack, as well is how fast and how far they can spread their seeds.
Supports ArborFirmaCraft out-of-the-box.
Forest Regrowth Recipes
Regrowth Recipes define how plants, bushes, and trees naturally spread and regenerate in the world. Instead of a static world wherin no trees or vegetation spread, each recipe specifies the conditions under which a sapling (or otherwise specified block) can appear, making forests, vegetation and the world feel more alive, interactive and responsive to and with their surroundings.
The mod adds spreading mechanics to TFC leaves, fruit tree leaves and fruit bushes.
Features
-
Dynamic forest growth
Leaves or bushes can spread into new saplings over time, simulating natural regrowth. -
Environment-aware spawning
Growth can be restricted by rock types, altitude ranges, and light levels. -
Climate sensitivity
Recipes can enforce temperature and rainfall thresholds, including average values and variance. -
Groundwater and hydration checks
Plants only spread in viable soil conditions. -
Forest type integration
Recipes can be tied to specific forest types and subtypes. -
Seasonal control
Regrowth can be limited to specific months of the year. -
Chance and spread distance
Configurable probability and radius determine how often and how far saplings appear.
Minimum Viable Recipe
Here's the smallest valid recipe definition, showing only the required fields:
{
"type": "tfcrf:regrowth",
"leaves": [
"<block ingredient>"
],
"sapling": "<block state>"
}
This ensures the recipe is functional. By default, chance, spread distance, environment, climate, groundwater, forest, and season all allow regrowth without restrictions. You only need to add extra fields when you want to constrain growth to specific conditions.
Example Recipe
Below is a more detailed recipe for oak trees, showing how you can constrain regrowth to specific conditions. This uses already established environmental conditions required for oak trees to generate in TFC:
{
"type": "tfcrf:regrowth",
"leaves": [
"tfc:wood/leaves/oak"
],
"sapling": "tfc:wood/sapling/oak",
"chance": 4572,
"spread_distance": 19,
"rocks": [],
"min_y": 60,
"max_y": 85,
"min_light": 11,
"max_light": 15,
"min_average_temperature": -5.8,
"max_average_temperature": 8.6,
"min_rainfall_variance": -0.3,
"max_rainfall_variance": 0.45,
"min_groundwater": 210,
"max_groundwater": 380,
"forest_types": [],
"forest_sub_types": [],
"months": [
"january",
"february",
"march",
"april",
"may",
"june",
"july",
"august",
"september",
"october",
"november",
"december"
]
}
Possible Recipe Objects
A regrowth recipe can include the following objects. Only leaves and sapling are strictly required; all others are optional and default to permissive values if omitted.
Base Data
- leaves: One or more leaf blocks that can spread into saplings.
- sapling: The block state of the sapling that will be placed when conditions are met.
- chance: Probability factor for regrowth. Larger numbers mean rarer events. Default:
3000.0. - spread_distance: Maximum horizontal distance a new sapling can appear from the source leaves. Default:
18.0.
Environment Data
- rocks: List of allowed rock types. Use lowercase names (
"andesite","gabbro","gneiss", etc.). Empty list means no restriction. - min_y: Minimum altitude (Y-level). Default: unrestricted.
- max_y: Maximum altitude (Y-level). Default: unrestricted.
- min_light: Minimum light level. Default: unrestricted.
- max_light: Maximum light level. Default: unrestricted.
Climate Data
- min_temperature: Minimum current temperature. Default: unrestricted.
- max_temperature: Maximum current temperature. Default: unrestricted.
- min_average_temperature: Minimum average temperature. Default: unrestricted.
- max_average_temperature: Maximum average temperature. Default: unrestricted.
- min_rainfall: Minimum current rainfall. Default: unrestricted.
- max_rainfall: Maximum current rainfall. Default: unrestricted.
- min_average_rainfall: Minimum average rainfall. Default: unrestricted.
- max_average_rainfall: Maximum average rainfall. Default: unrestricted.
- min_rainfall_variance: Minimum rainfall variance tolerated. Default: unrestricted.
- max_rainfall_variance: Maximum rainfall variance tolerated. Default: unrestricted.
Groundwater Data
- min_groundwater: Minimum groundwater level required. Default: unrestricted.
- max_groundwater: Maximum groundwater level allowed. Default: unrestricted.
- min_hydration: Minimum soil hydration required. Default: unrestricted.
- max_hydration: Maximum soil hydration allowed. Default: unrestricted.
Forest Data
- forest_types: Restrict regrowth to specific forest types. Empty list means no restriction. See ForestType for the full list.
- forest_sub_types: Restrict regrowth to specific forest subtypes. Empty list means no restriction. See ForestSubType for the full list.
Season Data
- months: List of months when regrowth can occur. Use lowercase names (
"january","february", etc.). Empty list means no restriction. See Month for the full list.
Summary
- At minimum, a recipe needs leaves and sapling.
- All other fields let you constrain regrowth by environment, climate, groundwater, forest type, or season.
- Defaults are permissive (no restrictions, infinite ranges), so you only add fields when you want to limit regrowth.



