# Modding Minecraft

Un mod Minecraft est un mod qui change certains aspects du jeu bac à sable Minecraft. Les mods Minecraft peuvent ajouter du contenu additionnel, apporter des modifications à certaines mécaniques de jeu, et optimiser la performance. Des milliers de mods ont été créés pour le jeu, certains mods devenant même une source de revenus pour leurs auteurs. Bien que Mojang Studios n'offre pas d'interface de programmation pour le modding, des outils communautaires existent afin d'aider les développeurs à créer et distribuer leurs mods. La popularité des mods Minecraft a été citée comme l'une des raisons qui ont aidé Minecraft à devenir l'un des jeux vidéo les plus vendus de tous les temps.
Les premiers mods Minecraft fonctionnaient en décompilant et en modifiant le code source Java du jeu. La version originale du jeu, maintenant nommée Minecraft: Java Édition, est toujours moddée de cette façon, mais en faisant appel à des outils plus avancés. Minecraft: Bedrock Édition, une version du jeu disponible sur mobile, consoles, et Microsoft Windows, est écrit en C++, et ne peut donc pas être moddé de la même façon. Au lieu de cela, les moddeurs doivent utiliser des "add-ons" écrits dans un langage de script pour ajouter du contenu.

## Historique

Minecraft: Java Édition (disponible sur Windows, macOS, et Linux) peut être moddé sur le client (l'installation locale du jeu), sur les serveurs, ou sur les deux simultanément. Les mods client peuvent changer l'apparence et certaines mécaniques du jeu. Les mods serveur uniquement (couramment appelés plugins) peuvent changer les mécaniques de jeu et souvent ajouter des mini-jeux, des protections contre la triche, ou des systèmes de connexion. Pour des aspects plus complexes comme l'ajout de nouveaux blocs, items, mobs, dimensions, ou la modification de mécaniques existantes, un mod équivalent doit être installé à la fois sur le client et sur le serveur pour qu'ils puissent inter-opérer. En mode solo, le client sert à la fois de client et de serveur, et peut faire fonctionner en même temps des mods client et des mods serveur$^,$.
Les mods client peuvent causer une perte de performance (car ils requièrent généralement beaucoup de ressources) sur les ordinateurs plus vieux ou peu performants, surtout si les joueurs utilisent un grand nombre de mods en même temps, ce qui constitue un "modpack". Il est possible d'apporter des modifications au jeu grâce aux rétro-ingénieurs de la communauté, qui utilisent le code source de Minecraft, écrit en Java, pour y apporter des modifications.
Même s'ils ne sont pas officiellement approuvés par Mojang, les mods Minecraft ont la permission d'être créés et partagés en ligne, et l'équipe de développeurs du jeu a une relation informelle avec un grand nombre de moddeurs. Certains développeurs ont même fini par aller travailler pour Mojang après avoir publié des mods à succès. Les mods Minecraft sont généralement offerts gratuitement, en tant que loisir. Les moddeurs qui gagnent de l'argent y parviennent grâce au partage du revenu publicitaire sur les sites de téléchargement, ainsi qu'au financement participatif. Cela permit à certains développeurs d'en faire leur travail à plein temps, et même d'ouvrir leur propre petite entreprise de jeux vidéo destinée aux mods ou aux plateformes de modding.
Le modding des versions mobile et console de Minecraft sur le codebase Bedrock est différent, car ces versions sont écrites en C++ au lieu de Java$^,$. Les joueurs qui souhaitent modder leur jeu sur la version Bedrock du codebase ont accès à un procédé plus simple grâce au support intégré officiel des "add-ons", qui peuvent être installés plus rapidement et plus facilement que les mods Java Édition et ne nécessitent pas de launchers de mods externes. Cependant, les addons sur Bedrock Édition sont moins flexibles et possèdent moins de contenu car ils ne peuvent modifier que les mécaniques que Mojang mettent en avant spécifiquement.
En 2012, Mojang a annoncé qu'ils commençaient à travailler sur un répertoire de mods Minecraft. Le créateur de Minecraft Markus "Notch" Persson admit en 2012 qu'à l'origine, il se méfiait des mods, craignant que le contenu créé par les utilisateurs menacerait sa vision du jeu. Persson dit avoir changé d'avis, affirmant avoir réalisé que les mods sont "une énorme raison d'être de Minecraft". Minecraft 1.13 offre aussi la possibilité d'utiliser des "data packs" qui permettent aux joueurs ou aux opérateurs de serveur d'offrir du contenu additionnel dans le jeu. Ce qui peut être ajouté doit être basé sur les mécaniques existantes, comme l'ajout de nouvelles recettes, la modification de ce que le joueur obtient quand il brise un bloc, ou l’exécution de commandes.
La première version de Minecraft a été publiée en Mai 2009, mais le modding côté client du jeu n'est pas réellement devenu populaire avant que le jeu n'atteigne sa phase alpha en Juin 2010. Les seuls mods à avoir été publiés durant les phases Indev et Infdev du développement de Minecraft étaient quelques mods côté client qui apportaient des changements mineurs au jeu.

### Alpha

Avec la publication de Minecraft Alpha, les premiers mods côté serveur ont commencé à apparaître. L'un d'entre eux était hMod, qui ajoutait quelques outils simples mais nécessaires à la gestion d'un serveur. Michael Stoyke, aussi connu sous le nom de Searge (qui ira plus tard travailler chez Mojang), créa le Minecraft Coder Pack (MCP). Il fut ensuite renommé le Mod Coder Pack, conservant donc le même acronyme. MCP était un outil chargé de décompiler et désobfusquer le code de Minecraft. MCP recompile et obfusque ensuite les classes ayant été ajoutées et modifiées, leur permettant d'être injectées dans le jeu. Cependant, si plusieurs mods modifiaient le same code de base, cela pouvait engendrer des conflits et ainsi une erreur. Pour résoudre ce problème, Risugami's ModLoader fut créé pour empêcher tout conflit de prendre place à cause de plusieurs mods modifiant les mêmes classes de base ou ressources de jeu.

### Bêta

Vers fin 2010, Minecraft s'apprêtait à avancer vers sa phase de développement bêta, et des mods populaires tels que IndustrialCraft, Railcraft et BuildCraft furent publiés. Contrairement à leurs prédécesseurs, ces mods avaient le potentiel conféré par l'addition de nouveau contenu et mécaniques, au lieu de se contenter de modifier quelques aspects mineurs du jeu.
Bukkit, un mod côté serveur ayant pour but de remplacer CraftBukkit, un logiciel pour serveur implémentant l'interface de programmation Bukkit, fut également publié. Il permet aux gérants de serveurs d'installer des plugins afin de modifier la façon dont le serveur reçoit les informations et les envoie au joueur sans que les joueurs n'aient besoin d'installer des mods côté-client.
CurseForge, un site web recueillant le contenu créé par les utilisateurs pour les jeux vidéo, ajoute des forums et une section destinés aux mods Minecraft vers mi-2011. Au début, CurseForge contenait surtout des liens vers des plugins Bukkit présents sur le site internet de Bukkit.

### Lancement

Vers Novembre 2011, le Forge Mod Loader et Minecraft Forge ont été publiés. Forge permettait aux joueurs de faire fonctionner plusieurs mods simultanément, en utilisant les mappings du Mod Coder Pack. Une version serveur de Forge fut aussi publiée, ce qui permit aux joueurs de créer des serveurs moddés. Forge mit fin à la manipulation nécessaire du code source de base, permettant à différents mods de fonctionner ensemble sans qu'ils n'aient besoin de toucher au code source de base. Forge inclut aussi de nombreuses bibliothèques et intégrations facilitant le développement des mods.
Après le lancement de Minecraft en Novembre 2011, la communauté de modding du jeu continua d'accroître. En Février 2012, Mojang embauche les développeurs de Bukkit pour travailler sur une interface de programmation officielle, offrant ainsi aux développeurs de mods un accès plus simple aux fichiers de jeu de Minecraft. Bukkit fut ensuite entretenu par la communauté.
Un fork de CraftBukkit nommé Spigot, qui était rétro compatible avec les plugins, commença son développement. En 2012, Spigot publie un logiciel pour serveur appelé BungeeCord, qui permet de relier plusieurs serveurs ensemble via un serveur proxy servant de lien. L'interface de programmation de plugin de BungeeCord est séparée de celle de Spigot, où les plugins de Spigot peuvent fonctionner ensemble. De nombreux serveurs Minecraft populaires utilisent BungeeCord pour relier plusieurs serveurs Minecraft ensemble.
Début 2014, un logiciel pour serveur nommé Sponge fut publié avec une interface de programmation de plugins bien plus puissante que celle de Bukkit, ainsi qu'un support pour les mods Forge. Sponge introduit également les mixins, qui servent d'alternative à la modification du code byte.

### Rachat de Minecraft par Microsoft

L'acquisition de Mojang par Microsoft en mi-2014 émit une vague de doute. Les membres de la communauté de modding craignaient que les nouveaux propriétaires de Minecraft mettraient un terme à la liberté que Mojang avait l'habitude de conférer aux développeurs de mods. Malgré ces inquiétudes, Microsoft n'annonça aucun changement à la politique de Mojang, et le modding ne fut pas affecté.
En Avril 2015, Microsoft annonce l'ajout d'un Mod Developer Pack pour Minecraft sur Microsoft Visual Studio, permettant aux utilisateurs du logiciel de création d'applications de programmer des mods Minecraft plus facilement. Microsoft publia ce nouveau pack en open source et gratuitement, dans une initiative visant à encourager la publication de logiciels open source$^,$.
Le 4 Juillet 2015, une version "Windows 10" de Minecraft fut annoncée. Celle-ci, contrairement aux versions précédentes, allait être programmée en C++. Cette annonce émit le doute parmi les fans du jeu, qui craignaient que les versions Java finiraient par entièrement disparaître. Ceci impacterait grandement la production de mods, étant donné que C++ ne peut pas être rétro-conçu de la même façon que Java. Cependant, le développeur Mojang Tommaso Chechi rassura les fans sur Reddit que le modding était "trop important" pour Minecraft pour que les versions Java soient discontinuées.
En Avril 2017, Mojang annonce la future création du Minecraft Marketplace, où les joueurs pourront vendre le contenu qu'eux même ont créé pour la version Window 10 du jeu (qui utilise le codebase Bedrock de Minecraft). Cette nouvelle boutique digitale se spécialiserait dans les maps d'aventure, les skins, et les packs de texture. PC World note que cette addition rendra la version Windows 10 "un peu plus proche des mondes moddables auxquels sont habitués les joueurs classiques" de la version Java Édition originale.
En Décembre 2018, une nouvelle chaîne de compilation pour le modding et mod loader nommé Fabric a été lancé.
En Avril 2022, un fork de Fabric, connu sous le nom de Quilt, fut publié. Le Quilt loader a pour but d'être compatible avec les mods créés pour Fabric.

## Contenu des mods

Il est difficile d'estimer le nombre total de mods Minecraft de par leur quantité. CurseForge, un site de stockage de mods, contenait plus de 100,000 mods en Mars 2022.
Certains mods améliorent les mécaniques de jeu existantes. Le mod Journeymap ajoute une mini-carte à l'interface utilisateur du jeu. Just Enough Items ajoute un moyen de chercher facilement n'importe quelle recette du jeu. Chisel ajoute un grand nombre de nouvelles variations des blocs du jeu à des fins esthétiques. D'autres mods ajoutent des biomes, cultures, dimensions, nourritures, armures, et autres.
Les mods sont parfois regroupés dans un type de contenu téléchargeable nommé "modpack". Ces derniers peuvent être téléchargés et joués facilement sans que l'utilisateur n'ait besoin d'avoir les connaissances nécessaires à la mise en place d'un environnement moddé. Les interactions entre ces mods peuvent être gérées et améliorées par les créateurs, en faisant appel aux fichiers de configuration et aux textures customisées$^,$.

### WorldEdit

WorldEdit est un outil de modification développé par le groupe EngineHub qui assiste le joueur lors de la construction de structures et la customisation du terrain. Il offre une variété d'outils tels que des pinceaux ou des remplaceurs de blocs, ainsi que des actions comme le copier-coller, le remplissage, ou la sélection de formes géométriques. Ces outils peuvent grandement accélérer le temps de construction, étant donné qu'ils offrent des fonctionnalités n'étant pas présentes dans le jeu de base$^,$. Ce mod a été mis en avant sur le site internet de Minecraft comme l'un de leurs outils de construction les plus populaires, a été utilisé dans des brevets d'invention aux États-Unis$^,$$^,$, et cité dans des articles scientifiques. Il a été publié dans le monde entier le 28 Septembre 2010 en tant que plugin pour la modification hMod, puis fut ensuite porté en tant que plugin Bukkit, ainsi qu'en mod pour les loaders Fabric et Forge$^,$$^,$$^,$$^,$.

### Logiciels malveillants

Les mods Minecraft ont été vecteurs de logiciels malveillants, qui forcent l'utilisateur à télécharger et lancer des mods malintentionnés$^,$.
En Mars 2017, l'entreprise technologique slovaque ESET révèle que 87 exemples de cheval de Troie ont été distribués par Google Play sous le couvert de mods Minecraft. Leur but était soit d'afficher des publicités, soit de pousser les joueurs à télécharger d'autres applications. Ensemble, ces faux mods ont amassé plus de 1 000 000 téléchargements durant les trois premiers mois de 2017$^,$.
En Juin 2023, des assaillants on gagné accès à des mods et modpacks populaires contenant Better Minecraft et en ont créé de nouvelles versions, qui contenaient un logiciel malveillant nommé "Fractureiser" après le compte CurseForge l'ayant mis en ligne$^,$.
En Juillet 2023, une vulnérabilité dans l'exécution du code arbitraire a été trouvée dans plusieurs mods Minecraft basés sur Forge tels que BdLib et EnderCore. Le logiciel malveillant a été nommé "BleedingPipe" par une communauté destinée à la sécurité de Minecraft. Il profite des mods faisant une utilisation incorrecte de la désérialisation dans la classe "ObjectInputStream". Même si cette vulnérabilité existe depuis 2017, un post sur le blog de la MMPA (Minecraft Malware Protection Alliance en anglais) l'a amené sur le devant de la scène, en répandant l'usage avant qu'il ne puisse être corrigé$^,$.

## Accueil

Nate Ralph de PC World appelle l'installation des mods Minecraft "un procédé quelque peu alambiqué", mais il admet qu'il pourrait servir aux joueurs qui souhaitent "en tirer un peu plus de l’expérience" de jeu.
Max Eddy de PC Magazine soulève un point concernant le procédé de mise en place d'un jeu agrémenté de mods, disant qu'il "semble plutôt compliqué" et qu'au premier abord, il avait "vraiment trop peur pour modder Minecraft", mais est venu à l'apprécier quand il s'est rendu compte que modder Minecraft a "une bonne marge d'erreur". Cependant, Eddy mentionne avoir l'impression que la vitesse de développement rapide de Mojang quant au jeu principal a ralenti le progrès des mods les plus populaires.
Le mod Galacticraft a été nommé mod de la semaine sur PC Gamer en Juillet 2013.
Sur San Jose Mercury News, George Avalos assure que les mods sont adaptés aux "amateurs mainstream", mais recommande tout de même de prendre certaine précautions afin d'éviter de télécharger "des logiciels spammeurs et dangereux" en recherchant des mods Minecraft. Avalos remarque que l'aide d'un adulte sera sûrement nécessaire pour l'installation des mods, même si Minecraft et dirigé vers un public jeune de plus de 3 ans.

## Support officiel
### Éducation

Les mods Minecraft ont été cités comme raison ayant mené de nombreux enfants à s'intéresser au code et à la programmation. Plusieurs projets éducationnels ont été créés pour encourager les élèves à apprendre à coder à travers Minecraft, comme LearnToMod ComputerCraftEdu, et Minecraft: Pi Edition, tous offerts gratuitement aux enseignants. De plus, des cours de programmation utilisant Minecraft ont été lancés à l'Université de Californie, qui vise à apprendre aux enfants entre 8 et 18 ans comment programmer une application$^,$$^,$.
En 2011, MinecraftEDU a été créé en tant que mod payant vendu aux écoles qui permettaient l'apprentissage d'une plus grande variété de matières comme les langues, l'histoire et l'art. En Janvier 2016, Microsoft l'a acheté et en a fait une version séparée de Minecraft nommée Minecraft: Éducation Édition.
Dans The Parent's Guidebook to Minecraft, l'auteure Cori Dusmann dénote que l'école à la maison et Minecraft font une paire intéressante, la création de mods simples pouvant servir "d'illustration de principes scientifiques", chose à laquelle les parents choisissant de faire l'école à la maison se montrent réceptifs.
Tom Bennett, conseiller du gouvernement britannique, s'est opposé à l'idée d'introduire Minecraft dans le programme scolaire. Selon Bennett, Minecraft est un gimmick, et les écoles feraient mieux de "siphonner les gimmicks hors du marais" et de n'avoir recours qu'au livres afin d'éduquer les élèves. L'accusation de Bennett a été réfutée par un grand nombre de journalistes chez The Guardian, qui considèrent que l'utilisation de Minecraft dans les écoles est une innovation digne d'intérêt.

### Influence sur Minecraft

Le développeur de mods D$^r$ Zhark ajouta des chevaux au jeu à travers le mod Mo' Creatures. Plus tard, il aidera Mojang à adapter les chevaux pour qu'ils soient implémentés au jeu Minecraft standard$^,$. Les pistons eux aussi faisaient originellement partie d'un mod créé par un autre développeur, Hippoplatimus, mais ils firent une si grande impression sur les créateurs de Minecraft qu'ils furent ajoutés au jeu principal.
Mojang a aussi fait part de son admiration pour le travail effectué sur l'interface de programmation pour le modding côté serveur Bukkit. En 2012, l'entreprise suédoise finira par recruter les développeurs en chef du projet.