promotional bannermobile promotional banner

Dynamic Trees - Au Naturel Edit

Trees that grow and change - with fixes and performance edits

File Details

DynamicTrees-1.20.1-1.4.8.jar

  • R
  • Dec 17, 2025
  • 3.58 MB
  • 59
  • 1.20.1
  • Forge

File Name

DynamicTrees-1.20.1-1.4.8.jar

Supported Versions

  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:dynamic-trees-au-naturel-edit-1406388:7343453")
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

1. Thread-Safety Crashes (Critical)

 

Problem: Mods like C2ME (Concurrent Chunk Management Engine) parallelize chunk loading/generation across multiple threads. Dynamic Trees used regular HashMap collections that corrupt when accessed concurrently, causing crashes like:

ClassCastException: HashMap$Node cannot be cast to HashMap$TreeNode

Fixes:

File Change
LevelPoissonDiscProvider HashMap → ConcurrentHashMap
JoCodeRegistry HashMap → ConcurrentHashMap
BiomeDatabases HashMap/HashSet → ConcurrentHashMap
PoissonDiscChunkSet Added volatile for visibility

 

2. Performance Optimizations (Quality of Life)

 

Problem: Hot paths in worldgen and gameplay created excessive temporary objects, causing GC pressure and lag spikes.

Fixes:

Location Issue Fix
JoCode.smother() ~15,000 BlockPos per tree Use int overloads
fallOn() 100s of BlockPos per fall MutableBlockPos
Direction.values() New array every call Cached static array
getExactSpecies() 50-200 block lookups Early exit after 6

 

Result: The mod now works correctly with C2ME/Chunky pregen and runs faster during both worldgen and normal gameplay.