Introduzione all'Anti-Xray
Che cos'è il X-Ray?
Il X-Ray è una tecnica di cheating che consente ai giocatori di vedere attraverso i blocchi solidi per localizzare facilmente minerali, caverne, basi nascoste e altre strutture. Questo cheating può essere realizzato tramite client modificati, resource pack o mod.
Soluzione Paper
Paper integra nativamente un sistema anti-Xray performante che funziona lato server. A differenza dei plugin tradizionali, questa soluzione non richiede alcuna installazione aggiuntiva e offre una protezione robusta contro la maggior parte delle tecniche di X-Ray.
Vantaggi della Soluzione Nativa
| Aspetto | Descrizione |
|---|---|
| Performance | Ottimizzato a livello di codice server |
| Compatibilità | Funziona con tutti i client vanilla |
| Manutenzione | Aggiornato automaticamente con Paper |
| Affidabilità | Nessuna dipendenza esterna |
| Configurazione | Personalizzabile per mondo/dimensione |
Funzionamento Tecnico
Principio di Base
L'anti-Xray di Paper funziona modificando i dati dei chunk inviati ai client. Invece di inviare i veri blocchi, il server sostituisce alcuni blocchi con dei falsi fino a quando il giocatore non si avvicina abbastanza per rivelarli legittimamente.
Processo di Rivelazione
Un blocco nascosto viene rivelato quando una delle seguenti condizioni è soddisfatta:
- Il giocatore rompe un blocco adiacente
- Il giocatore posiziona un blocco adiacente
- Un pistone sposta un blocco adiacente
- Un'esplosione distrugge un blocco adiacente
- Acqua o lava scorrono su un blocco adiacente
- Il blocco entra nel campo visivo diretto (raytracing attivato)
Blocchi Adiacenti
Il sistema considera le 6 facce di un blocco (alto, basso, nord, sud, est, ovest). Un blocco è considerato "esposto all'aria" se almeno una delle sue facce tocca un blocco trasparente (aria, vetro, acqua, ecc.).
Modalità di Funzionamento
Paper offre due modalità distinte, ognuna con i propri vantaggi e svantaggi.
Engine Mode 1: Sostituzione Semplice
Questa modalità sostituisce tutti i blocchi nascosti (non esposti all'aria) con un unico blocco di sostituzione, generalmente la stone.
Funzionamento:
Blocco originale nascosto → Stone (o blocco definito)
Blocco esposto all'aria → Rimane invariato
Vantaggi:
- Impatto ridotto sulle performance
- Consumo di memoria minimo
- Banda passante di rete ridotta
Svantaggi:
- Vulnerabile a X-Ray avanzati che filtrano la stone
- I giocatori esperti possono indovinare le posizioni
Casi d'uso raccomandati:
- Server con risorse limitate
- Grande popolazione di giocatori
- Server creativi o semi-RP
Engine Mode 2: Offuscamento Casuale
Questa modalità sostituisce i blocchi nascosti con blocchi casuali scelti da un elenco configurabile, creando un "rumore visivo" che rende inutile il X-Ray.
Funzionamento:
Blocco originale nascosto → Blocco casuale (diamond_ore, gold_ore, iron_ore, ecc.)
Blocco esposto all'aria → Rimane invariato
Vantaggi:
- Protezione massima contro tutti i tipi di X-Ray
- Impossibile distinguere i veri minerali dai falsi
- Disincentiva completamente l'uso del X-Ray
Svantaggi:
- Impatto maggiore sulle performance
- Consumo di memoria aumentato
- Banda passante di rete aumentata
Casi d'uso raccomandati:
- Server di sopravvivenza competitivi
- Server PvP/Fazione
- Server dove l'economia delle risorse è importante
Confronto Visivo
| Criterio | Modo 1 | Modo 2 |
|---|---|---|
| Protezione | Basica | Massima |
| CPU | Bassa | Moderata |
| RAM | Bassa | Moderata |
| Rete | Bassa | Moderata |
| Raccomandato | Casual | Competitivo |
Configurazione Completa
Localizzazione del File
Il file di configurazione si trova in:
config/paper-world-defaults.yml # Configurazione predefinita
<world>/paper-world.yml # Configurazione specifica per il mondo
Struttura di Configurazione
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
Parametri Dettagliati
enabled
enabled: true
Attiva o disattiva l'anti-Xray. Impostare a false per disattivare completamente.
engine-mode
engine-mode: 2
Definisce la modalità di funzionamento (1 o 2). Vedi la sezione precedente per i dettagli.
max-block-height
max-block-height: 64
Altezza massima (coordinata Y) alla quale l'anti-Xray si applica. Sopra questo valore, non viene effettuata alcuna offuscazione. Ridurre questo valore migliora le performance.
Valori raccomandati:
- Overworld: 64 (livello del mare)
- Nether: 128 (altezza totale)
- End: 0 (disattivato, pochi minerali)
update-radius
update-radius: 2
Raggio di aggiornamento dei blocchi quando un blocco viene rivelato. Un valore di 2 significa che i blocchi in un raggio di 2 blocchi verranno aggiornati.
Valori:
- 1: Performance massima, rischio di blocchi non rivelati
- 2: Equilibrio raccomandato
- 3+: Sicurezza massima, impatto sulle performance
lava-obscures
lava-obscures: false
Se attivato, la lava è considerata un blocco opaco per l'offuscamento. Utile per il Nether ma può causare problemi visivi.
use-permission
use-permission: false
Se attivato, i giocatori con il permesso paper.antixray.bypass non saranno influenzati dall'anti-Xray. Utile per gli amministratori durante il debug.
hidden-blocks
hidden-blocks:
- diamond_ore
- emerald_ore
# ...
Elenco dei blocchi da nascondere/offuscare. Questi blocchi verranno sostituiti quando non sono esposti all'aria.
Modo 1: Questi blocchi vengono sostituiti con della stone (o il primo blocco di replacement-blocks).
Modo 2: Questi blocchi vengono sostituiti con un blocco casuale dall'elenco replacement-blocks.
replacement-blocks
replacement-blocks:
- stone
- deepslate
- granite
# ...
Elenco dei blocchi utilizzati come sostituzione.
Modo 1: Solo il primo blocco dell'elenco viene utilizzato.
Modo 2: I blocchi vengono scelti casualmente da questo elenco.
Ottimizzazione per Tipo di Server
Server Sopravvivenza Vanilla
Configurazione equilibrata per un'esperienza di sopravvivenza classica.
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
Server Fazione/PvP
Configurazione massima per ambienti competitivi dove il cheating deve essere rigorosamente impedito.
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
Server Economico
Configurazione mirata alle risorse di valore per proteggere l'economia del server.
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
Server Performance (Grande Popolazione)
Configurazione minima per server con molti giocatori dove le performance sono critiche.
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
Configurazione per Dimensione
Overworld (world)
File: 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)
File: 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)
File: world_the_end/paper-world.yml
L'End contiene poche risorse da proteggere. Una configurazione minima o disattivata è generalmente sufficiente.
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
O semplicemente disattivato:
anticheat:
anti-xray:
enabled: false
Impatto sulle Performance
Metrica per Modalità
| Metrica | Modo 1 | Modo 2 | Senze Anti-Xray |
|---|---|---|---|
| CPU (generazione chunk) | +5-10% | +15-25% | Baseline |
| RAM per chunk | +0.1 KB | +0.5-1 KB | Baseline |
| Banda passante | +2-5% | +10-20% | Baseline |
| Latenza rete | Négligeable | +1-5 ms | Baseline |
Fattori che Influenzano le Performance
Numero di hidden-blocks
Più lunga è la lista, più pesante è il trattamento.
# Leggero (5-10 blocchi)
hidden-blocks:
- diamond_ore
- emerald_ore
- gold_ore
- ancient_debris
- chest
# Pesante (20+ blocchi)
hidden-blocks:
- coal_ore
- deepslate_coal_ore
- copper_ore
- deepslate_copper_ore
# ... 20+ voci
max-block-height
Ridurre questo valore diminuisce significativamente il carico.
# Performance ottimali
max-block-height: 48
# Equilibrato
max-block-height: 64
# Protezione massima (costoso)
max-block-height: 320
update-radius
Ogni aumento moltiplica il numero di blocchi da verificare.
# Raggio 1: 6 blocchi verificati
update-radius: 1
# Raggio 2: 26 blocchi verificati
update-radius: 2
# Raggio 3: 98 blocchi verificati
update-radius: 3
Ottimizzazione delle Performance
Per server ad alta carico
anticheat:
anti-xray:
enabled: true
engine-mode: 1 # Modalità più leggera
max-block-height: 48 # Limite basso
update-radius: 1 # Raggio minimo
hidden-blocks: # Lista corta
- diamond_ore
- deepslate_diamond_ore
- ancient_debris
replacement-blocks:
- stone
Monitoraggio delle performance
Utilizza Spark per analizzare l'impatto:
/spark profiler start
# Aspetta qualche minuto mentre i giocatori giocano
/spark profiler stop
Cerca nel rapporto:
AntiXraynei threadChunkSerializerper l'impatto sulla generazionePlayerConnectionper l'impatto sulla rete
Risoluzione dei Problemi e Problemi Comuni
Problema: Blocchi visibili brevemente prima dell'offuscamento
Sintomo: I giocatori vedono i veri blocchi per una frazione di secondo durante il caricamento dei chunk.
Cause: Latenza di rete o carico elevato del server.
Soluzioni:
# Aumentare la priorità dell'anti-xray
update-radius: 2
# Controllare la configurazione di rete
# In server.properties
network-compression-threshold=256
Problema: Blocchi che rimangono nascosti dopo l'estrazione
Sintomo: Dopo aver rotto un blocco, i blocchi adiacenti rimangono offuscati.
Cause: update-radius troppo basso o bug di versione.
Soluzioni:
# Aumentare il raggio di aggiornamento
update-radius: 2
# Verificare che Paper sia aggiornato
# Scaricare l'ultima build su papermc.io
Problema: Prestazioni degradate
Sintomo: TPS basso, lag durante il caricamento dei chunk.
Soluzioni:
# Ridurre il carico
engine-mode: 1
max-block-height: 48
update-radius: 1
# Ridurre l'elenco dei blocchi
hidden-blocks:
- diamond_ore
- deepslate_diamond_ore
- emerald_ore
- deepslate_emerald_ore
Problema: Alcuni blocchi non sono nascosti
Sintomo: I giocatori X-Ray vedono alcuni minerali.
Causes: Blocco non incluso in hidden-blocks o esposto all'aria.
Soluzioni:
# Verificare che tutte le varianti siano incluse
hidden-blocks:
- diamond_ore
- deepslate_diamond_ore # Non dimenticare la versione deepslate
Problema: Incompatibilità con alcuni plugin
Sintomo: Plugin di protezione o economia funzionano male.
Causes: Alcuni plugin interagiscono con i blocchi in modo non standard.
Soluzioni:
- Aggiornare il plugin interessato
- Contattare lo sviluppatore del plugin
- Aggiungere gli admin al bypass:
use-permission: true
Poi dare il permesso paper.antixray.bypass agli admin.
Comandi di Debug
# Ricaricare la configurazione (dopo la modifica)
/paper reload
# Verificare la configurazione attiva
/paper dumpplugins # Indirettamente, verifica che Paper funzioni
# Profilare il server
/spark profiler start
/spark profiler stop
Buone Pratiche
Configurazione Iniziale
- Iniziare in Modalità 2 per una protezione massima
- Regolare in base alle prestazioni osservate
- Testare con giocatori fidati che usano X-Ray
Elenco dei Blocchi Raccomandato
Indispensabili (tutti i server)
diamond_ore/deepslate_diamond_oreemerald_ore/deepslate_emerald_oreancient_debris
Raccomandati (sopravvivenza)
gold_ore/deepslate_gold_oreiron_ore/deepslate_iron_orecopper_ore/deepslate_copper_orelapis_ore/deepslate_lapis_oreredstone_ore/deepslate_redstone_orecoal_ore/deepslate_coal_ore
Contenitori (PvP/Fazione)
chest/trapped_chestender_chestbarrelshulker_box(tutti i colori)hopperdispenser/dropper
Speciali
spawner(se importante sul tuo server)tnt(server PvP)obsidian(basi nascoste)
Manutenzione
- Aggiornare Paper regolarmente per le correzioni
- Monitorare le prestazioni con Spark o Timings
- Testare dopo ogni aggiornamento maggiore di Minecraft
- Documentare le tue modifiche in un file di changelog
Sicurezza Aggiuntiva
L'anti-Xray non sostituisce altre misure:
- Plugin anti-cheat (Matrix, Vulcan, Grim)
- Log dei blocchi (CoreProtect, Prism)
- Moderazione attiva e segnalazioni dei giocatori
- Verifica regolare dei giocatori sospetti
Risorse e Riferimenti
Documentazione Ufficiale
- Documentazione Paper: https://docs.papermc.io/
- Configurazione Anti-Xray: https://docs.papermc.io/paper/anti-xray
Strumenti Utili
- Spark Profiler: https://spark.lucko.me/
- Paper Timings: https://timings.aikar.co/
Comunità
- Discord PaperMC: https://discord.gg/papermc
- Forum SpigotMC: https://www.spigotmc.org/
Hai bisogno di un server Minecraft?
Scopri le nostre offerte di hosting Minecraft a partire da 9,98€/mese con installazione automatica delle mod.
