Случайная смерть в лаве из-за серверного лага, повреждение чанка или непреднамеренное удаление инвентаря вызывают необходимость отката данных отдельного пользователя. Полный откат мира из резервной копии уничтожит постройки и прогресс всех остальных участников сервера, поэтому администратору требуется точечное хирургическое восстановление.
В этом практическом руководстве мы разберём, где хранятся файлы инвентарей игроков, как сопоставить никнейм с UUID через usercache.json, безопасно извлечь файл .dat из архива и предотвратить его перезапись из оперативной памяти сервера.
Структура хранения данных игроков в Minecraft Java#
В отличие от ранних версий игры, серверы Minecraft Java идентифицируют пользователей исключительно по уникальному идентификатору UUID (Universally Unique Identifier).
В каталоге мира (world/ или world_nether/) за состояние игроков отвечают три директории:
world/playerdata/<UUID>.dat— бинарный файл формата GZip NBT. Содержит инвентарь игрока, содержимое сундука Края (Ender Chest), уровень опыта, текущие координаты (Pos), активное измерение и запас здоровья.world/stats/<UUID>.json— текстовая статистика (количество добытых блоков, пройденное расстояние, смерти).world/advancements/<UUID>.json— дерево выполненных достижений.
Определение UUID игрока через usercache.json#
Перед извлечением данных необходимо узнать точный UUID пострадавшего игрока. Сервер ведёт локальный кэш сопоставлений в корневой папке игры:
cd /opt/minecraft/server
jq '.[] | select(.name=="Steve")' usercache.json
Команда выведет структуру:
{
"name": "Steve",
"uuid": "4566e69f-c907-48ee-8d71-d7ba5aa00c20",
"expiresOn": "2026-12-07 12:00:00 +0000"
}
Сохраните полученный UUID в переменную оболочки:
PLAYER_UUID="4566e69f-c907-48ee-8d71-d7ba5aa00c20"
echo "Target UUID: ${PLAYER_UUID}"
Извлечение данных конкретного игрока из резервной копии#
Никогда не распаковывайте архив резервной копии прямо поверх рабочей директории сервера. Создайте изолированный временный каталог и извлеките только нужный файл:
mkdir -p /tmp/mc_restore
tar -I zstd -xf /opt/backups/minecraft_2026-11-06.tar.zst \
-C /tmp/mc_restore "world/playerdata/${PLAYER_UUID}.dat"
ls -la "/tmp/mc_restore/world/playerdata/${PLAYER_UUID}.dat"
Если резервная копия была сохранена в формате .tar.gz, замените флаг -I zstd на стандартный -xzf.
Безопасная замена файлов и предотвращение перезаписи из памяти#
Критическая ошибка администраторов — замена файла .dat, когда игрок находится на сервере. Java Virtual Machine держит состояние подключённого пользователя в оперативной памяти. При отключении игрока или очередном автоматическом сохранении мира сервер запишет данные из RAM на диск, полностью уничтожив восстановленный файл.
Остановите сервер или принудительно отключите игрока:
# Принудительное отключение игрока через RCON (или systemctl stop minecraft)
mcrcon -H 127.0.0.1 -P 25575 -p "SecretPass" "kick Steve Восстановление инвентаря"
# Замена файла данных на версию из бэкапа
cp "/tmp/mc_restore/world/playerdata/${PLAYER_UUID}.dat" \
"/opt/minecraft/server/world/playerdata/${PLAYER_UUID}.dat"
# Очистка временного каталога
rm -rf /tmp/mc_restore
После повторного входа на сервер игрок появится с точным состоянием инвентаря, сундука Края и координат на момент создания снимка, при этом прогресс всех остальных выживших останется нетронутым.
Если вы хотите управлять мирами Minecraft с поддержкой гранулярного отката игроков в один клик, автоматическими бэкапами без остановки сервера и удобным поиском UUID, профессиональный хостинг серверов Minecraft предоставляет все необходимые инструменты в интуитивной панели управления.




