ATTENTION Doc en court de rédaction, veuillez excuser la présentation et l'orthographe approximative (rédigée à la volée)
Sur le serveur : Commencez par vous créer un user (avec un password) pour minecraft.
sudo adduser minecraft
Ce qui suit doit être réalisé loggué avec ce user. Dans le home minecraft créez un repertoire qui va recevoir les fichiers de votre serveur (l'instance). Dans l'exemple il sera appelé server-1.18
Nous n'allons utiliser le java de votre serveur mais un spécifique que nous allons désarchiver dans le dossier de l'instance.
Récupérer en local la version la java 18 pour linux x64 sous forme de JRE ici

Envoyer le fichier dans le répertoire de l'instance distante comme suit. Placez vous dans le répertoire où le fichier du java a été téléchargé puis :
scp ./OpenJDK18U-jre_x64_linux_hotspot_18.0.2.1_1.tar.gz minecraft@domaine.fr:/home/minecraft/server-1.18
Sur le serveur logué avec minecraft, placez vous dans le répertoire de l'instance et décompressez l'archive comme suit :
tar -xvf OpenJDK18U-jre_x64_linux_hotspot_18.0.2.1_1.tar.gz
Créez un script qui va ajouter java dans le path et positionner la variable java home
touch set-java.sh
Editez le fichier nouvellement créé et insérez le code suivant :
#!/bin/bash
JAVA_VERSION=$(find . -name 'jdk-*-jre' | sed 's/.*jdk-//; s/-jre//')
export JAVA_HOME=jdk-$JAVA_VERSION-jre/bin/java
export PATH=jdk-$JAVA_VERSION-jre/bin:$PATH
Rendez le script executable avec :
chmod +x set-java.sh
Ajoutez les variables du script à l'environnement d'exécution avec :
source set-java.sh
Dorénavant lorsque vous allez saisir la commande suivante la version de java renvoyé sera bien celle que nous avons téléchargé.
java -version
Nous allons télécharger forge (l'api qui permet de charger les mods dans minecraft) directement dépuis le serveur. Rendez vous sur le site suivant : forge
Selectionnez la bonne version dans le menu déroulant gauche, pour nous la version 1.18.2 Faites un clique droit sur le bouton Installer de la version latest et copiez le lien. Vous allez devoir nettoyer le lien avant de le télécharger depuis votre serveur afin de retirer l'intermédiaire publicitaire. Pour l'instant votre lien ressemble à ça :
https://adfoc.us/serve/sitelinks/?id=271228&url=https://maven.minecraftforge.net/net/minecraftforge/forge/1.18.2-40.1.85/forge-1.18.2-40.1.85-installer.jar
Une fois nettoyé:
https://maven.minecraftforge.net/net/minecraftforge/forge/1.18.2-40.1.85/forge-1.18.2-40.1.85-installer.jar
Copier ce lien puis dans la console de votre serveur faites un wget depuis le répertoire de l'instance:
wget https://maven.minecraftforge.net/net/minecraftforge/forge/1.18.2-40.1.85/forge-1.18.2-40.1.85-installer.jar
Nous allons exécuter forge afin d'installer le serveur à proprement parlé.
java -jar forge-1.18.2-40.1.85-installer.jar --installServer
Lancez le serveur une première fois afin qu'il crée les fichiers nécessaires à sa configuration
./run.sh
Une fois le serveur fermé, acceptez les conditions d'utilisation en passant la variable eula à true dans le fichier eula.txt nouvellement apparu suite à l'exécution du serveur.
Relancez le serveur.Une fois le lancement du serveur terminé fermez le avec la commande stop Si besoin quittez la console du serveur forge avec un ctrl+c si besoin apres le stop. Editez le fichier user_jvm_args.txt et insérez les arguments suivant (ici on octroie 6 GB au serveur, adaptez cette valeur):
-Xmx6G -XX:+UseShenandoahGC -XX:+UnlockExperimentalVMOptions -XX:+AlwaysPreTouch -XX:+UseStringDeduplication -Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true -XX:-OmitStackTraceInFastThrow -XX:+OptimizeStringConcat -Dfml.readTimeout=180
Voici le poste reddit qui a servit à créer cette ligne d'arguments
Puisque à chaque mise à jour de forge le run.sh va être mise à jour nous allons créer notre propre fichier de démarrage du serveur.
touch server-start.sh
chmod +x server-start.sh
Editez ce fichier avec les mêmes lignes que nous avions mis dans le set-java.sh auxquelles on adjoint le reste des parametres suivant :
#!/bin/bash
JAVA_VERSION=$(find . -name 'jdk-*-jre' | sed 's/.*jdk-//; s/-jre//')
export JAVA_HOME=jdk-$JAVA_VERSION-jre/bin/java
export PATH=jdk-$JAVA_VERSION-jre/bin:$PATH
VERSION=$(find . -name 'forge-*-installer.jar' | sed 's/.*forge-//; s/-installer.jar//')
screen -dmS minecraft java @user_jvm_args.txt @libraries/net/minecraftforge/forge/$VERSION/unix_args.txt "$@"
screen -r minecraft
ATTENTION Afin de faciliter les mises à jours ce script va dynamiquement récupérer la version de forge et de java dans votre instance, afin qu'il fonctionne vous ne devez donc avoir qu'un seul répertoire jdk-version-jre et qu'un seul installeur forge forge-version-installer.jar
Dans le fichier server.properties vous pouvez modifier online-mod à false afin de cacher votre serveur.
ATTENTION Si vous avez un firewall sur le serveur il va falloir ouvrir le port 25565 (par defaut, à vérifier dans server.properties)
exécutez le script server-start.sh Au vue de ce qu'il contient il s’exécute dans un screen nommé minecraft. Le screen permet de pouvoir se détacher de la console forge et clore la connexion ssh sans que le serveur se ferme. Pour se détacher du screen faites la commande ctr+a (lachez puis faites)d Pour lister les screens:
screen -ls
Pour reprendre le screen :
screen -r minecraft
Si vous n'avez qu'un seul screen vous pouvez simplement faire screen -r Le nom du screen peut aussi être l'id, juste le nom, ou l'id+.nom
Sous linux Installez multi mc Dans le répertoire de multimc désarchiez le meme java que nous avions mis sur le serveur Faites modifier l'instance et dans les parametres cliquez installation java et selectionnez la version de java que nous venons de dézipper (selectionnez java dans bin) passez le maximum de ram à 8g0. Dans les arguments java copiez la ligne suivante :
-XX:+UseShenandoahGC -XX:+UnlockExperimentalVMOptions -XX:+AlwaysPreTouch -XX:+UseStringDeduplication -Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true -XX:-OmitStackTraceInFastThrow -XX:+OptimizeStringConcat -Dfml.readTimeout=180
Cliquez Lancer afin d'initialiser puis fermez le. Dans modifier l'instance, puis dans version installez forge à la même version que celle sur le serveur. Vous pouvez relancer le jeu en local.
Téléchargez un mod pour votre version de minecraft. N'oubliez pas les dépendances si besoin. Par exemple pour tree harverster (permet de miner tout un arbre en tapant la base de celui ci) tree harvester sur curesforge On voit qu'il a besoin de la dépendance collective
La plupart des mods sont à mettre à la fois en local et sur le serveur dans le répertoire mods Certains sont uniquement en local, d'autres uniquement sur le serveur. Il est conseillé de faire trois repertoire locaux (local mods, server mods et common mods) de cette manière vous n'aurez qu'à envoyer common mods et server mods sur le serveur et à installer en local common mods et local mods.
Les fichiers de configuration des mods sont dans le repertoire config.
ATTENTION Chaque mod peut nécessiter une ou plusieurs dépendances. Elle ne sont pas spécifiées ici.