Skip to content
NetLightDev edited this page Mar 4, 2021 · 5 revisions

You can load a save game by selecting the menu entry File > Open save game ...

What information is read from the save game?

Amidst reads:

  • the world's Seed
  • the world Spawn point
  • the singleplayer and multiplayer player locations, including the dimension

Amidst also loads player names and skins the Mojang servers.

What information is written to the save game?

Amidst can write the following information to the save game:

  • changed player locations

Since writing to the save game comes with the risk of corrupting it, Amidst will always display the following warning before it actually writes the changes:

WARNING: You are about to change the contents of the save game directory. There is a chance that it gets corrupted. We try to minimize the risk by creating a backup of the changed file, before it is changed. If the backup fails, we will not write the changes. You can find the backup files in the directory amidst/backup, which is placed in the save game directory. Especially, make sure to not have the save game loaded in Minecraft during this process.

How can I move a player?

  • Scroll the map to and right-click on the new player location, this opens a popup menu.
  • Select the player you want to move to the new location.
  • Enter the new player height (y-coordinate).
  • Save player locations.

When I load a save game, I am asked whether I want to load the Singleplayer or Multiplayer players. What does that mean?

Short story

If you use the save game only as a Singleplayer World, simply choose Singleplayer.

Long story

Each Minecraft save game directory has three different locations to store player information:

level.dat players playerdata
Singleplayer before 1.7.6 X X
Multiplayer before 1.7.6 X
Singleplayer since 1.7.6 X X
Multiplayer since 1.7.6 X

The level.dat file contains the Singleplayer player information, while the players and playerdata directories contain the Multiplayer player information. The difference between both directories is, that the players directory contains the player information by name and the playerdata directory by uuid. We can see the following:

  • If the save game was never loaded as a Singleplayer World, there is no player information in the level.dat file.
  • If the save game was never loaded by a Minecraft version before 1.7.6, there is no player information in the players directory.
  • If the save game was never loaded by a Minecraft version since 1.7.6, there is no player information in the playerdata directory.
  • If the save game was loaded by both: a Minecraft version before 1.7.6 and a Minecraft version since 1.7.6, there is player information in both, the players and the playerdata directory. However, the player information in the players directory is outdated.

If the save game is loaded as a Singleplayer World, Minecraft always reads the player information from the level.dat file. However, it writes player information to both, the level.dat file and the multiplayer directory (players or playerdata).

Here is the decision table that is used by Amidst to detect which player information should be used, depending on the existence of player information:

level.dat players playerdata
no players
X playerdata
X players
X X playerdata
X level.dat
X X ask, multiplayer = playerdata
X X ask, multiplayer = players
X X X ask, multiplayer = playerdata

Sadly, this results in a situation where Amidst always has to ask the user when a save game is loaded that was never used as a Multiplayer World, but only as a Singleplayer World.

We also see that if there is player information in the playerdata directory, Amidst will never use the outdated player information in the players directory.

So, why does Amidst not simply display singleplayer and multiplayer player information, if both is available. There is indeed a reason for this: If the user wants to move the singleplayer player and Amidst displays both, the singleplayer and the multiplayer player there is a good chance that the user moves the multiplayer player. This chance is increased by the fact that the multiplayer player is displayed with the correct player name and skin, but the singleplayer player has always the generic name "The Singleplayer Player" and a Steve skin. However, the moving of the multiplayer player will have no effect, since when the save game is used as a Singleplayer World, Minecraft will only read player information from the level.dat file. The changed player information in the multiplayer directory will just be ignored and overwritten.