Les Pensées De Djin

Les trucs qui me servent !

#Debian

Debian - Créer un Serveur Dédié Poject Zomboid

05 mai 2023 Rédigé par Djin

Salut à tous,

Je joue depuis quelques années et généralement, quand je trouve un jeu qui me parle, que j’apprécie, j'y joue un certain nombre d'heures, on peut même parler d'années :).

Project Zomboïd fait partie de ces jeux.
J'en ai même fait des vidéos, tellement le jeu est intéressant !

Pour plus d'info sur ce jeu, je vous laisse les pages Steam et Wiki, elles seront sûrement mieux présenter le jeu que moi :) !

Voici ma version fonctionnelle pour installer un serveur dédié Project Zomboid.

Après beaucoup de recherche et de test, je me suis rendu compte que beaucoup d’informations sont soit incomplètes, soit fausses parce qu'obsolètes !

Il y a eu beaucoup d’évolution dans Project Zomboid comme dans Steam.
Voici donc ma version.
Ça sera également mon aide-mémoire !

J'ai utilisé une base de Debian,mais les commandes fonctionnent sur Ubuntu également.
Je pars du principe que vous disposez d'un serveur vierge, propre, avec une IP fixe, qui accède à Internet et auquel vous accédez en ligne de commande.

Ce serveur peut être hébergé chez vous, ou chez un hébergeur qui vous le loue un serveur dédié.

Nous verrons les particularités en fonction des 2 cas plus bas.

Toutes les commandes de ce tuto sont lancées avec un compte standard, pas en root, sauf indication explicite !

Table des matières

  1. Prérequis du serveur Debian
  2. Installation de STEAMCMD
  3. Lancement du serveur
  4. Accès au serveur
  5. Un peu plus loin

1 - Prérequis du serveur Debian


Première chose à faire dans tous les cas, les mises à jour.

EN ROOT

Code BASH :

root@pzserveurdjin:/# apt-get update && apt-get upgrade
Résultat
Atteint:1 http://security.debian.org/debian-security stretch/updates InRelease
Ign:2 http://ftp.fr.debian.org/debian stretch InRelease
Atteint:3 http://ftp.fr.debian.org/debian stretch-updates InRelease
Atteint:4 http://ftp.fr.debian.org/debian stretch Release
Lecture des listes de paquets... Fait
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Calcul de la mise à jour... Fait
Les paquets suivants ont été conservés :
linux-image-amd64
0 mis à jour, 0 nouvellement installés, 0 à enlever et 1 non mis à jour.

Je suis sur un serveur 64bit donc nous installons les bibliothèques 32bit car steamcmd est une application 32 bit :

EN ROOT

Code BASH :

root@pzserveurdjin:/# dpkg --add-architecture i386
root@pzserveurdjin:/# apt-get update
Résultat
Ign:1 http://ftp.fr.debian.org/debian stretch InRelease
Atteint:2 http://ftp.fr.debian.org/debian stretch-updates InRelease
Atteint:3 http://security.debian.org/debian-security stretch/updates InRelease
Atteint:4 http://ftp.fr.debian.org/debian stretch Release
Réception de:5 http://ftp.fr.debian.org/debian stretch-updates/main i386 Packages [5 956 B]
Réception de:6 http://security.debian.org/debian-security stretch/updates/main i386 Packages [270 kB]
Réception de:8 http://ftp.fr.debian.org/debian stretch/main i386 Packages [7 103 kB]
7 378 ko réceptionnés en 2s (3 034 ko/s)
Lecture des listes de paquets... Fait


EN ROOT

Code BASH :

root@pzserveurdjin:/# apt-get install lib32gcc1
Résultat
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
The following additional packages will be installed:
libc6-i386
Les NOUVEAUX paquets suivants seront installés :
lib32gcc1 libc6-i386
0 mis à jour, 2 nouvellement installés, 0 à enlever et 1 non mis à jour.
Il est nécessaire de prendre 2 643 ko dans les archives.
Après cette opération, 11,7 Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] o
Réception de:1 http://ftp.fr.debian.org/debian stretch/main amd64 libc6-i386 amd64 2.24-11+deb9u1 [2 595 kB]
Réception de:2 http://ftp.fr.debian.org/debian stretch/main amd64 lib32gcc1 amd64 1:6.3.0-18 [47,8 kB]
2 643 ko réceptionnés en 1s (2 116 ko/s)
Sélection du paquet libc6-i386 précédemment désélectionné.
(Lecture de la base de données... 27967 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../libc6-i386_2.24-11+deb9u1_amd64.deb ...
Dépaquetage de libc6-i386 (2.24-11+deb9u1) ...
Sélection du paquet lib32gcc1 précédemment désélectionné.
Préparation du dépaquetage de .../lib32gcc1_1%3a6.3.0-18_amd64.deb ...
Dépaquetage de lib32gcc1 (1:6.3.0-18) ...
Paramétrage de libc6-i386 (2.24-11+deb9u1) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.24-11+deb9u1) ...
Paramétrage de lib32gcc1 (1:6.3.0-18) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.24-11+deb9u1) ...


Création du compte pour gérer le serveur

Nous n'avons pas besoin de droit particulier pour gérer le serveur.
Toute l'administration de notre serveur PZ peut se faire via un compte standard que nous allons donc créer.

EN ROOT :

Code BASH :

root@pzserveurdjin:/# adduser pzuser
Résultat
Ajout de l'utilisateur « pzuser » ...
Ajout du nouveau groupe « pzuser » (1001) ...
Ajout du nouvel utilisateur « pzuser » (1001) avec le groupe « pzuser » ...
Création du répertoire personnel « /home/pzuser »...
Copie des fichiers depuis « /etc/skel »...
Entrez le nouveau mot de passe UNIX :
Retapez le nouveau mot de passe UNIX :
passwd: password updated successfully
Changing the user information for pzuser
Enter the new value, or press ENTER for the default
Full Name []: -->Vous pouvez laisser vide
Room Number []: -->Vous pouvez laisser vide
Work Phone []: -->Vous pouvez laisser vide
Home Phone []: -->Vous pouvez laisser vide
Other []: -->Vous pouvez laisser vide
Cette information est-elle correcte ? [O/n]o


On se connecte avec notre compte :

EN ROOT ou non, ça n'a pas d'importance, mais si vous suivez dans la chronologie, vous serez en root.

Code BASH :

root@pzserveurdjin:/# su - pzuser

 

2 - Installation de STEAMCMD


C'est si bien dit sur le site de Valve sur la page SteamCMD :

”Le client Steam console ou SteamCMD est l'outil de Valve permettant d'installer et de mettre à jour les serveurs dédiés en ligne de commande. C'est la manière la plus fiable et flexible pour créer un serveur dédié, sous Windows ou Linux, mais elle nécessite quelques connaissances.”

Source : https://developer.valvesoftware.com/wiki/SteamCMD:fr

Bref, on crée le répertoire de travail de steamcmd:

Code BASH :

pzuser@pzserveurdjin:~$ mkdir /home/pzuser/steamcmd


On en profite pour créer le répertoire dans lequel on va mettre les fichiers de notre serveur plus tard :

Code BASH :

 pzuser@pzserveurdjin:~$ mkdir pzserveur


On se rend dans notre répertoire steamcmd :

Code BASH :

pzuser@pzserveurdjin:~$ cd steamcmd/


On télécharge l'application et on la décompresse :

Code BASH :

pzuser@pzserveurdjin:~$ wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
Résultat
--2018-01-22 09:58:27-- https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
Résolution de steamcdn-a.akamaihd.net (steamcdn-a.akamaihd.net)… 173.223.11.11, 173.223.11.27
Connexion à steamcdn-a.akamaihd.net (steamcdn-a.akamaihd.net)|173.223.11.11|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 2428561 (2,3M) [application/octet-stream]
Sauvegarde en : « steamcmd_linux.tar.gz »
steamcmd_linux.tar. 100%[===================>] 2,32M --.-KB/s in 0,08s
2018-01-22 09:58:27 (28,0 MB/s) — « steamcmd_linux.tar.gz » sauvegardé [2428561/2428561]


Code BASH :

pzuser@pzserveurdjin:~/steamcmd$ tar -xvzf steamcmd_linux.tar.gz

 

steamcmd.sh
linux32/steamcmd
linux32/steamerrorreporter
linux32/libstdc++.so.6
linux32/crashhandler.so


Et enfin, on installe la console Steam :

Code BASH :

pzuser@pzserveurdjin:~/steamcmd$ ./steamcmd.sh
Résultat
Redirecting stderr to '/home/pzuser/Steam/logs/stderr.txt'
ILocalize::AddFile() failed to load file "public/steambootstrapper_english.txt".
[ 0%] Checking for available update...
[----] Downloading update (0 of 12 953 KB)...
[ 0%] Downloading update (1 870 of 12 953 KB)...
[ 14%] Downloading update (3 496 of 12 953 KB)...
[ 26%] Downloading update (4 614 of 12 953 KB)...
[ 35%] Downloading update (5 826 of 12 953 KB)...
[ 44%] Downloading update (6 909 of 12 953 KB)...
[ 53%] Downloading update (7 973 of 12 953 KB)...
[ 61%] Downloading update (8 764 of 12 953 KB)...
[ 67%] Downloading update (9 454 of 12 953 KB)...
[ 72%] Downloading update (10 543 of 12 953 KB)...
[ 81%] Downloading update (11 757 of 12 953 KB)...
[ 90%] Downloading update (12 849 of 12 953 KB)...
[ 99%] Downloading update (12 953 of 12 953 KB)...
[100%] Download Complete.
[----] Applying update...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Cleaning up...
[----] Update complete, launching...
Redirecting stderr to '/home/pzuser/Steam/logs/stderr.txt'
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
--type 'quit' to exit--
Loading Steam API...OK.
Steam>


Nous voici dans la console Steam !

Pour notre jeu préféré, l’installation ne demande pas d'identification, on peut donc se logger en anonymous.

DANS LA CONSOLE STEAM

Code BASH :

Steam>login anonymous
Résultat
Connecting anonymously to Steam Public...Logged in OK
Waiting for user info...OK


On force Steam à enregistrer les fichiers du serveur dans notre répertoire créé plus tôt, au moins c’est propre !

DANS LA CONSOLE STEAM

Code BASH :

Steam>force_install_dir /home/pzuser/pzserveur/


Et on installe notre serveur :

DANS LA CONSOLE STEAM

Code BASH :

Steam>app_update 380870 validate
Résultat
Update state (0x3) reconfiguring, progress: 0,00 (0 / 0)
Update state (0x3) reconfiguring, progress: 0,00 (0 / 0)
Update state (0x3) reconfiguring, progress: 0,00 (0 / 0)
Update state (0x11) preallocating, progress: 90,55 (2145004404 / 2368862557)
Update state (0x61) downloading, progress: 0,58 (13631488 / 2368862557)
Update state (0x61) downloading, progress: 1,93 (45811626 / 2368862557)
Update state (0x61) downloading, progress: 2,90 (68664308 / 2368862557)
Update state (0x61) downloading, progress: 3,40 (80443832 / 2368862557)
Update state (0x61) downloading, progress: 3,41 (80772116 / 2368862557)
Update state (0x61) downloading, progress: 4,92 (116648703 / 2368862557)
Update state (0x61) downloading, progress: 5,61 (132971791 / 2368862557)
Update state (0x61) downloading, progress: 7,69 (182275835 / 2368862557)
Update state (0x61) downloading, progress: 7,72 (182988368 / 2368862557)
Update state (0x61) downloading, progress: 7,73 (183116398 / 2368862557)
Update state (0x61) downloading, progress: 7,75 (183646787 / 2368862557)
Update state (0x61) downloading, progress: 10,67 (252816921 / 2368862557)
Update state (0x61) downloading, progress: 13,05 (309230641 / 2368862557)
Update state (0x61) downloading, progress: 13,17 (312040513 / 2368862557)
Update state (0x61) downloading, progress: 13,17 (312040513 / 2368862557)
Update state (0x61) downloading, progress: 13,17 (312040513 / 2368862557)
Update state (0x61) downloading, progress: 15,44 (365834238 / 2368862557)
Update state (0x61) downloading, progress: 20,47 (484831998 / 2368862557)
Update state (0x61) downloading, progress: 20,91 (495393576 / 2368862557)
Update state (0x61) downloading, progress: 23,11 (547447912 / 2368862557)
Update state (0x61) downloading, progress: 24,38 (577516946 / 2368862557)
Update state (0x61) downloading, progress: 24,74 (586060726 / 2368862557)
Update state (0x61) downloading, progress: 24,74 (586060726 / 2368862557)
Update state (0x61) downloading, progress: 26,42 (625764134 / 2368862557)
Update state (0x61) downloading, progress: 26,42 (625764134 / 2368862557)
Update state (0x61) downloading, progress: 29,32 (694527394 / 2368862557)
Update state (0x61) downloading, progress: 29,52 (699340742 / 2368862557)
Update state (0x61) downloading, progress: 29,52 (699340742 / 2368862557)
Update state (0x61) downloading, progress: 32,04 (758976346 / 2368862557)
Update state (0x61) downloading, progress: 34,36 (813907854 / 2368862557)
Update state (0x61) downloading, progress: 35,04 (829941794 / 2368862557)
Update state (0x61) downloading, progress: 35,04 (829941794 / 2368862557)
Update state (0x61) downloading, progress: 39,80 (942802428 / 2368862557)
Update state (0x61) downloading, progress: 39,87 (944463572 / 2368862557)
Update state (0x61) downloading, progress: 41,09 (973395081 / 2368862557)
Update state (0x61) downloading, progress: 41,22 (976546049 / 2368862557)
Update state (0x61) downloading, progress: 44,84 (1062278297 / 2368862557)
Update state (0x61) downloading, progress: 44,94 (1064623305 / 2368862557)
Update state (0x61) downloading, progress: 47,56 (1126730961 / 2368862557)
Update state (0x61) downloading, progress: 48,97 (1159943617 / 2368862557)
Update state (0x61) downloading, progress: 51,68 (1224304000 / 2368862557)
Update state (0x61) downloading, progress: 52,04 (1232763802 / 2368862557)
Update state (0x61) downloading, progress: 52,79 (1250530268 / 2368862557)
Update state (0x61) downloading, progress: 52,82 (1251330934 / 2368862557)
Update state (0x61) downloading, progress: 53,90 (1276799944 / 2368862557)
Update state (0x61) downloading, progress: 54,66 (1294736716 / 2368862557)
Update state (0x61) downloading, progress: 54,72 (1296165132 / 2368862557)
Update state (0x61) downloading, progress: 54,72 (1296165132 / 2368862557)
Update state (0x61) downloading, progress: 54,72 (1296165132 / 2368862557)
Update state (0x61) downloading, progress: 54,72 (1296165132 / 2368862557)
Update state (0x61) downloading, progress: 54,72 (1296165132 / 2368862557)
Update state (0x61) downloading, progress: 54,76 (1297213708 / 2368862557)
Update state (0x61) downloading, progress: 55,63 (1317852048 / 2368862557)
Update state (0x61) downloading, progress: 55,71 (1319696732 / 2368862557)
Update state (0x61) downloading, progress: 56,86 (1346933996 / 2368862557)
Update state (0x61) downloading, progress: 56,86 (1346933996 / 2368862557)
Update state (0x61) downloading, progress: 59,95 (1420072388 / 2368862557)
Update state (0x61) downloading, progress: 59,95 (1420072388 / 2368862557)
Update state (0x61) downloading, progress: 60,70 (1437958060 / 2368862557)
Update state (0x61) downloading, progress: 62,82 (1488052960 / 2368862557)
Update state (0x61) downloading, progress: 63,76 (1510482580 / 2368862557)
Update state (0x61) downloading, progress: 64,09 (1518213752 / 2368862557)
Update state (0x61) downloading, progress: 67,19 (1591520606 / 2368862557)
Update state (0x61) downloading, progress: 67,68 (1603230902 / 2368862557)
Update state (0x61) downloading, progress: 70,83 (1677769047 / 2368862557)
Update state (0x61) downloading, progress: 70,89 (1679402883 / 2368862557)
Update state (0x61) downloading, progress: 70,90 (1679641219 / 2368862557)
Update state (0x61) downloading, progress: 73,72 (1746271563 / 2368862557)
Update state (0x61) downloading, progress: 73,86 (1749742059 / 2368862557)
Update state (0x61) downloading, progress: 77,02 (1824606497 / 2368862557)
Update state (0x61) downloading, progress: 77,25 (1829924124 / 2368862557)
Update state (0x61) downloading, progress: 77,70 (1840545803 / 2368862557)
Update state (0x61) downloading, progress: 77,83 (1843691531 / 2368862557)
Update state (0x61) downloading, progress: 77,99 (1847518407 / 2368862557)
Update state (0x61) downloading, progress: 78,11 (1850210968 / 2368862557)
Update state (0x61) downloading, progress: 78,69 (1863961890 / 2368862557)
Update state (0x61) downloading, progress: 79,39 (1880558323 / 2368862557)
Update state (0x61) downloading, progress: 80,42 (1905145429 / 2368862557)
Update state (0x61) downloading, progress: 80,60 (1909339733 / 2368862557)
Update state (0x61) downloading, progress: 81,48 (1930049678 / 2368862557)
Update state (0x61) downloading, progress: 82,05 (1943713071 / 2368862557)
Update state (0x61) downloading, progress: 82,35 (1950734231 / 2368862557)
Update state (0x61) downloading, progress: 83,26 (1972345175 / 2368862557)
Update state (0x61) downloading, progress: 83,88 (1987025239 / 2368862557)
Update state (0x61) downloading, progress: 84,41 (1999608151 / 2368862557)
Update state (0x61) downloading, progress: 84,41 (1999608151 / 2368862557)
Update state (0x61) downloading, progress: 85,02 (2014085283 / 2368862557)
Update state (0x61) downloading, progress: 85,20 (2018279587 / 2368862557)
Update state (0x61) downloading, progress: 85,24 (2019328163 / 2368862557)
Update state (0x61) downloading, progress: 85,24 (2019328163 / 2368862557)
Update state (0x61) downloading, progress: 85,24 (2019328163 / 2368862557)
Update state (0x61) downloading, progress: 85,24 (2019328163 / 2368862557)
Update state (0x61) downloading, progress: 89,69 (2124522051 / 2368862557)
Update state (0x61) downloading, progress: 90,15 (2135418442 / 2368862557)
Update state (0x61) downloading, progress: 90,16 (2135695315 / 2368862557)
Update state (0x61) downloading, progress: 90,91 (2153528365 / 2368862557)
Update state (0x61) downloading, progress: 90,96 (2154713817 / 2368862557)
Update state (0x61) downloading, progress: 91,88 (2176410368 / 2368862557)
Update state (0x61) downloading, progress: 93,51 (2215200190 / 2368862557)
Update state (0x61) downloading, progress: 94,68 (2242949344 / 2368862557)
Update state (0x61) downloading, progress: 96,01 (2274253051 / 2368862557)
Update state (0x61) downloading, progress: 97,38 (2306826206 / 2368862557)
Update state (0x61) downloading, progress: 97,56 (2311130094 / 2368862557)
Update state (0x61) downloading, progress: 97,83 (2317421550 / 2368862557)
Update state (0x61) downloading, progress: 98,02 (2321902289 / 2368862557)
Update state (0x61) downloading, progress: 99,49 (2356669695 / 2368862557)
Update state (0x101) committing, progress: 6,01 (142471984 / 2368862557)
Success! App '380870' fully installed.


Petite explication sur cette commande :

Tous les jeux avec serveurs dédiés (dedicate server) sur la plateforme Valve ont un numéro d'identification. Voici la liste complète
Source : https://developer.valvesoftware.com/wiki/Dedicated_Servers_List

Comme vous vous en doutiez, Project Zomboid a le numéro 380870.

Notre serveur est installé.

On peut donc sortir de la console Steam

DANS LA CONSOLE STEAM

Code BASH :

Steam>exit


3 - Lancement du serveur


On se rend dans le répertoire pzserveur :

Code BASH :

pzuser@pzserveurdjin:~/steamcmd$ cd ../pzserveur

Les fichiers ont bien été chargés, la preuve !

Code BASH :

pzuser@pzserveurdjin:~/pzserveur$ ls -al
Résultat
total 29648
drwxr-xr-x 10 pzuser pzuser 4096 janv. 22 11:04 .
drwxr-xr-x 6 pzuser pzuser 4096 janv. 22 10:47 ..
drwxr-xr-x 9 pzuser pzuser 4096 janv. 22 11:04 java
-rwxr-xr-x 1 pzuser pzuser 214859 janv. 22 10:58 jinput.jar
drwxr-xr-x 4 pzuser pzuser 4096 janv. 22 11:04 jre
drwxr-xr-x 4 pzuser pzuser 4096 janv. 22 11:04 jre64
-rwxr-xr-x 1 pzuser pzuser 7200 janv. 22 11:04 libpzexe_jni32.so
-rwxr-xr-x 1 pzuser pzuser 8301 janv. 22 11:04 libpzexe_jni64.so
drwxr-xr-x 2 pzuser pzuser 4096 janv. 22 11:04 linux32
drwxr-xr-x 2 pzuser pzuser 4096 janv. 22 11:04 linux64
-rwxr-xr-x 1 pzuser pzuser 1053471 janv. 22 10:58 lwjgl.jar
-rwxr-xr-x 1 pzuser pzuser 321649 janv. 22 10:58 lwjgl_test.jar
-rwxr-xr-x 1 pzuser pzuser 173911 janv. 22 10:58 lwjgl_util.jar
drwxr-xr-x 25 pzuser pzuser 4096 janv. 22 11:04 media
drwxr-xr-x 2 pzuser pzuser 4096 janv. 22 11:04 natives
-rwxr-xr-x 1 pzuser pzuser 83213 janv. 22 11:04 ProjectZomboid32
-rwxr-xr-x 1 pzuser pzuser 438 janv. 22 11:04 ProjectZomboid32.json
-rwxr-xr-x 1 pzuser pzuser 93879 janv. 22 11:04 ProjectZomboid64
-rwxr-xr-x 1 pzuser pzuser 440 janv. 22 11:04 ProjectZomboid64.json
-rwxr-xr-x 1 pzuser pzuser 2164 janv. 22 11:04 pzexe.jar
-rwxr-xr-x 1 pzuser pzuser 371 janv. 22 10:58 rebel.xml
-rwxr-xr-x 1 pzuser pzuser 4824 janv. 22 10:58 serialize.lua
-rwxr-xr-x 1 pzuser pzuser 6623425 janv. 22 10:58 sqlite-jdbc-3.8.10.1.jar
-rwxr-xr-x 1 pzuser pzuser 1392 janv. 22 11:04 start-server.sh
-rwxr-xr-x 1 pzuser pzuser 3772 janv. 22 10:58 stdlib.lbc
-rwxr-xr-x 1 pzuser pzuser 3148 janv. 22 10:58 stdlib.lua
-rwxr-xr-x 1 pzuser pzuser 8 janv. 22 11:03 steam_appid.txt
drwxr-xr-x 5 pzuser pzuser 4096 janv. 22 10:58 steamapps
-rwxr-xr-x 1 pzuser pzuser 21621476 janv. 22 10:58 steamclient.so
-rwxr-xr-x 1 pzuser pzuser 49923 janv. 22 10:58 uncommons-maths-1.2.3.jar


On peut lancer le serveur PZ :

Code BASH :

pzuser@pzserveurdjin:~/pzserveur$ ./start-server.sh
Résultat
64-bit java detected
pzexe: about to run java hack to locate libjvm.so...
pzexe: executing "java -classpath pzexe.jar -Djava.library.path=. zombie.pzexe"
pzexe.java: loading shared library "pzexe_jni64"
JVM=/home/pzuser/pzserveur/jre64/lib/amd64/server/libjvm.so
pzexe config file: /home/pzuser/pzserveur/ProjectZomboid64.json
pzexe: mainClass: zombie/network/GameServer
pzexe: classpath: -Djava.class.path=java/:java/jinput.jar:java/lwjgl.jar:java/lwjgl_util.jar:java/sqlite-jdbc-3.8.10.1.jar:java/uncommons-maths-1.2.3.jar
pzexe: vmArg (json) 1: -Xms2048m
pzexe: vmArg (json) 2: -Xmx2048m
pzexe: vmArg (json) 3: -Dzomboid.steam=1
pzexe: vmArg (json) 4: -Dzomboid.znetlog=1
pzexe: vmArg (json) 5: -Djava.library.path=linux64/:natives/
pzexe: vmArg (json) 6: -XX:-UseSplitVerifier
pzexe: vmArg (json) 7: -Djava.security.egd=file:/dev/urandom
pzexe: using jvm "/home/pzuser/pzserveur/jre64/lib/amd64/server/libjvm.so"
Failed to read SVNRevision.txt
1516638778640 versionNumber=38.30 demo=false
1516638778640 server name is "servertest"
1516638778642 Loading networking libraries...
1516638778642 Loading steam_api...
1516638778643 Loading RakNet64...
1516638778646 Loading ZNetJNI64...
1516638778647 znet: ZNet loaded
1516638778647 znet: Compiled with SERVER_STEAMAPI == 0
1516638778647 znet: Starting with bServer == true
1516638778648 znet: SteamAPI initialised successfully
1516638778648 SteamUtils initialised successfully
1516638778683 translator: language is EN
1516638778884 ERROR: Missing translation "UI_ServerOptionDesc_TimeMultiplier"
LightingFPS set to 15
1516638778894 reading /home/pzuser/Zomboid/Server/servertest.ini
1516638778899 writing /home/pzuser/Zomboid/Server/servertest.ini
1516638778913 znet: Java_zombie_core_znet_SteamGameServer_Init
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
Setting breakpad minidump AppID = 108600
1516638778955 znet: SteamGameServer seems to be initialized
1516638778956 znet: Java_zombie_core_znet_SteamGameServer_SetProduct
1516638778956 znet: Java_zombie_core_znet_SteamGameServer_SetGameDescription
1516638778956 znet: Java_zombie_core_znet_SteamGameServer_SetModDir
1516638778956 znet: Java_zombie_core_znet_SteamGameServer_SetDedicatedServer
1516638778956 znet: Java_zombie_core_znet_SteamGameServer_SetMaxPlayerCount
1516638778956 znet: Java_zombie_core_znet_SteamGameServer_SetServerName 'My PZ Server'
1516638778957 znet: Java_zombie_core_znet_SteamGameServer_SetMapName 'Muldraugh, KY'
1516638778957 znet: Java_zombie_core_znet_SteamGameServer_SetGameTags 'hidden'
1516638778957 znet: Java_zombie_core_znet_SteamGameServer_SetKeyValue key='description' value=''
1516638778957 znet: Java_zombie_core_znet_SteamGameServer_SetKeyValue key='version' value='38.30'
1516638778957 znet: Java_zombie_core_znet_SteamGameServer_SetKeyValue key='open' value='1'
1516638778958 znet: Java_zombie_core_znet_SteamGameServer_SetKeyValue key='public' value='0'
1516638778959 znet: Java_zombie_core_znet_SteamWorkshop_n_1Init
1516638778960 znet: Java_zombie_core_znet_SteamGameServer_LogOnAnonymous
1516638778960 znet: Java_zombie_core_znet_SteamGameServer_EnableHeartBeats
1516638778960 Waiting for response from Steam servers
1516638780062 znet: OnSteamServersConnected
1516638780063 znet: Public IP: xxx.xxx.xxx.xxx
1516638780067 user database "/home/pzuser/Zomboid/db/servertest.db"
1516638780206 Router detection/configuration starting.
1516638780206 If the server hangs here, set UPnP=false.
No UPnP-enabled Internet gateway found, you must configure port forwarding on your gateway manually in order to make your server accessible from the Internet.
Initialising Server Systems...
1516638794431 Loading: media/lua/shared/Sandbox/Survival.lua
1516638794843 translator: language is FR
1516638795156 script: loading /home/pzuser/pzserveur/media/scripts/Lot_Rural_Farmhouse_00_distribution.txt
1516638795168 script: loading /home/pzuser/pzserveur/media/scripts/camping.txt
1516638795182 script: loading /home/pzuser/pzserveur/media/scripts/evolvedrecipes.txt
1516638795194 script: loading /home/pzuser/pzserveur/media/scripts/farmdistribution.txt
1516638795204 script: loading /home/pzuser/pzserveur/media/scripts/farming.txt
1516638795323 script: loading /home/pzuser/pzserveur/media/scripts/fixing.txt
1516638795343 script: loading /home/pzuser/pzserveur/media/scripts/items.txt
1516638795748 script: loading /home/pzuser/pzserveur/media/scripts/items_radio.txt
1516638795780 script: loading /home/pzuser/pzserveur/media/scripts/moveables.txt
1516638795784 script: loading /home/pzuser/pzserveur/media/scripts/multistagebuild.txt
1516638795794 script: loading /home/pzuser/pzserveur/media/scripts/newitems.txt
1516638796241 script: loading /home/pzuser/pzserveur/media/scripts/npcs/beenbit.txt
1516638796339 script: loading /home/pzuser/pzserveur/media/scripts/npcs/chewedbyzombies.txt
1516638796348 script: loading /home/pzuser/pzserveur/media/scripts/npcs/firstmeetingalreadymembers.txt
1516638796350 script: loading /home/pzuser/pzserveur/media/scripts/npcs/firstmeetinghub.txt
1516638796352 script: loading /home/pzuser/pzserveur/media/scripts/npcs/firstmeetingsloner.txt
1516638796357 script: loading /home/pzuser/pzserveur/media/scripts/npcs/firstmeetingteamup.txt
1516638796360 script: loading /home/pzuser/pzserveur/media/scripts/npcs/firstmeetloneraggressiveaggressive.txt
1516638796368 script: loading /home/pzuser/pzserveur/media/scripts/npcs/firstmeetloneraggressiveneutral.txt
1516638796370 script: loading /home/pzuser/pzserveur/media/scripts/npcs/firstmeetlonerfriendlyneutral.txt
1516638796376 script: loading /home/pzuser/pzserveur/media/scripts/npcs/firstmeetlonerneutralaggressive.txt
1516638796379 script: loading /home/pzuser/pzserveur/media/scripts/npcs/firstmeetteamupaggressiveaggressive.txt
1516638796385 script: loading /home/pzuser/pzserveur/media/scripts/npcs/firstmeetteamupneutralaggressive.txt
1516638796387 script: loading /home/pzuser/pzserveur/media/scripts/npcs/givenitem.txt
1516638796392 script: loading /home/pzuser/pzserveur/media/scripts/npcs/killedzombie.txt
1516638796394 script: loading /home/pzuser/pzserveur/media/scripts/npcs/meetagainalreadymembers.txt
1516638796399 script: loading /home/pzuser/pzserveur/media/scripts/npcs/meetagainhub.txt
1516638796400 script: loading /home/pzuser/pzserveur/media/scripts/npcs/meetagainloner.txt
1516638796401 script: loading /home/pzuser/pzserveur/media/scripts/npcs/meetagainteamup.txt
1516638796403 script: loading /home/pzuser/pzserveur/media/scripts/npcs/npcgroupcommands.txt
1516638796423 script: loading /home/pzuser/pzserveur/media/scripts/npcs/patchedup.txt
1516638796424 script: loading /home/pzuser/pzserveur/media/scripts/npcs/randomtalk.txt
1516638796432 script: loading /home/pzuser/pzserveur/media/scripts/npcs/randomtalkbleeding.txt
1516638796433 script: loading /home/pzuser/pzserveur/media/scripts/npcs/randomtalkfleeing.txt
1516638796436 script: loading /home/pzuser/pzserveur/media/scripts/npcs/randomtalkfleeingbleeding.txt
1516638796437 script: loading /home/pzuser/pzserveur/media/scripts/recipes.txt
1516638796527 script: loading /home/pzuser/pzserveur/media/scripts/recipes_radio.txt
1516638796532 script: loading /home/pzuser/pzserveur/media/scripts/suburbsdistribution.txt
1516638796544 script: loading /home/pzuser/pzserveur/media/scripts/uniquerecipes.txt
1516638796547 WARNING: module "farming" may have forgot to import module Base
1516638796572 Loading: media/lua/shared/ISBaseObject.lua
1516638796574 Loading: media/lua/shared/JoyPad/JoyPadSetup.lua
1516638796819 Loading: media/lua/shared/NPCs/MainCreationMethods.lua
1516638797086 Loading: media/lua/shared/Reloading/ISRackAction.lua
1516638797089 Loading: media/lua/shared/TimedActions/ISBaseTimedAction.lua
1516638797098 Loading: media/lua/shared/Reloading/ISReloadAction.lua
1516638797105 Loading: media/lua/shared/Reloading/ISReloadManager.lua
1516638797166 Loading: media/lua/shared/Reloading/ISReloadUtil.lua
1516638797204 Loading: media/lua/shared/Reloading/ISReloadableMagazine.lua
1516638797216 Loading: media/lua/shared/Reloading/ISReloadable.lua
1516638797269 Loading: media/lua/shared/Reloading/ISSemiAutoWeapon.lua
1516638797307 Loading: media/lua/shared/Reloading/ISReloadableWeapon.lua
1516638797314 Loading: media/lua/shared/Reloading/ISShotgunWeapon.lua
1516638797352 Loading: media/lua/shared/Reloading/ISRevolverWeapon.lua
1516638797364 Loading: media/lua/shared/Reloading/stormysReload.lua
1516638797366 require("timedactionshelper") failed
1516638797369 Loading: media/lua/shared/Sandbox/Beginner.lua
1516638797371 Loading: media/lua/shared/Sandbox/FirstWeek.lua
1516638797377 Loading: media/lua/shared/Sandbox/SandboxVars.lua
1516638797380 Loading: media/lua/shared/Sandbox/SixMonthsLater.lua
1516638797382 Loading: media/lua/shared/SoundBanks/SoundBanks.lua
1516638797410 Loading: media/lua/shared/SpawnRegions.lua
1516638797422 Loading: media/lua/shared/StashDescriptions/MarchRidgeStashDesc.lua
1516638797438 Loading: media/lua/shared/StashDescriptions/StashUtil.lua
1516638797461 Loading: media/lua/shared/StashDescriptions/MulStashDesc.lua
1516638797532 Loading: media/lua/shared/StashDescriptions/RosewoodStashDesc.lua
1516638797552 Loading: media/lua/shared/StashDescriptions/WpStashDesc.lua
1516638797609 Loading: media/lua/shared/Util/AdjacentFreeTileFinder.lua
1516638797627 Loading: media/lua/shared/Util/BuildingHelper.lua
1516638797637 Loading: media/lua/shared/Util/ISPriorityTable.lua
1516638797643 Loading: media/lua/shared/Util/LuaList.lua
1516638797665 Loading: media/lua/shared/Util/LuaNet.lua
1516638797694 Loading: media/lua/shared/Util/StringReplacer.lua
1516638797705 Loading: media/lua/shared/Util/Vector2.lua
1516638797707 Loading: media/lua/shared/a_requires.lua
1516638797712 require("NPCs/SadisticAIDirector/SadisticAIDirector") failed
1516638797715 Loading: media/lua/shared/defines.lua
1516638797717 Loading: media/lua/shared/iwbumstempmodelcompat.lua
1516638797718 Loading: media/lua/shared/keyBinding.lua
1516638797750 Loading: media/lua/shared/luautils.lua
1516638798031 Loading: media/lua/server/BuildingObjects/ISAnvil.lua
1516638798049 Loading: media/lua/server/BuildingObjects/ISBuildingObject.lua
1516638798115 Loading: media/lua/server/BuildingObjects/ISBSFurnace.lua
1516638798125 Loading: media/lua/server/BuildingObjects/ISBuildUtil.lua
1516638798164 Loading: media/lua/server/BuildingObjects/ISCompost.lua
1516638798169 Loading: media/lua/server/BuildingObjects/ISDestroyCursor.lua
1516638798195 Loading: media/lua/server/BuildingObjects/ISDoubleTileFurniture.lua
1516638798199 Loading: media/lua/server/BuildingObjects/ISEmptyGraves.lua
1516638798219 Loading: media/lua/server/BuildingObjects/ISLightSource.lua
1516638798221 Loading: media/lua/server/BuildingObjects/ISMetalDrum.lua
1516638798256 Loading: media/lua/server/BuildingObjects/ISMoveableCursor.lua
1516638798305 Loading: media/lua/server/BuildingObjects/ISNaturalFloor.lua
1516638798309 Loading: media/lua/server/BuildingObjects/ISPaintCursor.lua
1516638798326 Loading: media/lua/server/BuildingObjects/ISSimpleFurniture.lua
1516638798337 Loading: media/lua/server/BuildingObjects/ISWoodenContainer.lua
1516638798348 Loading: media/lua/server/BuildingObjects/ISWoodenDoor.lua
1516638798350 Loading: media/lua/server/BuildingObjects/ISWoodenDoorFrame.lua
1516638798357 Loading: media/lua/server/BuildingObjects/ISWoodenFloor.lua
1516638798361 Loading: media/lua/server/BuildingObjects/ISWoodenStairs.lua
1516638798376 Loading: media/lua/server/BuildingObjects/ISWoodenWall.lua
1516638798382 Loading: media/lua/server/BuildingObjects/PaintingReference.lua
1516638798411 Loading: media/lua/server/BuildingObjects/RainCollectorBarrel.lua
1516638798470 Loading: media/lua/server/Camping/BuildingObjects/campingCampfire.lua
1516638798487 Loading: media/lua/server/Camping/BuildingObjects/campingTent.lua
1516638798504 Loading: media/lua/server/Camping/ISCampfire.lua
1516638798525 Loading: media/lua/server/Camping/camping.lua
1516638798645 Loading: media/lua/server/Camping/camping_fuel.lua
1516638798649 Loading: media/lua/server/Camping/camping_text.lua
1516638798650 Loading: media/lua/server/ClientCommands.lua
1516638798733 Loading: media/lua/server/Farming/BuildingObjects/ISFarmingCursor.lua
1516638798749 Loading: media/lua/server/Farming/BuildingObjects/farmingPlot.lua
1516638798762 Loading: media/lua/server/Farming/ISPlant.lua
1516638798796 Loading: media/lua/server/Farming/ScavengeDefinition.lua
1516638798833 Loading: media/lua/server/Farming/basicFarming.lua
1516638798985 Loading: media/lua/server/Farming/farmingCommands.lua
1516638799009 Loading: media/lua/server/Farming/farming_displayInfo.lua
1516638799041 Loading: media/lua/server/Farming/farming_vegetableconf.lua
1516638799149 Loading: media/lua/server/FireFighting/FireFighting.lua
1516638799162 Loading: media/lua/server/FireFighting/ISExtinguishCursor.lua
1516638799200 Loading: media/lua/server/Fishing/BuildingObjects/FishingNet.lua
1516638799209 Loading: media/lua/server/HealthSystem/HealthUpdate.lua
1516638799213 Loading: media/lua/server/ISBuildingBlueprintManager.lua
1516638799221 Loading: media/lua/server/ISCoordConversion.lua
1516638799224 Loading: media/lua/server/ISDoor.lua
1516638799226 Loading: media/lua/server/ISObjectClickHandler.lua
1516638799257 Loading: media/lua/server/Items/Distributions.lua
1516638799890 Loading: media/lua/server/Items/ItemBindingHandler.lua
1516638799905 Loading: media/lua/server/Items/ItemPicker.lua
1516638799911 Loading: media/lua/server/Items/ScriptItemInterface.lua
1516638799920 Loading: media/lua/server/Items/SuburbsDistributions.lua
1516638799923 Loading: media/lua/server/Items/WorldFiller.lua
1516638799963 Loading: media/lua/server/Map/MetaEnum.lua
1516638799972 Loading: media/lua/server/Movers/ISBaseMover.lua
1516638799976 Loading: media/lua/server/Movers/MoverStateMachine.lua
1516638799980 Loading: media/lua/server/Movers/MoverStates/ISBaseState.lua
1516638799981 Loading: media/lua/server/Movers/MoverStates/MoveToState.lua
1516638799982 Loading: media/lua/server/Movers/Rabbit.lua
1516638799984 Loading: media/lua/server/NPCs/Behaviour/BaseBehaviour.lua
1516638799988 Loading: media/lua/server/NPCs/Behaviour/GuardBehaviour.lua
1516638799991 Loading: media/lua/server/NPCs/FetchQuest.lua
1516638799993 Loading: media/lua/server/NPCs/ISConversationScript.lua
1516638799998 Loading: media/lua/server/NPCs/NPCEncountersMain.lua
1516638800000 Loading: media/lua/server/NPCs/NPCHouse.lua
1516638800004 Loading: media/lua/server/NPCs/SadisticAIDirector/EventSystem.lua
1516638800010 new event system
1516638800020 Loading: media/lua/server/NPCs/SadisticAIDirector/MetaSurvivor.lua
1516638800027 Loading: media/lua/server/NPCs/SadisticAIDirector/MetaSurvivorGroup.lua
1516638800041 Loading: media/lua/server/NPCs/SadisticAIDirector/RelationshipModifiers/Modifiers.lua
1516638800042 Loading: media/lua/server/NPCs/SadisticAIDirector/SadisticAIDirector.lua
1516638800051 Loading: media/lua/server/NPCs/SadisticAIDirector/SadisticMusicDirector.lua
1516638800061 Loading: media/lua/server/NPCs/SadisticAIDirector/SurvivorSelector.lua
1516638800065 Loading: media/lua/server/NPCs/SendOnLootMission.lua
1516638800072 Loading: media/lua/server/NPCs/TestThing.lua
1516638800072 Loading: media/lua/server/NewSelectionSystem/GridSquareSelector.lua
1516638800074 Loading: media/lua/server/Professions/Professions.lua
1516638800075 Loading: media/lua/server/Seasons/season.lua
1516638800084 Loading: media/lua/server/Seasons/seasonProps.lua
1516638800094 Loading: media/lua/server/Traps/BuildingObjects/TrapBO.lua
1516638800100 Loading: media/lua/server/Traps/ISTrap.lua
1516638800111 Loading: media/lua/server/Traps/ISUI/ISTrapMenu.lua
1516638800113 Loading: media/lua/server/Traps/TrapDefinition.lua
1516638800115 Loading: media/lua/server/Traps/TrapRecipeCode.lua
1516638800120 Loading: media/lua/server/Traps/TrapSystem.lua
1516638800122 Loading: media/lua/server/Traps/trappingCommands.lua
1516638800128 require("TrapSystem") failed
1516638800128 Loading: media/lua/server/TurnBased/TurnBasedMain.lua
1516638800129 Loading: media/lua/server/TutorialHelperFunctions.lua
1516638800130 Loading: media/lua/server/XpSystem/XPSystem_SkillBook.lua
1516638800131 Loading: media/lua/server/XpSystem/XpSystem_text.lua
1516638800132 Loading: media/lua/server/XpSystem/XpUpdate.lua
1516638800144 Loading: media/lua/server/katebaldspottutorial.lua
1516638800148 Loading: media/lua/client/SurvivalGuide/ISTutorialPanel.lua
1516638800153 Loading: media/lua/client/ISUI/ISPanel.lua
1516638800156 Loading: media/lua/client/ISUI/ISUIElement.lua
1516638800185 Loading: media/lua/client/ISUI/ISRichTextPanel.lua
1516638800196 Loading: media/lua/client/ISUI/ISButton.lua
1516638800202 Loading: media/lua/server/mapScripts.lua
1516638800209 Loading: media/lua/server/metazones/metazoneHandler.lua
1516638800209 Loading: media/lua/server/recipecode.lua
1516638800224 Loading: media/lua/server/timedactionshelper.lua
1516638800225 Loading: /home/pzuser/Zomboid/Server/servertest_SandboxVars.lua
1516638800469 Loading: /home/pzuser/Zomboid/Server/servertest_spawnregions.lua
1516638800470 Loading: media/maps/Muldraugh, KY/spawnpoints.lua
1516638800503 Loading: media/maps/West Point, KY/spawnpoints.lua
1516638800542 Loading: media/maps/Rosewood, KY/spawnpoints.lua
1516638800564 Loading: media/maps/Riverside, KY/spawnpoints.lua
Loading world...
1516638800618 Loading: media/lua/shared/Sandbox/Survival.lua
1516638800631 tiledef: loading media/tiledefinitions.tiles
1516638801129 tiledef: loading media/newtiledefinitions.tiles
1516638801813 MOVABLES: Object has only one face defined for group: (Streetname Sign) sheet = street_decoration_01
1516638801813 MOVABLES: Not all members have a valid face defined for group: (Streetname Sign) sheet = street_decoration_01
1516638802131 MOVABLES: Object only has 3 sprites, _might_ have a error in settings, group: (Bail Bonds Sign) sheet = location_shop_accessories_genericsigns_01
1516638802135 MOVABLES: Object only has 3 sprites, _might_ have a error in settings, group: (Tattoo Parlor Sign) sheet = location_shop_accessories_genericsigns_01
1516638802145 MOVABLES: Object only has 3 sprites, _might_ have a error in settings, group: (Pony Roam-o Sign) sheet = signs_one-off_01
1516638802307 tiledef: loading media/tiledefinitions_erosion.tiles
1516638802356 tiledef: loading media/tiledefinitions_apcom.tiles

################## Radio Init ##################
:: Searching for radio data files:
Reading xml: /home/pzuser/pzserveur/media/radio/RadioData.xml
RadioData nodes len: 1
Reading RootInfo...
RootInfo found
Found element: SourceFile
Found element: FileGUID
GUID = b73aa63e-6286-4c32-9e48-3b0024c22b51
Found element: Version
Version = 0
valid file: true
Found file: /home/pzuser/pzserveur/media/radio/RadioData.xml
:: Searching for translation files:
Found file: /home/pzuser/pzserveur/media/radio/RadioData_PL.txt
Adding translation: b73aa63e-6286-4c32-9e48-3b0024c22b51
Found file: /home/pzuser/pzserveur/media/radio/RadioData_FR.txt
Adding translation: b73aa63e-6286-4c32-9e48-3b0024c22b51
Found file: /home/pzuser/pzserveur/media/radio/RadioData_DE.txt
Adding translation: b73aa63e-6286-4c32-9e48-3b0024c22b51
Found file: /home/pzuser/pzserveur/media/radio/RadioData_JP.txt
Adding translation: b73aa63e-6286-4c32-9e48-3b0024c22b51
Found file: /home/pzuser/pzserveur/media/radio/RadioData_ES.txt
Adding translation: b73aa63e-6286-4c32-9e48-3b0024c22b51
Found file: /home/pzuser/pzserveur/media/radio/RadioData_TR.txt
Adding translation: b73aa63e-6286-4c32-9e48-3b0024c22b51
Found file: /home/pzuser/pzserveur/media/radio/RadioData_RU.txt
Adding translation: b73aa63e-6286-4c32-9e48-3b0024c22b51
Attempting to load translation: FR
Translation found!
Count = 8856
Adding (vanilla) file: /home/pzuser/pzserveur/media/radio/RadioData.xml
- GUID: b73aa63e-6286-4c32-9e48-3b0024c22b51
Radio loaded.
################################################

1516638804562 erosion: reading /home/pzuser/Zomboid/Saves/Multiplayer/servertest/erosion.ini
1516638808546 can't find map objects file: media/maps/West Point, KY/objects.lua
1516638808546 Loading: media/maps/Muldraugh, KY/objects.lua
1516638810474 MAX #ZONES is 11
1516638810533 Initialising RakNet...
1516638810534 znet: Java_zombie_core_raknet_RakNetPeerInterface_Init
1516638810534 znet: g_peer = 0x24cf8d0
1516638810534 znet: Java_zombie_core_raknet_RakNetPeerInterface_SetMaximumIncomingConnections
1516638810535 znet: Java_zombie_core_raknet_RakNetPeerInterface_SetServerPort
1516638810535 znet: Java_zombie_core_raknet_RakNetPeerInterface_SetIncomingPassword
1516638810536 znet: Java_zombie_core_raknet_RakNetPeerInterface_SetOccasionalPing
1516638810536 znet: Java_zombie_core_raknet_RakNetPeerInterface_Startup
1516638810536 znet: Zomboid Steam Server started, ports 8766 and 16261 must be open on the router
1516638810546 znet: OnRakPeerStartup
1516638810552 znet: RakNet-through-Steam mode activated
RakNet.Startup() return code: 0 (0 means success)
1516638810552 [VOICE MANAGER] VoiceInit
1516638810552 znet: Java_zombie_core_raknet_RakVoice_RVInitServer
1516638810553 znet: g_peer = 0x24cf8d0
*** SERVER STARTED ****
*** Steam is enabled
server is listening on port 16261
1516638810559 LuaNet: Initializing...
1516638810560 LuaNet: Registering server listener...
1516638810560 LuaNet: Initialization [DONE], triggering events for 'LuaNet.onInitAdd'.
1516638810560 ##########
Server Steam ID 90113023699753991
##########
1516638810655 znet: OnPolicyResponse
1516638810656 znet: Zomboid Server is VAC Secure


Pas d’erreur notable, le serveur indique :

*** SERVER STARTED ****
*** Steam is enabled

Notre serveur est fonctionnel.

Pour l'arrêter proprement entrez :

Code BASH :

quit 


Je mettrais la liste des commandes plus bas.

4 - Accès au serveur


Comme vu plus haut, il y a 2 cas :

  1. Vous hébergez votre serveur chez vous
  2. Vous louez un serveur dédié chez un hébergeur

 
Cas 1 : vous hébergez votre serveur chez vous.

Votre serveur est chez vous dans votre LAN, dans votre réseau local, pas de souci, vous restez dans votre réseau, donc dans l’interface du jeu, vous entrez l’IP fixe de votre serveur, dans mon cas, 192.168.1.202 et vous ne touchez pas au port qui par défaut est le 16261.

Maintenant, il faut accéder à votre serveur depuis le WAN, Internet, pour vos amis, de chez eux.

Pour l’extérieur, un autre équipement entre en compte, votre routeur (la box de votre FAI).
En effet, quand vous vous connectez depuis PZ, il vous demande une IP et un port.
Or l'IP à indiqué pour les amis de l’extérieur, c'est l'IP Public, laquelle vous identifie sur Internet.

Récupère-la par exemple sur ce site :
http://www.mon-ip.com/

Ensuite, il faut demander a votre routeur de rediriger certains ports externes vers votre serveur en UDP.

Ce qu’il faut comprendre, c’est que vous avez besoin d’un port par joueur qui se connectera à votre serveur plus un.

Je vous conseille donc d’ouvrir une plage de port en partant du 16261 en UDP.
Par exemple, vous êtes 10 à jouer,
Ouvrez du 16261 au 16272 vers 192.168.1.202 (l’IP interne de votre serveur)

Attention, dans l’interface de connexion du jeu, laissez bien le port 16261, le client initie la connexion avec le serveur sur ce port, mais c’est le serveur qui va indiquer sur quel port le client va se connecter pour la suite.

Je vous laisse ce site qui vous donne la procédure pour une grande partie des box actuelles.

https://www.game-up.fr/comment-ouvrir-les-ports-de-son-routeur/

Sinon Google est votre ami !

Vous pouvez maintenant tester en vous connectant via votre IP publique (de chez vous ou pas !)

Normalement, tout devrait bien se passer, comme depuis votre LAN.

Cas 2 : vous louez un serveur dédié chez un hébergeur.

Peut-être le cas le plus simple !
Utiliser l'adresse fourni par votre hébergeur dans l'interface de connexion de PZ et le tour est joué.

Si vous rencontrez des problèmes de connexions, que nous parlions de réseau interne ou externe, et si vous avez suivi la procédure ci-dessus, pensez avant tout à votre pare-feu/antivirus.
Désactivez-le temporairement pour vérifier la connexion.

J’ai l’exemple de NOD32 8 qui n’est qu’un Antivirus.
Il a une fonction de blocage par filtre d’application et si l’application Steam et Java ne sont pas indiquées comme ayant le droit d'accéder au réseau, la connexion ne passe pas.
J’en parle parce qu’il m’a fallu 3/4h avant de détecter le problème.

5 - Un peu plus loin


Multiplexeur de terminal

Nous avons un serveur qui tourne, mais si je me déconnecte de mon terminal, le serveur s'arrête.
Ce n’est pas pratique du tout.

Pour pallier à cela, nous allons utiliser un multiplexeur de terminal.

En gros dans une même fenêtre, vous allez pouvoir créer x session et surtout pouvoir vous en détacher.
Et le truc encore plus cool, c’est que lorsque vous vous en détachez, la session est toujours active, donc le serveur également.

Perso, j’utilise tmux pour cela, mais screen fonctionne très bien également.

Clairement, ce ne sera pas un tuto sur tmux mais un tuto sur l’utilisation dans le cadre de notre serveur.

Nous allons donc installer tmux

EN ROOT

Code BASH :

root@pzserveurdjin:/# apt-get install tmux


On se remet dans notre session utilisateur.

EN ROOT ou non, ça n'a pas d'importance, mais si vous suivez dans la chronologie, vous serez en root.

Code BASH :

root@pzserveurdjin:/# su - pzuser


Je pars du principe que votre serveur est actuellement arrêté, nous n'allons pas le lancer plusieurs fois.
On créer une session tmux

Code BASH :

pzuser@pzserveurdjin:~$ tmux


Nous voilà dans une session tmux.
Une bande verte en bas nous le confirme avec :

[0] 0:bash* "pzserveurdjin" 09:42 23-janv.-18


On peut renommer cette session, c’est plus propre :

Code BASH :

Ctrl + b et ,


La barre du bas passe en jaune et indique.

Code BASH :

(rename-window) bash


Vous pouvez supprimer bash, mettre “pzserveur” par exemple et faire Entrée pour valider.

De cette session, vous pouvez donc vous rendre dans le répertoire de votre serveur et le lancer :

Code BASH :

pzuser@pzserveurdjin:~$ cd pzserveur/ pzuser@pzserveurdjin:~/pzserveur$ ./start-server.sh


Je vous passe le retour de la console, on a compris !

Maintenant, nous allons nous détacher de la console.

Code BASH :

Ctrl + b et d


La console indique :

Code BASH :

[detached (from session 0)]


Ou session 0 est le l'identifiant de la session

Pour vous y reconnecter, faite

Code BASH :

pzuser@pzserveurdjin:~$ tmux attach


Vous pouvez préciser si besoin le numéro de session si vous en avez plusieurs.

Code BASH :

pzuser@pzserveurdjin:~$ tmux attach -t 0


On peut toujours arrêter le serveur :

Code BASH :

quit


Et quitter (pas détaché) la session en cours :

Code BASH :

Ctrl + b et x


Administration du serveur PZ

Dans la console du serveur, vous pouvez :

  • modifier les option du jeu
  • passer un utilisateur en admin (vous ?)
  • bannir/kick un joueur
  • et plein d’autres choses.


Je ne vais pas vous lister toutes les commandes car déjà , je ne les maîtrise pas toutes mais nous allons voir comme s’y retrouver.

Première précision un peu déconcertante, la console continu d’afficher des choses pendant que vous entrez des commandes. Le fait que votre commande soit découpée avec le retour de la console n’est pas grave, continué comme si de rien n'était. C’est bizarre, je sais !

Déjà dans la console, tapez :

Code BASH :

help


Voici le résultat de la commande "help" : toutes les commandes possibles de votre serveur.

List of admin commands :
* addalltowhitelist : Add all the current users connected with a password in the whitelist, so their account is protected.
* additem : Add an item to a player, if no username is given the item will be added to you, count is optional, use /additem \"username\" \"module.item\" count, ex : /additem \"rj\" \"Base.Axe\" count
* adduser : Use this command to add a new user in a whitelisted server, use : /adduser \"username\" \"pwd\"
* addusertowhitelist : Add the user connected with a password in the whitelist, so his account is protected, use : /addusertowhitelist \"username\"
* addxp : Add experience points to a player, use : /addxp \"playername\" perkname=xp, ex /addxp \"rj\" Woodwork=2
* alarm : Sound a building alarm at the admin's position. Must be in a room.
* banid : Ban a SteamID, use : /banid SteamID
* banuser : Ban a user, add a -ip to also ban his ip, add a -r \"reason\" to specify a reason for the ban, use : /banuser \"username\" -ip -r \"reason\", ex /banuser \"rj\" -ip -r \"spawn kill\"
* changeoption : Use this to change a server option, use : /changeoption optionName \"newValue\"
* chopper : Start the choppers (do noise on a random player)
* connections : Displays info about all connections
* createhorde : Use this to spawn a horde near a player, use : /createhorde count \"username\", ex /createhorde 150 \"rj\", username is optional except from the server console.
* disconnect : Kicks a client by connection number. Use /connections to see connection numbers. use : /disconnect index, ex /disconnect 2
* godmod : Set a player invincible, if no username set it make you invincible, if no value it toggle it, use : /godmode \"username\" -value, ex /godmode \"rj\" -true (could be -false)
* godmode : Set a player invincible, if no username set it make you invincible, if no value it toggle it, use : /godmode \"username\" -value, ex /godmode \"rj\" -true (could be -false)
* gunshot : Start a gunshot (do noise on a random player)
* help : Help
* invisible : Set a player invisible zombie will ignore him, if no username set it make you invisible, if no value it toggle it, use : /invisible \"username\" -value, ex /invisible \"rj\" -true (could be -false)
* kickuser : Kick a user, add a -r \"reason\" to specify a reason for the kick, use : /kickuser \"username\" -r \"reason\"
* nightlengthmodifier : Set modifier for night length (1.0 = normal, 0.5 = half, 0.0 = no night, use : /nightlengthmodifier <delta>
* noclip : A player with noclip won't collide on anything, if no value it toggle it, use : /noclip \"username\" -value, ex /noclip \"rj\" -true (could be -false)
* players : List the players connected
* quit : Quit the server (but save it before)
* reloadlua : Reload a Lua script, use : /reloadlua \"filename\"
* reloadoptions : Reload the options on the server (ServerOptions.ini) and send them to the clients
* removeuserfromwhitelist : Remove the user from the whitelist, use: /removeuserfromwhitelist \"username\"
* save : Save the current world
* sendpulse : Toggle sending server performance info to this client, use : /sendpulse
* servermsg : Use this to broadcast a message to all connected players, use : /servermsg my message !
* setaccesslevel : Use it to set new access level to a player, acces level: admin, moderator, overseer, gm, observer. use : /setaccesslevel \"username\" \"accesslevel\", ex: /setaccesslevel \"rj\" \"moderator\"
* showoptions : Show the list of current Server options with their values.
* startrain : Start rain on the server
* stoprain : Stop rain on the server
* teleport : Teleport to a player, once teleported, wait 2 seconds to show map, use : /teleport \"playername\" or /teleport \"player1\" \"player2\", ex /teleport \"rj\" or /teleport \"rj\" \"toUser\"
* teleportto : Teleport to coordinates, use: /teleportto x,y,z, ex /teleportto 100098,189980,0
* thunder : use: /thunder start or /thunder stop
* unbanid : Unban a SteamID, use : /unbanid SteamID
* unbanuser : Unban a player, use : /unbanuser \"username\"
* voiceban : Block voice from user \"username\", use : /voiceban \"username\" -value, ex /voiceban \"rj\" -true (could be -false)


Par exemple, on peut voir les options de notre serveur :

Code BASH :

showoptions


Cette commande vous renvoie le contenu du fichier de configuration du serveur que vous trouverez dans

/home/pzuser/Zomboid/Server/servertest.ini

Je vous avoue que la console n’est pas super bien pensé, je préfère donc modifier le fichier directement et recharger la config après (commande reloadoptions dans la console du serveur PZ)

C'est vu la fin de ce tuto.

J’espère avoir été clair.
Si ce n'est pas le cas, que vous aillez des soucis ou que j'ai fait des erreurs, n’hésitez pas.

C’était Djin, depuis le fond de son abris fortifier du 2ème étage dans West Point, qui à réussi à mettre en route son générateur pour vous poster ces quelques lignes.

Inspiré de Sceeker sur cette page http://projectzomboid.fr/forum/topic-1935-1+tuto-creer-parametrer-modder-un-serveur-et-ajouter-map.php et d'Internet


Information sur Djin, l'auteur de l'article

L'informatique est d'abord une passion avant d'être mon métier.

Écrire un commentaire