Editor NBT Java Edition

Mendukung Minecraft Bedrock Edition dan Java Edition — serta semua core server untuk keduanya, baik yang populer maupun yang jarang dikenal: Vanilla, Paper, Spigot, Purpur, Folia, Fabric, Forge, NeoForge, Mohist, Sponge, Bedrock Dedicated Server, PocketMine-MP, Nukkit, PowerNukkitX, Cloudburst, Dragonfly, Endstone, LeviLamina, dan lainnya. Daftar lengkap.

Minecraft Java Edition menyimpan data sebagai NBT big-endian yang hampir selalu dikompresi dengan gzip. Letakkan file Java apa pun di bawah — level.dat, file UUID playerdata, servers.dat, struktur .nbt, atau schematic WorldEdit — lalu editor akan mendekompresi, mengurai dalam big-endian, dan menulisnya kembali dengan kompresi gzip agar tetap diterima oleh permainan.

VanillaPaperSpigotPurpurFoliaFabricQuiltForgeNeoForgeSponge

Letakkan file NBT Java di sini

level.dat · .nbt · .mcstructure · .schem · .schematic · .dat · dump chunk

Isi sebuah dunia Java

Semua file di bawah dapat dibuka dalam editor di atas. File region (.mca) merupakan wadah berisi banyak chunk terkompresi, bukan satu dokumen NBT. Ekstrak payload chunk terlebih dahulu — editor dapat membaca NBT chunk terkompresi zlib yang dihasilkan.

LokasiIsiKompresi
world/level.datNama dunia, mode permainan, aturan, spawn, DataVersiongzip
world/level.dat_oldPenyimpanan sebelumnya dari file yang samagzip
world/playerdata/<uuid>.datInventaris, peti Ender, posisi, kesehatan, XP, atributgzip
world/data/raids.dat, idcounts.dat, map_*.datStatus raid, penghitung id entitas, item petagzip
world/data/scoreboard.datObjektif, tim, skorgzip
world/region/*.mcaNBT chunk di dalam wadah regionzlib untuk setiap chunk
servers.datDaftar server multipemain dari klientanpa kompresi
hotbar.nbtHotbar creative yang disimpantanpa kompresi
*.nbt dalam datapackStruktur yang ditempatkan oleh structure block dan jigsawgzip

Cara Java mengodekan NBT

  • Big-endian. Setiap integer dan float disimpan dengan byte paling signifikan terlebih dahulu, sesuai dengan DataOutputStream Java.
  • Root bernama. File dimulai dengan tipe tag 0x0A, lalu nama root UTF-8 dengan awalan panjang — secara historis kosong dalam level.dat.
  • UTF-8 termodifikasi. String menggunakan pengodean writeUTF Java: panjang dua byte, NUL ditulis sebagai C0 80, dan karakter di luar bidang dasar dibagi menjadi dua bagian tiga byte (CESU-8). Alat yang menganggapnya UTF-8 biasa akan merusak emoji dalam nama dunia; editor ini mengodekannya dengan benar.
  • gzip secara bawaan. NbtIo.readCompressed mengharapkan stream gzip. File tanpa kompresi dapat dimuat di beberapa alat, tetapi tidak di dalam permainan.
  • Root tanpa nama di jaringan. Sejak 1.20.2, protokol mengirim NBT tanpa nama root. Dump paket dalam bentuk tersebut dideteksi sebagai Jaringan Java di sini.

Paper, Spigot, Fabric, Forge — file yang sama

Fork dan mod loader mengubah cara server berjalan, bukan cara dunia ditulis. Paper, Purpur, Pufferfish, Folia, Fabric, Quilt, Forge, NeoForge, Mohist, Arclight, dan Sponge menggunakan tata letak NBT Vanilla, sehingga semua informasi di halaman ini berlaku tanpa perubahan. Fork menambahkan file lain di samping dunia — paper-world.yml, konfigurasi mod — yang berformat YAML atau TOML dan tidak terkait dengan NBT.

Mod dan plugin dapat menambahkan compound sendiri di dalam level.dat atau playerdata. Tag tersebut dapat dibuka di sini seperti tag lainnya; jangan ubah jika Anda tidak mengetahui cara mod menggunakannya.

DataVersion dan migrasi versi

Dunia Java memiliki integer DataVersion yang mengidentifikasi format dunia dan bertambah pada setiap snapshot. Beberapa acuan: 1.16.5 adalah 2586, 1.17.1 adalah 2730, 1.18.2 adalah 2975, 1.19.4 adalah 3337, 1.20.4 adalah 3700, dan 1.21 adalah 3953. Klien yang lebih lama daripada versi penulis dunia akan menolak membukanya karena tag ini. Menurunkan nilainya secara manual tidak menurunkan versi data chunk di belakangnya, tetapi hanya menghapus pengaman. Baca nilainya untuk mengetahui versi yang menulis dunia; jangan edit untuk memaksa downgrade.

Pertanyaan yang sering diajukan

Bisakah saya membuka level.dat Java yang gagal dimuat dalam permainan?

Biasanya bisa. Editor lebih toleran daripada permainan terhadap byte sisa dan melaporkan lokasi penguraian berhenti jika file terpotong. Jika editor juga menolak, coba level.dat_old, yaitu penyimpanan otomatis sebelumnya.

Apakah NBT jaringan 1.20.2+ didukung?

Ya. Sejak 1.20.2, protokol tidak menyertakan nama root. Dump dalam bentuk tersebut dideteksi sebagai format Jaringan Java dan dapat disimpan kembali sebagai NBT jaringan atau file biasa dengan root bernama.

Bisakah saya mengedit chunk dari file region .mca?

Anda dapat mengedit NBT chunk setelah diekstrak dari wadah region. .mca sendiri berisi indeks dan banyak payload chunk terkompresi zlib, sedangkan editor ini menangani satu dokumen NBT, bukan wadah tersebut.

Apakah mengedit playerdata akan merusak data pemain?

Hanya jika server berjalan saat Anda mengeditnya. Server menyimpan status pemain dalam memori dan menulisnya saat pemain keluar, sehingga file Anda akan tertimpa. Putuskan pemain dari server, edit, lalu izinkan mereka masuk kembali. Lihat editor playerdata.

Apakah level.dat harus menggunakan gzip?

Loader Vanilla membaca gzip. Simpan dengan kompresi gzip — pilihan bawaan jika file masuk dalam format tersebut — agar permainan dapat menerimanya.

Alat terkait