No Unused Chunks

No Unused Chunks


A Minecraft mod that reduces world size by discarding unused chunks.

Client OptimizationUtility

Createda year ago
Updated3 months ago

Filter loader...
Filter versions...
Filter channels...
  • Ported to fabric-1.19.4.
  • Did not port (aka removed) the "automatic chunk discarding" feature.
  • Did not port (aka removed) the "automatic chunk discarding config" feature.
  • Did port (aka kept) the feature for removing existing chunks from the "Optimize world" menu screen
  • This mod is now 100% client-side-only.

The reason the "automatic chunk discarding" was not kept is because I often saw it beeing seen as a "deoptimization" feature (which is true) that isn't worth sacrificing performance over, just to save some drive storage. In other words, trading server/single-player performance for storage space might not be worth it. Oh and, if you're wondering if it's possible to get this remaining feature to work on servers, well.. I'm not even gonna try, as it's not only too difficult for me to pull off, but it's also "unintended" behavor from the game's perspective (which ofc. can cause world corruptions and errors, so no, not doing that).

Important: Minecraft has one massive flaw. When "optimizing" worlds (and removing unused chunks), Minecraft loads the entire worlds into memory (RAM). If you have a huge world, and not enough RAM to fit it, then this could be a big problem for you. You could either try taking out dimension save files and optimizing them one by one, or you could use a tool like Thanos, Thanos-Shell (I made that one, scroll down on the webpage if needed), or another chunk removal tool or mod.

This mod has now been ported to forge-1.19.3

The Fabric version of the mod has been ported to 1.19.3. Next up is Forge. Hopefully that will be done soon as well.

This mod no longer depends on Cloth Config API for configuring the mod in-game. Now if you wish to configure the mod in-game, you will only need Mod Menu.

Note: This version of the mod only works on 1.19.2, and also, the next release should be the port to 1.19.3. Hopefully.

Added translations for Simplified Chinese. Credit goes to Cccc-owo for translating the mod.

The Fabric version of the mod (v1.3) is now fully ported to Forge. You can now erase previously generated unused (aka uninhabited) chunks.

This Forge release finally features a config GUI. You can now enable and disable the mod while the game is running. All you have to do is go to the Mods menu, select this mod, and click the Config button. Unlike the Fabric version that depends on Cloth Config API, this one does not depend on any other mods.

Removed that one line of code that would spam logs for each chunk that would get unsaved. #4.

This release renames the "Remove unused chunks" checkbox in the "optimize world screen" and adds a tooltip text to it for more clarity on what it does.

This release of the mod finally adds the ability to remove previously generated unused chunks. This will now allow you to shrink your world size by up to over 50%. Because of how this feature works, please back up your world and read the important notice below.

How to use the feature (Minecraft client):

  • Go to the world select screen
  • Select a world and click on "Edit"
  • Click on "Optimize World"
  • Check the "Remove unused chunks" checkbox
  • Click on "Create Backup and Load".
  • It is advised not to click on "I know what I'm doing".

This release conflicts with:

  • Any other mod that uses Mixins on
  • Any other mod that uses Mixins on net.minecraft.client.gui.screen.BackupPromptScreen
  • Aka it conflicts with any other mod that modifies the behavior of the WorldUpdater and/or the BackupPromptScreen. Especially the WorldUpdater.

Important notice:

  • The game keeps track of which chunks players have interacted with using a special variable called InhabitedTime. Whenever a player enters a chunk or does something to a chunk, the value of InhabitedTime increases. The way this feature works is by going through every chunk in every region file of a given world, and removing all chunks whose InhabitedTime value is set to 0. This means that any and all chunks whose InhabitedTime is 0 will get removed. It is important to keep in mind that if you used a creative tool/mod/program to modify chunks without ever entering them as an in-game player and making changes to them manually, or if the game fails to keep track of "InhabitedTime", there is a high chance those chunks will get removed anyways. Always back up your worlds before doing this, and immediately make sure no chunks you needed somehow got removed.
  • If there are any issues/bugs or if you do spot this mod's feature removing chunks it isn't suppoed to remove, please let me know so I can see if something can be done to resolve it.

External resources

Project members



Technical information

Client side
Server side
Project ID