ATTENTION Doc en court de rédaction, veuillez excuser la présentation et l'orthographe approximative (rédigée à la volée)

Server

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

select_java_version_for_minecraft.png
Sélectionner la bonne version java

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

Client

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.

Installer un mod

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.

Liste de mods sympa

ATTENTION Chaque mod peut nécessiter une ou plusieurs dépendances. Elle ne sont pas spécifiées ici.

quality of life

  • Tree Harvester : Permet d'abattre la totalité des blocs d'un arbre en un coup
  • Fast Leaf : Les feuilles d'un arbre tombent plus vite
  • Just enough items : JEI est un mod de visualisation d'articles et de recettes pour Minecraft.
  • JEI integration : addon pour JEI ajoute des infos bulles et l'integration de recettes pour certains mods
  • JEI Enchantment Info : ajoute des infos sur les enchantements
  • Just Enough Descriptions : mod qui ajoute des descriptions à chaque élément et bloc
  • Just Enough Professions : Ce mod ajoute de nouvelles fonctionnalités à JEI. Cette nouvelle fonctionnalité permet à l'utilisateur de déterminer quelles tables de travail sont nécessaires pour chaque métier de villageois.
  • Just Enough Resources : Informe des mobs des mobs drop, dongeons loots et emplacement des minerais
  • The One probe : Permet l'affichage de détail en ciblant une entité
  • Grave Stone : Créer une tombe à la mort avec votre stuff à l'intérieur
  • MmmMmmMmmMmm : Ajoute un mannequin à frapper pour mesurer son dps
  • JourneyMap : JourneyMap cartographie votre monde Minecraft en temps réel pendant que vous explorez.Vous pouvez afficher la carte dans un navigateur Web ou dans le jeu sous forme de mini-carte ou en plein écran.
  • Iron Chests : ajoute des coffres upgradable
  • Nature's Compass : Ajoute une boussole qui permet de connaître la direction des biomes
  • Carry On : Permet de porter des coffres pleins
  • Craftable Horse Armour & Saddle : Permet de crafter des armures et des selles pour les chevaux
  • Crafting Tweaks : Ajoute des boutons aux tables de craft pour tourner, équilibrer les items. etc
  • NetherPortalFix : Permet d'être certain de ressortir au même endroit lorsque l'on repasse par le même portail pour le nether malgré le rapport 8:1 qui provoque parfois une confusion entre des portails trop proches.
  • Ocean Floor - Clay Sand and Dirt : Ajoute des matériaux dans le fond des océans
  • Sophisticated Backpacks : Ajoute des sac à dos que l'on peut poser.
  • Waystones : Ajoute des pierres de téléportation sur la map.
  • Traveler's Titles : (COTE CLIENT UNIQUEMENT) Ajoute un message quand vous entrez dans un biome
  • Scannable : Ajoute un scanner
  • Scaffolding Drops Nearby (Forge) : Ajoute des échafaudages
  • Moving Elevators : Ajoute des ascenseurs
  • Experience Obelisk : Permet de stocker l'xp
  • Disenchanting : Permet de désanchanter un objet et de transférer l'enchantement sur un livre
  • Corail Recycler : Ajoute un recycleur d'objets

Équipement

  • Tinkers Construct : Ajoute la possibilité de crafter des armes modulables
  • Redstone Arsenal : Redstone Arsenal ajoute des outils et des armes qui exploitent la puissance de Redstone Flux, le système énergétique ajouté par CoFH et Thermal Expansion.
  • Tool's Complement : Ajoute de l'équipement armure et armes, fonctionne bien avec thermal
  • Mining Gadgets : Outils de minage
  • Comforts (Forge) : Ajoute de sacs de couchage
  • Baubles reborn : Ajoute des emplacements d'équipement (bagues, etc)

tech

déco

Nourriture

Magique

  • Botania:Botania est un mod sur le thème de la magie naturelle à base de fleur

utilitaires et fonctionnalités

  • chunck loader : permet de laisser des chuncks chargés même lorsque aucun joueur n'est pas dedans (attention fonctionne meme lorsque aucun joueur n'est connecté)
  • all the ores : va prendre en charge la génération des minerais afin d'éviter que chaque mod génère les siens et de finir par avoir des doublons, il faut donc désactiver la génération des minerais dans les autres mods
  • Almost Unified : Va faire en sorte d'unifier les recettes. Par exemple un cuivre cuit dans un four thermal ou mekanism donnera le même lingot
  • JAOPCA : Complémentaire avec almost unified pour les poudres
  • Simple Backup : Ce mod est utilisé pour créer des sauvegardes. (UNIQUEMENT COTE SERVEUR)
  • Time Control : Permet de paramétrer la durée du cycle jour nuit
  • Snow! Real Magic! : améliore la neige
  • Serene Seasons : ajoute des saisons à Minecraft !
  • Server Performance - Smooth Chunk Save : Améliore les performances du serveur
  • Realistic Bees : Rend les abeilles plus réalistes
  • nutritionalbalance: Si vous mangez varié vous serez plus fort
  • No Hostiles Around Campfire (Forge) : Les mobs ne peuvent pas spawner autour des feux de camps
  • Regrowth : Mods complexe, voir le lien
  • Polymorph : Permet de choisir entre différentes recettes en cas de conflit entre mod
  • Flower Seeds : Ajoute des graines pour les fleurs
  • Oh The Biomes You'll Go : Ajoute des biomes
  • Fix Experience Bug : Corrige un bug qui parfois affiche l'xp a zero quand on change de dimension
  • DoggyTalents : Permet de dresser les chiens et de leur apprendre des choses
  • allthemodium : Ajoute le minerai modium
  • AI improvements : (UNIQUEMENT COTE SERVEUR) Améliore les performances du serveur