1. Comment fonctionne un mod
Un mod Luanti est un simple dossier contenant du code Lua et des ressources (textures, sons). Le moteur, écrit en C++, charge ces dossiers au démarrage du monde et exécute leur fichier init.lua. Tout passe par l'API exposée dans la table globale core, toujours accessible sous son ancien nom minetest, que vous verrez dans la plupart des tutoriels.
2. Arborescence minimale
Dans le dossier mods/ de votre installation (ou dans celui du monde), créez :
mods/
monmod/
mod.conf
init.lua
textures/
monmod_brique_bleue.png
Le fichier mod.conf décrit le mod :
name = monmod
description = Mon premier mod
depends =
Le nom du dossier et la valeur de name doivent correspondre. Le champ depends liste les mods dont le vôtre a besoin (par exemple default pour réutiliser les sons ou les blocs de Minetest Game).
3. Enregistrer un bloc
Dans init.lua :
minetest.register_node("monmod:brique_bleue", {
description = "Brique bleue",
tiles = {"monmod_brique_bleue.png"},
groups = {cracky = 2},
})
- Le nom suit toujours le format
nomdumod:nomdelobjet. - tiles : la ou les textures du bloc (une seule texture = les six faces).
- groups : détermine comment le bloc se creuse.
crackycorrespond aux matériaux durs creusés avec une pioche ; plus la valeur est basse, plus c'est facile.
Prévoyez une texture PNG carrée (16×16 ou 32×32 pixels) avec le nom exact indiqué.
4. Ajouter une recette de fabrication
minetest.register_craft({
output = "monmod:brique_bleue 4",
recipe = {
{"default:stone", "default:stone"},
{"default:stone", "default:stone"},
},
})
Cette recette utilise default:stone, donc ajoutez depends = default dans mod.conf. Elle donne 4 briques bleues pour 4 blocs de pierre disposés en carré.
5. Créer une commande de chat
minetest.register_chatcommand("bonjour", {
description = "Vous salue",
func = function(name, param)
return true, "Bonjour " .. name .. " !"
end,
})
La fonction reçoit le nom du joueur et le texte tapé après la commande. Elle retourne un booléen (réussite) et un message affiché dans le chat. Tapez /bonjour en jeu pour tester.
6. Tester et déboguer
- Activez votre mod dans la configuration du monde (onglet « Mods » du menu principal).
- En cas d'erreur, le moteur affiche la ligne fautive dans la console et dans le fichier
debug.txt. - Utilisez
minetest.log("action", "message")pour tracer ce que fait votre code.
7. Aller plus loin
Une fois ces trois briques maîtrisées, explorez les enregistrements d'entités, les minetest.register_on_joinplayer pour réagir aux connexions, le stockage persistant avec minetest.get_mod_storage(), et la génération du monde. Pour héberger vos créations, voyez notre guide d'installation d'un serveur et pensez à le sécuriser avant d'y ajouter des mods tiers.