
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.
NeoForge-2.3
Compatibility
Required content
Changes
Dynamic Trees: Universal Compat 2.3
Added
- Ported Universal Compat to NeoForge 1.21.1 and Java 21.
- Added automatic survival recipes in both directions between source saplings and generated Dynamic Trees dirt buckets.
- Added Forestry Community Edition species-aware conversions. Generated Forestry dirt buckets now craft back into the correct genetic sapling with that species' default genome.
- Added server-authoritative generated-pack synchronization for multiplayer clients.
Fixed
- Fixed trees with mixed or variant foliage sharing an unstable leaves registration, which caused some generated leaves to fail to register.
- Fixed the generated compat pack rebuilding on every reload. An indexed SHA-256 manifest and persistent runtime cache now skip unchanged detection and resource generation.
- Fixed Forestry fruit and decorative leaf variants being treated as separate foliage materials.
- Fixed Forestry stripped and fireproof wood variants being detected as separate genetic species.
- Fixed generated survival recipes not loading by mounting the generated pack as server data as well as Dynamic Trees resources.
- Fixed known Autumnity numeric leaf colors and legacy add-on family/species type errors.
Important restart behavior
- The first launch after installing or changing compatible tree mods stages the generated pack and requires one full Minecraft restart so Dynamic Trees can register the generated species before registries close.
- Later launches with the same mod and configuration set reuse the cached pack instead of regenerating it.
- Existing chunks are not retroactively converted.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:I3Kxw8uG:zz3RX281"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:I3Kxw8uG:zz3RX281"
}
