Trình sửa level.dat cho PocketMine-MP và máy chủ Bedrock

Hỗ trợ Minecraft Bedrock Edition và Java Edition — cùng mọi phần mềm máy chủ phổ biến hoặc ít gặp của cả hai: Vanilla, Paper, Spigot, Purpur, Folia, Fabric, Forge, NeoForge, Mohist, Sponge, Bedrock Dedicated Server, PocketMine-MP, Nukkit, PowerNukkitX, Cloudburst, Dragonfly, Endstone, LeviLamina và các phần mềm còn lại. Danh sách đầy đủ.

Các phần mềm máy chủ Bedrock — PocketMine-MP, Nukkit, PowerNukkitX, Cloudburst, Dragonfly và Bedrock Dedicated Server chính thức — đều đọc cùng một level.dat little-endian có header 8 byte từ worlds/<World>/. Thả tệp bên dưới để sửa tên sau khi nhân bản thư mục, chuyển điểm sinh, đổi luật chơi hoặc kiểm tra bản dựng gần nhất đã ghi thế giới.

PocketMine-MPNukkitPowerNukkitXCloudburstBedrock Dedicated ServerDragonflyEndstoneWaterdogPE

Thả worlds/<World>/level.dat vào đây

level.dat · .nbt · .mcstructure · .schem · .schematic · .dat · dữ liệu chunk trích xuất

Vấn đề trùng tên thế giới

Mọi quản trị viên máy chủ Bedrock đều gặp trường hợp này. Bạn sao chép worlds/hub thành worlds/hub2 để tạo đấu trường thứ hai, nhưng console, trình quản lý thế giới và mọi plugin báo tên thế giới vẫn gọi cả hai là hub. Tên thư mục đã đổi; LevelName trong level.dat thì chưa.

Hậu quả không chỉ nằm ở hiển thị. Plugin tra cứu thế giới theo tên nội bộ — điểm dịch chuyển, cấu hình từng thế giới, bảo vệ vùng — có thể chọn nhầm thế giới và các lệnh quản lý trở nên mơ hồ. Sửa bằng cách đổi thẻ: thả tệp phía trên để trình sửa chuyển thẳng đến LevelName và mở giá trị cho bạn sửa.

  1. Dừng máy chủ. Máy chủ đang chạy ghi lại level.dat khi lưu và sẽ hủy thay đổi.
  2. Tải worlds/<World>/level.dat qua SFTP hoặc trình quản lý tệp trong bảng điều khiển.
  3. Thả tệp vào trình sửa, đổi LevelName thành tên mới rồi lưu.
  4. Tải lên và ghi đè tệp gốc, đồng thời giữ tệp cũ làm bản sao lưu.
  5. Khởi động máy chủ và kiểm tra dòng console báo các thế giới đã tải.

Ghi chú theo từng phần mềm

Phần mềmĐường dẫn thế giớiGhi chú
PocketMine-MP (PM5)worlds/<World>/Thế giới mặc định do level-name trong server.properties chọn; giá trị đó là thư mục, còn LevelName là tên nội bộ của thế giới.
Nukkit / PowerNukkitXworlds/<World>/Cùng bố cục Bedrock; PNX thêm các tệp cài đặt riêng bên cạnh.
Bedrock Dedicated Serverworlds/<World>/level-name trong server.properties chọn thư mục; phiên bản lưu trữ trong header thường là 10.
Cloudburst / Dragonflyworlds/<World>/Đọc cùng level.dat; Dragonfly có thể giữ trạng thái bổ sung trong cơ sở dữ liệu riêng.
WaterdogPE, Geyser—Đây là proxy. Chúng không sở hữu thế giới; NBT chỉ truyền qua mạng dưới dạng NBT mạng.

Thực hiện mà không làm hỏng máy chủ đang dùng

  • Sao lưu toàn bộ thư mục thế giới, không chỉ level.dat. Chỉ mất vài giây và đây là cách duy nhất để hoàn tác một lần sửa sai.
  • Không sửa trực tiếp tệp đang hoạt động qua SFTP. Tải xuống, sửa rồi tải lên khi máy chủ đã dừng. Sửa tại chỗ trong lúc máy chủ đang mở thế giới có thể tạo tệp bị cắt ngắn.
  • Đang sao chép thế giới cho chế độ mới? Đổi LevelName ngay sau khi sao chép, trước khi máy chủ đọc tệp, để không có thành phần nào lưu tên sai vào bộ nhớ đệm.
  • Kiểm tra thanh tệp sau khi tải. Thanh này hiện định dạng và phiên bản lưu trữ đã phát hiện — nếu tệp Bedrock được nhận là bất cứ thứ gì khác level.dat Bedrock, bạn đã lấy nhầm tệp hoặc tệp bị hỏng.

Câu hỏi thường gặp

PocketMine-MP có dùng cùng level.dat với Bedrock không?

Có. PocketMine-MP triển khai định dạng thế giới Bedrock, vì vậy level.dat là NBT little-endian có header 8 byte, với cấu trúc byte giống tệp mà máy chủ Bedrock Vanilla ghi.

Tại sao hai thế giới hiện cùng tên trong console?

Vì cả hai được sao chép từ một thư mục và dùng chung LevelName. Tên thư mục và thẻ này độc lập; hãy đổi thẻ.

Tôi có thể đổi tên thế giới mà không khởi động lại máy chủ không?

Không. Thế giới đang nằm trong bộ nhớ và được ghi lại khi lưu, vì vậy thay đổi lúc máy chủ chạy sẽ bị hủy. Hãy dừng, sửa rồi khởi động.

Công cụ có dùng được với Nukkit và PowerNukkitX không?

Có — cùng định dạng, cùng đường dẫn tệp và cùng quy trình.

Làm thế nào để chuyển thế giới Bedrock sang Java?

Không thể chỉ bằng trình sửa NBT. Thứ tự byte là phần dễ; bố cục thẻ, bảng block và cách lưu chunk khác hoàn toàn. Hãy dùng công cụ chuyển đổi chuyên dụng rồi dùng trình sửa này cho phần siêu dữ liệu còn lại.

Công cụ liên quan