Chaque carte que vous créez est enregistrée dans un seul fichier texte .json. Le format est petit, lisible et entièrement à vous : vous pouvez l'ouvrir dans n'importe quel éditeur de texte, le placer sous gestion de versions, le sauvegarder, le générer depuis un script ou le déplacer entre instances. Cette page décrit exactement ce qu'il contient.
Un fichier de carte est un unique objet JSON avec trois clés : zones (votre palette de couleurs), layers (les cartes elles-mêmes, le monde et les éventuels intérieurs) et layerOrder (l'ordre dans lequel les calques sont listés). Dans sa forme la plus simple, il ressemble à ceci :
{
"zones": {
"forest": { "name": "Forest", "color": "#3f8f4f" },
"water": { "name": "Water", "color": "#3a6ea5" }
},
"layers": {
"world": {
"name": "Overworld",
"tiles": { "10_8": { "z": "forest" }, "11_8": { "z": "water" } },
"labels": { "L1": { "x": 10, "y": 8, "text": "Greenwood" } },
"markers": { "M1": { "x": 11, "y": 8, "icon": "🏰", "scale": 1.5 } }
}
},
"layerOrder": ["world"]
}
zones est un objet qui associe une courte clé de zone (un identifiant en minuscules de votre choix, p. ex. forest) à sa définition. Les cases référencent les zones par cette clé, donc renommer le nom affiché d'une zone ne casse jamais la carte.
name, l'étiquette lisible affichée dans la palette (une chaîne).color, la couleur de remplissage sous forme de code hexadécimal, p. ex. "#3f8f4f".layers associe un identifiant de calque à un calque. La carte principale utilise toujours l'identifiant world ; les calques supplémentaires (donjons, intérieurs de bâtiments, continents séparés) ont leur propre identifiant. Chaque calque est autonome :
name, le nom affiché du calque (une chaîne, p. ex. "Dragon's Lair").tiles, les cases peintes (voir ci-dessous).labels, le texte des noms de lieux sur la carte.markers, les icônes posées sur la carte.tiles associe une coordonnée de cellule à la zone qui y est peinte. La clé est la position sur la grille écrite "x_y" (colonne puis ligne, reliées par un tiret bas). Seules les cases peintes sont enregistrées, l'espace vide ne prend aucune place, donc une grande carte presque vide reste un petit fichier. Chaque cellule contient un seul champ, z, la clé de zone de la palette ci-dessus.
"tiles": {
"45_44": { "z": "plains" },
"46_44": { "z": "plains" },
"46_45": { "z": "water" }
}
labels associe un identifiant (une chaîne unique quelconque) à une étiquette de texte posée sur la carte. Chaque étiquette a une position sur la grille et son texte :
x, y, la cellule de la grille où se trouve l'étiquette (nombres).text, le texte de l'étiquette (une chaîne, jusqu'à 200 caractères).markers associe un identifiant à une icône posée sur la carte. Un marqueur peut aussi servir d'entrée vers un autre calque, c'est ainsi que vous reliez le monde à un donjon.
x, y, la cellule de la grille où se trouve le marqueur (nombres).icon, le glyphe du marqueur, généralement un emoji (une courte chaîne, jusqu'à 16 caractères).scale, la taille de dessin de l'icône (un nombre de 0.3 à 16 ; 1 est la taille par défaut).link, optionnel. L'identifiant d'un autre calque ; cliquer sur le marqueur transporte vers ce calque. Omettez-le pour un marqueur ordinaire.layerOrder est une liste d'identifiants de calque qui fixe l'ordre d'apparition des calques. Elle inclut toujours "world". Tout calque qui existe mais manque dans la liste est simplement ajouté à la fin au chargement du fichier, donc rien de grave si vous en oubliez un.
Depuis votre tableau de bord Cartes, vous pouvez Exporter n'importe quelle carte pour la télécharger en fichier .json, et Importer un fichier .json pour ajouter une carte. C'est le moyen le plus simple de déplacer une carte d'un ordinateur à l'autre, de la partager avec un coéquipier ou de garder une sauvegarde hors site.
my-world-2).tiles au niveau supérieur (au lieu de dans layers) s'importent toujours correctement, ils sont convertis automatiquement en un calque world.data/ est une sauvegarde tout aussi valable.Voici une petite carte complète avec deux calques, un monde dont le marqueur de grotte renvoie vers un calque de donjon :
{
"zones": {
"water": { "name": "Ocean", "color": "#2f5e94" },
"plains": { "name": "Plains", "color": "#9fc46a" },
"forest": { "name": "Forest", "color": "#3f8f4f" },
"mountain":{ "name": "Mountain", "color": "#8a7560" },
"dungeon": { "name": "Dungeon", "color": "#7a52b0" }
},
"layers": {
"world": {
"name": "Overworld",
"tiles": {
"20_14": { "z": "plains" },
"21_14": { "z": "forest" },
"22_14": { "z": "mountain" },
"22_15": { "z": "water" }
},
"labels": {
"L1": { "x": 20, "y": 14, "text": "Eldermoor" }
},
"markers": {
"M1": { "x": 20, "y": 14, "icon": "🏯", "scale": 2.0 },
"M2": { "x": 22, "y": 14, "icon": "🕳️", "scale": 1.4, "link": "lair" }
}
},
"lair": {
"name": "Drake's Lair",
"tiles": {
"10_10": { "z": "dungeon" },
"11_10": { "z": "dungeon" },
"11_11": { "z": "dungeon" }
},
"labels": {
"D1": { "x": 10, "y": 10, "text": "Entrance Hall" }
},
"markers": {
"D1": { "x": 11, "y": 11, "icon": "🐲", "scale": 2.2 }
}
}
},
"layerOrder": ["world", "lair"]
}
Si vous modifiez un fichier à la main, gardez-le en JSON valide (une virgule mal placée l'empêchera de se charger) et faites-en une copie d'abord. En cas de doute, exportez une vraie carte et servez-vous-en comme modèle de départ.