Unofficial site, not affiliated with modrinth.com.What is this?
Моды/leaf-treegen

LeafTreeGen

Procedural, biome-aware custom trees that generate through vanilla worldgen.

LeafTreeGen adds dozens of custom tree species. Trees are mathematically defined in JSON and baked into vanilla .nbt structure templates at startup, then added to jigsaw template pools so the game's own worldgen handles placement. No runtime block-placement listeners.

Made as a cross-platform utility based on the Python code I originally wrote for my personal Iris world using .iob files. Iris now adopts my procedural engine in its latest builds.

I've reworked it so you can optionally run it once for datapack (.nbt-based) generation, or keep it around for its ability to manage procedural generation and custom saplings.


Screenshots

Cherry Grove Giant Cherry Grove Giant - a towering cherry-blossom giant anchors its matching biome above a grove of smaller cherry trees.

Dark forest canopy Dark forest canopy - dense overlapping high canopies with scattered giant mushrooms, viewed from above the treeline.

Dark Forest Mushroom Dark Forest Mushroom.

Custom savanna trees Custom savanna trees.

Christmas Tree Christmas Tree - all trees are placeable via NBT-tagged saplings.


Features

  • Biome-matched species - savanna acacias, dark-forest canopies, glacier pines, cherry groves, spiral-crown forests, and ✨ groves, mapped to the biomes they suit
  • Procedural engine - trees are built in Java from per-species parameters: height, trunk shape, lean angle, and canopy layers
  • Jigsaw worldgen - the plugin writes a vanilla worldgen datapack on first load and lets Minecraft's structure system place the trees
  • Plantable saplings - /leaftree give hands out NBT-tagged saplings that grow into a random variant when planted in a valid biome
  • Reload command - /leaftree reload rebakes all variants and regenerates the datapack
  • Server-friendly placement - large trees are placed across multiple ticks under a per-tick budget to keep the main thread responsive
  • Multi-platform - one jar runs on Paper, Folia, Fabric, and NeoForge with the same features (worldgen, saplings, and the /leaftree command) everywhere

Species Highlights

CategoryExamples
TemperateForest, Birch Forest, Old-Growth Birch, Maple-Birch Giants, Ashwood
TropicalJungle, Cherry Grove, Jacaranda Grove
ColdTaiga, Old-Growth Pine Taiga, Glacier Pine
Dark & ExoticDark Forest Giants, Spiral-Crown Forest, ✨ Grove, Glowcap
Full biome tree map
BiomeSpeciesIconic shapeRole
forestforestRounded oak, mid to largePrimary
flower_forestoak-small-midSmall-to-mid rounded oak, sporadicPrimary
plainsoak-small-midSparse small-to-mid oakPrimary
meadowoak-small-midSparse small-to-mid oakPrimary
meadowmeadow-azaleaSmall oak trunk with azalea crownSprinkled accent
meadow✨-groveBirch trunk with multi-hue canopyRare landmark
dark_forestglowcapLit brown-mushroom shrubUnderstory
dark_forestdark-forest-floor-lightsTiny shroomlight glow shroomsFloor litter
dark_forestdark-forest-midsSmall-to-medium twisted dark oakMidstory
dark_forestdark-forest-megasTitan dark oak with massive canopyCanopy
birch_forestbirch-forestTall slender white birchPrimary
old_growth_birch_forestold-growth-birch-forestTowering old-growth birchPrimary
old_growth_birch_forestmaple-birch-giantsGiant maple-and-birch landmarkRare landmark
taigataigaConical sprucePrimary
snowy_taigaevergreenSnow-dusted conical sprucePrimary
snowy_taigachristmas-treeFestive decorated spruce with ornamentsVery rare landmark
old_growth_pine_taigaold-growth-pine-taigaTall bare-trunked pinePrimary
old_growth_spruce_taigaold-growth-pine-taigaTall bare-trunked pinePrimary
snowy_plainsglacierpineFrost-laden spruce with icicle tipsPrimary
ice_spikesglacierpineFrost-laden spruce with icicle tipsPrimary
groveglacierpineFrost-laden spruce with icicle tipsPrimary
snowy_slopesglacierpineFrost-laden spruce with icicle tipsSparse
frozen_peaksglacierpineFrost-laden spruce with icicle tipsSparse
jagged_peaksglacierpineFrost-laden spruce with icicle tipsSparse
junglejungleJungle trees, small to giantPrimary
sparse_junglejungleJungle trees, small to giantPrimary
bamboo_junglebamboo-jungleJungle trees ringed by bambooPrimary
savannasavannaFlat-topped leaning acaciaPrimary
savanna_plateausavannaFlat-topped leaning acaciaPrimary
windswept_savannasavannaFlat-topped leaning acaciaPrimary
cherry_grovecherry-groveLayered pink blossom crownPrimary
cherry_grovejacaranda-groveGiant weeping cherry-wood jacarandaRare landmark
windswept_hillsashwoodGaunt gray dead pale-oak with cobwebsPrimary
windswept_forestashwoodGaunt gray dead pale-oak with cobwebsPrimary
windswept_gravelly_hillsashwoodGaunt gray dead pale-oak with cobwebsPrimary
swampswampVine-draped weeping oak + mangrovePrimary
mangrove_swampswampVine-draped weeping oak + mangrovePrimary

Commands

CommandDescription
/leaftree generate species=<id>Place a tree at your cursor (admin test)
/leaftree give species=<id> [player] [amount]Hand out custom saplings
/leaftree list [species=<id>]List registered species or variants
/leaftree reloadApply config changes and regenerate the datapack

Requires the leaftreegen.admin permission node.


Configuration

Species are defined as JSON files in the species/ folder. Biome assignments and placement tuning (spacing, separation, salt) live in config.yml, with per-species overrides.

generation-mode: DATAPACK   # DATAPACK | PROCEDURAL | BOTH | NONE

placement:
  glacierpine:
    spacing: 6
    separation: 3
    biomes:
      - minecraft:snowy_taiga
      - minecraft:grove
{
  "name": "glacierpine",
  "procedural": {
    "trunk-block": "minecraft:spruce_log",
    "leaf-block": "minecraft:spruce_leaves",
    "height-min": 10,
    "height-max": 18,
    "trunk-shape": "LINEAR",
    "canopy": [
      { "yOffset": 0, "radius": 4 },
      { "yOffset": 3, "radius": 3 },
      { "yOffset": 6, "radius": 2 }
    ]
  }
}

Requirements

  • Java 25+
  • One of:
    • Paper or Folia 1.21+
    • Fabric 26.1+ (Fabric Loader 0.18.4+, Fabric API)
    • NeoForge 26.1+

Совместимость

Minecraft: Java Edition

Поддерживаемые окружения

Сервер

Сведения

Лицензия:MIT
Опубликован:1 день назад
Обновлён:1 день назад
ID проекта:
Главная