Éditeur NBT Java Edition

Compatible avec Minecraft Bedrock Edition et Java Edition, ainsi qu'avec tous leurs logiciels serveur, courants ou non : Vanilla, Paper, Spigot, Purpur, Folia, Fabric, Forge, NeoForge, Mohist, Sponge, Bedrock Dedicated Server, PocketMine-MP, Nukkit, PowerNukkitX, Cloudburst, Dragonfly, Endstone, LeviLamina et les autres. Liste complète.

Minecraft Java Edition stocke ses données au format NBT gros-boutiste, presque toujours compressé avec gzip. Déposez ci-dessous un fichier Java — level.dat, un fichier UUID de playerdata, servers.dat, une structure .nbt ou un schéma WorldEdit. L'éditeur le décompresse, l'analyse en gros-boutiste et le réécrit avec gzip afin que le jeu l'accepte sans changement.

VanillaPaperSpigotPurpurFoliaFabricQuiltForgeNeoForgeSponge

Déposez un fichier NBT Java ici

level.dat · .nbt · .mcstructure · .schem · .schematic · .dat · extractions de chunks

Composition d'un monde Java

Tous les fichiers ci-dessous s'ouvrent dans l'éditeur. Les fichiers de région (.mca) sont des conteneurs de nombreux chunks compressés et non des documents NBT uniques. Extrayez d'abord la charge utile d'un chunk : l'éditeur lit le NBT du chunk obtenu, compressé avec zlib.

CheminContenuCompression
world/level.datNom du monde, mode de jeu, règles, spawn, DataVersiongzip
world/level.dat_oldSauvegarde précédente du même fichiergzip
world/playerdata/<uuid>.datInventaire, coffre de l'Ender, position, santé, XP, attributsgzip
world/data/raids.dat, idcounts.dat, map_*.datÉtat des raids, compteurs d'identifiants d'entités, cartesgzip
world/data/scoreboard.datObjectifs, équipes, scoresgzip
world/region/*.mcaNBT de chunk dans un conteneur de régionzlib par chunk
servers.datListe des serveurs multijoueurs du clientaucune
hotbar.nbtBarres d'accès rapide enregistrées en mode créatifaucune
*.nbt dans les datapacksStructures placées par les blocs de structure et les raccordsgzip

Encodage du NBT par Java

  • Gros-boutiste. Chaque entier et nombre à virgule flottante stocke d'abord l'octet de poids fort, conformément à DataOutputStream de Java.
  • Racine nommée. Le fichier commence par le type de balise 0x0A, puis par un nom de racine UTF-8 précédé de sa longueur, historiquement vide dans level.dat.
  • UTF-8 modifié. Les chaînes utilisent l'encodage writeUTF de Java : longueur sur deux octets, NUL écrit sous la forme C0 80, et caractères hors du plan de base divisés en deux moitiés de trois octets (CESU-8). Un outil qui le traite comme de l'UTF-8 ordinaire altère les emoji des noms de monde ; cet éditeur l'encode correctement.
  • gzip par défaut. NbtIo.readCompressed attend un flux gzip. Les fichiers non compressés s'ouvrent dans certains outils, mais pas dans le jeu.
  • Racine sans nom sur le réseau. Depuis la version 1.20.2, le protocole envoie le NBT sans nom de racine. Les captures de paquets sous cette forme sont détectées ici comme du format réseau Java.

Paper, Spigot, Fabric, Forge : les mêmes fichiers

Les dérivés et chargeurs de mods changent le fonctionnement du serveur, pas l'écriture du monde. Paper, Purpur, Pufferfish, Folia, Fabric, Quilt, Forge, NeoForge, Mohist, Arclight et Sponge utilisent tous la structure NBT de Vanilla. Le contenu de cette page s'applique donc sans modification. Ces logiciels ajoutent parfois des fichiers à côté du monde, comme paper-world.yml ou des configurations de mods, mais ceux-ci sont en YAML ou TOML et n'ont aucun rapport avec le NBT.

Les mods et plugins peuvent ajouter leurs propres composés dans level.dat ou playerdata. Ces balises s'ouvrent comme les autres ; ne les modifiez que si vous savez comment le mod les utilise.

DataVersion et migration de version

Les mondes Java contiennent un entier DataVersion qui identifie le format du monde et augmente à chaque snapshot. Quelques repères : 1.16.5 vaut 2586, 1.17.1 vaut 2730, 1.18.2 vaut 2975, 1.19.4 vaut 3337, 1.20.4 vaut 3700 et 1.21 vaut 3953. Cette balise explique précisément pourquoi un client antérieur à celui qui a écrit le monde refuse de l'ouvrir. La réduire à la main ne rétrograde pas les données des chunks : cela supprime seulement la protection. Lisez-la pour déterminer quelle version a écrit le monde ; ne la modifiez pas pour forcer une rétrogradation.

Questions fréquentes

Puis-je ouvrir un level.dat Java que le jeu ne charge pas ?

Généralement oui. L'éditeur tolère mieux que le jeu les octets finaux et indique exactement où l'analyse s'est arrêtée si le fichier est tronqué. S'il le refuse aussi, essayez level.dat_old, qui correspond à la sauvegarde automatique précédente.

Le NBT réseau des versions 1.20.2+ est-il pris en charge ?

Oui. Depuis la version 1.20.2, le protocole omet le nom de la racine. Une capture sous cette forme est détectée comme format réseau Java et peut être réenregistrée en NBT réseau ou comme fichier normal à racine nommée.

Puis-je modifier un chunk provenant d'un fichier de région .mca ?

Vous pouvez modifier le NBT du chunk après l'avoir extrait du conteneur de région. Le fichier .mca lui-même est un index suivi de nombreuses charges utiles de chunks compressées avec zlib ; cet éditeur traite un seul document NBT, pas le conteneur.

La modification de playerdata peut-elle endommager le joueur ?

Seulement si le serveur fonctionne pendant l'opération : il conserve l'état du joueur en mémoire et le réécrit à sa déconnexion, écrasant votre fichier. Déconnectez le joueur, modifiez le fichier, puis laissez-le se reconnecter. Consultez l'éditeur playerdata.

Un level.dat compressé avec gzip est-il obligatoire ?

Le chargeur Vanilla lit gzip. Enregistrez avec la compression gzip, choisie par défaut si le fichier utilisait déjà ce format, et le jeu l'acceptera.

Outils associés