Minecraft21 janvier 2026 84 vues

Configuration Anti-Xray Paper : Guide complet pour serveur Minecraft

Configuration Anti-Xray Paper : Guide complet pour serveur Minecraft

Introduction à l'Anti-Xray

Qu'est-ce que le X-Ray ?

Le X-Ray est une technique de triche permettant aux joueurs de voir à travers les blocs solides pour localiser facilement les minerais, caves, bases cachées et autres structures. Cette triche peut être réalisée via des clients modifiés, des resource packs ou des mods.

Solution Paper

Paper intègre nativement un système anti-Xray performant qui fonctionne côté serveur. Contrairement aux plugins traditionnels, cette solution ne nécessite aucune installation supplémentaire et offre une protection robuste contre la majorité des techniques de X-Ray.

Avantages de la Solution Native

Aspect Description
Performance Optimisé au niveau du code serveur
Compatibilité Fonctionne avec tous les clients vanilla
Maintenance Mis à jour automatiquement avec Paper
Fiabilité Aucune dépendance externe
Configuration Personnalisable par monde/dimension

Fonctionnement Technique

Principe de Base

L'anti-Xray de Paper fonctionne en modifiant les données de chunks envoyées aux clients. Au lieu d'envoyer les véritables blocs, le serveur remplace certains blocs par des leurres jusqu'à ce que le joueur s'en approche suffisamment pour les révéler légitimement.

Processus de Révélation

Un bloc caché est révélé lorsqu'une des conditions suivantes est remplie :

  • Le joueur casse un bloc adjacent
  • Le joueur place un bloc adjacent
  • Un piston déplace un bloc adjacent
  • Une explosion détruit un bloc adjacent
  • L'eau ou la lave coule sur un bloc adjacent
  • Le bloc entre dans le champ de vision direct (raytracing activé)

Blocs Adjacents

Le système considère les 6 faces d'un bloc (haut, bas, nord, sud, est, ouest). Un bloc est considéré comme "exposé à l'air" si au moins une de ses faces touche un bloc transparent (air, verre, eau, etc.).


Modes de Fonctionnement

Paper propose deux modes distincts, chacun avec ses avantages et inconvénients.

Engine Mode 1 : Remplacement Simple

Ce mode remplace tous les blocs cachés (non exposés à l'air) par un bloc de remplacement unique, généralement la stone.

Fonctionnement :

Bloc original caché → Stone (ou bloc défini)
Bloc exposé à l'air → Reste inchangé

Avantages :

  • Faible impact sur les performances
  • Consommation mémoire minimale
  • Bande passante réseau réduite

Inconvénients :

  • Vulnérable aux X-Ray avancés qui filtrent la stone
  • Les joueurs expérimentés peuvent deviner les emplacements

Cas d'usage recommandé :

  • Serveurs avec ressources limitées
  • Grande population de joueurs
  • Serveurs créatifs ou semi-RP

Engine Mode 2 : Obfuscation Aléatoire

Ce mode remplace les blocs cachés par des blocs aléatoires choisis dans une liste configurable, créant un "bruit visuel" rendant le X-Ray inutile.

Fonctionnement :

Bloc original caché → Bloc aléatoire (diamond_ore, gold_ore, iron_ore, etc.)
Bloc exposé à l'air → Reste inchangé

Avantages :

  • Protection maximale contre tous les types de X-Ray
  • Impossible de distinguer les vrais minerais des faux
  • Décourage complètement l'utilisation de X-Ray

Inconvénients :

  • Impact plus élevé sur les performances
  • Consommation mémoire accrue
  • Bande passante réseau augmentée

Cas d'usage recommandé :

  • Serveurs survie compétitifs
  • Serveurs PvP/Faction
  • Serveurs où l'économie des ressources est importante

Comparaison Visuelle

Critère Mode 1 Mode 2
Protection Basique Maximale
CPU Faible Modéré
RAM Faible Modéré
Réseau Faible Modéré
Recommandé Casual Compétitif

Configuration Complète

Localisation du Fichier

Le fichier de configuration se trouve à :

config/paper-world-defaults.yml      # Configuration par défaut
<world>/paper-world.yml              # Configuration spécifique au monde

Structure de Configuration

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 2
    max-block-height: 64
    update-radius: 2
    lava-obscures: false
    use-permission: false
    hidden-blocks:
      - copper_ore
      - deepslate_copper_ore
      - raw_copper_block
      - gold_ore
      - deepslate_gold_ore
      - raw_gold_block
      - iron_ore
      - deepslate_iron_ore
      - raw_iron_block
      - coal_ore
      - deepslate_coal_ore
      - lapis_ore
      - deepslate_lapis_ore
      - mossy_cobblestone
      - obsidian
      - chest
      - diamond_ore
      - deepslate_diamond_ore
      - redstone_ore
      - deepslate_redstone_ore
      - clay
      - emerald_ore
      - deepslate_emerald_ore
      - ender_chest
    replacement-blocks:
      - chest
      - amethyst_block
      - andesite
      - budding_amethyst
      - calcite
      - coal_ore
      - deepslate_coal_ore
      - deepslate
      - deepslate_copper_ore
      - deepslate_diamond_ore
      - deepslate_emerald_ore
      - deepslate_gold_ore
      - deepslate_iron_ore
      - deepslate_lapis_ore
      - deepslate_redstone_ore
      - diorite
      - dirt
      - emerald_ore
      - granite
      - gravel
      - iron_ore
      - oak_planks
      - smooth_basalt
      - stone
      - tuff

Paramètres Détaillés

enabled

enabled: true

Active ou désactive l'anti-Xray. Mettre à false pour désactiver complètement.

engine-mode

engine-mode: 2

Définit le mode de fonctionnement (1 ou 2). Voir la section précédente pour les détails.

max-block-height

max-block-height: 64

Hauteur maximale (coordonnée Y) à laquelle l'anti-Xray s'applique. Au-dessus de cette valeur, aucune obfuscation n'est effectuée. Réduire cette valeur améliore les performances.

Valeurs recommandées :

  • Overworld : 64 (niveau de la mer)
  • Nether : 128 (hauteur totale)
  • End : 0 (désactivé, peu de minerais)

update-radius

update-radius: 2

Rayon de mise à jour des blocs lorsqu'un bloc est révélé. Une valeur de 2 signifie que les blocs dans un rayon de 2 blocs seront mis à jour.

Valeurs :

  • 1 : Performance maximale, risque de blocs non révélés
  • 2 : Équilibre recommandé
  • 3+ : Sécurité maximale, impact performance

lava-obscures

lava-obscures: false

Si activé, la lave est considérée comme un bloc opaque pour l'obfuscation. Utile pour le Nether mais peut causer des problèmes visuels.

use-permission

use-permission: false

Si activé, les joueurs avec la permission paper.antixray.bypass ne seront pas affectés par l'anti-Xray. Utile pour les administrateurs lors du debug.

hidden-blocks

hidden-blocks:
  - diamond_ore
  - emerald_ore
  # ...

Liste des blocs à cacher/obfusquer. Ces blocs seront remplacés lorsqu'ils ne sont pas exposés à l'air.

Mode 1 : Ces blocs sont remplacés par de la stone (ou le premier bloc de replacement-blocks).

Mode 2 : Ces blocs sont remplacés par un bloc aléatoire de la liste replacement-blocks.

replacement-blocks

replacement-blocks:
  - stone
  - deepslate
  - granite
  # ...

Liste des blocs utilisés comme remplacement.

Mode 1 : Seul le premier bloc de la liste est utilisé.

Mode 2 : Les blocs sont choisis aléatoirement dans cette liste.


Optimisation par Type de Serveur

Serveur Survie Vanilla

Configuration équilibrée pour une expérience survie classique.

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 2
    max-block-height: 64
    update-radius: 2
    lava-obscures: false
    use-permission: false
    hidden-blocks:
      - chest
      - coal_ore
      - deepslate_coal_ore
      - copper_ore
      - deepslate_copper_ore
      - diamond_ore
      - deepslate_diamond_ore
      - emerald_ore
      - deepslate_emerald_ore
      - gold_ore
      - deepslate_gold_ore
      - iron_ore
      - deepslate_iron_ore
      - lapis_ore
      - deepslate_lapis_ore
      - redstone_ore
      - deepslate_redstone_ore
    replacement-blocks:
      - chest
      - coal_ore
      - deepslate_coal_ore
      - copper_ore
      - deepslate_copper_ore
      - diamond_ore
      - deepslate_diamond_ore
      - emerald_ore
      - deepslate_emerald_ore
      - gold_ore
      - deepslate_gold_ore
      - iron_ore
      - deepslate_iron_ore
      - lapis_ore
      - deepslate_lapis_ore
      - redstone_ore
      - deepslate_redstone_ore
      - amethyst_block
      - andesite
      - budding_amethyst
      - calcite
      - deepslate
      - diorite
      - dirt
      - granite
      - gravel
      - smooth_basalt
      - stone
      - tuff

Serveur Faction/PvP

Configuration maximale pour environnements compétitifs où la triche doit être strictement empêchée.

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 2
    max-block-height: 320
    update-radius: 2
    lava-obscures: false
    use-permission: false
    hidden-blocks:
      - ancient_debris
      - chest
      - coal_ore
      - deepslate_coal_ore
      - copper_ore
      - deepslate_copper_ore
      - diamond_ore
      - deepslate_diamond_ore
      - emerald_ore
      - deepslate_emerald_ore
      - gold_ore
      - deepslate_gold_ore
      - iron_ore
      - deepslate_iron_ore
      - lapis_ore
      - deepslate_lapis_ore
      - nether_gold_ore
      - nether_quartz_ore
      - redstone_ore
      - deepslate_redstone_ore
      - trapped_chest
      - ender_chest
      - shulker_box
      - white_shulker_box
      - orange_shulker_box
      - magenta_shulker_box
      - light_blue_shulker_box
      - yellow_shulker_box
      - lime_shulker_box
      - pink_shulker_box
      - gray_shulker_box
      - light_gray_shulker_box
      - cyan_shulker_box
      - purple_shulker_box
      - blue_shulker_box
      - brown_shulker_box
      - green_shulker_box
      - red_shulker_box
      - black_shulker_box
      - barrel
      - dispenser
      - dropper
      - hopper
      - spawner
      - tnt
    replacement-blocks:
      - chest
      - coal_ore
      - deepslate_coal_ore
      - copper_ore
      - deepslate_copper_ore
      - diamond_ore
      - deepslate_diamond_ore
      - emerald_ore
      - deepslate_emerald_ore
      - gold_ore
      - deepslate_gold_ore
      - iron_ore
      - deepslate_iron_ore
      - lapis_ore
      - deepslate_lapis_ore
      - redstone_ore
      - deepslate_redstone_ore
      - amethyst_block
      - andesite
      - budding_amethyst
      - calcite
      - deepslate
      - diorite
      - dirt
      - granite
      - gravel
      - oak_planks
      - smooth_basalt
      - stone
      - tuff

Serveur Économique

Configuration ciblant les ressources de valeur pour protéger l'économie du serveur.

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 2
    max-block-height: 64
    update-radius: 2
    lava-obscures: false
    use-permission: false
    hidden-blocks:
      - diamond_ore
      - deepslate_diamond_ore
      - emerald_ore
      - deepslate_emerald_ore
      - gold_ore
      - deepslate_gold_ore
      - ancient_debris
      - chest
      - ender_chest
      - spawner
    replacement-blocks:
      - diamond_ore
      - deepslate_diamond_ore
      - emerald_ore
      - deepslate_emerald_ore
      - gold_ore
      - deepslate_gold_ore
      - coal_ore
      - deepslate_coal_ore
      - iron_ore
      - deepslate_iron_ore
      - copper_ore
      - deepslate_copper_ore
      - deepslate
      - stone
      - granite
      - diorite
      - andesite

Serveur Performance (Grande Population)

Configuration minimale pour serveurs avec beaucoup de joueurs où les performances sont critiques.

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 1
    max-block-height: 48
    update-radius: 1
    lava-obscures: false
    use-permission: false
    hidden-blocks:
      - diamond_ore
      - deepslate_diamond_ore
      - emerald_ore
      - deepslate_emerald_ore
      - ancient_debris
    replacement-blocks:
      - stone

Configuration par Dimension

Overworld (world)

Fichier : world/paper-world.yml

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 2
    max-block-height: 64
    update-radius: 2
    lava-obscures: false
    use-permission: false
    hidden-blocks:
      - chest
      - coal_ore
      - deepslate_coal_ore
      - copper_ore
      - deepslate_copper_ore
      - diamond_ore
      - deepslate_diamond_ore
      - emerald_ore
      - deepslate_emerald_ore
      - gold_ore
      - deepslate_gold_ore
      - iron_ore
      - deepslate_iron_ore
      - lapis_ore
      - deepslate_lapis_ore
      - redstone_ore
      - deepslate_redstone_ore
      - raw_copper_block
      - raw_gold_block
      - raw_iron_block
    replacement-blocks:
      - amethyst_block
      - andesite
      - budding_amethyst
      - calcite
      - chest
      - coal_ore
      - deepslate_coal_ore
      - copper_ore
      - deepslate_copper_ore
      - deepslate
      - diamond_ore
      - deepslate_diamond_ore
      - diorite
      - dirt
      - emerald_ore
      - deepslate_emerald_ore
      - gold_ore
      - deepslate_gold_ore
      - granite
      - gravel
      - iron_ore
      - deepslate_iron_ore
      - lapis_ore
      - deepslate_lapis_ore
      - oak_planks
      - redstone_ore
      - deepslate_redstone_ore
      - smooth_basalt
      - stone
      - tuff

Nether (world_nether)

Fichier : world_nether/paper-world.yml

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 2
    max-block-height: 128
    update-radius: 2
    lava-obscures: false
    use-permission: false
    hidden-blocks:
      - ancient_debris
      - chest
      - nether_gold_ore
      - nether_quartz_ore
      - gilded_blackstone
    replacement-blocks:
      - ancient_debris
      - basalt
      - blackstone
      - chest
      - gilded_blackstone
      - gravel
      - magma_block
      - nether_bricks
      - nether_gold_ore
      - nether_quartz_ore
      - netherrack
      - soul_sand
      - soul_soil

End (world_the_end)

Fichier : world_the_end/paper-world.yml

L'End contient peu de ressources à protéger. Une configuration minimale ou désactivée est généralement suffisante.

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 1
    max-block-height: 0
    update-radius: 2
    lava-obscures: false
    use-permission: false
    hidden-blocks:
      - chest
      - ender_chest
      - shulker_box
    replacement-blocks:
      - end_stone

Ou simplement désactivé :

anticheat:
  anti-xray:
    enabled: false

Impact sur les Performances

Métriques par Mode

Métrique Mode 1 Mode 2 Sans Anti-Xray
CPU (chunk gen) +5-10% +15-25% Baseline
RAM par chunk +0.1 KB +0.5-1 KB Baseline
Bande passante +2-5% +10-20% Baseline
Latence réseau Négligeable +1-5 ms Baseline

Facteurs Influençant les Performances

Nombre de hidden-blocks

Plus la liste est longue, plus le traitement est lourd.

# Léger (5-10 blocs)
hidden-blocks:
  - diamond_ore
  - emerald_ore
  - gold_ore
  - ancient_debris
  - chest

# Lourd (20+ blocs)
hidden-blocks:
  - coal_ore
  - deepslate_coal_ore
  - copper_ore
  - deepslate_copper_ore
  # ... 20+ entrées

max-block-height

Réduire cette valeur diminue significativement la charge.

# Performances optimales
max-block-height: 48

# Équilibré
max-block-height: 64

# Protection maximale (coûteux)
max-block-height: 320

update-radius

Chaque augmentation multiplie le nombre de blocs à vérifier.

# Rayon 1 : 6 blocs vérifiés
update-radius: 1

# Rayon 2 : 26 blocs vérifiés
update-radius: 2

# Rayon 3 : 98 blocs vérifiés
update-radius: 3

Optimisation des Performances

Pour serveurs à haute charge

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 1          # Mode le plus léger
    max-block-height: 48    # Limite basse
    update-radius: 1        # Rayon minimal
    hidden-blocks:          # Liste courte
      - diamond_ore
      - deepslate_diamond_ore
      - ancient_debris
    replacement-blocks:
      - stone

Monitoring des performances

Utilisez Spark pour analyser l'impact :

/spark profiler start
# Attendez quelques minutes pendant que les joueurs jouent
/spark profiler stop

Recherchez dans le rapport :

  • AntiXray dans les threads
  • ChunkSerializer pour l'impact sur la génération
  • PlayerConnection pour l'impact réseau

Dépannage et Problèmes Courants

Problème : Blocs visibles brièvement avant obfuscation

Symptôme : Les joueurs voient les vrais blocs pendant une fraction de seconde lors du chargement des chunks.

Cause : Latence réseau ou charge serveur élevée.

Solutions :

# Augmenter la priorité de l'anti-xray
update-radius: 2

# Vérifier la configuration réseau
# Dans server.properties
network-compression-threshold=256

Problème : Blocs qui restent cachés après minage

Symptôme : Après avoir cassé un bloc, les blocs adjacents restent obfusqués.

Cause : update-radius trop faible ou bug de version.

Solutions :

# Augmenter le rayon de mise à jour
update-radius: 2

# Vérifier que Paper est à jour
# Télécharger la dernière build sur papermc.io

Problème : Performance dégradée

Symptôme : TPS bas, lag lors du chargement de chunks.

Solutions :

# Réduire la charge
engine-mode: 1
max-block-height: 48
update-radius: 1

# Réduire la liste des blocs
hidden-blocks:
  - diamond_ore
  - deepslate_diamond_ore
  - emerald_ore
  - deepslate_emerald_ore

Problème : Certains blocs ne sont pas cachés

Symptôme : Les joueurs X-Ray voient certains minerais.

Cause : Bloc non inclus dans hidden-blocks ou exposé à l'air.

Solutions :

# Vérifier que tous les variants sont inclus
hidden-blocks:
  - diamond_ore
  - deepslate_diamond_ore  # Ne pas oublier la version deepslate

Problème : Incompatibilité avec certains plugins

Symptôme : Plugins de protection ou d'économie fonctionnent mal.

Cause : Certains plugins interagissent avec les blocs de manière non standard.

Solutions :

  • Mettre à jour le plugin concerné
  • Contacter le développeur du plugin
  • Ajouter les admins au bypass :
use-permission: true

Puis donner la permission paper.antixray.bypass aux admins.

Commandes de Debug

# Recharger la configuration (après modification)
/paper reload

# Vérifier la configuration active
/paper dumpplugins  # Indirectement, vérifie que Paper fonctionne

# Profiler le serveur
/spark profiler start
/spark profiler stop

Bonnes Pratiques

Configuration Initiale

  1. Commencer en Mode 2 pour une protection maximale
  2. Ajuster selon les performances observées
  3. Tester avec des joueurs de confiance utilisant X-Ray

Liste des Blocs Recommandée

Indispensables (tous serveurs)

  • diamond_ore / deepslate_diamond_ore
  • emerald_ore / deepslate_emerald_ore
  • ancient_debris

Recommandés (survie)

  • gold_ore / deepslate_gold_ore
  • iron_ore / deepslate_iron_ore
  • copper_ore / deepslate_copper_ore
  • lapis_ore / deepslate_lapis_ore
  • redstone_ore / deepslate_redstone_ore
  • coal_ore / deepslate_coal_ore

Conteneurs (PvP/Faction)

  • chest / trapped_chest
  • ender_chest
  • barrel
  • shulker_box (toutes couleurs)
  • hopper
  • dispenser / dropper

Spéciaux

  • spawner (si important sur votre serveur)
  • tnt (serveurs PvP)
  • obsidian (bases cachées)

Maintenance

  • Mettez à jour Paper régulièrement pour les correctifs
  • Surveillez les performances avec Spark ou Timings
  • Testez après chaque mise à jour majeure de Minecraft
  • Documentez vos modifications dans un fichier de changelog

Sécurité Complémentaire

L'anti-Xray ne remplace pas d'autres mesures :

  • Plugin anti-cheat (Matrix, Vulcan, Grim)
  • Logs de blocs (CoreProtect, Prism)
  • Modération active et signalements joueurs
  • Vérification régulière des joueurs suspects

Ressources et Références

Documentation Officielle

Outils Utiles

Communauté