La cible est ${nonIncarnee ? 'non incarnée' : 'une blurette'}.
+    //       Il est impossible de l'atteindre.`,
+    //     whisper: ChatMessage.getWhisperRecipients("GM")})
+    // }
+
     if (!await this.accorderEntite('avant-attaque')) {
       return;
     }
@@ -729,7 +777,7 @@ export class RdDCombat {
     if (arme) {
       this.attacker.verifierForceMin(arme);
     }
-    this.verifierDistance(rollData)
+    await this.proposerAjustementTirLancer(rollData)
 
     const dialog = await RdDRoll.create(this.attacker, rollData,
       {
diff --git a/module/rdd-compendium-organiser.js b/module/rdd-compendium-organiser.js
index 56f9a08a..23cac6c7 100644
--- a/module/rdd-compendium-organiser.js
+++ b/module/rdd-compendium-organiser.js
@@ -1,5 +1,4 @@
 import { SYSTEM_RDD } from "./constants.js";
-import { Misc } from "./misc.js";
 
 export class RddCompendiumOrganiser {
   static init() {
@@ -17,7 +16,7 @@ export class RddCompendiumOrganiser {
   }
 
   static async setEntityTypeName(pack, element) {
-    const label = Misc.getEntityTypeLabel(await pack.getDocument(element.dataset.documentId));
+    const label = RddCompendiumOrganiser.getEntityTypeLabel(await pack.getDocument(element.dataset.documentId));
     RddCompendiumOrganiser.insertEntityType(element, label);
   }
 
@@ -27,4 +26,16 @@ export class RddCompendiumOrganiser {
     }
   }
 
+  
+  static getEntityTypeLabel(entity) {
+    const documentName = entity?.documentName
+    const type = entity?.type 
+    if (documentName === 'Actor' || documentName === 'Item') {
+      const label = CONFIG[documentName]?.typeLabels?.[type] ?? type;
+      return game.i18n.has(label) ? game.i18n.localize(label) : t;
+    }
+    return type;
+  }
+
+
 }
\ No newline at end of file
diff --git a/module/rdd-main.js b/module/rdd-main.js
index cfb87b59..d7466074 100644
--- a/module/rdd-main.js
+++ b/module/rdd-main.js
@@ -150,11 +150,14 @@ Hooks.once("init", async function () {
   /* -------------------------------------------- */
   game.socket.on(SYSTEM_SOCKET_ID, sockmsg => {
     console.log(">>>>> MSG RECV", sockmsg);
-
-    RdDUtility.onSocketMessage(sockmsg);
-    RdDCombat.onSocketMessage(sockmsg);
-    ChatUtility.onSocketMessage(sockmsg);
-    RdDActor.onSocketMessage(sockmsg);
+    try {
+      RdDUtility.onSocketMessage(sockmsg);
+      RdDCombat.onSocketMessage(sockmsg);
+      ChatUtility.onSocketMessage(sockmsg);
+      RdDActor.onSocketMessage(sockmsg);
+    } catch(e) {
+      console.error('game.socket.on(SYSTEM_SOCKET_ID) Exception: ', sockmsg,' => ', e)
+    }
   });
 
   /* -------------------------------------------- */
diff --git a/module/rdd-utility.js b/module/rdd-utility.js
index 1d3632dc..80be7814 100644
--- a/module/rdd-utility.js
+++ b/module/rdd-utility.js
@@ -112,7 +112,6 @@ export class RdDUtility {
   static async preloadHandlebarsTemplates() {
     const templatePaths = [
       //Character Sheets
-      'systems/foundryvtt-reve-de-dragon/templates/actor-creation-sheet.html',
       'systems/foundryvtt-reve-de-dragon/templates/actor-sheet.html',
       'systems/foundryvtt-reve-de-dragon/templates/actor-creature-sheet.html',
       'systems/foundryvtt-reve-de-dragon/templates/actor-entite-sheet.html',
@@ -242,6 +241,7 @@ export class RdDUtility {
       'systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html',
       'systems/foundryvtt-reve-de-dragon/templates/chat-description.html',
       'systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.html',
+      'systems/foundryvtt-reve-de-dragon/templates/chat-info-distance.html',
       'systems/foundryvtt-reve-de-dragon/templates/chat-demande-defense.html',
       'systems/foundryvtt-reve-de-dragon/templates/chat-demande-attaque-particuliere.html',
       'systems/foundryvtt-reve-de-dragon/templates/chat-demande-attaque-etotal.html',
@@ -750,7 +750,12 @@ export class RdDUtility {
     });
 
     // gestion bouton tchat Acheter
-    html.on("click", '.button-acheter', event => DialogItemAchat.onButtonAcheter(event));
+    html.on("click", '.button-acheter', event => {
+      const venteData = DialogItemAchat.venteData(event.currentTarget);
+      if (venteData) {
+        DialogItemAchat.onAcheter(venteData);
+      }
+    });
     html.on("click", '.button-creer-acteur', event => RdDNameGen.onCreerActeur(event));
 
     // Gestion du bouton payer
@@ -888,11 +893,6 @@ export class RdDUtility {
   /* -------------------------------------------- */
   static async confirmerSuppressionItem(sheet, item, htmlToDelete) {
     const itemId = item.id;
-    if (Monnaie.isSystemMonnaie(item, sheet.actor.items)) {
-      ui.notifications.warn("Suppression des monnaies de base impossible");
-      return;
-    }
-    
     const confirmationSuppression = {
       settingConfirmer: "confirmation-supprimer-" + item.getItemGroup(),
       content: `Etes vous certain de vouloir supprimer: ${item.name}?
`,
diff --git a/templates/chat-info-distance.html b/templates/chat-info-distance.html
new file mode 100644
index 00000000..8cc89e5b
--- /dev/null
+++ b/templates/chat-info-distance.html
@@ -0,0 +1,9 @@
+Ajustement de tir/lancer  proposé de {{total}} 
+
+  {{defender.name}} est à une distance indicative de {{distance}} mètres. 
+  {{log defender}}
+  Portée {{portee.msg}} pour l'arme {{rollData.arme.name}} : {{portee.diff}} 
+  De taille {{taille.msg}}: {{taille.diff}} 
+  Mouvement {{activite.msg}}: {{activite.diff}} 
+ 
diff --git a/templates/dialog-item-achat.html b/templates/dialog-item-achat.html
index 3363a358..c54eaf55 100644
--- a/templates/dialog-item-achat.html
+++ b/templates/dialog-item-achat.html
@@ -45,38 +45,38 @@
     
   
 
-  {{#if (eq item.type 'nourritureboisson')}}
-  
-    Si vous souhaitez {{#if item.system.boisson}}boire{{else}}manger{{/if}}:
-  
+  {{#if (and (eq item.type 'nourritureboisson') (eq acheteur.type 'personnage'))}}
+    Si vous souhaitez {{#if item.system.boisson}}boire{{else}}manger{{/if}}:
 
-  {{#if item.system.sust}}
-   Cette {{#if item.system.boisson}}boisson{{else}}nourriture{{/if}} vous apportera {{totalSust}}  de sustantation.
-   {{/if}}
-   {{#if item.system.boisson}}
-   {{#if item.system.alcoolise}}
-     C'est une boisson alcoolisée de force {{item.system.force}}, vous effectuerez un jet d'éthylisme.
-     {{/if}}
-     Cette boisson vous apportera {{totalDesaltere}}  unités d'eau.
-   
-   {{/if}}
-   {{#if (gt item.system.qualite 0)}}
-   {{#if (gt item.system.qualite cuisine.system.niveau)}}
-   La qualité du plat est telle qu'un jet de Goût/Cuisine à {{numberFormat item.system.qualite decimals=0 sign=true}}
-     vous permettra un jet de moral heureux.
-   {{/if}}
-   {{/if}}
-   
-   {{#if (or (lt item.system.qualite 0) (lt item.system.exotisme 0))}}
-   
-     Pour surmonter {{#if (lt item.system.qualite 0)}}le mauvais goût{{else}}l'exotisme{{/if}}, vous devez effectuer un jet de Volonté/Cuisine à {{numberFormat (min item.system.exotisme item.system.qualite) decimals=0 sign=true}}.
-   En cas d'échec, voulez-vous vous forcer à manger (et subir un jet de moral en situation malheureuse)? 
-     
-   
-   {{/if}}
+    {{#if item.system.sust}}
+      Cette {{#if item.system.boisson}}boisson{{else}}nourriture{{/if}} vous apportera
+        {{totalSust}} 
+        de sustantation.
+    {{/if}}
+    {{#if item.system.boisson}}
+      
+        {{#if item.system.alcoolise}}
+          C'est une boisson alcoolisée de force {{item.system.force}}, vous effectuerez un jet d'éthylisme.
+        {{/if}}
+        Cette boisson vous apportera {{totalDesaltere}}  unités d'eau.
+      
+    {{/if}}
+    {{#if (gt item.system.qualite 0)}}
+      {{#if (gt item.system.qualite cuisine.system.niveau)}}
+      La qualité du plat est telle qu'un jet de Goût/Cuisine à {{numberFormat item.system.qualite decimals=0 sign=true}}
+        vous permettra un jet de moral heureux.
+      {{/if}}
+    {{/if}}
+    
+    {{#if (or (lt item.system.qualite 0) (lt item.system.exotisme 0))}}
+      
+        Pour surmonter {{#if (lt item.system.qualite 0)}}le mauvais goût{{else}}l'exotisme{{/if}}, vous devez effectuer un jet de Volonté/Cuisine à {{numberFormat (min item.system.exotisme item.system.qualite) decimals=0 sign=true}}.
+      En cas d'échec, voulez-vous vous forcer à manger (et subir un jet de moral en situation malheureuse)? 
+        
+      
+    {{/if}}
   {{/if}}
 
   {{#if isVente}}