Forge-2.3
Curse Maven Snippet
What's new
Dynamic Trees: Universal Compat 2.3 (Forge 1.20.1)
Added
- Added automatic survival conversion recipes in both directions between source saplings and generated Dynamic Trees seeds, using a Dynamic Trees dirt bucket.
- Added the generated compat pack as server data, so generated recipes load in single-player and dedicated servers.
Fixed
- Fixed mixed and variant foliage receiving unstable, duplicate LeavesProperties registrations that could leave some dynamic leaves unregistered.
- Fixed unchanged generated packs being staged again on every launch; equivalent generated contents now reuse the active pack.
- Updated the Forge 1.20.1 release line to version 2.3.
Important restart behavior
- A newly changed generated pack still requires one full Minecraft restart so Dynamic Trees can register its species before Forge registries close.
- Existing chunks are not retroactively converted.
Earlier 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_restartand 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:airfrom 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
This mod has no additional files