Atlas de Bretonnie

Atelier des moddeurs · guide · 54 min de lecture

Terry, le guide : l'éditeur de terrain de Total War: Warhammer III, de la première carte de bataille au terrain de campagne

Terry est l'éditeur de terrain en 3D de l'Assembly Kit de Total War: Warhammer III. Ce guide le prend en main pas à pas : l'ouvrir, lire sa fenêtre, s'y déplacer, peindre, faire une première carte de bataille et la voir en jeu. Il rassemble ensuite ce que l'on sait du terrain d'une carte de campagne, que le kit ne livre pas, appris en portant une carte entière dans Warhammer III.

Relu le 25 septembre 2026, mise à jour 9.0. Écrit contre ses sources, l'Assembly Kit au patch 8.1, le wiki de CA et tw-modding ; ce que la 9.0 a changé sur notre chantier y est ajouté, le reste n'a pas été revérifié point par point. Dans le doute, vérifiez, et dites-le-nous.

Ce qu'est Terry, et ce qu'il fait dans le kit public§

Terry (Terrain Metadata Editor) est l'éditeur de terrain en 3D de Creative Assembly (CA), livré avec l'Assembly Kit de Total War: Warhammer III. On y fabrique un terrain : le relief, les textures, la végétation, les objets, les zones logiques, l'éclairage et les sons. Ce n'est pas un programme à part : c'est un mode de Tweak, l'éditeur du kit.

Terry n'écrit pas les fichiers que lit le jeu, mais des sources, dans le dossier raw_data du kit. BOB, le bâtisseur du kit, les compile dans working_data ; RPFM les range dans un pack. Terry lance BOB lui-même : File → Process with BOB.

Le trajet d'une carte de bataille, de Terry au jeu :

  1. Terry

    Vous peignez la tuile (relief, textures, objets, zones logiques) et la posez dans une tile map.

    .terry, .layer, .tif, tile_map.png dans raw_data

  2. BOB

    Il compile la tile map, puis la tuile, en fichiers du jeu.

    working_data/terrain/…

  3. RPFM

    Le pack : les fichiers compilés, une ligne de battles_tables, un texte, une image.

    ma_carte.pack

  4. En jeu

    La carte apparaît dans la bataille personnalisée.

Ce guide suit ce trajet, puis rassemble ce que l'on sait du terrain d'une carte de campagne.

Les mots de Terry§

Quelques mots reviennent partout. Voici le sens que leur donne ce guide.

Des mots emboîtésune carte de bataille, de l'extérieur vers l'intérieurTile maple décor tout autour de la tuile, emprunté à une vista (une tilemap toute faite) : on en reprend tile_map.png et climate_map.pngTuile.terryle terrain où l'on se bat, que vous peignezRasters.tifdes images dont chaque pixel porte une valeur : relief,mélange des textures…Calques.layerdes groupes d'entités : un File Layer est un fichier.layer ; un Logical Layer, un simple rangementEntitésobjets, prefabs (des assemblages prêts à poser) etentités logiques : zones de déploiement, zonejouable, points de capture…
Les mots de Terry s'emboîtent : la tile map, le décor emprunté à une vista, entoure la tuile ; la tuile, c'est un projet .terry, ses rasters (des images .tif) et ses calques ; un calque porte des entités.
MotSens
Tuile (tile)un morceau de terrain fait dans Terry : relief, textures, objets, logique. Une carte de bataille, c'est une tuile posée dans une tile map.
Tile maple grand terrain, assemblé à partir de tuiles, qui entoure le champ de bataille ; votre tuile y a sa place. En campagne, tile_map.png dit quelle sorte de tuile va sur chaque hex : terre, mer, côte, route.
Rasterune image dont chaque pixel porte une valeur : une hauteur, un mélange de textures, un masque. Un fichier .tif par raster enregistré (relief, mélange des textures…).
Vistaune tile map toute faite, reprise comme décor autour de votre tuile ; le kit de Warhammer III n'en livre pas (voir les questions fréquentes).
Calque (layer)un groupe d'entités. Un File Layer est un fichier .layer ; un Logical Layer, un simple rangement.
Prefabun assemblage d'objets prêt à poser, réutilisable ; de bataille ou de campagne.
Entité logiquece que le jeu lit sans le montrer : zones de déploiement, zone jouable, indices pour l'IA, zones interdites, points de capture.
Zone jouable (Playable Area)en bataille, l'entité logique qui délimite où l'on peut donner des ordres de mouvement ; elle fixe aussi d'où les unités fuient et arrivent en renfort, et les bords de la minicarte (CA). La page d'introduction de CA ajoute que ses bords bornent la caméra.
Zone jouable de campagnela ligne de campaign_map_playable_areas qui décrit la carte d'une campagne ; sa colonne terrain_folder désigne un terrain de bataille.
BOBle bâtisseur du kit : il compile les sources de raw_data en fichiers du jeu, dans working_data. Chaque exécution s'appelle ici un passage. Voir le guide BOB.
raw_data / working_datace que les outils du kit lisent (vos sources) / ce qu'ils produisent (les fichiers du jeu).
Catchmentune variante d'export d'une même carte (catchment_01…), que choisit la colonne catchment_name de la table battles. En campagne, des cartes de captage choisissent la carte de bataille selon le lieu.

Ouvrir Terry§

Terry étant un mode de Tweak, il a trois portes d'entrée, qui mènent à la même fenêtre.

Comment vérifier. La fenêtre s'intitule TWeak - Terry. Elle met du temps à venir : environ 25 secondes chez nous. Au démarrage, le Project Wizard s'affiche.

Le Project Wizard§

Le Project Wizard s'affiche au démarrage (case Show on startup) et se rouvre par File → Project Wizard… : il présente les projets récents et l'onglet New, sur lequel il s'ouvre (tw-modding).

Dans Warhammer III, il montre trois icônes. Celle de droite, une boîte en pointillés, crée un prefab, de bataille ou de campagne (tw-modding, Custom Campaign Settlement Skins). Le kit ne connaît que trois types de projet : tile, tile_map et prefab (fichier working_data/Terry/entity_configuration.xml). Les deux autres icônes correspondent donc sans doute à la tuile et à la tile map (non vérifié à l'écran).

La fenêtre de Terry§

La fenêtre de Terry est faite de panneaux qui se détachent et s'ancrent : la disposition se règle, et la vôtre peut différer. La figure en montre une disposition courante, avec des pastilles numérotées : menus et barres d'outils en haut, hiérarchie de la scène à gauche, propriétés en bas et à droite, vue 3D au centre, messages de BOB en bas à droite.

TWeak - TerryFile View Tools1234World | EditorVisual · Logical · OtherScene Hierarchy▸ base.layer▸ decor.layer▸ logic.layerEntity PropertiesProject ErrorsPlayable AreaAlliance 1Alliance 0Tool PropertiesScale · HardnessMap Properties | Settingsmessages de BOB123456789
  1. Menus et barres d'outilsFile, View, Tools ; les barres s'ouvrent par View → Toolbars.
  2. La barre Basicoutils 1 à 4 (sélection, déplacement, rotation, échelle), quatre modes de peinture, le globe Process with BOB (Ctrl+P), World ou Editor View ; puis Entity Creation (Visual, Logical, Other).
  3. Scene Hierarchyles entités, rangées en calques ; un double-clic rend un calque actif (en rouge).
  4. Entity Propertiesles propriétés de la sélection, modifiables pour plusieurs objets à la fois.
  5. Project Errorsce qui empêcherait la carte de marcher en jeu.
  6. Le viewportla scène 3D : la grille des tuiles, la zone jouable, les zones de déploiement (Alliance 0 = attaquant, en bleu dans le Terry de Warhammer III ; 1 = défenseur, en rouge sombre ; la documentation de 2016 donnait l'inverse : fiez-vous au numéro).
  7. Tool Propertiesles réglages de l'outil actif : brosse, ou choix d'un prefab.
  8. Map Properties et Settingsles réglages du projet ; ceux de Terry lui-même (autosauvegarde, BOB, caméra).
  9. Les messages de BOBen bas à droite, pendant un passage : des fenêtres surgissantes, selon tw-modding.
La fenêtre de Terry, dans une disposition courante (schéma) : les panneaux se détachent et s'ancrent, la vôtre peut différer.
PanneauÀ quoi il sert
Viewportla scène en 3D. World View montre un aperçu façon jeu ; Editor View ajoute les lignes de débogage. La touche G passe de l'une à l'autre.
Scene Hierarchyles entités, rangées en calques : un File Layer par fichier .layer (au moins un par projet), des Logical Layers pour ranger. Un double-clic rend un calque actif : il passe en rouge, et les nouveaux objets y tombent. Décocher Export en fait un calque de référence, qui n'est pas exporté.
Entity Propertiesles propriétés de la sélection, modifiables pour plusieurs objets à la fois. En bas à gauche.
Tool Propertiesles réglages de l'outil actif : la brosse, ou le choix d'un prefab, avec un champ de recherche.
Map Propertiesles réglages du projet. En bas à droite.
Settingsles réglages de Terry lui-même, pas de la carte : autosauvegarde, options de BOB, surcouches, caméra, environnement d'aperçu (bouton Set As Default For Project Type).
Project Errorsce qui empêcherait la carte de marcher en jeu.
Barres d'outilspar View → Toolbars, ou par le menu Tools. Basic : les outils 1 à 4, les quatre modes de peinture, Show in Explorer, World / Editor View, et l'export : le globe avec une flèche, Process with BOB (Export Map dans le premier Warhammer). Puis Advanced, et Entity Creation (Visual, Logical, Other).

Les fichiers d'un projet§

Dans ces XML, une propriété porte le nom qu'elle affiche dans Terry, en minuscules, les espaces devenus des soulignés : Lighting File s'écrit lighting_file. Pratique pour retrouver dans un fichier ce que vous avez réglé dans la fenêtre.

Les coordonnées§

Se déplacer : caméra et raccourcis§

Ces raccourcis viennent de la documentation de CA. Ceux du clavier figurent dans le fichier des raccourcis du kit de Warhammer III (working_data/Terry/local/keyboard.xml) ; ceux de la souris, dans les pages de CA et les bulles d'aide du kit (working_data/Terry/status_tooltips.xml). Ctrl+S et Ctrl+Maj+S manquent : le fichier liste « enregistrer sous » sans touche, et « enregistrer » pas du tout.

Aide-mémoire : clavier et sourisle clavier d'après keyboard.xml et CA ; la souris d'après CACaméraWASDse déplacer · Maj : plus viteQEpivoterCXmonter · descendreRvue du ciel, au centreZzoom sur la sélectionLettres d'un clavier QWERTY. Sur AZERTY, essayez les deux :W A S D, puis Z Q S D.Outils et vue1234sélection · déplacement · rotation · échelleTabéditer l'entité5aligner le terrain sous la sélectionMaj+5le monterAlt+5l'abaisserGvue monde / d'éditionHrelief en couleursBrosse[]tailleOPopacité − / +NMautre valeur − / +,.palette ← / →Sourisclic gauche :sélectionner, peindreclic droit ou Échap :sortir de l'outil(en sélection : menu)molette : zoommilieuglisser : déplacerAlt+ milieu : pivoterMaj+ milieu : monter, descendreCtrl+PProcess with BOB(ou le globe)Ctrl+Snon confirmé dans Warhammer IIIenregistrez par File → SaveAussi dans le fichier ; sens à vérifierMaj+Cchanger de caméraLrepère local ou mondeMaj+Tcoller et orienter au terrainMaj+2outil de pose
Les touches de Terry que le kit de Warhammer III déclare, et la souris selon CA. Les lettres sont celles d'un clavier QWERTY : voir l'encadré « Clavier AZERTY ». Ctrl+S n'y figure pas : enregistrez par le menu File.
TouchesAction
W A S D (Maj : plus vite) · Q / Ese déplacer · pivoter
C / X · R · Zmonter / descendre · vue du ciel, au centre · zoom sur la sélection
molette · bouton du milieu · Alt + milieu · Maj + milieuzoom · déplacer · pivoter · monter ou descendre
clic droit ou Échapquitter l'outil en cours
1 2 3 4 · Tabsélection, déplacement, rotation, échelle · éditer l'entité
Maj + glisser · Ctrl + glisserdupliquer · pivoter la sélection
Ctrl+G / Ctrl+Ugrouper / dégrouper
Ctrl+A · Ctrl+D · Ctrl+I · Ctrl+H · Ftout sélectionner · ne rien sélectionner · inverser la sélection · masquer · figer la sélection
[ / ] · O / P · N / M · , / .taille de la brosse · opacité − / + · « autre valeur » − / + · palette précédente / suivante
Maj maintenue · Alt + clic · Ctrl+Alt + sourislissage rapide · prélever une valeur · taille et rotation de la brosse
5 · Maj+5 · Alt+5aligner · monter · abaisser le terrain sous la sélection
H · Grelief en couleurs (topographie) · vue monde / vue d'édition
Maj+C · L · Maj+T · Maj+2changer de caméra (sans doute perspective ou orthographique) · repère local ou monde · coller et orienter au terrain · outil de pose (sens déduits des noms des commandes du fichier : à vérifier)
Ctrl+N · Ctrl+O · Ctrl+Pnouveau · ouvrir · Process with BOB
Ctrl+S · Ctrl+Maj+Senregistrer · enregistrer sous (non confirmés dans Warhammer III)

Deux commandes n'ont pas de touche par défaut : CopyCamera et PasteCamera. Elles copient et collent le point de vue par le presse-papiers, sous la forme camv3;œil x;y;z;cible x;y;z : de quoi comparer deux états d'un terrain sous le même angle. Pour leur en donner une, la commande ConfigureKeyset sert sans doute à régler les raccourcis (son libellé dans les menus reste à vérifier) ; les touches se rangent dans keyboard.xml.

Les modes de peinture et de création§

Terry travaille par modes : on choisit un mode, un outil, puis l'on peint ou l'on pose. Les quatre modes de peinture sont dans la barre Basic ; les modes de création, dans la barre Entity Creation et le menu Tools.

Les quatre modes de peintureHeightTerrain Height Paintingpeint le relief<projet>.height.<id>.tifAdd · Subtract · Absolute · Smooth · EraseTextureTerrain Texture Paintingpeint les textures, un canal chacune(grass01, mud01…)<projet>.blend.<id>.tifNormal · Smooth · Erase · Replaceflow bas : les textures se fondentForestTerrain Forest Paintingpeint la texture de forêt : des arbresau-dessus de 60 %<projet>.blend.<id>.tifcanal forest01 (tuile d'exemple du kit) ;déduit : le kit n'a pas de raster de forêt.un mode de texture « hybride », pour les forêts(CA)60 %OtherTerrain Painting (Other)remplace le type de sol logique calculéraster GroundTypenom du fichier à vérifierSet · Clearmême texture, deux types de solABLes gestes de la brosseclic gauchepeindreclic droitÉchapsortirMajlisser[]tailleOPopacitéCtrl+Alt+ souris : taille, rotationAlt+ clic : prélever (textures)
Les quatre modes de peinture de la barre Basic : ce que chacun peint, le fichier qu'il écrit et ses opérations (tool_state.xml du kit), puis les gestes de la brosse.

Le relief : Terrain Height Painting§

Les textures : Terrain Texture Painting§

Les forêts : Terrain Forest Painting§

On ne pose pas les arbres un à un : on peint la texture de forêt, et la forêt pousse là où cette texture dépasse 60 %.

Le sol logique : Terrain Painting (Other)§

Ce mode peint les types de sol logiques : ce que le jeu sait du sol, indépendamment de la texture que l'on voit.

Les objets : Entity Creation (Visual)§

La logique : Entity Creation (Logical)§

Le champ de bataille vu du cielATile map (vista)décor, jusqu'à 8 km du centreBVotre tuile 8 × 8CUsable Area = la tuile · 2 048 mDPlayable Area−1Alliance 1 · défenseur+0Alliance 0 · attaquant+EGJNo-GoI123FH0 bleu1 rouge sombredans le Terry de Warhammer III2016 : l'inverse. Fiez-vous au numéro, jamais à la couleur.Defensive Hillpolygone ferméDefensive Hillligne ouverte :plantage probable(CA)schéma, pas à l'échelle ; alliances aux couleurs de Terry
  1. Tile maple décor tout autour, emprunté à une vista ; dessiné jusqu'à 8 km du centre (CA).
  2. Votre tuile 8 × 8le terrain où l'on se bat, que vous peignez, au centre de la tile map.
  3. Usable Areale même carré que la tuile (B) : une tuile 8 × 8 mesure 2 048 m de côté (relevé sur la tuile d'exemple du kit) ; posée au centre, elle couvre exactement l'Usable Area, 2 048 m centrés sur le champ de bataille, seul lieu de la physique et du cheminement des unités (CA).
  4. Playable Areala zone jouable, où l'on donne les ordres de mouvement ; ses bords fixent d'où l'on fuit et arrive en renfort, et ceux de la minicarte (CA, Creating Zones) ; selon la page d'introduction de CA, ils bornent aussi la caméra.
  5. Deployment ZonesAlliance 0 = attaquant, 1 = défenseur ; dans le Terry de Warhammer III, 0 en bleu et 1 en rouge sombre (la documentation de 2016 donnait l'inverse) : fiez-vous au numéro. Chaque zone a sa région additive (+), créée avec elle (tutoriel) ; une région soustractive (−), facultative, en retire un morceau (CA).
  6. Points de capturepour une carte de domination : type domination 1, 2, 3 ; importance score ; de 80 × 80 à 180 × 180 (tutoriel).
  7. Lignes de renfortAI Hint attacker ou defender teleport reinforcement line : une ligne courte de deux points ; une vingtaine d'unités de long suffit (tutoriel).
  8. Procedural Exclusion Zoneposée entre la zone jouable et le bord de la tuile, pour alléger la carte : plus de végétation procédurale hors jeu, herbe mais aussi arbres des forêts ; repeignez à la main les forêts voulues (tutoriel).
  9. No-Goun polygone fermé qui marque une zone infranchissable (CA).
  10. Defensive Hillun AI Hint qui montre à l'IA une position défensive : un polygone fermé ; ouvert, plantage probable (CA).
Une carte de bataille vue du ciel : votre tuile au centre d'une tile map empruntée à une vista, et ce que l'on pose dessus (entités logiques, zone d'exclusion), repéré par des lettres.

Les outils avancés : Advanced et Other§

Une règle pour mesurer ; Snap BBox et Snap Verts pour aligner ; la grille et l'aimantation ; la caméra en perspective ou orthographique ; Sound Marker pour placer des sons ; Camera Bounds, qui borne la caméra de l'éditeur seulement, pas celle du jeu.

Plusieurs variantes d'une même carte§

Un calque peut porter un type d'export (catchment_01…). La colonne catchment_name de la table battles choisit alors la variante que le jeu charge. C'est ainsi qu'un même terrain donne une carte de domination et une bataille classique.

Première carte de bataille, pas à pas§

Ce pas-à-pas suit le tutoriel de Warhammer III du wiki tw-modding, complété par la documentation de CA. Deux conseils d'abord. Enregistrez souvent : CA prévient que Terry plante parfois. Et réglez l'autosauvegarde dans Settings (sur notre installation, elle était réglée à 15 minutes). Terry range ses autosauvegardes dans working_data/Terry/local/autosave/ et note ses erreurs dans working_data/Terry/local/terry_error_log.txt, dans le dossier du kit.

Une carte de bataille, ce sont deux projets Terry. La tuile est le terrain où l'on se bat, que vous peignez en détail ; la tile map est le décor qui l'entoure, dessiné jusqu'à 8 km (CA), que vous empruntez à une vista. Seul un carré de 2 048 m au centre, l'Usable Area, a la physique et le cheminement des unités (CA). La figure montre les deux projets l'un au-dessus de l'autre, avec leurs fichiers, les deux passages de BOB et la ligne de battles_tables qui relie le tout au jeu.

raw_data · ce que vous faitesLa tile mapterrain/battles/<carte>/<carte>.terry · tile_map.pngclimate_map.png · explicit_tilescréée une fois, après la tuile : Tools → Createbattle for tile…La tuileterrain/tiles/battle/<jeu de tuiles>/<carte>/<carte>.terry · .layer<carte>.height.<id>.tif<carte>.blend.<id>.tifce que vous peignez : relief, textures, objets,zonesexplicit_tiles : x,y= la place de la tuileBOB : 1. la tile mappuis 2. la tuileworking_data · ce que le jeu litLes sortiesterrain/battles/<carte>/ : tile_map.bmd,tile_list.bin, map_info.xml…terrain/tiles/battle/… :tile_height_map.compressed_map, blend0.dds…RPFM : la déclarerbattles_tables : key · type · specification= terrain/battles/<carte>/battle_environment · screenshot_path(image 3:1)battles_localised_name_<key>puis : le pack installé, sans la carte d'exempledu kit, coché au lanceur, en bataillepersonnalisée
Une carte de bataille : la tile map (le décor, créé une fois) place la tuile (ce que vous peignez) ; BOB compile la tile map puis la tuile ; RPFM la déclare dans battles_tables.
Une carte de bataille, geste par gesteenregistrez souvent, par le menu File : Terry plante parfois (CA)Terry : la tuile, puis la tile mapl'étiquette grise : le projet ouvert dans TerryCréer la tuilela tuileProject Wizard → New : une tuile de bataille1L'enregistrer aussitôtla tuileFile → Save As… : nom de la carte et jeu de tuilesen minuscules, taille 8x8, climat<carte>.terry.layer.tif2La peindrela tuilerelief, textures, forêts, puis les objets3Poser la logiquela tuileTools → Entity Creation (Logical) :une Playable Area, deux Deployment ZonesAlliance 0 · attaquantAlliance 1 · défenseurLe panneau Project Errors ne signale rien.4Créer la tile map : une fois suffitla tuileTools → Create battle for tile…tile_map.pngclimate_map.pngexplicit_tiles5Y poser votre tuilehors de Terrytile_map.png et climate_map.png : ceux d'une vista ;explicit_tiles : changez x,y (coin du carré noir)6BOB : la tile map, puis la tuileaprès chaque passage, bob.log se termine par Exit code: 0Un passage sur la tile mapla tile mapl'ouvrir, Process with BOB (Ctrl+P), puis la rechargerVotre tuile est à sa place.7Un passage sur la tuilela tuilela rouvrir ; dans Map Properties,décocher la génération de végétation legacy ; Ctrl+P8RPFM, puis le jeuLa déclarer avec RPFMle pack, une ligne de battles_tables, le nom, l'image9La testeren bataille personnalisée, le pack activé dans le lanceur10
Les dix gestes d'une première carte de bataille, dans l'ordre : dans Terry, la tuile puis la tile map ; deux passages de BOB, la tile map d'abord ; RPFM déclare la carte, et l'on teste en bataille personnalisée.
  1. Créez le projet. Dans le Project Wizard, sur l'onglet New, choisissez une tuile de bataille. Le libellé exact de ce choix n'est pas confirmé dans Warhammer III.
  2. Enregistrez-le aussitôt (File → Save As…) : la boîte demande le nom de la carte, en minuscules (un nom de dossier, pas le nom affiché en jeu) ; le jeu de tuiles, un nom de dossier à vous, en minuscules (le tutoriel, qui fait une carte de domination, l'appelle domination) ; la taille, 8x8, pour rester compatible avec les tile maps de Warhammer II ; le climat (qui règle notamment les herbes et les arbres). Laissez cochée la case du bas, comme le demande le tutoriel (son libellé n'est pas confirmé ici). Vérifiez : d'après la carte d'exemple du kit, la tuile se range dans raw_data/terrain/tiles/battle/<jeu de tuiles>/<carte>/. Le bouton Show in Explorer ouvre le dossier : un .terry, au moins un .layer, des .tif.
  3. Peignez le relief, les textures, les forêts, puis posez les objets. Pour alléger la carte, le tutoriel pose une Procedural Exclusion Zone entre la zone jouable et le bord de la tuile : plus d'herbe hors jeu, mais plus d'arbres non plus dans les forêts de cette bande ; il les repeint à la main. Vérifiez en World View (touche G), l'aperçu façon jeu, et avec H, le relief en couleurs.
  4. Posez la logique, par Tools → Entity Creation (Logical). Une Playable Area (la zone jouable) : de 2x2 à 3x3, conseille le tutoriel, sans préciser l'unité ; sans elle, le jeu la fixe entre 800 et 1 300 m selon le nombre d'unités, ou l'ajuste aux zones de déploiement, la plus grande des deux (CA). Deux Deployment Zones, chacune avec sa Deployment Zone Region additive : Alliance ID 0 pour l'attaquant, 1 pour le défenseur, Zone ID à 0. Dans Terry de Warhammer III, l'alliance 0 s'affiche en bleu et la 1 en rouge sombre (la documentation de CA de 2016 donnait l'inverse) : fiez-vous au numéro. Pour une carte de domination, des points de capture : type domination 1/2/3, importance score, de 80 × 80 à 180 × 180 ; le tutoriel ajoute à chaque zone de déploiement une seconde région, de type guerilla exclusion additive, pour le déploiement d'avant-garde (l'alliance adverse ne peut pas s'y déployer), et veille à ce qu'aucun joueur ne puisse se déployer en avant-garde sur un point de capture. Et des lignes de renfort : un AI Hint attacker ou defender teleport reinforcement line, une ligne courte de deux points ; une vingtaine d'unités de long suffit, selon le tutoriel. Vérifiez : les zones sont visibles dans la vue 3D, et le panneau Project Errors ne signale rien.
  5. Créez la tile map par Tools → Create battle for tile… : Terry crée son projet dans raw_data/terrain/battles/<carte>/. Une fois suffit, dit le tutoriel ; ensuite, vous travaillez dans les fichiers qu'elle a créés. Vérifiez : le dossier contient un .terry, tile_map.png, climate_map.png et explicit_tiles.
  6. Posez votre tuile dans la tile map. Dans ce dossier, remplacez tile_map.png et climate_map.png par ceux d'une vista existante, une tile map déjà faite qui servira de décor. Puis, dans explicit_tiles, changez les deux premiers nombres de la ligne x,y,chemin de la tuile,0 (voir juste après la liste) : x,y est le coin haut-gauche de votre tuile dans tile_map.png, en pixels. Une tuile 8 × 8 au centre d'une tile map de 64 × 64 se pose en 28,28 ; la carte d'exemple du kit a la sienne au même endroit.
  7. Compilez la tile map : ouvrez-la dans Terry, lancez File → Process with BOB (Ctrl+P, ou le globe de la barre Basic), puis rechargez-la. Vérifiez : votre tuile est à sa place.
  8. Compilez la tuile. Rouvrez-la. Dans Map Properties, décochez la génération de végétation legacy (dans le .terry, la propriété use_legacy_procedural_vegetation). Puis Process with BOB. La tile map passe toujours avant la tuile ; ensuite, quand vous retouchez la tuile, seule la tuile se réexporte.
  9. Déclarez la carte au jeu avec RPFM : voir la section suivante.
  10. Testez-la en bataille personnalisée, le pack activé dans le lanceur.

Par défaut, dit le tutoriel, explicit_tiles contient à peu près ceci :

3,3,terrain/tiles/battle/lzd_hills_infield/chaqua_pit,0

Changez seulement les deux premiers nombres. x,y se lisent en pixels de tile_map.png, x depuis la gauche, y depuis le haut : ouvrez l'image dans votre logiciel de dessin et pointez le coin haut-gauche du carré noir de la vista, soit 28,28 dans une tile map de 64 × 64 (tutoriel). Vérifiez que le chemin est celui de votre tuile, depuis terrain/, en barres obliques ; gardez le 0 final.

Poser la tuile dans la tile maptile_map.png d'une vista · 64 × 64 pixels00881616242432324040484856566464x →y ↓281282carré noir 8 × 8 : la place de votre tuileexplicit_tiles28,28,terrain/tiles/battle/<jeu de tuiles>/<carte>,012341x = la colonne, comptée depuis la gauche.2y = la ligne, comptée depuis le haut.3le chemin de votre tuile : vérifiez-le (depuis terrain/, enbarres obliques).4le 0 final du tutoriel : gardez-le.Lire x,youvrez l'image dans un logiciel de dessin et pointezle coin haut-gauche du carré noirLa carte d'exemple du kitelle peint sa tuile de la couleur de la tuile,(0, 255, 127), au même endroit,sans explicit_tiles.un passage de BOB sur la tile map, puis rechargez-la : votretuile est au centreà éviter : un chemin qui part de raw_data/, des barresinversées
Dans la tile map d'une vista, votre tuile prend la place du carré noir : explicit_tiles donne son coin haut-gauche en pixels, puis son chemin. Une tuile 8 × 8 au centre d'une tile map de 64 × 64 se pose en 28,28.

La carte d'exemple du kit, elle, pose sa tuile autrement : sa tuile (raw_data/terrain/tiles/battle/test_tiles/assembly_kit_example_tile/) déclare dans son .terry la couleur (0, 255, 127), et le tile_map.png de sa tile map, de 64 × 64 pixels, en porte un bloc de 28,28 à 35,35, sans explicit_tiles.

La déclarer dans le jeu avec RPFM, et la tester§

BOB a produit les fichiers du jeu. Il reste à les mettre dans un pack et à dire au jeu que la carte existe : c'est le rôle d'une ligne de la table battles_tables, d'un texte et d'une image. RPFM fait tout cela ; ses gestes de base sont dans le guide RPFM.

Une ligne, quatre renvoisbattles_tables : une ligne classic copiée, la clé changée d'abordbattles_tablesfichier jamais nommé data__keymonprefixe_ma_carteune clé à voustype · classicspecificationterrain/battles/ma_carte/barre finale comprisescreenshot_pathui/frontend ui/battle_map_images/ma_carte.pngl'espace est vouluteam_size_1 · 1team_size_2 · 1singleplayer · 1multiplayer · 1battle_environmentweather/battle/wh_day_clear_04.environment_groupLe nom (.loc)battles_localised_name_<key>ce que voit le joueurLa tile mapproduite par BOB,dans votre packL'image, 3:1dans le packL'ambianceà ne pas confondre avecbattle_environment_audiola taille des deux camps, etoù la carte est proposéePuis, du pack au jeuLe packsans la carted'exemple du kitPackFile → Installpuis activéau lanceurBataillepersonnaliséela carte, avec son nomet son image
Une ligne de battles_tables déclare la carte : sa clé donne le nom (en .loc), specification désigne la tile map, screenshot_path l'image, battle_environment l'ambiance. Puis le pack, sans la carte d'exemple du kit, s'installe, et la carte s'essaie en bataille personnalisée.
  1. Créez un pack et ajoutez-y le dossier working_data/terrain, comme le tutoriel, puis retirez-en tout ce qui n'est pas à vous : la carte d'exemple du kit (assembly_kit_example_tile_map, assembly_kit_example_tile, _tile_database/TILES/test_tiles_assembly_kit_example_tile.*) et tout fichier du jeu que vous y auriez extrait. Vérifiez dans RPFM qu'il ne reste que vos dossiers : la tile map, la tuile et son entrée _tile_database/TILES/<jeu de tuiles>_<carte>.*.
  2. Ajoutez une ligne à battles_tables : clic droit sur le pack → Create… → Create DB → battles_tables, un fichier à votre nom (jamais data__, qui remplacerait la table du jeu) ; copiez une ligne classic du jeu, Paste as New Row, et changez d'abord la clé (le guide RPFM). Vous gardez ainsi toutes les colonnes ; remplissez-les d'après le tableau ci-dessous.
  3. Ajoutez le texte battles_localised_name_<key> : c'est le nom que le joueur verra.
  4. Ajoutez l'image au chemin que donne screenshot_path : trois fois plus large que haute (tutoriel). L'espace de frontend ui est voulu.
  5. Enregistrez le pack, puis PackFile → Install dans RPFM, qui le copie dans le dossier data du jeu. Une image carrée du même nom que le pack lui sert de vignette (le tutoriel la prévoit pour le Workshop). Puis activez le pack dans le lanceur.
  6. Testez par une bataille personnalisée. Une carte de domination se teste en multijoueur, ou avec un mod de la communauté (voir le tutoriel de tw-modding).
Colonne de battles_tablesCe qu'elle reçoitExemple
keyla clé de votre carte : une clé à vous, jamais celle d'une carte du jeumonprefixe_ma_carte
typeclassic ou dominationclassic
specificationle dossier de la tile map, avec la barre finale, comme le tutoriel ; CA écrit le plus souvent terrain\battles\<carte>\ : si vous copiez une ligne de CA, gardez sa formeterrain/battles/ma_carte/
screenshot_pathl'image de la carte ; elle doit être dans le packui/frontend ui/battle_map_images/ma_carte.png
team_size_1, team_size_2la taille des deux camps1, 1
singleplayer, multiplayeroù la carte est proposée1, 1
battle_environmentl'ambiance : un fichier .environment_group de weather/battle/ (CA la laisse vide sur 715 de ses 1 216 lignes) ; à ne pas confondre avec battle_environment_audio, juste à côtéweather/battle/wh_day_clear_04.environment_group
catchment_namela variante d'export à charger (voir les modes, plus haut)le type d'export de vos calques ; sans type d'export, à vérifier (259 lignes de CA la laissent vide)

Le terrain d'une carte de campagne : ce qu'on sait§

Pour une carte de campagne, le kit ne livre rien : ni projet Terry, ni données brutes de terrain. C'est vrai du kit de Warhammer III comme de celui de Warhammer I. Pourtant, Terry sait ouvrir un projet de type campagne. ChaosRobie, l'auteur d'Immortal Empires Expanded, l'a prouvé : il a reconstitué la carte des Empires Immortels en projet Terry, et il a partagé ce projet avec la communauté. Le voici disséqué : c'est le plan à suivre.

ÉlémentCe qu'il est
le dossier raw_data/terrain/campaigns/<carte>/absent des kits : c'est lui qu'il faut créer
<carte>.terryle projet, en XML (version 27) : les réglages de la carte, une entité par région, nommée comme sa clé dans la base, et dix couches de terrain
<carte>.terry.userles réglages d'aperçu : sans lui, Terry ne montre ni eau ni arbres
rules.bob, deux fichiersla recette de BOB est dans le dossier parent, raw_data/terrain/campaigns/rules.bob : [Terrain] avec PrefabRoot = art\prefabs\campaign (valeur du projet de ChaosRobie ; battle pour une bataille), TileDatabase = terrain\tiles\campaign\_tile_database, HeightPatch = true… ; celui du dossier de la carte ne contient que [Copy] et [+AssetGraph], qui recopient le projet brut dans le dossier retail du kit à chaque passage. Qui ne recrée que le dossier de la carte perd la recette.
tile_map.pngla carte des tuiles : terre, mer, côtes, falaises, routes, une couleur par type
dix rasters .tifrelief, fond marin, mélange des textures, couleurs, brouillard, arbres, corruption, neige, visibilité des parcelles
un .layer par régionles objets posés : décors, montagnes, eau
Le projet de campagne, dossier par dossierd'après le projet partagé par ChaosRobieraw_data/terrain/campaigns/absent du kit : à créerrules.bobla recette de BOB, dans le dossier parent[Terrain]PrefabRoot = art\prefabs\campaignTileDatabase = terrain\tiles\campaign\_tile_databaseHeightPatch = true…<carte>/le dossier de la carte, à créer aussi<carte>.terryle projet, en XML (version 27) : dix couches de terrain,une entité par région, nommée comme sa clé dans la base<carte>.terry.userles réglages d'aperçu : sans lui, ni eau ni arbrestile_map.pngune couleur par type : terre, mer, côte, falaise, route*.tifdix rasters : relief, fond marin, mélange des textures,couleurs, brouillard, arbres, corruption, neige,visibilité des parcelles*.layerun par région : les objets posés,décors, montagnes, eaurules.bob[Copy][+AssetGraph]ne fait que recopier le projet brutdans le dossier retail du kit, à chaque passageQui ne recrée que <carte>/ perd la recette.Une région de plus :une entité dans le .terry, et un .layer de plus.
Le kit ne livre aucun projet de campagne : on le reconstitue sur le modèle de celui de ChaosRobie. La recette de BOB est dans le rules.bob du dossier parent ; celui du dossier de la carte ne fait que recopier le projet.

Retenez que le projet est lié à la liste des régions de la carte : une région de plus, c'est une entité et un calque de plus. La moitié logique, elle (régions, sols, routes, villes), se fait dans CAIME (Campaign AI Map Editor), l'éditeur du Campaign Map Toolkit : le guide CAIME.

La taille des rasters se déduit du nombre d'hex§

Toutes les résolutions sont proportionnelles au nombre d'hex de la carte, celui de CAIME (relevé sur le projet de ChaosRobie et appliqué à notre carte). La dernière colonne donne l'exemple de notre carte, 400 × 440 hex.

CouchesPixels par hexExemple, 400 × 440 hex
Height, HeightSea, BlendCampaign, ColorOverlay, ColorOverlaySea8 (plus 4 lignes)3200 × 3524
HeightShroud4 (plus 2 lignes)1600 × 1762
CampaignTree, CorruptionMask, SnowMask, et tile_map.png2 (plus 1 ligne)800 × 881
PatchVisibilityMaskune case par parcelle de p pixels de la carte de tuiles, p = plafond(plus grand côté / 128)114 × 125

Le calcul : 400 × 8 = 3200 pixels de large, 440 × 8 + 4 = 3524 de haut. Pour les parcelles, la carte de tuiles fait 800 × 881 : p = plafond(881 / 128) = 7, et l'on compte les parcelles entières (800 / 7 donne 114, 881 / 7 donne 125).

Un hex, quatre résolutions8 × 8 pixels+ 4 lignes en toutHeightHeightSeaBlendCampaignColorOverlayColorOverlaySea4 × 4 pixels+ 2 lignes en toutHeightShroud2 × 2 pixels+ 1 ligne en toutCampaignTreeCorruptionMaskSnowMasktile_map.pngPatchVisibilityMaskune case par parcelle de p × p pixelsde tile_map.png :p = plafond(plus grand côté / 128)ici p = 7 : une parcelle ≈ 3,5 hexNotre carte : 400 × 440 hex8 px par hex, + 4 lignes3200 × 35244 px par hex, + 2 lignes1600 × 17622 px par hex, + 1 ligne800 × 881p = plafond(881 / 128) = 7114 × 125800 / 7 → 114 ; 881 / 7 → 125 : les parcelles entièresGrille trop petite : le sol dans un coinseulement ; ailleurs, les routes et le ciel autravers.Relevé sur le projet de ChaosRobie, appliqué à notre carte.
Les rasters d'un projet Terry de campagne se dimensionnent sur le nombre d'hex : 8, 4 ou 2 pixels par hex, plus quelques lignes ; PatchVisibilityMask compte des parcelles. Vue schématique d'un hex.

Campagne : conventions, ordre de BOB et limites§

Les conventions§

Elles ont été établies sur notre chantier et sur le projet de ChaosRobie ; CA ne les documente pas.

Mer, côte, routestile_map.png : 1 hex = 2 × 2 pixelsLa mersea · 83, 141, 213en jaune : la côte(voir dessous)0plan d'eau à 0, pivot dans la cartefond sous 0 partout, même sous la terreLa côteune bande d'un hex ; chacun,1 à 3 voisins de mer d'un seultenantune pointe d'un hex :« Failed to find tile »,un trousea_coast · 255, 255, 0cliff_gen · 253, 3, 1rivage (sea_coast) ou falaise (cliff_gen) : même règle.par hex entiers : 0 échec ; tracée au pixel : 148 (notre carte)Les routesun bloc plein de 2 × 2 pixelspar hexun trait d'un pixel : destrousAprès chaque passage de BOB, comptez les « Failed to findtile » de bob_warnings.log : objectif 0.Établi sur notre chantier et le projet de ChaosRobie ; CA ne ledocumente pas.
Dans tile_map.png, chaque hex est un bloc de 2 × 2 pixels : la mer se déclare par sa couleur, la côte se peint en une bande d'un hex, les routes en blocs pleins. Tout écart donne des « Failed to find tile », donc des trous.

L'ordre des passages§

Le tutoriel de tw-modding sur les cartes de campagne donne cet ordre ; le détail, qui fait foi, est dans le guide BOB :

  1. Le relief d'abord : les étapes suivantes en dépendent et le lisent dans votre pack. Mettez-le dans votre pack, dans data du jeu, puis fermez et rouvrez BOB.
  2. La tile map : de nouveau dans le pack, puis fermez et rouvrez BOB.
  3. La global tile map (routes et falaises).
  4. global_props.bin, les objets posés : à refaire chaque fois qu'une région est ajoutée ou retirée (BOB lit alors le map.hex de CAIME) ; jusqu'à dix minutes sur une grande carte, selon le tutoriel.
Campagne : l'ordre des passagespour une carte que la base du jeu connaîtCarte inconnue de la base du jeu (celle des packs de CA) : BOB nelance que 6 actions sur 15, sans message. Un témoin, puis lacommunauté.Le reliefles étapes suivantes le lisent dans votre packfull_height_map.ddsfull_logic_map.compressed_map1Le relief dans votre pack, le pack dans le dossier data du jeu,puis fermer et rouvrir BOBLa tile maptile_list.bintile_mask.ddspatch_mask.dds2La tile map dans votre pack, puis fermer et rouvrir BOBLa global tile maproutes et falaises, tirées de la tile map de votre packglobal_map/tile_list.bin3Les objets posésBOB lit le map.hex de CAIME, à jour avec la base ; àrefaire à chaque région ajoutée ou retirée ; jusqu'àdix minutes, selon le tutorielglobal_props.bin4Generate Camera Height Map : cette action fait planter BOB ;camera_heightmap.png se fabrique à part (le tutoriel : uneapproximation tirée du relief, mise à l'échelle).
L'ordre du tutoriel de carte de campagne de tw-modding. BOB lit les packs du dossier data du jeu : après le relief, puis après la tile map, le pack y va, puis l'on ferme et rouvre BOB ; depuis Terry, chaque Process with BOB démarre un nouveau BOB.

Depuis Terry, chaque Process with BOB démarre un nouveau BOB. Après chaque passage, lisez bob_warnings.log, dans assembly_kit/binaries/, et comptez les « Failed to find tile » : chacun est un trou dans le terrain. Vérifiez aussi bob.log : sa première ligne annonce le nombre d'actions choisies (N action(s) were selected for execution.), et chaque action terminée a sa ligne (STATUS: Finished) ; combien en attendre : voir les limites, ci-dessous. Enfin, regardez dans working_data/terrain/campaigns/<carte>/ : le relief compilé (full_height_map.dds), tile_list.bin et global_props.bin.

Les limites connues§

Une campagne, deux terrainsLa zone jouable de campagnecampaign_map_playable_areasterrain_folder = <dossier>Le terrain de campagneterrain/campaigns/<carte>/le relief, les tuiles et lesobjets de la carteLe terrain de batailleterrain/battles/<dossier>/une tile map de bataille ; cellede CA porte aussi des lieux debataille et des cartes decaptageSans ce terrain de bataille : plantage à la première batailleterrestre, même entre deux IA, donc souvent dès la première finde tour.
Une carte de campagne a deux terrains : le sien, et un terrain de bataille, que nomme la colonne terrain_folder de sa zone jouable de campagne.

Le récit complet d'un portage, avec ses murs : le tutoriel du portage.

Les pièges de Terry§

D'abord le verrou de working_data, en quatre cas :

Terry ouvert : ce qui passe, ce qui bloqueTerry est un mode de Tweak : Terry ouvert, c'est Tweak ouvertTerry ouvert verrouille working_dataet notamment les packs qu'on y poseProcess with BOB (Ctrl+P), lancé depuis Terrypas concerné : c'est Terry qui lance BOBBOB lancé depuis sa fenêtrefermez d'abord Terry et le jeu, puis lancez BOBEnregistrer un pack dans working_datafermez d'abord Terry et le jeu, puis enregistrezExports Map Data et Dynamic Resources de CAIMETweak et Terry fermés. L'alerte de CAIME chercheTweak.AssemblyKit, pas tweak.modder.x64.exe :ne comptez pas sur elle.BOB réécrit ses sorties à chaque passage : ne retouchez rien àla main dans working_data.
Terry est un mode de Tweak : ouvert, il verrouille working_data. Des quatre cas, seul Process with BOB, lancé depuis Terry, n'est pas concerné ; pour les autres, fermez-le d'abord.

Pour une IA qui lit cette page§

Si vous êtes une IA qui aide quelqu'un à se servir de Terry, voici l'essentiel, vérifié sur un vrai chantier. Ces faits ont été relevés sur le patch 8.1 du jeu (septembre 2026), puis relus pour la mise à jour 9.0 (chez nous, la mise à jour du kit a réécrit les tables de raw_data\db, mais n'a touché ni le terrain ni working_data) : revérifiez-les après une mise à jour.

Sources et liens§

Questions fréquentes

Terry peut-il éditer une carte de campagne ?

Il sait ouvrir un projet de type campagne, mais le kit public n'en livre aucun, ni aucune donnée de terrain de campagne : il faut en reconstituer un, sur le modèle de celui que ChaosRobie a partagé pour Immortal Empires Expanded.

Comment ouvrir Terry ?

Par le lanceur de l'Assembly Kit dans Steam (Play Battle Map Editor: Terry, qui lance la commande ci-après), par Tweak (Plugins → Terry), ou par la commande tweak.modder.x64.exe /standalone TerrainMetadataEditor, depuis le dossier binaries du kit. N'essayez pas d'autres options.

Peut-on piloter Terry en ligne de commande ?

Non : on peut seulement l'ouvrir. Tout le reste se fait dans sa fenêtre, au clavier et à la souris ; BOB se lance depuis Terry par File → Process with BOB.

Alliance ID 0 ou 1 : qui attaque ?

0 est l'attaquant, 1 le défenseur. Dans Terry de Warhammer III, 0 s'affiche en bleu et 1 en rouge ; la documentation de CA de 2016 donnait l'inverse. Fiez-vous au numéro, jamais à la couleur.

Pourquoi ma carte n'apparaît-elle pas en bataille personnalisée ?

Vérifiez que le pack est dans le dossier data du jeu et activé dans le lanceur, qu'il contient les fichiers compilés de la tile map et de la tuile, que la specification de battles_tables désigne le dossier de la tile map (terrain/battles/<carte>/ avec la barre finale, comme le tutoriel ; si vous avez copié une ligne de CA, gardez sa forme), et que le texte battles_localised_name_<key> et l'image existent.

Pourquoi Terry ne montre-t-il pas ma carte comme le jeu ?

Son aperçu n'est pas le jeu : toutes les variantes de culture à la fois, des sphères blanches à la place des décalques, pas les textures propres à la carte, une eau rendue autrement. Les forêts de la carte des arbres ne s'affichent que si l'option show_campaign_tree_map est active dans les Settings, et seulement pour les familles d'arbres que la base du kit connaît. La fidélité se juge en jeu.

Pourquoi BOB ne compile-t-il qu'une partie du terrain de ma carte de campagne neuve ?

Un passage complet sur un terrain de campagne compte 15 actions (chez nous, environ une minute une fois le relief compressé, 25 minutes la première fois). Pour une carte que la base du jeu (celle des packs de CA) ne connaît pas, BOB n'en lance que 6, sans message ; l'ajouter à la base du kit ou à un pack de mod n'y change rien. Nous ne connaissons pas de voie officielle pour lever cette limite : faites un témoin, puis demandez à la communauté.

Terry plante à l'ouverture de mon projet de campagne : que faire ?

Tant qu'aucun terrain compilé n'existe pour cette carte, Terry plante en l'ouvrant en 3D : décochez 3D View dans la boîte d'ouverture (Open…).

Faut-il fermer Terry avant de lancer BOB ?

Avant de lancer BOB depuis sa fenêtre, ou d'enregistrer un pack dans working_data, fermez Terry et le jeu : Terry ouvert verrouille working_data. Process with BOB, lancé depuis Terry, n'est pas concerné.

Terry a planté : où regarder ?

Dans le dossier working_data/Terry/local du kit : terry_error_log.txt, où Terry note ses erreurs, et le dossier autosave, où il range ses autosauvegardes (toutes les 15 minutes sur notre installation ; le délai se règle dans les Settings). Enregistrez souvent : CA prévient que Terry plante parfois.

Ma tuile n'apparaît pas dans la tile map : que vérifier ?

La ligne de explicit_tiles : x,y en pixels de tile_map.png, x depuis la gauche, y depuis le haut, au coin haut-gauche du carré noir de la vista ; un chemin qui part de terrain/, en barres obliques, jusqu'au dossier de la tuile ; le 0 final. Puis lancez Process with BOB sur la tile map et rechargez-la dans Terry, comme le demande le tutoriel. Lisez enfin bob_warnings.log, dans le dossier binaries du kit.

Les armées se déploient au mauvais endroit : pourquoi ?

Vérifiez l'Alliance ID des deux zones de déploiement : 0 pour l'attaquant, 1 pour le défenseur, quelle que soit leur couleur. Chaque zone a sa Deployment Zone Region additive, Zone ID à 0. Puis refaites le passage de BOB sur la tuile et remettez ses fichiers dans le pack.

Où trouver une vista ?

Le kit de Warhammer III n'en livre pas. Le tutoriel de tw-modding pour Warhammer III en fournit, tirées de Warhammer II ; la page Custom Vistas du même wiki, écrite pour Warhammer II, explique comment en faire une à partir de celles du kit de Warhammer II (raw_data/terrain/vistas). D'une vista, vous reprenez tile_map.png et climate_map.png, que vous posez dans le dossier de votre tile map.

Ce guide en texte brut (Markdown), pour les IA et la lecture hors ligne

Ce guide est communautaire

Une erreur, un piège vécu, une astuce ou un outil plus récent : dites-le, et chaque correction sera vérifiée, puis ajoutée avec sa source.

Proposer une idée
↑ Sommaire