
Dimension Leak Fix
Frees the worlds and singleplayer servers the game leaves behind when other mods keep a reference to them. Fabric, Forge and NeoForge, client side.
Описание
Every time you change dimension or go back to the menu, the game leaves the old world behind and Java is supposed to free it. If any mod still holds a reference to that world (a static field, a cache keyed by world), the whole world stays in RAM: its chunks, its entities and, in singleplayer, the whole stopped server with its recipes, loot tables and advancements. A few dimension changes or a few world reloads later, memory is full.
Dimension Leak Fix empties what the game has abandoned, so whatever still holds it only holds an empty shell, and makes known leaky mods let go of it.
What it does
- Dimension change or return to menu: 3 seconds later, the old world's chunk slots are released and the maps and lists it owns are emptied, including the ones other mods add to it. Once its connection is closed, the client copy of the recipes and the old player's recipe book are emptied too.
- Leaving a singleplayer world: once the integrated server has stopped, its chunk tables, entities and datapack contents (recipes, functions, loot tables, advancements, structure templates) are emptied, and the advancement trackers it left in the game's shared criteria are unregistered.
- Known leaky mods: Liberty Villagers, Serene Seasons, Fabric API fake players, Jade and Flywheel let go of the world or server you left. Each one was found in a heap dump of a real modpack. A mod that is not installed is skipped.
- Low memory: if memory use goes over 90% while a cleanup is waiting, it runs right away.
- Diagnostic: the log says when a world or server you left is really freed from memory, or that it is still there 5 minutes later, which points at another mod holding it.
Only what belongs to the world or server you left is touched. A container still used by the world you are in is never emptied.
Log output
Real output, NeoForge 1.21.4: a trip to the Nether, then back to the menu and into the world again.
[DimensionLeakFix] World change detected, old world will be released in 3s
[DimensionLeakFix] Phase B complete (710 references released)
[DimensionLeakFix] Return to menu detected, old world will be released in 3s
[DimensionLeakFix] Singleplayer server stopped: 0 advancement tracker(s) unregistered, 0 known leak reference(s) released, 10675 entries emptied in 3 world(s) and its datapack contents
[DimensionLeakFix] Old world freed from memory (71s after leaving it)
[DimensionLeakFix] Singleplayer server freed from memory (18s after leaving it)
Compatibility
- Fabric: Minecraft 1.18.2 to 26.3
- Forge: Minecraft 1.18.2 to 26.2
- NeoForge: Minecraft 1.20.2 to 26.3. On 1.20.1, use the Forge file: it runs on NeoForge too.
- Install it on the client. A dedicated server does not need it; if a modpack ships it on the server anyway, it loads there and does nothing.
- No configuration.
Used in the Legends Reborn: Medieval modpack.