Hosting a Project Zomboid dedicated server can be done in Windows or Linux.
Télécharger les fichiers pour le serveur
Avec Steam
- Naviguez dans votre bibliothèque Steam et recherchez les outils.
- Localisez 'Project Zomboid Dedicated Server' et téléchargez/installez-le.
Note : Ne pas lancer le serveur via Steam. Si vous le faites accidentellement, vérifiez l'intégrité des fichiers.
Avec SteamCMD
SteamCMD est la version en ligne de commande de Steam. Le wiki des développeurs de Valve contient instructions sur la façon de télécharger et de configurer SteamCMD.
Windows
Une fois que vous avez téléchargé et extrait SteamCMD dans le dossier de votre choix, lancez-le en exécutant steamcmd . exe depuis une ligne de commande.
Vous pouvez maintenant configurer le répertoire d'installation où seront stockés les fichiers du serveur dédié.
Ce qui suit est un exemple de congifuration de dossier de téléchargement dans son propre dossier séparer sur le disque C:. Vous pouvez choisir l'emplacement que vous voulez pour stocker les fichiers du serveur.
force_install_dir C:\PZServer
Pour les utilisateurs de Linux, le serveur s'installer sous /home/<MYOURUSERNAME>/.steam/steam/steamapps/common/Project Zomboid Dedicated Server/ sauf indication contraire.
Une fois le répertoire d'installation configuré selon vos préférences, connectez-vous anonymement sur Steam:
login anonymous
Ensuite, téléchargez les fichiers pour serveur Project Zomboid:
app_update 380870 validate
Quand vous voyez le message "Success! App '380870' fully installed", fermez SteamCMD:
quit
Linux
Pour Debian et Ubuntu, installez d'abord steamcmd.
Beaucoup de commandes demandent les droits root. Si vous êtes connecté en tant qu'utilisateur régulier, vous aurez besoin d'ajouter en préfixe la commande sudo.
Par exemple:
# Cette commande exige le niveau root dpkg --add-architecture i386 # Vous aurez donc besoin d'écrire: sudo dpkg --add-architecture i386
dpkg --add-architecture i386 apt-get update apt-get install steamcmd
Ne lancez pas le serveur en tant que root. Ajoutez un utilisateur tel que pzuser.
adduser pzuser
Nous installerons le serveur Project Zomboid sous /opt/pzserver
mkdir /opt/pzserver chown pzuser:pzuser /opt/pzserver
Connectez vous en tant que pzuser
su - pzuser
Créez le fichier de configuration /home/pzuser/update_zomboid.txt qui gèrera steamcmd
cat >$HOME/update_zomboid.txt <<'EOL' // update_zomboid.txt // @ShutdownOnFailedCommand 1 //Mis à zéro si plusieurs serveurs sont mis à jours en même temps @NoPromptForPassword 1 force_install_dir /opt/pzserver/ //Pour les serveurs qui n'ont pas besoin d'authentification login anonymous app_update 380870 validate quit EOL
Maintenant installez le serveur Project Zomboid. Vous utiliserez la même commande chaque fois que vous voudrez mettre à jour votre serveur vers la version la plus récente.
steamcmd +runscript $HOME/update_zomboid.txt
Transfert des ports
Les serveurs dédiés Project Zomboid nécessitent les ports ouverts suivants pour se connecter avec succès aux clients :
8766 UDP
16261 UDP
Ports supplémentaires pour les serveurs non-Steam
En plus des ports requis mentionnés ci-dessus, des ports TCP devront être ouverts pour chaque emplacement de joueur sur le serveur. Par exemple, si l'on souhaite un serveur avec 10 slots, il sera nécessaire d'ouvrir les ports suivants :
8766 UDP
16261 UDP
16262 - 16272 TCP
Remarque : il est possible que ces ports supplémentaires ne soient plus nécessaires à partir de la version 41.65 du jeu.
Démarrer le serveur
Windows
Allez dans le dossier de téléchargement que vous avez spécifié (C:\pzserver si vous avez suivi les étapes ci-dessus) et localisez les trois fichiers batch StartServer.
Le répertoire de téléchargement par défaut si vous avez utilisé Steam pour installer le serveur est C:\Program Files (x86)\Steam\steamapps\common\Project Zomboid Dedicated Server.
Exécutez le fichier batch qui correspond à votre système d'exploitation. Dans la plupart des cas, il s'agit d'un système 64 bits, sauf si vous utilisez intentionnellement un système 32 bits ou une version autre que Steam.
Note importante : Par défaut, le fichier batch StartServer64 spécifie 16 Go de mémoire de démarrage pour le serveur. Vous devez modifier le fichier StartServer64 et changer les fichiers -Xms et -Xmx pour les valeurs que vous voulez utiliser pour la mémoire du serveur, ou le serveur ne démarrera pas avec des erreurs de mémoire.
Un exemple avec 6GB utilisés pour la quantité de mémoire (notez les valeurs -Xms et -Xmx) :
".\jre64\bin\java.exe" -Djava.awt.headless=true -Dzomboid.steam=1 -Dzomboid.znetlog=1 -XX:+UseZGC -XX:-CreateCoredumpOnCrash -XX:-OmitStackTraceInFastThrow -Xms6g -Xmx6g -Djava.library.path=natives/;natives/win64/;. -cp %PZ_CLASSPATH% zombie.network.GameServer -statistic 0
Pour référence, ceci est équivalent à l'option "Mémoire du serveur" lorsque vous utilisez "Hôte" dans le menu principal pour héberger un serveur multijoueur local.
Le lancement d'un serveur ouvre une fenêtre de console de commande qui commence à exécuter le serveur sur votre machine. Lors de la première exécution, il vous demandera de définir un mot de passe pour le compte administrateur qu'il créera. Une fois que le serveur a fini de se configurer avec les paramètres de jeu par défaut, un message s'affiche indiquant le succès ou l'échec.
Linux
Allez dans votre dossier d'installation (default: /home/YOURUSERNAME/.steam/steam/steamapps/common/Project Zomboid Dedicated Server) et lancez le fichier start-server.sh. L'exemple suivant utilise le dossier par défaut :
cd ~/.steam/steam/steamapps/common/Project\ Zomboid\ Dedicated\ Server\/
Ensuite lancez start-server.sh
bash start-server.sh
Cependant, si vous avez suivi les instructions dans le paragraphe install Project Zomboid Server via steamcmd in Linux, vous aurez juste besoin d'exécuter la commande suivante:
/opt/pzserver/start-server.sh
En option, vous pouvez changer le nom du serveur, ce qui changera le fichier .ini utilisé et créera un nouveau dossier de sauvegarde sous ce nouveau nom de serveur :
bash start-server.sh -servername SERVERNAME
Le lancement d'un serveur ouvre une fenêtre de console de commande qui commence à exécuter le serveur sur votre machine. Lors de la première exécution, le serveur vous demandera de définir un mot de passe pour le compte administrateur qu'il créera. Une fois que le serveur a fini de se configurer avec les paramètres de jeu par défaut, un message s'affiche indiquant le succès ou l'échec.
System.d
Une meilleure option est de configurer le serveur pour qu'il fonctionne sous system.d.
Avant de faire ceci:
- démarrer manuellement le serveur (comme décrit ci-dessus) au moins une fois, car la première fois, il vous est demandé d'entrer un mot de passe administrateur.
- assurez-vous que vous n'êtes plus connecté en tant que pzuser (tapez exit si vous l'êtes) - les commandes system.d doivent être exécutées en tant que root.
Tout d'abord, configurez l'unité system.d
cat >/usr/lib/systemd/system/zomboid.service <<'EOL' [Unit] Description=Project Zomboid Server After=network.target [Service] PrivateTmp=true Type=simple User=pzuser WorkingDirectory=/opt/pzserver/ ExecStart=/opt/pzserver/start-server.sh [Install] WantedBy=multi-user.target EOL
Une fois que vous avez fait cela, vous avez les commandes suivantes disponibles :
# Démarre un serveur systemctl start zomboid.service # Stoppe un serveur systemctl stop zomboid.service # Redémarre un serveur systemctl restart zomboid.service # Vérifie l'état du serveur (ctrl-c pour quitter) systemctl status zomboid.service
Les logs sont maintenant gérés par journalctl. Pour accéder aux logs du serveur, exécutez la commande suivante :
journalctl -u zomboid.service -f
Se connecter au serveur
- Lancer Project Zomboid
- Cliquer sur l'option de menu Joindre une partie
- Cliquer sur l'onglet Favoris
- Ajouter votre adresse publique IPV4
- Entrez le port (défaut: 16261)
- Rentrez vos informations de compte (ce que vous souhaitez)
- Cliquez sur Sauvegarder, sélectionnez le serveur, et joignez-le
Remarque I: l'hébergement d'un serveur dédié non-Steam nécessite que les joueurs se connectent via la version non-Steam du client de jeu. Pour les propriétaires de jeux Steam, ceci peut être réalisé en ajoutant '-nosteam' aux options de lancement de Project Zomboid dans le menu des propriétés.
Note II : Si vous hébergez un serveur pour des clients LAN ou VPN, l'adresse IPv4 locale ou l'adresse définie VPN doit être utilisée.
Remarque III : à partir de la version 41.65 du jeu, les joueurs qui hébergent et jouent sur la même machine peuvent uniquement utiliser l'adresse IPv4 publique pour se connecter à leur serveur. Si vous rencontrez des problèmes de connexion, pensez à ajouter votre adresse IPv4 locale dans le champ Local IP de l'écran du serveur. Cette adresse peut être déterminée en cliquant sur Démarrer sur le bureau, en tapant cmd, en appuyant sur Entrée, en tapant ipconfig dans l'invite de commande ouverte et en appuyant sur Entrée.
Administration du serveur
Les administrateurs de serveurs disposent d'une myriade d'outils pour personnaliser et gérer leurs serveurs.
Configuration des paramètres de jeu du serveur
Windows
Emplacements de sauvegarde des données du serveur
Par défaut, le serveur recherche les paramètres du jeu et les données du monde nommés servertest dans C:\Users\YourUsername\Zomboid. Si ces données n'existent pas, le serveur les génère automatiquement en utilisant les paramètres de jeu par défaut. Utilisez le tableau suivant comme référence.
Filename | File Location | Description |
---|---|---|
servertest.ini | C:\Users\YourUsername\Zomboid\Server | Ce fichier contient les paramètres de configuration du serveur. Il est éditable avec le bloc-notes. |
servertest_SandboxVars.lua | C:\Users\YourUsername\Zomboid\Server | Ce fichier contient les paramètres de configuration du sandbox du serveur. Il est éditable avec le bloc-notes. |
servertest_spawnpoints.lua | C:\Users\YourUsername\Zomboid\Server | Ce fichier contient les points de spawn disponibles dans votre serveur. Il est possible de définir des points de spawn personnalisés. Il est éditable avec le bloc-notes. |
servertest_spawnregions.lua | C:\Users\YourUsername\Zomboid\Server | Ce fichier contient les régions disponibles pour le frai (i.e. Muldraugh, Rosewood, etc). Il est éditable avec le bloc-notes. |
n/a | C:\Users\YourUsername\Zomboid\Saves\Multiplayer\servertest | Ce dossier contient les données du monde générées/sauvegardées du serveur. |
Personnaliser les paramètres
La personalisation des paramètres du serveur peut être effectuée de deux manières.
- À travers le client de jeu
- En éditant les fichiers concernés dans le bloc-notes
Pour personnaliser les paramètres à l'aide du client de jeu, lancez Project Zomboid et sélectionnez l'option de menu Héberger suivie de l'option de menu Paramètres.
Si le serveur a été exécuté avec succès au moins une fois :.
- Sélectionnez servertest dans la liste des paramètres de serveur enregistrés.
- Cliquez sur Éditer les paramètres.
- Modifiez les paramètres souhaités et sauvegardez
Si le serveur n'a pas été exécuté au moins une fois :.
- Cliquez sur Créer de nouveaux paramètres
- Nommez ces paramètres servertest.
- Modifiez les paramètres souhaités et sauvegardez
La prochaine fois que le serveur démarrera avec succès, il utilisera les fichiers servertest.ini et lua définis. Les paramètres peuvent être vérifiés en utilisant la commande d'administration showoptions ou en ouvrant servertest.ini, servertest_SandboxVars.lua, servertest_spawnpoints.lua, et servertest_spawnregions.lua dans le bloc-notes.
Note : Les changements peuvent être sauvegardés dans servertest.ini pendant que le serveur fonctionne. Après avoir sauvegardé servertest.ini, utilisez la commande d'administration reloadoptions pour que les modifications soient effectives.
Personnaliser le nom du serveur
Vous pouvez personnaliser le nom de votre serveur pour qu'il soit différent de servertest afin d'avoir des mondes que vous pouvez rapidement lire et identifier, ou pour pouvoir passer à un nouveau monde sans avoir à déplacer un tas de fichiers à la fois côté serveur et côté client pour préserver ce monde.
Avant tout, sachez que les données de la carte du joueur sont stockées localement côté client, sous votre adresse IP et votre port. Si vous ne voulez pas que les informations de la carte soient perdues, vous devrez peut-être modifier le port dans les paramètres de votre serveur. Si vous essayez de sauvegarder un serveur existant, vous avez deux choix devant vous.
- ne jamais utiliser le port 16261 pour aucun autre serveur PZ, ou
- demander à toute personne ayant déjà rejoint le jeu de rechercher un fichier nommé comme 123.45.0.12_16261_a589371111b0ccerf81acc30e918f8c9 [adresse IP du serveur _ port du serveur _ quelque chose] situé dans C:\Users\%votre nom d'utilisateur%\Zomboid\Saves et leur demander de le mettre en lieu sûr ou de modifier le nom du dossier. Faites ensuite une copie de celui que vous utilisez pour lancer servertest normalement en le sélectionnant, en faisant un clic droit, en sélectionnant copier, en faisant un clic droit quelque part dans un espace vide, en collant.
Renommez le nouveau fichier (ou ne le faites pas)
Ouvrez le fichier dans un éditeur de texte (tel que notepad) et insérez -servername YOURSERVERNAME derrière -cp %PZ_CLASSPATH% zombie.network.GameServer
Exemple avec un nom de serveur de "pizza" :
@setlocal enableextensions @cd /d "%~dp0" SET PZ_CLASSPATH=java/istack-commons-runtime.jar;java/jassimp.jar;java/javacord-2.0.17-shaded.jar;java/javax.activation-api.jar;java/jaxb-api.jar;java/jaxb-runtime.jar;java/lwjgl.jar;java/lwjgl-natives-windows.jar;java/lwjgl-glfw.jar;java/lwjgl-glfw-natives-windows.jar;java/lwjgl-jemalloc.jar;java/lwjgl-jemalloc-natives-windows.jar;java/lwjgl-opengl.jar;java/lwjgl-opengl-natives-windows.jar;java/lwjgl_util.jar;java/sqlite-jdbc-3.27.2.1.jar;java/trove-3.0.3.jar;java/uncommons-maths-1.2.3.jar;java/ ".\jre64\bin\java.exe" -Djava.awt.headless=true -Dzomboid.steam=1 -Dzomboid.znetlog=1 -XX:+UseZGC -XX:-CreateCoredumpOnCrash -XX:-OmitStackTraceInFastThrow -Xms4g -Xmx4g -Djava.library.path=natives/;natives/win64/;. -cp %PZ_CLASSPATH% zombie.network.GameServer -servername pizza -statistic 0 PAUSE
En exécutant cette opération, vous créerez un monde avec tous les fichiers nécessaires et les paramètres par défaut que vous pourrez modifier ultérieurement. Si vous avez déjà créé un serveur avec un nom que vous souhaitez utiliser avec tous les paramètres définis comme vous le souhaitez, utilisez le même nom que le fichier dans C:\Users\%votre nom d'utilisateur%\Zomboid\db.
Linux
Emplacements de sauvegarde des données du serveur
Par défaut, le serveur recherchera les paramètres du jeu et les données du monde nommées servertest dans ~/Zomboid (en supposant que vous avez suivi les instructions ci-dessus, ce serait /home/pzuser/Zomboid). Si ces données n'existent pas, le serveur les générera automatiquement en utilisant les paramètres par défaut du jeu. Utilisez le tableau suivant comme référence.
Filename | File Location | Description |
---|---|---|
servertest.ini | ~/Zomboid/Server | Ce fichier contient les paramètres de configuration du serveur. |
servertest_SandboxVars.lua | ~/Zomboid/Server | Ce fichier contient les paramètres de configuration du sandbox du serveur. |
servertest_spawnpoints.lua | ~/Zomboid/Server | Ce fichier contient les points de spawn disponibles dans votre serveur. Il est possible de définir des points de spawn personnalisés. |
servertest_spawnregions.lua | ~/Zomboid/Server | Ce fichier contient les régions disponibles pour le spawn (c'est-à-dire Muldraugh, Rosewood, etc.). |
n/a | ~/Zomboid/Saves/Multiplayer/servertest | Ce dossier contient les données du monde générées/sauvegardées du serveur. |
Commandes administrateur
Les commandes suivantes peuvent être exécutées soit dans la fenêtre de la console du serveur, soit dans le jeu (précédées d'une barre oblique lorsqu'elles sont utilisées dans le jeu), à condition que l'utilisateur ait le statut d'administrateur. Certaines choses sont sensibles à la casse (ex : Base.Axe fonctionne, mais pas base.axe)
Commande | Description |
---|---|
addalltowhitelist | Ajoute tous les utilisateurs actuels qui sont connectés avec un mot de passe à la liste blanche, afin que leur compte soit protégé. |
additem | Donner un objet à un joueur. Si aucun nom d'utilisateur n'est donné, vous recevrez l'objet. Le nombre est facultatif. Utilisation : /additem \"nom d'utilisateur\" \"module.item\" count, ex : additem rj Base.Axe 1 |
adduser | Ajoute un nouvel utilisateur à un serveur sur liste blanche. Utilisation : /adduser \"nom d'utilisateur\" \"pwd\" ex : adduser rj 12345 |
addusertowhitelist | Ajoute un utilisateur connecté avec un mot de passe à la liste blanche, afin que son compte soit protégé. Utilisation : /addusertowhitelist \"username\" ex: addusertowhitelist rj |
addvehicle | Fait apparaître un véhicule. Utilisation : /addvehicle \"script\" \"user or x,y,z\", ex: addvehicle Base.VanAmbulance rj |
addxp | Donne des points d'expérience à un joueur. Utilisation : /addxp \"playername\" perkname=xp, ex: addxp rj Woodwork=2 |
alarm | Déclenche une alarme de bâtiment au poste de l'administrateur. (Doit être dans une pièce.) |
banid | Bannit un SteamID. Use: banid SteamID |
banuser | Bannit un utilisateur. Ajoutez -ip pour aussi bannir une IP. Ajoutez -r \"reason\" pour ajouter une raison. Utilisation: /banuser \"username\" -ip -r \"reason\". Par exemple: banuser rj -ip -r spawn kill |
changeoption | Modifie une option du serveur. Utilisation : /changeoption optionName \"newValue\" ex: changeoption SleepAllowed true |
chopper | Place un événement hélicoptère sur un joueur aléatoire |
createhorde | Fait apparaître une horde près d'un joueur. Utilisation : /createhorde count \"username\", ex: createhorde 150 rj, username est optionnel, à l'exception de la console du serveur |
createhorde2 | Inconnu (ERREUR: Traduction manquante "UI_ServerOptionDesc_CreateHorde2") |
godmode | Rend un joueur invincible. Aucun nom d'utilisateur ne permet d'activer l'auto-invincibilité. Utilisation : /godmode \"username\" -value, ex godmode rj -true (could be -false) |
gunshot | Place des sons de coups de feu sur un joueur aléatoire |
help | Fournit une liste et une description des commandes d'administration. |
invisible | Rend un joueur invisible aux zombies. Si vous ne fournissez pas de nom d'utilisateur, vous pourrez activer l'invisibilité sur vous-même. Utilisation : /invisible \"nom d'utilisateur\" -valeur, ex : invisible rj -true (pourrait être -false). |
kickuser | Kick un utilisateur. Ajoutez -r \"reason\" pour ajouter une raison. Use: /kickuser \"username\" -r \"reason\" |
noclip | Permet au joueur de passer à travers les murs et les structures. Bascule sans valeur. Utilisation: /noclip \"username\" -value, ex: noclip rj -true (could be -false) |
players | Liste tous les joueurs connectés |
quit | Sauvegarde et arrête le serveur |
releasesafehouse | Libérer une planque que vous possédez. Utilisez : /safehouse release |
reloadlua | Recharge un script Lua. Use: /reloadlua \"filename\" |
reloadoptions | Recharge les options du serveur (servertest.ini) et les envoie aux clients. Utile pour mettre en œuvre des changements de paramètres de jeu pendant que les joueurs sont connectés. |
removeuserfromwhitelist | Supprime un utilisateur de la liste blanche. Utilisation : /removeuserfromwhitelist \"nomd'utilisateur\" |
removezombies | Le nom de la commande est explicite ; non testée. (ERREUR : traduction manquante "UI_ServerOptionDesc_RemoveZombies") |
replay | Enregistrement et relecture pour le joueur en mouvement. Utilisation : /replay \"playername\" -record\-play\-stop \filename.\ Exemple: /replay user1 -record test.bin |
save | Sauvegarde le monde de jeu actuel |
sendpulse | Bascule l'envoi d'informations sur les performances du serveur à ce client. Utilisation : /sendpulse |
servermsg | Diffuse un message à tous les joueurs connectés. Utilisation : /servermsg \"text\" |
setaccesslevel | Définit le niveau d'accès d'un joueur. Niveaux actuels : admin, moderator, overseer, gm, observer. E.g. setaccesslevel userName admin / Note : Pour supprimer tout niveau d'accès, utilisez "none" à la place de admin. |
showoptions | Affiche la liste des options et des valeurs actuelles du serveur. |
startrain | Démarrer la pluie sur le serveur |
stoprain | Stoppe la pluie sur le serveur |
teleport | Téléporte à un joueur. Utilisation: /teleport \"playername\" or /teleport \"player1\" \"player2\", ex /teleport \"rj\" or /teleport \"rj\" \"toUser\" |
teleportto | Téléporte à des coordonnées. Use: /teleportto x,y,z, ex /teleportto 100098,189980,0 |
unbanid | Dé-bannit un SteamID. Utilisation: /unbanid SteamID |
unbanuser | Dé-bannit un joueur. Utilisation : /unbanuser \"username\" |
voiceban | Bloque la voix de l'utilisateur "nom d'utilisateur". Utilisation : /voiceban \"username\" -value, ex /voiceban \"rj\" -true (peut être -false) |