
Dimension Leak Fix
Fixes memory leaks when switching dimensions. Mods like Collective, AmbientSounds and Create retain old worlds in RAM - this mod cleans them up automatically, recovering 2-4 GB per transition.
- Загрузки
- 18K
- Подписчики
- 16
- Обновлён
- 21 августа 2026 г.
- Лицензия
- All-Rights-Reserved
Опубликован 1 марта 2026 г.
Every time you travel between the Overworld, Nether, and End, your client creates a new ClientWorld. The old world should be garbage-collected, but several popular mods accidentally hold references to it - causing it to stay in memory forever.
After just a few dimension changes, this can eat 4-8 GB of RAM, leading to lag spikes, stuttering, and eventually crashes.
Dimension Leak Fix automatically detects dimension transitions and surgically breaks these retention chains, recovering 2-4 GB of memory per transition.
What it fixes
| Source | Problem | Impact |
|---|---|---|
| Entity references | Entities in the old world hold a .level field pointing back to it |
~200 MB per transition |
| Collective | BlockEntityData.cachedBlockEntities retains old worlds through nested WeakHashMaps |
~1.2 GB per transition |
| AmbientSounds | AirPocketScanner thread holds thousands of ChunkSections as a GC root | ~1.4 GB per transition |
| Create | Renderer caches hold references to old world data | Variable |
| Chunk storage | Old world's ChunkManager retains all loaded chunks in memory | ~1-3 GB per transition |
How it works
The mod uses a two-phase approach:
- Phase A (instant): When you change dimension, the mod immediately detaches entity references, flushes Collective caches, stops the AmbientSounds scanner thread, detaches Spark command senders, and invalidates Create's renderer.
- Phase B (3 seconds later): The mod clears the old world's chunk storage array and entity sets. This is delayed to avoid interfering with the renderer during the transition.
Compatibility
- Client-side only - does not need to be installed on the server
- Works with or without any of the mods listed above - the mod detects what's installed and only applies relevant fixes
- Tested with 200+ mods including Iris, Sodium, Distant Horizons, Create, Collective, AmbientSounds
Log output
The mod logs everything it does. Example output after a dimension change:
[DimensionLeakFix] Dimension change detected, cleaning up old world...
[DimensionLeakFix] Entities: 131 world references detached
[DimensionLeakFix] Collective: 1 cache(s) flushed in cachedBlockEntities
[DimensionLeakFix] AmbientSounds: scanner stopped (3 fields cleared)
[DimensionLeakFix] Create: renderer cache invalidated
[DimensionLeakFix] Phase A complete (137 operations)
[DimensionLeakFix] Phase B scheduled (3s delay)
[DimensionLeakFix] Phase B: releasing old world data...
[DimensionLeakFix] Chunks: 2809 slots released
[DimensionLeakFix] loadedChunks: 2809 entries cleared
[DimensionLeakFix] Phase B complete (2810 references released, ~3706 MB freed)
Used in the Legends Reborn: Medieval modpack.
Ченджлог
1.0.2+26.2Релиз26.2 · 21 августа 2026 г.
v1.0.2:
- Fixes a crash when travelling through a portal alongside mods that keep a reference to an entity, such as Perception. Reported by a user, and the fault was mine.
- Until 1.0.1 the cleanup set Entity.level to null on every entity of the world you were leaving, to break the entity-to-world chain that keeps the old world in memory. Vanilla guarantees that field is never null while the entity lives, so nothing guards against it: any mod holding an entity across the transition read null and crashed. That step is gone.
- Nothing else changes. The deferred pass still empties the old world's own containers, which needs no such mutation, and the leak the removed step targeted belongs to whichever mod retains the entity in the first place.
1.0.2+26.1.2Релиз26.1.2 · 21 августа 2026 г.
v1.0.2:
- Fixes a crash when travelling through a portal alongside mods that keep a reference to an entity, such as Perception. Reported by a user, and the fault was mine.
- Until 1.0.1 the cleanup set Entity.level to null on every entity of the world you were leaving, to break the entity-to-world chain that keeps the old world in memory. Vanilla guarantees that field is never null while the entity lives, so nothing guards against it: any mod holding an entity across the transition read null and crashed. That step is gone.
- Nothing else changes. The deferred pass still empties the old world's own containers, which needs no such mutation, and the leak the removed step targeted belongs to whichever mod retains the entity in the first place.
1.0.2+26.1.1Релиз26.1.1 · 21 августа 2026 г.
v1.0.2:
- Fixes a crash when travelling through a portal alongside mods that keep a reference to an entity, such as Perception. Reported by a user, and the fault was mine.
- Until 1.0.1 the cleanup set Entity.level to null on every entity of the world you were leaving, to break the entity-to-world chain that keeps the old world in memory. Vanilla guarantees that field is never null while the entity lives, so nothing guards against it: any mod holding an entity across the transition read null and crashed. That step is gone.
- Nothing else changes. The deferred pass still empties the old world's own containers, which needs no such mutation, and the leak the removed step targeted belongs to whichever mod retains the entity in the first place.
1.0.2+26.1Релиз26.1 · 21 августа 2026 г.
v1.0.2:
- Fixes a crash when travelling through a portal alongside mods that keep a reference to an entity, such as Perception. Reported by a user, and the fault was mine.
- Until 1.0.1 the cleanup set Entity.level to null on every entity of the world you were leaving, to break the entity-to-world chain that keeps the old world in memory. Vanilla guarantees that field is never null while the entity lives, so nothing guards against it: any mod holding an entity across the transition read null and crashed. That step is gone.
- Nothing else changes. The deferred pass still empties the old world's own containers, which needs no such mutation, and the leak the removed step targeted belongs to whichever mod retains the entity in the first place.
1.0.2+1.21.11Релиз1.21.11 · 21 августа 2026 г.
v1.0.2:
- Fixes a crash when travelling through a portal alongside mods that keep a reference to an entity, such as Perception. Reported by a user, and the fault was mine.
- Until 1.0.1 the cleanup set Entity.level to null on every entity of the world you were leaving, to break the entity-to-world chain that keeps the old world in memory. Vanilla guarantees that field is never null while the entity lives, so nothing guards against it: any mod holding an entity across the transition read null and crashed. That step is gone.
- Nothing else changes. The deferred pass still empties the old world's own containers, which needs no such mutation, and the leak the removed step targeted belongs to whichever mod retains the entity in the first place.
1.0.2+1.21.10Релиз1.21.10 · 21 августа 2026 г.
v1.0.2:
- Fixes a crash when travelling through a portal alongside mods that keep a reference to an entity, such as Perception. Reported by a user, and the fault was mine.
- Until 1.0.1 the cleanup set Entity.level to null on every entity of the world you were leaving, to break the entity-to-world chain that keeps the old world in memory. Vanilla guarantees that field is never null while the entity lives, so nothing guards against it: any mod holding an entity across the transition read null and crashed. That step is gone.
- Nothing else changes. The deferred pass still empties the old world's own containers, which needs no such mutation, and the leak the removed step targeted belongs to whichever mod retains the entity in the first place.
1.0.2+1.21.9Релиз1.21.9 · 21 августа 2026 г.
v1.0.2:
- Fixes a crash when travelling through a portal alongside mods that keep a reference to an entity, such as Perception. Reported by a user, and the fault was mine.
- Until 1.0.1 the cleanup set Entity.level to null on every entity of the world you were leaving, to break the entity-to-world chain that keeps the old world in memory. Vanilla guarantees that field is never null while the entity lives, so nothing guards against it: any mod holding an entity across the transition read null and crashed. That step is gone.
- Nothing else changes. The deferred pass still empties the old world's own containers, which needs no such mutation, and the leak the removed step targeted belongs to whichever mod retains the entity in the first place.
1.0.2+1.21.8Релиз1.21.8 · 21 августа 2026 г.
v1.0.2:
- Fixes a crash when travelling through a portal alongside mods that keep a reference to an entity, such as Perception. Reported by a user, and the fault was mine.
- Until 1.0.1 the cleanup set Entity.level to null on every entity of the world you were leaving, to break the entity-to-world chain that keeps the old world in memory. Vanilla guarantees that field is never null while the entity lives, so nothing guards against it: any mod holding an entity across the transition read null and crashed. That step is gone.
- Nothing else changes. The deferred pass still empties the old world's own containers, which needs no such mutation, and the leak the removed step targeted belongs to whichever mod retains the entity in the first place.
Комментарии
Загружаем…