-
Notifications
You must be signed in to change notification settings - Fork 240
Using a Save Game
You can load a save game by selecting the menu entry File
> Open 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.
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.
- 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?
If you use the save game only as a Singleplayer World, simply choose Singleplayer.
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 theplayerdata
directory. However, the player information in theplayers
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.