Перейти к содержимому
Mineforgian

Dynamic Trees: Universal Compat

Adds broad compatibility between Dynamic Trees and modded wood types. Automatically detects trees, registers species, and integrates growth systems. Built as a scalable framework to support many mods without requiring individual compat patches.

Загрузки
810
Подписчики
12
Обновлён
21 августа 2026 г.
Лицензия
All-Rights-Reserved

Опубликован 5 апреля 2026 г.

Dynamic Trees Compat

Beta Build — Active Development

Dynamic Trees Compat is a Forge 1.20.1 mod that automatically detects vanilla and modded trees and generates Dynamic Trees compatibility for them.

The goal is to avoid needing a separate compatibility addon for every tree mod.

Instead of relying only on block names, the mod reads the actual configured features, registries, blockstates, models, and worldgen data used by Minecraft.

Features

  • Automatically detects compatible trees from installed mods
  • Detects logs, stripped logs, leaves, saplings, branches, and other tree components
  • Generates Dynamic Trees families, species, leaves, branches, seeds, saplings, assets, and worldgen data
  • Keeps the original tree's log and leaf blocks
  • Resolves textures from the original blockstates and models
  • Replaces supported source trees in world generation with Dynamic Trees versions
  • Filters out false positives such as planks, boards, bundles, bamboo, air, and non-tree wood features

Tree Shapes

The mod also tries to preserve the original shape of each tree.

When enough information is available from the configured feature, the tree topology is translated into a Dynamic Trees version.

If the exact shape cannot be reproduced, the mod selects the closest available Dynamic Trees profile based on things such as:

  • Height
  • Trunk size
  • Canopy size
  • Foliage placement
  • Branch structure
  • Tree type

This includes profiles for trees such as palms, conifers, acacias, large trees, shrubs, and broad-canopy trees.

If there is not enough information, an oak-like Dynamic Trees shape is used as the final fallback while still keeping the original tree's materials.

World Generation

Supported source tree features are replaced with their generated Dynamic Trees species.

The mod also contains a diagnostic system for finding trees that are still generating outside the replacement system, which helps improve compatibility with unusual worldgen implementations.

Restart Required

Newly detected trees are generated into a pending resource pack and become active after restarting Minecraft.

This is required because Dynamic Trees registers its generated blocks and species during startup.

The first launch after migrating from an older version may show a Restart Required screen. Simply quit Minecraft and launch it again.

Required Dependencies

  • Minecraft Forge 47+
  • Dynamic Trees 1.20.1-1.3.0+
  • Moonlight Lib 1.20-2.16.23+
  • GabouLibs 1.8.2+

GabouLibs also require Architectury API.

Current Limitations

This mod is still in beta.

Generated sapling textures are still a work in progress. The mod currently does not have a reliable way to dynamically create unique sapling textures for every detected tree, so some generated saplings may use temporary or generic visuals.

Some mods use custom Java worldgen features that do not expose enough information to perfectly reproduce their tree shapes. These trees currently use the closest available Dynamic Trees shape.

Existing chunks are not converted. Changes only affect newly generated terrain.

Planned

  • Custom topology JSON files
  • More support for unusual custom tree generators
  • Better handling of nested worldgen features
  • More accurate automatic shape conversion
  • Continued compatibility improvements
  • Improved automatic sapling texture generation

Ченджлог

Forge-2.1Бета1.20.1 · 21 августа 2026 г.

Dynamic Trees: Universal Compat 2.0

Fixed

  • Fixed an endless generated-pack restart prompt caused by Forestry fireproof wood types resolving inconsistent sibling foliage between launches.
  • Forestry fireproof trees now bind to the canonical foliage for their base tree when available. For example, forestry:acacia_fireproof uses forestry:tree_acacia_default_leaves, and forestry:oak_fireproof uses forestry:tree_oak_default_leaves.
  • Added a regression test covering the unstable Forestry fireproof leaf bindings.
Forge-2.0Бета1.20.1 · 20 августа 2026 г.

Dynamic Trees: Universal Compat - Development Update

Added

  • Configured-feature-first tree component discovery using the actual trunk, foliage, branch, and provider block states used by Minecraft worldgen
  • Generic topology fingerprinting and Dynamic Trees archetype selection for exact, approximate, and generic fallback generation
  • Client model/texture resolution through source blockstates, models, parents, and texture aliases
  • Explicit per-candidate compatibility results: generated exact, generated approximate, generic fallback, already supported, intentionally unsupported, incomplete, or failed
  • Worldgen execution tracer for claimed-but-still-generating and unclaimed source feature diagnostics
  • Persisted runtime observations and source-feature overrides for later restart processing
  • Generated-pack staging: newly discovered resources are written to generated_trees_pending_restart and activated before Dynamic Trees scans them on the next restart
  • Mandatory client restart screen during the one-time migration from the legacy generated-pack layout
  • GabouLibs as a required runtime dependency

Fixed

  • Prevented minecraft:air from being accepted as a tree component or worldgen probe block
  • Prevented structural false positives such as boards, planks, and bundles from becoming trees
  • Preserved source-specific descriptors even where different source features share the same primitive materials
  • Prevented Dynamic Trees seed/sapling null-registry crashes caused by adding newly discovered species to an already-live resource pack
  • Restricted runtime tree worldgen matching to strong vegetation/tree evidence, avoiding fluid, lake, and unrelated feature contamination
  • Excluded bamboo from automatic tree conversion

Important restart behavior

  • Dynamic Trees registers generated branch, leaves, seed, and sapling blocks only during startup.
  • The first launch after migrating from the old generated-pack format intentionally has no active generated compat trees. A non-dismissible screen requires quitting Minecraft; the following launch activates the staged pack.
  • Later discovery changes are also staged for a full restart rather than applied through a live datapack reload.

Earlier development additions

  • Initial Dynamic Trees compatibility system for modded trees
  • Automatic detection of unsupported trees from loaded mods
  • First working integration with Atmospheric (rosewood)
  • Runtime generation of Dynamic Trees data (species, families, seeds, leaves)
  • World generation replacement system for supported trees
  • Client asset generation for branches, leaves, saplings, and seeds
  • Debug logging for detection, registration, and worldgen

Fixed

  • Missing textures for generated trees (pink/black rendering)
  • Incorrect asset paths for branch and leaves models
  • Worldgen registration not being applied due to incorrect DT data structure
  • Feature canceller not handling multiple namespaces properly

Improved

  • Switched to proper Dynamic Trees datapack-based registration instead of direct registry usage
  • Improved worldgen replacement logic using DT biome database
  • More reliable detection of wood types using Moonlight integration
  • Better logging for debugging generation and replacement issues

Known Issues

  • Opaque custom worldgen features may not expose enough topology for an exact Dynamic Trees translation and can use an approximate archetype
  • Some source placed features remain unclaimed until the tracer/runtime observation pipeline has enough strong identity evidence
  • Existing chunks are not retroactively converted

Upcoming

  • User-provided custom topology JSON files for exact overrides of approximate trees
  • Additional registered topology resolvers for mod-specific custom feature codecs
  • Further worldgen mapping and cancellation coverage for opaque/nested feature graphs
  • Continued asset-model compatibility improvements for unusual blockstate/model layouts

Комментарии

Загружаем…