Chapter 9.10: Gestione delle Mod
Home | << Precedente: Controllo Accessi | Successivo: Risoluzione Problemi >>
Riepilogo: Installa, configura e mantieni le mod di terze parti su un server dedicato DayZ. Copre i parametri di avvio, i download dal Workshop, le chiavi di firma, l'ordine di caricamento, le mod solo server vs quelle richieste dal client, gli aggiornamenti e gli errori piu comuni che causano crash o espulsioni dei giocatori.
Indice
- Come si caricano le mod
- Formato dei parametri di avvio
- Installazione delle mod dal Workshop
- Chiavi delle mod (.bikey)
- Ordine di caricamento e dipendenze
- Mod solo server vs richieste dal client
- Aggiornamento delle mod
- Risoluzione dei conflitti tra mod
- Errori comuni
Come si caricano le mod
DayZ carica le mod tramite il parametro di avvio -mod=. Ogni voce e un percorso a una cartella contenente file PBO e un config.cpp. Il motore legge ogni PBO in ogni cartella mod, registra le sue classi e script, poi passa alla mod successiva nella lista.
Server e client devono avere le stesse mod in -mod=. Se il server elenca @CF;@MyMod e il client ha solo @CF, la connessione fallisce con un mismatch di firma. Le mod solo server inserite in -servermod= sono l'eccezione -- i client non ne hanno mai bisogno.
Formato dei parametri di avvio
Un tipico comando di avvio per un server moddato:
DayZServer_x64.exe -config=serverDZ.cfg -port=2302 -profiles=profiles -mod=@CF;@VPPAdminTools;@MyContentMod -servermod=@MyServerLogic -dologs -adminlog| Parametro | Scopo |
|---|---|
-mod= | Mod richieste sia dal server che da tutti i client che si connettono |
-servermod= | Mod solo server (i client non ne hanno bisogno) |
Regole:
- I percorsi sono separati da punto e virgola senza spazi intorno ai punti e virgola
- Ogni percorso e relativo alla directory root del server (ad esempio
@CFsignifica<root_server>/@CF/) - Puoi usare percorsi assoluti:
-mod=D:\Mods\@CF;D:\Mods\@VPP - L'ordine conta -- le dipendenze devono apparire prima delle mod che le richiedono
Installazione delle mod dal Workshop
Passo 1: Scarica la mod
Usa SteamCMD con l'App ID del client DayZ (221100) e l'ID Workshop della mod:
steamcmd.exe +force_install_dir "C:\DayZServer" +login your_username +workshop_download_item 221100 1559212036 +quitI file scaricati finiscono in:
C:\DayZServer\steamapps\workshop\content\221100\1559212036\Passo 2: Crea un link simbolico o copia
Le cartelle del Workshop usano ID numerici, che sono inutilizzabili in -mod=. Crea un link simbolico nominato (raccomandato) o copia la cartella:
mklink /J "C:\DayZServer\@CF" "C:\DayZServer\steamapps\workshop\content\221100\1559212036"Usare una giunzione significa che gli aggiornamenti tramite SteamCMD si applicano automaticamente -- non e necessario ricopiare.
Passo 3: Copia il .bikey
Vedi la sezione successiva.
Chiavi delle mod (.bikey)
Ogni mod firmata include una cartella keys/ contenente uno o piu file .bikey. Questi file dicono a BattlEye quali firme PBO accettare.
- Apri la cartella della mod (ad esempio
@CF/keys/) - Copia ogni file
.bikeynella directory rootkeys/del server
DayZServer/
keys/
dayz.bikey # Vanilla -- sempre presente
cf.bikey # Copiato da @CF/keys/
vpp_admintools.bikey # Copiato da @VPPAdminTools/keys/Senza la chiave corretta, qualsiasi giocatore che usa quella mod riceve: "Player kicked: Modified data".
Ordine di caricamento e dipendenze
Le mod si caricano da sinistra a destra nel parametro -mod=. Il config.cpp di una mod dichiara le sue dipendenze:
class CfgPatches
{
class MyMod
{
requiredAddons[] = { "CF" };
};
};Se MyMod richiede CF, allora @CF deve apparire prima di @MyMod nel parametro di avvio:
-mod=@CF;@MyMod ✓ corretto
-mod=@MyMod;@CF ✗ crash o classi mancantiSchema generale dell'ordine di caricamento:
- Mod framework -- CF, Community-Online-Tools
- Mod libreria -- BuilderItems, qualsiasi pacchetto di risorse condivise
- Mod di funzionalita -- aggiunte di mappe, armi, veicoli
- Mod dipendenti -- qualsiasi cosa che elenca le precedenti come
requiredAddons
In caso di dubbio, controlla la pagina Workshop della mod o la sua documentazione. La maggior parte degli autori di mod pubblica l'ordine di caricamento richiesto.
Mod solo server vs richieste dal client
| Parametro | Chi ne ha bisogno | Esempi tipici |
|---|---|---|
-mod= | Server + tutti i client | Armi, veicoli, mappe, mod UI, abbigliamento |
-servermod= | Solo il server | Gestori dell'economia, strumenti di logging, backend admin, script di programmazione |
La regola e diretta: se una mod contiene qualsiasi script lato client, layout, texture o modelli, deve andare in -mod=. Se esegue solo logica lato server senza risorse che il client tocca mai, usa -servermod=.
Mettere una mod solo server in -mod= costringe ogni giocatore a scaricarla. Mettere una mod richiesta dal client in -servermod= causa texture mancanti, UI rotte o errori di script sul client.
Aggiornamento delle mod
Procedura
- Ferma il server -- aggiornare i file mentre il server e in esecuzione puo corrompere i PBO
- Riscarica tramite SteamCMD:batch
steamcmd.exe +force_install_dir "C:\DayZServer" +login your_username +workshop_download_item 221100 <modID> +quit - Copia i file .bikey aggiornati -- gli autori delle mod ruotano occasionalmente le loro chiavi di firma. Copia sempre il
.bikeyaggiornato dalla cartellakeys/della mod alla directorykeys/del server - Riavvia il server
Se hai usato link simbolici (giunzioni), il passo 2 aggiorna i file della mod direttamente. Se hai copiato i file manualmente, devi copiarli di nuovo.
Aggiornamenti lato client
I giocatori iscritti alla mod sul Workshop di Steam ricevono automaticamente gli aggiornamenti. Se aggiorni una mod sul server e un giocatore ha la versione vecchia, ricevono un mismatch di firma e non possono connettersi finche il loro client non si aggiorna.
Risoluzione dei conflitti tra mod
Controlla il log RPT
Apri il file .RPT piu recente in profiles/. Cerca:
- "Cannot register" -- una collisione di nomi di classe tra due mod
- "Missing addons" -- una dipendenza non e caricata (ordine di caricamento sbagliato o mod mancante)
- "Signature verification failed" -- mismatch del
.bikeyo chiave mancante
Controlla il log degli script
Apri il file script_*.log piu recente in profiles/. Cerca:
- "SCRIPT (E)" -- errori di script, spesso causati dall'ordine di caricamento o da mismatch di versione
- "Definition of variable ... already exists" -- due mod definiscono la stessa classe
Isola il problema
Quando hai molte mod e qualcosa si rompe, testa incrementalmente:
- Parti con solo le mod framework (
@CF) - Aggiungi una mod alla volta
- Avvia e controlla i log dopo ogni aggiunta
- La mod che causa errori e la colpevole
Due mod che modificano la stessa classe
Se due mod usano entrambe modded class PlayerBase, quella caricata per ultima (la piu a destra in -mod=) vince. La sua chiamata super si concatena alla versione dell'altra mod. Questo di solito funziona, ma se una mod sovrascrive un metodo senza chiamare super, le modifiche dell'altra mod vanno perse.
Errori comuni
Ordine di caricamento sbagliato. Il server va in crash o registra "Missing addons" perche una dipendenza non era ancora caricata. Soluzione: sposta la mod dipendenza prima nella lista -mod=.
Dimenticare -servermod= per le mod solo server. I giocatori sono costretti a scaricare una mod di cui non hanno bisogno. Soluzione: sposta le mod solo server da -mod= a -servermod=.
Non aggiornare i file .bikey dopo un aggiornamento della mod. I giocatori vengono espulsi con "Modified data" perche la chiave del server non corrisponde alle nuove firme PBO della mod. Soluzione: ricopia sempre i file .bikey quando aggiorni le mod.
Reimpacchettare i PBO delle mod. Reimpacchettare i file PBO di una mod rompe la sua firma digitale, causa espulsioni BattlEye per ogni giocatore e viola i termini della maggior parte degli autori di mod. Non reimpacchettare mai una mod che non hai creato tu.
Mescolare percorsi del Workshop con percorsi locali. Usare il percorso numerico grezzo del Workshop per alcune mod e cartelle con nome per altre causa confusione durante l'aggiornamento. Scegli un approccio -- i link simbolici sono la soluzione piu pulita.
Spazi nei percorsi delle mod. Un percorso come -mod=@My Mod rompe il parsing. Rinomina le cartelle delle mod per evitare spazi, o racchiudi l'intero parametro tra virgolette: -mod="@My Mod;@CF".
Mod obsoleta sul server, aggiornata sul client (o viceversa). Il mismatch di versione impedisce la connessione. Mantieni sincronizzate le versioni del server e del Workshop. Aggiorna tutte le mod e il server contemporaneamente.
Home | << Precedente: Controllo Accessi | Successivo: Risoluzione Problemi >>
