TunnelVision Discord
Article

Anti-xray de Paper : engine-mode 1, 2, 3, ce qu'ils protègent et leurs limites

Mis à jour le

« J'ai activé l'anti-x-ray de Paper, je suis couvert. » C'est la phrase qu'on lit le plus souvent, et elle repose sur un malentendu : l'anti-x-ray natif ne détecte rien. Il cache. Ce sont deux métiers différents, et confondre les deux laisse un angle mort complet dans votre modération.

Ce que fait réellement l'anti-x-ray de Paper

Le principe est de l'obfuscation côté serveur : avant d'envoyer les données de terrain au client, le serveur remplace ou masque certains blocs. Le joueur qui triche voit une information falsifiée. Gros avantage, qu'il faut souligner : comme tout se passe côté serveur, aucun mod, pack de textures ou client modifié ne peut annuler la protection.

Les trois engine-modes

ModeCe qu'il fait
engine-mode: 1 Remplace les blocs listés par un bloc factice (stone, deepslate, netherrack ou end_stone selon la dimension). Seuls les minerais entièrement entourés de blocs solides sont masqués. C'est le mode le plus léger.
engine-mode: 2 Remplace à la fois les blocs cachés et les blocs de remplacement par des minerais générés aléatoirement. Meilleure protection : les faux minerais noient les vrais dans le bruit.
engine-mode: 3 Comme le mode 2, mais l'aléatoire est appliqué par couche de chunk au lieu de bloc par bloc. Réduit la charge réseau à la connexion d'un facteur ~2 et compresse mieux les paquets de chunks.

Quel engine-mode choisir ?

Votre situationModePourquoi
Vous voulez zéro impact sur les machines des joueurs1Le plus léger côté client. Mais les minerais au contact d'une grotte restent visibles.
Vous voulez la protection la plus forte2Les faux minerais noient les vrais. Avec air dans hidden-blocks, les minerais exposés en grotte sont couverts aussi.
Comme le mode 2, avec beaucoup de connexions3Même principe que le mode 2, avec environ deux fois moins de charge réseau à la connexion d'un joueur.

La configuration recommandée par PaperMC pour les modes 2 et 3 met air dans hidden-blocks, tout en prévenant que cela peut faire chuter les FPS de tous les joueurs, tricheurs ou non. Si des joueurs s'en plaignent après l'activation, retirer air de la liste est la première chose à essayer.

Où ça se configure

Le réglage se trouve dans config/paper-world-defaults.yml, pour tous les mondes. Pour donner des réglages propres à une dimension (le Nether n'a pas les mêmes minerais), on le surcharge dans le paper-world.yml de ce monde. La documentation de Paper utilise world/dimensions/minecraft/the_nether/paper-world.yml pour le Nether ; sur les installations où le Nether a son propre dossier world_nether/, le fichier va dedans. Sur les très anciennes versions, le réglage était dans paper.yml.

Redémarrage obligatoire

Les changements ne sont pas appliqués à chaud, et /reload ne les applique pas non plus : redémarrez le serveur après modification.

Configuration prête à copier : engine-mode 2

Ce sont les valeurs recommandées par la documentation de PaperMC. Pour le mode 3, gardez les mêmes listes et remplacez simplement engine-mode: 2 par engine-mode: 3.

Overworld — config/paper-world-defaults.yml (remplacez le bloc anticheat.anti-xray existant) :

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

Nether — le paper-world.yml du Nether :

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

End — le paper-world.yml de l'End. Il n'y a rien à y cacher, l'obfuscation y est désactivée :

anticheat:
  anti-xray:
    enabled: false

Configuration prête à copier : engine-mode 1

Overworld — config/paper-world-defaults.yml :

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 1
    hidden-blocks:
    - chest
    - coal_ore
    - deepslate_coal_ore
    - copper_ore
    - deepslate_copper_ore
    - raw_copper_block
    - diamond_ore
    - deepslate_diamond_ore
    - emerald_ore
    - deepslate_emerald_ore
    - gold_ore
    - deepslate_gold_ore
    - iron_ore
    - deepslate_iron_ore
    - raw_iron_block
    - lapis_ore
    - deepslate_lapis_ore
    - redstone_ore
    - deepslate_redstone_ore
    lava-obscures: false
    max-block-height: 64
    replacement-blocks: []
    update-radius: 2
    use-permission: false

Nether — le paper-world.yml du Nether :

anticheat:
  anti-xray:
    enabled: true
    engine-mode: 1
    hidden-blocks:
    - ancient_debris
    - nether_gold_ore
    - nether_quartz_ore
    lava-obscures: false
    max-block-height: 128
    replacement-blocks: []
    update-radius: 2
    use-permission: false

L'End : comme ci-dessus, enabled: false.

Ce que fait chaque réglage

  • hidden-blocks — les blocs à cacher : les minerais, plus air en modes 2 et 3 pour couvrir les minerais exposés en grotte.
  • replacement-blocks — en modes 2 et 3, des blocs courants eux aussi remplacés par de faux minerais, pour que les vrais ne s'en distinguent pas. Inutilisé en mode 1, d'où [].
  • max-block-height — au-dessus de cette hauteur, plus rien n'est caché : inutile de traiter la surface. 64 dans l'Overworld, 128 dans le Nether.
  • update-radius — rayon autour d'un bloc avec lequel le joueur interagit (en le minant, par exemple) dans lequel les vrais blocs lui sont renvoyés.
  • lava-obscures — masque aussi ce qui est au contact de la lave.
  • use-permission — à true, les joueurs qui ont paper.antixray.bypass (le staff) voient le monde sans obfuscation.
À faire, sans hésiter

Activez-le. C'est gratuit, natif, efficace contre la grande majorité des tricheurs opportunistes, et ça ne demande aucun plugin. Rien de ce qui suit ne dit le contraire.

La distinction qui change tout : une serrure, pas une caméra

Une serrure empêche d'entrer. Une caméra dit qui a essayé. L'anti-x-ray de Paper est une excellente serrure — et il n'y a aucune caméra derrière.

Concrètement, l'anti-x-ray natif ne produit aucune trace : pas de journal, pas d'alerte, pas de nom. Il ne sait pas vous dire qu'un joueur a tenté quoi que ce soit, encore moins qui. Si quelqu'un passe au travers — et on va voir que la doc officielle décrit trois façons d'y arriver — il devient totalement invisible pour vous.

Attention à ce qu'on lit ailleurs

Plusieurs articles affirment que « si votre nombre de diamants par minute dépasse un seuil naturel, le système alerte automatiquement l'équipe de modération ». Paper ne fait rien de tel. Aucun engine-mode ne compte quoi que ce soit ni n'envoie la moindre alerte. Cette fonction vient toujours d'un plugin tiers.

Les trois limites reconnues par la documentation de Paper

Ce ne sont pas des critiques externes : PaperMC les documente lui-même.

1. Le minerai exposé à l'air reste visible

Dans les modes 1, 2 et 3, un minerai en contact avec de l'air — typiquement sur la paroi d'une grotte — n'est pas masqué. Il est donc visible par un client trichant comme par tout le monde.

On peut atténuer ça en modes 2 et 3 en ajoutant air à hidden-blocks, mais la doc prévient : cela peut faire chuter les FPS de tous vos joueurs, y compris ceux qui ne trichent pas. Le remède est souvent pire que le mal.

Sur le même sujet Pourquoi les grottes piègent aussi les détecteurs de x-ray →

2. L'extension de portée

La génération du monde étant déterministe, un client peut exploiter cette régularité pour étendre ce qu'il déduit au-delà de ce que le serveur lui envoie réellement.

3. La récupération de la seed — la faille de fond

C'est la plus sérieuse. Le monde étant généré de façon déterministe à partir d'une seed, un client qui parvient à retrouver la seed de votre monde connaît l'emplacement réel de chaque minerai généré. L'obfuscation devient alors totalement inopérante : il n'a même plus besoin de regarder ce que le serveur lui envoie.

Les options feature-seeds côté Paper, combinées aux réglages de seed de structures dans spigot.yml, compliquent la tâche. Mais la documentation est explicite : ce n'est pas une solution complète, et un client peut encore y parvenir.

La quatrième limite, structurelle

Celle-là ne figure dans aucune documentation, parce qu'elle ne relève pas d'un défaut technique : l'anti-x-ray ne protège que l'avenir.

Le jour où vous l'activez, tout ce qui s'est passé avant reste hors de portée. Si un joueur a x-rayé pendant six mois, l'obfuscation n'y change rien — l'économie de votre serveur est déjà déséquilibrée, et vous n'avez toujours aucun moyen de savoir qui en est responsable. La seule chose qui puisse répondre à cette question, c'est votre historique.

Ce que ça implique concrètement

Les deux couches ne se remplacent pas, elles se complètent :

Anti-x-ray natif (Paper)Analyse de l'historique
RôleEmpêcherConstater
Agit surCe qui arrive après activationCe qui s'est déjà passé
Nomme un joueurNon, jamaisOui
Si contournéAucune traceLe comportement reste dans les logs
CoûtGratuit, natifNécessite un historique (CoreProtect) et un outil de lecture

Le point clé est dans l'avant-dernière ligne : les trois contournements documentés ci-dessus permettent de voir le minerai, mais aucun ne permet de le récupérer sans le casser. Le comportement de minage, lui, finit toujours dans vos logs. C'est ce qui rend l'analyse a posteriori robuste précisément là où l'obfuscation cède.

La suite logique Comment détecter un x-rayeur avec CoreProtect : la méthode complète →

À retenir

  • Activez l'anti-x-ray de Paper : c'est une bonne première couche, gratuite et impossible à annuler côté client.
  • Mais il cache, il ne détecte pas : aucun journal, aucune alerte, aucun nom.
  • PaperMC documente lui-même trois contournements : minerai exposé à l'air, extension de portée, récupération de la seed.
  • Un tricheur qui passe au travers ne laisse aucune trace côté anti-x-ray — seulement dans votre historique de blocs.
  • Et rien de tout cela ne dit ce qui s'est passé avant que vous l'activiez.

Détails techniques et limites vérifiés dans la documentation officielle PaperMC.

À lire aussi

La caméra qui manque derrière la serrure

TunnelVision travaille sur l'autre moitié du problème : il relit l'historique CoreProtect que votre serveur enregistre déjà, reconstruit les sessions de minage et remonte celles dont la trajectoire ne s'explique pas — y compris pour la période antérieure à l'activation de votre anti-x-ray. Chaque session vient avec les indicateurs qui expliquent son score, et la décision reste la vôtre.