Anti-Cheat e Configurazione Difensiva

INFO

FiveM non ha un anti-cheat perfetto. La difesa è stratificata: convars del server, entity lockdown, pure level e buone pratiche. Nessuna singola misura blocca tutto, ma insieme alzano molto la barriera.

ObiettivoDettagli
Cosa imparerai• Convars difensive da attivare
• Entity lockdown e request control
• Pure level e file modificati
• Limiti di what gli anti-cheat possono fare
Prerequisiti• Server configurato (modulo 11)

1. Convars Difensive (server.cfg)

# Block modified client files (audio/graph ok)
sv_pureLevel 1
 
# NEVER enable Script Hook V (dangerous)
sv_scriptHookAllowed false
 
# Hide IPs in reports
sv_endpointPrivacy true
 
# Entity lockdown: clients cannot create entities
set sv_entityLockdown strict
 
# Block REQUEST_CONTROL abuse
set sv_filterRequestControl 2
 
# Disable networked sounds (exploit vector)
set sv_enableNetworkedSounds false
 
# OneSync on (required)
onesync on
ConvarValoreEffetto
sv_pureLevel1–22 blocca TUTTI i file modificati
sv_scriptHookAllowedfalseNega Script Hook V (cheat engine)
sv_entityLockdownstrictClient non creano entità
sv_filterRequestControl2Blocca controllo entità altrui
sv_enableNetworkedSoundsfalseBlocca vector di suoni malevoli

WARNING

sv_pureLevel 2 può far disconnettere giocatori con mod client (grafiche). Bilancia tra sicurezza ed esperienza. sv_entityLockdown strict può rompere script che spawnano peds dal client: testa le tue risorse.


2. Entity Lockdown Dettagliato

ValoreComportamento
inactiveClient creano qualsiasi entità (non sicuro)
relaxedBlocca solo entità script-owned create dai client
strictNessuna entità può essere creata dai client
fullDisabilita la creazione di oggetti dummy (solo GTAV Enhanced)

Con strict, spawna oggetti solo dal server (spawn sincronizzato), non dal client.


3. Anti-Cheat: Cosa Può Fare e Cosa No

Cosa fanno gli anti-cheatLimiti
Rilevare file modificati (pure level)Non bloccano cheat iniettati via Script Hook
Monitorare modelli sospettiFacili da aggirare
Kick per “sospetto” (menyoo, trainer)False positive se rilevano il nome di un mod
Validare eventi (framework-side)Richiede una community attiva di aggiornamento

IMPORTANT

Nessun anti-cheat FiveM è perfetto. I cheat avanzati usano iniezioni di memoria che gli script FiveM non possono rilevare. La difesa più efficace è:

  1. sv_scriptHookAllowed false (blocca l’ingresso principale)
  2. sv_pureLevel (blocca file modificati)
  3. Validazione server-side (modulo 12)
  4. Whitelist e moderazione attiva

4. Whitelist e Mod Team

Una whitelist riduce moltissimo l’attacco di cheat anonimi.

Con txAdmin

txAdmin gestisce whitelist e bans dal pannello web (Players → Ban/Whitelist).

Con ACE (semplice)

# Solo i giocatori in whitelist possono connettersi (via ACE)
add_ace principal.whitelisted command.allowlist allow

Con script (es. via database)

-- server.lua
AddEventHandler('playerConnecting', function(name, setKickReason, deferrals)
    local identifier = GetPlayerIdentifiers(source)[1]
 
    MySQL.query('SELECT * FROM whitelist WHERE identifier = ?', {identifier}, function(result)
        if not result[1] then
            setKickReason('Non sei in whitelist')
            deferrals.done('Non sei in whitelist')
        else
            deferrals.done()
        end
    end)
end)

NOTE

playerConnecting usa deferrals (defer/done). Senza deferrals.done() il giocatore resta bloccato in attesa. Vedi il riferimento eventi di FiveM per la firma esatta.


5. Monitoraggio e Log

-- server.lua
AddEventHandler('gameEventTriggered', function(name, args)
    if name == 'CEventShootInWater' or name == 'CEventPlayerDamage' then
        -- Possibili exploit di tiro/health
    end
end)

WARNING

Non kickare automaticamente su gameEventTriggered senza controlli: genera molti false positive. Usalo solo per logging.


Verifica

  • sv_scriptHookAllowed false
  • sv_pureLevel attivo (1 o 2)
  • sv_entityLockdown non inactive
  • Whitelist/ban attivi se server pubblico
  • Eventi economici validati (modulo 12/03)
  • Log attivi per gestire reclami

TIP


Torna alla: Indice Generale