Dimension Leak Fix

Quick rating

Dimension Leak Fix

No reviews yet

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.

Bug Fixes
Performance & Optimization
Mod Loaders
Fabric
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Unknown
Server Unknown

About

Project Details

Type
Mod
License
All Rights Reserved
Latest Version
dimension-leak-fix-mc1.20.4-fabric-1.0.0
Authors
CurseForge
Modrinth

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

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.

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.

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
1
In stacks

By the numbers

Statistics

~160,000
Total Downloads
CurseForge
~150,000
Modrinth
~13,000
Last Updated
CurseForge
Modrinth
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works