Querz / mcaselector

A tool to select chunks from Minecraft worlds for deletion or export.
MIT License
3.25k stars 178 forks source link

Feature Request: Ability to only remove parts of chunks #332

Open Jason-Silla opened 2 years ago

Jason-Silla commented 2 years ago

I didn't know where to submit feature requests, but this is where it is usually done. Basically what I'm asking is that you can make it so you can "reset" only parts of chunks. In my world right now, I have some corrupted chunks going from 1.17 to 1.18 that I stumbled upon that give me direct void access. I was wondering if it was possible to reset only the area below y = 0 in certain chunks. Hopefully it is possible and you would consider this feature request.

NimmerNeko commented 2 years ago

Given the new Chunk structure in 1.18 that splits chunks into vertical sections i would love this feature too. I found this project when searching for a tool to reset my world for 1.19 by removing all chunks under y level 0. I was dissappointed i can only delete entire columns.

carthradge4 commented 2 years ago

This is a complicated request. There is an option in the tool to only export chunks above a certain range, but this mainly works for corner cases like trying to keep construction above the Nether roof when deleting everything below the Nether roof.

The issue in your example is that you'll need to unset the generation state for the chunk, and Minecraft will then regenerate the whole chunk, overwriting blocks above y=0 too. Alternatively, you could not set the generation state, in which Minecraft will not regenerate anything. The only way I'm aware of for Minecraft to only generate chunks below a certain space is when it's upgrading versions from a version that did not have blocks below y=0. As such, your best bet is to try to use a backup of those chunks from that older version of Minecraft, if you have one.

carthradge4 commented 2 years ago

You can also take a look at this old thread for an involved process you can do:

https://gist.github.com/Querz/008111195cc7bc012bb291849d2eb9c7

Essentially, you can separately generate those chunks, then import the parts of the chunks from the existing world you care about. This might be your best bet.