WorldTools: World Downloader (Fabric / Forge)

WorldTools: World Downloader (Fabric / Forge)

4.1k Downloads

Corrupted save from multiworld old version replays

mfritz2008 opened this issue ยท 0 comments

commented

Firstly thank you so much for a brand new world download tool! I'm amazed by its maturity and extensive features.

The ability to save from ReplayMod replays is especially useful since it allows recovering world fragments from old replay files.

However I'm encountering an issue while attempting to save from an 1.19.2 replay. The replay was recorded on an 1.19.2 multiworld server which had a typical main world & resource world arrangement. The player was in the survival world at the start of the replay, but teleported to the resource world sometimes later.

If I attempt to save from this replay file and let the replay run from start to end (to include the world teleportation), chunks in the main world where the player was before the teleportation would be overwritten by Void. It looks like this:
bad
view

Note the large section of chunks has been replaced by the Void, and a strange stone platform in the Void.

The area should look like this:
good

This only happens when saving from old version replays. Multiworld saves as expected when saving from 1.20.2 replays or an actual 1.20.2 multiworld server.

This issue is first observed with an actual old replay from several years back. I successfully reproduced this with a self hosted paper 1.19.2 server with multiverse.

Test environment:

  • Minecraft 1.20.2
  • replaymod 1.20.2-2.6.15 (Older versions have problem loading replay from 1.19.x)
  • WorldTools-fabric-1.2.4+1.20.2

Steps to reproduce:

  • Load the replay: test.mcpr.zip

  • Start downloading immediately (Since the replay is very short it's preferable to enable "Automatic start download on join")

  • Wait until the replay finishes

  • Stop and save the download

  • Load the saved world in single player

Expected behavior:
Player spawns in the main surviving world

Actual behavior:
Player immediately starts falling into the void.

Logs: test.log