# RP-02 — Clé dorée et pack personnel — beta.121 Contrat du 17 septembre 2026, branche `codex/resourcepack-template-beta121`. Le créateur fournit `golden_wrench.png` et valide un bouton qui crée une copie personnelle complète, modifiable et jamais écrasée par les mises à jour. ## Résultat La clé dorée reprend exactement le PNG fourni, 16 × 16, sans conversion ni redessin. Le modèle reste un item plat `minecraft:item/handheld`. Empreinte : `a97570908db75caf8e6fc2f5ecabf12c54fd99bfea7be634df66c4310dca22af`. Le même fichier est fourni par le mod et par « Textures Sanctuary » ; désactiver le pack intégré conserve donc aussi la nouvelle clé. Dans **Options → Packs de ressources**, **Personnaliser Sanctuary** crée `resourcepacks/Sanctuary-Custom/`. Le bouton devient **Ouvrir ma copie**. La copie contient toutes les ressources client de Sanctuary : textures, modèles, étiquettes d'items, blockstates, sons, shaders, langues et remplacements Minecraft présents dans le pack intégré. Celui-ci prend priorité sur les assets de base lors de l'export. Un guide FR/EN, la licence et les crédits accompagnent la copie. Le joueur active sa copie avec les commandes natives et la place au-dessus des packs qu'il veut remplacer. Créer la copie ne change ni l'ordre ni la sélection. Une modification se recharge avec F3 + T ; désactiver le pack retrouve les ressources fournies par le mod. L'écran de sélection des datapacks n'est pas modifié. La copie est un **instantané**. Elle ne se synchronise pas avec les mises à jour : les fichiers personnalisés restent toujours intacts. Le guide recommande de supprimer les fichiers non personnalisés pour laisser les prochaines ressources du mod s'appliquer. Pour repartir d'un instantané récent, renommer le dossier existant puis créer une nouvelle copie. Aucun fichier utilisateur n'est écrasé. La copie s'effectue hors du fil de rendu, dans un dossier temporaire voisin, puis le résultat complet rejoint la liste native. Une erreur de copie est signalée par le bouton et le journal du jeu ; un chemin occupé par un fichier n'est pas remplacé. Aucune extraction au démarrage ni pendant les mises à jour. ## Distribution `./gradlew assembleResourceTemplate` produit `build/Sanctuary-Template-beta.121.zip`, un pack personnel complet à décompresser dans `resourcepacks/Sanctuary-Custom/`. `assemblePack` le produit aussi. `build/Sanctuary-Resource-Pack-beta.121.zip` reste l'export du pack graphique intégré ; son manifeste versionné contient 151 fichiers et les images historiques sont conservées. L'identifiant intégré `sanctuary:textures` reste stable et son activation reste contrôlée par le joueur. Le template ne contient pas tous les assets vanilla ni ceux des autres mods. Il ne contient pas les recettes, règles serveur ou sauvegardes. Il conserve les crédits et conditions des ressources d'origine. Aucune génération, aucun identifiant de bloc et aucun format de sauvegarde ne changent. ## Vérifications Le parcours `ResourceTemplate121ClientChecks` passe en **35 s** sur le client Minecraft 26.3 macOS, sans ouvrir de monde : - Bouton natif et disposition FR/EN aux échelles 2 et 3, captures relues. - Export complet de **1 202 fichiers**, empreintes identiques aux ressources sources après application des priorités du pack intégré. - PNG fourni vérifié par SHA-256 et affiché avec sa transparence. - Création sans changer la sélection ni l'ordre des packs. - Modification d'une texture et ajout d'un fichier personnel : aucun octet réécrit lors d'un second export ni au rechargement des ressources. - Priorité réelle de la texture personnalisée, puis retour à la clé fournie après désactivation. Activation et désactivation conservées à la redécouverte. - Chemin occupé par un fichier refusé sans le modifier ; aucun bouton ajouté à l'écran des datapacks. ```sh ./gradlew :sanctuary:runClientGameTest \ -PsanctuaryClientTests=true -PsanctuaryResourceTemplate121ClientTests=true \ -PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true ``` Marqueur `TEMPLATE121_PASS` dans `build/template121-client.log` ; captures et empreintes de la copie dans `build/template121-evidence/`. Le premier essai avait échoué dans l'aperçu du test qui créait un ItemStack avant connexion à un monde ; cet aperçu affiche maintenant directement la texture résolue. Le modèle plat existant n'est pas modifié. Pas d'essai Windows ni d'ouverture automatisée du gestionnaire de fichiers. Le GameTest serveur dédié reste exclu conformément au refus antérieur de son EULA. `./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest` passe en **2 min 10 s**, 126 tâches. Les sources JAR correspondent aux sources Java du dépôt. La comparaison avec beta.120 limite les différences de production aux deux nouvelles classes, au hook d'interface, aux libellés et aux ressources prévues (12 entrées). Aucun changement de gameplay, de données serveur ou de monde. Les packs normal/Test contiennent le même JAR Sanctuary, sans fixture ni sauvegarde. Le ZIP du template et l'export natif ont exactement les mêmes 1 202 fichiers et empreintes. Le pack intégré conserve ses 151 fichiers vérifiés. Reçu : `build/template121-artifact.json`. Artefacts locaux validés : - `Sanctuary-beta.121.mrpack` : 10261791 octets, SHA-256 `040d68f342155120fa21e0ffcdf34aa38e3225c78862960536622de53ed9fd9f`. - `Sanctuary-Test-beta.121.mrpack` : 10280716 octets, SHA-256 `7f5bbd4e13aea4c245d072725c094ca64826ee8debc8607623783c114d437685`. - `Sanctuary-Resource-Pack-beta.121.zip` : 3757952 octets, SHA-256 `bbf3c18ea6abc64d951911215975cb6c48c7fc5e0246f6e5f5192a3d061c211d`. - `Sanctuary-Template-beta.121.zip` : 4315131 octets, SHA-256 `6fad376c53474fa8bcb0a2e6ae4c13ea61ab91bdd78735be443032d485ed541a`. JAR Sanctuary : SHA-256 `4276f4fc9834805e3e6d12cd19adba7837e3007656b77f31d525c7b976f9925d`. ## Publication et installation La [release beta.121](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.121) est publiée depuis `d9b3dd6bedf32448f8c6e5bfa4da10cb69968bc7`. Tag et artefacts immuables, téléchargements publics vérifiés. Canal packwiz : `e3e6572da9288fbbcfa36bf6b7dd3aa0d1c54f5e`. Deux synchronisations isolées puis deux dans **Sanctuary Beta** réussissent. Un seul JAR Sanctuary beta.121 est actif ; le second passage est identique. Les **923 fichiers personnels et réglages suivis** restent inchangés, y compris les packs de ressources. Aucune copie personnelle n'est créée par la mise à jour : chaque joueur utilise le bouton quand il le souhaite. Aucun monde personnel ouvert. Copie préalable dans `sanctuary-backups/before-beta.121/` de l'instance existante ; reçus `build/template121-isolated.json` et `build/template121-prism.json`. - [Template personnel complet](https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.121/Sanctuary-Template-beta.121.zip). - [Pack normal](https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.121/Sanctuary-beta.121.mrpack). - [Pack de test](https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.121/Sanctuary-Test-beta.121.mrpack).