You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Lava Rescue on TLauncher vs Official Mojang Launcher
The important distinctions are these:
Game version matters more than launcher. Java 26.1 moved player files from the old playerdata location to players/data, and level.dat now references the singleplayer UUID instead of containing the old Player tag. The guide should explicitly say it is for Java 26.1+ and should not be followed unchanged for 1.21.x or older worlds. (Minecraft.net)
The official macOS default directory is the same:~/Library/Application Support/minecraft/saves (Minecraft.net)
Official-launcher installations may use different installation directories, so readers should locate the actual installation folder rather than blindly assume the default. Mojang’s launcher exposes the relevant folder through the Installations screen. (Minecraft.net)
Commands may work on the official launcher. Java Edition supports enabling commands through world options or Open to LAN, so /gamemode creative may be a simpler first attempt. That said, opening to LAN can resume simulation while the player is burning, and it failed entirely in your tested setup, so the offline NBT route remains valuable. (Minecraft.net)
The .dat_old synchronization should be described as a tested compatibility workaround, not a confirmed TLauncher defect or a universal Mojang requirement. We observed that copying the validated edit into both files made it work, but we did not prove exactly why the first edit was ignored.
The guide should clearly exclude Bedrock, Realms, and multiplayer servers whose files the reader does not control.
Rescue a Minecraft Java 26.1+ Player Stuck in Nether Lava on macOS
Scope and tested environment
Minecraft Java Edition 26.1 or newer
macOS
Python 3 with nbtlib==2.0.4
Tested end-to-end with TLauncher running Minecraft Java 26.2
The underlying rescue targets Minecraft Java's world and player NBT format, not a TLauncher-only format. It should therefore also apply to the official Minecraft Launcher when it runs the same Java Edition world version, but the official-launcher path has not been tested end-to-end in this exact incident.
Minecraft Java 26.1 changed player storage to players/data/<UUID>.dat and changed level.dat to reference the singleplayer UUID. This guide should not be followed unchanged for Java 26.0, 1.21.x, or older worlds, which use the older save layout.
The official launcher normally uses the same macOS saves directory shown here:
$HOME/Library/Application Support/minecraft/saves
A launcher installation can use a custom game directory, so locate the actual installation/world directory before running commands.
Commands-first note: official Java Edition supports enabling commands through world options or the Open to LAN interface. Try that simpler route only when it can be done safely. In the tested TLauncher setup, /gamemode creative and /gamerule keepInventory true remained unavailable, so the offline NBT method below was used instead.
This guide is for a local singleplayer Java world. It does not apply directly to Bedrock Edition, Realms, or a multiplayer server whose files you do not control.
Back up everything before editing.
Official launcher versus TLauncher
Most of the procedure is identical because Minecraft itself writes the world data:
Area
Official Minecraft Launcher
TLauncher or another third-party launcher
Java 26.1+ player path
players/data/<UUID>.dat
Same game-format path
Default macOS game directory
$HOME/Library/Application Support/minecraft
Often the same, but may be configured differently
NBT script
Same
Same
Full-world backups
Same
Same
Python and nbtlib
Same
Same
Player UUID
Normally tied to the authenticated profile
May differ from the UUID expected from an online username lookup
In-game commands
Often available after enabling Allow Commands
May work, may differ by profile/version/setup
Java installed in Terminal
Irrelevant to this Python script
Irrelevant to this Python script
Do not calculate or guess the UUID from a username. Inspect the actual files in the world and use the UUID filename Minecraft is currently saving.
The important distinctions are:
Game version: this exact path is for Java 26.1+.
Actual game directory: do not assume every launcher profile uses the default location.
Singleplayer ownership: local NBT editing works only when you control the world files.
Command availability: commands may make the rescue easier, but the NBT route does not depend on them.
What happened
The player fell into lava in the Nether while carrying valuable armor, tools, and other items.
The game was exited before the player died, so the inventory and player state were still present in the save data. The goal was to:
Preserve the original world and player files.
Temporarily change the player to Creative mode and make them invulnerable.
Load the world and fly out of the lava.
Move the inventory into a chest as an extra precaution.
Save and quit normally.
Edit the player back to Survival mode.
Reopen the world and retrieve the items from the chest.
The critical discovery was that changing only the main .dat file was not enough in this setup. Minecraft appeared to use or restore the .dat_old fallback file. The successful approach was to make the edited .dat and .dat_old files identical before reopening the world.
Safety rules
Follow these throughout the process:
Keep Minecraft and the launcher completely closed while editing save files.
Never edit the only copy of a world.
Make a full-world backup before doing anything.
Let the Python script make a separate player-file backup before each modification.
After preserving both originals, copy the edited .dat over .dat_old before reopening the world. This was required in the tested setup and also prevents the fallback from undoing the rescue.
Verify matching SHA-256 hashes.
Save and quit through Minecraft normally after reaching safety.
Do not force-quit Minecraft while the world is open.
Avoid editing Inventory, Pos, or Dimension unless absolutely necessary.
Do not delete any backup until the rescue has been fully verified.
Replace Feb2026 and the UUID with the values from your own world.
Older Java versions
Do not blindly substitute the older path into the rest of this guide.
Before Java 26.1, player storage used the older playerdata directory, and singleplayer data could also be represented through the Player data in level.dat. The 26.1 storage migration changed both the directory layout and how level.dat identifies the singleplayer character.
For a Java 26.0, 1.21.x, or older world, use a version-specific NBT guide or first upgrade a copy of the world. Never open the only copy in a different game version merely to make this tutorial fit.
Part 1: Back up the entire world
Close Minecraft and whichever launcher you use first.
Do not derive the UUID from a username lookup. Use the filename actually present in the world. This is especially important with third-party or offline profiles, but inspecting the save is the safer approach with any launcher.
Because the archive was created with --keepParent, it should restore the Feb2026 directory itself.
Confirm:
ls -la \
"$HOME/Library/Application Support/minecraft/saves/Feb2026"
Why the first attempt may fail
In the tested TLauncher/Minecraft 26.2 setup, editing only:
<UUID>.dat
did not reliably change the loaded player state.
The exact internal reason was not proven. The observed behavior was consistent with the unedited fallback file being loaded, restored, or used during save recovery:
<UUID>.dat_old
Do not assume this is inherently a TLauncher bug. The fallback file is part of the Minecraft save, and behavior may vary by game version, crash state, save timing, or launcher setup.
Because the guide makes external ZIP and timestamped player backups first, synchronizing .dat_old to the validated edited .dat is an intentional compatibility measure rather than the only remaining backup.
The successful procedure was:
Edit <UUID>.dat.
Validate it with nbtlib.load().
Copy it over <UUID>.dat_old.
Verify matching SHA-256 hashes.
Launch Minecraft only after both files match.
The same synchronization was done when returning from Creative to Survival.
Why not directly edit the inventory
Directly changing the inventory is riskier than changing game mode and abilities.
The rescue method deliberately avoids modifying:
Inventory
Instead:
Preserve the inventory in the player file.
Load in temporary Creative mode.
Fly out of danger.
Put the items into a chest.
Save normally.
Return the player to Survival offline.
This minimizes the number of NBT structures being changed.
Why use a chest before returning to Survival
A chest adds a separate recovery layer.
Before using a chest, the items depend on the player file being loaded and rewritten correctly.
After using a chest, the items are stored in world chunk data. Even if the player inventory becomes empty or the game-mode edit has a problem, the items remain in the saved chest.
That is why Inventory entries: 0 was expected after moving everything into the chest.
Troubleshooting
The player still loads in Survival
Keep Minecraft closed and verify:
shasum -a 256 \
"$PLAYER_DIR/$UUID.dat" \
"$PLAYER_DIR/$UUID.dat_old"
If .dat says Creative but the game still loads Survival, verify that:
The world name is correct.
The UUID filename is correct.
The same TLauncher profile is being used.
Minecraft was fully closed during the edit.
No synchronization or backup tool restored the old save.
The player is still burning
The rescue script sets:
Fire: 0
It also sets full health and invulnerability.
If the game rewrites the file before launch, close everything and reapply the edit to both .dat and .dat_old.
The inventory count is zero before using a chest
Stop and restore a backup.
A zero inventory count before intentionally moving items into a chest may mean:
The wrong player UUID was selected.
The player file was already rewritten after death.
The wrong world was edited.
A launcher profile created a different player identity.
Do not continue until the correct player file is found.
The inventory count is zero after using a chest
That is expected if every item was moved into the chest.
Commands are unavailable in-game
Official Java Edition normally provides an Allow Commands option in world settings or while opening a world to LAN. When it works, a commands-based rescue is simpler:
/gamemode creative
After reaching safe ground:
/gamemode survival
Opening a world to LAN can cause the world simulation to continue, so this is not automatically safer when the player is already taking lava damage. Prepare the command before loading and do not waste time troubleshooting permissions while the player burns.
In the tested TLauncher/Minecraft 26.2 environment, /gamemode creative and /gamerule keepInventory true remained unavailable after attempting the LAN route. The offline NBT procedure does not require command permission.
A command failure does not itself alter or delete the inventory.
The shell says pkill returned status 1
That usually means no matching process was running. It is not necessarily an error.
nbtlib cannot load the file
Restore the latest timestamped player backup and verify that Minecraft is fully closed.
Do not repeatedly overwrite a file that no longer parses.
Cleanup
After the rescue is fully verified, the following may be removed later:
Rescue a Minecraft Java Player Stuck in Nether Lava by Editing Player NBT
Tested environment
macOS
TLauncher
Minecraft Java 26.2 using the newer players/data/<UUID>.dat player-save layout
Python 3 with nbtlib==2.0.4
This was tested successfully in a singleplayer world after the player fell into Nether lava and exited before dying.
Important limitation: opening the world to LAN and trying commands such as /gamemode creative or /gamerule keepInventory true did not work in this setup because cheats remained unavailable. The method below is an offline NBT-editing alternative.
This is not guaranteed to work on every Minecraft, launcher, modpack, or world version. Back up everything before editing.
What happened
The player fell into lava in the Nether while carrying valuable armor, tools, and other items.
The game was exited before the player died, so the inventory and player state were still present in the save data. The goal was to:
Preserve the original world and player files.
Temporarily change the player to Creative mode and make them invulnerable.
Load the world and fly out of the lava.
Move the inventory into a chest as an extra precaution.
Save and quit normally.
Edit the player back to Survival mode.
Reopen the world and retrieve the items from the chest.
The critical discovery was that changing only the main .dat file was not enough in this setup. Minecraft appeared to use or restore the .dat_old fallback file. The successful approach was to make the edited .dat and .dat_old files identical before reopening the world.
Safety rules
Follow these throughout the process:
Keep Minecraft and TLauncher completely closed while editing save files.
Never edit the only copy of a world.
Make a full-world backup before doing anything.
Let the Python script make a separate player-file backup before each modification.
Copy the edited .dat over .dat_old before reopening the world.
Verify matching SHA-256 hashes.
Save and quit through Minecraft normally after reaching safety.
Do not force-quit Minecraft while the world is open.
Avoid editing Inventory, Pos, or Dimension unless absolutely necessary.
Do not delete any backup until the rescue has been fully verified.
Do not assume the UUID matches a Microsoft account UUID. TLauncher or offline profiles may use a different UUID. Use the filename actually present in the world.
Because the archive was created with --keepParent, it should restore the Feb2026 directory itself.
Confirm:
ls -la \
"$HOME/Library/Application Support/minecraft/saves/Feb2026"
Why the first attempt may fail
In the tested setup, editing only:
<UUID>.dat
did not reliably change the loaded player state.
The likely cause was Minecraft loading, restoring, or otherwise preferring the fallback:
<UUID>.dat_old
The successful procedure was:
Edit <UUID>.dat.
Validate it with nbtlib.load().
Copy it over <UUID>.dat_old.
Verify matching SHA-256 hashes.
Launch Minecraft only after both files match.
The same synchronization was done when returning from Creative to Survival.
Why not directly edit the inventory
Directly changing the inventory is riskier than changing game mode and abilities.
The rescue method deliberately avoids modifying:
Inventory
Instead:
Preserve the inventory in the player file.
Load in temporary Creative mode.
Fly out of danger.
Put the items into a chest.
Save normally.
Return the player to Survival offline.
This minimizes the number of NBT structures being changed.
Why use a chest before returning to Survival
A chest adds a separate recovery layer.
Before using a chest, the items depend on the player file being loaded and rewritten correctly.
After using a chest, the items are stored in world chunk data. Even if the player inventory becomes empty or the game-mode edit has a problem, the items remain in the saved chest.
That is why Inventory entries: 0 was expected after moving everything into the chest.
Troubleshooting
The player still loads in Survival
Keep Minecraft closed and verify:
shasum -a 256 \
"$PLAYER_DIR/$UUID.dat" \
"$PLAYER_DIR/$UUID.dat_old"