Skip to content

Transpose Minecraft world changes, even across versions.

Notifications You must be signed in to change notification settings

ShibeTemple/mc-negative

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 

Repository files navigation

Minecraft Negative

Compares a Minecraft world against its younger self to create a negative of the differences, consisting typically of player actions like player structures and blocks removed from the world. We call these worlds Pre and Post. The Pre world could be a backup or a blank world generated with the same seed in the same Minecraft version. The program takes the differences between post and pre, then transposes them on a new world. This program was created with the intention of providing a way to essentially 'upgrade' a pre-existing Minecraft world to a newer version of Minecraft.

Note: Currently does not support upgrading a pre-1.13 world past 1.13 due to data differences. Supports 1.16 to 1.17 and so on, however.

All chunks that you want to be processed need to be rendered within all three worlds. Even if pre and post have the chunk and a comparison can be made, there is no new chunk to base the output chunk on, therefore it will be skipped.

Example:

myworld is a 1.12 map with player content. world-pre is a newly created 1.12 world with the same seed as myworld. This program will compare the differences between those two and place them onto the 1.16 world-new map, exported as world-export.

Usage:

python negative.py world-pre myworld world-new world-export -t 12

Base Usage:

python negative.py PRE POST NEW EXPORT

This program does not modify the 'pre', 'post' or 'new' worlds (inputs). It only creates an output world, which consists of the differences of 'pre' & 'post' transposed on 'new', (export).

Command-line options:

Argument Description
-v
or
--verbose
Enables verbose logging. NOTE: Slows down execution time tremendously.
-b
or
--bedrock
Forces the program to check the bedrock layer (y=0) of blocks when running through every chunk. Normally excluded for efficiency.
-t 1
or
--threads 1
Number of region files to compare simultaneously. Each region file is assigned its own thread. Default is 1.
-e
or
--entities
Disables the migration of entities from post world onto output world.

Tested Scenarios and Versions

Old Version New Version Successful Notes
1.12 1.12 yes simple data migration test
1.16 1.17 (21w11a) yes relevant world upgrade test
1.12 1.16 no version jump test. 1.13 Flattening issue, see open issue regarding this.

About

Transpose Minecraft world changes, even across versions.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages